From 390d719fbbadef9a28883c6b7b2a187c38f13e5c Mon Sep 17 00:00:00 2001 From: Bob Wilson Date: Fri, 12 Nov 2004 21:59:13 +0000 Subject: [PATCH] 2004-11-12 Bob Wilson 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. --- include/ChangeLog | 5 +++++ include/xtensa-isa-internal.h | 1 + include/xtensa-isa.h | 13 +++++++++++++ 3 files changed, 19 insertions(+) diff --git a/include/ChangeLog b/include/ChangeLog index 7ee396b19..de51a8fbb 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,8 @@ +2004-11-12 Bob Wilson + + * xtensa-isa-internal.h (xtensa_interface_internal): Add class_id. + * xtensa-isa.h (xtensa_interface_class_id): New prototype. + 2004-11-08 Inderpreet Singh Vineet Sharma diff --git a/include/xtensa-isa-internal.h b/include/xtensa-isa-internal.h index 50ac4781c..44e53f95b 100644 --- a/include/xtensa-isa-internal.h +++ b/include/xtensa-isa-internal.h @@ -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; diff --git a/include/xtensa-isa.h b/include/xtensa-isa.h index 2dc11b924..025e31750 100644 --- a/include/xtensa-isa.h +++ b/include/xtensa-isa.h @@ -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); + /* Functional Units. */ -- 2.43.5