diff options
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-ia64.c | 10 |
2 files changed, 12 insertions, 3 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index ed8d51c..d66e9ce 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2000-06-22 Timothy Wall <twall@cygnus.com> + + * config/tc-ia64.c (note_register_values): Move premature QP + notation clearing into the appropriate place. + 2000-06-22 Alan Modra <alan@linuxcare.com.au> * dep-in.sed: Escape literal `.'s on patterns. Trim off `../' diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c index d2e0ec0..9b2eaf4 100644 --- a/gas/config/tc-ia64.c +++ b/gas/config/tc-ia64.c @@ -7706,6 +7706,13 @@ note_register_values (idesc) clear_qp_implies (~qp_safe_across_calls, ~qp_safe_across_calls); clear_qp_branch_flag (~qp_safe_across_calls); } + else if (is_interruption_or_rfi (idesc) + || is_taken_branch (idesc)) + { + clear_register_values (); + clear_qp_mutex (~(valueT)0); + clear_qp_implies (~(valueT)0, ~(valueT)0); + } /* Look for mutex and implies relations */ else if ((idesc->operands[0] == IA64_OPND_P1 || idesc->operands[0] == IA64_OPND_P2) @@ -8324,9 +8331,6 @@ update_dependencies (idesc) which require a srlz.[id], we don't follow the branch; the next instruction is assumed to start with a clean slate */ regdepslen = 0; - clear_register_values (); - clear_qp_mutex (~(valueT)0); - clear_qp_implies (~(valueT)0, ~(valueT)0); md.path = 0; } else if (is_conditional_branch (idesc) |