opcodes:
[deliverable/binutils-gdb.git] / gas / config / tc-sh.c
index d4682157ec190693e5c8ae28b501d8e4002a0415..036a1d3d9137d64bb7a8793ff1860a2812d748f2 100644 (file)
@@ -847,7 +847,13 @@ get_operands (info, args, operand)
              ptr++;
            }
          get_operand (&ptr, operand + 1);
-         if (info->arg[2])
+         /* ??? Hack: psha/pshl have a varying operand number depending on
+            the type of the first operand.  We handle this by having the
+            three-operand version first and reducing the number of operands
+            parsed to two if we see that the first operand is an immediate.
+             This works because no insn with three operands has an immediate
+            as first operand.  */
+         if (info->arg[2] && operand[0].type != A_IMM)
            {
              if (*ptr == ',')
                {
This page took 0.025415 seconds and 4 git commands to generate.