gas/testsuite/
2005-01-12 H.J. Lu <hongjiu.lu@intel.com> * i386/i386.exp: Run "sib". * gas/i386/sib.d: New file. * gas/i386/sib.s: Likewise. opcodes/ 2005-01-12 H.J. Lu <hongjiu.lu@intel.com> * i386-dis.c (OP_E): Ignore scale when index == 0x4 in SIB.
This commit is contained in:
parent
db5f402d40
commit
2033b4b97d
@ -1,3 +1,10 @@
|
|||||||
|
2005-01-12 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* i386/i386.exp: Run "sib".
|
||||||
|
|
||||||
|
* gas/i386/sib.d: New file.
|
||||||
|
* gas/i386/sib.s: Likewise.
|
||||||
|
|
||||||
2005-01-09 Andreas Schwab <schwab@suse.de>
|
2005-01-09 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
* gas/i386/intel16.d: Ignore trailing text with #pass.
|
* gas/i386/intel16.d: Ignore trailing text with #pass.
|
||||||
|
@ -57,6 +57,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
|
|||||||
run_dump_test "sse2"
|
run_dump_test "sse2"
|
||||||
run_dump_test "sub"
|
run_dump_test "sub"
|
||||||
run_dump_test "prescott"
|
run_dump_test "prescott"
|
||||||
|
run_dump_test "sib"
|
||||||
|
|
||||||
if {![istarget "*-*-aix*"]
|
if {![istarget "*-*-aix*"]
|
||||||
&& (![is_elf_format] || [istarget "*-*-linux*"]
|
&& (![is_elf_format] || [istarget "*-*-linux*"]
|
||||||
|
15
gas/testsuite/gas/i386/sib.d
Normal file
15
gas/testsuite/gas/i386/sib.d
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#objdump: -dw
|
||||||
|
#name: i386 SIB
|
||||||
|
|
||||||
|
.*: +file format .*
|
||||||
|
|
||||||
|
Disassembly of section .text:
|
||||||
|
|
||||||
|
0+000 <foo>:
|
||||||
|
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 [ ]*
|
||||||
|
...
|
11
gas/testsuite/gas/i386/sib.s
Normal file
11
gas/testsuite/gas/i386/sib.s
Normal file
@ -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
|
@ -1,3 +1,7 @@
|
|||||||
|
2005-01-12 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* i386-dis.c (OP_E): Ignore scale when index == 0x4 in SIB.
|
||||||
|
|
||||||
2005-01-10 Andreas Schwab <schwab@suse.de>
|
2005-01-10 Andreas Schwab <schwab@suse.de>
|
||||||
|
|
||||||
* disassemble.c (disassemble_init_for_target) <case
|
* disassemble.c (disassemble_init_for_target) <case
|
||||||
|
@ -3191,8 +3191,10 @@ OP_E (int bytemode, int sizeflag)
|
|||||||
{
|
{
|
||||||
havesib = 1;
|
havesib = 1;
|
||||||
FETCH_DATA (the_info, codep + 1);
|
FETCH_DATA (the_info, codep + 1);
|
||||||
scale = (*codep >> 6) & 3;
|
|
||||||
index = (*codep >> 3) & 7;
|
index = (*codep >> 3) & 7;
|
||||||
|
if (index != 0x4)
|
||||||
|
/* When INDEX == 0x4, scale is ignored. */
|
||||||
|
scale = (*codep >> 6) & 3;
|
||||||
base = *codep & 7;
|
base = *codep & 7;
|
||||||
USED_REX (REX_EXTY);
|
USED_REX (REX_EXTY);
|
||||||
USED_REX (REX_EXTZ);
|
USED_REX (REX_EXTZ);
|
||||||
|
Loading…
Reference in New Issue
Block a user