diff options
Diffstat (limited to 'gcc/final.c')
-rw-r--r-- | gcc/final.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/final.c b/gcc/final.c index d25b8e0..577d5eb 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -396,7 +396,7 @@ get_attr_length_1 (rtx insn, int (*fallback_fn) (rtx)) case JUMP_INSN: body = PATTERN (insn); - if (GET_CODE (body) == ADDR_VEC || GET_CODE (body) == ADDR_DIFF_VEC) + if (JUMP_TABLE_DATA_P (insn)) { /* Alignment is machine-dependent and should be handled by ADDR_VEC_ALIGN. */ @@ -1020,7 +1020,7 @@ shorten_branches (rtx first) int min_align; addr_diff_vec_flags flags; - if (!JUMP_P (insn) + if (! JUMP_TABLE_DATA_P (insn) || GET_CODE (PATTERN (insn)) != ADDR_DIFF_VEC) continue; pat = PATTERN (insn); @@ -1094,7 +1094,7 @@ shorten_branches (rtx first) continue; body = PATTERN (insn); - if (GET_CODE (body) == ADDR_VEC || GET_CODE (body) == ADDR_DIFF_VEC) + if (JUMP_TABLE_DATA_P (insn)) { /* This only takes room if read-only data goes into the text section. */ @@ -1230,7 +1230,8 @@ shorten_branches (rtx first) INSN_ADDRESSES (uid) = insn_current_address; #ifdef CASE_VECTOR_SHORTEN_MODE - if (optimize && JUMP_P (insn) + if (optimize + && JUMP_TABLE_DATA_P (insn) && GET_CODE (PATTERN (insn)) == ADDR_DIFF_VEC) { rtx body = PATTERN (insn); @@ -2404,7 +2405,7 @@ final_scan_insn (rtx insn, FILE *file, int optimize_p ATTRIBUTE_UNUSED, /* Detect insns that are really jump-tables and output them as such. */ - if (GET_CODE (body) == ADDR_VEC || GET_CODE (body) == ADDR_DIFF_VEC) + if (JUMP_TABLE_DATA_P (insn)) { #if !(defined(ASM_OUTPUT_ADDR_VEC) || defined(ASM_OUTPUT_ADDR_DIFF_VEC)) int vlen, idx; |