ldstop.isa (5920:5a9c976270d6) ldstop.isa (5965:71f8d7c12619)
1// Copyright (c) 2008 The Regents of The University of Michigan
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are
6// met: redistributions of source code must retain the above copyright
7// notice, this list of conditions and the following disclaimer;
8// redistributions in binary form must reproduce the above copyright

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

370 self.segment = segment
371 self.dataSize = dataSize
372 self.addressSize = addressSize
373 self.memFlags = baseFlags
374 if atCPL0:
375 self.memFlags += " | (CPL0FlagBit << FlagShift)"
376 if prefetch:
377 self.memFlags += " | Request::PF_EXCLUSIVE"
1// Copyright (c) 2008 The Regents of The University of Michigan
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions are
6// met: redistributions of source code must retain the above copyright
7// notice, this list of conditions and the following disclaimer;
8// redistributions in binary form must reproduce the above copyright

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

370 self.segment = segment
371 self.dataSize = dataSize
372 self.addressSize = addressSize
373 self.memFlags = baseFlags
374 if atCPL0:
375 self.memFlags += " | (CPL0FlagBit << FlagShift)"
376 if prefetch:
377 self.memFlags += " | Request::PF_EXCLUSIVE"
378 self.memFlags += " | (machInst.legacy.addr ? " + \
379 "(AddrSizeFlagBit << FlagShift) : 0)"
378
379 def getAllocator(self, *microFlags):
380 allocator = '''new %(class_name)s(machInst, macrocodeBlock
381 %(flags)s, %(scale)s, %(index)s, %(base)s,
382 %(disp)s, %(segment)s, %(data)s,
383 %(dataSize)s, %(addressSize)s, %(memFlags)s)''' % {
384 "class_name" : self.className,
385 "flags" : self.microFlagsText(microFlags),

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

434 microopClasses[name] = LoadOp
435
436 defineMicroLoadOp('Ld', 'Data = merge(Data, Mem, dataSize);')
437 defineMicroLoadOp('Ldst', 'Data = merge(Data, Mem, dataSize);',
438 'X86ISA::StoreCheck')
439 defineMicroLoadOp('Ldfp', 'FpData.uqw = Mem;')
440
441 def defineMicroStoreOp(mnemonic, code, \
380
381 def getAllocator(self, *microFlags):
382 allocator = '''new %(class_name)s(machInst, macrocodeBlock
383 %(flags)s, %(scale)s, %(index)s, %(base)s,
384 %(disp)s, %(segment)s, %(data)s,
385 %(dataSize)s, %(addressSize)s, %(memFlags)s)''' % {
386 "class_name" : self.className,
387 "flags" : self.microFlagsText(microFlags),

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

436 microopClasses[name] = LoadOp
437
438 defineMicroLoadOp('Ld', 'Data = merge(Data, Mem, dataSize);')
439 defineMicroLoadOp('Ldst', 'Data = merge(Data, Mem, dataSize);',
440 'X86ISA::StoreCheck')
441 defineMicroLoadOp('Ldfp', 'FpData.uqw = Mem;')
442
443 def defineMicroStoreOp(mnemonic, code, \
442 postCode="", completeCode="", mem_flags=0):
444 postCode="", completeCode="", mem_flags="0"):
443 global header_output
444 global decoder_output
445 global exec_output
446 global microopClasses
447 Name = mnemonic
448 name = mnemonic.lower()
449
450 # Build up the all register version of this micro op

--- 78 unchanged lines hidden ---
445 global header_output
446 global decoder_output
447 global exec_output
448 global microopClasses
449 Name = mnemonic
450 name = mnemonic.lower()
451
452 # Build up the all register version of this micro op

--- 78 unchanged lines hidden ---