This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
My compiler does not understand "-matpcs". I remember ATPCS is PCS for ARM normal and Thumb instructions. We did not use any Thumb instructions and did not use such option to compile.
I checked gcc-4.1.1/gcc/config/arm/arm.h, PREFERRED_STACK_BOUNDARY is defined as 64 because we are using -mabi=aapcs option. Moreover, -mabi=iwmmxt options is also fine.
#define TARGET_AAPCS_BASED \ (arm_abi != ARM_ABI_APCS && arm_abi != ARM_ABI_ATPCS) #define ARM_DOUBLEWORD_ALIGN TARGET_AAPCS_BASED #define DOUBLEWORD_ALIGNMENT 64 #define STACK_BOUNDARY (ARM_DOUBLEWORD_ALIGN ? DOUBLEWORD_ALIGNMENT : 32) #define PREFERRED_STACK_BOUNDARY \ (arm_abi == ARM_ABI_ATPCS ? 64 : STACK_BOUNDARY)
Finally, I did not find crt0 startup code for ARM in glibc(v2.4) or gcc(v4.1.1). Could you please point it out? Thanks.
On 7/3/06, Dave Korn <dave.korn@artimi.com> wrote:
Normally it's the job of the crt0 startup to make sure the sp is properly aligned modulo 8, and the compiler assumes that and can make sure sp stays aligned just by ensuring all stack frames are multiple of 8 bytes in size. Is your crt0 not aligning the sp correctly, or is the compiler emitting frames that are not a multiple of 8 in size? In the arm compiler's backend (v3.3.3, gcc/config/arm.h) I see the line
#define PREFERRED_STACK_BOUNDARY (TARGET_ATPCS ? 64 : 32)
- does your compiler understand "-matpcs", and does it help?
cheers, DaveK -- Can't think of a witty .sigline today....
-- best regards, -Bridge
-- For unsubscribe information see http://sourceware.org/lists.html#faq
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |