1// -*- mode:c++ -*- 2 3// Copyright (c) 2010 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 --- 198 unchanged lines hidden (view full) --- 207 public: 208 // Constructor 209 %(class_name)s(ExtMachInst machInst, 210 int32_t imm, IntRegIndex _op1); 211 %(BasicExecDeclare)s 212}; 213}}; 214 |
215// Only used by CBNZ, CBZ which is conditional based on 216// a register value even though the instruction is always unconditional. |
217def template BranchImmRegConstructor {{ 218 inline %(class_name)s::%(class_name)s(ExtMachInst machInst, 219 int32_t _imm, 220 IntRegIndex _op1) 221 : %(base_class)s("%(mnemonic)s", machInst, %(op_class)s, _imm, _op1) 222 { 223 %(constructor)s; |
224 flags[IsCondControl] = true; |
225 } 226}}; 227 228def template BranchTarget {{ 229 230 ArmISA::PCState 231 %(class_name)s::branchTarget(const ArmISA::PCState &branchPC) const 232 { 233 %(op_decl)s; 234 %(op_rd)s; 235 236 ArmISA::PCState pcs = branchPC; 237 %(brTgtCode)s 238 pcs.advance(); 239 return pcs; 240 } 241}}; 242 243 |