gas/
[deliverable/binutils-gdb.git] / sim / sh64 / decode-media.c
index c08dc77b0ef063541c171e4c2783d2a1135f2ac4..1a4fca79957d50649d8b6493ec7f25001faa3894 100644 (file)
@@ -2,7 +2,7 @@
 
 THIS FILE IS MACHINE GENERATED WITH CGEN.
 
-Copyright 1996-2009 Free Software Foundation, Inc.
+Copyright 1996-2013 Free Software Foundation, Inc.
 
 This file is part of the GNU simulators.
 
@@ -17,8 +17,7 @@ This file is part of the GNU simulators.
    License for more details.
 
    You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation, Inc.,
-   51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+   with this program; if not, see <http://www.gnu.org/licenses/>.
 
 */
 
@@ -63,7 +62,7 @@ static const struct insn_sem sh64_media_insn_sem[] =
   { SH_INSN_BGTU, SH64_MEDIA_INSN_BGTU, SH64_MEDIA_SFMT_BEQ },
   { SH_INSN_BLINK, SH64_MEDIA_INSN_BLINK, SH64_MEDIA_SFMT_BLINK },
   { SH_INSN_BNE, SH64_MEDIA_INSN_BNE, SH64_MEDIA_SFMT_BEQ },
-  { SH_INSN_BNEI, SH64_MEDIA_INSN_BNEI, SH64_MEDIA_SFMT_BEQI },
+  { SH_INSN_BNEI, SH64_MEDIA_INSN_BNEI, SH64_MEDIA_SFMT_BNEI },
   { SH_INSN_BRK, SH64_MEDIA_INSN_BRK, SH64_MEDIA_SFMT_BRK },
   { SH_INSN_BYTEREV, SH64_MEDIA_INSN_BYTEREV, SH64_MEDIA_SFMT_BYTEREV },
   { SH_INSN_CMPEQ, SH64_MEDIA_INSN_CMPEQ, SH64_MEDIA_SFMT_ADD },
@@ -119,11 +118,11 @@ static const struct insn_sem sh64_media_insn_sem[] =
   { SH_INSN_FSTXD, SH64_MEDIA_INSN_FSTXD, SH64_MEDIA_SFMT_FSTXD },
   { SH_INSN_FSTXP, SH64_MEDIA_INSN_FSTXP, SH64_MEDIA_SFMT_FLDXP },
   { SH_INSN_FSTXS, SH64_MEDIA_INSN_FSTXS, SH64_MEDIA_SFMT_FSTXS },
-  { SH_INSN_FSUBD, SH64_MEDIA_INSN_FSUBD, SH64_MEDIA_SFMT_FADDD },
+  { SH_INSN_FSUBD, SH64_MEDIA_INSN_FSUBD, SH64_MEDIA_SFMT_FSUBD },
   { SH_INSN_FSUBS, SH64_MEDIA_INSN_FSUBS, SH64_MEDIA_SFMT_FADDS },
   { SH_INSN_FTRCDL, SH64_MEDIA_INSN_FTRCDL, SH64_MEDIA_SFMT_FCNVDS },
   { SH_INSN_FTRCSL, SH64_MEDIA_INSN_FTRCSL, SH64_MEDIA_SFMT_FABSS },
-  { SH_INSN_FTRCDQ, SH64_MEDIA_INSN_FTRCDQ, SH64_MEDIA_SFMT_FABSD },
+  { SH_INSN_FTRCDQ, SH64_MEDIA_INSN_FTRCDQ, SH64_MEDIA_SFMT_FTRCDQ },
   { SH_INSN_FTRCSQ, SH64_MEDIA_INSN_FTRCSQ, SH64_MEDIA_SFMT_FCNVSD },
   { SH_INSN_FTRVS, SH64_MEDIA_INSN_FTRVS, SH64_MEDIA_SFMT_FTRVS },
   { SH_INSN_GETCFG, SH64_MEDIA_INSN_GETCFG, SH64_MEDIA_SFMT_GETCFG },
@@ -171,7 +170,7 @@ static const struct insn_sem sh64_media_insn_sem[] =
   { SH_INSN_MEXTR6, SH64_MEDIA_INSN_MEXTR6, SH64_MEDIA_SFMT_ADD },
   { SH_INSN_MEXTR7, SH64_MEDIA_INSN_MEXTR7, SH64_MEDIA_SFMT_ADD },
   { SH_INSN_MMACFXWL, SH64_MEDIA_INSN_MMACFXWL, SH64_MEDIA_SFMT_MCMV },
-  { SH_INSN_MMACNFX_WL, SH64_MEDIA_INSN_MMACNFX_WL, SH64_MEDIA_SFMT_MCMV },
+  { SH_INSN_MMACNFX_WL, SH64_MEDIA_INSN_MMACNFX_WL, SH64_MEDIA_SFMT_MMACNFX_WL },
   { SH_INSN_MMULL, SH64_MEDIA_INSN_MMULL, SH64_MEDIA_SFMT_ADD },
   { SH_INSN_MMULW, SH64_MEDIA_INSN_MMULW, SH64_MEDIA_SFMT_ADD },
   { SH_INSN_MMULFXL, SH64_MEDIA_INSN_MMULFXL, SH64_MEDIA_SFMT_ADD },
@@ -212,7 +211,7 @@ static const struct insn_sem sh64_media_insn_sem[] =
   { SH_INSN_OCBWB, SH64_MEDIA_INSN_OCBWB, SH64_MEDIA_SFMT_ALLOCO },
   { SH_INSN_OR, SH64_MEDIA_INSN_OR, SH64_MEDIA_SFMT_ADD },
   { SH_INSN_ORI, SH64_MEDIA_INSN_ORI, SH64_MEDIA_SFMT_ORI },
-  { SH_INSN_PREFI, SH64_MEDIA_INSN_PREFI, SH64_MEDIA_SFMT_ALLOCO },
+  { SH_INSN_PREFI, SH64_MEDIA_INSN_PREFI, SH64_MEDIA_SFMT_PREFI },
   { SH_INSN_PTA, SH64_MEDIA_INSN_PTA, SH64_MEDIA_SFMT_PTA },
   { SH_INSN_PTABS, SH64_MEDIA_INSN_PTABS, SH64_MEDIA_SFMT_PTABS },
   { SH_INSN_PTB, SH64_MEDIA_INSN_PTB, SH64_MEDIA_SFMT_PTA },
@@ -256,7 +255,8 @@ static const struct insn_sem sh64_media_insn_sem[] =
   { SH_INSN_XORI, SH64_MEDIA_INSN_XORI, SH64_MEDIA_SFMT_XORI },
 };
 
-static const struct insn_sem sh64_media_insn_sem_invalid = {
+static const struct insn_sem sh64_media_insn_sem_invalid =
+{
   VIRTUAL_INSN_X_INVALID, SH64_MEDIA_INSN_X_INVALID, SH64_MEDIA_SFMT_EMPTY
 };
 
@@ -707,7 +707,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
         itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
       case 211 :
         if ((entire_insn & 0xfc0f000f) == 0x34030000)
-          { itype = SH64_MEDIA_INSN_FSUBD; goto extract_sfmt_faddd; }
+          { itype = SH64_MEDIA_INSN_FSUBD; goto extract_sfmt_fsubd; }
         itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
       case 212 :
         if ((entire_insn & 0xfc0f000f) == 0x34040000)
@@ -759,7 +759,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
         itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
       case 233 :
         if ((entire_insn & 0xfc0f000f) == 0x38090000)
-          { itype = SH64_MEDIA_INSN_FTRCDQ; goto extract_sfmt_fabsd; }
+          { itype = SH64_MEDIA_INSN_FTRCDQ; goto extract_sfmt_ftrcdq; }
         itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
       case 234 :
         if ((entire_insn & 0xfc0f000f) == 0x380a0000)
@@ -843,7 +843,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
         itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
       case 293 :
         if ((entire_insn & 0xfc0f000f) == 0x48050000)
-          { itype = SH64_MEDIA_INSN_MMACNFX_WL; goto extract_sfmt_mcmv; }
+          { itype = SH64_MEDIA_INSN_MMACNFX_WL; goto extract_sfmt_mmacnfx_wl; }
         itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
       case 297 :
         if ((entire_insn & 0xfc0f000f) == 0x48090000)
@@ -1437,7 +1437,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
         itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
       case 897 :
         if ((entire_insn & 0xfc0ffc0f) == 0xe001fc00)
-          { itype = SH64_MEDIA_INSN_PREFI; goto extract_sfmt_alloco; }
+          { itype = SH64_MEDIA_INSN_PREFI; goto extract_sfmt_prefi; }
         itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
       case 898 :
         if ((entire_insn & 0xfc0f000f) == 0xe0020000)
@@ -1485,7 +1485,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
         itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
       case 917 :
         if ((entire_insn & 0xfc0f018f) == 0xe4050000)
-          { itype = SH64_MEDIA_INSN_BNEI; goto extract_sfmt_beqi; }
+          { itype = SH64_MEDIA_INSN_BNEI; goto extract_sfmt_bnei; }
         itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
       case 928 : /* fall through */
       case 929 : /* fall through */
@@ -1535,7 +1535,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
  extract_sfmt_empty:
   {
     const IDESC *idesc = &sh64_media_insn_data[itype];
-#define FLD(f) abuf->fields.fmt_empty.f
+#define FLD(f) abuf->fields.sfmt_empty.f
 
 
   /* Record the fields for the semantic handler.  */
@@ -1587,7 +1587,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp10 = EXTRACT_MSB0_INT (insn, 32, 12, 10);
+    f_disp10 = EXTRACT_MSB0_SINT (insn, 32, 12, 10);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -1675,7 +1675,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_tra;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_imm6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+    f_imm6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
     f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
 
   /* Record the fields for the semantic handler.  */
@@ -1720,6 +1720,37 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
       FLD (out_rd) = f_dest;
     }
 #endif
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_bnei:
+  {
+    const IDESC *idesc = &sh64_media_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_beqi.f
+    UINT f_left;
+    INT f_imm6;
+    UINT f_tra;
+
+    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
+    f_imm6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
+    f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_imm6) = f_imm6;
+  FLD (f_left) = f_left;
+  FLD (f_tra) = f_tra;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bnei", "f_imm6 0x%x", 'x', f_imm6, "f_left 0x%x", 'x', f_left, "f_tra 0x%x", 'x', f_tra, (char *) 0));
+
+#if WITH_PROFILE_MODEL_P
+  /* Record the fields for profiling.  */
+  if (PROFILE_MODEL_P (current_cpu))
+    {
+      FLD (in_rm) = f_left;
+      FLD (in_tra) = f_tra;
+    }
+#endif
 #undef FLD
     return idesc;
   }
@@ -1727,7 +1758,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
  extract_sfmt_brk:
   {
     const IDESC *idesc = &sh64_media_insn_data[itype];
-#define FLD(f) abuf->fields.fmt_empty.f
+#define FLD(f) abuf->fields.sfmt_empty.f
 
 
   /* Record the fields for the semantic handler.  */
@@ -2127,7 +2158,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
+    f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -2158,7 +2189,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
+    f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -2190,7 +2221,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp10x4 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (2));
+    f_disp10x4 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (2));
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -2499,7 +2530,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
+    f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -2530,7 +2561,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp10x4 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (2));
+    f_disp10x4 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (2));
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -2611,6 +2642,70 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
       FLD (in_rn) = f_right;
     }
 #endif
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_fsubd:
+  {
+    const IDESC *idesc = &sh64_media_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_add.f
+    UINT f_left;
+    UINT f_right;
+    UINT f_dest;
+
+    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
+    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
+    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_left) = f_left;
+  FLD (f_right) = f_right;
+  FLD (f_dest) = f_dest;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fsubd", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
+
+#if WITH_PROFILE_MODEL_P
+  /* Record the fields for profiling.  */
+  if (PROFILE_MODEL_P (current_cpu))
+    {
+      FLD (in_drg) = f_left;
+      FLD (in_drh) = f_right;
+      FLD (out_drf) = f_dest;
+    }
+#endif
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_ftrcdq:
+  {
+    const IDESC *idesc = &sh64_media_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_fabsd.f
+    UINT f_left;
+    UINT f_right;
+    UINT f_dest;
+    UINT f_left_right;
+
+    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
+    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
+    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
+  f_left_right = f_left;
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_left_right) = f_left_right;
+  FLD (f_dest) = f_dest;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ftrcdq", "f_left_right 0x%x", 'x', f_left_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
+
+#if WITH_PROFILE_MODEL_P
+  /* Record the fields for profiling.  */
+  if (PROFILE_MODEL_P (current_cpu))
+    {
+      FLD (in_drgh) = f_left_right;
+      FLD (out_drf) = f_dest;
+    }
+#endif
 #undef FLD
     return idesc;
   }
@@ -2660,7 +2755,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+    f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -2746,7 +2841,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp10 = EXTRACT_MSB0_INT (insn, 32, 12, 10);
+    f_disp10 = EXTRACT_MSB0_SINT (insn, 32, 12, 10);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -2777,7 +2872,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp10x4 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (2));
+    f_disp10x4 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (2));
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -2808,7 +2903,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
+    f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -2839,7 +2934,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp10x2 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (1));
+    f_disp10x2 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (1));
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -2870,7 +2965,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+    f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -2901,7 +2996,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+    f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -2932,7 +3027,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+    f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -2963,7 +3058,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+    f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -3195,6 +3290,39 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
   FLD (f_right) = f_right;
   TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mcmv", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
 
+#if WITH_PROFILE_MODEL_P
+  /* Record the fields for profiling.  */
+  if (PROFILE_MODEL_P (current_cpu))
+    {
+      FLD (in_rd) = f_dest;
+      FLD (in_rm) = f_left;
+      FLD (in_rn) = f_right;
+      FLD (out_rd) = f_dest;
+    }
+#endif
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_mmacnfx_wl:
+  {
+    const IDESC *idesc = &sh64_media_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_add.f
+    UINT f_left;
+    UINT f_right;
+    UINT f_dest;
+
+    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
+    f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
+    f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_dest) = f_dest;
+  FLD (f_left) = f_left;
+  FLD (f_right) = f_right;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mmacnfx_wl", "f_dest 0x%x", 'x', f_dest, "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, (char *) 0));
+
 #if WITH_PROFILE_MODEL_P
   /* Record the fields for profiling.  */
   if (PROFILE_MODEL_P (current_cpu))
@@ -3217,7 +3345,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     INT f_imm16;
     UINT f_dest;
 
-    f_imm16 = EXTRACT_MSB0_INT (insn, 32, 6, 16);
+    f_imm16 = EXTRACT_MSB0_SINT (insn, 32, 6, 16);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -3239,7 +3367,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
  extract_sfmt_nop:
   {
     const IDESC *idesc = &sh64_media_insn_data[itype];
-#define FLD(f) abuf->fields.fmt_empty.f
+#define FLD(f) abuf->fields.sfmt_empty.f
 
 
   /* Record the fields for the semantic handler.  */
@@ -3259,7 +3387,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_imm10 = EXTRACT_MSB0_INT (insn, 32, 12, 10);
+    f_imm10 = EXTRACT_MSB0_SINT (insn, 32, 12, 10);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -3276,6 +3404,31 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
       FLD (out_rd) = f_dest;
     }
 #endif
+#undef FLD
+    return idesc;
+  }
+
+ extract_sfmt_prefi:
+  {
+    const IDESC *idesc = &sh64_media_insn_data[itype];
+    CGEN_INSN_WORD insn = entire_insn;
+#define FLD(f) abuf->fields.sfmt_xori.f
+    UINT f_left;
+
+    f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
+
+  /* Record the fields for the semantic handler.  */
+  FLD (f_left) = f_left;
+  TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_prefi", "f_left 0x%x", 'x', f_left, (char *) 0));
+
+#if WITH_PROFILE_MODEL_P
+  /* Record the fields for profiling.  */
+  if (PROFILE_MODEL_P (current_cpu))
+    {
+      FLD (in_rm) = f_left;
+      FLD (out_rm) = f_left;
+    }
+#endif
 #undef FLD
     return idesc;
   }
@@ -3288,7 +3441,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     DI f_disp16;
     UINT f_tra;
 
-    f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 6, 16)) << (2))) + (pc));
+    f_disp16 = ((((EXTRACT_MSB0_SINT (insn, 32, 6, 16)) << (2))) + (pc));
     f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
 
   /* Record the fields for the semantic handler.  */
@@ -3373,7 +3526,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+    f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -3490,7 +3643,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp10 = EXTRACT_MSB0_INT (insn, 32, 12, 10);
+    f_disp10 = EXTRACT_MSB0_SINT (insn, 32, 12, 10);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -3521,7 +3674,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp10x4 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (2));
+    f_disp10x4 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (2));
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -3552,7 +3705,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
+    f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -3583,7 +3736,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp10x2 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (1));
+    f_disp10x2 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (1));
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -3614,7 +3767,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+    f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -3645,7 +3798,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+    f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -3676,7 +3829,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+    f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -3707,7 +3860,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+    f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
@@ -3923,7 +4076,7 @@ sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
     UINT f_dest;
 
     f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
-    f_imm6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+    f_imm6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
     f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
 
   /* Record the fields for the semantic handler.  */
This page took 0.030446 seconds and 4 git commands to generate.