mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-29 15:00:34 +00:00
* mn10300-opc.c: Add some comments explaining the various
operands and such. * mn10300-dis.c (disassemble): Fix minor gcc -Wall warnings.
This commit is contained in:
parent
b2f7a7e5b3
commit
8329699005
@ -1,3 +1,10 @@
|
||||
Fri Dec 6 14:48:09 1996 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* mn10300-opc.c: Add some comments explaining the various
|
||||
operands and such.
|
||||
|
||||
* mn10300-dis.c (disassemble): Fix minor gcc -Wall warnings.
|
||||
|
||||
Thu Dec 5 12:09:48 1996 J.T. Conklin <jtc@rtl.cygnus.com>
|
||||
|
||||
* m68k-dis.c (print_insn_arg): Handle new < and > operand
|
||||
|
@ -283,7 +283,7 @@ disassemble (memaddr, info, insn, extension, size)
|
||||
&& size == mysize)
|
||||
{
|
||||
const unsigned char *opindex_ptr;
|
||||
unsigned int nocomma, memop;
|
||||
unsigned int nocomma;
|
||||
int paren = 0;
|
||||
|
||||
match = 1;
|
||||
@ -304,7 +304,7 @@ disassemble (memaddr, info, insn, extension, size)
|
||||
value = insn & ((1 << operand->bits) - 1);
|
||||
value <<= (32 - operand->bits);
|
||||
temp = extension >> operand->shift;
|
||||
temp &= ((1 << 32 - operand->bits) - 1);
|
||||
temp &= ((1 << (32 - operand->bits)) - 1);
|
||||
value |= temp;
|
||||
}
|
||||
else if ((operand->flags & MN10300_OPERAND_EXTENDED) != 0)
|
||||
|
@ -23,51 +23,71 @@ const struct mn10300_operand mn10300_operands[] = {
|
||||
#define UNUSED 0
|
||||
{0, 0, 0},
|
||||
|
||||
/* dn register in the first register operand position. */
|
||||
#define DN0 (UNUSED+1)
|
||||
{2, 0, MN10300_OPERAND_DREG},
|
||||
|
||||
/* dn register in the second register operand position. */
|
||||
#define DN1 (DN0+1)
|
||||
{2, 2, MN10300_OPERAND_DREG},
|
||||
|
||||
/* dn register in the third register operand position. */
|
||||
#define DN2 (DN1+1)
|
||||
{2, 4, MN10300_OPERAND_DREG},
|
||||
|
||||
/* dm register in the first register operand position. */
|
||||
#define DM0 (DN2+1)
|
||||
{2, 0, MN10300_OPERAND_DREG},
|
||||
|
||||
/* dm register in the second register operand position. */
|
||||
#define DM1 (DM0+1)
|
||||
{2, 2, MN10300_OPERAND_DREG},
|
||||
|
||||
/* dm register in the third register operand position. */
|
||||
#define DM2 (DM1+1)
|
||||
{2, 4, MN10300_OPERAND_DREG},
|
||||
|
||||
/* an register in the first register operand position. */
|
||||
#define AN0 (DM2+1)
|
||||
{2, 0, MN10300_OPERAND_AREG},
|
||||
|
||||
/* an register in the second register operand position. */
|
||||
#define AN1 (AN0+1)
|
||||
{2, 2, MN10300_OPERAND_AREG},
|
||||
|
||||
/* an register in the third register operand position. */
|
||||
#define AN2 (AN1+1)
|
||||
{2, 4, MN10300_OPERAND_AREG},
|
||||
|
||||
/* am register in the first register operand position. */
|
||||
#define AM0 (AN2+1)
|
||||
{2, 0, MN10300_OPERAND_AREG},
|
||||
|
||||
/* am register in the second register operand position. */
|
||||
#define AM1 (AM0+1)
|
||||
{2, 2, MN10300_OPERAND_AREG},
|
||||
|
||||
/* am register in the third register operand position. */
|
||||
#define AM2 (AM1+1)
|
||||
{2, 4, MN10300_OPERAND_AREG},
|
||||
|
||||
/* 8 bit unsigned immediate which may promote to a 16bit
|
||||
unsigned immediate. */
|
||||
#define IMM8 (AM2+1)
|
||||
{8, 0, MN10300_OPERAND_PROMOTE},
|
||||
|
||||
/* 16 bit unsigned immediate which may promote to a 32bit
|
||||
unsigned immediate. */
|
||||
#define IMM16 (IMM8+1)
|
||||
{16, 0, MN10300_OPERAND_PROMOTE},
|
||||
|
||||
/* 16 bit pc-relative immediate which may promote to a 16bit
|
||||
pc-relative immediate. */
|
||||
#define IMM16_PCREL (IMM16+1)
|
||||
{16, 0, MN10300_OPERAND_PROMOTE | MN10300_OPERAND_PCREL},
|
||||
|
||||
/* 16bit unsigned dispacement in a memory operation which
|
||||
may promote to a 32bit displacement. */
|
||||
#define IMM16_MEM (IMM16_PCREL+1)
|
||||
{16, 0, MN10300_OPERAND_PROMOTE | MN10300_OPERAND_MEMADDR},
|
||||
|
||||
@ -79,9 +99,11 @@ const struct mn10300_operand mn10300_operands[] = {
|
||||
#define IMM32 (IMM16_MEM+1)
|
||||
{16, 0, MN10300_OPERAND_SPLIT},
|
||||
|
||||
/* 32bit pc-relative offset. */
|
||||
#define IMM32_PCREL (IMM32+1)
|
||||
{16, 0, MN10300_OPERAND_SPLIT | MN10300_OPERAND_PCREL},
|
||||
|
||||
/* 32bit memory offset. */
|
||||
#define IMM32_MEM (IMM32_PCREL+1)
|
||||
{16, 0, MN10300_OPERAND_SPLIT | MN10300_OPERAND_MEMADDR},
|
||||
|
||||
@ -111,63 +133,82 @@ const struct mn10300_operand mn10300_operands[] = {
|
||||
#define IMM32_HIGH24_LOWSHIFT16 (IMM32_HIGH24+1)
|
||||
{24, 16, MN10300_OPERAND_SPLIT | MN10300_OPERAND_PCREL},
|
||||
|
||||
/* Stack pointer. */
|
||||
#define SP (IMM32_HIGH24_LOWSHIFT16+1)
|
||||
{8, 0, MN10300_OPERAND_SP},
|
||||
|
||||
/* Processor status word. */
|
||||
#define PSW (SP+1)
|
||||
{0, 0, MN10300_OPERAND_PSW},
|
||||
|
||||
/* MDR register. */
|
||||
#define MDR (PSW+1)
|
||||
{0, 0, MN10300_OPERAND_MDR},
|
||||
|
||||
/* Index register. */
|
||||
#define DI (MDR+1)
|
||||
{2, 2, MN10300_OPERAND_DREG},
|
||||
|
||||
/* 8 bit signed displacement, may promote to 16bit signed dispacement. */
|
||||
#define SD8 (DI+1)
|
||||
{8, 0, MN10300_OPERAND_SIGNED | MN10300_OPERAND_PROMOTE},
|
||||
|
||||
/* 16 bit signed displacement, may promote to 32bit dispacement. */
|
||||
#define SD16 (SD8+1)
|
||||
{16, 0, MN10300_OPERAND_SIGNED | MN10300_OPERAND_PROMOTE},
|
||||
|
||||
/* 8 bit signed displacement that can not promote. */
|
||||
#define SD8N (SD16+1)
|
||||
{8, 0, MN10300_OPERAND_SIGNED},
|
||||
|
||||
/* 8 bit pc-relative displacement. */
|
||||
#define SD8N_PCREL (SD8N+1)
|
||||
{8, 0, MN10300_OPERAND_SIGNED | MN10300_OPERAND_PCREL},
|
||||
|
||||
/* 8 bit signed displacement shifted left 8 bits in the instruction. */
|
||||
#define SD8N_SHIFT8 (SD8N_PCREL+1)
|
||||
{8, 8, MN10300_OPERAND_SIGNED},
|
||||
|
||||
/* 8 bit signed immediate which may promote to 16bit signed immediate. */
|
||||
#define SIMM8 (SD8N_SHIFT8+1)
|
||||
{8, 0, MN10300_OPERAND_SIGNED | MN10300_OPERAND_PROMOTE},
|
||||
|
||||
/* 16 bit signed immediate which may promote to 32bit immediate. */
|
||||
#define SIMM16 (SIMM8+1)
|
||||
{16, 0, MN10300_OPERAND_SIGNED | MN10300_OPERAND_PROMOTE},
|
||||
|
||||
/* Either an open paren or close paren. */
|
||||
#define PAREN (SIMM16+1)
|
||||
{0, 0, MN10300_OPERAND_PAREN},
|
||||
|
||||
/* dn register that appears in the first and second register positions. */
|
||||
#define DN01 (PAREN+1)
|
||||
{2, 0, MN10300_OPERAND_DREG | MN10300_OPERAND_REPEATED},
|
||||
|
||||
/* an register that appears in the first and second register positions. */
|
||||
#define AN01 (DN01+1)
|
||||
{2, 0, MN10300_OPERAND_AREG | MN10300_OPERAND_REPEATED},
|
||||
|
||||
/* 16bit pc-relative displacement which may promote to 32bit pc-relative
|
||||
displacement. */
|
||||
#define D16_SHIFT (AN01+1)
|
||||
{16, 8, MN10300_OPERAND_PROMOTE | MN10300_OPERAND_PCREL},
|
||||
|
||||
/* 8 bit immediate found in the extension word. */
|
||||
#define IMM8E (D16_SHIFT+1)
|
||||
{8, 0, MN10300_OPERAND_EXTENDED},
|
||||
|
||||
/* Register list found in the extension word shifted 8 bits left. */
|
||||
#define REGSE_SHIFT8 (IMM8E+1)
|
||||
{8, 8, MN10300_OPERAND_EXTENDED | MN10300_OPERAND_REG_LIST},
|
||||
|
||||
/* Register list shifted 8 bits left. */
|
||||
#define REGS_SHIFT8 (REGSE_SHIFT8 + 1)
|
||||
{8, 8, MN10300_OPERAND_REG_LIST},
|
||||
|
||||
/* Reigster list. */
|
||||
#define REGS (REGS_SHIFT8+1)
|
||||
{8, 0, MN10300_OPERAND_REG_LIST},
|
||||
|
||||
} ;
|
||||
|
||||
#define MEM(ADDR) PAREN, ADDR, PAREN
|
||||
|
Loading…
Reference in New Issue
Block a user