Changeset 229331 in webkit for trunk/Source/JavaScriptCore/offlineasm/arm.rb
- Timestamp:
- Mar 6, 2018, 11:14:10 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/offlineasm/arm.rb
r228402 r229331 221 221 # 222 222 223 def armOpcodeReversedOperands(opcode) 224 m = /\Ab[ipb]/.match(opcode) 225 226 operation = case m.post_match 227 when "eq" then "eq" 228 when "neq" then "neq" 229 when "a" then "b" 230 when "aeq" then "beq" 231 when "b" then "a" 232 when "beq" then "aeq" 233 when "gt" then "lt" 234 when "gteq" then "lteq" 235 when "lt" then "gt" 236 when "lteq" then "gteq" 237 else 238 raise "unknown operation #{m.post_match}" 239 end 240 241 "#{m[0]}#{operation}" 242 end 243 244 def armLowerStackPointerInComparison(list) 245 newList = [] 246 list.each { 247 | node | 248 if node.is_a? Instruction 249 case node.opcode 250 when "bieq", "bpeq", "bbeq", 251 "bineq", "bpneq", "bbneq", 252 "bia", "bpa", "bba", 253 "biaeq", "bpaeq", "bbaeq", 254 "bib", "bpb", "bbb", 255 "bibeq", "bpbeq", "bbbeq", 256 "bigt", "bpgt", "bbgt", 257 "bigteq", "bpgteq", "bbgteq", 258 "bilt", "bplt", "bblt", 259 "bilteq", "bplteq", "bblteq" 260 if node.operands[1].is_a?(RegisterID) && node.operands[1].name == "sp" 261 newList << Instruction.new(codeOrigin, armOpcodeReversedOperands(node.opcode), [node.operands[1], node.operands[0]] + node.operands[2..-1]) 262 else 263 newList << node 264 end 265 else 266 newList << node 267 end 268 else 269 newList << node 270 end 271 } 272 newList 273 end 274 223 275 class Sequence 224 276 def getModifiedListARM … … 259 311 result = assignRegistersToTemporaries(result, :gpr, ARM_EXTRA_GPRS) 260 312 result = assignRegistersToTemporaries(result, :fpr, ARM_EXTRA_FPRS) 313 result = armLowerStackPointerInComparison(result) 261 314 return result 262 315 end
Note:
See TracChangeset
for help on using the changeset viewer.