aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/nds32/nds32.h
diff options
context:
space:
mode:
authorChung-Ju Wu <jasonwucj@gmail.com>2014-09-03 09:16:51 +0000
committerChung-Ju Wu <jasonwucj@gcc.gnu.org>2014-09-03 09:16:51 +0000
commit9d93cc2467714741425e6d78e7b6e147b7992483 (patch)
treeef5fd3862d9a7baf3ca0c117f578cf5df8c3f919 /gcc/config/nds32/nds32.h
parent38a0632eb7259f06297ef623ae5066aadc50453f (diff)
downloadgcc-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.h24
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