From ac5f447d6030603c2d859d10945bbde18640551d Mon Sep 17 00:00:00 2001 From: Fred Fish Date: Fri, 17 Jan 1997 03:53:46 +0000 Subject: * tic80.h (struct tic80_opcode): Change "format" field to "flags". (FMT_UNUSED, FMT_SI, FMT_LI, FMT_REG): Delete. (TIC80_VECTOR): Define a flag bit for the flags. This one means that the opcode can have two vector instructions in a single 32 bit word and we have to encode/decode both. --- include/opcode/ChangeLog | 15 +++++++++++++++ include/opcode/tic80.h | 26 +++++++++++++------------- 2 files changed, 28 insertions(+), 13 deletions(-) diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index 095a58a..aaccd06 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,4 +1,19 @@ start-sanitize-tic80 +Thu Jan 16 20:48:55 1997 Fred Fish + + * tic80.h (struct tic80_opcode): Change "format" field to "flags". + (FMT_UNUSED, FMT_SI, FMT_LI, FMT_REG): Delete. + (TIC80_VECTOR): Define a flag bit for the flags. This one means + that the opcode can have two vector instructions in a single + 32 bit word and we have to encode/decode both. + +Tue Jan 14 19:37:09 1997 Fred Fish + + * tic80.h (TIC80_OPERAND_PCREL): Renamed from + TIC80_OPERAND_RELATIVE for PC relative. + (TIC80_OPERAND_BASEREL): New flag bit for register + base relative. + Mon Jan 13 15:56:38 1997 Fred Fish * tic80.h (TIC80_OPERAND_FLOAT): Add for floating point operands. diff --git a/include/opcode/tic80.h b/include/opcode/tic80.h index ef59ba8..58d3354 100644 --- a/include/opcode/tic80.h +++ b/include/opcode/tic80.h @@ -41,10 +41,9 @@ struct tic80_opcode unsigned long mask; - /* The format of this opcode. I.E. short-immediate, register, long - immediate, etc. FIXME: Will this ever be used? */ + /* Special purpose flags for this opcode. */ - unsigned char format; + unsigned char flags; /* An array of operand codes. Each code is an index into the operand table. They appear in the order which the operands must appear in @@ -147,9 +146,10 @@ extern const struct tic80_operand tic80_operands[]; prints these with a leading 'a'. */ #define TIC80_OPERAND_FPA (020) -/* This operand is a relative branch displacement. The disassembler - prints these symbolically if possible. */ -#define TIC80_OPERAND_RELATIVE (040) +/* This operand is a PC relative branch offset. The disassembler prints + these symbolically if possible. Note that the offsets are taken as word + offsets. */ +#define TIC80_OPERAND_PCREL (040) /* This flag is a hint to the disassembler for using hex as the prefered printing format, even for small positive or negative immediate values. @@ -180,13 +180,13 @@ extern const struct tic80_operand tic80_operands[]; /* This operand is a floating point value */ #define TIC80_OPERAND_FLOAT (010000) -/* Values which go in the struct tic80_opcode format field to distinguish - between various types of instructions with the same mnemonic. FIXME: Not - currently used? */ +/* This operand is an byte offset from a base relocation. The lower + two bits of the final relocated address are ignored when the value is + written to the program counter. */ +#define TIC80_OPERAND_BASEREL (020000) -#define FMT_UNUSED 0 /* Unused */ -#define FMT_SI 1 /* Short immediate format */ -#define FMT_LI 2 /* Long immediate format */ -#define FMT_REG 3 /* Register format */ +/* Flag bits for the struct tic80_opcode flags field. */ + +#define TIC80_VECTOR 1 /* Is a vector instruction */ #endif /* TIC80_H */ -- cgit v1.1