diff options
Diffstat (limited to 'gcc/config/s390/s390.c')
-rw-r--r-- | gcc/config/s390/s390.c | 179 |
1 files changed, 94 insertions, 85 deletions
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index deced95..1f19298 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -1134,11 +1134,20 @@ s390_handle_vectorbool_attribute (tree *node, tree name ATTRIBUTE_UNUSED, mode = TYPE_MODE (type); switch (mode) { - case DImode: case V2DImode: result = s390_builtin_types[BT_BV2DI]; break; - case SImode: case V4SImode: result = s390_builtin_types[BT_BV4SI]; break; - case HImode: case V8HImode: result = s390_builtin_types[BT_BV8HI]; break; - case QImode: case V16QImode: result = s390_builtin_types[BT_BV16QI]; - default: break; + case E_DImode: case E_V2DImode: + result = s390_builtin_types[BT_BV2DI]; + break; + case E_SImode: case E_V4SImode: + result = s390_builtin_types[BT_BV4SI]; + break; + case E_HImode: case E_V8HImode: + result = s390_builtin_types[BT_BV8HI]; + break; + case E_QImode: case E_V16QImode: + result = s390_builtin_types[BT_BV16QI]; + break; + default: + break; } *no_add_attrs = true; /* No need to hang on to the attribute. */ @@ -1248,14 +1257,14 @@ s390_vector_mode_supported_p (machine_mode mode) switch (inner) { - case QImode: - case HImode: - case SImode: - case DImode: - case TImode: - case SFmode: - case DFmode: - case TFmode: + case E_QImode: + case E_HImode: + case E_SImode: + case E_DImode: + case E_TImode: + case E_SFmode: + case E_DFmode: + case E_TFmode: return true; default: return false; @@ -1282,18 +1291,18 @@ s390_cc_modes_compatible (machine_mode m1, machine_mode m2) switch (m1) { - case CCZmode: + case E_CCZmode: if (m2 == CCUmode || m2 == CCTmode || m2 == CCZ1mode || m2 == CCSmode || m2 == CCSRmode || m2 == CCURmode) return m2; return VOIDmode; - case CCSmode: - case CCUmode: - case CCTmode: - case CCSRmode: - case CCURmode: - case CCZ1mode: + case E_CCSmode: + case E_CCUmode: + case E_CCTmode: + case E_CCSRmode: + case E_CCURmode: + case E_CCZ1mode: if (m2 == CCZmode) return m1; @@ -1327,36 +1336,36 @@ s390_match_ccmode_set (rtx set, machine_mode req_mode) set_mode = GET_MODE (SET_DEST (set)); switch (set_mode) { - case CCZ1mode: - case CCSmode: - case CCSRmode: - case CCUmode: - case CCURmode: - case CCLmode: - case CCL1mode: - case CCL2mode: - case CCL3mode: - case CCT1mode: - case CCT2mode: - case CCT3mode: - case CCVEQmode: - case CCVIHmode: - case CCVIHUmode: - case CCVFHmode: - case CCVFHEmode: + case E_CCZ1mode: + case E_CCSmode: + case E_CCSRmode: + case E_CCUmode: + case E_CCURmode: + case E_CCLmode: + case E_CCL1mode: + case E_CCL2mode: + case E_CCL3mode: + case E_CCT1mode: + case E_CCT2mode: + case E_CCT3mode: + case E_CCVEQmode: + case E_CCVIHmode: + case E_CCVIHUmode: + case E_CCVFHmode: + case E_CCVFHEmode: if (req_mode != set_mode) return 0; break; - case CCZmode: + case E_CCZmode: if (req_mode != CCSmode && req_mode != CCUmode && req_mode != CCTmode && req_mode != CCSRmode && req_mode != CCURmode && req_mode != CCZ1mode) return 0; break; - case CCAPmode: - case CCANmode: + case E_CCAPmode: + case E_CCANmode: if (req_mode != CCAmode) return 0; break; @@ -1675,8 +1684,8 @@ s390_canonicalize_comparison (int *code, rtx *op0, rtx *op1, enum rtx_code new_code = UNKNOWN; switch (GET_MODE (XVECEXP (*op0, 0, 0))) { - case CCZmode: - case CCRAWmode: + case E_CCZmode: + case E_CCRAWmode: switch (*code) { case EQ: new_code = EQ; break; @@ -1792,20 +1801,20 @@ s390_emit_compare_and_swap (enum rtx_code code, rtx old, rtx mem, cc = gen_rtx_REG (ccmode, CC_REGNUM); switch (GET_MODE (mem)) { - case SImode: + case E_SImode: emit_insn (gen_atomic_compare_and_swapsi_internal (old, mem, cmp, new_rtx, cc)); break; - case DImode: + case E_DImode: emit_insn (gen_atomic_compare_and_swapdi_internal (old, mem, cmp, new_rtx, cc)); break; - case TImode: + case E_TImode: emit_insn (gen_atomic_compare_and_swapti_internal (old, mem, cmp, new_rtx, cc)); break; - case QImode: - case HImode: + case E_QImode: + case E_HImode: default: gcc_unreachable (); } @@ -1849,8 +1858,8 @@ s390_branch_condition_mask (rtx code) switch (GET_MODE (XEXP (code, 0))) { - case CCZmode: - case CCZ1mode: + case E_CCZmode: + case E_CCZ1mode: switch (GET_CODE (code)) { case EQ: return CC0; @@ -1859,7 +1868,7 @@ s390_branch_condition_mask (rtx code) } break; - case CCT1mode: + case E_CCT1mode: switch (GET_CODE (code)) { case EQ: return CC1; @@ -1868,7 +1877,7 @@ s390_branch_condition_mask (rtx code) } break; - case CCT2mode: + case E_CCT2mode: switch (GET_CODE (code)) { case EQ: return CC2; @@ -1877,7 +1886,7 @@ s390_branch_condition_mask (rtx code) } break; - case CCT3mode: + case E_CCT3mode: switch (GET_CODE (code)) { case EQ: return CC3; @@ -1886,7 +1895,7 @@ s390_branch_condition_mask (rtx code) } break; - case CCLmode: + case E_CCLmode: switch (GET_CODE (code)) { case EQ: return CC0 | CC2; @@ -1895,7 +1904,7 @@ s390_branch_condition_mask (rtx code) } break; - case CCL1mode: + case E_CCL1mode: switch (GET_CODE (code)) { case LTU: return CC2 | CC3; /* carry */ @@ -1904,7 +1913,7 @@ s390_branch_condition_mask (rtx code) } break; - case CCL2mode: + case E_CCL2mode: switch (GET_CODE (code)) { case GTU: return CC0 | CC1; /* borrow */ @@ -1913,7 +1922,7 @@ s390_branch_condition_mask (rtx code) } break; - case CCL3mode: + case E_CCL3mode: switch (GET_CODE (code)) { case EQ: return CC0 | CC2; @@ -1925,7 +1934,7 @@ s390_branch_condition_mask (rtx code) default: return -1; } - case CCUmode: + case E_CCUmode: switch (GET_CODE (code)) { case EQ: return CC0; @@ -1938,7 +1947,7 @@ s390_branch_condition_mask (rtx code) } break; - case CCURmode: + case E_CCURmode: switch (GET_CODE (code)) { case EQ: return CC0; @@ -1951,7 +1960,7 @@ s390_branch_condition_mask (rtx code) } break; - case CCAPmode: + case E_CCAPmode: switch (GET_CODE (code)) { case EQ: return CC0; @@ -1964,7 +1973,7 @@ s390_branch_condition_mask (rtx code) } break; - case CCANmode: + case E_CCANmode: switch (GET_CODE (code)) { case EQ: return CC0; @@ -1977,7 +1986,7 @@ s390_branch_condition_mask (rtx code) } break; - case CCSmode: + case E_CCSmode: switch (GET_CODE (code)) { case EQ: return CC0; @@ -1998,7 +2007,7 @@ s390_branch_condition_mask (rtx code) } break; - case CCSRmode: + case E_CCSRmode: switch (GET_CODE (code)) { case EQ: return CC0; @@ -2022,7 +2031,7 @@ s390_branch_condition_mask (rtx code) /* Vector comparison modes. */ /* CC2 will never be set. It however is part of the negated masks. */ - case CCVIALLmode: + case E_CCVIALLmode: switch (GET_CODE (code)) { case EQ: @@ -2037,7 +2046,7 @@ s390_branch_condition_mask (rtx code) default: return -1; } - case CCVIANYmode: + case E_CCVIANYmode: switch (GET_CODE (code)) { case EQ: @@ -2051,7 +2060,7 @@ s390_branch_condition_mask (rtx code) case LT: return CC3 | CC2; default: return -1; } - case CCVFALLmode: + case E_CCVFALLmode: switch (GET_CODE (code)) { case EQ: @@ -2064,7 +2073,7 @@ s390_branch_condition_mask (rtx code) default: return -1; } - case CCVFANYmode: + case E_CCVFANYmode: switch (GET_CODE (code)) { case EQ: @@ -2077,7 +2086,7 @@ s390_branch_condition_mask (rtx code) default: return -1; } - case CCRAWmode: + case E_CCRAWmode: switch (GET_CODE (code)) { case EQ: @@ -3510,7 +3519,7 @@ s390_rtx_costs (rtx x, machine_mode mode, int outer_code, case MULT: switch (mode) { - case SImode: + case E_SImode: { rtx left = XEXP (x, 0); rtx right = XEXP (x, 1); @@ -3523,7 +3532,7 @@ s390_rtx_costs (rtx x, machine_mode mode, int outer_code, *total = s390_cost->ms; /* msr, ms, msy */ break; } - case DImode: + case E_DImode: { rtx left = XEXP (x, 0); rtx right = XEXP (x, 1); @@ -3554,11 +3563,11 @@ s390_rtx_costs (rtx x, machine_mode mode, int outer_code, } break; } - case SFmode: - case DFmode: + case E_SFmode: + case E_DFmode: *total = s390_cost->mult_df; break; - case TFmode: + case E_TFmode: *total = s390_cost->mxbr; break; default: @@ -3569,10 +3578,10 @@ s390_rtx_costs (rtx x, machine_mode mode, int outer_code, case FMA: switch (mode) { - case DFmode: + case E_DFmode: *total = s390_cost->madbr; break; - case SFmode: + case E_SFmode: *total = s390_cost->maebr; break; default: @@ -4292,7 +4301,7 @@ s390_secondary_reload (bool in_p, rtx x, reg_class_t rclass_i, GET_MODE_SIZE (mode)))) { #define __SECONDARY_RELOAD_CASE(M,m) \ - case M##mode: \ + case E_##M##mode: \ if (TARGET_64BIT) \ sri->icode = in_p ? CODE_FOR_reload##m##di_toreg_z10 : \ CODE_FOR_reload##m##di_tomem_z10; \ @@ -7006,13 +7015,13 @@ s390_expand_cs (machine_mode mode, rtx btarget, rtx vtarget, rtx mem, { switch (mode) { - case TImode: - case DImode: - case SImode: + case E_TImode: + case E_DImode: + case E_SImode: s390_expand_cs_tdsi (mode, btarget, vtarget, mem, cmp, new_rtx, is_weak); break; - case HImode: - case QImode: + case E_HImode: + case E_QImode: s390_expand_cs_hqi (mode, btarget, vtarget, mem, cmp, new_rtx, is_weak); break; default: @@ -15490,15 +15499,15 @@ s390_preferred_simd_mode (machine_mode mode) if (TARGET_VX) switch (mode) { - case DFmode: + case E_DFmode: return V2DFmode; - case DImode: + case E_DImode: return V2DImode; - case SImode: + case E_SImode: return V4SImode; - case HImode: + case E_HImode: return V8HImode; - case QImode: + case E_QImode: return V16QImode; default:; } |