diff options
-rw-r--r-- | gcc/ada/Makefile.rtl | 12 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl index 35faf13..987eff0 100644 --- a/gcc/ada/Makefile.rtl +++ b/gcc/ada/Makefile.rtl @@ -2311,6 +2311,18 @@ ifeq ($(strip $(filter-out mips% linux%,$(target_cpu) $(target_os))),) s-tpopsp.adb<libgnarl/s-tpopsp__posix-foreign.adb \ system.ads<libgnat/system-linux-mips.ads + ifeq ($(strip $(filter-out mips64% mipsisa64%,$(target_cpu))),) + ifneq ($(strip $(MULTISUBDIR)),/32) + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) + endif + else + ifneq ($(strip $(filter /64 /n32,$(MULTISUBDIR))),) + LIBGNAT_TARGET_PAIRS += $(GNATRTL_128BIT_PAIRS) + EXTRA_GNATRTL_NONTASKING_OBJS += $(GNATRTL_128BIT_OBJS) + endif + endif + TOOLS_TARGET_PAIRS = indepsw.adb<indepsw-gnu.adb EXTRA_GNATRTL_TASKING_OBJS=s-linux.o diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 8bd2d29..3155459 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -8400,7 +8400,7 @@ mips_expand_ext_as_unaligned_load (rtx dest, rtx src, HOST_WIDE_INT width, /* If TARGET_64BIT, the destination of a 32-bit "extz" or "extzv" will be a DImode, create a new temp and emit a zero extend at the end. */ if (GET_MODE (dest) == DImode - && REG_P (dest) + && (REG_P (dest) || (SUBREG_P (dest) && !MEM_P (SUBREG_REG (dest)))) && GET_MODE_BITSIZE (SImode) == width) { dest1 = dest; |