On 05/04/13 17:46, Geoff Levand wrote: Hi Geoff, > On Fri, 2013-04-05 at 10:08 +0100, Marc Zyngier wrote: >> On 04/04/13 23:10, Geoff Levand wrote: >>> On Tue, 2013-04-02 at 14:25 +0100, Marc Zyngier wrote: >>>> + @ Jump to the trampoline page >>>> + ldr r2, =#PAGE_MASK >>>> + adr r3, target >>>> + bic r3, r3, r2 >>>> + ldr r2, =#TRAMPOLINE_VA >>>> + add r3, r3, r2 >>>> + mov pc, r3 >>> >>> I guess you need 'ldr r2, =PAGE_MASK'. >>> >>> arch/arm/kvm/init.S:114: Error: bad expression -- `ldr r2,=#(~((1<<12)-1))' >>> arch/arm/kvm/init.S:117: Error: bad expression -- `ldr r2,=#0xffff0000' >> >> Oddly enough, this code compiles perfectly fine on my box. >> What's your compiler/binutils versions? > > I thought # was for an immediate value in instructions. This > is an assembler pseudo-instruction, and based on the ARM manual > here I would think your coding should fail: > > http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0473i/Chdcegci.html I don't dispute the validity of your remark. I just find odd that my compiler doesn't barf on this as it probably should. > I use the current arm-linux-gnueabihf cross toolchain packages from > Ubuntu 12.04: > > arm-linux-gnueabihf-gcc-4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 > GNU assembler (GNU Binutils for Ubuntu) 2.22 I'm using this: arm-linux-gnueabihf-gcc (crosstool-NG linaro-1.13.1-4.7-2012.12-20121214 - Linaro GCC 2012.12) 4.7.3 20121205 (prerelease) GNU assembler (crosstool-NG linaro-1.13.1-4.7-2012.12-20121214 - Linaro GCC 2012.12) 2.22 Looks like there's a regression somewhere. Thanks, M. -- Jazz is not dead. It just smells funny... -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html