diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1996-02-28 14:20:46 -0800 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1996-02-28 14:20:46 -0800 |
commit | 58b57c2c7045c0db32a3e1d3c3eb8f40040ebcc7 (patch) | |
tree | 4968a82064d6ce72f7d49b99607d195a6fb5eb79 /gcc | |
parent | 5566b478bdfe8bfc554a57f2631c1d3646ac4ae2 (diff) | |
download | gcc-58b57c2c7045c0db32a3e1d3c3eb8f40040ebcc7.zip gcc-58b57c2c7045c0db32a3e1d3c3eb8f40040ebcc7.tar.gz gcc-58b57c2c7045c0db32a3e1d3c3eb8f40040ebcc7.tar.bz2 |
(FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P): Include FP registers only when TARGET_SH3E.
(FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P): Include FP
registers only when TARGET_SH3E.
(PASS_IN_REG_P): Exclude BLKmode only when ! TARGET_SH3E.
From-SVN: r11363
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/sh/sh.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h index 0680c50..13ff97d 100644 --- a/gcc/config/sh/sh.h +++ b/gcc/config/sh/sh.h @@ -656,12 +656,13 @@ extern enum reg_class reg_class_from_letter[]; /* 1 if N is a possible register number for a function value. */ #define FUNCTION_VALUE_REGNO_P(REGNO) \ - ((REGNO) == FIRST_RET_REG || (REGNO) == FIRST_FP_RET_REG) + ((REGNO) == FIRST_RET_REG || (TARGET_SH3E && (REGNO) == FIRST_FP_RET_REG)) /* 1 if N is a possible register number for function argument passing. */ #define FUNCTION_ARG_REGNO_P(REGNO) \ - (((REGNO) >= FIRST_PARM_REG && (REGNO) < (FIRST_PARM_REG + 4)) \ - || ((REGNO >= FIRST_FP_PARM_REG && (REGNO) < (FIRST_FP_PARM_REG + 8)))) + (((REGNO) >= FIRST_PARM_REG && (REGNO) < (FIRST_PARM_REG + 4)) \ + || (TARGET_SH3E \ + && (REGNO) >= FIRST_FP_PARM_REG && (REGNO) < (FIRST_FP_PARM_REG + 8))) /* Define a data type for recording info about an argument list during the scan of that argument list. This data type should @@ -730,8 +731,9 @@ struct sh_args { #define PASS_IN_REG_P(CUM, MODE, TYPE) \ (ROUND_REG ((CUM), (MODE)) < NPARM_REGS (MODE) \ - && ((TYPE)==0 || ! TREE_ADDRESSABLE((tree)(TYPE))) \ - && ((TYPE)==0 || (MODE) != BLKmode)) + && ((TYPE) == 0 || ! TREE_ADDRESSABLE ((tree)(TYPE))) \ + /* ??? This is questionable. Should perhaps be deleted. */ \ + && (! TARGET_SH3E || (TYPE) == 0 || (MODE) != BLKmode)) /* Define where to put the arguments to a function. Value is zero to push the argument on the stack, |