OSDN Git Service

2004-11-12 Bob Wilson <bob.wilson@acm.org>
authorBob Wilson <bob.wilson@acm.org>
Fri, 12 Nov 2004 21:59:13 +0000 (21:59 +0000)
committerBob Wilson <bob.wilson@acm.org>
Fri, 12 Nov 2004 21:59:13 +0000 (21:59 +0000)
include/ChangeLog
* xtensa-isa-internal.h (xtensa_interface_internal): Add class_id.
* xtensa-isa.h (xtensa_interface_class_id): New prototype.

bfd/ChangeLog
* xtensa-isa.c (xtensa_interface_class_id): New.

gas/ChangeLog
* config/tc-xtensa.c (finish_vinsn): Clear pending instruction if
there is a conflict.
(check_t1_t2_reads_and_writes): Check for both reads and writes to
interfaces that are related as determined by xtensa_interface_class_id.

bfd/ChangeLog
bfd/xtensa-isa.c
include/ChangeLog
include/xtensa-isa-internal.h
include/xtensa-isa.h

index ed41ba2..eb1b718 100644 (file)
@@ -1,3 +1,7 @@
+2004-11-12  Bob Wilson  <bob.wilson@acm.org>
+
+       * xtensa-isa.c (xtensa_interface_class_id): New.
+
 2004-11-11  Bob Wilson  <bob.wilson@acm.org>
 
        * elf32-xtensa.c (property_table_compare): Remove assertion about
index 30ad80c..f5fa3c2 100644 (file)
@@ -1677,6 +1677,15 @@ xtensa_interface_has_side_effect (xtensa_isa isa, xtensa_interface intf)
   return 0;
 }
 
+
+int
+xtensa_interface_class_id (xtensa_isa isa, xtensa_interface intf)
+{
+  xtensa_isa_internal *intisa = (xtensa_isa_internal *) isa;
+  CHECK_INTERFACE (intisa, intf, XTENSA_UNDEFINED);
+  return intisa->interfaces[intf].class_id;
+}
+
 \f
 /* Functional Units.  */
 
index 7ee396b..de51a8f 100644 (file)
@@ -1,3 +1,8 @@
+2004-11-12  Bob Wilson  <bob.wilson@acm.org>
+
+       * xtensa-isa-internal.h (xtensa_interface_internal): Add class_id.
+       * xtensa-isa.h (xtensa_interface_class_id): New prototype.
+
 2004-11-08  Inderpreet Singh   <inderpreetb@nioda.hcltech.com>
            Vineet Sharma      <vineets@noida.hcltech.com>
 
index 50ac478..44e53f9 100644 (file)
@@ -131,6 +131,7 @@ typedef struct xtensa_interface_internal_struct
   const char *name;                    /* Interface name.  */
   int num_bits;                                /* Width of the interface.  */
   uint32 flags;                                /* See XTENSA_INTERFACE_* flags.  */
+  int class_id;                                /* Class of related interfaces.  */
   char inout;                          /* "i" or "o".  */
 } xtensa_interface_internal;
 
index 2dc11b9..025e317 100644 (file)
@@ -755,6 +755,19 @@ xtensa_interface_inout (xtensa_isa isa, xtensa_interface intf);
 extern int
 xtensa_interface_has_side_effect (xtensa_isa isa, xtensa_interface intf);
 
+
+/* Some interfaces may be related such that accessing one interface
+   has side effects on a set of related interfaces.  The interfaces
+   are partitioned into equivalence classes of related interfaces, and
+   each class is assigned a unique identifier number.  This function
+   returns the class identifier for an interface, or XTENSA_UNDEFINED
+   on error.  These identifiers can be compared to determine if two
+   interfaces are related; the specific values of the identifiers have
+   no particular meaning otherwise.  */
+
+extern int
+xtensa_interface_class_id (xtensa_isa isa, xtensa_interface intf);
+
 \f
 /* Functional Units.  */