mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 20:28:28 +08:00
Fix powerpc subis range
* ppc-opc.c: Formatting. (NSISIGNOPT): Define. (powerpc_opcodes <subis>): Use NSISIGNOPT.
This commit is contained in:
@ -1,3 +1,9 @@
|
|||||||
|
2016-05-19 Alan Modra <amodra@gmail.com>
|
||||||
|
|
||||||
|
* ppc-opc.c: Formatting.
|
||||||
|
(NSISIGNOPT): Define.
|
||||||
|
(powerpc_opcodes <subis>): Use NSISIGNOPT.
|
||||||
|
|
||||||
2016-05-18 Maciej W. Rozycki <macro@imgtec.com>
|
2016-05-18 Maciej W. Rozycki <macro@imgtec.com>
|
||||||
|
|
||||||
* mips-dis.c (is_compressed_mode_p): Add `micromips_p' operand,
|
* mips-dis.c (is_compressed_mode_p): Add `micromips_p' operand,
|
||||||
|
@ -414,7 +414,8 @@ const struct powerpc_operand powerpc_operands[] =
|
|||||||
|
|
||||||
/* Power4 version for mfcr. */
|
/* Power4 version for mfcr. */
|
||||||
#define FXM4 FXM + 1
|
#define FXM4 FXM + 1
|
||||||
{ 0xff, 12, insert_fxm, extract_fxm, PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL_VALUE},
|
{ 0xff, 12, insert_fxm, extract_fxm,
|
||||||
|
PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL_VALUE},
|
||||||
/* If the FXM4 operand is ommitted, use the sentinel value -1. */
|
/* If the FXM4 operand is ommitted, use the sentinel value -1. */
|
||||||
{ -1, -1, NULL, NULL, 0},
|
{ -1, -1, NULL, NULL, 0},
|
||||||
|
|
||||||
@ -495,8 +496,14 @@ const struct powerpc_operand powerpc_operands[] =
|
|||||||
{ 0xffff, 0, insert_nsi, extract_nsi,
|
{ 0xffff, 0, insert_nsi, extract_nsi,
|
||||||
PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
|
PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
|
||||||
|
|
||||||
|
/* The NSI field in a D form instruction when we accept a wide range
|
||||||
|
of positive values. */
|
||||||
|
#define NSISIGNOPT NSI + 1
|
||||||
|
{ 0xffff, 0, NULL, NULL,
|
||||||
|
PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
|
||||||
|
|
||||||
/* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction. */
|
/* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction. */
|
||||||
#define RA NSI + 1
|
#define RA NSISIGNOPT + 1
|
||||||
#define RA_MASK (0x1f << 16)
|
#define RA_MASK (0x1f << 16)
|
||||||
{ 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR },
|
{ 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR },
|
||||||
|
|
||||||
@ -690,7 +697,8 @@ const struct powerpc_operand powerpc_operands[] =
|
|||||||
/* The TBR field in an XFX form instruction. This is like the SPR
|
/* The TBR field in an XFX form instruction. This is like the SPR
|
||||||
field, but it is optional. */
|
field, but it is optional. */
|
||||||
#define TBR SV + 1
|
#define TBR SV + 1
|
||||||
{ 0x3ff, 11, insert_tbr, extract_tbr, PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL_VALUE},
|
{ 0x3ff, 11, insert_tbr, extract_tbr,
|
||||||
|
PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL_VALUE},
|
||||||
/* If the TBR operand is ommitted, use the value 268. */
|
/* If the TBR operand is ommitted, use the value 268. */
|
||||||
{ -1, 268, NULL, NULL, 0},
|
{ -1, 268, NULL, NULL, 0},
|
||||||
|
|
||||||
@ -3878,7 +3886,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
|
|||||||
{"liu", OP(15), DRA_MASK, PWRCOM, PPCNONE, {RT, SISIGNOPT}},
|
{"liu", OP(15), DRA_MASK, PWRCOM, PPCNONE, {RT, SISIGNOPT}},
|
||||||
{"addis", OP(15), OP_MASK, PPCCOM, PPCNONE, {RT, RA0, SISIGNOPT}},
|
{"addis", OP(15), OP_MASK, PPCCOM, PPCNONE, {RT, RA0, SISIGNOPT}},
|
||||||
{"cau", OP(15), OP_MASK, PWRCOM, PPCNONE, {RT, RA0, SISIGNOPT}},
|
{"cau", OP(15), OP_MASK, PWRCOM, PPCNONE, {RT, RA0, SISIGNOPT}},
|
||||||
{"subis", OP(15), OP_MASK, PPCCOM, PPCNONE, {RT, RA0, NSI}},
|
{"subis", OP(15), OP_MASK, PPCCOM, PPCNONE, {RT, RA0, NSISIGNOPT}},
|
||||||
|
|
||||||
{"bdnz-", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCNONE, {BDM}},
|
{"bdnz-", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCNONE, {BDM}},
|
||||||
{"bdnz+", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCNONE, {BDP}},
|
{"bdnz+", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCNONE, {BDP}},
|
||||||
|
Reference in New Issue
Block a user