Thu Aug 8 09:37:00 GMT 2013
Thank you for your answer
if __ARM_ARCH_2__ is defined by GCC when compiling for the ARMv2
architecture,how do gcc know the architecture is ARMv2?
and I can't find thing about __ARM_ARCH_2__ in gcc manual,could you
tell me where I can find
2013/8/8 Kyrylo Tkachov <firstname.lastname@example.org>:
>> In linux/arch/arm/boot/
>> #ifndef __ARM_ARCH_2__
>> * Booting from Angel - need to enter SVC mode and disable
>> * FIQs/IRQs (numeric definitions from angel arm.h source).
>> * We only do this if we were in user mode on entry.
>> mrs r2, cpsr @ get current mode
>> tst r2, #3 @ not user?
>> bne not_angel
>> mov r0, #0x17 @ angel_SWIreason_EnterSVC
>> swi 0x123456 @ angel_SWI_ARM
>> I don't know what the"__ARM_ARCH_2__" mean?
> __ARM_ARCH_2__ is defined by GCC when compiling for the ARMv2 architecture.
> GCC defines an __ARM_ARCH_<architecture version>__ predefine when compiling
> for a particular architecture.
> In the snippet you posted it is used to make sure the code below the #ifndef
> is not used/compiled when targeting ARMv2.
> P.S. In the future, questions like these go on the gcc-help list. The gcc list
> is used for discussions on the development of gcc.
More information about the Gcc-help