1// Copyright (c) 2007 The Hewlett-Packard Development Company 2// All rights reserved. 3// 4// Redistribution and use of this software in source and binary forms, 5// with or without modification, are permitted provided that the 6// following conditions are met: 7// 8// The software must be used only for Non-Commercial Use which means any --- 408 unchanged lines hidden (view full) --- 417 addr, disp, dataSize, addressSize) 418 self.className = Name 419 self.mnemonic = name 420 421 microopClasses[name] = StoreOp 422 423 defineMicroStoreOp('St', 'Mem = Data;') 424 defineMicroStoreOp('Stfp', 'Mem = FpData.uqw;') |
425 defineMicroStoreOp('Stupd', ''' 426 Mem = Data; 427 Base = merge(Base, EA - SegBase, addressSize); 428 '''); |
429 |
430 |
431 iop = InstObjParams("lea", "Lea", 'X86ISA::LdStOp', 432 {"code": "Data = merge(Data, EA, dataSize);", 433 "ea_code": calculateEA, 434 "mem_flags": 0}) 435 header_output += MicroLeaDeclare.subst(iop) 436 decoder_output += MicroLdStOpConstructor.subst(iop) 437 exec_output += MicroLeaExecute.subst(iop) 438 439 class LeaOp(LdStOp): 440 def __init__(self, data, segment, addr, disp = 0, 441 dataSize="env.dataSize", addressSize="env.addressSize"): 442 super(LeaOp, self).__init__(data, segment, 443 addr, disp, dataSize, addressSize) 444 self.className = "Lea" 445 self.mnemonic = "lea" 446 447 microopClasses["lea"] = LeaOp 448}}; 449 |