Changeset 246240 in webkit
- Timestamp:
- Jun 9, 2019 1:28:18 PM (5 years ago)
- Location:
- trunk/Source
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r246237 r246240 1 2019-06-09 Commit Queue <commit-queue@webkit.org> 2 3 Unreviewed, rolling out r246150, r246160, and r246166. 4 https://bugs.webkit.org/show_bug.cgi?id=198698 5 6 Regresses page loading time on iOS 13 (Requested by keith_m__ 7 on #webkit). 8 9 Reverted changesets: 10 11 "Reenable Gigacage on ARM64." 12 https://bugs.webkit.org/show_bug.cgi?id=198453 13 https://trac.webkit.org/changeset/246150 14 15 "Unrevied build fix for FTL without Gigacage." 16 https://trac.webkit.org/changeset/246160 17 18 "Fix typo in cageWithoutUntagging" 19 https://bugs.webkit.org/show_bug.cgi?id=198617 20 https://trac.webkit.org/changeset/246166 21 1 22 2019-06-09 Yusuke Suzuki <ysuzuki@apple.com> 2 23 -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
r246150 r246240 2527 2527 } 2528 2528 2529 // Bit field operations:2530 2531 // destBitOffset is the top bit of the destination where the bits should be copied to. Zero is the lowest order bit.2532 void bitFieldInsert64(RegisterID source, unsigned destBitOffset, unsigned width, RegisterID dest)2533 {2534 ASSERT(width <= 64 - destBitOffset && destBitOffset < 64);2535 m_assembler.bfi<64>(dest, source, destBitOffset, width);2536 }2537 2538 2529 // Forwards / external control flow operations: 2539 2530 // -
trunk/Source/JavaScriptCore/assembler/MacroAssemblerARM64E.h
r246150 r246240 40 40 class MacroAssemblerARM64E : public MacroAssemblerARM64 { 41 41 public: 42 static constexpr unsigned numberOfPACBits = 25;43 44 42 ALWAYS_INLINE void tagReturnAddress() 45 43 { -
trunk/Source/JavaScriptCore/assembler/testmasm.cpp
r246166 r246240 40 40 #include <wtf/Lock.h> 41 41 #include <wtf/NumberOfCores.h> 42 #include <wtf/PtrTag.h>43 42 #include <wtf/Threading.h> 44 43 #include <wtf/text/StringCommon.h> … … 108 107 dataLog("FAILED while testing " #_actual ": expected: ", _expected, ", actual: ", _actual, "\n"); \ 109 108 WTFReportAssertionFailure(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, "CHECK_EQ("#_actual ", " #_expected ")"); \ 110 CRASH(); \111 } while (false)112 113 #define CHECK_NOT_EQ(_actual, _expected) do { \114 if ((_actual) != (_expected)) \115 break; \116 crashLock.lock(); \117 dataLog("FAILED while testing " #_actual ": expected not: ", _expected, ", actual: ", _actual, "\n"); \118 WTFReportAssertionFailure(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, "CHECK_NOT_EQ("#_actual ", " #_expected ")"); \119 109 CRASH(); \ 120 110 } while (false) … … 1012 1002 1013 1003 #endif 1014 }1015 1016 static void testCagePreservesPACFailureBit()1017 {1018 auto cage = compile([] (CCallHelpers& jit) {1019 jit.emitFunctionPrologue();1020 jit.cageConditionally(Gigacage::Primitive, GPRInfo::argumentGPR0, GPRInfo::argumentGPR1, GPRInfo::argumentGPR2);1021 jit.move(GPRInfo::argumentGPR0, GPRInfo::returnValueGPR);1022 jit.emitFunctionEpilogue();1023 jit.ret();1024 });1025 1026 void* ptr = Gigacage::tryMalloc(Gigacage::Primitive, 1);1027 void* taggedPtr = tagArrayPtr(ptr, 1);1028 dataLogLn("starting test");1029 if (isARM64E()) {1030 // FIXME: This won't work if authentication failures trap but I don't know how to test for that right now.1031 CHECK_NOT_EQ(invoke<void*>(cage, taggedPtr, 2), ptr);1032 } else1033 CHECK_EQ(invoke<void*>(cage, taggedPtr, 2), ptr);1034 1035 CHECK_EQ(invoke<void*>(cage, taggedPtr, 1), ptr);1036 1037 auto cageWithoutAuthentication = compile([] (CCallHelpers& jit) {1038 jit.emitFunctionPrologue();1039 jit.cageWithoutUntagging(Gigacage::Primitive, GPRInfo::argumentGPR0);1040 jit.move(GPRInfo::argumentGPR0, GPRInfo::returnValueGPR);1041 jit.emitFunctionEpilogue();1042 jit.ret();1043 });1044 1045 if (isARM64E()) {1046 // FIXME: This won't work if authentication failures trap but I don't know how to test for that right now.1047 CHECK_NOT_EQ(invoke<void*>(cageWithoutAuthentication, untagArrayPtr(taggedPtr, 2)), ptr);1048 } else1049 CHECK_EQ(invoke<void*>(cageWithoutAuthentication, untagArrayPtr(taggedPtr, 2)), ptr);1050 1051 CHECK_EQ(untagArrayPtr(taggedPtr, 1), ptr);1052 CHECK_EQ(invoke<void*>(cageWithoutAuthentication, untagArrayPtr(taggedPtr, 1)), ptr);1053 1054 Gigacage::free(Gigacage::Primitive, ptr);1055 1004 } 1056 1005 … … 1140 1089 RUN(testMoveDoubleConditionally64()); 1141 1090 1142 RUN(testCagePreservesPACFailureBit());1143 1144 1091 if (tasks.isEmpty()) 1145 1092 usage(); -
trunk/Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
r246166 r246240 2874 2874 2875 2875 JITCompiler::Jump hasNullVector; 2876 #if CPU(ARM64E)2876 #if !GIGACAGE_ENABLED && CPU(ARM64E) 2877 2877 { 2878 2878 GPRReg scratch = m_jit.scratchRegister(); … … 2883 2883 hasNullVector = m_jit.branchTestPtr(MacroAssembler::Zero, scratch); 2884 2884 } 2885 #else // CPU(ARM64E)2885 #else // !GIGACAGE_ENABLED && CPU(ARM64E) 2886 2886 hasNullVector = m_jit.branchTestPtr( 2887 2887 MacroAssembler::Zero, … … 6761 6761 void SpeculativeJIT::cageTypedArrayStorage(GPRReg baseReg, GPRReg storageReg) 6762 6762 { 6763 #if CPU(ARM64E)6764 m_jit.untagArrayPtr(MacroAssembler::Address(baseReg, JSArrayBufferView::offsetOfLength()), storageReg);6765 #else6766 UNUSED_PARAM(baseReg);6767 UNUSED_PARAM(storageReg);6768 #endif6769 6770 6763 #if GIGACAGE_ENABLED 6771 6764 UNUSED_PARAM(baseReg); … … 6780 6773 } 6781 6774 6782 m_jit.cageWithoutUntagging(Gigacage::Primitive, storageReg); 6775 m_jit.cage(Gigacage::Primitive, storageReg); 6776 #elif CPU(ARM64E) 6777 m_jit.untagArrayPtr(MacroAssembler::Address(baseReg, JSArrayBufferView::offsetOfLength()), storageReg); 6778 #else 6779 UNUSED_PARAM(baseReg); 6780 UNUSED_PARAM(storageReg); 6783 6781 #endif 6784 6782 } … … 6844 6842 6845 6843 m_jit.loadPtr(MacroAssembler::Address(baseGPR, JSObject::butterflyOffset()), dataGPR); 6846 m_jit.cage WithoutUntagging(Gigacage::JSValue, dataGPR);6844 m_jit.cage(Gigacage::JSValue, dataGPR); 6847 6845 6848 6846 cageTypedArrayStorage(baseGPR, vectorGPR); … … 9848 9846 m_jit.branchTest32(MacroAssembler::NonZero, scratchGPR).linkTo(loop, &m_jit); 9849 9847 done.link(&m_jit); 9850 #if CPU(ARM64E)9848 #if !GIGACAGE_ENABLED && CPU(ARM64E) 9851 9849 // sizeGPR is still boxed as a number and there is no 32-bit variant of the PAC instructions. 9852 9850 m_jit.zeroExtend32ToPtr(sizeGPR, scratchGPR); -
trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
r246160 r246240 6486 6486 m_heaps.typedArrayProperties); 6487 6487 6488 #if CPU(ARM64E)6488 #if !GIGACAGE_ENABLED && CPU(ARM64E) 6489 6489 { 6490 6490 LValue sizePtr = m_out.zeroExtPtr(size); … … 14158 14158 LValue caged(Gigacage::Kind kind, LValue ptr, LValue base) 14159 14159 { 14160 #if CPU(ARM64E)14161 if (kind == Gigacage::Primitive) {14162 LValue size = m_out.load32(base, m_heaps.JSArrayBufferView_length);14163 ptr = untagArrayPtr(ptr, size);14164 }14165 #else14166 UNUSED_PARAM(kind);14167 UNUSED_PARAM(base);14168 #endif14169 14170 14160 #if GIGACAGE_ENABLED 14171 14161 UNUSED_PARAM(base); … … 14186 14176 LValue result = m_out.add(masked, basePtr); 14187 14177 14188 #if CPU(ARM64E)14189 {14190 PatchpointValue* merge = m_out.patchpoint(pointerType());14191 merge->append(result, B3::ValueRep(B3::ValueRep::SomeLateRegister));14192 merge->appendSomeRegister(ptr);14193 merge->setGenerator([=] (CCallHelpers& jit, const StackmapGenerationParams& params) {14194 jit.move(params[2].gpr(), params[0].gpr());14195 jit.bitFieldInsert64(params[1].gpr(), 0, 64 - MacroAssembler::numberOfPACBits, params[0].gpr());14196 });14197 result = merge;14198 }14199 #endif14200 14178 // Make sure that B3 doesn't try to do smart reassociation of these pointer bits. 14201 14179 // FIXME: In an ideal world, B3 would not do harmful reassociations, and if it did, it would be able … … 14210 14188 // https://bugs.webkit.org/show_bug.cgi?id=175493 14211 14189 return m_out.opaque(result); 14190 #elif CPU(ARM64E) 14191 if (kind == Gigacage::Primitive) { 14192 LValue size = m_out.load32(base, m_heaps.JSArrayBufferView_length); 14193 return untagArrayPtr(ptr, size); 14194 } 14195 14196 return ptr; 14197 #else 14198 UNUSED_PARAM(kind); 14199 UNUSED_PARAM(base); 14200 return ptr; 14212 14201 #endif 14213 return ptr;14214 14202 } 14215 14203 -
trunk/Source/JavaScriptCore/jit/AssemblyHelpers.h
r246166 r246240 1555 1555 ok.link(this); 1556 1556 } 1557 1558 void cage WithoutUntagging(Gigacage::Kind kind, GPRReg storage)1557 1558 void cage(Gigacage::Kind kind, GPRReg storage) 1559 1559 { 1560 1560 #if GIGACAGE_ENABLED 1561 1561 if (!Gigacage::isEnabled(kind)) 1562 1562 return; 1563 1564 #if CPU(ARM64E) 1565 RegisterID tempReg = InvalidGPRReg; 1566 if (kind == Gigacage::Primitive) { 1567 tempReg = getCachedMemoryTempRegisterIDAndInvalidate(); 1568 move(storage, tempReg); 1569 // Flip the registers since bitFieldInsert only inserts into the low bits. 1570 std::swap(storage, tempReg); 1571 } 1572 #endif 1563 1573 1564 andPtr(TrustedImmPtr(Gigacage::mask(kind)), storage); 1574 1565 addPtr(TrustedImmPtr(Gigacage::basePtr(kind)), storage); 1575 #if CPU(ARM64E)1576 if (kind == Gigacage::Primitive)1577 bitFieldInsert64(storage, 0, 64 - numberOfPACBits, tempReg);1578 #endif1579 1580 1566 #else 1581 1567 UNUSED_PARAM(kind); … … 1583 1569 #endif 1584 1570 } 1585 1586 // length may be the same register as scratch. 1587 void cageConditionally(Gigacage::Kind kind, GPRReg storage, GPRReg length, GPRReg scratch) 1588 { 1589 #if CPU(ARM64E) 1590 if (kind == Gigacage::Primitive) 1591 untagArrayPtr(length, storage); 1592 #else 1593 UNUSED_PARAM(kind); 1594 UNUSED_PARAM(storage); 1595 UNUSED_PARAM(length); 1596 #endif 1597 1571 1572 void cageConditionally(Gigacage::Kind kind, GPRReg storage, GPRReg scratchOrLength) 1573 { 1598 1574 #if GIGACAGE_ENABLED 1599 1575 if (!Gigacage::isEnabled(kind)) … … 1601 1577 1602 1578 if (kind != Gigacage::Primitive || Gigacage::isDisablingPrimitiveGigacageDisabled()) 1603 cageWithoutUntagging(kind, storage); 1604 else { 1605 loadPtr(&Gigacage::basePtr(kind), scratch); 1606 Jump done = branchTestPtr(Zero, scratch); 1607 #if CPU(ARM64E) 1608 auto tempReg = getCachedMemoryTempRegisterIDAndInvalidate(); 1609 move(storage, tempReg); 1610 andPtr(TrustedImmPtr(Gigacage::mask(kind)), tempReg); 1611 addPtr(scratch, tempReg); 1612 bitFieldInsert64(tempReg, 0, 64 - numberOfPACBits, storage); 1613 #else 1614 andPtr(TrustedImmPtr(Gigacage::mask(kind)), storage); 1615 addPtr(scratch, storage); 1616 #endif 1617 done.link(this); 1618 1619 1620 } 1621 #else 1622 UNUSED_PARAM(scratch); 1623 #endif 1624 1579 return cage(kind, storage); 1580 1581 loadPtr(&Gigacage::basePtr(kind), scratchOrLength); 1582 Jump done = branchTestPtr(Zero, scratchOrLength); 1583 andPtr(TrustedImmPtr(Gigacage::mask(kind)), storage); 1584 addPtr(scratchOrLength, storage); 1585 done.link(this); 1586 #elif CPU(ARM64E) 1587 if (kind == Gigacage::Primitive) 1588 untagArrayPtr(scratchOrLength, storage); 1589 #else 1590 UNUSED_PARAM(kind); 1591 UNUSED_PARAM(storage); 1592 UNUSED_PARAM(scratchOrLength); 1593 #endif 1625 1594 } 1626 1595 -
trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp
r246150 r246240 1673 1673 slowCases.append(branch32(AboveOrEqual, property, scratch2)); 1674 1674 loadPtr(Address(base, JSArrayBufferView::offsetOfVector()), scratch); 1675 cageConditionally(Gigacage::Primitive, scratch, scratch2 , scratch2);1675 cageConditionally(Gigacage::Primitive, scratch, scratch2); 1676 1676 1677 1677 switch (elementSize(type)) { … … 1737 1737 slowCases.append(branch32(AboveOrEqual, property, scratch2)); 1738 1738 loadPtr(Address(base, JSArrayBufferView::offsetOfVector()), scratch); 1739 cageConditionally(Gigacage::Primitive, scratch, scratch2 , scratch2);1739 cageConditionally(Gigacage::Primitive, scratch, scratch2); 1740 1740 1741 1741 switch (elementSize(type)) { … … 1802 1802 // path expects the base to be unclobbered. 1803 1803 loadPtr(Address(base, JSArrayBufferView::offsetOfVector()), lateScratch); 1804 cageConditionally(Gigacage::Primitive, lateScratch, lateScratch2 , lateScratch2);1804 cageConditionally(Gigacage::Primitive, lateScratch, lateScratch2); 1805 1805 1806 1806 if (isClamped(type)) { … … 1891 1891 // path expects the base to be unclobbered. 1892 1892 loadPtr(Address(base, JSArrayBufferView::offsetOfVector()), lateScratch); 1893 cageConditionally(Gigacage::Primitive, lateScratch, lateScratch2 , lateScratch2);1893 cageConditionally(Gigacage::Primitive, lateScratch, lateScratch2); 1894 1894 1895 1895 switch (elementSize(type)) { -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
r246150 r246240 77 77 # - pc holds the (native) program counter on 32-bits ARM architectures (ARMv7) 78 78 # 79 # - t0, t1, t2, t3, t4 , and optionally t5, t6, and t7are temporary registers that can get trashed on79 # - t0, t1, t2, t3, t4 and optionally t5 are temporary registers that can get trashed on 80 80 # calls, and are pairwise distinct registers. t4 holds the JS program counter, so use 81 81 # with caution in opcodes (actually, don't use it in opcodes at all, except as PC). -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
r246150 r246240 435 435 macro loadCagedPrimitive(source, dest, scratchOrLength) 436 436 loadp source, dest 437 if ARM64E 438 const result = t7 437 if GIGACAGE_ENABLED 438 uncage(_g_gigacageBasePtrs + Gigacage::BasePtrs::primitive, constexpr Gigacage::primitiveGigacageMask, dest, scratchOrLength) 439 elsif ARM64E 439 440 untagArrayPtr scratchOrLength, dest 440 move dest, result441 else442 const result = dest443 end444 if GIGACAGE_ENABLED445 uncage(_g_gigacageBasePtrs + Gigacage::BasePtrs::primitive, constexpr Gigacage::primitiveGigacageMask, result, scratchOrLength)446 if ARM64E447 const numberOfPACBits = constexpr MacroAssembler::numberOfPACBits448 bfiq result, 0, 64 - numberOfPACBits, dest449 end450 441 end 451 442 end -
trunk/Source/JavaScriptCore/offlineasm/arm64.rb
r246150 r246240 127 127 when 't6' 128 128 arm64GPRName('x6', kind) 129 when 't7'130 arm64GPRName('x7', kind)131 129 when 'cfr' 132 130 arm64GPRName('x29', kind) … … 1022 1020 when "memfence" 1023 1021 $asm.puts "dmb sy" 1024 when "bfiq"1025 $asm.puts "bfi #{operands[3].arm64Operand(:quad)}, #{operands[0].arm64Operand(:quad)}, #{operands[1].value}, #{operands[2].value}"1026 1022 when "pcrtoaddr" 1027 1023 $asm.puts "adr #{operands[1].arm64Operand(:quad)}, #{operands[0].value}" -
trunk/Source/JavaScriptCore/offlineasm/instructions.rb
r246150 r246240 274 274 ARM64_INSTRUCTIONS = 275 275 [ 276 "bfiq", # Bit field insert <source reg> <last bit written> <width immediate> <dest reg>277 276 "pcrtoaddr", # Address from PC relative offset - adr instruction 278 277 "nopFixCortexA53Err835769", # nop on Cortex-A53 (nothing otherwise) -
trunk/Source/JavaScriptCore/offlineasm/registers.rb
r246150 r246240 33 33 "t5", 34 34 "t6", 35 "t7",36 35 "cfr", 37 36 "a0", -
trunk/Source/JavaScriptCore/wasm/WasmAirIRGenerator.cpp
r246150 r246240 849 849 850 850 patchpoint->setGenerator([pinnedRegs] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) { 851 AllowMacroScratchRegisterUsage allowScratch(jit); 851 RELEASE_ASSERT(!Gigacage::isEnabled(Gigacage::Primitive) || !isARM64()); 852 AllowMacroScratchRegisterUsageIf allowScratch(jit, !isARM64()); 852 853 GPRReg baseMemory = pinnedRegs->baseMemoryPointer; 853 854 GPRReg scratchOrSize = Gigacage::isEnabled(Gigacage::Primitive) ? params.gpScratch(0) : pinnedRegs->sizeRegister; … … 856 857 jit.loadPtr(CCallHelpers::Address(params[0].gpr(), Instance::offsetOfCachedMemory()), baseMemory); 857 858 858 jit.cageConditionally(Gigacage::Primitive, baseMemory, pinnedRegs->sizeRegister,scratchOrSize);859 jit.cageConditionally(Gigacage::Primitive, baseMemory, scratchOrSize); 859 860 }); 860 861 … … 1988 1989 jit.loadPtr(CCallHelpers::Address(newContextInstance, Instance::offsetOfCachedMemory()), baseMemory); // Memory::void*. 1989 1990 1990 jit.cageConditionally(Gigacage::Primitive, baseMemory, pinnedRegs.sizeRegister,scratchOrSize);1991 jit.cageConditionally(Gigacage::Primitive, baseMemory, scratchOrSize); 1991 1992 }); 1992 1993 -
trunk/Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp
r246150 r246240 492 492 patchpoint->append(instance, ValueRep::SomeRegister); 493 493 patchpoint->setGenerator([pinnedRegs] (CCallHelpers& jit, const B3::StackmapGenerationParams& params) { 494 AllowMacroScratchRegisterUsage allowScratch(jit); 494 RELEASE_ASSERT(!Gigacage::isEnabled(Gigacage::Primitive) || !isARM64()); 495 AllowMacroScratchRegisterUsageIf allowScratch(jit, !isARM64()); 495 496 GPRReg baseMemory = pinnedRegs->baseMemoryPointer; 496 497 GPRReg scratchOrSize = Gigacage::isEnabled(Gigacage::Primitive) ? params.gpScratch(0) : pinnedRegs->sizeRegister; … … 499 500 jit.loadPtr(CCallHelpers::Address(params[0].gpr(), Instance::offsetOfCachedMemory()), baseMemory); 500 501 501 jit.cageConditionally(Gigacage::Primitive, baseMemory, pinnedRegs->sizeRegister,scratchOrSize);502 jit.cageConditionally(Gigacage::Primitive, baseMemory, scratchOrSize); 502 503 }); 503 504 } … … 1401 1402 jit.loadPtr(CCallHelpers::Address(newContextInstance, Instance::offsetOfCachedMemory()), baseMemory); // Memory::void*. 1402 1403 1403 jit.cageConditionally(Gigacage::Primitive, baseMemory, pinnedRegs.sizeRegister,scratchOrSize);1404 jit.cageConditionally(Gigacage::Primitive, baseMemory, scratchOrSize); 1404 1405 }); 1405 1406 doContextSwitch->appendNewControlValue(m_proc, Jump, origin(), continuation); -
trunk/Source/JavaScriptCore/wasm/WasmBinding.cpp
r246150 r246240 68 68 // Set up the callee's baseMemory register as well as the memory size registers. 69 69 { 70 GPRReg scratchOrSize = !Gigacage::isEnabled(Gigacage::Primitive) ? pinnedRegs.sizeRegister : wasmCallingConventionAir().prologueScratch(1);70 GPRReg scratchOrSize = isARM64E() ? pinnedRegs.sizeRegister : wasmCallingConventionAir().prologueScratch(1); 71 71 72 72 jit.loadPtr(JIT::Address(baseMemory, Wasm::Instance::offsetOfCachedMemorySize()), pinnedRegs.sizeRegister); // Memory size. 73 73 jit.loadPtr(JIT::Address(baseMemory, Wasm::Instance::offsetOfCachedMemory()), baseMemory); // Wasm::Memory::TaggedArrayStoragePtr<void> (void*). 74 jit.cageConditionally(Gigacage::Primitive, baseMemory, pinnedRegs.sizeRegister,scratchOrSize);74 jit.cageConditionally(Gigacage::Primitive, baseMemory, scratchOrSize); 75 75 } 76 76 -
trunk/Source/JavaScriptCore/wasm/js/JSToWasm.cpp
r246150 r246240 229 229 230 230 jit.loadPtr(CCallHelpers::Address(currentInstanceGPR, Wasm::Instance::offsetOfCachedMemory()), baseMemory); 231 jit.cageConditionally(Gigacage::Primitive, baseMemory, scratchOrSize , scratchOrSize);231 jit.cageConditionally(Gigacage::Primitive, baseMemory, scratchOrSize); 232 232 } 233 233 -
trunk/Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp
r246150 r246240 424 424 425 425 jit.loadPtr(CCallHelpers::Address(scratchGPR, Wasm::Instance::offsetOfCachedMemory()), baseMemory); 426 jit.cageConditionally(Gigacage::Primitive, baseMemory, scratchOrSize , scratchOrSize);426 jit.cageConditionally(Gigacage::Primitive, baseMemory, scratchOrSize); 427 427 } 428 428 -
trunk/Source/bmalloc/ChangeLog
r246150 r246240 1 2019-06-09 Commit Queue <commit-queue@webkit.org> 2 3 Unreviewed, rolling out r246150, r246160, and r246166. 4 https://bugs.webkit.org/show_bug.cgi?id=198698 5 6 Regresses page loading time on iOS 13 (Requested by keith_m__ 7 on #webkit). 8 9 Reverted changesets: 10 11 "Reenable Gigacage on ARM64." 12 https://bugs.webkit.org/show_bug.cgi?id=198453 13 https://trac.webkit.org/changeset/246150 14 15 "Unrevied build fix for FTL without Gigacage." 16 https://trac.webkit.org/changeset/246160 17 18 "Fix typo in cageWithoutUntagging" 19 https://bugs.webkit.org/show_bug.cgi?id=198617 20 https://trac.webkit.org/changeset/246166 21 1 22 2019-06-06 Keith Miller <keith_miller@apple.com> 2 23 -
trunk/Source/bmalloc/bmalloc/Gigacage.h
r246150 r246240 35 35 #include <inttypes.h> 36 36 37 #if ((BOS(DARWIN) || BOS(LINUX)) && \ 38 (BCPU(X86_64) || (BCPU(ARM64) && !defined(__ILP32__) && (!BPLATFORM(IOS_FAMILY) || BPLATFORM(IOS))))) 37 #if ((BOS(DARWIN) || BOS(LINUX)) && BCPU(X86_64)) 39 38 #define GIGACAGE_ENABLED 1 40 39 #else
Note: See TracChangeset
for help on using the changeset viewer.