* tic80.h (struct tic80_opcode): Change "format" field to "flags".
authorFred Fish <fnf@specifix.com>
Fri, 17 Jan 1997 03:53:46 +0000 (03:53 +0000)
committerFred Fish <fnf@specifix.com>
Fri, 17 Jan 1997 03:53:46 +0000 (03:53 +0000)
(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
include/opcode/tic80.h

index 095a58a..aaccd06 100644 (file)
@@ -1,4 +1,19 @@
 start-sanitize-tic80
+Thu Jan 16 20:48:55 1997  Fred Fish  <fnf@cygnus.com>
+
+       * 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  <fnf@cygnus.com>
+
+       * 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  <fnf@cygnus.com>
 
        * tic80.h (TIC80_OPERAND_FLOAT): Add for floating point operands.
index ef59ba8..58d3354 100644 (file)
@@ -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 */