Mark Wielaard 92d526
commit 45873298ff2d17accc65654d64758360616aade5
Mark Wielaard 92d526
Author: Andreas Arnez <arnez@linux.ibm.com>
Mark Wielaard 92d526
Date:   Tue Mar 30 18:10:43 2021 +0200
Mark Wielaard 92d526
Mark Wielaard 92d526
    s390x: Add missing UNOP insns to s390_insn_as_string
Mark Wielaard 92d526
    
Mark Wielaard 92d526
    Some unary operator insns are not handled by s390_insn_as_string().  If
Mark Wielaard 92d526
    they are encountered while the appropriate trace flag is set, a vpanic
Mark Wielaard 92d526
    occurs.  Fix this: add handling for the missing insns.
Mark Wielaard 92d526
Mark Wielaard 92d526
diff --git a/VEX/priv/host_s390_defs.c b/VEX/priv/host_s390_defs.c
Mark Wielaard 92d526
index 8762975b2..6e0734ae0 100644
Mark Wielaard 92d526
--- a/VEX/priv/host_s390_defs.c
Mark Wielaard 92d526
+++ b/VEX/priv/host_s390_defs.c
Mark Wielaard 92d526
@@ -7860,12 +7860,24 @@ s390_insn_as_string(const s390_insn *insn)
Mark Wielaard 92d526
          op = "v-vunpacku";
Mark Wielaard 92d526
          break;
Mark Wielaard 92d526
 
Mark Wielaard 92d526
-      case S390_VEC_FLOAT_NEG:
Mark Wielaard 92d526
-         op = "v-vfloatneg";
Mark Wielaard 92d526
+      case S390_VEC_ABS:
Mark Wielaard 92d526
+         op = "v-vabs";
Mark Wielaard 92d526
          break;
Mark Wielaard 92d526
 
Mark Wielaard 92d526
-      case S390_VEC_FLOAT_SQRT:
Mark Wielaard 92d526
-         op = "v-vfloatsqrt";
Mark Wielaard 92d526
+      case S390_VEC_COUNT_LEADING_ZEROES:
Mark Wielaard 92d526
+         op = "v-vclz";
Mark Wielaard 92d526
+         break;
Mark Wielaard 92d526
+
Mark Wielaard 92d526
+      case S390_VEC_COUNT_TRAILING_ZEROES:
Mark Wielaard 92d526
+         op = "v-vctz";
Mark Wielaard 92d526
+         break;
Mark Wielaard 92d526
+
Mark Wielaard 92d526
+      case S390_VEC_COUNT_ONES:
Mark Wielaard 92d526
+         op = "v-vpopct";
Mark Wielaard 92d526
+         break;
Mark Wielaard 92d526
+
Mark Wielaard 92d526
+      case S390_VEC_FLOAT_NEG:
Mark Wielaard 92d526
+         op = "v-vfloatneg";
Mark Wielaard 92d526
          break;
Mark Wielaard 92d526
 
Mark Wielaard 92d526
       case S390_VEC_FLOAT_ABS:
Mark Wielaard 92d526
@@ -7876,6 +7888,10 @@ s390_insn_as_string(const s390_insn *insn)
Mark Wielaard 92d526
          op = "v-vfloatnabs";
Mark Wielaard 92d526
          break;
Mark Wielaard 92d526
 
Mark Wielaard 92d526
+      case S390_VEC_FLOAT_SQRT:
Mark Wielaard 92d526
+         op = "v-vfloatsqrt";
Mark Wielaard 92d526
+         break;
Mark Wielaard 92d526
+
Mark Wielaard 92d526
       default:
Mark Wielaard 92d526
          goto fail;
Mark Wielaard 92d526
       }