sim: sh: avoid left shifting negative values

We just want to create a bitmask here, so cast the mask to unsigned
to avoid left shifting a negative value which is undefined behavior.
diff --git a/sim/sh/gencode.c b/sim/sh/gencode.c
index c121d53..8246e894 100644
--- a/sim/sh/gencode.c
+++ b/sim/sh/gencode.c
@@ -2350,7 +2350,7 @@
     "  res = 31;",
     "do",
     "  {",
-    "    if (Sx & ~0 << i)",
+    "    if (Sx & ((unsigned)~0 << i))",
     "      {",
     "        res -= i;",
     "        Sx >>= i;",
@@ -2373,7 +2373,7 @@
     "res = 31;",
     "do",
     "  {",
-    "    if (Sy & ~0 << i)",
+    "    if (Sy & ((unsigned)~0 << i))",
     "      {",
     "        res -= i;",
     "        Sy >>= i;",