static UChar *
s390_emit_LOCGR(UChar *p, UChar m3, UChar r1, UChar r2)
{
- vassert(s390_host_has_lsc);
if (UNLIKELY(vex_traceflags & VEX_TRACE_ASM))
S390_DISASM(XMNM("locgr", cls_disasm), GPR(r1), GPR(r2), MASK(m3));
p = buf;
- if (s390_host_has_lsc && hregClass(dst) == HRcInt64) {
+ if (hregClass(dst) == HRcInt64) {
/* LOCx is not the preferred way to implement an unconditional load. */
if (cond == S390_CC_ALWAYS) goto use_branch_insn;
extern UInt s390_host_hwcaps;
/* Convenience macros to test installed facilities */
-#define s390_host_has_lsc \
- (s390_host_hwcaps & (VEX_HWCAPS_S390X_LSC))
#define s390_host_has_pfpo \
(s390_host_hwcaps & (VEX_HWCAPS_S390X_PFPO))
#define s390_host_has_vx \
UInt hwcaps_bit;
HChar name[6];
} hwcaps_list[] = {
- { VEX_HWCAPS_S390X_LSC, "lsc" },
{ VEX_HWCAPS_S390X_PFPO, "pfpo" },
{ VEX_HWCAPS_S390X_VX, "vx" },
{ VEX_HWCAPS_S390X_MSA5, "msa5" },
#define VEX_S390X_MODEL_UNKNOWN 19 /* always last in list */
#define VEX_S390X_MODEL_MASK 0x3F
-#define VEX_HWCAPS_S390X_LSC (1<<16) /* Conditional load/store facility */
#define VEX_HWCAPS_S390X_PFPO (1<<17) /* Perform floating point ops facility */
#define VEX_HWCAPS_S390X_VX (1<<18) /* Vector facility */
#define VEX_HWCAPS_S390X_MSA5 (1<<19) /* Message-security-assistance facility 5 */
#define VEX_HWCAPS_S390X_MSA9 (1<<30) /* Message-security-assist extension 9 */
/* Special value representing all available s390x hwcaps */
-#define VEX_HWCAPS_S390X_ALL (VEX_HWCAPS_S390X_LSC | \
- VEX_HWCAPS_S390X_PFPO | \
+#define VEX_HWCAPS_S390X_ALL (VEX_HWCAPS_S390X_PFPO | \
VEX_HWCAPS_S390X_VX | \
VEX_HWCAPS_S390X_MSA5 | \
VEX_HWCAPS_S390X_MI2 | \
UInt hwcaps_bit;
const HChar name[6]; // may need adjustment for new facility names
} fac_hwcaps[] = {
- { False, 45, VEX_HWCAPS_S390X_LSC, "LSC" },
{ False, 44, VEX_HWCAPS_S390X_PFPO, "PFPO" },
{ False, 129, VEX_HWCAPS_S390X_VX, "VX" },
{ False, 57, VEX_HWCAPS_S390X_MSA5, "MSA5" },
prog: high-word
-prereq: ../../../tests/s390x_features 's390x-highw'
match = facilities[0] & FAC_BIT(35);
} else if (strcmp(feature, "s390x-pfpo") == 0 ) {
match = facilities[0] & FAC_BIT(44);
- } else if (strcmp(feature, "s390x-highw") == 0 ) {
- match = facilities[0] & FAC_BIT(45);
} else if (strcmp(feature, "s390x-vx") == 0 ) {
/* VX needs kernel support; thus check the appropriate HWCAP bit. */
match = GET_HWCAP() & 0x800;