2004-11-12 Bob Wilson <bob.wilson@acm.org>

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.
This commit is contained in:
Bob Wilson 2004-11-12 21:59:13 +00:00
parent afaa92f981
commit 390d719fbb
3 changed files with 19 additions and 0 deletions

View 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> 2004-11-08 Inderpreet Singh <inderpreetb@nioda.hcltech.com>
Vineet Sharma <vineets@noida.hcltech.com> Vineet Sharma <vineets@noida.hcltech.com>

View File

@ -131,6 +131,7 @@ typedef struct xtensa_interface_internal_struct
const char *name; /* Interface name. */ const char *name; /* Interface name. */
int num_bits; /* Width of the interface. */ int num_bits; /* Width of the interface. */
uint32 flags; /* See XTENSA_INTERFACE_* flags. */ uint32 flags; /* See XTENSA_INTERFACE_* flags. */
int class_id; /* Class of related interfaces. */
char inout; /* "i" or "o". */ char inout; /* "i" or "o". */
} xtensa_interface_internal; } xtensa_interface_internal;

View File

@ -755,6 +755,19 @@ xtensa_interface_inout (xtensa_isa isa, xtensa_interface intf);
extern int extern int
xtensa_interface_has_side_effect (xtensa_isa isa, xtensa_interface intf); 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. */ /* Functional Units. */