From 70c500b3431209690b9578984785a519572b9514 Mon Sep 17 00:00:00 2001 From: Thiemo Seufer Date: Mon, 14 Nov 2005 02:25:39 +0000 Subject: [PATCH] * mips.h: Assign 'm'/'M' codes to MIPS16e save/restore instructions. Define MIPS16_ALL_ARGS and MIPS16_ALL_STATICS for save/restore encoding of the args field. * mips16-opc.c: Add MIPS16e save/restore opcodes. * mips-dis.c (print_mips16_insn_arg): Handle printing of 'm'/'M' codes for save/restore. * config/tc-mips.c (mips16_ip): Add handling of 'm' and 'M' codes for the MIPS16e save/restore instructions. * gas/mips/mips.exp: Run new save/restore tests. * gas/testsuite/gas/mips/mips16e-save.s: New test for generating different styles of save/restore instructions. * gas/testsuite/gas/mips/mips16e-save.d: New. --- include/opcode/ChangeLog | 6 ++++++ include/opcode/mips.h | 9 ++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index a282a6222..c9a4a1257 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,9 @@ +2005-11-14 David Ung + + * mips.h: Assign 'm'/'M' codes to MIPS16e save/restore + instructions. Define MIPS16_ALL_ARGS and MIPS16_ALL_STATICS for + save/restore encoding of the args field. + 2005-10-28 Dave Brolley Contribute the following changes: diff --git a/include/opcode/mips.h b/include/opcode/mips.h index e46ba2c09..4bec5edcc 100644 --- a/include/opcode/mips.h +++ b/include/opcode/mips.h @@ -928,7 +928,14 @@ extern int bfd_mips_num_opcodes; "A" 8 bit PC relative address * 4 (MIPS16OP_*_IMM8) "B" 5 bit PC relative address * 8 (MIPS16OP_*_IMM5) "E" 5 bit PC relative address * 4 (MIPS16OP_*_IMM5) - */ + "m" 7 bit register list for save instruction (18 bit extended) + "M" 7 bit register list for restore instruction (18 bit extended) + */ + +/* Save/restore encoding for the args field when all 4 registers are + either saved as arguments or saved/restored as statics. */ +#define MIPS16_ALL_ARGS 0xe +#define MIPS16_ALL_STATICS 0xb /* For the mips16, we use the same opcode table format and a few of the same flags. However, most of the flags are different. */