From 2033b4b97d6b5205608dd5313a4c352b17036544 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Wed, 12 Jan 2005 19:12:52 +0000 Subject: [PATCH] gas/testsuite/ 2005-01-12 H.J. Lu * i386/i386.exp: Run "sib". * gas/i386/sib.d: New file. * gas/i386/sib.s: Likewise. opcodes/ 2005-01-12 H.J. Lu * i386-dis.c (OP_E): Ignore scale when index == 0x4 in SIB. --- gas/testsuite/ChangeLog | 7 +++++++ gas/testsuite/gas/i386/i386.exp | 1 + gas/testsuite/gas/i386/sib.d | 15 +++++++++++++++ gas/testsuite/gas/i386/sib.s | 11 +++++++++++ opcodes/ChangeLog | 4 ++++ opcodes/i386-dis.c | 4 +++- 6 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 gas/testsuite/gas/i386/sib.d create mode 100644 gas/testsuite/gas/i386/sib.s diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 24c5cc85e6..ed357fb312 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2005-01-12 H.J. Lu + + * i386/i386.exp: Run "sib". + + * gas/i386/sib.d: New file. + * gas/i386/sib.s: Likewise. + 2005-01-09 Andreas Schwab * gas/i386/intel16.d: Ignore trailing text with #pass. diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 184626857d..98b6ea66bb 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -57,6 +57,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "sse2" run_dump_test "sub" run_dump_test "prescott" + run_dump_test "sib" if {![istarget "*-*-aix*"] && (![is_elf_format] || [istarget "*-*-linux*"] diff --git a/gas/testsuite/gas/i386/sib.d b/gas/testsuite/gas/i386/sib.d new file mode 100644 index 0000000000..2a5dbb6c9c --- /dev/null +++ b/gas/testsuite/gas/i386/sib.d @@ -0,0 +1,15 @@ +#objdump: -dw +#name: i386 SIB + +.*: +file format .* + +Disassembly of section .text: + +0+000 : + 0: 8b 04 23 [ ]*mov [ ]*\(%ebx\),%eax + 3: 8b 04 63 [ ]*mov [ ]*\(%ebx\),%eax + 6: 8b 04 a3 [ ]*mov [ ]*\(%ebx\),%eax + 9: 8b 04 e3 [ ]*mov [ ]*\(%ebx\),%eax + c: 90 [ ]*nop [ ]* + d: 90 [ ]*nop [ ]* + ... diff --git a/gas/testsuite/gas/i386/sib.s b/gas/testsuite/gas/i386/sib.s new file mode 100644 index 0000000000..25d88b75a6 --- /dev/null +++ b/gas/testsuite/gas/i386/sib.s @@ -0,0 +1,11 @@ +#Test the special case of the index bits, 0x4, in SIB. + + .text +foo: + .byte 0x8B, 0x04, 0x23 # effect is: movl (%ebx), %eax + .byte 0x8B, 0x04, 0x63 # effect is: movl (%ebx), %eax + .byte 0x8B, 0x04, 0xA3 # effect is: movl (%ebx), %eax + .byte 0x8B, 0x04, 0xE3 # effect is: movl (%ebx), %eax + nop + nop + .p2align 4,0 diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 2effaf3065..1b9fc940e0 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,7 @@ +2005-01-12 H.J. Lu + + * i386-dis.c (OP_E): Ignore scale when index == 0x4 in SIB. + 2005-01-10 Andreas Schwab * disassemble.c (disassemble_init_for_target) > 6) & 3; index = (*codep >> 3) & 7; + if (index != 0x4) + /* When INDEX == 0x4, scale is ignored. */ + scale = (*codep >> 6) & 3; base = *codep & 7; USED_REX (REX_EXTY); USED_REX (REX_EXTZ); -- 2.34.1