diff options
Diffstat (limited to 'gcc/config/rs6000')
-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 |
3 files changed, 48 insertions, 10 deletions
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 |