From: H.J. Lu Date: Fri, 28 May 2004 19:26:31 +0000 (+0000) Subject: 2004-05-28 H.J. Lu X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=888a75bebca164a38b44e222f14ed3a8297e98a4;p=binutils-gdb.git 2004-05-28 H.J. Lu * config/tc-ia64.c (remove_marked_resource): Save, clear and restore the old slot when inserting srlz.i/srlz.d. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 11007a8273d..a3c5a085b35 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2004-05-28 H.J. Lu + + * config/tc-ia64.c (remove_marked_resource): Save, clear and + restore the old slot when inserting srlz.i/srlz.d. + 2004-05-28 Andrew Stubbs * Makefile.am: Regenerate dependecies. diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c index 8c3756778f3..3d153ae6976 100644 --- a/gas/config/tc-ia64.c +++ b/gas/config/tc-ia64.c @@ -9560,17 +9560,15 @@ remove_marked_resource (rs) insn_group_break (1, 0, 0); if (rs->insn_srlz < STATE_SRLZ) { - int oldqp = CURR_SLOT.qp_regno; - struct ia64_opcode *oldidesc = CURR_SLOT.idesc; + struct slot oldslot = CURR_SLOT; /* Manually jam a srlz.i insn into the stream */ - CURR_SLOT.qp_regno = 0; + memset (&CURR_SLOT, 0, sizeof (CURR_SLOT)); CURR_SLOT.idesc = ia64_find_opcode ("srlz.i"); instruction_serialization (); md.curr_slot = (md.curr_slot + 1) % NUM_SLOTS; if (++md.num_slots_in_use >= NUM_SLOTS) emit_one_bundle (); - CURR_SLOT.qp_regno = oldqp; - CURR_SLOT.idesc = oldidesc; + CURR_SLOT = oldslot; } insn_group_break (1, 0, 0); break; @@ -9583,17 +9581,15 @@ remove_marked_resource (rs) if (rs->data_srlz < STATE_STOP) insn_group_break (1, 0, 0); { - int oldqp = CURR_SLOT.qp_regno; - struct ia64_opcode *oldidesc = CURR_SLOT.idesc; + struct slot oldslot = CURR_SLOT; /* Manually jam a srlz.d insn into the stream */ - CURR_SLOT.qp_regno = 0; + memset (&CURR_SLOT, 0, sizeof (CURR_SLOT)); CURR_SLOT.idesc = ia64_find_opcode ("srlz.d"); data_serialization (); md.curr_slot = (md.curr_slot + 1) % NUM_SLOTS; if (++md.num_slots_in_use >= NUM_SLOTS) emit_one_bundle (); - CURR_SLOT.qp_regno = oldqp; - CURR_SLOT.idesc = oldidesc; + CURR_SLOT = oldslot; } break; case IA64_DVS_IMPLIED: