Skip to content

Commit 557d5c0

Browse files
committed
[JSC] Remove unmaintained MIPS support for JIT/LLInt
https://bugs.webkit.org/show_bug.cgi?id=267347 Reviewed by Yusuke Suzuki. Igalia can't commit to supporting MIPS support for the JIT and LLInt anymore (and the bots are no longer running)--switch the MIPS build over to CLoop and remove the relevant JIT-only code. Note this doesn't remove _all_ references to CPU(MIPS)--there's still some, e.g. in heap/RegisterState; but this seems necessary even using CLoop and no JIT. * Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp: (testExecutionTimeLimit): * Source/JavaScriptCore/assembler/CPU.h: (JSC::prologueStackPointerDelta): (JSC::isMIPS): Deleted. * Source/JavaScriptCore/assembler/LinkBuffer.cpp: (JSC::LinkBuffer::linkCode): * Source/JavaScriptCore/assembler/MIPSAssembler.h: Removed. * Source/JavaScriptCore/assembler/MIPSRegisters.h: Removed. * Source/JavaScriptCore/assembler/MacroAssembler.h: * Source/JavaScriptCore/assembler/MacroAssemblerMIPS.cpp: Removed. * Source/JavaScriptCore/assembler/MacroAssemblerMIPS.h: Removed. * Source/JavaScriptCore/assembler/MaxFrameExtentForSlowPathCall.h: * Source/JavaScriptCore/assembler/PerfLog.cpp: * Source/JavaScriptCore/assembler/ProbeContext.cpp: (JSC::Probe::executeJSCJITProbe): * Source/JavaScriptCore/assembler/ProbeContext.h: (JSC::Probe::CPUState::pc): (JSC::Probe::CPUState::fp): (JSC::Probe::CPUState::sp): * Source/JavaScriptCore/assembler/RegisterInfo.h: * Source/JavaScriptCore/assembler/testmasm.cpp: (JSC::isSpecialGPR): (JSC::testProbePreservesGPRS): (JSC::testProbeModifiesStackPointer): (JSC::testProbeModifiesStackValues): * Source/JavaScriptCore/bytecode/InlineAccess.h: (JSC::InlineAccess::sizeForPropertyAccess): (JSC::InlineAccess::sizeForPropertyReplace): (JSC::InlineAccess::sizeForLengthAccess): * Source/JavaScriptCore/bytecode/InlineCacheCompiler.cpp: (JSC::InlineCacheCompiler::emitDataICPrologue): * Source/JavaScriptCore/dfg/DFGSpeculativeJIT.h: (JSC::DFG::SpeculativeJIT::prepareForExternalCall): * Source/JavaScriptCore/disassembler/CapstoneDisassembler.cpp: (JSC::tryToDisassemble): * Source/JavaScriptCore/jit/AssemblyHelpers.h: * Source/JavaScriptCore/jit/CCallHelpers.h: (JSC::CCallHelpers::setupArgumentsImpl): (JSC::CCallHelpers::prepareForTailCallSlow): (JSC::CCallHelpers::setupStubCrossArgs): Deleted. * Source/JavaScriptCore/jit/ExecutableAllocator.h: * Source/JavaScriptCore/jit/FPRInfo.h: * Source/JavaScriptCore/jit/GPRInfo.h: (JSC::PreferredArgumentImpl::preferredArgumentJSR): * Source/JavaScriptCore/jit/RegisterSet.cpp: (JSC::RegisterSetBuilder::macroClobberedGPRs): (JSC::RegisterSetBuilder::macroClobberedFPRs): (JSC::RegisterSetBuilder::vmCalleeSaveRegisters): (JSC::RegisterSetBuilder::llintBaselineCalleeSaveRegisters): (JSC::RegisterSetBuilder::dfgCalleeSaveRegisters): * Source/JavaScriptCore/jit/ThunkGenerators.cpp: (JSC::nativeForGenerator): * Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h: * Source/JavaScriptCore/runtime/VM.h: * Source/JavaScriptCore/yarr/YarrJIT.cpp: * Source/JavaScriptCore/yarr/YarrJITRegisters.h: * Source/WTF/wtf/PlatformEnable.h: Canonical link: https://commits.webkit.org/272866@main
1 parent 119ba1f commit 557d5c0

38 files changed

Lines changed: 51 additions & 7275 deletions

‎Source/JavaScriptCore/API/tests/ExecutionTimeLimitTest.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ int testExecutionTimeLimit()
184184
timeLimit = 100_ms + tierAdjustment;
185185
JSContextGroupSetExecutionTimeLimit(contextGroup, timeLimit.seconds(), shouldTerminateCallback, nullptr);
186186
{
187-
#if OS(LINUX) && (CPU(MIPS) || CPU(ARM_THUMB2))
187+
#if OS(LINUX) && CPU(ARM_THUMB2)
188188
Seconds timeAfterWatchdogShouldHaveFired = 500_ms + tierAdjustment;
189189
#else
190190
Seconds timeAfterWatchdogShouldHaveFired = 300_ms + tierAdjustment;

‎Source/JavaScriptCore/CMakeLists.txt‎

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,6 @@ set(OFFLINE_ASM
243243
offlineasm/cloop.rb
244244
offlineasm/config.rb
245245
offlineasm/instructions.rb
246-
offlineasm/mips.rb
247246
offlineasm/offsets.rb
248247
offlineasm/opt.rb
249248
offlineasm/parser.rb
@@ -310,8 +309,6 @@ else ()
310309
set(OFFLINE_ASM_BACKEND "ARM64")
311310
elseif (ARM_THUMB2_DETECTED)
312311
set(OFFLINE_ASM_BACKEND "ARMv7")
313-
elseif (WTF_CPU_MIPS)
314-
set(OFFLINE_ASM_BACKEND "MIPS")
315312
elseif (WTF_CPU_RISCV64)
316313
set(OFFLINE_ASM_BACKEND "RISCV64")
317314
endif ()
@@ -626,14 +623,11 @@ set(JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS
626623
assembler/JITOperationList.h
627624
assembler/JITOperationValidation.h
628625
assembler/LinkBuffer.h
629-
assembler/MIPSAssembler.h
630-
assembler/MIPSRegisters.h
631626
assembler/MacroAssembler.h
632627
assembler/MacroAssemblerARM64.h
633628
assembler/MacroAssemblerARMv7.h
634629
assembler/MacroAssemblerCodeRef.h
635630
assembler/MacroAssemblerHelpers.h
636-
assembler/MacroAssemblerMIPS.h
637631
assembler/MacroAssemblerRISCV64.h
638632
assembler/MacroAssemblerX86Common.h
639633
assembler/MacroAssemblerX86_64.h

‎Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj‎

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1384,8 +1384,6 @@
13841384
86ADD1460FDDEA980006EEC2 /* MacroAssemblerARMv7.h in Headers */ = {isa = PBXBuildFile; fileRef = 86ADD1440FDDEA980006EEC2 /* MacroAssemblerARMv7.h */; settings = {ATTRIBUTES = (Private, ); }; };
13851385
86B8690124B89EA400487C95 /* PrivateFieldPutKind.h in Headers */ = {isa = PBXBuildFile; fileRef = 86B8690024B89EA400487C95 /* PrivateFieldPutKind.h */; settings = {ATTRIBUTES = (Private, ); }; };
13861386
86C36EEA0EE1289D00B3DF59 /* MacroAssembler.h in Headers */ = {isa = PBXBuildFile; fileRef = 86C36EE90EE1289D00B3DF59 /* MacroAssembler.h */; settings = {ATTRIBUTES = (Private, ); }; };
1387-
86C568E211A213EE0007F7F0 /* MIPSAssembler.h in Headers */ = {isa = PBXBuildFile; fileRef = 86C568DF11A213EE0007F7F0 /* MIPSAssembler.h */; settings = {ATTRIBUTES = (Private, ); }; };
1388-
86C568E211A213EE0007F7FF /* MIPSRegisters.h in Headers */ = {isa = PBXBuildFile; fileRef = 86C568DF11A213EE0007F7FF /* MIPSRegisters.h */; settings = {ATTRIBUTES = (Private, ); }; };
13891387
86CC85A10EE79A4700288682 /* JITInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 86CC85A00EE79A4700288682 /* JITInlines.h */; };
13901388
86CCEFDE0F413F8900FD7F9E /* JITCode.h in Headers */ = {isa = PBXBuildFile; fileRef = 86CCEFDD0F413F8900FD7F9E /* JITCode.h */; settings = {ATTRIBUTES = (Private, ); }; };
13911389
86D2221A167EF9440024C804 /* testapi.mm in Sources */ = {isa = PBXBuildFile; fileRef = 86D22219167EF9440024C804 /* testapi.mm */; };
@@ -4652,9 +4650,6 @@
46524650
86B8690224B8A20800487C95 /* PrivateFieldPutKind.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = PrivateFieldPutKind.cpp; sourceTree = "<group>"; };
46534651
86BF642A148DB2B5004DE36A /* Intrinsic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Intrinsic.h; sourceTree = "<group>"; };
46544652
86C36EE90EE1289D00B3DF59 /* MacroAssembler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacroAssembler.h; sourceTree = "<group>"; };
4655-
86C568DE11A213EE0007F7F0 /* MacroAssemblerMIPS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacroAssemblerMIPS.h; sourceTree = "<group>"; };
4656-
86C568DF11A213EE0007F7F0 /* MIPSAssembler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MIPSAssembler.h; sourceTree = "<group>"; };
4657-
86C568DF11A213EE0007F7FF /* MIPSRegisters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MIPSRegisters.h; sourceTree = "<group>"; };
46584653
86CC85A00EE79A4700288682 /* JITInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JITInlines.h; sourceTree = "<group>"; };
46594654
86CC85A20EE79B7400288682 /* JITCall.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JITCall.cpp; sourceTree = "<group>"; };
46604655
86CC85C30EE7A89400288682 /* JITPropertyAccess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JITPropertyAccess.cpp; sourceTree = "<group>"; };
@@ -6006,7 +6001,6 @@
60066001
FEC579772310954B00BCA83F /* IntegrityInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IntegrityInlines.h; sourceTree = "<group>"; };
60076002
FEC60FE92AE971FD003B7B31 /* MacroAssemblerRISCV64.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = MacroAssemblerRISCV64.cpp; sourceTree = "<group>"; };
60086003
FEC60FEC2AE9722C003B7B31 /* MacroAssemblerRISCV64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MacroAssemblerRISCV64.h; sourceTree = "<group>"; };
6009-
FEC60FED2AE97245003B7B31 /* MacroAssemblerMIPS.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = MacroAssemblerMIPS.cpp; sourceTree = "<group>"; };
60106004
FEC60FEE2AE9726E003B7B31 /* RISCV64Registers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RISCV64Registers.h; sourceTree = "<group>"; };
60116005
FEC60FEF2AE9726E003B7B31 /* RISCV64Assembler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RISCV64Assembler.h; sourceTree = "<group>"; };
60126006
FECB8B251D25BB6E006F2463 /* FunctionOverridesTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FunctionOverridesTest.cpp; path = API/tests/FunctionOverridesTest.cpp; sourceTree = "<group>"; };
@@ -6033,7 +6027,6 @@
60336027
FEF3475920362B1D00B7C0EF /* asm.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; path = asm.rb; sourceTree = "<group>"; };
60346028
FEF3475A20362B1E00B7C0EF /* cloop.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; path = cloop.rb; sourceTree = "<group>"; };
60356029
FEF3475B20362B1E00B7C0EF /* x86.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; path = x86.rb; sourceTree = "<group>"; };
6036-
FEF3475C20362B1E00B7C0EF /* mips.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; path = mips.rb; sourceTree = "<group>"; };
60376030
FEF3475D20362B1F00B7C0EF /* config.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; path = config.rb; sourceTree = "<group>"; };
60386031
FEF3475E20362B1F00B7C0EF /* instructions.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; path = instructions.rb; sourceTree = "<group>"; };
60396032
FEF3475F20362B2000B7C0EF /* opt.rb */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.ruby; path = opt.rb; sourceTree = "<group>"; };
@@ -9335,8 +9328,6 @@
93359328
0F6DB7EB1D617D0F00CDBF8E /* MacroAssemblerCodeRef.cpp */,
93369329
863B23DF0FC60E6200703AA4 /* MacroAssemblerCodeRef.h */,
93379330
E380A76B1DCD7195000F89E6 /* MacroAssemblerHelpers.h */,
9338-
FEC60FED2AE97245003B7B31 /* MacroAssemblerMIPS.cpp */,
9339-
86C568DE11A213EE0007F7F0 /* MacroAssemblerMIPS.h */,
93409331
FE68C6351B90DDD90042BCB3 /* MacroAssemblerPrinter.cpp */,
93419332
FE68C6361B90DDD90042BCB3 /* MacroAssemblerPrinter.h */,
93429333
FEC60FE92AE971FD003B7B31 /* MacroAssemblerRISCV64.cpp */,
@@ -9345,8 +9336,6 @@
93459336
A7A4AE0717973B26005612B1 /* MacroAssemblerX86Common.cpp */,
93469337
860161E20F3A83C100F84710 /* MacroAssemblerX86Common.h */,
93479338
65860177185A8F5E00030EEE /* MaxFrameExtentForSlowPathCall.h */,
9348-
86C568DF11A213EE0007F7F0 /* MIPSAssembler.h */,
9349-
86C568DF11A213EE0007F7FF /* MIPSRegisters.h */,
93509339
FE37C5292A9C3EA9003EE733 /* OSCheck.h */,
93519340
E38DAB522A95D23A0050B7A8 /* PerfLog.cpp */,
93529341
E38DAB512A95D23A0050B7A8 /* PerfLog.h */,
@@ -10109,7 +10098,6 @@
1010910098
FEF3476420362B2300B7C0EF /* generate_offset_extractor.rb */,
1011010099
FE0DA1022429417F00A884A6 /* generate_settings_extractor.rb */,
1011110100
FEF3475E20362B1F00B7C0EF /* instructions.rb */,
10112-
FEF3475C20362B1E00B7C0EF /* mips.rb */,
1011310101
FEF3476120362B2100B7C0EF /* offsets.rb */,
1011410102
FEF3475F20362B2000B7C0EF /* opt.rb */,
1011510103
FEF3475220362B1B00B7C0EF /* parser.rb */,
@@ -11422,8 +11410,6 @@
1142211410
0FB5467B14F5C7E1002C2989 /* MethodOfGettingAValueProfile.h in Headers */,
1142311411
7C008CE7187631B600955C24 /* Microtask.h in Headers */,
1142411412
FE2A87601F02381600EB31B2 /* MinimumReservedZoneSize.h in Headers */,
11425-
86C568E211A213EE0007F7F0 /* MIPSAssembler.h in Headers */,
11426-
86C568E211A213EE0007F7FF /* MIPSRegisters.h in Headers */,
1142711413
C4703CD7192844CC0013FBEA /* models.py in Headers */,
1142811414
E3794E761B77EB97005543AE /* ModuleAnalyzer.h in Headers */,
1142911415
9F63434577274FAFB9336C38 /* ModuleNamespaceAccessCase.h in Headers */,

‎Source/JavaScriptCore/Sources.txt‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,6 @@ assembler/MacroAssembler.cpp
5555
assembler/MacroAssemblerARM64.cpp @no-unify
5656
assembler/MacroAssemblerARMv7.cpp @no-unify
5757
assembler/MacroAssemblerCodeRef.cpp
58-
assembler/MacroAssemblerMIPS.cpp @no-unify
5958
assembler/MacroAssemblerPrinter.cpp
6059
assembler/MacroAssemblerRISCV64.cpp @no-unify
6160
assembler/MacroAssemblerX86Common.cpp @no-unify

‎Source/JavaScriptCore/assembler/CPU.h‎

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,6 @@ constexpr bool isX86_64_AVX()
115115
}
116116
#endif
117117

118-
constexpr bool isMIPS()
119-
{
120-
#if CPU(MIPS)
121-
return true;
122-
#else
123-
return false;
124-
#endif
125-
}
126-
127118
constexpr bool isRISCV64()
128119
{
129120
#if CPU(RISCV64)
@@ -210,7 +201,7 @@ constexpr size_t prologueStackPointerDelta()
210201
#elif CPU(X86_64)
211202
// Prologue only saves the framePointerRegister
212203
return sizeof(CPURegister);
213-
#elif CPU(ARM_THUMB2) || CPU(ARM64) || CPU(MIPS) || CPU(RISCV64)
204+
#elif CPU(ARM_THUMB2) || CPU(ARM64) || CPU(RISCV64)
214205
// Prologue saves the framePointerRegister and linkRegister
215206
return 2 * sizeof(CPURegister);
216207
#else

‎Source/JavaScriptCore/assembler/LinkBuffer.cpp‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -422,9 +422,6 @@ void LinkBuffer::linkCode(MacroAssembler& macroAssembler, JITCompilationEffort e
422422
RELEASE_ASSERT(roundUpToMultipleOf<Assembler::instructionSize>(code) == code);
423423
#endif
424424
performJITMemcpy(code, buffer.data(), buffer.codeSize());
425-
#if CPU(MIPS)
426-
macroAssembler.m_assembler.relocateJumps(buffer.data(), code);
427-
#endif
428425
#elif CPU(ARM_THUMB2)
429426
copyCompactAndLinkCode<uint16_t>(macroAssembler, effort);
430427
#elif CPU(ARM64)

0 commit comments

Comments
 (0)