This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fwd: __ARM_ARCH_2__


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 <kyrylo.tkachov@arm.com>:
>> Hi
>>
>> In linux/arch/arm/boot/
>> compressed/head.S:
>>
>>
>> #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.
>
> HTH,
> Kyrill
>
> 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.
>
>
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]