diff options
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/alpha/alpha.c | 3 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 10 | ||||
-rw-r--r-- | gcc/config/arm/arm.h | 1 | ||||
-rw-r--r-- | gcc/config/avr/avr.h | 3 | ||||
-rw-r--r-- | gcc/config/c4x/c4x.c | 3 | ||||
-rw-r--r-- | gcc/config/cris/cris.c | 3 | ||||
-rw-r--r-- | gcc/config/frv/frv.h | 3 | ||||
-rw-r--r-- | gcc/config/h8300/h8300.c | 2 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 16 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.h | 25 | ||||
-rw-r--r-- | gcc/config/ip2k/ip2k.h | 3 | ||||
-rw-r--r-- | gcc/config/m32r/m32r.c | 2 | ||||
-rw-r--r-- | gcc/config/mips/mips.c | 3 | ||||
-rw-r--r-- | gcc/config/mmix/mmix.c | 1 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 3 | ||||
-rw-r--r-- | gcc/config/pa/pa.h | 4 | ||||
-rw-r--r-- | gcc/config/rs6000/aix.h | 25 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 13 | ||||
-rw-r--r-- | gcc/config/rs6000/t-rs6000 | 20 | ||||
-rw-r--r-- | gcc/config/s390/s390.c | 42 | ||||
-rw-r--r-- | gcc/config/sh/sh.c | 4 | ||||
-rw-r--r-- | gcc/config/sparc/sparc.c | 4 | ||||
-rw-r--r-- | gcc/config/v850/v850.c | 1 | ||||
-rw-r--r-- | gcc/config/xtensa/xtensa.c | 8 |
24 files changed, 92 insertions, 110 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index b1d1a54f20d..1f78205771c 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -801,9 +801,6 @@ input_operand (rtx op, enum machine_mode mode) case CONST_INT: return mode == QImode || mode == HImode || add_operand (op, mode); - case CONSTANT_P_RTX: - return 1; - default: break; } diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 371ffe8e1c0..ae9ff3a1b80 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -1116,7 +1116,7 @@ arm_compute_func_type (void) && TREE_THIS_VOLATILE (current_function_decl)) type |= ARM_FT_VOLATILE; - if (current_function_needs_context) + if (cfun->static_chain_decl != NULL) type |= ARM_FT_NESTED; attr = DECL_ATTRIBUTES (current_function_decl); @@ -10227,10 +10227,10 @@ arm_compute_initial_elimination_offset (unsigned int from, unsigned int to) frame pointer and the arg pointer coincide. */ if (offsets->frame == offsets->saved_regs) return 0; - /* FIXME: Not sure about this. Maybe we should always return 0 ? */ - return (frame_pointer_needed - && current_function_needs_context - && ! cfun->machine->uses_anonymous_args) ? 4 : 0; + /* FIXME: Not sure about this. Maybe we should always return 0 ? */ + return (frame_pointer_needed + && cfun->static_chain_decl != NULL + && ! cfun->machine->uses_anonymous_args) ? 4 : 0; case STACK_POINTER_REGNUM: /* If nothing has been pushed on the stack at all diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 724a0d15646..518e387bba8 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -2046,7 +2046,6 @@ typedef struct #define THUMB_LEGITIMATE_CONSTANT_P(X) \ ( GET_CODE (X) == CONST_INT \ || GET_CODE (X) == CONST_DOUBLE \ - || GET_CODE (X) == CONSTANT_P_RTX \ || CONSTANT_ADDRESS_P (X) \ || flag_pic) diff --git a/gcc/config/avr/avr.h b/gcc/config/avr/avr.h index 79e3e585897..a78b42be449 100644 --- a/gcc/config/avr/avr.h +++ b/gcc/config/avr/avr.h @@ -765,9 +765,6 @@ extern int avr_case_values_threshold; #define FUNCTION_MODE HImode - /* 1 3 */ -#define INTEGRATE_THRESHOLD(DECL) (1 + (3 * list_length (DECL_ARGUMENTS (DECL)) / 2)) - #define DOLLARS_IN_IDENTIFIERS 0 #define NO_DOLLAR_IN_LABEL 1 diff --git a/gcc/config/c4x/c4x.c b/gcc/config/c4x/c4x.c index 0dad6a4c97c..850bcef44b9 100644 --- a/gcc/config/c4x/c4x.c +++ b/gcc/config/c4x/c4x.c @@ -2940,9 +2940,6 @@ const_operand (register rtx op, register enum machine_mode mode) case Pmode: #endif case QImode: - if (GET_CODE (op) == CONSTANT_P_RTX) - return 1; - if (GET_CODE (op) != CONST_INT || (GET_MODE (op) != VOIDmode && GET_MODE (op) != mode) || GET_MODE_CLASS (mode) != MODE_INT) diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c index a975f0b8509..9ca9d2d3551 100644 --- a/gcc/config/cris/cris.c +++ b/gcc/config/cris/cris.c @@ -2488,7 +2488,6 @@ cris_symbol (rtx x) case CONST_INT: case CONST_DOUBLE: - case CONSTANT_P_RTX: return 0; default: @@ -2550,7 +2549,6 @@ cris_gotless_symbol (rtx x) case CONST_INT: case CONST_DOUBLE: - case CONSTANT_P_RTX: return 0; default: @@ -2595,7 +2593,6 @@ cris_got_symbol (rtx x) case CONST_INT: case CONST_DOUBLE: - case CONSTANT_P_RTX: return 0; default: diff --git a/gcc/config/frv/frv.h b/gcc/config/frv/frv.h index e6baec07973..9c62e36ed40 100644 --- a/gcc/config/frv/frv.h +++ b/gcc/config/frv/frv.h @@ -2639,8 +2639,7 @@ fixup_section (void) \ ( GET_CODE (X) == CONST_INT \ || GET_CODE (X) == CONST_DOUBLE \ || (GET_CODE (X) == HIGH && GET_CODE (XEXP (X, 0)) == CONST_INT) \ - || got12_operand (X, VOIDmode) \ - || GET_CODE (X) == CONSTANT_P_RTX) + || got12_operand (X, VOIDmode)) \ /* The Overall Framework of an Assembler File. */ diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c index 789bb00c537..9efa140c23b 100644 --- a/gcc/config/h8300/h8300.c +++ b/gcc/config/h8300/h8300.c @@ -384,7 +384,7 @@ h8300_emit_stack_adjustment (int sign, unsigned int size) if (TARGET_H8300 && size > 4 && !h8300_current_function_interrupt_function_p () - && !(current_function_needs_context && sign < 0)) + && !(cfun->static_chain_decl != NULL && sign < 0)) { rtx r3 = gen_rtx_REG (Pmode, 3); emit_insn (gen_movhi (r3, GEN_INT (sign * size))); diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index e27ca031fb4..e15a8a7c8d5 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -715,7 +715,6 @@ int gr_reg_or_5bit_operand (rtx op, enum machine_mode mode) { return ((GET_CODE (op) == CONST_INT && INTVAL (op) >= 0 && INTVAL (op) < 32) - || GET_CODE (op) == CONSTANT_P_RTX || gr_register_operand (op, mode)); } @@ -725,7 +724,6 @@ int gr_reg_or_6bit_operand (rtx op, enum machine_mode mode) { return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_M (INTVAL (op))) - || GET_CODE (op) == CONSTANT_P_RTX || gr_register_operand (op, mode)); } @@ -735,7 +733,6 @@ int gr_reg_or_8bit_operand (rtx op, enum machine_mode mode) { return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_K (INTVAL (op))) - || GET_CODE (op) == CONSTANT_P_RTX || gr_register_operand (op, mode)); } @@ -745,7 +742,6 @@ int grfr_reg_or_8bit_operand (rtx op, enum machine_mode mode) { return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_K (INTVAL (op))) - || GET_CODE (op) == CONSTANT_P_RTX || grfr_register_operand (op, mode)); } @@ -756,7 +752,6 @@ int gr_reg_or_8bit_adjusted_operand (rtx op, enum machine_mode mode) { return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_L (INTVAL (op))) - || GET_CODE (op) == CONSTANT_P_RTX || gr_register_operand (op, mode)); } @@ -770,7 +765,6 @@ gr_reg_or_8bit_and_adjusted_operand (rtx op, enum machine_mode mode) { return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_K (INTVAL (op)) && CONST_OK_FOR_L (INTVAL (op))) - || GET_CODE (op) == CONSTANT_P_RTX || gr_register_operand (op, mode)); } @@ -780,7 +774,6 @@ int gr_reg_or_14bit_operand (rtx op, enum machine_mode mode) { return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_I (INTVAL (op))) - || GET_CODE (op) == CONSTANT_P_RTX || gr_register_operand (op, mode)); } @@ -790,7 +783,6 @@ int gr_reg_or_22bit_operand (rtx op, enum machine_mode mode) { return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_J (INTVAL (op))) - || GET_CODE (op) == CONSTANT_P_RTX || gr_register_operand (op, mode)); } @@ -799,8 +791,7 @@ gr_reg_or_22bit_operand (rtx op, enum machine_mode mode) int shift_count_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { - return ((GET_CODE (op) == CONST_INT && CONST_OK_FOR_M (INTVAL (op))) - || GET_CODE (op) == CONSTANT_P_RTX); + return (GET_CODE (op) == CONST_INT && CONST_OK_FOR_M (INTVAL (op))); } /* Return 1 if OP is a 5 bit immediate operand. */ @@ -808,9 +799,8 @@ shift_count_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) int shift_32bit_count_operand (rtx op, enum machine_mode mode ATTRIBUTE_UNUSED) { - return ((GET_CODE (op) == CONST_INT - && (INTVAL (op) >= 0 && INTVAL (op) < 32)) - || GET_CODE (op) == CONSTANT_P_RTX); + return (GET_CODE (op) == CONST_INT + && (INTVAL (op) >= 0 && INTVAL (op) < 32)); } /* Return 1 if OP is a 2, 4, 8, or 16 immediate operand. */ diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h index 29f78c43a0e..b0f4dc64bce 100644 --- a/gcc/config/ia64/ia64.h +++ b/gcc/config/ia64/ia64.h @@ -2178,7 +2178,7 @@ do { \ { "destination_operand", {SUBREG, REG, MEM}}, \ { "not_postinc_memory_operand", {MEM}}, \ { "move_operand", {SUBREG, REG, MEM, CONST_INT, CONST_DOUBLE, \ - CONSTANT_P_RTX, SYMBOL_REF, CONST, LABEL_REF}}, \ + SYMBOL_REF, CONST, LABEL_REF}}, \ { "gr_register_operand", {SUBREG, REG}}, \ { "fr_register_operand", {SUBREG, REG}}, \ { "grfr_register_operand", {SUBREG, REG}}, \ @@ -2186,19 +2186,16 @@ do { \ { "fr_nonimmediate_operand", {SUBREG, REG, MEM}}, \ { "grfr_nonimmediate_operand", {SUBREG, REG, MEM}}, \ { "gr_reg_or_0_operand", {SUBREG, REG, CONST_INT}}, \ -{ "gr_reg_or_5bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \ -{ "gr_reg_or_6bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \ -{ "gr_reg_or_8bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \ -{ "grfr_reg_or_8bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \ -{ "gr_reg_or_8bit_adjusted_operand", {SUBREG, REG, CONST_INT, \ - CONSTANT_P_RTX}}, \ -{ "gr_reg_or_8bit_and_adjusted_operand", {SUBREG, REG, CONST_INT, \ - CONSTANT_P_RTX}}, \ -{ "gr_reg_or_14bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \ -{ "gr_reg_or_22bit_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \ -{ "shift_count_operand", {SUBREG, REG, CONST_INT, CONSTANT_P_RTX}}, \ -{ "shift_32bit_count_operand", {SUBREG, REG, CONST_INT, \ - CONSTANT_P_RTX}}, \ +{ "gr_reg_or_5bit_operand", {SUBREG, REG, CONST_INT}}, \ +{ "gr_reg_or_6bit_operand", {SUBREG, REG, CONST_INT}}, \ +{ "gr_reg_or_8bit_operand", {SUBREG, REG, CONST_INT}}, \ +{ "grfr_reg_or_8bit_operand", {SUBREG, REG, CONST_INT}}, \ +{ "gr_reg_or_8bit_adjusted_operand", {SUBREG, REG, CONST_INT}}, \ +{ "gr_reg_or_8bit_and_adjusted_operand", {SUBREG, REG, CONST_INT}}, \ +{ "gr_reg_or_14bit_operand", {SUBREG, REG, CONST_INT}}, \ +{ "gr_reg_or_22bit_operand", {SUBREG, REG, CONST_INT}}, \ +{ "shift_count_operand", {SUBREG, REG, CONST_INT}}, \ +{ "shift_32bit_count_operand", {SUBREG, REG, CONST_INT}}, \ { "shladd_operand", {CONST_INT}}, \ { "fetchadd_operand", {CONST_INT}}, \ { "fr_reg_or_fp01_operand", {SUBREG, REG, CONST_DOUBLE}}, \ diff --git a/gcc/config/ip2k/ip2k.h b/gcc/config/ip2k/ip2k.h index 4685d030c1c..a069bf21d18 100644 --- a/gcc/config/ip2k/ip2k.h +++ b/gcc/config/ip2k/ip2k.h @@ -767,9 +767,6 @@ do { \ #define FUNCTION_MODE HImode -#define INTEGRATE_THRESHOLD(DECL) \ - (1 + (3 * list_length (DECL_ARGUMENTS (DECL)) / 2)) - #define DOLLARS_IN_IDENTIFIERS 0 extern int ip2k_reorg_in_progress; diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c index 734d75743c1..fa898bcd189 100644 --- a/gcc/config/m32r/m32r.c +++ b/gcc/config/m32r/m32r.c @@ -771,8 +771,6 @@ move_src_operand (rtx op, enum machine_mode mode) } else return 1; - case CONSTANT_P_RTX: - return 1; case CONST_DOUBLE : if (mode == SFmode) return 1; diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index 2925ffd3d96..5bcdbd938bc 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -1277,9 +1277,6 @@ mips_const_insns (rtx x) switch (GET_CODE (x)) { - case CONSTANT_P_RTX: - return 1; - case HIGH: if (TARGET_MIPS16 || !mips_symbolic_constant_p (XEXP (x, 0), &symbol_type) diff --git a/gcc/config/mmix/mmix.c b/gcc/config/mmix/mmix.c index 8bf8e0eae5e..5c3014c4731 100644 --- a/gcc/config/mmix/mmix.c +++ b/gcc/config/mmix/mmix.c @@ -1008,7 +1008,6 @@ mmix_constant_address_p (rtx x) case SYMBOL_REF: return 1; - case CONSTANT_P_RTX: case HIGH: /* FIXME: Don't know how to dissect these. Avoid them for now, except we know they're constants. */ diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index d4a286d4d8f..0cc1ed7eb99 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -592,9 +592,6 @@ move_src_operand (rtx op, enum machine_mode mode) if (register_operand (op, mode)) return 1; - if (GET_CODE (op) == CONSTANT_P_RTX) - return 1; - if (GET_CODE (op) == CONST_INT) return cint_ok_for_move (INTVAL (op)); diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 200936e8e49..b08021dd472 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -1987,7 +1987,7 @@ do { \ #define PREDICATE_CODES \ {"reg_or_0_operand", {SUBREG, REG, CONST_INT, CONST_DOUBLE}}, \ {"call_operand_address", {LABEL_REF, SYMBOL_REF, CONST_INT, \ - CONST_DOUBLE, CONST, HIGH, CONSTANT_P_RTX}}, \ + CONST_DOUBLE, CONST, HIGH}}, \ {"indexed_memory_operand", {SUBREG, MEM}}, \ {"symbolic_operand", {SYMBOL_REF, LABEL_REF, CONST}}, \ {"symbolic_memory_operand", {SUBREG, MEM}}, \ @@ -1995,7 +1995,7 @@ do { \ {"reg_or_0_or_nonsymb_mem_operand", {SUBREG, REG, MEM, CONST_INT, \ CONST_DOUBLE}}, \ {"move_dest_operand", {SUBREG, REG, MEM}}, \ - {"move_src_operand", {SUBREG, REG, CONSTANT_P_RTX, CONST_INT, MEM}}, \ + {"move_src_operand", {SUBREG, REG, CONST_INT, MEM}}, \ {"reg_or_cint_move_operand", {SUBREG, REG, CONST_INT}}, \ {"pic_label_operand", {LABEL_REF, CONST}}, \ {"fp_reg_operand", {REG}}, \ diff --git a/gcc/config/rs6000/aix.h b/gcc/config/rs6000/aix.h index c530f988e25..88752079772 100644 --- a/gcc/config/rs6000/aix.h +++ b/gcc/config/rs6000/aix.h @@ -51,12 +51,37 @@ #define REAL_NM_FILE_NAME "/usr/ucb/nm" #define USER_LABEL_PREFIX "" + /* Don't turn -B into -L if the argument specifies a relative file name. */ #define RELATIVE_PREFIX_NOT_LINKDIR /* Because of the above, we must have gcc search itself to find libgcc.a. */ #define LINK_LIBGCC_SPECIAL_1 +#define MFWRAP_SPEC " %{static: %{fmudflap|fmudflapth: \ + -brename:malloc,__wrap_malloc -brename:__real_malloc,malloc \ + -brename:free,__wrap_free -brename:__real_free,free \ + -brename:calloc,__wrap_calloc -brename:__real_calloc,calloc \ + -brename:realloc,__wrap_realloc -brename:__real_realloc,realloc \ + -brename:mmap,__wrap_mmap -brename:__real_mmap,mmap \ + -brename:munmap,__wrap_munmap -brename:__real_munmap,munmap \ + -brename:alloca,__wrap_alloca -brename:__real_alloca,alloca \ +} %{fmudflapth: \ + -brename:pthread_create,__wrap_pthread_create \ + -brename:__real_pthread_create,pthread_create \ + -brename:pthread_join,__wrap_pthread_join \ + -brename:__real_pthread_join,pthread_join \ + -brename:pthread_exit,__wrap_pthread_exit \ + -brename:__real_pthread_exit,pthread_exit \ +}} %{fmudflap|fmudflapth: \ + -brename:main,__wrap_main -brename:__real_main,main \ +}" + +#define MFLIB_SPEC " %{fmudflap: -lmudflap \ + %{static:%(link_gcc_c_sequence) -lmudflap}} \ + %{fmudflapth: -lmudflapth -lpthread \ + %{static:%(link_gcc_c_sequence) -lmudflapth}} " + /* Names to predefine in the preprocessor for this target machine. */ #define TARGET_OS_AIX_CPP_BUILTINS() \ do \ diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 235e704014a..9f6301b3910 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -2419,10 +2419,6 @@ input_operand (rtx op, enum machine_mode mode) if (memory_operand (op, mode)) return 1; - /* Only a tiny bit of handling for CONSTANT_P_RTX is necessary. */ - if (GET_CODE (op) == CONSTANT_P_RTX) - return 1; - /* For floating-point, easy constants are valid. */ if (GET_MODE_CLASS (mode) == MODE_FLOAT && CONSTANT_P (op) @@ -3753,10 +3749,6 @@ rs6000_emit_move (rtx dest, rtx source, enum machine_mode mode) || ! nonimmediate_operand (operands[0], mode))) goto emit_set; - /* Handle the case of CONSTANT_P_RTX. */ - if (GET_CODE (operands[1]) == CONSTANT_P_RTX) - goto emit_set; - /* 128-bit constant floating-point values on Darwin should really be loaded as two parts. */ if ((DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) @@ -13125,7 +13117,8 @@ rs6000_output_function_epilogue (FILE *file, Java is 13. Objective-C is 14. */ if (! strcmp (language_string, "GNU C")) i = 0; - else if (! strcmp (language_string, "GNU F77")) + else if (! strcmp (language_string, "GNU F77") + || ! strcmp (language_string, "GNU F95")) i = 1; else if (! strcmp (language_string, "GNU Pascal")) i = 2; @@ -14120,7 +14113,7 @@ output_function_profiler (FILE *file, int labelno) asm_fprintf (file, "\tmflr %s\n", reg_names[0]); asm_fprintf (file, "\tstd %s,16(%s)\n", reg_names[0], reg_names[1]); - if (current_function_needs_context) + if (cfun->static_chain_decl != NULL) { asm_fprintf (file, "\tstd %s,24(%s)\n", reg_names[STATIC_CHAIN_REGNUM], reg_names[1]); diff --git a/gcc/config/rs6000/t-rs6000 b/gcc/config/rs6000/t-rs6000 index caa07153ad3..9546461e57d 100644 --- a/gcc/config/rs6000/t-rs6000 +++ b/gcc/config/rs6000/t-rs6000 @@ -18,3 +18,23 @@ rs6000-c.o: $(srcdir)/config/rs6000/rs6000-c.c \ # The rs6000 backend doesn't cause warnings in these files. insn-conditions.o-warn = +# The files below trigger warnings in tree-ssa because of the gimplifier +# emitting code that confuse the compiler into thinking that some variables +# are used uninitialized. +jump.o-warn = -Wno-error +regmove.o-warn = -Wno-error +c-typeck.o-warn = -Wno-error +cfgrtl.o-warn = -Wno-error +combine.o-warn = -Wno-error +fold-const.o-warn = -Wno-error +ifcvt.o-warn = -Wno-error +reload1.o-warn = -Wno-error +rtlanal.o-warn = -Wno-error +cp/decl2.o-warn = -Wno-error +cp/pt.o-warn = -Wno-error +f/where.o-warn = -Wno-error +java/expr.o-warn = -Wno-error +objc/objc-act.o-warn = -Wno-error +rs6000.o-warn = -Wno-error +insn-emit.o-warn = -Wno-error +simplify-rtx.o-warn = -Wno-error diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index e5850957bfe..9e786bfdf70 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -2956,18 +2956,14 @@ s390_expand_movstr (rtx dst, rtx src, rtx len) else { rtx dst_addr, src_addr, count, blocks, temp; + rtx loop_end_label = gen_label_rtx (); rtx end_label = gen_label_rtx (); enum machine_mode mode; - tree type; mode = GET_MODE (len); if (mode == VOIDmode) mode = Pmode; - type = lang_hooks.types.type_for_mode (mode, 1); - if (!type) - abort (); - dst_addr = gen_reg_rtx (Pmode); src_addr = gen_reg_rtx (Pmode); count = gen_reg_rtx (mode); @@ -2990,10 +2986,9 @@ s390_expand_movstr (rtx dst, rtx src, rtx len) if (temp != blocks) emit_move_insn (blocks, temp); + emit_cmp_and_jump_insns (blocks, const0_rtx, + EQ, NULL_RTX, mode, 1, loop_end_label); expand_start_loop (1); - expand_exit_loop_top_cond (0, build (NE_EXPR, type, - make_tree (type, blocks), - make_tree (type, const0_rtx))); emit_insn (gen_movstr_short (dst, src, GEN_INT (255))); s390_load_address (dst_addr, @@ -3005,7 +3000,10 @@ s390_expand_movstr (rtx dst, rtx src, rtx len) if (temp != blocks) emit_move_insn (blocks, temp); + emit_cmp_and_jump_insns (blocks, const0_rtx, + EQ, NULL_RTX, mode, 1, loop_end_label); expand_end_loop (); + emit_label (loop_end_label); emit_insn (gen_movstr_short (dst, src, convert_to_mode (Pmode, count, 1))); @@ -3032,18 +3030,14 @@ s390_expand_clrstr (rtx dst, rtx len) else { rtx dst_addr, src_addr, count, blocks, temp; + rtx loop_end_label = gen_label_rtx (); rtx end_label = gen_label_rtx (); enum machine_mode mode; - tree type; mode = GET_MODE (len); if (mode == VOIDmode) mode = Pmode; - type = lang_hooks.types.type_for_mode (mode, 1); - if (!type) - abort (); - dst_addr = gen_reg_rtx (Pmode); src_addr = gen_reg_rtx (Pmode); count = gen_reg_rtx (mode); @@ -3064,10 +3058,9 @@ s390_expand_clrstr (rtx dst, rtx len) if (temp != blocks) emit_move_insn (blocks, temp); + emit_cmp_and_jump_insns (blocks, const0_rtx, + EQ, NULL_RTX, mode, 1, loop_end_label); expand_start_loop (1); - expand_exit_loop_top_cond (0, build (NE_EXPR, type, - make_tree (type, blocks), - make_tree (type, const0_rtx))); emit_insn (gen_clrstr_short (dst, GEN_INT (255))); s390_load_address (dst_addr, @@ -3077,7 +3070,10 @@ s390_expand_clrstr (rtx dst, rtx len) if (temp != blocks) emit_move_insn (blocks, temp); + emit_cmp_and_jump_insns (blocks, const0_rtx, + EQ, NULL_RTX, mode, 1, loop_end_label); expand_end_loop (); + emit_label (loop_end_label); emit_insn (gen_clrstr_short (dst, convert_to_mode (Pmode, count, 1))); emit_label (end_label); @@ -3120,18 +3116,14 @@ s390_expand_cmpmem (rtx target, rtx op0, rtx op1, rtx len) else { rtx addr0, addr1, count, blocks, temp; + rtx loop_end_label = gen_label_rtx (); rtx end_label = gen_label_rtx (); enum machine_mode mode; - tree type; mode = GET_MODE (len); if (mode == VOIDmode) mode = Pmode; - type = lang_hooks.types.type_for_mode (mode, 1); - if (!type) - abort (); - addr0 = gen_reg_rtx (Pmode); addr1 = gen_reg_rtx (Pmode); count = gen_reg_rtx (mode); @@ -3154,10 +3146,9 @@ s390_expand_cmpmem (rtx target, rtx op0, rtx op1, rtx len) if (temp != blocks) emit_move_insn (blocks, temp); + emit_cmp_and_jump_insns (blocks, const0_rtx, + EQ, NULL_RTX, mode, 1, loop_end_label); expand_start_loop (1); - expand_exit_loop_top_cond (0, build (NE_EXPR, type, - make_tree (type, blocks), - make_tree (type, const0_rtx))); emit_insn (gen_cmpmem_short (op0, op1, GEN_INT (255))); temp = gen_rtx_NE (VOIDmode, gen_rtx_REG (CCSmode, 33), const0_rtx); @@ -3175,7 +3166,10 @@ s390_expand_cmpmem (rtx target, rtx op0, rtx op1, rtx len) if (temp != blocks) emit_move_insn (blocks, temp); + emit_cmp_and_jump_insns (blocks, const0_rtx, + EQ, NULL_RTX, mode, 1, loop_end_label); expand_end_loop (); + emit_label (loop_end_label); emit_insn (gen_cmpmem_short (op0, op1, convert_to_mode (Pmode, count, 1))); diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index 5b44f1be03c..30526c2e694 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -4704,7 +4704,7 @@ output_stack_adjust (int size, rtx reg, int epilogue_p, for (i = FIRST_PARM_REG; i < FIRST_PARM_REG + NPARM_REGS (SImode); i++) CLEAR_HARD_REG_BIT (temps, i); - if (current_function_needs_context) + if (cfun->static_chain_decl != NULL) CLEAR_HARD_REG_BIT (temps, STATIC_CHAIN_REGNUM); } temp = scavenge_reg (&temps); @@ -5161,7 +5161,7 @@ sh5_schedule_saves (HARD_REG_SET *live_regs_mask, save_schedule *schedule, if (call_used_regs[i] && ! fixed_regs[i] && i != PR_MEDIA_REG && ! FUNCTION_ARG_REGNO_P (i) && i != FIRST_RET_REG - && ! (current_function_needs_context && i == STATIC_CHAIN_REGNUM) + && ! (cfun->static_chain_decl != NULL && i == STATIC_CHAIN_REGNUM) && ! (current_function_calls_eh_return && (i == EH_RETURN_STACKADJ_REGNO || ((unsigned) i <= EH_RETURN_DATA_REGNO (0) diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c index 2192d967224..278ca9a26b0 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -1280,10 +1280,6 @@ input_operand (rtx op, enum machine_mode mode) if (mode != VOIDmode && GET_MODE (op) != VOIDmode && mode != GET_MODE (op)) return 0; - /* Accept CONSTANT_P_RTX, since it will be gone by CSE1 and result in 0/1. */ - if (GET_CODE (op) == CONSTANT_P_RTX) - return 1; - /* Allow any one instruction integer constant, and all CONST_INT variants when we are working in DImode and !arch64. */ if (GET_MODE_CLASS (mode) == MODE_INT diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c index 83372624309..f9e54cc2df9 100644 --- a/gcc/config/v850/v850.c +++ b/gcc/config/v850/v850.c @@ -1136,7 +1136,6 @@ movsi_source_operand (rtx op, enum machine_mode mode) must be done with HIGH & LO_SUM patterns. */ if (CONSTANT_P (op) && GET_CODE (op) != HIGH - && GET_CODE (op) != CONSTANT_P_RTX && !(GET_CODE (op) == CONST_INT && (CONST_OK_FOR_J (INTVAL (op)) || CONST_OK_FOR_K (INTVAL (op)) diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c index d1103681345..89d8c9ddf3d 100644 --- a/gcc/config/xtensa/xtensa.c +++ b/gcc/config/xtensa/xtensa.c @@ -627,11 +627,6 @@ move_operand (rtx op, enum machine_mode mode) case HImode: case QImode: - /* Accept CONSTANT_P_RTX, since it will be gone by CSE1 and - result in 0/1. */ - if (GET_CODE (op) == CONSTANT_P_RTX) - return TRUE; - if (GET_CODE (op) == CONST_INT && xtensa_simm12b (INTVAL (op))) return TRUE; break; @@ -1252,7 +1247,6 @@ int xtensa_emit_move_sequence (rtx *operands, enum machine_mode mode) { if (CONSTANT_P (operands[1]) - && GET_CODE (operands[1]) != CONSTANT_P_RTX && (GET_CODE (operands[1]) != CONST_INT || !xtensa_simm12b (INTVAL (operands[1])))) { @@ -2229,7 +2223,7 @@ long compute_frame_size (int size) { /* Add space for the incoming static chain value. */ - if (current_function_needs_context) + if (cfun->static_chain_decl != NULL) size += (1 * UNITS_PER_WORD); xtensa_current_frame_size = |