aboutsummaryrefslogtreecommitdiff
path: root/gdb/i860-opcode.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/i860-opcode.h')
-rw-r--r--gdb/i860-opcode.h137
1 files changed, 137 insertions, 0 deletions
diff --git a/gdb/i860-opcode.h b/gdb/i860-opcode.h
new file mode 100644
index 0000000..bdf45af
--- /dev/null
+++ b/gdb/i860-opcode.h
@@ -0,0 +1,137 @@
+/* Intel I860 opcde list for GDB, the GNU debugger.
+ Copyright (C) 1992 Free Software Foundation, Inc.
+ Contributed by Peggy Fieland (pfieland@stratus.com)
+
+GDB is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY. No author or distributor accepts responsibility to anyone
+for the consequences of using it or for whether it serves any
+particular purpose or works at all, unless he says so in writing.
+Refer to the GDB General Public License for full details.
+
+Everyone is granted permission to copy, modify and redistribute GDB,
+but only under the conditions described in the GDB General Public
+License. A copy of this license is supposed to have been given to you
+along with GDB so you can know your rights and responsibilities. It
+should be in a file named COPYING. Among other things, the copyright
+notice and this notice must be preserved on all copies.
+
+In other words, go ahead and share GDB, but don't try to stop
+anyone else from sharing it farther. Help stamp out software hoarding!
+*/
+
+#ifdef BIG_ENDIAN
+struct gen_fmt
+{
+ unsigned op1 : 6;
+ unsigned src2 : 5;
+ unsigned dest : 5;
+ unsigned src1 : 5;
+ unsigned offset : 11;
+};
+
+struct geni_fmt
+{
+ unsigned op1 : 6;
+ unsigned src2 : 5;
+ unsigned dest : 5;
+ unsigned offset : 16;
+};
+
+struct esc_fmt
+{
+ unsigned op1 : 6;
+ unsigned res1 : 10;
+ unsigned src1 : 5;
+ unsigned res2 : 6;
+ unsigned op2 : 5;
+};
+struct ctrl_fmt
+{
+ unsigned op1 : 6;
+ unsigned int offset : 26;
+};
+
+struct fp_fmt
+{
+ unsigned op1 : 6;
+ unsigned src2 : 5;
+ unsigned dest : 5;
+ unsigned src1 : 5;
+ unsigned p : 1;
+ unsigned d : 1;
+ unsigned s : 1;
+ unsigned r : 1;
+ unsigned op2 : 7;
+};
+
+union insn_fmt
+{
+ struct gen_fmt gen;
+ struct geni_fmt geni;
+ struct esc_fmt esc;
+ struct ctrl_fmt ctrl;
+ struct fp_fmt fp;
+ long int_val;
+};
+#else
+struct gen_fmt
+{
+ unsigned offset : 11;
+ unsigned src1 : 5;
+ unsigned dest : 5;
+ unsigned src2 : 5;
+ unsigned op1 : 6;
+};
+
+struct geni_fmt
+{
+ unsigned offset : 16;
+ unsigned dest : 5;
+ unsigned src2 : 5;
+ unsigned op1 : 6;
+};
+
+struct esc_fmt
+{
+ unsigned op2 : 5;
+ unsigned res2 : 6;
+ unsigned src1 : 5;
+ unsigned res1 : 10;
+ unsigned op1 : 6;
+};
+struct ctrl_fmt
+{
+ unsigned int offset : 26;
+ unsigned op1 : 6;
+};
+
+struct fp_fmt
+{
+ unsigned op2 : 7;
+ unsigned r : 1;
+ unsigned s : 1;
+ unsigned d : 1;
+ unsigned p : 1;
+ unsigned src1 : 5;
+ unsigned dest : 5;
+ unsigned src2 : 5;
+ unsigned op1 : 6;
+};
+
+union insn_fmt
+{
+ struct gen_fmt gen;
+ struct geni_fmt geni;
+ struct esc_fmt esc;
+ struct ctrl_fmt ctrl;
+ struct fp_fmt fp;
+ long int_val;
+};
+#endif
+
+typedef enum
+{
+ Error, not_branch, uncond, uncond_d, cond, cond_d
+} branch_type;
+
+