x86: move putop() case labels to restore alphabetic sorting

... as far as non-fall-through behavior permits.
This commit is contained in:
Jan Beulich
2020-07-15 08:55:53 +02:00
parent c3f5525ff1
commit f0e8d0bae4
2 changed files with 52 additions and 49 deletions

View File

@ -1,3 +1,7 @@
2020-07-15 Jan Beulich <jbeulich@suse.com>
* i386-dis.c (putop): Move 'V' and 'W' handling.
2020-07-15 Jan Beulich <jbeulich@suse.com>
* i386-dis.c (dis386): Adjust 'V' description. Use P-based

View File

@ -10742,22 +10742,6 @@ putop (const char *in_template, int sizeflag)
if (!(rex & REX_W))
used_prefixes |= (prefixes & PREFIX_DATA);
break;
case 'V':
if (l == 0)
abort ();
else if (l == 1 && last[0] == 'L')
{
if (rex & REX_W)
{
*obufp++ = 'a';
*obufp++ = 'b';
*obufp++ = 's';
}
}
else
abort ();
/* Fall through. */
goto case_S;
case 'S':
if (l == 0)
{
@ -10793,6 +10777,54 @@ putop (const char *in_template, int sizeflag)
else
abort ();
break;
case 'V':
if (l == 0)
abort ();
else if (l == 1 && last[0] == 'L')
{
if (rex & REX_W)
{
*obufp++ = 'a';
*obufp++ = 'b';
*obufp++ = 's';
}
}
else
abort ();
goto case_S;
case 'W':
if (l == 0)
{
/* operand size flag for cwtl, cbtw */
USED_REX (REX_W);
if (rex & REX_W)
{
if (intel_syntax)
*obufp++ = 'd';
else
*obufp++ = 'l';
}
else if (sizeflag & DFLAG)
*obufp++ = 'w';
else
*obufp++ = 'b';
if (!(rex & REX_W))
used_prefixes |= (prefixes & PREFIX_DATA);
}
else if (l == 1)
{
if (!need_vex)
abort ();
if (last[0] == 'X')
*obufp++ = vex.w ? 'd': 's';
else if (last[0] == 'B')
*obufp++ = vex.w ? 'w': 'b';
else
abort ();
}
else
abort ();
break;
case 'X':
if (l != 0)
abort ();
@ -10864,39 +10896,6 @@ putop (const char *in_template, int sizeflag)
else
abort ();
break;
case 'W':
if (l == 0)
{
/* operand size flag for cwtl, cbtw */
USED_REX (REX_W);
if (rex & REX_W)
{
if (intel_syntax)
*obufp++ = 'd';
else
*obufp++ = 'l';
}
else if (sizeflag & DFLAG)
*obufp++ = 'w';
else
*obufp++ = 'b';
if (!(rex & REX_W))
used_prefixes |= (prefixes & PREFIX_DATA);
}
else if (l == 1)
{
if (!need_vex)
abort ();
if (last[0] == 'X')
*obufp++ = vex.w ? 'd': 's';
else if (last[0] == 'B')
*obufp++ = vex.w ? 'w': 'b';
else
abort ();
}
else
abort ();
break;
case '^':
if (intel_syntax)
break;