aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorSterling Augustine <saugustine@google.com>2008-11-21 22:13:32 +0000
committerSterling Augustine <saugustine@google.com>2008-11-21 22:13:32 +0000
commit1fa3cd83085778237f1f11a87eda7962f706fd1b (patch)
treedec8b3c24db8bce6d9cdb24ce3b5b454b9ee6937 /gas
parente2ce1e4a4173cc5ddba48e83d74faef7c0738ed8 (diff)
downloadgdb-1fa3cd83085778237f1f11a87eda7962f706fd1b.zip
gdb-1fa3cd83085778237f1f11a87eda7962f706fd1b.tar.gz
gdb-1fa3cd83085778237f1f11a87eda7962f706fd1b.tar.bz2
2008-11-21 Sterling Augustine <sterling@tensilica.com>
* xtensa-isa.c (xtensa_state_is_shared_or): New function. 2008-11-21 Sterling Augustine <sterling@tensilica.com> * xtensa-isa-internal.h (XTENSA_STATE_IS_SHARED_OR): New flag. * xtensa-isa.h (xtensa_state_is_shared_or): New prototype. 2008-11-21 Sterling Augustine <sterling@tensilica.com> * config/tc-xtensa.c (check_t1_t2_reads_and_writes): Call xtensa_state_is_shared_or to allow multiple opcodes within a single FLIX bundle to write to these special states.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/config/tc-xtensa.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 3fdd10b..b36db8e 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+2008-11-21 Sterling Augustine <sterling@tensilica.com>
+
+ * config/tc-xtensa.c (check_t1_t2_reads_and_writes): Call
+ xtensa_state_is_shared_or to allow multiple opcodes within a
+ single FLIX bundle to write to these special states.
+
2008-11-19 Hans-Peter Nilsson <hp@axis.com>
* config/tc-cris.c (cris_number_to_imm): Apply S_SET_THREAD_LOCAL
diff --git a/gas/config/tc-xtensa.c b/gas/config/tc-xtensa.c
index f1ccd28..6646ef7 100644
--- a/gas/config/tc-xtensa.c
+++ b/gas/config/tc-xtensa.c
@@ -6539,7 +6539,7 @@ check_t1_t2_reads_and_writes (TInsn *t1, TInsn *t2)
{
xtensa_state t1_so = xtensa_stateOperand_state (isa, t1->opcode, i);
t1_inout = xtensa_stateOperand_inout (isa, t1->opcode, i);
- if (t1_so != t2_so)
+ if (t1_so != t2_so || xtensa_state_is_shared_or (isa, t1_so) == 1)
continue;
if (t2_inout == 'i' && (t1_inout == 'm' || t1_inout == 'o'))