aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/s390/s390.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/s390/s390.c')
-rw-r--r--gcc/config/s390/s390.c179
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:;
}