source: webkit/trunk/Source/JavaScriptCore/Target.pri@ 139541

Last change on this file since 139541 was 138465, checked in by [email protected], 12 years ago

JITThunks should be in its own file
https://bugs.webkit.org/show_bug.cgi?id=105744

Rubber stamped by Sam Weinig.

Moved JITThunks into its own file and removed some static methods from it
that were not related to what JITThunks currently does. Performed various
pagan rituals to get it to build - apparently there is a circular dependency
between JSCell, Weak, and JITThunks, which magically resolves itself if you
make sure to first include Register.h. Making it so that fewer pagan rituals
need to be performed if this code changes in the future is covered by
https://bugs.webkit.org/show_bug.cgi?id=105696.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Target.pri:
  • jit/JITStubs.cpp:

(JSC::tryCachePutByID):
(JSC::tryCacheGetByID):

  • jit/JITStubs.h:

(JSC::JITStackFrame::returnAddressSlot):
(JSC::returnAddressIsInCtiTrampoline):

  • jit/JITThunks.cpp: Added.

(JSC::JITThunks::JITThunks):
(JSC::JITThunks::~JITThunks):
(JSC::JITThunks::ctiStub):
(JSC::JITThunks::hostFunctionStub):
(JSC::JITThunks::clearHostFunctionStubs):

  • jit/JITThunks.h: Added.

(JSC::JITThunks::ctiStringLengthTrampoline):
(JSC::JITThunks::ctiVirtualCallLink):
(JSC::JITThunks::ctiVirtualConstructLink):
(JSC::JITThunks::ctiVirtualCall):
(JSC::JITThunks::ctiVirtualConstruct):
(JSC::JITThunks::ctiNativeCall):
(JSC::JITThunks::ctiNativeConstruct):

  • jit/ThunkGenerator.h: Added.
  • jit/ThunkGenerators.cpp:
  • jit/ThunkGenerators.h:
  • runtime/JSGlobalData.h:
File size: 10.4 KB
Line 
1# -------------------------------------------------------------------
2# Target file for the JavaScriptSource library
3#
4# See 'Tools/qmake/README' for an overview of the build system
5# -------------------------------------------------------------------
6
7TEMPLATE = lib
8TARGET = JavaScriptCore
9
10include(JavaScriptCore.pri)
11
12WEBKIT += wtf
13QT += core
14QT -= gui
15
16CONFIG += staticlib
17
18*-g++*:QMAKE_CXXFLAGS_RELEASE -= -O2
19*-g++*:QMAKE_CXXFLAGS_RELEASE += -O3
20
21# Rules when JIT enabled (not disabled)
22!contains(DEFINES, ENABLE_JIT=0) {
23 linux*-g++*:greaterThan(QT_GCC_MAJOR_VERSION,3):greaterThan(QT_GCC_MINOR_VERSION,0) {
24 QMAKE_CXXFLAGS += -fno-stack-protector
25 QMAKE_CFLAGS += -fno-stack-protector
26 }
27}
28
29include(yarr/yarr.pri)
30
31INSTALLDEPS += all
32
33debug_and_release: INCLUDEPATH += $$JAVASCRIPTCORE_GENERATED_SOURCES_DIR/$$activeBuildConfig()
34
35SOURCES += \
36 API/JSBase.cpp \
37 API/JSCallbackConstructor.cpp \
38 API/JSCallbackFunction.cpp \
39 API/JSCallbackObject.cpp \
40 API/JSClassRef.cpp \
41 API/JSContextRef.cpp \
42 API/JSObjectRef.cpp \
43 API/JSScriptRef.cpp \
44 API/JSStringRef.cpp \
45 API/JSValueRef.cpp \
46 API/JSWeakObjectMapRefPrivate.cpp \
47 API/OpaqueJSString.cpp \
48 assembler/ARMAssembler.cpp \
49 assembler/ARMv7Assembler.cpp \
50 assembler/LinkBuffer.cpp \
51 assembler/MacroAssembler.cpp \
52 assembler/MacroAssemblerARM.cpp \
53 assembler/MacroAssemblerSH4.cpp \
54 bytecode/ArrayAllocationProfile.cpp \
55 bytecode/ArrayProfile.cpp \
56 bytecode/CallLinkInfo.cpp \
57 bytecode/CallLinkStatus.cpp \
58 bytecode/CodeBlock.cpp \
59 bytecode/CodeBlockHash.cpp \
60 bytecode/CodeOrigin.cpp \
61 bytecode/CodeType.cpp \
62 bytecode/DFGExitProfile.cpp \
63 bytecode/ExecutionCounter.cpp \
64 bytecode/ExitKind.cpp \
65 bytecode/GetByIdStatus.cpp \
66 bytecode/JumpTable.cpp \
67 bytecode/LazyOperandValueProfile.cpp \
68 bytecode/MethodOfGettingAValueProfile.cpp \
69 bytecode/Opcode.cpp \
70 bytecode/PolymorphicPutByIdList.cpp \
71 bytecode/PutByIdStatus.cpp \
72 bytecode/ReduceWhitespace.cpp \
73 bytecode/ResolveGlobalStatus.cpp \
74 bytecode/SamplingTool.cpp \
75 bytecode/SpecialPointer.cpp \
76 bytecode/SpeculatedType.cpp \
77 bytecode/StructureStubClearingWatchpoint.cpp \
78 bytecode/StructureStubInfo.cpp \
79 bytecode/UnlinkedCodeBlock.cpp \
80 bytecode/Watchpoint.cpp \
81 bytecompiler/BytecodeGenerator.cpp \
82 bytecompiler/NodesCodegen.cpp \
83 heap/CopiedSpace.cpp \
84 heap/CopyVisitor.cpp \
85 heap/ConservativeRoots.cpp \
86 heap/DFGCodeBlocks.cpp \
87 heap/WeakSet.cpp \
88 heap/WeakHandleOwner.cpp \
89 heap/WeakBlock.cpp \
90 heap/HandleSet.cpp \
91 heap/HandleStack.cpp \
92 heap/BlockAllocator.cpp \
93 heap/GCThreadSharedData.cpp \
94 heap/GCThread.cpp \
95 heap/Heap.cpp \
96 heap/HeapStatistics.cpp \
97 heap/HeapTimer.cpp \
98 heap/IncrementalSweeper.cpp \
99 heap/JITStubRoutineSet.cpp \
100 heap/MachineStackMarker.cpp \
101 heap/MarkStack.cpp \
102 heap/MarkedAllocator.cpp \
103 heap/MarkedBlock.cpp \
104 heap/MarkedSpace.cpp \
105 heap/SlotVisitor.cpp \
106 heap/VTableSpectrum.cpp \
107 heap/WriteBarrierSupport.cpp \
108 debugger/DebuggerActivation.cpp \
109 debugger/DebuggerCallFrame.cpp \
110 debugger/Debugger.cpp \
111 dfg/DFGAbstractState.cpp \
112 dfg/DFGArgumentsSimplificationPhase.cpp \
113 dfg/DFGArrayMode.cpp \
114 dfg/DFGAssemblyHelpers.cpp \
115 dfg/DFGByteCodeParser.cpp \
116 dfg/DFGCapabilities.cpp \
117 dfg/DFGCFAPhase.cpp \
118 dfg/DFGCFGSimplificationPhase.cpp \
119 dfg/DFGConstantFoldingPhase.cpp \
120 dfg/DFGCSEPhase.cpp \
121 dfg/DFGDisassembler.cpp \
122 dfg/DFGDominators.cpp \
123 dfg/DFGDriver.cpp \
124 dfg/DFGFixupPhase.cpp \
125 dfg/DFGGraph.cpp \
126 dfg/DFGJITCompiler.cpp \
127 dfg/DFGMinifiedNode.cpp \
128 dfg/DFGNodeFlags.cpp \
129 dfg/DFGOperations.cpp \
130 dfg/DFGOSREntry.cpp \
131 dfg/DFGOSRExit.cpp \
132 dfg/DFGOSRExitCompiler.cpp \
133 dfg/DFGOSRExitCompiler64.cpp \
134 dfg/DFGOSRExitCompiler32_64.cpp \
135 dfg/DFGOSRExitJumpPlaceholder.cpp \
136 dfg/DFGPhase.cpp \
137 dfg/DFGPredictionPropagationPhase.cpp \
138 dfg/DFGRepatch.cpp \
139 dfg/DFGSpeculativeJIT.cpp \
140 dfg/DFGSpeculativeJIT32_64.cpp \
141 dfg/DFGSpeculativeJIT64.cpp \
142 dfg/DFGStructureCheckHoistingPhase.cpp \
143 dfg/DFGThunks.cpp \
144 dfg/DFGValueSource.cpp \
145 dfg/DFGVariableAccessDataDump.cpp \
146 dfg/DFGVariableEvent.cpp \
147 dfg/DFGVariableEventStream.cpp \
148 dfg/DFGValidate.cpp \
149 dfg/DFGVirtualRegisterAllocationPhase.cpp \
150 disassembler/Disassembler.cpp \
151 interpreter/AbstractPC.cpp \
152 interpreter/CallFrame.cpp \
153 interpreter/Interpreter.cpp \
154 interpreter/JSStack.cpp \
155 jit/ClosureCallStubRoutine.cpp \
156 jit/ExecutableAllocatorFixedVMPool.cpp \
157 jit/ExecutableAllocator.cpp \
158 jit/HostCallReturnValue.cpp \
159 jit/GCAwareJITStubRoutine.cpp \
160 jit/JITArithmetic.cpp \
161 jit/JITArithmetic32_64.cpp \
162 jit/JITCall.cpp \
163 jit/JITCall32_64.cpp \
164 jit/JITCode.cpp \
165 jit/JIT.cpp \
166 jit/JITDisassembler.cpp \
167 jit/JITExceptions.cpp \
168 jit/JITOpcodes.cpp \
169 jit/JITOpcodes32_64.cpp \
170 jit/JITPropertyAccess.cpp \
171 jit/JITPropertyAccess32_64.cpp \
172 jit/JITStubRoutine.cpp \
173 jit/JITStubs.cpp \
174 jit/JITThunks.cpp \
175 jit/JumpReplacementWatchpoint.cpp \
176 jit/ThunkGenerators.cpp \
177 llint/LLIntCLoop.cpp \
178 llint/LLIntData.cpp \
179 llint/LLIntEntrypoints.cpp \
180 llint/LLIntExceptions.cpp \
181 llint/LLIntSlowPaths.cpp \
182 llint/LLIntThunks.cpp \
183 llint/LowLevelInterpreter.cpp \
184 parser/Lexer.cpp \
185 parser/Nodes.cpp \
186 parser/ParserArena.cpp \
187 parser/Parser.cpp \
188 parser/SourceProviderCache.cpp \
189 profiler/ProfilerBytecode.cpp \
190 profiler/ProfilerBytecode.h \
191 profiler/ProfilerBytecodeSequence.cpp \
192 profiler/ProfilerBytecodes.cpp \
193 profiler/ProfilerBytecodes.h \
194 profiler/ProfilerCompilation.cpp \
195 profiler/ProfilerCompilation.h \
196 profiler/ProfilerCompilationKind.cpp \
197 profiler/ProfilerCompilationKind.h \
198 profiler/ProfilerCompiledBytecode.cpp \
199 profiler/ProfilerCompiledBytecode.h \
200 profiler/ProfilerDatabase.cpp \
201 profiler/ProfilerDatabase.h \
202 profiler/ProfilerExecutionCounter.h \
203 profiler/ProfilerOrigin.cpp \
204 profiler/ProfilerOrigin.h \
205 profiler/ProfilerOriginStack.cpp \
206 profiler/ProfilerOriginStack.h \
207 profiler/ProfilerOSRExit.cpp \
208 profiler/ProfilerOSRExitSite.cpp \
209 profiler/ProfilerProfiledBytecodes.cpp \
210 profiler/Profile.cpp \
211 profiler/ProfileGenerator.cpp \
212 profiler/ProfileNode.cpp \
213 profiler/LegacyProfiler.cpp \
214 runtime/ArgList.cpp \
215 runtime/Arguments.cpp \
216 runtime/ArrayConstructor.cpp \
217 runtime/ArrayPrototype.cpp \
218 runtime/BooleanConstructor.cpp \
219 runtime/BooleanObject.cpp \
220 runtime/BooleanPrototype.cpp \
221 runtime/CallData.cpp \
222 runtime/CodeCache.cpp \
223 runtime/CodeSpecializationKind.cpp \
224 runtime/CommonIdentifiers.cpp \
225 runtime/Completion.cpp \
226 runtime/ConstructData.cpp \
227 runtime/DateConstructor.cpp \
228 runtime/DateConversion.cpp \
229 runtime/DateInstance.cpp \
230 runtime/DatePrototype.cpp \
231 runtime/ErrorConstructor.cpp \
232 runtime/Error.cpp \
233 runtime/ErrorInstance.cpp \
234 runtime/ErrorPrototype.cpp \
235 runtime/ExceptionHelpers.cpp \
236 runtime/Executable.cpp \
237 runtime/FunctionConstructor.cpp \
238 runtime/FunctionPrototype.cpp \
239 runtime/GCActivityCallback.cpp \
240 runtime/GetterSetter.cpp \
241 runtime/Options.cpp \
242 runtime/Identifier.cpp \
243 runtime/IndexingType.cpp \
244 runtime/InitializeThreading.cpp \
245 runtime/InternalFunction.cpp \
246 runtime/JSActivation.cpp \
247 runtime/JSAPIValueWrapper.cpp \
248 runtime/JSArray.cpp \
249 runtime/JSCell.cpp \
250 runtime/JSDateMath.cpp \
251 runtime/JSFunction.cpp \
252 runtime/JSBoundFunction.cpp \
253 runtime/JSGlobalData.cpp \
254 runtime/JSGlobalObject.cpp \
255 runtime/JSGlobalObjectFunctions.cpp \
256 runtime/JSProxy.cpp \
257 runtime/JSLock.cpp \
258 runtime/JSNotAnObject.cpp \
259 runtime/JSObject.cpp \
260 runtime/JSONObject.cpp \
261 runtime/JSPropertyNameIterator.cpp \
262 runtime/JSSegmentedVariableObject.cpp \
263 runtime/JSWithScope.cpp \
264 runtime/JSNameScope.cpp \
265 runtime/JSScope.cpp \
266 runtime/JSString.cpp \
267 runtime/JSStringJoiner.cpp \
268 runtime/JSSymbolTableObject.cpp \
269 runtime/JSValue.cpp \
270 runtime/JSVariableObject.cpp \
271 runtime/JSWrapperObject.cpp \
272 runtime/LiteralParser.cpp \
273 runtime/Lookup.cpp \
274 runtime/MathObject.cpp \
275 runtime/MemoryStatistics.cpp \
276 runtime/NameConstructor.cpp \
277 runtime/NameInstance.cpp \
278 runtime/NamePrototype.cpp \
279 runtime/NativeErrorConstructor.cpp \
280 runtime/NativeErrorPrototype.cpp \
281 runtime/NumberConstructor.cpp \
282 runtime/NumberObject.cpp \
283 runtime/NumberPrototype.cpp \
284 runtime/ObjectConstructor.cpp \
285 runtime/ObjectPrototype.cpp \
286 runtime/Operations.cpp \
287 runtime/PropertyDescriptor.cpp \
288 runtime/PropertyNameArray.cpp \
289 runtime/PropertySlot.cpp \
290 runtime/RegExpConstructor.cpp \
291 runtime/RegExpCachedResult.cpp \
292 runtime/RegExpMatchesArray.cpp \
293 runtime/RegExp.cpp \
294 runtime/RegExpObject.cpp \
295 runtime/RegExpPrototype.cpp \
296 runtime/RegExpCache.cpp \
297 runtime/SamplingCounter.cpp \
298 runtime/SmallStrings.cpp \
299 runtime/SparseArrayValueMap.cpp \
300 runtime/StrictEvalActivation.cpp \
301 runtime/StringConstructor.cpp \
302 runtime/StringObject.cpp \
303 runtime/StringPrototype.cpp \
304 runtime/StringRecursionChecker.cpp \
305 runtime/StructureChain.cpp \
306 runtime/Structure.cpp \
307 runtime/SymbolTable.cpp \
308 runtime/TimeoutChecker.cpp \
309 tools/CodeProfile.cpp \
310 tools/CodeProfiling.cpp \
311 yarr/YarrJIT.cpp \
312
313linux-*:if(isEqual(QT_ARCH, "i386")|isEqual(QT_ARCH, "x86_64")) {
314 SOURCES += \
315 disassembler/UDis86Disassembler.cpp \
316 disassembler/udis86/udis86.c \
317 disassembler/udis86/udis86_decode.c \
318 disassembler/udis86/udis86_input.c \
319 disassembler/udis86/udis86_itab_holder.c \
320 disassembler/udis86/udis86_syn-att.c \
321 disassembler/udis86/udis86_syn-intel.c \
322 disassembler/udis86/udis86_syn.c \
323}
324
325HEADERS += $$files(*.h, true)
326
327*sh4* {
328 QMAKE_CXXFLAGS += -mieee -w
329 QMAKE_CFLAGS += -mieee -w
330}
331
332lessThan(QT_GCC_MAJOR_VERSION, 5) {
333 # GCC 4.5 and before
334 lessThan(QT_GCC_MINOR_VERSION, 6) {
335 # Disable C++0x mode in JSC for those who enabled it in their Qt's mkspec.
336 *-g++*:QMAKE_CXXFLAGS -= -std=c++0x -std=gnu++0x
337 }
338}
Note: See TracBrowser for help on using the repository browser.