Changeset 159381 in webkit for trunk/Source/JavaScriptCore/offlineasm/sh4.rb
- Timestamp:
- Nov 16, 2013, 2:28:27 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/offlineasm/sh4.rb
r159288 r159381 459 459 newList << Instruction.new(codeOrigin, "move", [node.operands[0], tmp]) 460 460 newList << Instruction.new(codeOrigin, node.opcode, [tmp]) 461 else 462 newList << node 463 end 464 else 465 newList << node 466 end 467 else 468 newList << node 469 end 470 } 471 newList 472 end 473 474 475 # 476 # Lowering of misplaced special registers for SH4. For example: 477 # 478 # storep pr, foo 479 # 480 # becomes: 481 # 482 # stspr tmp 483 # storep tmp, foo 484 # 485 486 def sh4LowerMisplacedSpecialRegisters(list) 487 newList = [] 488 list.each { 489 | node | 490 if node.is_a? Instruction 491 case node.opcode 492 when "loadi", "loadis", "loadp" 493 if node.operands[1].is_a? RegisterID and node.operands[1].sh4Operand == "pr" 494 tmp = Tmp.new(codeOrigin, :gpr) 495 newList << Instruction.new(codeOrigin, node.opcode, [node.operands[0], tmp]) 496 newList << Instruction.new(codeOrigin, "ldspr", [tmp]) 497 else 498 newList << node 499 end 500 when "storei", "storep" 501 if node.operands[0].is_a? RegisterID and node.operands[0].sh4Operand == "pr" 502 tmp = Tmp.new(codeOrigin, :gpr) 503 newList << Instruction.new(codeOrigin, "stspr", [tmp]) 504 newList << Instruction.new(codeOrigin, node.opcode, [tmp, node.operands[1]]) 461 505 else 462 506 newList << node … … 681 725 result = sh4LowerMisplacedLabels(result) 682 726 result = riscLowerMisplacedAddresses(result) 727 result = sh4LowerMisplacedSpecialRegisters(result) 683 728 684 729 result = assignRegistersToTemporaries(result, :gpr, SH4_TMP_GPRS)
Note:
See TracChangeset
for help on using the changeset viewer.