mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
Prevent a left shift by a negative value when disassembling IA64 binaries.
* ia64-opc.c (locate_opcode_ent): Prevent a negative shift when locating the bit to be tested.
This commit is contained in:
parent
66a66a17f4
commit
993a00a986
@ -1,3 +1,8 @@
|
||||
2019-10-29 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* ia64-opc.c (locate_opcode_ent): Prevent a negative shift when
|
||||
locating the bit to be tested.
|
||||
|
||||
2019-10-29 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* s12z-dis.c (opr_emit_disassembly): Check for illegal register
|
||||
|
@ -372,13 +372,16 @@ locate_opcode_ent (ia64_insn opcode, enum ia64_insn_type type)
|
||||
|
||||
bitpos[currstatenum] = currbitnum;
|
||||
|
||||
/* Skip opval[0] bits in the instruction. */
|
||||
/* Skip opval[0] bits in the instruction. */
|
||||
if (op & 0x40)
|
||||
{
|
||||
currbitnum -= opval[0];
|
||||
}
|
||||
|
||||
/* The value of the current bit being tested. */
|
||||
if (currbitnum < 0)
|
||||
currbitnum = 0;
|
||||
|
||||
/* The value of the current bit being tested. */
|
||||
currbit = opcode & (((ia64_insn) 1) << currbitnum) ? 1 : 0;
|
||||
next_op = -1;
|
||||
|
||||
@ -463,7 +466,7 @@ locate_opcode_ent (ia64_insn opcode, enum ia64_insn_type type)
|
||||
|
||||
if (next_op > 65535)
|
||||
{
|
||||
abort ();
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Run through the list of opcodes to check, trying to find
|
||||
|
Loading…
Reference in New Issue
Block a user