ldr.isa (8140:7449084b1612) | ldr.isa (8203:78b9f056d58a) |
---|---|
1// -*- mode:c++ -*- 2 3// Copyright (c) 2010 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 44 unchanged lines hidden (view full) --- 53 self.name = mnem 54 self.post = post 55 self.add = add 56 self.writeback = writeback 57 self.size = size 58 self.sign = sign 59 self.user = user 60 self.flavor = flavor | 1// -*- mode:c++ -*- 2 3// Copyright (c) 2010 ARM Limited 4// All rights reserved 5// 6// The license below extends only to copyright in the software and shall 7// not be construed as granting a license to any other intellectual 8// property including but not limited to intellectual property relating --- 44 unchanged lines hidden (view full) --- 53 self.name = mnem 54 self.post = post 55 self.add = add 56 self.writeback = writeback 57 self.size = size 58 self.sign = sign 59 self.user = user 60 self.flavor = flavor |
61 self.rasPop = False |
|
61 62 if self.add: 63 self.op = " +" 64 else: 65 self.op = " -" 66 67 self.memFlags = ["ArmISA::TLB::MustBeOne"] 68 self.codeBlobs = {"postacc_code" : ""} 69 70 def emitHelper(self, base = 'Memory', wbDecl = None, instFlags = [], pcDecl = None): 71 72 global header_output, decoder_output, exec_output 73 74 codeBlobs = self.codeBlobs 75 codeBlobs["predicate_test"] = pickPredicate(codeBlobs) 76 (newHeader, 77 newDecoder, 78 newExec) = self.fillTemplates(self.name, self.Name, codeBlobs, 79 self.memFlags, instFlags, base, | 62 63 if self.add: 64 self.op = " +" 65 else: 66 self.op = " -" 67 68 self.memFlags = ["ArmISA::TLB::MustBeOne"] 69 self.codeBlobs = {"postacc_code" : ""} 70 71 def emitHelper(self, base = 'Memory', wbDecl = None, instFlags = [], pcDecl = None): 72 73 global header_output, decoder_output, exec_output 74 75 codeBlobs = self.codeBlobs 76 codeBlobs["predicate_test"] = pickPredicate(codeBlobs) 77 (newHeader, 78 newDecoder, 79 newExec) = self.fillTemplates(self.name, self.Name, codeBlobs, 80 self.memFlags, instFlags, base, |
80 wbDecl, pcDecl) | 81 wbDecl, pcDecl, self.rasPop) |
81 82 header_output += newHeader 83 decoder_output += newDecoder 84 exec_output += newExec 85 86 class RfeInst(LoadInst): 87 decConstBase = 'Rfe' 88 --- 34 unchanged lines hidden (view full) --- 123 super(LoadImmInst, self).__init__(*args, **kargs) 124 self.offset = self.op + " imm" 125 126 if self.add: 127 self.wbDecl = "MicroAddiUop(machInst, base, base, imm);" 128 else: 129 self.wbDecl = "MicroSubiUop(machInst, base, base, imm);" 130 | 82 83 header_output += newHeader 84 decoder_output += newDecoder 85 exec_output += newExec 86 87 class RfeInst(LoadInst): 88 decConstBase = 'Rfe' 89 --- 34 unchanged lines hidden (view full) --- 124 super(LoadImmInst, self).__init__(*args, **kargs) 125 self.offset = self.op + " imm" 126 127 if self.add: 128 self.wbDecl = "MicroAddiUop(machInst, base, base, imm);" 129 else: 130 self.wbDecl = "MicroSubiUop(machInst, base, base, imm);" 131 |
132 if self.add and self.post and self.writeback and not self.sign and \ 133 not self.user and self.size == 4: 134 self.rasPop = True 135 |
|
131 class LoadRegInst(LoadInst): 132 def __init__(self, *args, **kargs): 133 super(LoadRegInst, self).__init__(*args, **kargs) 134 self.offset = self.op + " shift_rm_imm(Index, shiftAmt," + \ 135 " shiftType, CondCodes<29:>)" 136 if self.add: 137 self.wbDecl = ''' 138 MicroAddUop(machInst, base, base, wbIndexReg, shiftAmt, shiftType); --- 223 unchanged lines hidden --- | 136 class LoadRegInst(LoadInst): 137 def __init__(self, *args, **kargs): 138 super(LoadRegInst, self).__init__(*args, **kargs) 139 self.offset = self.op + " shift_rm_imm(Index, shiftAmt," + \ 140 " shiftType, CondCodes<29:>)" 141 if self.add: 142 self.wbDecl = ''' 143 MicroAddUop(machInst, base, base, wbIndexReg, shiftAmt, shiftType); --- 223 unchanged lines hidden --- |