Ignore:
Timestamp:
Apr 9, 2013, 1:42:19 PM (12 years ago)
Author:
[email protected]
Message:

LLInt conditional branch compilation fault on MIPS.
https://bugs.webkit.org/show_bug.cgi?id=114264

Patch by Balazs Kilvady <[email protected]> on 2013-04-09
Reviewed by Filip Pizlo.

Fix conditional branch compilation in LLInt offlineasm.

  • offlineasm/mips.rb:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/offlineasm/mips.rb

    r141641 r148045  
    291291                newList << Instruction.new(node.codeOrigin, comp, [tmp, node.operands[1], node.operands[0]], annotation)
    292292                newList << Instruction.new(node.codeOrigin, "bz", [tmp, MIPS_ZERO_REG, node.operands[2]])
    293             when "btiz", "btpz", "btbz"
    294                 lowerMIPSCondBranch(newList, "bz", node)
    295             when "btinz", "btpnz", "btbnz"
    296                 lowerMIPSCondBranch(newList, "bnz", node)
    297             when "btio", "btpo", "btbo"
    298                 newList << node
    299             when "btis", "btps", "btbs"
    300                 lowerMIPSCondBranch(newList, "bs", node)
     293            when /^bt(i|p|b)/
     294                lowerMIPSCondBranch(newList, "b" + $~.post_match + $1, node)
    301295            else
    302296                newList << node
     
    443437                                           node.opcode,
    444438                                           riscAsRegisters(newList, [], node.operands, "b"))
    445             when "bz", "bnz", "bs", "bo"
     439            when /^(bz|bnz|bs|bo)/
     440                tl = $~.post_match == "" ? "i" : $~.post_match
    446441                newList << Instruction.new(node.codeOrigin,
    447442                                           node.opcode,
    448                                            riscAsRegisters(newList, [], node.operands, "i"))
     443                                           riscAsRegisters(newList, [], node.operands, tl))
    449444            else
    450445                newList << node
     
    862857            $asm.puts "mfc1 #{operands[1].mipsOperand}, #{operands[0].mipsSingleLo}"
    863858            $asm.puts "mfc1 #{operands[2].mipsOperand}, #{operands[0].mipsSingleHi}"
    864         when "bo"
     859        when /^bo/
    865860            $asm.puts "bgt #{operands[0].mipsOperand}, #{operands[1].mipsOperand}, #{operands[2].asmLabel}"
    866         when "bs"
     861        when /^bs/
    867862            $asm.puts "blt #{operands[0].mipsOperand}, #{operands[1].mipsOperand}, #{operands[2].asmLabel}"
    868         when "bz"
     863        when /^bz/
    869864            $asm.puts "beq #{operands[0].mipsOperand}, #{operands[1].mipsOperand}, #{operands[2].asmLabel}"
    870         when "bnz"
     865        when /^bnz/
    871866            $asm.puts "bne #{operands[0].mipsOperand}, #{operands[1].mipsOperand}, #{operands[2].asmLabel}"
    872867        when "leai", "leap"
Note: See TracChangeset for help on using the changeset viewer.