Title: [280650] trunk/Source/_javascript_Core
Revision
280650
Author
commit-qu...@webkit.org
Date
2021-08-04 12:24:47 -0700 (Wed, 04 Aug 2021)

Log Message

Unreviewed, reverting r280609.
https://bugs.webkit.org/show_bug.cgi?id=228791

Broke JSC tests on iOS.

Reverted changeset:

"[ARM64] Use link register instead of pinning a register for
materializing big load constants"
https://bugs.webkit.org/show_bug.cgi?id=228710
https://commits.webkit.org/r280609

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (280649 => 280650)


--- trunk/Source/_javascript_Core/ChangeLog	2021-08-04 18:59:03 UTC (rev 280649)
+++ trunk/Source/_javascript_Core/ChangeLog	2021-08-04 19:24:47 UTC (rev 280650)
@@ -1,3 +1,17 @@
+2021-08-04  Commit Queue  <commit-qu...@webkit.org>
+
+        Unreviewed, reverting r280609.
+        https://bugs.webkit.org/show_bug.cgi?id=228791
+
+        Broke JSC tests on iOS.
+
+        Reverted changeset:
+
+        "[ARM64] Use link register instead of pinning a register for
+        materializing big load constants"
+        https://bugs.webkit.org/show_bug.cgi?id=228710
+        https://commits.webkit.org/r280609
+
 2021-08-03  Yijia Huang  <yijia_hu...@apple.com>
 
         [ARM64] Use link register instead of pinning a register for materializing big load constants

Modified: trunk/Source/_javascript_Core/b3/B3Common.cpp (280649 => 280650)


--- trunk/Source/_javascript_Core/b3/B3Common.cpp	2021-08-04 18:59:03 UTC (rev 280649)
+++ trunk/Source/_javascript_Core/b3/B3Common.cpp	2021-08-04 19:24:47 UTC (rev 280650)
@@ -67,10 +67,10 @@
     return Options::verboseValidationFailure();
 }
 
-std::optional<GPRReg> linkRegister()
+std::optional<GPRReg> pinnedExtendedOffsetAddrRegister()
 {
 #if CPU(ARM64)
-    return MacroAssembler::linkRegister;
+    return MacroAssembler::dataTempRegister;
 #elif CPU(X86_64)
     return std::nullopt;
 #else

Modified: trunk/Source/_javascript_Core/b3/B3Common.h (280649 => 280650)


--- trunk/Source/_javascript_Core/b3/B3Common.h	2021-08-04 18:59:03 UTC (rev 280649)
+++ trunk/Source/_javascript_Core/b3/B3Common.h	2021-08-04 19:24:47 UTC (rev 280650)
@@ -183,7 +183,7 @@
     return Options::defaultB3OptLevel();
 }
 
-std::optional<GPRReg> linkRegister();
+std::optional<GPRReg> pinnedExtendedOffsetAddrRegister();
 
 } } // namespace JSC::B3
 

Modified: trunk/Source/_javascript_Core/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp (280649 => 280650)


--- trunk/Source/_javascript_Core/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp	2021-08-04 18:59:03 UTC (rev 280649)
+++ trunk/Source/_javascript_Core/b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp	2021-08-04 19:24:47 UTC (rev 280650)
@@ -144,11 +144,11 @@
         return CCallHelpers::Address(GPRInfo::callFrameRegister, offsetFromFP);
     }
 
-    ASSERT(linkRegister());
+    ASSERT(pinnedExtendedOffsetAddrRegister());
     auto addr = Arg::addr(Air::Tmp(GPRInfo::callFrameRegister), offsetFromFP);
     if (addr.isValidForm(Width64))
         return CCallHelpers::Address(GPRInfo::callFrameRegister, offsetFromFP);
-    GPRReg reg = *linkRegister();
+    GPRReg reg = *pinnedExtendedOffsetAddrRegister();
     jit.move(CCallHelpers::TrustedImmPtr(offsetFromFP), reg);
     jit.add64(GPRInfo::callFrameRegister, reg);
     return CCallHelpers::Address(reg);

Modified: trunk/Source/_javascript_Core/b3/air/AirCode.cpp (280649 => 280650)


--- trunk/Source/_javascript_Core/b3/air/AirCode.cpp	2021-08-04 18:59:03 UTC (rev 280649)
+++ trunk/Source/_javascript_Core/b3/air/AirCode.cpp	2021-08-04 19:24:47 UTC (rev 280650)
@@ -90,6 +90,9 @@
             setRegsInPriorityOrder(bank, result);
         });
 
+    if (auto reg = pinnedExtendedOffsetAddrRegister())
+        pinRegister(*reg);
+
     m_pinnedRegs.set(MacroAssembler::framePointerRegister);
 }
 

Modified: trunk/Source/_javascript_Core/b3/air/AirLowerStackArgs.cpp (280649 => 280650)


--- trunk/Source/_javascript_Core/b3/air/AirLowerStackArgs.cpp	2021-08-04 18:59:03 UTC (rev 280649)
+++ trunk/Source/_javascript_Core/b3/air/AirLowerStackArgs.cpp	2021-08-04 19:24:47 UTC (rev 280650)
@@ -78,7 +78,8 @@
                     if (Arg::isValidImmForm(offset))
                         inst = Inst(inst.kind.opcode == Lea32 ? Add32 : Add64, inst.origin, Arg::imm(offset), base, inst.args[1]);
                     else {
-                        Air::Tmp tmp = Air::Tmp(*linkRegister());
+                        ASSERT(pinnedExtendedOffsetAddrRegister());
+                        Air::Tmp tmp = Air::Tmp(*pinnedExtendedOffsetAddrRegister());
                         Arg offsetArg = Arg::bigImm(offset);
                         insertionSet.insert(instIndex, Move, inst.origin, offsetArg, tmp);
                         inst = Inst(inst.kind.opcode == Lea32 ? Add32 : Add64, inst.origin, tmp, base, inst.args[1]);
@@ -127,7 +128,8 @@
                         if (result.isValidForm(width))
                             return result;
 #if CPU(ARM64)
-                        Air::Tmp tmp = Air::Tmp(*linkRegister());
+                        ASSERT(pinnedExtendedOffsetAddrRegister());
+                        Air::Tmp tmp = Air::Tmp(*pinnedExtendedOffsetAddrRegister());
 
                         Arg largeOffset = Arg::isValidImmForm(offsetFromSP) ? Arg::imm(offsetFromSP) : Arg::bigImm(offsetFromSP);
                         insertionSet.insert(instIndex, Move, inst.origin, largeOffset, tmp);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to