[PATCH] ARM:VFPv3:enable {d16-d31} access

Russell King - ARM Linux linux at arm.linux.org.uk
Wed May 26 16:10:17 EDT 2010


On Wed, May 26, 2010 at 05:13:24PM +0530, DebBarma, Tarun Kanti wrote:
> 1) With the existing implementation I am not able to correctly
> write/read {d0-d15} but not the {d16-d31} set
> 
> 2) With my changes I am able to write/read correctly.

The reason this happens is simple.  In vfp_get_double(), we have:

1:      fmrrd   r0, r1, d\dr
1:      mrrc    p11, 3, r0, r1, c\dr    @ fmrrd r0, r1, d\dr

but in vfp_put_double(), we have:

1:      fmdrr   d\dr, r0, r1
1:      mcrr    p11, 3, r1, r2, c\dr    @ fmdrr r1, r2, d\dr

Note the different registers.  Change "r1, r2" to "r0, r1" and it
should work.



More information about the linux-arm-kernel mailing list