diff options
author | Chung-Ju Wu <jasonwucj@gmail.com> | 2014-09-03 09:16:51 +0000 |
---|---|---|
committer | Chung-Ju Wu <jasonwucj@gcc.gnu.org> | 2014-09-03 09:16:51 +0000 |
commit | 9d93cc2467714741425e6d78e7b6e147b7992483 (patch) | |
tree | ef5fd3862d9a7baf3ca0c117f578cf5df8c3f919 /gcc/config/nds32/nds32.h | |
parent | 38a0632eb7259f06297ef623ae5066aadc50453f (diff) | |
download | gcc-9d93cc2467714741425e6d78e7b6e147b7992483.zip gcc-9d93cc2467714741425e6d78e7b6e147b7992483.tar.gz gcc-9d93cc2467714741425e6d78e7b6e147b7992483.tar.bz2 |
[NDS32] Define and rename some GPR-specific stuff.
* config/nds32/nds32.c (nds32_function_arg): Define and rename some
GPR-specific stuff.
(nds32_function_arg_advance): Likewise.
(nds32_init_cumulative_args): Likewise.
* config/nds32/nds32.h (NDS32_MAX_GPR_REGS_FOR_ARGS): Define.
(NDS32_FIRST_GPR_REGNUM): Define.
(NDS32_LAST_GPR_REGNUM): Define.
(NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG): Define.
(NDS32_ARG_PASS_IN_REG_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
(FUNCTION_ARG_REGNO_P): Use NDS32_MAX_GPR_REGS_FOR_ARGS.
(machine_function): Use GRP-specific stuff.
From-SVN: r214859
Diffstat (limited to 'gcc/config/nds32/nds32.h')
-rw-r--r-- | gcc/config/nds32/nds32.h | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/gcc/config/nds32/nds32.h b/gcc/config/nds32/nds32.h index d0b8142..c446041 100644 --- a/gcc/config/nds32/nds32.h +++ b/gcc/config/nds32/nds32.h @@ -109,7 +109,7 @@ enum nds32_16bit_address_type /* ------------------------------------------------------------------------ */ /* Define maximum numbers of registers for passing arguments. */ -#define NDS32_MAX_REGS_FOR_ARGS 6 +#define NDS32_MAX_GPR_REGS_FOR_ARGS 6 /* Define the register number for first argument. */ #define NDS32_GPR_ARG_FIRST_REGNUM 0 @@ -117,6 +117,10 @@ enum nds32_16bit_address_type /* Define the register number for return value. */ #define NDS32_GPR_RET_FIRST_REGNUM 0 +/* Define the first integer register number. */ +#define NDS32_FIRST_GPR_REGNUM 0 +/* Define the last integer register number. */ +#define NDS32_LAST_GPR_REGNUM 31 /* Define double word alignment bits. */ #define NDS32_DOUBLE_WORD_ALIGNMENT 64 @@ -154,19 +158,19 @@ enum nds32_16bit_address_type b) Otherwise, the register number can be odd or even value. 2. If it is required ONLY one register, the register number can be odd or even value. */ -#define NDS32_AVAILABLE_REGNUM_FOR_ARG(reg_offset, mode, type) \ - ((NDS32_NEED_N_REGS_FOR_ARG (mode, type) > 1) \ - ? ((NDS32_MODE_TYPE_ALIGN (mode, type) > PARM_BOUNDARY) \ - ? (((reg_offset) + NDS32_GPR_ARG_FIRST_REGNUM + 1) & ~1) \ - : ((reg_offset) + NDS32_GPR_ARG_FIRST_REGNUM)) \ +#define NDS32_AVAILABLE_REGNUM_FOR_GPR_ARG(reg_offset, mode, type) \ + ((NDS32_NEED_N_REGS_FOR_ARG (mode, type) > 1) \ + ? ((NDS32_MODE_TYPE_ALIGN (mode, type) > PARM_BOUNDARY) \ + ? (((reg_offset) + NDS32_GPR_ARG_FIRST_REGNUM + 1) & ~1) \ + : ((reg_offset) + NDS32_GPR_ARG_FIRST_REGNUM)) \ : ((reg_offset) + NDS32_GPR_ARG_FIRST_REGNUM)) /* This macro is to check if there are still available registers for passing argument. */ #define NDS32_ARG_PASS_IN_REG_P(reg_offset, mode, type) \ - (((reg_offset) < NDS32_MAX_REGS_FOR_ARGS) \ + (((reg_offset) < NDS32_MAX_GPR_REGS_FOR_ARGS) \ && ((reg_offset) + NDS32_NEED_N_REGS_FOR_ARG (mode, type) \ - <= NDS32_MAX_REGS_FOR_ARGS)) + <= NDS32_MAX_GPR_REGS_FOR_ARGS)) /* This macro is to check if the register is required to be saved on stack. If call_used_regs[regno] == 0, regno is the callee-saved register. @@ -227,7 +231,7 @@ struct GTY(()) machine_function /* A C structure that contains the arguments information. */ typedef struct { - unsigned int reg_offset; + unsigned int gpr_offset; } nds32_cumulative_args; /* ------------------------------------------------------------------------ */ @@ -710,7 +714,7 @@ enum reg_class 'comparison of unsigned expression >= 0 is always true' warning. */ #define FUNCTION_ARG_REGNO_P(regno) \ (((int) regno - NDS32_GPR_ARG_FIRST_REGNUM >= 0) \ - && ((int) regno - NDS32_GPR_ARG_FIRST_REGNUM < NDS32_MAX_REGS_FOR_ARGS)) + && ((int) regno - NDS32_GPR_ARG_FIRST_REGNUM < NDS32_MAX_GPR_REGS_FOR_ARGS)) #define DEFAULT_PCC_STRUCT_RETURN 0 |