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.
This commit is contained in:
parent
ab48956f99
commit
8da1e5a75d
|
@ -1,4 +1,9 @@
|
||||||
start-sanitize-d10v
|
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>
|
Mon Jul 22 11:21:15 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
|
||||||
|
|
||||||
* d10v.h (pd_reg): Define. Putting the definition here allows
|
* d10v.h (pd_reg): Define. Putting the definition here allows
|
||||||
|
|
|
@ -28,6 +28,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
||||||
#define FM11 0xC0000000
|
#define FM11 0xC0000000
|
||||||
|
|
||||||
#define NOP 0x5e00
|
#define NOP 0x5e00
|
||||||
|
#define OPCODE_DIVS 0x14002800
|
||||||
|
|
||||||
/* The opcode table is an array of struct d10v_opcode. */
|
/* The opcode table is an array of struct d10v_opcode. */
|
||||||
|
|
||||||
|
@ -39,9 +40,7 @@ struct d10v_opcode
|
||||||
/* the opcode format */
|
/* the opcode format */
|
||||||
int format;
|
int format;
|
||||||
|
|
||||||
/* opcode types. these numbers were picked so we can do
|
/* These numbers were picked so we can do if( i & SHORT_OPCODE) */
|
||||||
if( i & SHORT_OPCODE) */
|
|
||||||
|
|
||||||
#define SHORT_OPCODE 1
|
#define SHORT_OPCODE 1
|
||||||
#define LONG_OPCODE 8
|
#define LONG_OPCODE 8
|
||||||
#define SHORT_2 1 /* short with 2 operands */
|
#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_L 10 /* long with 3 operands */
|
||||||
#define LONG_R 12 /* reserved */
|
#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 */
|
/* the number of cycles */
|
||||||
int cycles;
|
int cycles;
|
||||||
|
|
||||||
|
@ -62,9 +66,10 @@ struct d10v_opcode
|
||||||
|
|
||||||
/* execution type; parallel or sequential */
|
/* execution type; parallel or sequential */
|
||||||
int exec_type;
|
int exec_type;
|
||||||
#define PAR 1
|
#define PARONLY 1 /* parallel only */
|
||||||
#define SEQ 2
|
#define SEQ 2 /* must be sequential */
|
||||||
#define BRANCH_LINK 3
|
#define PAR 3 /* may be parallel */
|
||||||
|
#define BRANCH_LINK 4 /* subroutine call. sequential and aligned */
|
||||||
|
|
||||||
/* the opcode */
|
/* the opcode */
|
||||||
long opcode;
|
long opcode;
|
||||||
|
@ -147,6 +152,9 @@ extern const struct d10v_operand d10v_operands[];
|
||||||
/* predecrement mode '@-sp' */
|
/* predecrement mode '@-sp' */
|
||||||
#define OPERAND_ATMINUS (0x2000)
|
#define OPERAND_ATMINUS (0x2000)
|
||||||
|
|
||||||
|
/* signed number */
|
||||||
|
#define OPERAND_SIGNED (0x4000)
|
||||||
|
|
||||||
/* Structure to hold information about predefined registers. */
|
/* Structure to hold information about predefined registers. */
|
||||||
struct pd_reg
|
struct pd_reg
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue