From 9fa0f14a97f5588268828ab028464be0307f1a77 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 2 Jul 2012 18:12:28 +0000 Subject: [PATCH] gas/testsuite/ * gas/i386/rep-suffix.s: Add 'rep nop' case. * gas/i386/x86-64-rep-suffix.s: Likewise. * gas/i386/rep-suffix.d: Updated. * gas/i386/x86-64-rep-suffix.d: Likewise. * gas/i386/ilp32/x86-64-rep-suffix.d: Likewise. opcodes/ * i386-opc.tbl: Add RepPrefixOk to nop. * i386-tbl.h: Regenerate. --- gas/testsuite/ChangeLog | 8 ++++++++ gas/testsuite/gas/i386/ilp32/x86-64-rep-suffix.d | 3 ++- gas/testsuite/gas/i386/rep-suffix.d | 3 ++- gas/testsuite/gas/i386/rep-suffix.s | 2 ++ gas/testsuite/gas/i386/x86-64-rep-suffix.d | 3 ++- gas/testsuite/gas/i386/x86-64-rep-suffix.s | 2 ++ opcodes/ChangeLog | 5 +++++ opcodes/i386-opc.tbl | 2 +- opcodes/i386-tbl.h | 2 +- 9 files changed, 25 insertions(+), 5 deletions(-) diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 5b4745ccfe..a55d25e565 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2012-07-02 Roland McGrath + + * gas/i386/rep-suffix.s: Add 'rep nop' case. + * gas/i386/x86-64-rep-suffix.s: Likewise. + * gas/i386/rep-suffix.d: Updated. + * gas/i386/x86-64-rep-suffix.d: Likewise. + * gas/i386/ilp32/x86-64-rep-suffix.d: Likewise. + 2012-07-02 H.J. Lu * gas/i386/i386.exp: Don't run rep-bsf nor rep-ret. diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-rep-suffix.d b/gas/testsuite/gas/i386/ilp32/x86-64-rep-suffix.d index 241365dbf3..19bb585239 100644 --- a/gas/testsuite/gas/i386/ilp32/x86-64-rep-suffix.d +++ b/gas/testsuite/gas/i386/ilp32/x86-64-rep-suffix.d @@ -17,5 +17,6 @@ Disassembly of section .text: 11: f3 48 ab[ ]+rep stosq %rax,%es:\(%rdi\) 14: f3 0f bc c1[ ]+tzcntl %ecx,%eax 18: f3 0f bd c1[ ]+lzcntl %ecx,%eax - 1c: f3 c3[ ]+repz retq + 1c: f3 c3[ ]+repz retq\s* + 1e: f3 90[ ]+pause\s* #pass diff --git a/gas/testsuite/gas/i386/rep-suffix.d b/gas/testsuite/gas/i386/rep-suffix.d index 81f8d61fab..08e02d78c2 100644 --- a/gas/testsuite/gas/i386/rep-suffix.d +++ b/gas/testsuite/gas/i386/rep-suffix.d @@ -14,5 +14,6 @@ Disassembly of section .text: c: f3 ab[ ]+rep stosl %eax,%es:\(%edi\) e: f3 0f bc c1[ ]+tzcntl %ecx,%eax 12: f3 0f bd c1[ ]+lzcntl %ecx,%eax - 16: f3 c3[ ]+repz retl + 16: f3 c3[ ]+repz retl\s* + 18: f3 90[ ]+pause\s* #pass diff --git a/gas/testsuite/gas/i386/rep-suffix.s b/gas/testsuite/gas/i386/rep-suffix.s index 6f53663cf8..12bdbd032c 100644 --- a/gas/testsuite/gas/i386/rep-suffix.s +++ b/gas/testsuite/gas/i386/rep-suffix.s @@ -12,3 +12,5 @@ _start: rep bsr %ecx, %eax rep ret + + rep nop diff --git a/gas/testsuite/gas/i386/x86-64-rep-suffix.d b/gas/testsuite/gas/i386/x86-64-rep-suffix.d index 3c3f7ea10d..bc6346db22 100644 --- a/gas/testsuite/gas/i386/x86-64-rep-suffix.d +++ b/gas/testsuite/gas/i386/x86-64-rep-suffix.d @@ -16,5 +16,6 @@ Disassembly of section .text: 11: f3 48 ab[ ]+rep stosq %rax,%es:\(%rdi\) 14: f3 0f bc c1[ ]+tzcntl %ecx,%eax 18: f3 0f bd c1[ ]+lzcntl %ecx,%eax - 1c: f3 c3[ ]+repz retq + 1c: f3 c3[ ]+repz retq\s* + 1e: f3 90[ ]+pause\s* #pass diff --git a/gas/testsuite/gas/i386/x86-64-rep-suffix.s b/gas/testsuite/gas/i386/x86-64-rep-suffix.s index 43d71cfcf3..94df9e59d8 100644 --- a/gas/testsuite/gas/i386/x86-64-rep-suffix.s +++ b/gas/testsuite/gas/i386/x86-64-rep-suffix.s @@ -14,3 +14,5 @@ _start: rep bsr %ecx, %eax rep ret + + rep nop diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index adb13e2b53..953f6cf896 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2012-07-02 Roland McGrath + + * i386-opc.tbl: Add RepPrefixOk to nop. + * i386-tbl.h: Regenerate. + 2012-06-28 Nick Clifton * po/vi.po: Updated Vietnamese translation. diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl index 7de61a7c28..54cc0d11d7 100644 --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -504,7 +504,7 @@ nop, 1, 0xf1f, 0x0, 2, CpuNop, Modrm|No_bSuf|No_sSuf|No_ldSuf, { Reg16|Reg32|Reg // nop is actually "xchg %ax,%ax" in 16bit mode, "xchg %eax,%eax" in // 32bit mode and "xchg %rax,%rax" in 64bit mode. -nop, 0, 0x90, None, 1, 0, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 } +nop, 0, 0x90, None, 1, 0, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|RepPrefixOk, { 0 } // Protection control. arpl, 2, 0x63, None, 1, Cpu286|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Reg16, Reg16|Word|Unspecified|BaseIndex|Disp8|Disp16|Disp32 } diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h index 89dfda4e1f..2248c7bc95 100644 --- a/opcodes/i386-tbl.h +++ b/opcodes/i386-tbl.h @@ -4142,7 +4142,7 @@ const insn_template i386_optab[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, - 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,