> I'm trying the attached patch over sh-softfp-20100718-2131 patch.
> All regressions go away with it on cross sh4-unknown-linux-gnu,
> though the native bootstrap will take a few days more.
There are a few warnings in bootstrap:
../trunk/gcc/config/sh/sh.c: In function 'sh_soft_fp_cmp':
../trunk/gcc/config/sh/sh.c:2193:8: error: enum conversion in initialization is
invalid in C++ [-Werror=c++-compat]
../trunk/gcc/config/sh/sh.c:2248:3: error: enum conversion when passing
argument 1 of 'gen_rtx_fmt_ee_stat' is invalid in C++ [-Werror=c++-compat]
./genrtl.h:24:1: note: expected 'enum rtx_code' but argument is of type 'int'
../trunk/gcc/config/sh/sh.c: In function 'expand_sfunc_op':
../trunk/gcc/config/sh/sh.c:8744:19: error: variable 'insn' set but not used
[-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors
The attached is a fixup for them.
Unfortunately, the bootstrap has failed with stage2/stage3
comparison failure, though it might be irrelevant with softfp
patches. I'll try again with some older revision.
Regards,
kaz
--
--- ORIG/trunk/gcc/config/sh/sh.c 2010-07-19 10:58:36.000000000 +0900
+++ trunk/gcc/config/sh/sh.c 2010-07-21 06:45:18.000000000 +0900
@@ -2185,12 +2185,13 @@ sh_emit_cheap_store_flag (enum machine_m
}
static rtx
-sh_soft_fp_cmp (int code, enum machine_mode op_mode, rtx op0, rtx op1)
+sh_soft_fp_cmp (enum rtx_code code, enum machine_mode op_mode, rtx op0,
+ rtx op1)
{
const char *name = NULL;
rtx (*fun) (rtx, rtx), addr, tmp, last, equiv;
int df = op_mode == DFmode;
- enum machine_mode mode = CODE_FOR_nothing; /* shut up warning. */
+ enum machine_mode mode = MAX_MACHINE_MODE; /* shut up warning. */
switch (code)
{
@@ -8741,13 +8742,13 @@ expand_sfunc_op (int nargs, enum machine
const char *name, rtx equiv, rtx *operands)
{
int next_reg = FIRST_PARM_REG, i;
- rtx addr, last, insn;
+ rtx addr, last;
addr = gen_reg_rtx (Pmode);
function_symbol (addr, name, SFUNC_FREQUENT);
for ( i = 1; i <= nargs; i++)
{
- insn = emit_move_insn (gen_rtx_REG (mode, next_reg), operands[i]);
+ emit_move_insn (gen_rtx_REG (mode, next_reg), operands[i]);
next_reg += GET_MODE_SIZE (mode) / UNITS_PER_WORD;
}
last = emit_insn ((*fun) (operands[0], addr));