This adjusts existing fallthru comments and adds some new ones. I couldn't convince myself the original code in movsicc was correct, It looks like we properly reverse the condition, but not the operands in the case of LT/LE/LEU/LTU. But then we do almost the same th ing in sh_emit_scc_to_t as well. So I just kept the existing semantics and added fallthru comments.
In gen_shl_and, I'm pretty sure we ended to fallthru. Installing on the trunk. Jeff
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3e7704c..0eb5f88 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2016-10-26 Jeff Law <l...@redhat.com> + * config/sh/sh.c (output_branch): Add missing fallthru comments. + (gen_shl_and): Likewise. + * config/sh/sh.md (movsicc): Add missing fallthru comments. + * config/mips/mips.c (mips16_constant_cost): Add missing fallthru comments. (mips16_build_call_stub): Increase buffer size. Adjust diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c index cf5231e..4ca4b74 100644 --- a/gcc/config/sh/sh.c +++ b/gcc/config/sh/sh.c @@ -2665,6 +2665,7 @@ output_branch (int logic, rtx_insn *insn, rtx *operands) return ""; } + /* FALLTHRU */ /* When relaxing, handle this like a short branch. The linker will fix it up if it still doesn't fit after relaxation. */ case 2: @@ -2690,7 +2691,7 @@ output_branch (int logic, rtx_insn *insn, rtx *operands) return ""; } - /* When relaxing, fall through. */ + /* FALLTHRU */ case 4: { char buffer[10]; @@ -3461,7 +3462,7 @@ sh_rtx_costs (rtx x, machine_mode mode ATTRIBUTE_UNUSED, int outer_code, *total = COSTS_N_INSNS (1); return true; } - /* Fall through to shiftcosts. */ + /* FALLTHRU */ case ASHIFT: case ASHIFTRT: { @@ -4069,12 +4070,14 @@ gen_shl_and (rtx dest, rtx left_rtx, rtx mask_rtx, rtx source) } case 4: shift_gen_fun = gen_shifty_op; + /* FALLTHRU */ case 3: /* If the topmost bit that matters is set, set the topmost bits that don't matter. This way, we might be able to get a shorter signed constant. */ if (mask & ((HOST_WIDE_INT) 1 << (31 - total_shift))) mask |= (HOST_WIDE_INT) ((HOST_WIDE_INT_M1U) << (31 - total_shift)); + /* FALLTHRU */ case 2: /* Don't expand fine-grained when combining, because that will make the pattern fail. */ @@ -4647,6 +4650,7 @@ dump_table (rtx_insn *start, rtx_insn *barrier) align_insn = scan; need_align = false; } + /* FALLTHRU */ case DImode: for (lab = p->label; lab; lab = LABEL_REFS (lab)) scan = emit_label_after (lab, scan); diff --git a/gcc/config/sh/sh.md b/gcc/config/sh/sh.md index dcb31eb..e80ef58 100644 --- a/gcc/config/sh/sh.md +++ b/gcc/config/sh/sh.md @@ -1509,6 +1509,7 @@ case LT: case LE: case LEU: case LTU: if (GET_MODE_CLASS (GET_MODE (op0)) != MODE_INT) break; + /* FALLTHRU */ case NE: new_code = reverse_condition (code); break;