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 --- |