diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b6f4818f4dd..20ac9057f73 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2004-07-08 Kaz Kojima + + * config/sh/sh.c (sh_va_arg): Initinalize lab_over. + * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses. + (MODE_AFTER): Add cast appropriately. + * config/sh/sh.md (movdi splitter): Likewise. + (casesi_worker_2): Add const qualifier appropriately. + (eh_return): Remove unused variable. + (insv): Initialize v; + 2004-07-08 Richard Henderson * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove. diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index d6cf8c33c79..ef5df6b69a6 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -6295,7 +6295,7 @@ sh_va_arg (tree valist, tree type) rtx addr_rtx, r; rtx result_ptr, result = NULL_RTX; int pass_by_ref = MUST_PASS_IN_STACK (TYPE_MODE (type), type); - rtx lab_over; + rtx lab_over = NULL_RTX; size = int_size_in_bytes (type); rsize = (size + UNITS_PER_WORD - 1) & -UNITS_PER_WORD; diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h index c9f411ae72f..3c1e94cf4b0 100644 --- a/gcc/config/sh/sh.h +++ b/gcc/config/sh/sh.h @@ -1533,7 +1533,7 @@ extern enum reg_class reg_class_from_letter[]; : 0) #define CONST_OK_FOR_J16(VALUE) \ - (HOST_BITS_PER_WIDE_INT >= 64 && (VALUE) == (HOST_WIDE_INT) 0xffffffff \ + ((HOST_BITS_PER_WIDE_INT >= 64 && (VALUE) == (HOST_WIDE_INT) 0xffffffff) \ || (HOST_BITS_PER_WIDE_INT >= 64 && (VALUE) == (HOST_WIDE_INT) -1 << 32)) #define CONST_OK_FOR_J(VALUE, STR) \ ((STR)[1] == '1' && (STR)[2] == '6' ? CONST_OK_FOR_J16 (VALUE) \ @@ -3365,7 +3365,7 @@ extern int rtx_equal_function_value_matters; (TARGET_HITACHI \ && recog_memoized (INSN) >= 0 \ && get_attr_fp_set (INSN) != FP_SET_NONE \ - ? get_attr_fp_set (INSN) \ + ? (int) get_attr_fp_set (INSN) \ : (MODE)) #define MODE_PRIORITY_TO_MODE(ENTITY, N) \ diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index 531db46bc84..e901392dc9d 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -4068,7 +4068,8 @@ } /* Try movi / mshflo.l */ val2 = (HOST_WIDE_INT) val >> 32; - if (val2 == trunc_int_for_mode (val, SImode)) + if (val2 == ((unsigned HOST_WIDE_INT) + trunc_int_for_mode (val, SImode))) { operands[1] = gen_mshflo_l_di (operands[0], operands[0], operands[0]); @@ -7171,7 +7172,7 @@ mov.l\\t1f,r0\\n\\ "* { rtx diff_vec = PATTERN (next_real_insn (operands[2])); - char *load; + const char *load; if (GET_CODE (diff_vec) != ADDR_DIFF_VEC) abort (); @@ -7415,7 +7416,7 @@ mov.l\\t1f,r0\\n\\ [(use (match_operand 0 "register_operand" ""))] "" { - rtx tmp, ra = operands[0]; + rtx ra = operands[0]; if (TARGET_SHMEDIA64) emit_insn (gen_eh_set_ra_di (ra)); @@ -9258,7 +9259,7 @@ mov.l\\t1f,r0\\n\\ " { rtx addr_target, orig_address, shift_reg, qi_val; - HOST_WIDE_INT bitsize, size, v; + HOST_WIDE_INT bitsize, size, v = 0; rtx x = operands[3]; /* ??? expmed doesn't care for non-register predicates. */