diff options
author | Doug Evans <dje@google.com> | 1998-02-23 21:20:37 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 1998-02-23 21:20:37 +0000 |
commit | 0bf55db8fd2e1022e91392223925e93541da72be (patch) | |
tree | 370a5fd9770973e32af94cd651ab72ae3861c7a6 /opcodes/m32r-dis.c | |
parent | b1f09b637ef5cb8f67b34924f64488b4e2cfc437 (diff) | |
download | gdb-0bf55db8fd2e1022e91392223925e93541da72be.zip gdb-0bf55db8fd2e1022e91392223925e93541da72be.tar.gz gdb-0bf55db8fd2e1022e91392223925e93541da72be.tar.bz2 |
* m32r-asm.c,m32r-dis.c,m32r-opc.h,m32r-opc.c: Regenerate.
Diffstat (limited to 'opcodes/m32r-dis.c')
-rw-r--r-- | opcodes/m32r-dis.c | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/opcodes/m32r-dis.c b/opcodes/m32r-dis.c index 9b467eb..dbe5282 100644 --- a/opcodes/m32r-dis.c +++ b/opcodes/m32r-dis.c @@ -26,6 +26,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "ansidecl.h" #include "dis-asm.h" #include "bfd.h" +#include "symcat.h" #include "m32r-opc.h" /* ??? The layout of this stuff is still work in progress. @@ -87,6 +88,8 @@ extract_normal (buf_ctrl, insn_value, attrs, start, length, shift, total_length, value <<= shift; *valuep = value; + + /* FIXME: for now */ return 1; } @@ -194,7 +197,7 @@ my_print_insn (pc, info, buf, buflen) the handlers. */ -CGEN_INLINE int +int m32r_cgen_extract_operand (opindex, buf_ctrl, insn_value, fields) int opindex; PTR buf_ctrl; @@ -240,7 +243,11 @@ m32r_cgen_extract_operand (opindex, buf_ctrl, insn_value, fields) break; /* start-sanitize-m32rx */ case M32R_OPERAND_IMM1 : - length = extract_normal (NULL /*FIXME*/, insn_value, 0|(1<<CGEN_OPERAND_UNSIGNED), 15, 1, 0, CGEN_FIELDS_BITSIZE (fields), & fields->f_imm1); + { + long value; + length = extract_normal (NULL /*FIXME*/, insn_value, 0|(1<<CGEN_OPERAND_UNSIGNED), 15, 1, 0, CGEN_FIELDS_BITSIZE (fields), & value); + fields->f_imm1 = ((value) + (1)); + } break; /* end-sanitize-m32rx */ /* start-sanitize-m32rx */ @@ -271,13 +278,25 @@ m32r_cgen_extract_operand (opindex, buf_ctrl, insn_value, fields) length = extract_normal (NULL /*FIXME*/, insn_value, 0|(1<<CGEN_OPERAND_RELOC)|(1<<CGEN_OPERAND_ABS_ADDR)|(1<<CGEN_OPERAND_UNSIGNED), 8, 24, 0, CGEN_FIELDS_BITSIZE (fields), & fields->f_uimm24); break; case M32R_OPERAND_DISP8 : - length = extract_normal (NULL /*FIXME*/, insn_value, 0|(1<<CGEN_OPERAND_RELAX)|(1<<CGEN_OPERAND_RELOC)|(1<<CGEN_OPERAND_PCREL_ADDR), 8, 8, 2, CGEN_FIELDS_BITSIZE (fields), & fields->f_disp8); + { + long value; + length = extract_normal (NULL /*FIXME*/, insn_value, 0|(1<<CGEN_OPERAND_RELAX)|(1<<CGEN_OPERAND_RELOC)|(1<<CGEN_OPERAND_PCREL_ADDR), 8, 8, 0, CGEN_FIELDS_BITSIZE (fields), & value); + fields->f_disp8 = ((value) << (2)); + } break; case M32R_OPERAND_DISP16 : - length = extract_normal (NULL /*FIXME*/, insn_value, 0|(1<<CGEN_OPERAND_RELOC)|(1<<CGEN_OPERAND_PCREL_ADDR), 16, 16, 2, CGEN_FIELDS_BITSIZE (fields), & fields->f_disp16); + { + long value; + length = extract_normal (NULL /*FIXME*/, insn_value, 0|(1<<CGEN_OPERAND_RELOC)|(1<<CGEN_OPERAND_PCREL_ADDR), 16, 16, 0, CGEN_FIELDS_BITSIZE (fields), & value); + fields->f_disp16 = ((value) << (2)); + } break; case M32R_OPERAND_DISP24 : - length = extract_normal (NULL /*FIXME*/, insn_value, 0|(1<<CGEN_OPERAND_RELAX)|(1<<CGEN_OPERAND_RELOC)|(1<<CGEN_OPERAND_PCREL_ADDR), 8, 24, 2, CGEN_FIELDS_BITSIZE (fields), & fields->f_disp24); + { + long value; + length = extract_normal (NULL /*FIXME*/, insn_value, 0|(1<<CGEN_OPERAND_RELAX)|(1<<CGEN_OPERAND_RELOC)|(1<<CGEN_OPERAND_PCREL_ADDR), 8, 24, 0, CGEN_FIELDS_BITSIZE (fields), & value); + fields->f_disp24 = ((value) << (2)); + } break; default : @@ -303,7 +322,7 @@ m32r_cgen_extract_operand (opindex, buf_ctrl, insn_value, fields) the handlers. */ -CGEN_INLINE void +void m32r_cgen_print_operand (opindex, info, fields, attrs, pc, length) int opindex; disassemble_info * info; @@ -448,7 +467,7 @@ extract_insn_normal (insn, buf_ctrl, insn_value, fields) continue; length = m32r_cgen_extract_operand (CGEN_SYNTAX_FIELD (*syn), - buf_ctrl, insn_value, fields); + buf_ctrl, insn_value, fields); if (length == 0) return 0; } |