forked from Imagelibrary/binutils-gdb
Correct powerpc spe opcode lookup
Defining SPE2_OPCD_SEGS as 13 discounts the possibility that we'd ever look up spe2_opcd_indices[14..16], which I think is possible. Extend that array to size 16+1, using the macros we use to index the array. Similarly use the index macros for PPC_OPCD_SEGS and VLE_OPCD_SEGS. * ppc-dis.c (PPC_OPCD_SEGS): Define using PPC_OP. (VLE_OPCD_SEGS, SPE2_OPCD_SEGS): Similarly, using macros used to partition opcode space for index lookup.
This commit is contained in:
@@ -367,12 +367,12 @@ powerpc_init_dialect (struct disassemble_info *info)
|
||||
POWERPC_DIALECT(info) = dialect;
|
||||
}
|
||||
|
||||
#define PPC_OPCD_SEGS 64
|
||||
static unsigned short powerpc_opcd_indices[PPC_OPCD_SEGS+1];
|
||||
#define VLE_OPCD_SEGS 32
|
||||
static unsigned short vle_opcd_indices[VLE_OPCD_SEGS+1];
|
||||
#define SPE2_OPCD_SEGS 13
|
||||
static unsigned short spe2_opcd_indices[SPE2_OPCD_SEGS+1];
|
||||
#define PPC_OPCD_SEGS (1 + PPC_OP (-1))
|
||||
static unsigned short powerpc_opcd_indices[PPC_OPCD_SEGS + 1];
|
||||
#define VLE_OPCD_SEGS (1 + VLE_OP_TO_SEG (VLE_OP (-1, 0xffff)))
|
||||
static unsigned short vle_opcd_indices[VLE_OPCD_SEGS + 1];
|
||||
#define SPE2_OPCD_SEGS (1 + SPE2_XOP_TO_SEG (SPE2_XOP (-1)))
|
||||
static unsigned short spe2_opcd_indices[SPE2_OPCD_SEGS + 1];
|
||||
|
||||
/* Calculate opcode table indices to speed up disassembly,
|
||||
and init dialect. */
|
||||
|
||||
Reference in New Issue
Block a user