aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMartin Hunt <hunt@redhat.com>1996-07-25 19:15:49 +0000
committerMartin Hunt <hunt@redhat.com>1996-07-25 19:15:49 +0000
commit8da1e5a75dbee3ead677ac3593b32732d2451ded (patch)
tree7e505ced65f83a7f8c29f6ce9814164f14c45c68 /include
parentab48956f9916326480f236971f5062613b266e38 (diff)
downloadfsf-binutils-gdb-8da1e5a75dbee3ead677ac3593b32732d2451ded.zip
fsf-binutils-gdb-8da1e5a75dbee3ead677ac3593b32732d2451ded.tar.gz
fsf-binutils-gdb-8da1e5a75dbee3ead677ac3593b32732d2451ded.tar.bz2
Thu Jul 25 12:06:22 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* d10v.h: Changes for divs, parallel-only instructions, and signed numbers.
Diffstat (limited to 'include')
-rw-r--r--include/opcode/ChangeLog5
-rw-r--r--include/opcode/d10v.h20
2 files changed, 19 insertions, 6 deletions
diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog
index 3f818a7..8323f32 100644
--- a/include/opcode/ChangeLog
+++ b/include/opcode/ChangeLog
@@ -1,4 +1,9 @@
start-sanitize-d10v
+Thu Jul 25 12:06:22 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
+
+ * d10v.h: Changes for divs, parallel-only instructions, and
+ signed numbers.
+
Mon Jul 22 11:21:15 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* d10v.h (pd_reg): Define. Putting the definition here allows
diff --git a/include/opcode/d10v.h b/include/opcode/d10v.h
index 81dfc1c..c667331 100644
--- a/include/opcode/d10v.h
+++ b/include/opcode/d10v.h
@@ -28,6 +28,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
#define FM11 0xC0000000
#define NOP 0x5e00
+#define OPCODE_DIVS 0x14002800
/* The opcode table is an array of struct d10v_opcode. */
@@ -39,9 +40,7 @@ struct d10v_opcode
/* the opcode format */
int format;
- /* opcode types. these numbers were picked so we can do
- if( i & SHORT_OPCODE) */
-
+ /* These numbers were picked so we can do if( i & SHORT_OPCODE) */
#define SHORT_OPCODE 1
#define LONG_OPCODE 8
#define SHORT_2 1 /* short with 2 operands */
@@ -50,6 +49,11 @@ struct d10v_opcode
#define LONG_L 10 /* long with 3 operands */
#define LONG_R 12 /* reserved */
+ /* just a placeholder for variable-length instructions */
+ /* for example, "bra" will be a fake for "bra.s" and bra.l" */
+ /* which will immediately follow in the opcode table. */
+#define OPCODE_FAKE 32
+
/* the number of cycles */
int cycles;
@@ -62,9 +66,10 @@ struct d10v_opcode
/* execution type; parallel or sequential */
int exec_type;
-#define PAR 1
-#define SEQ 2
-#define BRANCH_LINK 3
+#define PARONLY 1 /* parallel only */
+#define SEQ 2 /* must be sequential */
+#define PAR 3 /* may be parallel */
+#define BRANCH_LINK 4 /* subroutine call. sequential and aligned */
/* the opcode */
long opcode;
@@ -147,6 +152,9 @@ extern const struct d10v_operand d10v_operands[];
/* predecrement mode '@-sp' */
#define OPERAND_ATMINUS (0x2000)
+/* signed number */
+#define OPERAND_SIGNED (0x4000)
+
/* Structure to hold information about predefined registers. */
struct pd_reg
{