bfd ChangeLog
[deliverable/binutils-gdb.git] / gas / config / xtensa-istack.h
index a1cca2ea702ba1c7a69bcbab66d3bb707b3d72a5..bb9f989e37418ca6754609c6c4bb66452305ddc9 100644 (file)
@@ -1,5 +1,5 @@
 /* Declarations for stacks of tokenized Xtensa instructions.
-   Copyright (C) 2003 Free Software Foundation, Inc.
+   Copyright (C) 2003, 2004 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
 #ifndef XTENSA_ISTACK_H
 #define XTENSA_ISTACK_H
 
+#include "dwarf2dbg.h"
 #include "xtensa-isa.h"
 
 #define MAX_ISTACK 12
-#define MAX_INSN_ARGS 6
+#define MAX_INSN_ARGS 10
 
 enum itype_enum
 {
@@ -40,11 +41,25 @@ enum itype_enum
 typedef struct tinsn_struct
 {
   enum itype_enum insn_type;
-  
-  bfd_boolean is_specific_opcode; 
+
   xtensa_opcode opcode;        /* Literals have an invalid opcode.  */
+  bfd_boolean is_specific_opcode; 
+  bfd_boolean keep_wide; 
   int ntok;
   expressionS tok[MAX_INSN_ARGS];
+  struct dwarf2_line_info loc;
+
+  struct fixP *fixup;
+
+  /* Filled out by relaxation_requirements:  */
+  bfd_boolean record_fix;
+  enum xtensa_relax_statesE subtype;
+  int literal_space;
+  /* Filled out by vinsn_to_insnbuf:  */
+  symbolS *symbol;
+  symbolS *sub_symbol;
+  offsetT offset;
+  fragS *literal_frag;
 } TInsn;
 
 
@@ -57,17 +72,29 @@ typedef struct tinsn_stack
 } IStack;
 
 
-void         istack_init        PARAMS ((IStack *));
-bfd_boolean  istack_empty       PARAMS ((IStack *));
-bfd_boolean  istack_full        PARAMS ((IStack *));
-TInsn *      istack_top         PARAMS ((IStack *));
-void         istack_push        PARAMS ((IStack *, TInsn *));
-TInsn *      istack_push_space  PARAMS ((IStack *)); 
-void         istack_pop         PARAMS ((IStack *));
+void istack_init PARAMS ((IStack *));
+bfd_boolean istack_empty PARAMS ((IStack *));
+bfd_boolean istack_full PARAMS ((IStack *));
+TInsn *istack_top PARAMS ((IStack *));
+void istack_push PARAMS ((IStack *, TInsn *));
+TInsn *istack_push_space PARAMS ((IStack *)); 
+void istack_pop PARAMS ((IStack *));
 
 /* TInsn utilities.  */
-void         tinsn_init         PARAMS ((TInsn *));
-void         tinsn_copy         PARAMS ((TInsn *, const TInsn *));
-expressionS *tinsn_get_tok      PARAMS ((TInsn *, int));
+void tinsn_init PARAMS ((TInsn *));
+expressionS *tinsn_get_tok PARAMS ((TInsn *, int));
+
+
+/* vliw_insn: bundles of TInsns.  */
+
+typedef struct vliw_insn
+{
+  xtensa_format format;
+  xtensa_insnbuf insnbuf;
+  int num_slots;
+  unsigned int inside_bundle;
+  TInsn slots[MAX_SLOTS];
+  xtensa_insnbuf slotbuf[MAX_SLOTS];
+} vliw_insn;
 
 #endif /* !XTENSA_ISTACK_H */
This page took 0.027825 seconds and 4 git commands to generate.