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

Reply via email to