diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2021-07-14 14:17:48 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2021-07-14 14:29:02 -0700 |
commit | 154b353f689cad41ed9455088b3dede30d9f2e00 (patch) | |
tree | 1cd30dd2c4ce5ff65bc1074b2e2d32fc0c804cf7 | |
parent | 9cce9fab90e0951c6816d97801e124e392e74dd9 (diff) | |
download | gdb-154b353f689cad41ed9455088b3dede30d9f2e00.zip gdb-154b353f689cad41ed9455088b3dede30d9f2e00.tar.gz gdb-154b353f689cad41ed9455088b3dede30d9f2e00.tar.bz2 |
x86: Add int1 as one byte opcode 0xf1
Also change the x86 disassembler to disassemble 0xf1 as int1, instead of
icebp.
gas/
PR gas/28088
* testsuite/gas/i386/opcode.s: Add int1.
* testsuite/gas/i386/x86-64-opcode.s: Add int1, int3 and int.
* testsuite/gas/i386/opcode-intel.d: Updated.
* testsuite/gas/i386/opcode-suffix.d: Likewise.
* testsuite/gas/i386/opcode.d: Likewise.
* testsuite/gas/i386/x86-64-opcode.d: Likewise.
opcodes/
PR gas/28088
* i386-dis.c (dis386): Replace icebp with int1.
* i386-opc.tbl: Add int1.
* i386-tbl.h: Regenerate.
-rw-r--r-- | gas/testsuite/gas/i386/opcode-intel.d | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/opcode-suffix.d | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/opcode.d | 1 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/opcode.s | 2 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-opcode.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-opcode.s | 4 | ||||
-rw-r--r-- | opcodes/i386-dis.c | 2 | ||||
-rw-r--r-- | opcodes/i386-opc.tbl | 1 | ||||
-rw-r--r-- | opcodes/i386-tbl.h | 13 |
9 files changed, 27 insertions, 1 deletions
diff --git a/gas/testsuite/gas/i386/opcode-intel.d b/gas/testsuite/gas/i386/opcode-intel.d index 68e1e88..732b033 100644 --- a/gas/testsuite/gas/i386/opcode-intel.d +++ b/gas/testsuite/gas/i386/opcode-intel.d @@ -588,6 +588,7 @@ Disassembly of section .text: *[0-9a-f]+: 85 c3 [ ]*test[ ]+ebx,eax *[0-9a-f]+: 85 d8 [ ]*test[ ]+eax,ebx *[0-9a-f]+: 85 18 [ ]*test[ ]+(DWORD PTR )?\[eax\],ebx + *[0-9a-f]+: f1[ ]+int1[ ]+ [ ]*[a-f0-9]+: 0f 4a 90 90 90 90 90 cmovp edx,DWORD PTR \[eax-0x6f6f6f70\] [ ]*[a-f0-9]+: 0f 4b 90 90 90 90 90 cmovnp edx,DWORD PTR \[eax-0x6f6f6f70\] [ ]*[a-f0-9]+: 66 0f 4a 90 90 90 90 90 cmovp dx,WORD PTR \[eax-0x6f6f6f70\] diff --git a/gas/testsuite/gas/i386/opcode-suffix.d b/gas/testsuite/gas/i386/opcode-suffix.d index 8d7716b..6a9c4cd 100644 --- a/gas/testsuite/gas/i386/opcode-suffix.d +++ b/gas/testsuite/gas/i386/opcode-suffix.d @@ -588,6 +588,7 @@ Disassembly of section .text: *[0-9a-f]+: 85 c3 [ ]*testl[ ]+%eax,%ebx *[0-9a-f]+: 85 d8 [ ]*testl[ ]+%ebx,%eax *[0-9a-f]+: 85 18 [ ]*testl[ ]+%ebx,\(%eax\) + *[0-9a-f]+: f1[ ]+int1[ ]+ [ ]*[a-f0-9]+: 0f 4a 90 90 90 90 90 cmovpl -0x6f6f6f70\(%eax\),%edx [ ]*[a-f0-9]+: 0f 4b 90 90 90 90 90 cmovnpl -0x6f6f6f70\(%eax\),%edx [ ]*[a-f0-9]+: 66 0f 4a 90 90 90 90 90 cmovpw -0x6f6f6f70\(%eax\),%dx diff --git a/gas/testsuite/gas/i386/opcode.d b/gas/testsuite/gas/i386/opcode.d index cc57b9e..9c1f67f 100644 --- a/gas/testsuite/gas/i386/opcode.d +++ b/gas/testsuite/gas/i386/opcode.d @@ -587,6 +587,7 @@ Disassembly of section .text: 9f5: 85 c3 [ ]*test %eax,%ebx 9f7: 85 d8 [ ]*test %ebx,%eax 9f9: 85 18 [ ]*test %ebx,\(%eax\) + 9fb: f1 [ ]*int1 [ ]*[a-f0-9]+: 0f 4a 90 90 90 90 90 cmovp -0x6f6f6f70\(%eax\),%edx [ ]*[a-f0-9]+: 0f 4b 90 90 90 90 90 cmovnp -0x6f6f6f70\(%eax\),%edx [ ]*[a-f0-9]+: 66 0f 4a 90 90 90 90 90 cmovp -0x6f6f6f70\(%eax\),%dx diff --git a/gas/testsuite/gas/i386/opcode.s b/gas/testsuite/gas/i386/opcode.s index 1f803c3..d3255f2 100644 --- a/gas/testsuite/gas/i386/opcode.s +++ b/gas/testsuite/gas/i386/opcode.s @@ -585,6 +585,8 @@ foo: test %ebx,%eax test (%eax),%ebx + int1 + cmovpe 0x90909090(%eax),%edx cmovpo 0x90909090(%eax),%edx cmovpe 0x90909090(%eax),%dx diff --git a/gas/testsuite/gas/i386/x86-64-opcode.d b/gas/testsuite/gas/i386/x86-64-opcode.d index ab55d2c..c925938 100644 --- a/gas/testsuite/gas/i386/x86-64-opcode.d +++ b/gas/testsuite/gas/i386/x86-64-opcode.d @@ -325,6 +325,9 @@ Disassembly of section .text: [ ]*[a-f0-9]+: 48 0f 07 sysretq * [ ]*[a-f0-9]+: 0f 01 f8 swapgs [ ]*[a-f0-9]+: 66 68 22 22 pushw \$0x2222 +[ ]*[a-f0-9]+: f1 int1 + +[ ]*[a-f0-9]+: cc int3 + +[ ]*[a-f0-9]+: cd 90 int \$0x90 [ ]*[a-f0-9]+: f6 c9 01 test \$(0x)?0*1,%cl [ ]*[a-f0-9]+: 66 f7 c9 02 00 test \$(0x)?0*2,%cx [ ]*[a-f0-9]+: f7 c9 04 00 00 00 test \$(0x)?0*4,%ecx diff --git a/gas/testsuite/gas/i386/x86-64-opcode.s b/gas/testsuite/gas/i386/x86-64-opcode.s index 28c100f..6575cc3 100644 --- a/gas/testsuite/gas/i386/x86-64-opcode.s +++ b/gas/testsuite/gas/i386/x86-64-opcode.s @@ -454,6 +454,10 @@ pushw $0x2222 + int1 + int3 + int $0x90 + .byte 0xf6, 0xc9, 0x01 .byte 0x66, 0xf7, 0xc9, 0x02, 0x00 .byte 0xf7, 0xc9, 0x04, 0x00, 0x00, 0x00 diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 21e4085..122f4af 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -1965,7 +1965,7 @@ static const struct dis386 dis386[] = { { "outG", { indirDX, zAX }, 0 }, /* f0 */ { Bad_Opcode }, /* lock prefix */ - { "icebp", { XX }, 0 }, + { "int1", { XX }, 0 }, { Bad_Opcode }, /* repne */ { Bad_Opcode }, /* repz */ { "hlt", { XX }, 0 }, diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl index b0530e5..49e72d2 100644 --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -537,6 +537,7 @@ bts, 0xfba, 5, Cpu386, Modrm|No_bSuf|No_sSuf|No_ldSuf|HLEPrefixLock, { Imm8, Reg // See gas/config/tc-i386.c for conversion of 'int $3' into the special // int 3 insn. int, 0xcd, None, 0, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Imm8 } +int1, 0xf1, None, 0, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {} int3, 0xcc, None, 0, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {} into, 0xce, None, CpuNo64, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, {} iret, 0xcf, None, 0, DefaultSize|No_bSuf|No_sSuf|No_ldSuf, {} diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h index df139ba..15c0b47 100644 --- a/opcodes/i386-tbl.h +++ b/opcodes/i386-tbl.h @@ -5229,6 +5229,19 @@ const insn_template i386_optab[] = 0, 0, 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 } } } }, + { "int1", 0xf1, None, 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, 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, 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, + 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 } } } }, { "int3", 0xcc, None, 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, 0, 0, 0, 0, 0, 0, 0, |