ldstop.isa (12234:78ece221f9f5) | ldstop.isa (12236:126ac9da6050) |
---|---|
1// Copyright (c) 2007-2008 The Hewlett-Packard Development Company 2// Copyright (c) 2015 Advanced Micro Devices, Inc. 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 --- 67 unchanged lines hidden (view full) --- 76 %(class_name)s(ExtMachInst _machInst, 77 const char * instMnem, uint64_t setFlags, 78 uint8_t _scale, InstRegIndex _index, InstRegIndex _base, 79 uint64_t _disp, InstRegIndex _segment, 80 InstRegIndex _data, 81 uint8_t _dataSize, uint8_t _addressSize, 82 Request::FlagsType _memFlags); 83 | 1// Copyright (c) 2007-2008 The Hewlett-Packard Development Company 2// Copyright (c) 2015 Advanced Micro Devices, Inc. 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 --- 67 unchanged lines hidden (view full) --- 76 %(class_name)s(ExtMachInst _machInst, 77 const char * instMnem, uint64_t setFlags, 78 uint8_t _scale, InstRegIndex _index, InstRegIndex _base, 79 uint64_t _disp, InstRegIndex _segment, 80 InstRegIndex _data, 81 uint8_t _dataSize, uint8_t _addressSize, 82 Request::FlagsType _memFlags); 83 |
84 %(BasicExecDeclare)s | 84 Fault execute(ExecContext *, Trace::InstRecord *) const; |
85 }; 86}}; 87 88// Load templates 89 90def template MicroLoadExecute {{ 91 Fault %(class_name)s::execute(ExecContext *xc, 92 Trace::InstRecord *traceData) const --- 125 unchanged lines hidden (view full) --- 218 %(op_decl)s; 219 %(op_rd)s; 220 %(complete_code)s; 221 %(op_wb)s; 222 return NoFault; 223 } 224}}; 225 | 85 }; 86}}; 87 88// Load templates 89 90def template MicroLoadExecute {{ 91 Fault %(class_name)s::execute(ExecContext *xc, 92 Trace::InstRecord *traceData) const --- 125 unchanged lines hidden (view full) --- 218 %(op_decl)s; 219 %(op_rd)s; 220 %(complete_code)s; 221 %(op_wb)s; 222 return NoFault; 223 } 224}}; 225 |
226// Common templates 227 228//This delcares the initiateAcc function in memory operations 229def template InitiateAccDeclare {{ 230 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 231}}; 232 233//This declares the completeAcc function in memory operations 234def template CompleteAccDeclare {{ 235 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; 236}}; 237 | |
238def template MicroLdStOpDeclare {{ 239 class %(class_name)s : public %(base_class)s 240 { 241 public: 242 %(class_name)s(ExtMachInst _machInst, 243 const char * instMnem, uint64_t setFlags, 244 uint8_t _scale, InstRegIndex _index, InstRegIndex _base, 245 uint64_t _disp, InstRegIndex _segment, 246 InstRegIndex _data, 247 uint8_t _dataSize, uint8_t _addressSize, 248 Request::FlagsType _memFlags); 249 | 226def template MicroLdStOpDeclare {{ 227 class %(class_name)s : public %(base_class)s 228 { 229 public: 230 %(class_name)s(ExtMachInst _machInst, 231 const char * instMnem, uint64_t setFlags, 232 uint8_t _scale, InstRegIndex _index, InstRegIndex _base, 233 uint64_t _disp, InstRegIndex _segment, 234 InstRegIndex _data, 235 uint8_t _dataSize, uint8_t _addressSize, 236 Request::FlagsType _memFlags); 237 |
250 %(BasicExecDeclare)s 251 252 %(InitiateAccDeclare)s 253 254 %(CompleteAccDeclare)s | 238 Fault execute(ExecContext *, Trace::InstRecord *) const; 239 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 240 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
255 }; 256}}; 257 258// LdStSplitOp is a load or store that uses a pair of regs as the 259// source or destination. Used for cmpxchg{8,16}b. 260def template MicroLdStSplitOpDeclare {{ 261 class %(class_name)s : public %(base_class)s 262 { 263 public: 264 %(class_name)s(ExtMachInst _machInst, 265 const char * instMnem, uint64_t setFlags, 266 uint8_t _scale, InstRegIndex _index, InstRegIndex _base, 267 uint64_t _disp, InstRegIndex _segment, 268 InstRegIndex _dataLow, InstRegIndex _dataHi, 269 uint8_t _dataSize, uint8_t _addressSize, 270 Request::FlagsType _memFlags); 271 | 241 }; 242}}; 243 244// LdStSplitOp is a load or store that uses a pair of regs as the 245// source or destination. Used for cmpxchg{8,16}b. 246def template MicroLdStSplitOpDeclare {{ 247 class %(class_name)s : public %(base_class)s 248 { 249 public: 250 %(class_name)s(ExtMachInst _machInst, 251 const char * instMnem, uint64_t setFlags, 252 uint8_t _scale, InstRegIndex _index, InstRegIndex _base, 253 uint64_t _disp, InstRegIndex _segment, 254 InstRegIndex _dataLow, InstRegIndex _dataHi, 255 uint8_t _dataSize, uint8_t _addressSize, 256 Request::FlagsType _memFlags); 257 |
272 %(BasicExecDeclare)s 273 274 %(InitiateAccDeclare)s 275 276 %(CompleteAccDeclare)s | 258 Fault execute(ExecContext *, Trace::InstRecord *) const; 259 Fault initiateAcc(ExecContext *, Trace::InstRecord *) const; 260 Fault completeAcc(PacketPtr, ExecContext *, Trace::InstRecord *) const; |
277 }; 278}}; 279 280def template MicroLdStOpConstructor {{ 281 %(class_name)s::%(class_name)s( 282 ExtMachInst machInst, const char * instMnem, uint64_t setFlags, 283 uint8_t _scale, InstRegIndex _index, InstRegIndex _base, 284 uint64_t _disp, InstRegIndex _segment, --- 485 unchanged lines hidden --- | 261 }; 262}}; 263 264def template MicroLdStOpConstructor {{ 265 %(class_name)s::%(class_name)s( 266 ExtMachInst machInst, const char * instMnem, uint64_t setFlags, 267 uint8_t _scale, InstRegIndex _index, InstRegIndex _base, 268 uint64_t _disp, InstRegIndex _segment, --- 485 unchanged lines hidden --- |