Title: [267395] trunk/Source/_javascript_Core
- Revision
- 267395
- Author
- [email protected]
- Date
- 2020-09-21 21:56:42 -0700 (Mon, 21 Sep 2020)
Log Message
Fix MIPS leai,leap when offset is nonzero
https://bugs.webkit.org/show_bug.cgi?id=216772
Reviewed by Mark Lam.
Fix required by change from webkit#216685
* offlineasm/mips.rb:
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (267394 => 267395)
--- trunk/Source/_javascript_Core/ChangeLog 2020-09-22 04:44:47 UTC (rev 267394)
+++ trunk/Source/_javascript_Core/ChangeLog 2020-09-22 04:56:42 UTC (rev 267395)
@@ -1,3 +1,13 @@
+2020-09-21 Paulo Matos <[email protected]>
+
+ Fix MIPS leai,leap when offset is nonzero
+ https://bugs.webkit.org/show_bug.cgi?id=216772
+
+ Reviewed by Mark Lam.
+
+ Fix required by change from webkit#216685
+ * offlineasm/mips.rb:
+
2020-09-21 Yusuke Suzuki <[email protected]>
[JSC] BigInt should work with Map / Set
Modified: trunk/Source/_javascript_Core/offlineasm/mips.rb (267394 => 267395)
--- trunk/Source/_javascript_Core/offlineasm/mips.rb 2020-09-22 04:44:47 UTC (rev 267394)
+++ trunk/Source/_javascript_Core/offlineasm/mips.rb 2020-09-22 04:56:42 UTC (rev 267395)
@@ -1050,8 +1050,13 @@
when "leai", "leap"
if operands[0].is_a? LabelReference
labelRef = operands[0]
- raise unless labelRef.offset == 0
- $asm.puts "lw #{operands[1].mipsOperand}, %got(#{labelRef.asmLabel})($gp)"
+ if labelRef.offset > 0
+ $asm.puts "li #{operands[1].mipsOperand}, #{labelRef.asmLabel}"
+ $asm.puts "addu #{operands[1].mipsOperand}, #{operands[1].mipsOperand}, #{labelRef.offset}"
+ $asm.puts "lw #{operands[1].mipsOperand}, %got(#{operands[1].mipsOperand})($gp)"
+ else
+ $asm.puts "lw #{operands[1].mipsOperand}, %got(#{labelRef.asmLabel})($gp)"
+ end
else
operands[0].mipsEmitLea(operands[1])
end
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes