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