[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v4 2/2] xen/arm32: implement VFP context switch



On 6 July 2013 21:45, Ian Campbell <ian.campbell@xxxxxxxxxx> wrote:
> On Mon, 2013-06-17 at 14:47 +0100, Julien Grall wrote:
>> Add support for VFP context switch on arm32 and a dummy support for arm64
>>
>> Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
>
> This patch is causing failures for me with the gcc 4.6.3 cross compiler
> which I use and with gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415
>
> vfp.c: In function 'vfp_restore_state':
> vfp.c:45:27: error: memory input 0 is not directly addressable
> vfp.c:51:31: error: memory input 0 is not directly addressable
>
> For some reason this didn't happen during my pre-commit build tests (or
> I somehow missed it), and the test system seems happy with it (no
> regression reported). But it does seem to fail on the same system (with
> the same compiler) I used for those pre-commit tests now.
>
> Which compiler do you use?

I'm using gcc 4.8.1.

> I notice that Linux does its VFP context switch in a .S file, I wonder
> if this sort of issue is why?

Except if I missed something in the documentation, the constraint 'Q'([1])
doesn't produce the same assembly code on gcc 4.8.1 and gcc 4.6.3.

asm volatile("ldr r0, %0" : : "Q" (v));

- gcc 4.6.3 : ldr r0, [r1, #0]
- gcc 4.8.1 : ldr r0, [r1]

That's an issue for the VFP context switch, because I need to have
[rd] otherwise gcc will complain because the assembly instruction
has both pre-index and post-index.

[1] 
http://gcc.gnu.org/onlinedocs/gcc-4.8.1/gcc/Machine-Constraints.html#Machine-Constraints

--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.