From 8da1e5a75dbee3ead677ac3593b32732d2451ded Mon Sep 17 00:00:00 2001 From: Martin Hunt Date: Thu, 25 Jul 1996 19:15:49 +0000 Subject: [PATCH] Thu Jul 25 12:06:22 1996 Martin M. Hunt * d10v.h: Changes for divs, parallel-only instructions, and signed numbers. --- include/opcode/ChangeLog | 5 +++++ include/opcode/d10v.h | 20 ++++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index 3f818a729e..8323f32e27 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 + + * d10v.h: Changes for divs, parallel-only instructions, and + signed numbers. + Mon Jul 22 11:21:15 1996 Martin M. Hunt * d10v.h (pd_reg): Define. Putting the definition here allows diff --git a/include/opcode/d10v.h b/include/opcode/d10v.h index 81dfc1c78a..c667331c56 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 {