sim: sh: fix uninitialized variable usage with pdmsb
authorMike Frysinger <vapier@gentoo.org>
Sat, 6 Nov 2021 17:19:35 +0000 (13:19 -0400)
committerMike Frysinger <vapier@gentoo.org>
Sun, 7 Nov 2021 00:32:31 +0000 (20:32 -0400)
This block of code relies on i to control which bits to test and how
many times to run through the loop, but it never actually initialized
it.  There is another chunk of code that handles the pdmsb instruction
that sets i to 16, so use that here too assuming it's correct.  The
programming manual suggests this is the right value too, but I am by
no means a SuperH DSP expert.  The tests are still passing though ...

sim/sh/gencode.c

index 9ef8b4610be11071fa103ff220c8284b9bed2668..80eecfdf1d3687e192c0576a97ece63413a60eb5 100644 (file)
@@ -2363,7 +2363,7 @@ op ppi_tab[] =
   },
   { "","", "(if cc) pdmsb Sy,Dz",      "101111cc..yyzzzz",
     "unsigned Sy = DSP_R (y);",
-    "int i;",
+    "int i = 16;",
     "",
     "if (Sy < 0)",
     "  Sy = ~Sy;",