ldstop.isa (8442:b1f3dfae06f1) ldstop.isa (8588:ef28ed90449d)
1// Copyright (c) 2007-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

--- 396 unchanged lines hidden (view full) ---

405 defineMicroLoadOp('Ld', 'Data = merge(Data, Mem, dataSize);',
406 'Data = Mem & mask(dataSize * 8);')
407 defineMicroLoadOp('Ldst', 'Data = merge(Data, Mem, dataSize);',
408 'Data = Mem & mask(dataSize * 8);',
409 '(StoreCheck << FlagShift)')
410 defineMicroLoadOp('Ldstl', 'Data = merge(Data, Mem, dataSize);',
411 'Data = Mem & mask(dataSize * 8);',
412 '(StoreCheck << FlagShift) | Request::LOCKED')
1// Copyright (c) 2007-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

--- 396 unchanged lines hidden (view full) ---

405 defineMicroLoadOp('Ld', 'Data = merge(Data, Mem, dataSize);',
406 'Data = Mem & mask(dataSize * 8);')
407 defineMicroLoadOp('Ldst', 'Data = merge(Data, Mem, dataSize);',
408 'Data = Mem & mask(dataSize * 8);',
409 '(StoreCheck << FlagShift)')
410 defineMicroLoadOp('Ldstl', 'Data = merge(Data, Mem, dataSize);',
411 'Data = Mem & mask(dataSize * 8);',
412 '(StoreCheck << FlagShift) | Request::LOCKED')
413 defineMicroLoadOp('Ldfp', 'FpData.uqw = Mem;', big = False)
413 defineMicroLoadOp('Ldfp', 'FpData_uqw = Mem;', big = False)
414
415 def defineMicroStoreOp(mnemonic, code, completeCode="", mem_flags="0"):
416 global header_output
417 global decoder_output
418 global exec_output
419 global microopClasses
420 Name = mnemonic
421 name = mnemonic.lower()

--- 20 unchanged lines hidden (view full) ---

442 self.className = Name
443 self.mnemonic = name
444
445 microopClasses[name] = StoreOp
446
447 defineMicroStoreOp('St', 'Mem = pick(Data, 2, dataSize);')
448 defineMicroStoreOp('Stul', 'Mem = pick(Data, 2, dataSize);',
449 mem_flags="Request::LOCKED")
414
415 def defineMicroStoreOp(mnemonic, code, completeCode="", mem_flags="0"):
416 global header_output
417 global decoder_output
418 global exec_output
419 global microopClasses
420 Name = mnemonic
421 name = mnemonic.lower()

--- 20 unchanged lines hidden (view full) ---

442 self.className = Name
443 self.mnemonic = name
444
445 microopClasses[name] = StoreOp
446
447 defineMicroStoreOp('St', 'Mem = pick(Data, 2, dataSize);')
448 defineMicroStoreOp('Stul', 'Mem = pick(Data, 2, dataSize);',
449 mem_flags="Request::LOCKED")
450 defineMicroStoreOp('Stfp', 'Mem = FpData.uqw;')
450 defineMicroStoreOp('Stfp', 'Mem = FpData_uqw;')
451 defineMicroStoreOp('Cda', 'Mem = 0;', mem_flags="Request::NO_ACCESS")
452
453 iop = InstObjParams("lea", "Lea", 'X86ISA::LdStOp',
454 {"code": "Data = merge(Data, EA, dataSize);",
455 "ea_code": '''
456 EA = bits(scale * Index + Base + disp, addressSize * 8 - 1, 0);
457 '''})
458 header_output += MicroLeaDeclare.subst(iop)

--- 46 unchanged lines hidden ---
451 defineMicroStoreOp('Cda', 'Mem = 0;', mem_flags="Request::NO_ACCESS")
452
453 iop = InstObjParams("lea", "Lea", 'X86ISA::LdStOp',
454 {"code": "Data = merge(Data, EA, dataSize);",
455 "ea_code": '''
456 EA = bits(scale * Index + Base + disp, addressSize * 8 - 1, 0);
457 '''})
458 header_output += MicroLeaDeclare.subst(iop)

--- 46 unchanged lines hidden ---