Changeset 240241 in webkit for trunk/Source/JavaScriptCore/offlineasm/x86.rb
- Timestamp:
- Jan 21, 2019, 12:50:59 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/offlineasm/x86.rb
r237627 r240241 762 762 raise unless operands[2].is_a? RegisterID 763 763 if operands[0].value == 0 764 unless operands[1] == operands[2]764 if operands[1] != operands[2] 765 765 $asm.puts "mov#{x86Suffix(kind)} #{orderOperands(operands[1].x86Operand(kind), operands[2].x86Operand(kind))}" 766 766 end … … 788 788 789 789 def handleX86Sub(kind) 790 if operands.size == 3 and operands[1] == operands[2] 791 $asm.puts "neg#{x86Suffix(kind)} #{operands[2].x86Operand(kind)}" 792 $asm.puts "add#{x86Suffix(kind)} #{orderOperands(operands[0].x86Operand(kind), operands[2].x86Operand(kind))}" 793 else 794 handleX86Op("sub#{x86Suffix(kind)}", kind) 795 end 790 if operands.size == 3 791 if Immediate.new(nil, 0) == operands[1] 792 raise unless operands[0].is_a? RegisterID 793 raise unless operands[2].is_a? RegisterID 794 if operands[0] != operands[2] 795 $asm.puts "mov#{x86Suffix(kind)} #{orderOperands(operands[0].x86Operand(kind), operands[2].x86Operand(kind))}" 796 end 797 return 798 end 799 if operands[1] == operands[2] 800 $asm.puts "neg#{x86Suffix(kind)} #{operands[2].x86Operand(kind)}" 801 if Immediate.new(nil, 0) != operands[0] 802 $asm.puts "add#{x86Suffix(kind)} #{orderOperands(operands[0].x86Operand(kind), operands[2].x86Operand(kind))}" 803 end 804 return 805 end 806 end 807 808 if operands.size == 2 809 if Immediate.new(nil, 0) == operands[0] 810 return 811 end 812 end 813 814 handleX86Op("sub#{x86Suffix(kind)}", kind) 796 815 end 797 816
Note:
See TracChangeset
for help on using the changeset viewer.