[llvm-commits] [patch] add n32/64 ABI description.

Akira Hatanaka ahatanak at gmail.com
Thu Sep 22 10:17:53 PDT 2011


A few comments. Please let me know if you have any questions.

- If N64 and N32 have the same calling convention, you should define
just one for both (e.g. CC_MIps64).
- Arguments passed in Integer registers shadow floating pointer
registers and vice verca. For example, the first doubleword is passed
in either $4 or $f1, the second in
either $5 or $f1, and so on. Probably you will need to use
CCAssignToRegWithShadow (please see ARMCallingConv.td).
- Integer arguments are all promoted to i64.
- i64 integer arguments should be passed in 64-bit registers (I will
add the register and register file definitions shortly). Also, i64
return value should be in 64-bit registers.
- Arguments that cannot be passed in registers are push to the stack,
so you need to use  CCAssignToStack.

On Thu, Sep 22, 2011 at 12:23 AM, Liu <proljc at gmail.com> wrote:
> Hi
>
> I added n32/64 ABI description for MIPS Backend.
>
> --Liu
>



More information about the llvm-commits mailing list