[multiple changes]
authorDavid Edelsohn <dje@gcc.gnu.org>
Wed, 20 Feb 2002 04:56:34 +0000 (23:56 -0500)
committerDavid Edelsohn <dje@gcc.gnu.org>
Wed, 20 Feb 2002 04:56:34 +0000 (23:56 -0500)
2002-02-19  David Edelsohn  <edelsohn@gnu.org>

        * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
        really_call_used[VRSAVE_REGNO] if not Altivec.

2002-02-19  Alan Modra  <amodra@bigpond.net.au>

        * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
        MODE_MASK.
        (constant_pool_expr_1): Fix formatting.
        (rs6000_legitimize_reload_address): Likewise.

From-SVN: r49890

gcc/ChangeLog
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.h

index 5123092688a6a686ce9ee145e912fa412ee25723..55f0d4f58fff0ddc88b4ad66e58dc8d77c2cfcf4 100644 (file)
@@ -1,3 +1,15 @@
+2002-02-19  David Edelsohn  <edelsohn@gnu.org>
+
+       * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
+       really_call_used[VRSAVE_REGNO] if not Altivec.
+
+2002-02-19  Alan Modra  <amodra@bigpond.net.au>
+       
+       * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
+       MODE_MASK.
+       (constant_pool_expr_1): Fix formatting.
+       (rs6000_legitimize_reload_address): Likewise.
+
 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
        * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
index 5e3a7353c3328161215153ea54a96bac2ebe9779..1b1802018021cdd0098c1297df13a365d7c0ce68 100644 (file)
@@ -769,7 +769,7 @@ u_short_cint_operand (op, mode)
      enum machine_mode mode ATTRIBUTE_UNUSED;
 {
   return (GET_CODE (op) == CONST_INT
-         && CONST_OK_FOR_LETTER_P (INTVAL (op), 'K'));
+         && CONST_OK_FOR_LETTER_P (INTVAL (op) & GET_MODE_MASK (mode), 'K'));
 }
 
 /* Return 1 if OP is a CONST_INT that cannot fit in a signed D field.  */
@@ -1711,8 +1711,8 @@ constant_pool_expr_1 (op, have_sym, have_toc)
        return 0;
     case PLUS:
     case MINUS:
-      return constant_pool_expr_1 (XEXP (op, 0), have_sym, have_toc) &&
-       constant_pool_expr_1 (XEXP (op, 1), have_sym, have_toc);
+      return (constant_pool_expr_1 (XEXP (op, 0), have_sym, have_toc)
+             && constant_pool_expr_1 (XEXP (op, 1), have_sym, have_toc));
     case CONST:
       return constant_pool_expr_1 (XEXP (op, 0), have_sym, have_toc);
     case CONST_INT:
@@ -1960,8 +1960,8 @@ rs6000_legitimize_reload_address (x, mode, opnum, type, ind_levels, win)
     }
 #endif
   if (TARGET_TOC
-          && CONSTANT_POOL_EXPR_P (x)
-          && ASM_OUTPUT_SPECIAL_POOL_ENTRY_P (get_pool_constant (x), mode))
+      && CONSTANT_POOL_EXPR_P (x)
+      && ASM_OUTPUT_SPECIAL_POOL_ENTRY_P (get_pool_constant (x), mode))
     {
       (x) = create_TOC_reference (x);
       *win = 1;
index cdbe3361a91f234a8ed876ec7e650054a785f0e1..b00e549961e91c1259bdc6f3f341409e706feda0 100644 (file)
@@ -970,8 +970,11 @@ extern int rs6000_altivec_abi;
       = call_used_regs[PIC_OFFSET_TABLE_REGNUM]                                \
       = call_really_used_regs[PIC_OFFSET_TABLE_REGNUM] = 1;            \
   if (! TARGET_ALTIVEC)                                                        \
-    for (i = FIRST_ALTIVEC_REGNO; i <= LAST_ALTIVEC_REGNO; ++i)                \
-      fixed_regs[i] = call_used_regs[i] = call_really_used_regs[i] = 1;        \
+    {                                                                  \
+      for (i = FIRST_ALTIVEC_REGNO; i <= LAST_ALTIVEC_REGNO; ++i)      \
+       fixed_regs[i] = call_used_regs[i] = call_really_used_regs[i] = 1; \
+      call_really_used_regs[VRSAVE_REGNO] = 1;                         \
+    }                                                                  \
   if (TARGET_ALTIVEC_ABI)                                              \
     for (i = FIRST_ALTIVEC_REGNO; i < FIRST_ALTIVEC_REGNO + 20; ++i)   \
       call_used_regs[i] = call_really_used_regs[i] = 1;                        \