1// Copyright (c) 2008 The Hewlett-Packard Development Company 2// All rights reserved. 3// 4// The license below extends only to copyright in the software and shall 5// not be construed as granting a license to any other intellectual 6// property including but not limited to intellectual property relating 7// to a hardware implementation of the functionality of the software 8// licensed hereunder. You may use the software subject to the license --- 87 unchanged lines hidden (view full) --- 96def template SeqOpConstructor {{ 97 inline %(class_name)s::%(class_name)s( 98 ExtMachInst machInst, const char * instMnem, 99 uint64_t setFlags, uint16_t _target, uint8_t _cc) : 100 %(base_class)s(machInst, "%(mnemonic)s", instMnem, 101 setFlags, _target, _cc) 102 { 103 %(constructor)s; |
104 %(cond_control_flag_init)s; |
105 } 106}}; 107 108output decoder {{ 109 std::string SeqOpBase::generateDisassembly(Addr pc, 110 const SymbolTable *symtab) const 111 { 112 std::stringstream response; --- 54 unchanged lines hidden (view full) --- 167 microFlags.append("IsLastMicroop") 168 if "IsDelayedCommit" in microFlags: 169 microFlags.remove("IsDelayedCommit") 170 return super(Eret, self).getAllocator(microFlags) 171 172 iop = InstObjParams("br", "MicroBranchFlags", "SeqOpBase", 173 {"code": "nuIP = target;", 174 "else_code": "nuIP = nuIP;", |
175 "cond_test": "checkCondition(ccFlagBits, cc)", 176 "cond_control_flag_init": "flags[IsCondControl] = true"}) |
177 exec_output += SeqOpExecute.subst(iop) 178 header_output += SeqOpDeclare.subst(iop) 179 decoder_output += SeqOpConstructor.subst(iop) 180 iop = InstObjParams("br", "MicroBranch", "SeqOpBase", 181 {"code": "nuIP = target;", 182 "else_code": "nuIP = nuIP;", |
183 "cond_test": "true", 184 "cond_control_flag_init": ""}) |
185 exec_output += SeqOpExecute.subst(iop) 186 header_output += SeqOpDeclare.subst(iop) 187 decoder_output += SeqOpConstructor.subst(iop) 188 microopClasses["br"] = Br 189 190 iop = InstObjParams("eret", "EretFlags", "SeqOpBase", 191 {"code": "", "else_code": "", |
192 "cond_test": "checkCondition(ccFlagBits, cc)", 193 "cond_control_flag_init": ""}) |
194 exec_output += SeqOpExecute.subst(iop) 195 header_output += SeqOpDeclare.subst(iop) 196 decoder_output += SeqOpConstructor.subst(iop) 197 iop = InstObjParams("eret", "Eret", "SeqOpBase", 198 {"code": "", "else_code": "", |
199 "cond_test": "true", 200 "cond_control_flag_init": ""}) |
201 exec_output += SeqOpExecute.subst(iop) 202 header_output += SeqOpDeclare.subst(iop) 203 decoder_output += SeqOpConstructor.subst(iop) 204 microopClasses["eret"] = Eret 205}}; |