From 2b516b729733ce699f8232719df5fc0d7b073cec Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 18 Jul 2006 20:25:41 +0000 Subject: [PATCH] gas/testsuite/ 2006-07-18 H.J. Lu * gas/i386/opcode.s: Add sldt, smsw and str. * gas/i386/x86-64-opcode.s: Likewise. * gas/i386/opcode.d: Updated. * gas/i386/x86-64-opcode.d: Likewise. opcodes/ 2006-07-18 H.J. Lu * i386-dis.c (grps): Change "sldtQ", "strQ" and "smswQ" to "sldt", "str" and "smsw". --- gas/testsuite/ChangeLog | 8 ++++++++ gas/testsuite/gas/i386/opcode.d | 9 +++++++++ gas/testsuite/gas/i386/opcode.s | 10 ++++++++++ gas/testsuite/gas/i386/x86-64-opcode.d | 11 +++++++++++ gas/testsuite/gas/i386/x86-64-opcode.s | 15 ++++++++++++++- opcodes/ChangeLog | 5 +++++ opcodes/i386-dis.c | 6 +++--- 7 files changed, 60 insertions(+), 4 deletions(-) diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 16b48ac8a8..b3b6d3e31e 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2006-07-18 H.J. Lu + + * gas/i386/opcode.s: Add sldt, smsw and str. + * gas/i386/x86-64-opcode.s: Likewise. + + * gas/i386/opcode.d: Updated. + * gas/i386/x86-64-opcode.d: Likewise. + 2006-07-18 Paul Brook * gas/arm/thumb2_add.d: New test. diff --git a/gas/testsuite/gas/i386/opcode.d b/gas/testsuite/gas/i386/opcode.d index fa58807c5e..9bcba09550 100644 --- a/gas/testsuite/gas/i386/opcode.d +++ b/gas/testsuite/gas/i386/opcode.d @@ -573,4 +573,13 @@ Disassembly of section .text: 9bf: 66 0f be 90 90 90 90 90 [ ]*movsbw 0x90909090\(%eax\),%dx 9c7: 66 0f c1 90 90 90 90 90 [ ]*xadd %dx,0x90909090\(%eax\) 9cf: 66 90 [ ]*xchg %ax,%ax + 9d1: 0f 00 c0 [ ]*sldt %eax + 9d4: 66 0f 00 c0 [ ]*sldt %ax + 9d8: 0f 00 00 [ ]*sldt \(%eax\) + 9db: 0f 01 e0 [ ]*smsw %eax + 9de: 66 0f 01 e0 [ ]*smsw %ax + 9e2: 0f 01 20 [ ]*smsw \(%eax\) + 9e5: 0f 00 c8 [ ]*str %eax + 9e8: 66 0f 00 c8 [ ]*str %ax + 9ec: 0f 00 08 [ ]*str \(%eax\) \.\.\. diff --git a/gas/testsuite/gas/i386/opcode.s b/gas/testsuite/gas/i386/opcode.s index a03ce13099..f289042be4 100644 --- a/gas/testsuite/gas/i386/opcode.s +++ b/gas/testsuite/gas/i386/opcode.s @@ -568,5 +568,15 @@ foo: xchg %ax,%ax + sldt %eax + sldt %ax + sldt (%eax) + smsw %eax + smsw %ax + smsw (%eax) + str %eax + str %ax + str (%eax) + # Force a good alignment. .p2align 4,0 diff --git a/gas/testsuite/gas/i386/x86-64-opcode.d b/gas/testsuite/gas/i386/x86-64-opcode.d index f6427d4e00..669782ac40 100644 --- a/gas/testsuite/gas/i386/x86-64-opcode.d +++ b/gas/testsuite/gas/i386/x86-64-opcode.d @@ -263,6 +263,9 @@ Disassembly of section .text: [ ]*[0-9a-f]+:[ ]+41 0f 01 38[ ]+invlpg[ ]+\(%r8\)[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+0f 01 38[ ]+invlpg[ ]+\(%rax\)[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+0f 00 c0[ ]+sldt[ ]+%eax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+48 0f 00 c0[ ]+sldt[ ]+%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f 00 c0[ ]+sldt[ ]+%ax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 00 00[ ]+sldt[ ]+\(%rax\)[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+e6 00[ ]+out[ ]+%al,\$0[x0]*[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+66 e7 00[ ]+out[ ]+%ax,\$0[x0]*[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+e7 00[ ]+out[ ]+%eax,\$0[x0]*[ ]*(#.*)* @@ -271,4 +274,12 @@ Disassembly of section .text: [ ]*[0-9a-f]+:[ ]+90[ ]+nop[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+48 90[ ]+rex64 nop[ ]*(#.*)* [ ]*[0-9a-f]+:[ ]+49 90[ ]+xchg[ ]+%rax,%r8[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+48 0f 01 e0[ ]+smsw[ ]+%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 01 e0[ ]+smsw[ ]+%eax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f 01 e0[ ]+smsw[ ]+%ax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 01 20[ ]+smsw[ ]+\(%rax\)[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+48 0f 00 c8[ ]+str[ ]+%rax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 00 c8[ ]+str[ ]+%eax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+66 0f 00 c8[ ]+str[ ]+%ax[ ]*(#.*)* +[ ]*[0-9a-f]+:[ ]+0f 00 08[ ]+str[ ]+\(%rax\)[ ]*(#.*)* #pass diff --git a/gas/testsuite/gas/i386/x86-64-opcode.s b/gas/testsuite/gas/i386/x86-64-opcode.s index 8d3de00a8e..e40dc29c82 100644 --- a/gas/testsuite/gas/i386/x86-64-opcode.s +++ b/gas/testsuite/gas/i386/x86-64-opcode.s @@ -373,6 +373,9 @@ # SLDT # SLDT (%eax) # -- 67 -- -- 0F 00 00 ; A32 override: (Addr64) = ZEXT(Addr32 ) SLDT %eax # -- -- -- -- 0F 00 C0 + SLDT %rax # -- -- -- 48 0F 00 C0 + SLDT %ax # 66 -- -- -- 0F 00 C0 + SLDT (%rax) # -- -- -- -- 0F 00 00 # SWAPGS @@ -392,7 +395,17 @@ xchg %ax,%ax # 66 -- -- -- 90 xchg %eax,%eax # -- -- -- -- 87 C0 xchg %rax,%rax # -- -- -- -- 90 - rex64 xchg %rax,%rax # 48 -- -- -- 90 + rex64 xchg %rax,%rax # -- -- -- 48 90 xchg %rax,%r8 # -- -- -- 49 90 + smsw %rax # -- -- -- 48 0F 01 e0 + smsw %eax # -- -- -- -- 0F 01 e0 + smsw %ax # 66 -- -- -- 0F 01 e0 + smsw (%rax) # -- -- -- -- 0F 01 20 + + str %rax # -- -- -- 48 0F 00 c8 + str %eax # -- -- -- -- 0F 00 c8 + str %ax # 66 -- -- -- 0F 00 c8 + str (%rax) # -- -- -- -- 0F 00 08 + .p2align 4,0 diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 4ee22210bc..eefd662752 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2006-07-18 H.J. Lu + + * i386-dis.c (grps): Change "sldtQ", "strQ" and "smswQ" to + "sldt", "str" and "smsw". + 2006-07-15 H.J. Lu PR binutils/2829 diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 66b2d95429..80898c9352 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -1398,8 +1398,8 @@ static const struct dis386 grps[][8] = { }, /* GRP6 */ { - { "sldtQ", Ev, XX, XX, XX }, - { "strQ", Ev, XX, XX, XX }, + { "sldt", Ev, XX, XX, XX }, + { "str", Ev, XX, XX, XX }, { "lldt", Ew, XX, XX, XX }, { "ltr", Ew, XX, XX, XX }, { "verr", Ew, XX, XX, XX }, @@ -1413,7 +1413,7 @@ static const struct dis386 grps[][8] = { { "sidt{Q|IQ||}", PNI_Fixup, 0, XX, XX, XX }, { "lgdt{Q|Q||}", M, XX, XX, XX }, { "lidt{Q|Q||}", SVME_Fixup, 0, XX, XX, XX }, - { "smswQ", Ev, XX, XX, XX }, + { "smsw", Ev, XX, XX, XX }, { "(bad)", XX, XX, XX, XX }, { "lmsw", Ew, XX, XX, XX }, { "invlpg", INVLPG_Fixup, w_mode, XX, XX, XX },