static const HChar *
s390_irgen_PCC(void)
{
- if (! s390_host_has_msa4) {
- emulation_failure(EmFail_S390X_msa4);
- return "pcc";
- }
extension(S390_EXT_PCC, 0);
return "pcc";
}
static const HChar *
s390_irgen_KMCTR(UChar r3, UChar r1, UChar r2)
{
- if (! s390_host_has_msa4) {
- emulation_failure(EmFail_S390X_msa4);
- return "kmctr";
- }
s390_insn_assert("kmctr", r1 % 2 == 0 && r1 != 0 && r2 % 2 == 0 && r2 != 0 &&
r3 % 2 == 0 && r3 != 0);
extension(S390_EXT_KMCTR, r1 | (r2 << 4) | (r3 << 8));
static const HChar *
s390_irgen_KMO(UChar r1, UChar r2)
{
- if (! s390_host_has_msa4) {
- emulation_failure(EmFail_S390X_msa4);
- return "kmo";
- }
s390_insn_assert("kmo", r1 != 0 && r1 % 2 == 0 && r2 != 0 && r2 % 2 == 0);
extension(S390_EXT_KMO, r1 | (r2 << 4));
return "kmo";
static const HChar *
s390_irgen_KMF(UChar r1, UChar r2)
{
- if (! s390_host_has_msa4) {
- emulation_failure(EmFail_S390X_msa4);
- return "kmf";
- }
s390_insn_assert("kmf", r1 != 0 && r1 % 2 == 0 && r2 != 0 && r2 % 2 == 0);
extension(S390_EXT_KMF, r1 | (r2 << 4));
return "kmf";
(s390_host_hwcaps & (VEX_HWCAPS_S390X_VXD))
#define s390_host_has_msa \
(s390_host_hwcaps & (VEX_HWCAPS_S390X_MSA))
-#define s390_host_has_msa4 \
- (s390_host_hwcaps & (VEX_HWCAPS_S390X_MSA4))
#define s390_host_has_msa8 \
(s390_host_hwcaps & (VEX_HWCAPS_S390X_MSA8))
#define s390_host_has_msa9 \
return "Encountered an instruction that requires the message-security"
" assist.\n"
" That assist is not available on this host";
- case EmFail_S390X_msa4:
- return "Encountered an instruction that requires the"
- " message-security-assist extension 4.\n"
- " That extension is not available on this host";
case EmFail_S390X_msa8:
return "Encountered an instruction that requires the"
" message-security-assist extension 8.\n"
{ VEX_HWCAPS_S390X_VXE2, "vxe2" },
{ VEX_HWCAPS_S390X_VXD, "vxd" },
{ VEX_HWCAPS_S390X_MSA, "msa" },
- { VEX_HWCAPS_S390X_MSA4, "msa4" },
{ VEX_HWCAPS_S390X_MSA8, "msa8" },
{ VEX_HWCAPS_S390X_MSA9, "msa9" },
};
#define VEX_HWCAPS_S390X_VXE2 (1<<25) /* Vector-enhancements facility 2 */
#define VEX_HWCAPS_S390X_VXD (1<<26) /* Vector packed-decimal facility */
#define VEX_HWCAPS_S390X_MSA (1<<27) /* Message-security assist */
-#define VEX_HWCAPS_S390X_MSA4 (1<<28) /* Message-security-assist extension 4 */
#define VEX_HWCAPS_S390X_MSA8 (1<<29) /* Message-security-assist extension 8 */
#define VEX_HWCAPS_S390X_MSA9 (1<<30) /* Message-security-assist extension 9 */
VEX_HWCAPS_S390X_VXE2 | \
VEX_HWCAPS_S390X_VXD | \
VEX_HWCAPS_S390X_MSA | \
- VEX_HWCAPS_S390X_MSA4 | \
VEX_HWCAPS_S390X_MSA8 | \
VEX_HWCAPS_S390X_MSA9)
this host */
EmFail_S390X_msa,
- /* insn needs message-security-assist extension 4 which is not available
- on this host */
- EmFail_S390X_msa4,
-
/* insn needs message-security-assist extension 8 which is not available
on this host */
EmFail_S390X_msa8,
{ False, 148, VEX_HWCAPS_S390X_VXE2, "VXE2" },
{ False, 134, VEX_HWCAPS_S390X_VXD, "VXD" },
{ False, 17, VEX_HWCAPS_S390X_MSA, "MSA" },
- { False, 77, VEX_HWCAPS_S390X_MSA4, "MSA4" },
{ False, 146, VEX_HWCAPS_S390X_MSA8, "MSA8" },
{ False, 155, VEX_HWCAPS_S390X_MSA9, "MSA9" },
};