]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
sim: sh: adjust some dsp insn masks
authorMike Frysinger <vapier@gentoo.org>
Sat, 16 Dec 2023 04:54:40 +0000 (23:54 -0500)
committerMike Frysinger <vapier@gentoo.org>
Sat, 16 Dec 2023 04:59:00 +0000 (23:59 -0500)
The pmuls encoding is incorrect -- it looks like a copy & paste error
from the padd pmuls variant.  The SuperH software manual covers this.

On the flip side, the manual lists pwsb & pwad as insns that exist,
but no description of what they do, what the insn name means, or the
actual encoding.  Our sim implementation stubs them both out as nops.
Let's mark the fields to avoid unused variable warnings.

sim/sh/gencode.c

index 0a04e339fa18e6ebb8ccee9c24632e2387149e15..2522ec124f86131fcf92ec2a1dc6cf827d0686b3 100644 (file)
@@ -1915,7 +1915,7 @@ static op ppi_tab[] =
     "COMPUTE_OVERFLOW;",
     "greater_equal = 0;",
   },
-  { "","", "pmuls Se,Sf,Dg",   "0100eeffxxyygguu",
+  { "","", "pmuls Se,Sf,Dg",   "0100eeff0000gg00",
     "res = (DSP_R (e) >> 16) * (DSP_R (f) >> 16) * 2;",
     "if (res == 0x80000000)",
     "  res = 0x7fffffff;",
@@ -2011,9 +2011,9 @@ static op ppi_tab[] =
     "COMPUTE_OVERFLOW;",
     "ADD_SUB_GE;",
   },
-  { "","", "pwsb Sx,Sy,Dz",    "10100100xxyyzzzz",
+  { "","", "pwsb Sx,Sy,Dz",    "10100100....zzzz",
   },
-  { "","", "pwad Sx,Sy,Dz",    "10110100xxyyzzzz",
+  { "","", "pwad Sx,Sy,Dz",    "10110100....zzzz",
   },
   { "","", "(if cc) pabs Sx,Dz",       "100010ccxx01zzzz",
     "/* FIXME: duplicate code pabs.  */",