static const HChar *
s390_irgen_KM(UChar r1, UChar r2)
{
- if (! s390_host_has_msa) {
- emulation_failure(EmFail_S390X_msa);
- return "km";
- }
s390_insn_assert("km", r1 != 0 && r1 % 2 == 0 && r2 != 0 && r2 % 2 == 0);
extension(S390_EXT_KM, r1 | (r2 << 4));
return "km";
static const HChar *
s390_irgen_KMC(UChar r1, UChar r2)
{
- if (! s390_host_has_msa) {
- emulation_failure(EmFail_S390X_msa);
- return "kmc";
- }
s390_insn_assert("kmc", r1 != 0 && r1 % 2 == 0 && r2 != 0 && r2 % 2 == 0);
extension(S390_EXT_KMC, r1 | (r2 << 4));
return "kmc";
static const HChar *
s390_irgen_KIMD(UChar r1, UChar r2)
{
- if (! s390_host_has_msa) {
- emulation_failure(EmFail_S390X_msa);
- return "kimd";
- }
/* r1 is reserved */
s390_insn_assert("kimd", r2 != 0 && r2 % 2 == 0);
extension(S390_EXT_KIMD, r1 | (r2 << 4));
static const HChar *
s390_irgen_KLMD(UChar r1, UChar r2)
{
- if (! s390_host_has_msa) {
- emulation_failure(EmFail_S390X_msa);
- return "klmd";
- }
/* r1 is only used by some functions */
s390_insn_assert("klmd", r2 != 0 && r2 % 2 == 0);
extension(S390_EXT_KLMD, r1 | (r2 << 4));
static const HChar *
s390_irgen_KMAC(UChar r1, UChar r2)
{
- if (! s390_host_has_msa) {
- emulation_failure(EmFail_S390X_msa);
- return "kmac";
- }
/* r1 is ignored */
s390_insn_assert("kmac", r2 != 0 && r2 % 2 == 0);
extension(S390_EXT_KMAC, r1 | (r2 << 4));
(s390_host_hwcaps & (VEX_HWCAPS_S390X_VXE2))
#define s390_host_has_vxd \
(s390_host_hwcaps & (VEX_HWCAPS_S390X_VXD))
-#define s390_host_has_msa \
- (s390_host_hwcaps & (VEX_HWCAPS_S390X_MSA))
#define s390_host_has_msa8 \
(s390_host_hwcaps & (VEX_HWCAPS_S390X_MSA8))
#define s390_host_has_msa9 \
return "Encountered an instruction that requires the vector-packed-decimal\n"
" facility.\n"
" That facility is not available on this host";
- case EmFail_S390X_msa:
- return "Encountered an instruction that requires the message-security"
- " assist.\n"
- " That assist 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_DFLT, "dflt" },
{ VEX_HWCAPS_S390X_VXE2, "vxe2" },
{ VEX_HWCAPS_S390X_VXD, "vxd" },
- { VEX_HWCAPS_S390X_MSA, "msa" },
{ VEX_HWCAPS_S390X_MSA8, "msa8" },
{ VEX_HWCAPS_S390X_MSA9, "msa9" },
};
#define VEX_HWCAPS_S390X_DFLT (1<<24) /* Deflate-conversion facility */
#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_MSA8 (1<<29) /* Message-security-assist extension 8 */
#define VEX_HWCAPS_S390X_MSA9 (1<<30) /* Message-security-assist extension 9 */
VEX_HWCAPS_S390X_DFLT | \
VEX_HWCAPS_S390X_VXE2 | \
VEX_HWCAPS_S390X_VXD | \
- VEX_HWCAPS_S390X_MSA | \
VEX_HWCAPS_S390X_MSA8 | \
VEX_HWCAPS_S390X_MSA9)
this host */
EmFail_S390X_vxd,
- /* insn needs message-security assist which is not available on
- this host */
- EmFail_S390X_msa,
-
/* insn needs message-security-assist extension 8 which is not available
on this host */
EmFail_S390X_msa8,
{ False, 165, VEX_HWCAPS_S390X_NNPA, "NNPA" },
{ False, 148, VEX_HWCAPS_S390X_VXE2, "VXE2" },
{ False, 134, VEX_HWCAPS_S390X_VXD, "VXD" },
- { False, 17, VEX_HWCAPS_S390X_MSA, "MSA" },
{ False, 146, VEX_HWCAPS_S390X_MSA8, "MSA8" },
{ False, 155, VEX_HWCAPS_S390X_MSA9, "MSA9" },
};