]> sourceware.org Git - valgrind.git/commitdiff
fix sraw, srawi, srad, sradi instructions
authorCarl Love <cel@us.ibm.com>
Thu, 9 Sep 2021 23:10:07 +0000 (23:10 +0000)
committerCarl Love <cel@us.ibm.com>
Thu, 30 Sep 2021 22:53:39 +0000 (17:53 -0500)
For ISA 3.0 and beyond, the instructions also write the XER register.

Split the instructions out to a new command line option so we can create
an ISA 2.07 expect file, ISA 3.0 LE and ISA 3.0 BE expect file. The new
command line option is "-s" to just run just these four instructions.

16 files changed:
NEWS
VEX/priv/guest_ppc_toIR.c
none/tests/ppc32/Makefile.am
none/tests/ppc32/jm-insns.c
none/tests/ppc32/jm-int-sh_algebraic.stderr.exp [new file with mode: 0644]
none/tests/ppc32/jm-int-sh_algebraic.stdout.exp [new file with mode: 0644]
none/tests/ppc32/jm-int-sh_algebraic.vgtest [new file with mode: 0644]
none/tests/ppc32/jm-int_other.stdout.exp
none/tests/ppc64/Makefile.am
none/tests/ppc64/jm-int-sh_algebraic.stderr.exp [new file with mode: 0644]
none/tests/ppc64/jm-int-sh_algebraic.stdout.exp [new file with mode: 0644]
none/tests/ppc64/jm-int-sh_algebraic.stdout.exp-LE [new file with mode: 0644]
none/tests/ppc64/jm-int-sh_algebraic.stdout.exp-LE-ISA3_0 [new file with mode: 0644]
none/tests/ppc64/jm-int-sh_algebraic.vgtest [new file with mode: 0644]
none/tests/ppc64/jm-int_other.stdout.exp
none/tests/ppc64/jm-int_other.stdout.exp-LE

diff --git a/NEWS b/NEWS
index ef1fce7bafda48897b2cc21127590bf8af2ec8ce..73edd71920d0846c8d2ad8f742e5f641383ffff8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -59,6 +59,7 @@ are not entered into bugzilla tend to get forgotten about or ignored.
 442061  very slow execution under Fedora 34 (readdwarf3)
 443031  Gcc -many change requires explicit .machine directives
 443033  Add support for the ISA 3.0 mcrxrx instruction
+443034  Sraw, srawi, srad, sradi, mfs
 
 To see details of a given bug, visit
   https://bugs.kde.org/show_bug.cgi?id=XXXXXX
index 3dab20147654fd737b44faacc3181a20fa733232..5d9f6b84a2ffc3ef02135c6f0f683a37cff55bfa 100644 (file)
@@ -11499,7 +11499,7 @@ static Bool dis_memsync ( UInt prefix, UInt theInstr )
 /*
   Integer Shift Instructions
 */
-static Bool dis_int_shift ( UInt prefix, UInt theInstr )
+static Bool dis_int_shift ( UInt prefix, UInt theInstr, UInt allow_isa_3_0 )
 {
    /* X-Form, XS-Form */
    UChar opc1    = ifieldOPC(theInstr);
@@ -11575,11 +11575,16 @@ static Bool dis_int_shift ( UInt prefix, UInt theInstr )
                                           mkexpr(sh_amt)) ) );
          assign( rA, mkWidenFrom32(ty, e_tmp, /* Signed */True) );
 
+         /* Set CA bit */
          set_XER_CA_CA32( ty, PPCG_FLAG_OP_SRAW,
                           mkexpr(rA),
                           mkWidenFrom32(ty, mkexpr(rS_lo32), True),
                           mkWidenFrom32(ty, mkexpr(sh_amt), True ),
                           mkWidenFrom32(ty, getXER_CA_32(), True) );
+
+         if (allow_isa_3_0)
+            /* copy CA to CA32 */
+            putXER_CA32( unop(Iop_32to8, getXER_CA_32()));
          break;
       }
          
@@ -11597,11 +11602,16 @@ static Bool dis_int_shift ( UInt prefix, UInt theInstr )
                                          mkU8(sh_imm)) );
          }
 
+         /* Set CA bit */
          set_XER_CA_CA32( ty, PPCG_FLAG_OP_SRAWI,
                           mkexpr(rA),
                           mkWidenFrom32(ty, mkexpr(rS_lo32), /* Syned */True),
                           mkSzImm(ty, sh_imm),
                           mkWidenFrom32(ty, getXER_CA_32(), /* Syned */False) );
+
+         if (allow_isa_3_0)
+            /* copy CA to CA32 */
+            putXER_CA32( unop(Iop_32to8, getXER_CA_32()));
          break;
       
       case 0x218: // srw (Shift Right Word, PPC32 p508)
@@ -11672,9 +11682,14 @@ static Bool dis_int_shift ( UInt prefix, UInt theInstr )
                                           mkU64(63),
                                           mkexpr(sh_amt)) ))
                );
+         /* Set CA bit */
          set_XER_CA_CA32( ty, PPCG_FLAG_OP_SRAD,
                           mkexpr(rA), mkexpr(rS), mkexpr(sh_amt),
                           mkWidenFrom32(ty, getXER_CA_32(), /* Syned */False) );
+
+         if (allow_isa_3_0)
+            /* copy CA to CA32 */
+            putXER_CA32( unop(Iop_32to8, getXER_CA_32()));
          break;
       }
 
@@ -11685,11 +11700,16 @@ static Bool dis_int_shift ( UInt prefix, UInt theInstr )
              flag_rC ? ".":"", rA_addr, rS_addr, sh_imm);
          assign( rA, binop(Iop_Sar64, getIReg(rS_addr), mkU8(sh_imm)) );
 
+         /* Set CA bit */
          set_XER_CA_CA32( ty, PPCG_FLAG_OP_SRADI,
                           mkexpr(rA),
                           getIReg(rS_addr),
                           mkU64(sh_imm),
                           mkWidenFrom32(ty, getXER_CA_32(), /* Syned */False) );
+
+         if (allow_isa_3_0)
+            /* copy CA to CA32 */
+            putXER_CA32( unop(Iop_32to8, getXER_CA_32()));
          break;
 
       case 0x21B: // srd (Shift Right DWord, PPC64 p574)
@@ -37453,7 +37473,8 @@ DisResult disInstr_PPC_WRK (
       /* Integer Shift Instructions */
       case 0x018: case 0x318: case 0x338: // slw, sraw, srawi
       case 0x218:                         // srw
-         if (dis_int_shift( prefix, theInstr )) goto decode_success;
+         if (dis_int_shift( prefix, theInstr, allow_isa_3_0 ))
+            goto decode_success;
          goto decode_failure;
 
       /* 64bit Integer Shift Instructions */
@@ -37461,7 +37482,8 @@ DisResult disInstr_PPC_WRK (
       case 0x33A: case 0x33B: // sradi
       case 0x21B:             // srd
          if (!mode64) goto decode_failure;
-         if (dis_int_shift( prefix, theInstr )) goto decode_success;
+         if (dis_int_shift( prefix, theInstr, allow_isa_3_0 ))
+            goto decode_success;
          goto decode_failure;
 
       /* Integer Load Instructions */
index 11697c99a41fccebc0d33d441b756d89bf82b784..2ca067d4866165b01acc21c94c431c58b90dfb26 100644 (file)
@@ -9,6 +9,8 @@ EXTRA_DIST = \
        bug139050-ppc32.stdout.exp bug139050-ppc32.stderr.exp \
        bug139050-ppc32.vgtest \
        ldstrev.stderr.exp ldstrev.stdout.exp ldstrev.vgtest \
+       jm-int-sh_algebraic.stderr.exp jm-int-sh_algebraic.stdout.exp \
+       jm-int-sh_algebraic.vgtest \
        jm-int.stderr.exp jm-int.stdout.exp jm-int.vgtest \
        jm-int_other.stderr.exp jm-int_other.stdout.exp jm-int_other.vgtest \
        jm-fp.stderr.exp jm-fp.stdout.exp jm-fp.vgtest jm-fp.stdout.exp-BE2 \
index 3a169933f898f579ef4761f1dd9a9c631258e44d..e452fe0f3146d272f3db03d0c27e9221339362ba 100644 (file)
@@ -381,6 +381,7 @@ enum test_flags {
     PPC_ALTIVEC    = 0x00040000,
     PPC_FALTIVEC   = 0x00050000,
     PPC_MISC       = 0x00060000,
+    PPC_SH_ALGEBRAIC = 0x00070000,
     PPC_FAMILY     = 0x000F0000,
     /* Flags: these may be combined, so use separate bitfields. */
     PPC_CR         = 0x01000000,
@@ -886,6 +887,14 @@ static void test_srd (void)
 }
 #endif // #ifdef __powerpc64__
 
+static test_t tests_il_ops_two_sh[] = {
+    { &test_sraw            , "        sraw", },
+#ifdef __powerpc64__
+    { &test_srad            , "        srad", },
+#endif // #ifdef __powerpc64__
+    { NULL,                   NULL,           },
+};
+
 static test_t tests_il_ops_two[] = {
     { &test_and             , "         and", },
     { &test_andc            , "        andc", },
@@ -896,11 +905,9 @@ static test_t tests_il_ops_two[] = {
     { &test_orc             , "         orc", },
     { &test_xor             , "         xor", },
     { &test_slw             , "         slw", },
-    { &test_sraw            , "        sraw", },
     { &test_srw             , "         srw", },
 #ifdef __powerpc64__
     { &test_sld             , "         sld", },
-    { &test_srad            , "        srad", },
     { &test_srd             , "         srd", },
 #endif // #ifdef __powerpc64__
     { NULL,                   NULL,           },
@@ -978,6 +985,14 @@ static void test_srd_ (void)
 }
 #endif // #ifdef __powerpc64__
 
+static test_t tests_ilr_ops_two_sh[] = {
+    { &test_sraw_           , "       sraw.", },
+#ifdef __powerpc64__
+    { &test_srad_           , "       srad.", },
+#endif // #ifdef __powerpc64__
+    { NULL,                   NULL,           },
+};
+
 static test_t tests_ilr_ops_two[] = {
     { &test_and_            , "        and.", },
     { &test_andc_           , "       andc.", },
@@ -988,11 +1003,9 @@ static test_t tests_ilr_ops_two[] = {
     { &test_orc_            , "        orc.", },
     { &test_xor_            , "        xor.", },
     { &test_slw_            , "        slw.", },
-    { &test_sraw_           , "       sraw.", },
     { &test_srw_            , "        srw.", },
 #ifdef __powerpc64__
     { &test_sld_            , "        sld.", },
-    { &test_srad_           , "       srad.", },
     { &test_srd_            , "        srd.", },
 #endif // #ifdef __powerpc64__
     { NULL,                   NULL,           },
@@ -1424,11 +1437,17 @@ extern void test_sradi (void);
 ASSEMBLY_FUNC("test_sradi", "sradi      17, 14, 0");
 #endif // #ifdef __powerpc64__
 
+static test_t tests_il_ops_spe_sh[] = {
+    { &test_srawi           , "       srawi", },
+#ifdef __powerpc64__
+    { &test_sradi           , "       sradi", },
+#endif // #ifdef __powerpc64__
+    { NULL,                   NULL,           },
+};
 static test_t tests_il_ops_spe[] = {
     { &test_rlwimi          , "      rlwimi", },
     { &test_rlwinm          , "      rlwinm", },
     { &test_rlwnm           , "       rlwnm", },
-    { &test_srawi           , "       srawi", },
     { &test_mfcr            , "        mfcr", },
     { &test_mfspr           , "       mfspr", },
     { &test_mtspr           , "       mtspr", },
@@ -1439,7 +1458,6 @@ static test_t tests_il_ops_spe[] = {
     { &test_rldicl          , "      rldicl", },
     { &test_rldicr          , "      rldicr", },
     { &test_rldimi          , "      rldimi", },
-    { &test_sradi           , "       sradi", },
 #endif // #ifdef __powerpc64__
     { NULL,                   NULL,           },
 };
@@ -1489,11 +1507,17 @@ extern void test_sradi_ (void);
 ASSEMBLY_FUNC("test_sradi_", "sradi.      17, 14, 0");
 #endif // #ifdef __powerpc64__
 
+static test_t tests_ilr_ops_spe_sh[] = {
+    { &test_srawi_          , "      srawi.", },
+#ifdef __powerpc64__
+    { &test_sradi_          , "      sradi.", },
+#endif // #ifdef __powerpc64__
+    { NULL,                   NULL,           },
+};
 static test_t tests_ilr_ops_spe[] = {
     { &test_rlwimi_         , "     rlwimi.", },
     { &test_rlwinm_         , "     rlwinm.", },
     { &test_rlwnm_          , "      rlwnm.", },
-    { &test_srawi_          , "      srawi.", },
     { &test_mcrf            , "        mcrf", },
     { &test_mcrxr           , "       mcrxr", },
     { &test_mtcrf           , "       mtcrf", },
@@ -1504,7 +1528,6 @@ static test_t tests_ilr_ops_spe[] = {
     { &test_rldicl_         , "     rldicl.", },
     { &test_rldicr_         , "     rldicr.", },
     { &test_rldimi_         , "     rldimi.", },
-    { &test_sradi_          , "      sradi.", },
 #endif // #ifdef __powerpc64__
     { NULL,                   NULL,           },
 };
@@ -3944,11 +3967,21 @@ static test_table_t all_tests[] = {
         "PPC integer logical insns with two args",
         0x00010202,
     },
+    {
+        tests_il_ops_two_sh      ,
+        "PPC integer shift algebraic two args",
+        0x00070202,
+    },
     {
         tests_ilr_ops_two     ,
         "PPC integer logical insns with two args with flags update",
         0x01010202,
     },
+    {
+        tests_ilr_ops_two_sh     ,
+        "PPC integer shift algebraic two args with flags update",
+        0x01070202,
+    },
     {
         tests_icr_ops_two     ,
         "PPC integer compare insns (two args)",
@@ -4009,11 +4042,21 @@ static test_table_t all_tests[] = {
         "PPC logical insns with special forms",
         0x00010207,
     },
+    {
+        tests_il_ops_spe_sh      ,
+        "PPC shift algebraic with special forms",
+        0x00070207,
+    },
     {
         tests_ilr_ops_spe     ,
         "PPC logical insns with special forms with flags update",
         0x01010207,
     },
+    {
+        tests_ilr_ops_spe_sh     ,
+        "PPC shift algebraic with special forms with flags update",
+        0x01070207,
+    },
     {
         tests_ild_ops_two_i16 ,
         "PPC integer load insns\n    with one register + one 16 bits immediate args with flags update",
@@ -5728,6 +5771,11 @@ static void test_int_st_three_regs (const char* name,
 /* Used in do_tests, indexed by flags->nb_args
    Elements correspond to enum test_flags::num args
 */
+static test_loop_t int_sh_algebraic[] = {
+   &test_int_two_args,
+   &test_int_special,
+};
+
 static test_loop_t int_loops[] = {
    &test_int_one_arg,
    &test_int_two_args,
@@ -7465,7 +7513,7 @@ static int check_name (const char* name, const char *filter,
 typedef struct insn_sel_flags_t_struct {
    int one_arg, two_args, three_args;
    int arith, logical, compare, ldst;
-   int integer, floats, p405, altivec, faltivec, misc;
+   int integer, floats, p405, altivec, faltivec, misc, sh_algebraic;
    int cr;
 } insn_sel_flags_t;
 
@@ -7505,6 +7553,7 @@ static void do_tests ( insn_sel_flags_t seln_flags,
           (family == PPC_405      && !seln_flags.p405) ||
           (family == PPC_ALTIVEC  && !seln_flags.altivec) ||
           (family == PPC_MISC  && !seln_flags.misc) ||
+          (family == PPC_SH_ALGEBRAIC && !seln_flags.sh_algebraic) ||
           (family == PPC_FALTIVEC && !seln_flags.faltivec))
          continue;
       /* Check flags update */
@@ -7518,6 +7567,9 @@ static void do_tests ( insn_sel_flags_t seln_flags,
       case PPC_INTEGER:
          loop = &int_loops[nb_args - 1];
          break;
+      case PPC_SH_ALGEBRAIC:
+         loop = &int_sh_algebraic[0];
+         break;
       case PPC_MISC:
          loop = &misc_loops[0];
          break;
@@ -7625,6 +7677,7 @@ static void usage (void)
            "\t-f: test floating point instructions\n"
            "\t-a: test altivec instructions\n"
            "\t-m: test miscellaneous instructions\n"
+           "\t-s: test shift algebraic (sraw, srawi, srad, sradi) instructions\n"
            "\t-A: test all (int, fp, altivec) instructions\n"
            "\t-v: be verbose\n"
            "\t-h: display this help and exit\n"
@@ -7658,6 +7711,7 @@ int main (int argc, char **argv)
    flags.altivec    = 0;
    flags.faltivec   = 0;
    flags.cr         = -1;
+   flags.sh_algebraic = 0;
    
    while ((c = getopt(argc, argv, "123t:f:n:r:uvh")) != -1) {
       switch (c) {
@@ -7760,6 +7814,7 @@ int main (int argc, char **argv)
       flags.p405     = 1;
       flags.altivec  = 1;
       flags.faltivec = 1;
+      flags.algebraic = 1;
    }
    // Default cr update
    if (flags.cr == -1)
@@ -7795,15 +7850,20 @@ int main (int argc, char **argv)
    flags.p405       = 0;
    flags.altivec    = 0;
    flags.faltivec   = 0;
+   flags.sh_algebraic = 0;
    // Flags
    flags.cr         = 2;
 
-   while ((c = getopt(argc, argv, "ilcLfmahvA")) != -1) {
+   while ((c = getopt(argc, argv, "ilcLfmsahvA")) != -1) {
       switch (c) {
       case 'i':
          flags.arith    = 1;
          flags.integer  = 1;
          break;
+      case 's':
+         flags.logical  = 1;
+         flags.sh_algebraic = 1;
+         break;
       case 'l':
          flags.logical  = 1;
          flags.integer  = 1;
@@ -7895,6 +7955,7 @@ int main (int argc, char **argv)
       printf("    p405       = %d\n", flags.p405);
       printf("    altivec    = %d\n", flags.altivec);
       printf("    faltivec   = %d\n", flags.faltivec);
+      printf("    sh_algebraic = %d\n", flags.sh_algebraic);
       printf("  cr update: \n");
       printf("    cr         = %d\n", flags.cr);
       printf("\n");
diff --git a/none/tests/ppc32/jm-int-sh_algebraic.stderr.exp b/none/tests/ppc32/jm-int-sh_algebraic.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/ppc32/jm-int-sh_algebraic.stdout.exp b/none/tests/ppc32/jm-int-sh_algebraic.stdout.exp
new file mode 100644 (file)
index 0000000..796d39a
--- /dev/null
@@ -0,0 +1,45 @@
+PPC integer shift algebraic two args:
+        sraw 00000000, 00000000 => 00000000 (00000000 00000000)
+        sraw 00000000, 000f423f => 00000000 (00000000 00000000)
+        sraw 00000000, ffffffff => 00000000 (00000000 00000000)
+        sraw 000f423f, 00000000 => 000f423f (00000000 00000000)
+        sraw 000f423f, 000f423f => 00000000 (00000000 00000000)
+        sraw 000f423f, ffffffff => 00000000 (00000000 00000000)
+        sraw ffffffff, 00000000 => ffffffff (00000000 00000000)
+        sraw ffffffff, 000f423f => ffffffff (00000000 20000000)
+        sraw ffffffff, ffffffff => ffffffff (00000000 20000000)
+
+PPC integer shift algebraic two args with flags update:
+       sraw. 00000000, 00000000 => 00000000 (20000000 00000000)
+       sraw. 00000000, 000f423f => 00000000 (20000000 00000000)
+       sraw. 00000000, ffffffff => 00000000 (20000000 00000000)
+       sraw. 000f423f, 00000000 => 000f423f (40000000 00000000)
+       sraw. 000f423f, 000f423f => 00000000 (20000000 00000000)
+       sraw. 000f423f, ffffffff => 00000000 (20000000 00000000)
+       sraw. ffffffff, 00000000 => ffffffff (80000000 00000000)
+       sraw. ffffffff, 000f423f => ffffffff (80000000 20000000)
+       sraw. ffffffff, ffffffff => ffffffff (80000000 20000000)
+
+PPC shift algebraic with special forms:
+       srawi 00000000, 00000000 => 00000000 (00000000 00000000)
+       srawi 00000000, 000f423f => 00000000 (00000000 00000000)
+       srawi 00000000, ffffffff => 00000000 (00000000 00000000)
+       srawi 000f423f, 00000000 => 000f423f (00000000 00000000)
+       srawi 000f423f, 000f423f => 000f423f (00000000 00000000)
+       srawi 000f423f, ffffffff => 000f423f (00000000 00000000)
+       srawi ffffffff, 00000000 => ffffffff (00000000 00000000)
+       srawi ffffffff, 000f423f => ffffffff (00000000 00000000)
+       srawi ffffffff, ffffffff => ffffffff (00000000 00000000)
+
+PPC shift algebraic with special forms with flags update:
+      srawi. 00000000, 00000000 => 00000000 (20000000 00000000)
+      srawi. 00000000, 000f423f => 00000000 (20000000 00000000)
+      srawi. 00000000, ffffffff => 00000000 (20000000 00000000)
+      srawi. 000f423f, 00000000 => 000f423f (40000000 00000000)
+      srawi. 000f423f, 000f423f => 000f423f (40000000 00000000)
+      srawi. 000f423f, ffffffff => 000f423f (40000000 00000000)
+      srawi. ffffffff, 00000000 => ffffffff (80000000 00000000)
+      srawi. ffffffff, 000f423f => ffffffff (80000000 00000000)
+      srawi. ffffffff, ffffffff => ffffffff (80000000 00000000)
+
+All done. Tested 4 different instructions
diff --git a/none/tests/ppc32/jm-int-sh_algebraic.vgtest b/none/tests/ppc32/jm-int-sh_algebraic.vgtest
new file mode 100644 (file)
index 0000000..cc660fc
--- /dev/null
@@ -0,0 +1 @@
+prog: jm-insns -s
index 577ddd12cadad56b0964a431baa025d0c528591d..989647f7c5dbc5eee266c7213bc9ac174b2279ed 100644 (file)
@@ -89,16 +89,6 @@ PPC integer logical insns with two args:
          slw ffffffff, 000f423f => 00000000 (00000000 00000000)
          slw ffffffff, ffffffff => 00000000 (00000000 00000000)
 
-        sraw 00000000, 00000000 => 00000000 (00000000 00000000)
-        sraw 00000000, 000f423f => 00000000 (00000000 00000000)
-        sraw 00000000, ffffffff => 00000000 (00000000 00000000)
-        sraw 000f423f, 00000000 => 000f423f (00000000 00000000)
-        sraw 000f423f, 000f423f => 00000000 (00000000 00000000)
-        sraw 000f423f, ffffffff => 00000000 (00000000 00000000)
-        sraw ffffffff, 00000000 => ffffffff (00000000 00000000)
-        sraw ffffffff, 000f423f => ffffffff (00000000 20000000)
-        sraw ffffffff, ffffffff => ffffffff (00000000 20000000)
-
          srw 00000000, 00000000 => 00000000 (00000000 00000000)
          srw 00000000, 000f423f => 00000000 (00000000 00000000)
          srw 00000000, ffffffff => 00000000 (00000000 00000000)
@@ -200,16 +190,6 @@ PPC integer logical insns with two args with flags update:
         slw. ffffffff, 000f423f => 00000000 (20000000 00000000)
         slw. ffffffff, ffffffff => 00000000 (20000000 00000000)
 
-       sraw. 00000000, 00000000 => 00000000 (20000000 00000000)
-       sraw. 00000000, 000f423f => 00000000 (20000000 00000000)
-       sraw. 00000000, ffffffff => 00000000 (20000000 00000000)
-       sraw. 000f423f, 00000000 => 000f423f (40000000 00000000)
-       sraw. 000f423f, 000f423f => 00000000 (20000000 00000000)
-       sraw. 000f423f, ffffffff => 00000000 (20000000 00000000)
-       sraw. ffffffff, 00000000 => ffffffff (80000000 00000000)
-       sraw. ffffffff, 000f423f => ffffffff (80000000 20000000)
-       sraw. ffffffff, ffffffff => ffffffff (80000000 20000000)
-
         srw. 00000000, 00000000 => 00000000 (20000000 00000000)
         srw. 00000000, 000f423f => 00000000 (20000000 00000000)
         srw. 00000000, ffffffff => 00000000 (20000000 00000000)
@@ -537,28 +517,10 @@ PPC logical insns with special forms:
        rlwnm ffffffff, ffffffff, 31,  0 => 80000001 (00000000 00000000)
        rlwnm ffffffff, ffffffff, 31, 31 => 00000001 (00000000 00000000)
 
-       srawi 00000000,  0 => 00000000 (00000000 00000000)
-       srawi 00000000, 31 => 00000000 (00000000 00000000)
-       srawi 000f423f,  0 => 000f423f (00000000 00000000)
-       srawi 000f423f, 31 => 00000000 (00000000 00000000)
-       srawi ffffffff,  0 => ffffffff (00000000 00000000)
-       srawi ffffffff, 31 => ffffffff (00000000 20000000)
-
         mfcr (00000000) => 00000000 (00000000 00000000)
         mfcr (000f423f) => 000f423f (000f423f 00000000)
         mfcr (ffffffff) => ffffffff (ffffffff 00000000)
 
-       mfspr 1 (00000000) -> mtxer -> mfxer => 00000000
-       mfspr 1 (000f423f) -> mtxer -> mfxer => 0000003f
-       mfspr 1 (ffffffff) -> mtxer -> mfxer => e000007f
-       mfspr 8 (00000000) ->  mtlr ->  mflr => 00000000
-       mfspr 8 (000f423f) ->  mtlr ->  mflr => 000f423f
-       mfspr 8 (ffffffff) ->  mtlr ->  mflr => ffffffff
-       mfspr 9 (00000000) -> mtctr -> mfctr => 00000000
-       mfspr 9 (000f423f) -> mtctr -> mfctr => 000f423f
-       mfspr 9 (ffffffff) -> mtctr -> mfctr => ffffffff
-
-
 PPC logical insns with special forms with flags update:
      rlwimi. 00000000,  0,  0,  0 => 00000000 (20000000 00000000)
      rlwimi. 00000000,  0,  0, 31 => 00000000 (20000000 00000000)
@@ -647,13 +609,6 @@ PPC logical insns with special forms with flags update:
       rlwnm. ffffffff, ffffffff, 31,  0 => 80000001 (80000000 00000000)
       rlwnm. ffffffff, ffffffff, 31, 31 => 00000001 (40000000 00000000)
 
-      srawi. 00000000,  0 => 00000000 (20000000 00000000)
-      srawi. 00000000, 31 => 00000000 (20000000 00000000)
-      srawi. 000f423f,  0 => 000f423f (40000000 00000000)
-      srawi. 000f423f, 31 => 00000000 (20000000 00000000)
-      srawi. ffffffff,  0 => ffffffff (80000000 00000000)
-      srawi. ffffffff, 31 => ffffffff (80000000 20000000)
-
         mcrf 0, 0 (00000000) => (00000000 00000000)
         mcrf 0, 7 (00000000) => (00000000 00000000)
         mcrf 7, 0 (00000000) => (00000000 00000000)
@@ -966,4 +921,4 @@ PPC integer store insns with three register args:
        stwux 000f423f, 4 => 000f423f, 4 (00000000 00000000)
        stwux ffffffff, 8 => ffffffff, 8 (00000000 00000000)
 
-All done. Tested 92 different instructions
+All done. Tested 86 different instructions
index bf95bfe418ec9c22ce80edd31c5bf7969ef102c9..1f40d94ca394a188b7aa0eb5c53df618a51ec66d 100644 (file)
@@ -8,6 +8,10 @@ noinst_HEADERS = ppc64_helpers.h isa_3_1_helpers.h isa_3_1_register_defines.h
 EXTRA_DIST = \
        jm-int.stderr.exp jm-int.stdout.exp jm-int.vgtest jm-int.stdout.exp-LE \
        jm-int.stdout.exp-LE-ISA3_0 \
+       jm-int-sh_algebraic.stderr.exp jm-int-sh_algebraic.stdout.exp \
+       jm-int-sh_algebraic.stdout.exp-LE \
+       jm-int-sh_algebraic.stdout.exp-LE-ISA3_0 \
+       jm-int-sh_algebraic.vgtest \
        jm-int_other.stderr.exp jm-int_other.stdout.exp jm-int_other.vgtest \
        jm-int_other.stdout.exp-LE \
        jm-fp.stderr.exp  jm-fp.stdout.exp  jm-fp.vgtest jm-fp.stdout.exp-LE jm-fp.stdout.exp-LE2 jm-fp.stdout.exp-BE2 \
diff --git a/none/tests/ppc64/jm-int-sh_algebraic.stderr.exp b/none/tests/ppc64/jm-int-sh_algebraic.stderr.exp
new file mode 100644 (file)
index 0000000..139597f
--- /dev/null
@@ -0,0 +1,2 @@
+
+
diff --git a/none/tests/ppc64/jm-int-sh_algebraic.stdout.exp b/none/tests/ppc64/jm-int-sh_algebraic.stdout.exp
new file mode 100644 (file)
index 0000000..68345a8
--- /dev/null
@@ -0,0 +1,85 @@
+PPC integer shift algebraic two args:
+        sraw 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
+        sraw 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+        sraw 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+        sraw 0000001cbe991def, 0000000000000000 => ffffffffbe991def (00000000 00000000)
+        sraw 0000001cbe991def, 0000001cbe991def => ffffffffffffffff (00000000 20000000)
+        sraw 0000001cbe991def, ffffffffffffffff => ffffffffffffffff (00000000 20000000)
+        sraw ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
+        sraw ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 20000000)
+        sraw ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 20000000)
+
+        srad 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
+        srad 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+        srad 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+        srad 0000001cbe991def, 0000000000000000 => 0000001cbe991def (00000000 00000000)
+        srad 0000001cbe991def, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+        srad 0000001cbe991def, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+        srad ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
+        srad ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 20000000)
+        srad ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 20000000)
+
+PPC integer shift algebraic two args with flags update:
+       sraw. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
+       sraw. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+       sraw. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+       sraw. 0000001cbe991def, 0000000000000000 => ffffffffbe991def (80000000 00000000)
+       sraw. 0000001cbe991def, 0000001cbe991def => ffffffffffffffff (80000000 20000000)
+       sraw. 0000001cbe991def, ffffffffffffffff => ffffffffffffffff (80000000 20000000)
+       sraw. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
+       sraw. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 20000000)
+       sraw. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 20000000)
+
+       srad. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
+       srad. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+       srad. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+       srad. 0000001cbe991def, 0000000000000000 => 0000001cbe991def (40000000 00000000)
+       srad. 0000001cbe991def, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+       srad. 0000001cbe991def, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+       srad. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
+       srad. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 20000000)
+       srad. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 20000000)
+
+PPC shift algebraic with special forms:
+       srawi 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
+       srawi 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+       srawi 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+       srawi 0000001cbe991def, 0000000000000000 => ffffffffbe991def (00000000 00000000)
+       srawi 0000001cbe991def, 0000001cbe991def => ffffffffbe991def (00000000 00000000)
+       srawi 0000001cbe991def, ffffffffffffffff => ffffffffbe991def (00000000 00000000)
+       srawi ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
+       srawi ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 00000000)
+       srawi ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 00000000)
+
+       sradi 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
+       sradi 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+       sradi 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+       sradi 0000001cbe991def, 0000000000000000 => 0000001cbe991def (00000000 00000000)
+       sradi 0000001cbe991def, 0000001cbe991def => 0000001cbe991def (00000000 00000000)
+       sradi 0000001cbe991def, ffffffffffffffff => 0000001cbe991def (00000000 00000000)
+       sradi ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
+       sradi ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 00000000)
+       sradi ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 00000000)
+
+PPC shift algebraic with special forms with flags update:
+      srawi. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
+      srawi. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+      srawi. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+      srawi. 0000001cbe991def, 0000000000000000 => ffffffffbe991def (80000000 00000000)
+      srawi. 0000001cbe991def, 0000001cbe991def => ffffffffbe991def (80000000 00000000)
+      srawi. 0000001cbe991def, ffffffffffffffff => ffffffffbe991def (80000000 00000000)
+      srawi. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
+      srawi. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 00000000)
+      srawi. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 00000000)
+
+      sradi. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
+      sradi. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+      sradi. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+      sradi. 0000001cbe991def, 0000000000000000 => 0000001cbe991def (40000000 00000000)
+      sradi. 0000001cbe991def, 0000001cbe991def => 0000001cbe991def (40000000 00000000)
+      sradi. 0000001cbe991def, ffffffffffffffff => 0000001cbe991def (40000000 00000000)
+      sradi. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
+      sradi. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 00000000)
+      sradi. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 00000000)
+
+All done. Tested 8 different instructions
diff --git a/none/tests/ppc64/jm-int-sh_algebraic.stdout.exp-LE b/none/tests/ppc64/jm-int-sh_algebraic.stdout.exp-LE
new file mode 100644 (file)
index 0000000..68345a8
--- /dev/null
@@ -0,0 +1,85 @@
+PPC integer shift algebraic two args:
+        sraw 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
+        sraw 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+        sraw 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+        sraw 0000001cbe991def, 0000000000000000 => ffffffffbe991def (00000000 00000000)
+        sraw 0000001cbe991def, 0000001cbe991def => ffffffffffffffff (00000000 20000000)
+        sraw 0000001cbe991def, ffffffffffffffff => ffffffffffffffff (00000000 20000000)
+        sraw ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
+        sraw ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 20000000)
+        sraw ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 20000000)
+
+        srad 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
+        srad 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+        srad 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+        srad 0000001cbe991def, 0000000000000000 => 0000001cbe991def (00000000 00000000)
+        srad 0000001cbe991def, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+        srad 0000001cbe991def, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+        srad ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
+        srad ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 20000000)
+        srad ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 20000000)
+
+PPC integer shift algebraic two args with flags update:
+       sraw. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
+       sraw. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+       sraw. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+       sraw. 0000001cbe991def, 0000000000000000 => ffffffffbe991def (80000000 00000000)
+       sraw. 0000001cbe991def, 0000001cbe991def => ffffffffffffffff (80000000 20000000)
+       sraw. 0000001cbe991def, ffffffffffffffff => ffffffffffffffff (80000000 20000000)
+       sraw. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
+       sraw. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 20000000)
+       sraw. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 20000000)
+
+       srad. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
+       srad. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+       srad. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+       srad. 0000001cbe991def, 0000000000000000 => 0000001cbe991def (40000000 00000000)
+       srad. 0000001cbe991def, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+       srad. 0000001cbe991def, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+       srad. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
+       srad. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 20000000)
+       srad. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 20000000)
+
+PPC shift algebraic with special forms:
+       srawi 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
+       srawi 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+       srawi 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+       srawi 0000001cbe991def, 0000000000000000 => ffffffffbe991def (00000000 00000000)
+       srawi 0000001cbe991def, 0000001cbe991def => ffffffffbe991def (00000000 00000000)
+       srawi 0000001cbe991def, ffffffffffffffff => ffffffffbe991def (00000000 00000000)
+       srawi ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
+       srawi ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 00000000)
+       srawi ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 00000000)
+
+       sradi 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
+       sradi 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+       sradi 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+       sradi 0000001cbe991def, 0000000000000000 => 0000001cbe991def (00000000 00000000)
+       sradi 0000001cbe991def, 0000001cbe991def => 0000001cbe991def (00000000 00000000)
+       sradi 0000001cbe991def, ffffffffffffffff => 0000001cbe991def (00000000 00000000)
+       sradi ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
+       sradi ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 00000000)
+       sradi ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 00000000)
+
+PPC shift algebraic with special forms with flags update:
+      srawi. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
+      srawi. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+      srawi. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+      srawi. 0000001cbe991def, 0000000000000000 => ffffffffbe991def (80000000 00000000)
+      srawi. 0000001cbe991def, 0000001cbe991def => ffffffffbe991def (80000000 00000000)
+      srawi. 0000001cbe991def, ffffffffffffffff => ffffffffbe991def (80000000 00000000)
+      srawi. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
+      srawi. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 00000000)
+      srawi. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 00000000)
+
+      sradi. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
+      sradi. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+      sradi. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+      sradi. 0000001cbe991def, 0000000000000000 => 0000001cbe991def (40000000 00000000)
+      sradi. 0000001cbe991def, 0000001cbe991def => 0000001cbe991def (40000000 00000000)
+      sradi. 0000001cbe991def, ffffffffffffffff => 0000001cbe991def (40000000 00000000)
+      sradi. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
+      sradi. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 00000000)
+      sradi. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 00000000)
+
+All done. Tested 8 different instructions
diff --git a/none/tests/ppc64/jm-int-sh_algebraic.stdout.exp-LE-ISA3_0 b/none/tests/ppc64/jm-int-sh_algebraic.stdout.exp-LE-ISA3_0
new file mode 100644 (file)
index 0000000..fedbb5e
--- /dev/null
@@ -0,0 +1,85 @@
+PPC integer shift algebraic two args:
+        sraw 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
+        sraw 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+        sraw 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+        sraw 0000001cbe991def, 0000000000000000 => ffffffffbe991def (00000000 00000000)
+        sraw 0000001cbe991def, 0000001cbe991def => ffffffffffffffff (00000000 20040000)
+        sraw 0000001cbe991def, ffffffffffffffff => ffffffffffffffff (00000000 20040000)
+        sraw ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
+        sraw ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 20040000)
+        sraw ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 20040000)
+
+        srad 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
+        srad 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+        srad 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+        srad 0000001cbe991def, 0000000000000000 => 0000001cbe991def (00000000 00000000)
+        srad 0000001cbe991def, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+        srad 0000001cbe991def, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+        srad ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
+        srad ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 20040000)
+        srad ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 20040000)
+
+PPC integer shift algebraic two args with flags update:
+       sraw. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
+       sraw. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+       sraw. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+       sraw. 0000001cbe991def, 0000000000000000 => ffffffffbe991def (80000000 00000000)
+       sraw. 0000001cbe991def, 0000001cbe991def => ffffffffffffffff (80000000 20040000)
+       sraw. 0000001cbe991def, ffffffffffffffff => ffffffffffffffff (80000000 20040000)
+       sraw. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
+       sraw. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 20040000)
+       sraw. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 20040000)
+
+       srad. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
+       srad. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+       srad. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+       srad. 0000001cbe991def, 0000000000000000 => 0000001cbe991def (40000000 00000000)
+       srad. 0000001cbe991def, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+       srad. 0000001cbe991def, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+       srad. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
+       srad. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 20040000)
+       srad. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 20040000)
+
+PPC shift algebraic with special forms:
+       srawi 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
+       srawi 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+       srawi 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+       srawi 0000001cbe991def, 0000000000000000 => ffffffffbe991def (00000000 00000000)
+       srawi 0000001cbe991def, 0000001cbe991def => ffffffffbe991def (00000000 00000000)
+       srawi 0000001cbe991def, ffffffffffffffff => ffffffffbe991def (00000000 00000000)
+       srawi ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
+       srawi ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 00000000)
+       srawi ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 00000000)
+
+       sradi 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
+       sradi 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
+       sradi 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
+       sradi 0000001cbe991def, 0000000000000000 => 0000001cbe991def (00000000 00000000)
+       sradi 0000001cbe991def, 0000001cbe991def => 0000001cbe991def (00000000 00000000)
+       sradi 0000001cbe991def, ffffffffffffffff => 0000001cbe991def (00000000 00000000)
+       sradi ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
+       sradi ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 00000000)
+       sradi ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 00000000)
+
+PPC shift algebraic with special forms with flags update:
+      srawi. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
+      srawi. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+      srawi. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+      srawi. 0000001cbe991def, 0000000000000000 => ffffffffbe991def (80000000 00000000)
+      srawi. 0000001cbe991def, 0000001cbe991def => ffffffffbe991def (80000000 00000000)
+      srawi. 0000001cbe991def, ffffffffffffffff => ffffffffbe991def (80000000 00000000)
+      srawi. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
+      srawi. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 00000000)
+      srawi. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 00000000)
+
+      sradi. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
+      sradi. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
+      sradi. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
+      sradi. 0000001cbe991def, 0000000000000000 => 0000001cbe991def (40000000 00000000)
+      sradi. 0000001cbe991def, 0000001cbe991def => 0000001cbe991def (40000000 00000000)
+      sradi. 0000001cbe991def, ffffffffffffffff => 0000001cbe991def (40000000 00000000)
+      sradi. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
+      sradi. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 00000000)
+      sradi. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 00000000)
+
+All done. Tested 8 different instructions
diff --git a/none/tests/ppc64/jm-int-sh_algebraic.vgtest b/none/tests/ppc64/jm-int-sh_algebraic.vgtest
new file mode 100644 (file)
index 0000000..cc660fc
--- /dev/null
@@ -0,0 +1 @@
+prog: jm-insns -s
index 6deb0d0ddd82ec81102098057f68a2b9bee59012..72760c299d9b4ef56c7a9ef3e369ad5cbb331e7e 100644 (file)
@@ -89,16 +89,6 @@ PPC integer logical insns with two args:
          slw ffffffffffffffff, 0000001cbe991def => 0000000000000000 (00000000 00000000)
          slw ffffffffffffffff, ffffffffffffffff => 0000000000000000 (00000000 00000000)
 
-        sraw 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
-        sraw 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
-        sraw 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
-        sraw 0000001cbe991def, 0000000000000000 => ffffffffbe991def (00000000 00000000)
-        sraw 0000001cbe991def, 0000001cbe991def => ffffffffffffffff (00000000 20000000)
-        sraw 0000001cbe991def, ffffffffffffffff => ffffffffffffffff (00000000 20000000)
-        sraw ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
-        sraw ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 20000000)
-        sraw ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 20000000)
-
          srw 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
          srw 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
          srw 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
@@ -119,16 +109,6 @@ PPC integer logical insns with two args:
          sld ffffffffffffffff, 0000001cbe991def => 0000000000000000 (00000000 00000000)
          sld ffffffffffffffff, ffffffffffffffff => 0000000000000000 (00000000 00000000)
 
-        srad 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
-        srad 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
-        srad 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
-        srad 0000001cbe991def, 0000000000000000 => 0000001cbe991def (00000000 00000000)
-        srad 0000001cbe991def, 0000001cbe991def => 0000000000000000 (00000000 00000000)
-        srad 0000001cbe991def, ffffffffffffffff => 0000000000000000 (00000000 00000000)
-        srad ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
-        srad ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 20000000)
-        srad ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 20000000)
-
          srd 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
          srd 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
          srd 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
@@ -230,16 +210,6 @@ PPC integer logical insns with two args with flags update:
         slw. ffffffffffffffff, 0000001cbe991def => 0000000000000000 (20000000 00000000)
         slw. ffffffffffffffff, ffffffffffffffff => 0000000000000000 (20000000 00000000)
 
-       sraw. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
-       sraw. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
-       sraw. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
-       sraw. 0000001cbe991def, 0000000000000000 => ffffffffbe991def (80000000 00000000)
-       sraw. 0000001cbe991def, 0000001cbe991def => ffffffffffffffff (80000000 20000000)
-       sraw. 0000001cbe991def, ffffffffffffffff => ffffffffffffffff (80000000 20000000)
-       sraw. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
-       sraw. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 20000000)
-       sraw. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 20000000)
-
         srw. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
         srw. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
         srw. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
@@ -260,16 +230,6 @@ PPC integer logical insns with two args with flags update:
         sld. ffffffffffffffff, 0000001cbe991def => 0000000000000000 (20000000 00000000)
         sld. ffffffffffffffff, ffffffffffffffff => 0000000000000000 (20000000 00000000)
 
-       srad. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
-       srad. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
-       srad. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
-       srad. 0000001cbe991def, 0000000000000000 => 0000001cbe991def (40000000 00000000)
-       srad. 0000001cbe991def, 0000001cbe991def => 0000000000000000 (20000000 00000000)
-       srad. 0000001cbe991def, ffffffffffffffff => 0000000000000000 (20000000 00000000)
-       srad. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
-       srad. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 20000000)
-       srad. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 20000000)
-
         srd. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
         srd. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
         srd. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
@@ -653,28 +613,10 @@ PPC logical insns with special forms:
        rlwnm ffffffffffffffff, ffffffffffffffff, 31,  0 => ffffffff80000001 (00000000 00000000)
        rlwnm ffffffffffffffff, ffffffffffffffff, 31, 31 => 0000000000000001 (00000000 00000000)
 
-       srawi 0000000000000000,  0 => 0000000000000000 (00000000 00000000)
-       srawi 0000000000000000, 31 => 0000000000000000 (00000000 00000000)
-       srawi 0000001cbe991def,  0 => ffffffffbe991def (00000000 00000000)
-       srawi 0000001cbe991def, 31 => ffffffffffffffff (00000000 20000000)
-       srawi ffffffffffffffff,  0 => ffffffffffffffff (00000000 00000000)
-       srawi ffffffffffffffff, 31 => ffffffffffffffff (00000000 20000000)
-
         mfcr (0000000000000000) => 0000000000000000 (00000000 00000000)
         mfcr (0000001cbe991def) => 00000000be991def (be991def 00000000)
         mfcr (ffffffffffffffff) => 00000000ffffffff (ffffffff 00000000)
 
-       mfspr 1 (00000000) -> mtxer -> mfxer => 0000000000000000
-       mfspr 1 (be991def) -> mtxer -> mfxer => 00000000a000006f
-       mfspr 1 (ffffffff) -> mtxer -> mfxer => 00000000e000007f
-       mfspr 8 (00000000) ->  mtlr ->  mflr => 0000000000000000
-       mfspr 8 (be991def) ->  mtlr ->  mflr => ffffffffbe991def
-       mfspr 8 (ffffffff) ->  mtlr ->  mflr => ffffffffffffffff
-       mfspr 9 (00000000) -> mtctr -> mfctr => 0000000000000000
-       mfspr 9 (be991def) -> mtctr -> mfctr => ffffffffbe991def
-       mfspr 9 (ffffffff) -> mtctr -> mfctr => ffffffffffffffff
-
-
        rldcl 0000000000000000, 0000000000000000,  0 => 0000000000000000 (00000000 00000000)
        rldcl 0000000000000000, 0000000000000000,  7 => 0000000000000000 (00000000 00000000)
        rldcl 0000000000000000, 0000000000000000, 14 => 0000000000000000 (00000000 00000000)
@@ -2061,37 +2003,6 @@ PPC logical insns with special forms:
       rldimi ffffffffffffffff, 63, 56 => ffffffffffffffff (00000000 00000000)
       rldimi ffffffffffffffff, 63, 63 => ffffffffffffffff (00000000 00000000)
 
-       sradi 0000000000000000,  0 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000,  7 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 14 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 21 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 28 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 35 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 42 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 49 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 56 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 63 => 0000000000000000 (00000000 00000000)
-       sradi 0000001cbe991def,  0 => 0000001cbe991def (00000000 00000000)
-       sradi 0000001cbe991def,  7 => 00000000397d323b (00000000 00000000)
-       sradi 0000001cbe991def, 14 => 000000000072fa64 (00000000 00000000)
-       sradi 0000001cbe991def, 21 => 000000000000e5f4 (00000000 00000000)
-       sradi 0000001cbe991def, 28 => 00000000000001cb (00000000 00000000)
-       sradi 0000001cbe991def, 35 => 0000000000000003 (00000000 00000000)
-       sradi 0000001cbe991def, 42 => 0000000000000000 (00000000 00000000)
-       sradi 0000001cbe991def, 49 => 0000000000000000 (00000000 00000000)
-       sradi 0000001cbe991def, 56 => 0000000000000000 (00000000 00000000)
-       sradi 0000001cbe991def, 63 => 0000000000000000 (00000000 00000000)
-       sradi ffffffffffffffff,  0 => ffffffffffffffff (00000000 00000000)
-       sradi ffffffffffffffff,  7 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 14 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 21 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 28 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 35 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 42 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 49 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 56 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 63 => ffffffffffffffff (00000000 20000000)
-
 PPC logical insns with special forms with flags update:
      rlwimi. 0000000000000000,  0,  0,  0 => 0000000000000000 (20000000 00000000)
      rlwimi. 0000000000000000,  0,  0, 31 => 0000000000000000 (20000000 00000000)
@@ -2180,13 +2091,6 @@ PPC logical insns with special forms with flags update:
       rlwnm. ffffffffffffffff, ffffffffffffffff, 31,  0 => ffffffff80000001 (80000000 00000000)
       rlwnm. ffffffffffffffff, ffffffffffffffff, 31, 31 => 0000000000000001 (40000000 00000000)
 
-      srawi. 0000000000000000,  0 => 0000000000000000 (20000000 00000000)
-      srawi. 0000000000000000, 31 => 0000000000000000 (20000000 00000000)
-      srawi. 0000001cbe991def,  0 => ffffffffbe991def (80000000 00000000)
-      srawi. 0000001cbe991def, 31 => ffffffffffffffff (80000000 20000000)
-      srawi. ffffffffffffffff,  0 => ffffffffffffffff (80000000 00000000)
-      srawi. ffffffffffffffff, 31 => ffffffffffffffff (80000000 20000000)
-
         mcrf 0, 0 (0000000000000000) => (00000000 00000000)
         mcrf 0, 7 (0000000000000000) => (00000000 00000000)
         mcrf 7, 0 (0000000000000000) => (00000000 00000000)
@@ -3725,37 +3629,6 @@ PPC logical insns with special forms with flags update:
      rldimi. ffffffffffffffff, 63, 56 => ffffffffffffffff (80000000 00000000)
      rldimi. ffffffffffffffff, 63, 63 => ffffffffffffffff (80000000 00000000)
 
-      sradi. 0000000000000000,  0 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000,  7 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 14 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 21 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 28 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 35 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 42 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 49 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 56 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 63 => 0000000000000000 (20000000 00000000)
-      sradi. 0000001cbe991def,  0 => 0000001cbe991def (40000000 00000000)
-      sradi. 0000001cbe991def,  7 => 00000000397d323b (40000000 00000000)
-      sradi. 0000001cbe991def, 14 => 000000000072fa64 (40000000 00000000)
-      sradi. 0000001cbe991def, 21 => 000000000000e5f4 (40000000 00000000)
-      sradi. 0000001cbe991def, 28 => 00000000000001cb (40000000 00000000)
-      sradi. 0000001cbe991def, 35 => 0000000000000003 (40000000 00000000)
-      sradi. 0000001cbe991def, 42 => 0000000000000000 (20000000 00000000)
-      sradi. 0000001cbe991def, 49 => 0000000000000000 (20000000 00000000)
-      sradi. 0000001cbe991def, 56 => 0000000000000000 (20000000 00000000)
-      sradi. 0000001cbe991def, 63 => 0000000000000000 (20000000 00000000)
-      sradi. ffffffffffffffff,  0 => ffffffffffffffff (80000000 00000000)
-      sradi. ffffffffffffffff,  7 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 14 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 21 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 28 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 35 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 42 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 49 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 56 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 63 => ffffffffffffffff (80000000 20000000)
-
 PPC integer load insns
     with one register + one 16 bits immediate args with flags update:
          lbz   0, (0000000000000000) => 0000000000000000,   0 (00000000 00000000)
@@ -3975,4 +3848,4 @@ PPC integer store insns with three register args:
        stdux 0000001cbe991def,   8 => 0000001cbe991def,  8 (00000000 00000000)
        stdux ffffffffffffffff,  16 => ffffffffffffffff, 16 (00000000 00000000)
 
-All done. Tested 131 different instructions
+All done. Tested 121 different instructions
index 5cc903dffdcb891fd677d5e78d24568819979d4d..08fac66165639a0ffaac86dff77bd62d774bf7e4 100644 (file)
@@ -89,16 +89,6 @@ PPC integer logical insns with two args:
          slw ffffffffffffffff, 0000001cbe991def => 0000000000000000 (00000000 00000000)
          slw ffffffffffffffff, ffffffffffffffff => 0000000000000000 (00000000 00000000)
 
-        sraw 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
-        sraw 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
-        sraw 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
-        sraw 0000001cbe991def, 0000000000000000 => ffffffffbe991def (00000000 00000000)
-        sraw 0000001cbe991def, 0000001cbe991def => ffffffffffffffff (00000000 20000000)
-        sraw 0000001cbe991def, ffffffffffffffff => ffffffffffffffff (00000000 20000000)
-        sraw ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
-        sraw ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 20000000)
-        sraw ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 20000000)
-
          srw 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
          srw 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
          srw 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
@@ -119,16 +109,6 @@ PPC integer logical insns with two args:
          sld ffffffffffffffff, 0000001cbe991def => 0000000000000000 (00000000 00000000)
          sld ffffffffffffffff, ffffffffffffffff => 0000000000000000 (00000000 00000000)
 
-        srad 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
-        srad 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
-        srad 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
-        srad 0000001cbe991def, 0000000000000000 => 0000001cbe991def (00000000 00000000)
-        srad 0000001cbe991def, 0000001cbe991def => 0000000000000000 (00000000 00000000)
-        srad 0000001cbe991def, ffffffffffffffff => 0000000000000000 (00000000 00000000)
-        srad ffffffffffffffff, 0000000000000000 => ffffffffffffffff (00000000 00000000)
-        srad ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (00000000 20000000)
-        srad ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (00000000 20000000)
-
          srd 0000000000000000, 0000000000000000 => 0000000000000000 (00000000 00000000)
          srd 0000000000000000, 0000001cbe991def => 0000000000000000 (00000000 00000000)
          srd 0000000000000000, ffffffffffffffff => 0000000000000000 (00000000 00000000)
@@ -230,16 +210,6 @@ PPC integer logical insns with two args with flags update:
         slw. ffffffffffffffff, 0000001cbe991def => 0000000000000000 (20000000 00000000)
         slw. ffffffffffffffff, ffffffffffffffff => 0000000000000000 (20000000 00000000)
 
-       sraw. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
-       sraw. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
-       sraw. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
-       sraw. 0000001cbe991def, 0000000000000000 => ffffffffbe991def (80000000 00000000)
-       sraw. 0000001cbe991def, 0000001cbe991def => ffffffffffffffff (80000000 20000000)
-       sraw. 0000001cbe991def, ffffffffffffffff => ffffffffffffffff (80000000 20000000)
-       sraw. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
-       sraw. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 20000000)
-       sraw. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 20000000)
-
         srw. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
         srw. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
         srw. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
@@ -260,16 +230,6 @@ PPC integer logical insns with two args with flags update:
         sld. ffffffffffffffff, 0000001cbe991def => 0000000000000000 (20000000 00000000)
         sld. ffffffffffffffff, ffffffffffffffff => 0000000000000000 (20000000 00000000)
 
-       srad. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
-       srad. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
-       srad. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
-       srad. 0000001cbe991def, 0000000000000000 => 0000001cbe991def (40000000 00000000)
-       srad. 0000001cbe991def, 0000001cbe991def => 0000000000000000 (20000000 00000000)
-       srad. 0000001cbe991def, ffffffffffffffff => 0000000000000000 (20000000 00000000)
-       srad. ffffffffffffffff, 0000000000000000 => ffffffffffffffff (80000000 00000000)
-       srad. ffffffffffffffff, 0000001cbe991def => ffffffffffffffff (80000000 20000000)
-       srad. ffffffffffffffff, ffffffffffffffff => ffffffffffffffff (80000000 20000000)
-
         srd. 0000000000000000, 0000000000000000 => 0000000000000000 (20000000 00000000)
         srd. 0000000000000000, 0000001cbe991def => 0000000000000000 (20000000 00000000)
         srd. 0000000000000000, ffffffffffffffff => 0000000000000000 (20000000 00000000)
@@ -653,13 +613,6 @@ PPC logical insns with special forms:
        rlwnm ffffffffffffffff, ffffffffffffffff, 31,  0 => ffffffff80000001 (00000000 00000000)
        rlwnm ffffffffffffffff, ffffffffffffffff, 31, 31 => 0000000000000001 (00000000 00000000)
 
-       srawi 0000000000000000,  0 => 0000000000000000 (00000000 00000000)
-       srawi 0000000000000000, 31 => 0000000000000000 (00000000 00000000)
-       srawi 0000001cbe991def,  0 => ffffffffbe991def (00000000 00000000)
-       srawi 0000001cbe991def, 31 => ffffffffffffffff (00000000 20000000)
-       srawi ffffffffffffffff,  0 => ffffffffffffffff (00000000 00000000)
-       srawi ffffffffffffffff, 31 => ffffffffffffffff (00000000 20000000)
-
         mfcr (0000000000000000) => 0000000000000000 (00000000 00000000)
         mfcr (0000001cbe991def) => 00000000be991def (be991def 00000000)
         mfcr (ffffffffffffffff) => 00000000ffffffff (ffffffff 00000000)
@@ -2061,37 +2014,6 @@ PPC logical insns with special forms:
       rldimi ffffffffffffffff, 63, 56 => ffffffffffffffff (00000000 00000000)
       rldimi ffffffffffffffff, 63, 63 => ffffffffffffffff (00000000 00000000)
 
-       sradi 0000000000000000,  0 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000,  7 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 14 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 21 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 28 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 35 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 42 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 49 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 56 => 0000000000000000 (00000000 00000000)
-       sradi 0000000000000000, 63 => 0000000000000000 (00000000 00000000)
-       sradi 0000001cbe991def,  0 => 0000001cbe991def (00000000 00000000)
-       sradi 0000001cbe991def,  7 => 00000000397d323b (00000000 00000000)
-       sradi 0000001cbe991def, 14 => 000000000072fa64 (00000000 00000000)
-       sradi 0000001cbe991def, 21 => 000000000000e5f4 (00000000 00000000)
-       sradi 0000001cbe991def, 28 => 00000000000001cb (00000000 00000000)
-       sradi 0000001cbe991def, 35 => 0000000000000003 (00000000 00000000)
-       sradi 0000001cbe991def, 42 => 0000000000000000 (00000000 00000000)
-       sradi 0000001cbe991def, 49 => 0000000000000000 (00000000 00000000)
-       sradi 0000001cbe991def, 56 => 0000000000000000 (00000000 00000000)
-       sradi 0000001cbe991def, 63 => 0000000000000000 (00000000 00000000)
-       sradi ffffffffffffffff,  0 => ffffffffffffffff (00000000 00000000)
-       sradi ffffffffffffffff,  7 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 14 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 21 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 28 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 35 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 42 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 49 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 56 => ffffffffffffffff (00000000 20000000)
-       sradi ffffffffffffffff, 63 => ffffffffffffffff (00000000 20000000)
-
 PPC logical insns with special forms with flags update:
      rlwimi. 0000000000000000,  0,  0,  0 => 0000000000000000 (20000000 00000000)
      rlwimi. 0000000000000000,  0,  0, 31 => 0000000000000000 (20000000 00000000)
@@ -2180,13 +2102,6 @@ PPC logical insns with special forms with flags update:
       rlwnm. ffffffffffffffff, ffffffffffffffff, 31,  0 => ffffffff80000001 (80000000 00000000)
       rlwnm. ffffffffffffffff, ffffffffffffffff, 31, 31 => 0000000000000001 (40000000 00000000)
 
-      srawi. 0000000000000000,  0 => 0000000000000000 (20000000 00000000)
-      srawi. 0000000000000000, 31 => 0000000000000000 (20000000 00000000)
-      srawi. 0000001cbe991def,  0 => ffffffffbe991def (80000000 00000000)
-      srawi. 0000001cbe991def, 31 => ffffffffffffffff (80000000 20000000)
-      srawi. ffffffffffffffff,  0 => ffffffffffffffff (80000000 00000000)
-      srawi. ffffffffffffffff, 31 => ffffffffffffffff (80000000 20000000)
-
         mcrf 0, 0 (0000000000000000) => (00000000 00000000)
         mcrf 0, 7 (0000000000000000) => (00000000 00000000)
         mcrf 7, 0 (0000000000000000) => (00000000 00000000)
@@ -3725,37 +3640,6 @@ PPC logical insns with special forms with flags update:
      rldimi. ffffffffffffffff, 63, 56 => ffffffffffffffff (80000000 00000000)
      rldimi. ffffffffffffffff, 63, 63 => ffffffffffffffff (80000000 00000000)
 
-      sradi. 0000000000000000,  0 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000,  7 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 14 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 21 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 28 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 35 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 42 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 49 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 56 => 0000000000000000 (20000000 00000000)
-      sradi. 0000000000000000, 63 => 0000000000000000 (20000000 00000000)
-      sradi. 0000001cbe991def,  0 => 0000001cbe991def (40000000 00000000)
-      sradi. 0000001cbe991def,  7 => 00000000397d323b (40000000 00000000)
-      sradi. 0000001cbe991def, 14 => 000000000072fa64 (40000000 00000000)
-      sradi. 0000001cbe991def, 21 => 000000000000e5f4 (40000000 00000000)
-      sradi. 0000001cbe991def, 28 => 00000000000001cb (40000000 00000000)
-      sradi. 0000001cbe991def, 35 => 0000000000000003 (40000000 00000000)
-      sradi. 0000001cbe991def, 42 => 0000000000000000 (20000000 00000000)
-      sradi. 0000001cbe991def, 49 => 0000000000000000 (20000000 00000000)
-      sradi. 0000001cbe991def, 56 => 0000000000000000 (20000000 00000000)
-      sradi. 0000001cbe991def, 63 => 0000000000000000 (20000000 00000000)
-      sradi. ffffffffffffffff,  0 => ffffffffffffffff (80000000 00000000)
-      sradi. ffffffffffffffff,  7 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 14 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 21 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 28 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 35 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 42 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 49 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 56 => ffffffffffffffff (80000000 20000000)
-      sradi. ffffffffffffffff, 63 => ffffffffffffffff (80000000 20000000)
-
 PPC integer load insns
     with one register + one 16 bits immediate args with flags update:
          lbz   0, (0000000000000000) => 0000000000000000,   0 (00000000 00000000)
@@ -3975,4 +3859,4 @@ PPC integer store insns with three register args:
        stdux 0000001cbe991def,   8 => 0000001cbe991def,  8 (00000000 00000000)
        stdux ffffffffffffffff,  16 => ffffffffffffffff, 16 (00000000 00000000)
 
-All done. Tested 131 different instructions
+All done. Tested 123 different instructions
This page took 0.095299 seconds and 5 git commands to generate.