diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/config/darwin.h | 6 | ||||
| -rw-r--r-- | gcc/config/rs6000/rs6000.c | 2 |
3 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index dfe54f59fb9..06cb24ec358 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2001-11-15 Dale Johannesen <dalej@apple.com> + + * config/darwin.h (SELECT_RTX_SECTION): Force address + initializers into 'const' section + * config/rs6000/rs6000.c (rs6000_emit_cmove): Fix mode of + if_then_else to match result, not operands + Thu Nov 15 17:57:48 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P. diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index 2b1826d43bd..cfa2bd5745f 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -647,13 +647,17 @@ static void alias_section (name, alias) \ } \ while (0) +/* This can be called with address expressions as "rtx". + They must go in "const". */ #undef SELECT_RTX_SECTION #define SELECT_RTX_SECTION(mode, rtx, align) \ do \ { \ if (GET_MODE_SIZE (mode) == 8) \ literal8_section (); \ - else if (GET_MODE_SIZE (mode) == 4) \ + else if (GET_MODE_SIZE (mode) == 4 \ + && (GET_CODE (rtx) == CONST_INT \ + || GET_CODE (rtx) == CONST_DOUBLE)) \ literal4_section (); \ else \ const_section (); \ diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index c51ed4e5640..186692db38c 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -5805,7 +5805,7 @@ rs6000_emit_cmove (dest, op, true_cond, false_cond) } emit_insn (gen_rtx_SET (VOIDmode, dest, - gen_rtx_IF_THEN_ELSE (mode, + gen_rtx_IF_THEN_ELSE (GET_MODE (dest), gen_rtx_GE (VOIDmode, op0, op1), true_cond, false_cond))); |

