aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYoshinori Sato <ysato@users.sourceforge.jp>2018-12-25 20:44:15 +0900
committerYoshinori Sato <ysato@users.sourceforge.jp>2019-01-05 22:49:46 +0900
commit59581069b4d070ab0ac61047177ee119110d678e (patch)
treeb3f11a584caa2a4b2a14ddcca94ead2bdac32d94
parent2eab46b176fa315ebc07569280f020c3348c2aa2 (diff)
downloadgdb-59581069b4d070ab0ac61047177ee119110d678e.zip
gdb-59581069b4d070ab0ac61047177ee119110d678e.tar.gz
gdb-59581069b4d070ab0ac61047177ee119110d678e.tar.bz2
RX: include - Add RXv3 support.
* elf/rx.h (EF_RX_CPU_MASK): Update new bits. (E_FLAG_RX_V3): New RXv3 type. * opcode/rx.h (RX_Size): Add double size. (RX_Operand_Type): Add double FPU registers. (RX_Opcode_ID): Add new instuctions.
-rw-r--r--include/ChangeLog9
-rw-r--r--include/elf/rx.h3
-rw-r--r--include/opcode/rx.h32
3 files changed, 43 insertions, 1 deletions
diff --git a/include/ChangeLog b/include/ChangeLog
index 3fc4606..939eec9 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,12 @@
+2018-12-25 Yoshinori Sato <ysato@users.sourceforge.jp>
+
+ * elf/rx.h (EF_RX_CPU_MASK): Update new bits.
+ (E_FLAG_RX_V3): New RXv3 type.
+ * opcode/rx.h (RX_Size): Add double size.
+ (RX_Operand_Type): Add double FPU registers.
+ (RX_Opcode_ID): Add new instuctions.
+
+
2019-01-01 Alan Modra <amodra@gmail.com>
Update year range in copyright notice of all files.
diff --git a/include/elf/rx.h b/include/elf/rx.h
index 4248823..82b1817 100644
--- a/include/elf/rx.h
+++ b/include/elf/rx.h
@@ -111,7 +111,7 @@ START_RELOC_NUMBERS (elf_rx_reloc_type)
END_RELOC_NUMBERS (R_RX_max)
#define EF_RX_CPU_RX 0x00000079 /* FIXME: this collides with the E_FLAG_RX_... values below. */
-#define EF_RX_CPU_MASK 0x0000007F /* specific cpu bits. */
+#define EF_RX_CPU_MASK 0x000003FF /* specific cpu bits. */
#define EF_RX_ALL_FLAGS (EF_RX_CPU_MASK)
/* Values for the e_flags field in the ELF header. */
@@ -124,6 +124,7 @@ END_RELOC_NUMBERS (R_RX_max)
#define E_FLAG_RX_SINSNS_NO 0 /* Bit-5 if this binary must not be linked with a string instruction using binary. */
#define E_FLAG_RX_SINSNS_MASK (3 << 6) /* Mask of bits used to determine string instruction use. */
#define E_FLAG_RX_V2 (1 << 8) /* RX v2 instructions */
+#define E_FLAG_RX_V3 (1 << 9) /* RX v3 instructions */
/* These define the addend field of R_RX_RH_RELAX relocations. */
#define RX_RELAXA_IMM6 0x00000010 /* Imm8/16/24/32 at bit offset 6. */
diff --git a/include/opcode/rx.h b/include/opcode/rx.h
index a1519ae..8b27fe5 100644
--- a/include/opcode/rx.h
+++ b/include/opcode/rx.h
@@ -38,6 +38,7 @@ typedef enum
RX_SWord,
RX_3Byte,
RX_Long,
+ RX_Double,
RX_Bad_Size,
RX_MAX_SIZE
} RX_Size;
@@ -54,6 +55,11 @@ typedef enum
RX_Operand_Condition, /* eq, gtu, etc */
RX_Operand_Flag, /* [UIOSZC] */
RX_Operand_TwoReg, /* [Rn + scale*R2] */
+ RX_Operand_DoubleReg, /* DRn */
+ RX_Operand_DoubleRegH,/* DRHn */
+ RX_Operand_DoubleRegL,/* DRLn */
+ RX_Operand_DoubleCReg,/* DCRxx */
+ RX_Operand_DoubleCond,/* UN/EQ/LE/LT */
} RX_Operand_Type;
typedef enum
@@ -180,6 +186,32 @@ typedef enum
RXO_racl,
RXO_rdacl,
RXO_rdacw,
+
+ RXO_bfmov,
+ RXO_bfmovz,
+ RXO_rstr,
+ RXO_save,
+ RXO_dmov,
+ RXO_dpopm,
+ RXO_dpushm,
+ RXO_mvfdc,
+ RXO_mvfdr,
+ RXO_mvtdc,
+ RXO_dabs,
+ RXO_dadd,
+ RXO_dcmp,
+ RXO_ddiv,
+ RXO_dmul,
+ RXO_dneg,
+ RXO_dround,
+ RXO_dsqrt,
+ RXO_dsub,
+ RXO_dtoi,
+ RXO_dtof,
+ RXO_dtou,
+ RXO_ftod,
+ RXO_itod,
+ RXO_utod
} RX_Opcode_ID;
/* Condition bitpatterns, as registers. */