From 5ed89aa74bfb43151eaca03676dc86b50f4810b0 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 28 May 2004 19:26:31 +0000 Subject: [PATCH] 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. --- gas/ChangeLog | 5 +++++ gas/config/tc-ia64.c | 16 ++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 11007a8273..a3c5a085b3 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 8c3756778f..3d153ae697 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: -- 2.11.0