x86: Avoid abort on invalid broadcast
Print "{bad}" on invalid broadcast instead of abort. gas/ PR binutils/28247 * testsuite/gas/i386/bad-bcast.d: New file. * testsuite/gas/i386/bad-bcast.s: Likewise. * testsuite/gas/i386/i386.exp: Run bad-bcast. opcodes/ PR binutils/28247 * i386-dis.c (OP_E_memory): Print "{bad}" on invalid broadcast instead of abort.
This commit is contained in:
parent
8ddf46454a
commit
7e40d574be
4 changed files with 21 additions and 4 deletions
14
gas/testsuite/gas/i386/bad-bcast.d
Normal file
14
gas/testsuite/gas/i386/bad-bcast.d
Normal file
|
@ -0,0 +1,14 @@
|
|||
#objdump: -dw
|
||||
#name: Disassemble bad broadcast
|
||||
|
||||
.*: +file format .*
|
||||
|
||||
|
||||
Disassembly of section .text:
|
||||
|
||||
0+ <.text>:
|
||||
+[a-f0-9]+: 62 .byte 0x62
|
||||
+[a-f0-9]+: c3 ret
|
||||
+[a-f0-9]+: 8c 1d 66 90 66 90 mov %ds,0x90669066
|
||||
+[a-f0-9]+: 66 90 xchg %ax,%ax
|
||||
#pass
|
2
gas/testsuite/gas/i386/bad-bcast.s
Normal file
2
gas/testsuite/gas/i386/bad-bcast.s
Normal file
|
@ -0,0 +1,2 @@
|
|||
.text
|
||||
.byte 0x62, 0xc3, 0x8c, 0x1d, 0x66, 0x90, 0x66, 0x90, 0x66, 0x90
|
|
@ -646,6 +646,7 @@ if [gas_32_check] then {
|
|||
run_dump_test "dw2-compress-2"
|
||||
run_dump_test "dw2-compressed-2"
|
||||
|
||||
run_dump_test "bad-bcast"
|
||||
run_dump_test "bad-size"
|
||||
|
||||
run_dump_test "size-1"
|
||||
|
|
|
@ -11912,7 +11912,7 @@ OP_E_memory (int bytemode, int sizeflag)
|
|||
{
|
||||
if (vex.w)
|
||||
{
|
||||
abort ();
|
||||
oappend ("{bad}");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -11928,7 +11928,7 @@ OP_E_memory (int bytemode, int sizeflag)
|
|||
oappend ("{1to32}");
|
||||
break;
|
||||
default:
|
||||
abort ();
|
||||
oappend ("{bad}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11948,7 +11948,7 @@ OP_E_memory (int bytemode, int sizeflag)
|
|||
oappend ("{1to8}");
|
||||
break;
|
||||
default:
|
||||
abort ();
|
||||
oappend ("{bad}");
|
||||
}
|
||||
}
|
||||
else if (bytemode == x_mode
|
||||
|
@ -11966,7 +11966,7 @@ OP_E_memory (int bytemode, int sizeflag)
|
|||
oappend ("{1to16}");
|
||||
break;
|
||||
default:
|
||||
abort ();
|
||||
oappend ("{bad}");
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue