aboutsummaryrefslogtreecommitdiff
path: root/include/opcode/mips.h
diff options
context:
space:
mode:
authorThiemo Seufer <ths@networkno.de>2005-11-14 02:25:39 +0000
committerThiemo Seufer <ths@networkno.de>2005-11-14 02:25:39 +0000
commit0499d65b9bc3522c3275f1945beb3d40e6f7a1ca (patch)
tree2893f145182b936f85283320bd1c3989075cd3e4 /include/opcode/mips.h
parenteafa87ff3b0eadd6e13c1c42962cad9e92992c3c (diff)
downloadgdb-0499d65b9bc3522c3275f1945beb3d40e6f7a1ca.zip
gdb-0499d65b9bc3522c3275f1945beb3d40e6f7a1ca.tar.gz
gdb-0499d65b9bc3522c3275f1945beb3d40e6f7a1ca.tar.bz2
* 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.
Diffstat (limited to 'include/opcode/mips.h')
-rw-r--r--include/opcode/mips.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/include/opcode/mips.h b/include/opcode/mips.h
index e46ba2c..4bec5ed 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. */