[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 02/34] xen: clang: Disable built-in assembler
On 04/01/2014 02:11 PM, Ian Campbell wrote: > On Sat, 2014-03-29 at 22:55 +0000, Julien Grall wrote: >> Hi Tim, >> >> On 27/03/14 18:01, Tim Deegan wrote: >>> >>> The patch below works for me (at least as far as building >>> asm-offsets.h on x86) by wrapping everything in a string. I did try >>> just prefixing with '#' but clang 3.5 also strips the comments out. >>> That seems unhelpful, since I know some people put comments in their >>> inline assembler too. :( >> >> I'm able to build correctly x86 with your patch, and this patch (e.g #2) >> reverted. >> >> But for ARM ... it breaks in another place :( >> >> vfp.c:8:25: error: invalid operand for instruction >> v->arch.vfp.fpexc = READ_CP32(FPEXC); >> <inline asm>:1:6: note: instantiated into assembly here >> mrc p10, 7, r1, c8, c0, 0; >> ^ >> >> Coprocessor p10 (and p11) are used for Neon instruction are clang >> doesn't allow to use it directly. >> (http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20131104/194170.html). >> >> Depends on which part of the ARM ARM you are reading, p10 and p11 should >> not be used directly with mrc/mcr instruction ... but gas accept it. >> >> I guess the best solution is to use directly the VFP instructions but it >> would mean to re-enable VFP at compile time in Xen (see >> http://www.gossamer-threads.com/lists/xen/devel/284653?do=post_view_threaded). > > Do the VFP instructions have different encodings? I thought this was an > assembler mnemonic difference only. Strictly speaking it works only because vldm* as the same encoding as ldc*. But the processor will decode the instruction as vldm* (and execute as it is). LLVM assembly parser prevents the user to use ldc* in the assembly as specified by the ARM ARM. -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |