macromem.cc (9250:dab0f29394f0) macromem.cc (9368:3cd40209af8d)
1/*
2 * Copyright (c) 2010 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 131 unchanged lines hidden (view full) ---

140 else
141 *++uop = new MicroSubiUop(machInst, rn, rn, ones * 4);
142
143 // If this was a load move the last temporary value into place
144 // this way we can't take an exception after we update the base
145 // register.
146 if (load && reg == INTREG_PC && exception_ret) {
147 *++uop = new MicroUopRegMovRet(machInst, 0, INTREG_UREG1);
1/*
2 * Copyright (c) 2010 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 131 unchanged lines hidden (view full) ---

140 else
141 *++uop = new MicroSubiUop(machInst, rn, rn, ones * 4);
142
143 // If this was a load move the last temporary value into place
144 // this way we can't take an exception after we update the base
145 // register.
146 if (load && reg == INTREG_PC && exception_ret) {
147 *++uop = new MicroUopRegMovRet(machInst, 0, INTREG_UREG1);
148 if (!(condCode == COND_AL || condCode == COND_UC))
149 (*uop)->setFlag(StaticInst::IsCondControl);
150 else
151 (*uop)->setFlag(StaticInst::IsUncondControl);
148 } else if (load) {
149 *++uop = new MicroUopRegMov(machInst, regIdx, INTREG_UREG1);
150 if (reg == INTREG_PC) {
151 (*uop)->setFlag(StaticInst::IsControl);
152 (*uop)->setFlag(StaticInst::IsCondControl);
153 (*uop)->setFlag(StaticInst::IsIndirectControl);
154 // This is created as a RAS POP
155 if (rn == INTREG_SP)

--- 820 unchanged lines hidden ---
152 } else if (load) {
153 *++uop = new MicroUopRegMov(machInst, regIdx, INTREG_UREG1);
154 if (reg == INTREG_PC) {
155 (*uop)->setFlag(StaticInst::IsControl);
156 (*uop)->setFlag(StaticInst::IsCondControl);
157 (*uop)->setFlag(StaticInst::IsIndirectControl);
158 // This is created as a RAS POP
159 if (rn == INTREG_SP)

--- 820 unchanged lines hidden ---