mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-29 08:24:05 +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>
|
2020-07-15 Jan Beulich <jbeulich@suse.com>
|
||||||
|
|
||||||
* i386-dis.c (dis386): Adjust 'V' description. Use P-based
|
* 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))
|
if (!(rex & REX_W))
|
||||||
used_prefixes |= (prefixes & PREFIX_DATA);
|
used_prefixes |= (prefixes & PREFIX_DATA);
|
||||||
break;
|
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':
|
case 'S':
|
||||||
if (l == 0)
|
if (l == 0)
|
||||||
{
|
{
|
||||||
@ -10793,6 +10777,54 @@ putop (const char *in_template, int sizeflag)
|
|||||||
else
|
else
|
||||||
abort ();
|
abort ();
|
||||||
break;
|
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':
|
case 'X':
|
||||||
if (l != 0)
|
if (l != 0)
|
||||||
abort ();
|
abort ();
|
||||||
@ -10864,39 +10896,6 @@ putop (const char *in_template, int sizeflag)
|
|||||||
else
|
else
|
||||||
abort ();
|
abort ();
|
||||||
break;
|
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 '^':
|
case '^':
|
||||||
if (intel_syntax)
|
if (intel_syntax)
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user