This is the mail archive of the
mailing list for the GCC project.
Re: Change the arrch64 abi ...(Custom /Specific change)
- From: Jim Wilson <jim dot wilson at linaro dot org>
- To: Umesh Kalappa <umesh dot kalappa0 at gmail dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Mon, 4 Apr 2016 16:31:15 -0700
- Subject: Re: Change the arrch64 abi ...(Custom /Specific change)
- Authentication-results: sourceware.org; auth=none
- References: <CAGfacvQ6sOaSqGYy1A+cOtZ2zYU8P-e3tgo-QLBO78sNjmEq=w at mail dot gmail dot com>
On 04/04/2016 08:55 AM, Umesh Kalappa wrote:
We are in process of changing the gcc compiler for aarch64 abi ,w.r.t
varargs function arguments handling.
default(LP64) ,where 1,2,4 bytes args are promoted to word size i.e 4
bytes ,we need to change these behaviour to 8 bytes (double word).
we are looking both hooks like PROMOTE_MODE and
TARGET_PROMOTE_FUNCTION_MODE to make the changes.
I think this would work. You just need to promote all modes less than 8
bytes to DImode, instead of the current code that promotes modes smaller
than 4 bytes to SImode. You would do this for the default LP64 type
system, but not for the ILP32 type system.
This would affect all function arguments and locals, which may cause
code size and/or performance issues. You would have to check for that.
Also, this may prevent linking with any 3rd party code compiled by
unmodified gcc, or code compiled with other compilers (e.g. LLVM),
because changing TARGET_PROMOTE_FUNCTION_MODE can cause ABI changes. You
may need to check that also.