mem.isa (10196:be0e1724eb39) | mem.isa (10199:6cf40d777682) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2010, 2012 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 1200 unchanged lines hidden (view full) --- 1209 uops[0] = new %(acc_name)s(machInst, INTREG_UREG0, _base, _add, 1210 _imm); 1211 uops[0]->setDelayedCommit(); 1212 uops[1] = new %(wb_decl)s; 1213 uops[1]->setDelayedCommit(); 1214 uops[2] = new MicroUopRegMov(machInst, INTREG_PC, INTREG_UREG0); 1215 uops[2]->setFlag(StaticInst::IsControl); 1216 uops[2]->setFlag(StaticInst::IsIndirectControl); | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2010, 2012 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 1200 unchanged lines hidden (view full) --- 1209 uops[0] = new %(acc_name)s(machInst, INTREG_UREG0, _base, _add, 1210 _imm); 1211 uops[0]->setDelayedCommit(); 1212 uops[1] = new %(wb_decl)s; 1213 uops[1]->setDelayedCommit(); 1214 uops[2] = new MicroUopRegMov(machInst, INTREG_PC, INTREG_UREG0); 1215 uops[2]->setFlag(StaticInst::IsControl); 1216 uops[2]->setFlag(StaticInst::IsIndirectControl); |
1217 if (conditional) | 1217 /* Also set flags on the macroop so that pre-microop decomposition 1218 branch prediction can work */ 1219 setFlag(StaticInst::IsControl); 1220 setFlag(StaticInst::IsIndirectControl); 1221 if (conditional) { |
1218 uops[2]->setFlag(StaticInst::IsCondControl); | 1222 uops[2]->setFlag(StaticInst::IsCondControl); |
1219 else | 1223 setFlag(StaticInst::IsCondControl); 1224 } else { |
1220 uops[2]->setFlag(StaticInst::IsUncondControl); | 1225 uops[2]->setFlag(StaticInst::IsUncondControl); |
1221 if (_base == INTREG_SP && _add && _imm == 4 && %(is_ras_pop)s) | 1226 setFlag(StaticInst::IsUncondControl); 1227 } 1228 if (_base == INTREG_SP && _add && _imm == 4 && %(is_ras_pop)s) { |
1222 uops[2]->setFlag(StaticInst::IsReturn); | 1229 uops[2]->setFlag(StaticInst::IsReturn); |
1230 setFlag(StaticInst::IsReturn); 1231 } |
|
1223 uops[2]->setLastMicroop(); 1224 } else { 1225 uops[0] = new %(acc_name)s(machInst, _dest, _base, _add, _imm); 1226 uops[0]->setDelayedCommit(); 1227 uops[1] = new %(wb_decl)s; 1228 uops[1]->setLastMicroop(); 1229 } 1230#else --- 12 unchanged lines hidden --- | 1232 uops[2]->setLastMicroop(); 1233 } else { 1234 uops[0] = new %(acc_name)s(machInst, _dest, _base, _add, _imm); 1235 uops[0]->setDelayedCommit(); 1236 uops[1] = new %(wb_decl)s; 1237 uops[1]->setLastMicroop(); 1238 } 1239#else --- 12 unchanged lines hidden --- |