On 27 February 2013 16:37, Fabien Chouteau <chout...@adacore.com> wrote: > I'm making my first steps in the ARM world by looking at R4F > implementation. More specifically I'm trying to add VFP3-D16 support > which is, as far as I understand, a regular VFP3 with only 16 D > registers instead of 32.
Andreas was looking at Cortex-R4(F) support a while back; you should talk to him about how far he got with that (and google for the mailing list archives for my comments on his patches, probably). > My question is: where do I check that an instruction is accessing an > unimplemented register (i.e. d16-31)? It could be in the macro VFP_DREG, > but it's specification is not clear to me. Check the ARM ARM and how dregs are encoded into instructions. VFP_DREG is approximately "set reg to the register number, but return 1 if the encoding isn't valid" where valid here means "accessing d16..d31 in VFP2" (since VFP2 has only 16 dregs). Probably what you'll want is to have a separate feature bit for 32 dregs which is set by default for vfpv3, and then use that in VFP_DREG rather than the vfpv3 feature bit. -- PMM