diff options
author | Joern Rennecke <amylaar@gcc.gnu.org> | 2004-09-17 12:53:14 +0100 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 2004-09-17 12:53:14 +0100 |
commit | 03603192000fe203738a8aa1708ebc566cd2a0fa (patch) | |
tree | 6b6a0356e86053f2f8ed007673740abfc696abff /gcc | |
parent | 3641bd553429d959870ac3e863e3253394d37fae (diff) | |
download | gcc-03603192000fe203738a8aa1708ebc566cd2a0fa.zip gcc-03603192000fe203738a8aa1708ebc566cd2a0fa.tar.gz gcc-03603192000fe203738a8aa1708ebc566cd2a0fa.tar.bz2 |
sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
* sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference.
(sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug.
* t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g .
* t-sh64 (MULTILIB_CPU_DIRS): Likewise. Match trailing slashes
in substitutions.
(MULTILIB_DIRNAMES): Remove defunct removal of /media32.
From-SVN: r87640
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/sh/sh.c | 8 | ||||
-rw-r--r-- | gcc/config/sh/t-sh | 2 | ||||
-rw-r--r-- | gcc/config/sh/t-sh64 | 4 |
3 files changed, 10 insertions, 4 deletions
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index b58293d..8dc017c 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -6382,7 +6382,7 @@ sh_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, HOST_WIDE_INT size, rsize; tree tmp, pptr_type_node; tree addr, lab_over, result = NULL; - int pass_by_ref = pass_by_reference (NULL, TYPE_MODE (type), type, false); + int pass_by_ref = targetm.calls.must_pass_in_stack (TYPE_MODE (type), type); if (pass_by_ref) type = build_pointer_type (type); @@ -6604,6 +6604,12 @@ sh_pass_by_reference (CUMULATIVE_ARGS *cum, enum machine_mode mode, if (targetm.calls.must_pass_in_stack (mode, type)) return true; + /* ??? std_gimplify_va_arg_expr passes NULL for cum. That function + wants to know about pass-by-reference semantics for incoming + arguments. */ + if (! cum) + return false; + if (TARGET_SHCOMPACT) { cum->byref = shcompact_byref (cum, mode, type, named); diff --git a/gcc/config/sh/t-sh b/gcc/config/sh/t-sh index 3660d06..c5eb397 100644 --- a/gcc/config/sh/t-sh +++ b/gcc/config/sh/t-sh @@ -22,7 +22,7 @@ fp-bit.c: $(srcdir)/config/fp-bit.c cat $(srcdir)/config/fp-bit.c >> fp-bit.c MULTILIB_ENDIAN = ml/mb -MULTILIB_CPUS= $(ML_sh1)$(ML_sh2a)$(ML_sh2a_nofpu)$(ML_sh2a_single_only)$(ML_sh2a_single)$(ML_sh2e)$(ML_sh2)$(ML_sh3e)$(ML_sh3)$(ML_sh4_nofpu)$(ML_sh4_single_only)$(ML_sh4_single)$(ML_sh4)$(ML_sh4a_nofpu)$(ML_sh4a_single_only)$(ML_sh4a_single)$(ML_sh4a)$(ML_m5_32media)$(ML_m5_32media_nofpu)$(ML_m5_compact)$(ML_m5_compact_nofpu)$(ML_m5_64media)$(ML_m5_64media_nofpu) +MULTILIB_CPUS= $(ML_sh1)$(ML_sh2a)$(ML_sh2a_nofpu)$(ML_sh2a_single_only)$(ML_sh2a_single)$(ML_sh2e)$(ML_sh2)$(ML_sh3e)$(ML_sh3)$(ML_sh4_nofpu)$(ML_sh4_single_only)$(ML_sh4_single)$(ML_sh4)$(ML_sh4a_nofpu)$(ML_sh4a_single_only)$(ML_sh4a_single)$(ML_sh4a)$(ML_sh5_32media)$(ML_sh5_32media_nofpu)$(ML_sh5_compact)$(ML_sh5_compact_nofpu)$(ML_sh5_64media)$(ML_sh5_64media_nofpu) MULTILIB_OPTIONS= $(MULTILIB_ENDIAN) $(MULTILIB_CPUS:/=) MULTILIB_DIRNAMES= diff --git a/gcc/config/sh/t-sh64 b/gcc/config/sh/t-sh64 index 5ee83ba..97a13be 100644 --- a/gcc/config/sh/t-sh64 +++ b/gcc/config/sh/t-sh64 @@ -7,7 +7,7 @@ LIB1ASMFUNCS = \ _push_pop_shmedia_regs \ _udivdi3 _divdi3 _umoddi3 _moddi3 -MULTILIB_CPU_DIRS= $(ML_sh1) $(ML_sh2e) $(ML_sh2) $(ML_sh3e) $(ML_sh3) $(ML_sh4_nofpu) $(ML_sh4_single_only) $(ML_sh4_single) $(ML_sh4) $(ML_m5_32media:m5_32media=media32) $(ML_m5_32media_nofpu:m5_32media_nofpu=nofpu/media32) $(ML_m5_compact:m5_compact=compact) $(ML_m5_compact_nofpu:m5_compact_nofpu=nofpu/compact) $(ML_m5_64media:m5_64media=media64) $(ML_m5_64media_nofpu:m5_64media_nofpu=nofpu/media64) +MULTILIB_CPU_DIRS= $(ML_sh1) $(ML_sh2e) $(ML_sh2) $(ML_sh3e) $(ML_sh3) $(ML_sh4_nofpu) $(ML_sh4_single_only) $(ML_sh4_single) $(ML_sh4) $(ML_sh5_32media:m5-32media/=media32) $(ML_sh5_32media_nofpu:m5-32media-nofpu/=nofpu/media32) $(ML_sh5_compact:m5-compact/=compact) $(ML_sh5_compact_nofpu:m5-compact-nofpu/=nofpu/compact) $(ML_sh5_64media:m5-64media/=media64) $(ML_sh5_64media_nofpu:m5-64media-nofpu/=nofpu/media64) MULTILIB_RAW_DIRNAMES= $(MULTILIB_ENDIAN:/mb= mb) $(MULTILIB_CPU_DIRS:/=) -MULTILIB_DIRNAMES= $(MULTILIB_RAW_DIRNAMES:/media32=) +MULTILIB_DIRNAMES= $(MULTILIB_RAW_DIRNAMES) |