mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-28 23:39:35 +08:00
x86: move putop() case labels to restore alphabetic sorting
... as far as non-fall-through behavior permits.
This commit is contained in:
@ -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
|
||||
|
@ -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;
|
||||
|
Reference in New Issue
Block a user