Only print prefixes before fwait
gas/testsuite/ * gas/i386/prefix.s: Add another fwait test. * gas/i386/prefix.d: Updated. opcodes/ * i386-dis.c (fwait_prefix): New. (ckprefix): Set fwait_prefix. (print_insn): Properly print prefixes before fwait.
This commit is contained in:
parent
b71c404358
commit
d9949a3673
5 changed files with 20 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
2014-06-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* gas/i386/prefix.s: Add another fwait test.
|
||||
* gas/i386/prefix.d: Updated.
|
||||
|
||||
2014-06-09 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* gas/msp430/msp430x.d: Update to match revised assembler output.
|
||||
|
|
|
@ -12,6 +12,8 @@ Disassembly of section .text:
|
|||
[ ]*[a-f0-9]+: 9b 67 df e0 addr16 fstsw %ax
|
||||
[ ]*[a-f0-9]+: 36 67 66 f3 a7 repz cmpsw %es:\(%di\),%ss:\(%si\)
|
||||
[ ]*[a-f0-9]+: 26 9b es fwait
|
||||
[ ]*[a-f0-9]+: 9b fwait
|
||||
[ ]*[a-f0-9]+: 65 c7 05 00 00 00 00 00 00 00 00 movl \$0x0,%gs:0x0
|
||||
[ ]*[a-f0-9]+: 66 f2 0f 38 17 data16 \(bad\)
|
||||
[ ]*[a-f0-9]+: f2 66 0f 54 repnz \(bad\)
|
||||
[ ]*[a-f0-9]+: f2 0f 54 repnz \(bad\)
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
|
||||
es fwait
|
||||
|
||||
fwait
|
||||
movl $0,%gs:fpu_owner_task
|
||||
|
||||
.byte 0x66
|
||||
.byte 0xf2
|
||||
.byte 0x0f
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2014-06-10 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* i386-dis.c (fwait_prefix): New.
|
||||
(ckprefix): Set fwait_prefix.
|
||||
(print_insn): Properly print prefixes before fwait.
|
||||
|
||||
2014-06-07 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* ppc-opc.c (UISIGNOPT): Define and use with cmpli.
|
||||
|
|
|
@ -2883,6 +2883,7 @@ static int last_data_prefix;
|
|||
static int last_addr_prefix;
|
||||
static int last_rex_prefix;
|
||||
static int last_seg_prefix;
|
||||
static int fwait_prefix;
|
||||
/* The PREFIX_REPZ/PREFIX_REPNZ/PREFIX_DATA prefix is mandatory. */
|
||||
static int mandatory_prefix;
|
||||
/* The active segment register prefix. */
|
||||
|
@ -11631,6 +11632,7 @@ ckprefix (void)
|
|||
last_addr_prefix = -1;
|
||||
last_rex_prefix = -1;
|
||||
last_seg_prefix = -1;
|
||||
fwait_prefix = -1;
|
||||
active_seg_prefix = 0;
|
||||
for (i = 0; i < (int) ARRAY_SIZE (all_prefixes); i++)
|
||||
all_prefixes[i] = 0;
|
||||
|
@ -11720,6 +11722,7 @@ ckprefix (void)
|
|||
/* fwait is really an instruction. If there are prefixes
|
||||
before the fwait, they belong to the fwait, *not* to the
|
||||
following instruction. */
|
||||
fwait_prefix = i;
|
||||
if (prefixes || rex)
|
||||
{
|
||||
prefixes |= PREFIX_FWAIT;
|
||||
|
@ -12569,8 +12572,7 @@ print_insn (bfd_vma pc, disassemble_info *info)
|
|||
&& ((*codep < 0xd8) || (*codep > 0xdf))))
|
||||
{
|
||||
/* Handle prefixes before fwait. */
|
||||
for (i = 0;
|
||||
i < (int) ARRAY_SIZE (all_prefixes) && all_prefixes[i];
|
||||
for (i = 0; i < fwait_prefix && all_prefixes[i];
|
||||
i++)
|
||||
(*info->fprintf_func) (info->stream, "%s ",
|
||||
prefix_name (all_prefixes[i], sizeflag));
|
||||
|
|
Loading…
Add table
Reference in a new issue