+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
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. */
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:
}
#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;
= 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; \