aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1996-03-04 15:38:50 -0800
committerJim Wilson <wilson@gcc.gnu.org>1996-03-04 15:38:50 -0800
commit2425db7e1783d3e8f599051367bff707467c89ef (patch)
treea234bcafc34f724acf3ebe22d9d1256e20b9e9c5
parentaf55dae3a378a8d4e111a9dbbf6056358d99c18b (diff)
downloadgcc-2425db7e1783d3e8f599051367bff707467c89ef.zip
gcc-2425db7e1783d3e8f599051367bff707467c89ef.tar.gz
gcc-2425db7e1783d3e8f599051367bff707467c89ef.tar.bz2
(PASS_IN_REG_P): Don't reject BLKmode for SH3e.
For SH3e, do reject parameter that won't fit entirely in registers. From-SVN: r11424
-rw-r--r--gcc/config/sh/sh.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 13ff97d..6f260fc 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -732,8 +732,7 @@ struct sh_args {
#define PASS_IN_REG_P(CUM, MODE, TYPE) \
(ROUND_REG ((CUM), (MODE)) < NPARM_REGS (MODE) \
&& ((TYPE) == 0 || ! TREE_ADDRESSABLE ((tree)(TYPE))) \
- /* ??? This is questionable. Should perhaps be deleted. */ \
- && (! TARGET_SH3E || (TYPE) == 0 || (MODE) != BLKmode))
+ && (TARGET_SH3E && (ROUND_REG((CUM), (MODE)) + (GET_MODE_SIZE(MODE)/4) < NPARM_REGS (MODE))))
/* Define where to put the arguments to a function.
Value is zero to push the argument on the stack,