]>
Commit | Line | Data |
---|---|---|
1 | 2013-07-18 Andreas Kling <akling@apple.com> | |
2 | ||
3 | CodeBlock DFG entry list isn't getting shrunk-to-fit after linking. | |
4 | <http://webkit.org/b/118875> | |
5 | <rdar://problem/14488577> | |
6 | ||
7 | Reviewed by Geoffrey Garen. | |
8 | ||
9 | Move the CodeBlock::shrinkToFit() call out of JITCompiler::link() and to the call sites | |
10 | so SpeculativeJIT::linkOSREntries() can fill in CodeBlock::m_dfgData->osrEntry first. | |
11 | ||
12 | 886 kB progression on <http://twitter.com/awesomekling> | |
13 | ||
14 | * dfg/DFGJITCompiler.cpp: | |
15 | (JSC::DFG::JITCompiler::link): | |
16 | (JSC::DFG::JITCompiler::compile): | |
17 | (JSC::DFG::JITCompiler::compileFunction): | |
18 | ||
19 | 2013-07-18 Andreas Kling <akling@apple.com> | |
20 | ||
21 | CodeBlock::m_argumentValueProfiles wastes a lot of memory. | |
22 | <http://webkit.org/b/118852> | |
23 | <rdar://problem/14481659> | |
24 | ||
25 | Reviewed by Anders Carlsson. | |
26 | ||
27 | Use Vector::resizeToFit() for CodeBlock::m_argumentValueProfiles. We don't need any padding | |
28 | for growth, since we won't be appending to it anyway. | |
29 | ||
30 | 921 KB progression on <http://twitter.com/awesomekling> | |
31 | ||
32 | * bytecode/CodeBlock.cpp: | |
33 | (JSC::CodeBlock::setNumParameters): | |
34 | ||
35 | 2013-07-16 Mark Hahnenberg <mhahnenberg@apple.com> | |
36 | ||
37 | Remove reference to JSValueStructSupport.h from JSExport.h | |
38 | https://bugs.webkit.org/show_bug.cgi?id=118746 | |
39 | ||
40 | Reviewed by Filip Pizlo. | |
41 | ||
42 | * API/JSExport.h: No such header exists, so it doesn't make sense to reference it. | |
43 | ||
44 | 2013-07-17 Lucas Forschler <lforschler@apple.com> | |
45 | ||
46 | Rollout r152600 | |
47 | ||
48 | 2013-07-17 Lucas Forschler <lforschler@apple.com> | |
49 | ||
50 | Merge r152600 | |
51 | ||
52 | 2013-07-12 Brent Fulgham <bfulgham@apple.com> | |
53 | ||
54 | [Windows] Build correction after r152573/r152577. | |
55 | https://bugs.webkit.org/show_bug.cgi?id=118610 | |
56 | ||
57 | Reviewed by Oliver Hunt. | |
58 | ||
59 | * jit/JITThunks.cpp: | |
60 | (JSC::JITThunks::hostFunctionStub): Hand-feed MSVC++ the fact that we want the second | |
61 | argument of the make_pair to be a function pointer. | |
62 | ||
63 | 2013-07-17 Lucas Forschler <lforschler@apple.com> | |
64 | ||
65 | Merge r152742 | |
66 | ||
67 | 2013-07-16 Filip Pizlo <fpizlo@apple.com> | |
68 | ||
69 | MakeRope fixup shouldn't lead to an Identity without kids | |
70 | https://bugs.webkit.org/show_bug.cgi?id=118745 | |
71 | ||
72 | Reviewed by Mark Hahnenberg. | |
73 | ||
74 | Make the empty string pruning part of fixupMakeRope() stop if it's on the last child. | |
75 | ||
76 | Make Node::convertToIdentity release-assert that it has exactly one kid. | |
77 | ||
78 | * dfg/DFGFixupPhase.cpp: | |
79 | (JSC::DFG::FixupPhase::fixupMakeRope): | |
80 | * dfg/DFGNode.h: | |
81 | (JSC::DFG::Node::convertToIdentity): | |
82 | ||
83 | 2013-07-15 Lucas Forschler <lforschler@apple.com> | |
84 | ||
85 | Merge r152613 | |
86 | ||
87 | 2013-07-13 Commit Queue <commit-queue@webkit.org> | |
88 | ||
89 | Unreviewed, rolling out r151978. | |
90 | http://trac.webkit.org/changeset/151978 | |
91 | https://bugs.webkit.org/show_bug.cgi?id=118651 | |
92 | ||
93 | Caused regressions at least 3 websites (Requested by rniwa on | |
94 | #webkit). | |
95 | ||
96 | * runtime/JSCJSValue.h: | |
97 | * runtime/JSString.h: | |
98 | ||
99 | 2013-07-15 Lucas Forschler <lforschler@apple.com> | |
100 | ||
101 | Merge r152577 | |
102 | ||
103 | 2013-07-11 Oliver Hunt <oliver@apple.com> | |
104 | ||
105 | Attempt to fix the windows build. | |
106 | ||
107 | * jit/JITThunks.cpp: | |
108 | (JSC::JITThunks::hostFunctionStub): | |
109 | * jit/JITThunks.h: | |
110 | ||
111 | 2013-07-15 Lucas Forschler <lforschler@apple.com> | |
112 | ||
113 | Merge r152573 | |
114 | ||
115 | 2013-07-10 Oliver Hunt <oliver@apple.com> | |
116 | ||
117 | NativeExecutable cache needs to use both call and construct functions for key | |
118 | https://bugs.webkit.org/show_bug.cgi?id=118545 | |
119 | ||
120 | Reviewed by Geoffrey Garen. | |
121 | ||
122 | Make the native executable cache make use a key pair so we don't decide to | |
123 | treat all subsequent functions as not being constructors. | |
124 | ||
125 | * jit/JITThunks.cpp: | |
126 | (JSC::JITThunks::hostFunctionStub): | |
127 | * jit/JITThunks.h: | |
128 | * runtime/JSBoundFunction.cpp: | |
129 | (JSC::JSBoundFunction::create): | |
130 | * runtime/JSCell.cpp: | |
131 | (JSC::JSCell::getCallData): | |
132 | (JSC::JSCell::getConstructData): | |
133 | ||
134 | 2013-07-09 Lucas Forschler <lforschler@apple.com> | |
135 | ||
136 | Merge r152497 | |
137 | ||
138 | 2013-07-09 Mark Lam <mark.lam@apple.com> | |
139 | ||
140 | Gardening to unbreak builds on the Windows bot. | |
141 | ||
142 | Not reviewed. | |
143 | ||
144 | * parser/ParserTokens.h: | |
145 | ||
146 | 2013-07-09 Lucas Forschler <lforschler@apple.com> | |
147 | ||
148 | Merge r152494 | |
149 | ||
150 | 2013-07-09 Mark Lam <mark.lam@apple.com> | |
151 | ||
152 | Fix 30% JSBench regression (caused by adding column numbers to stack traces). | |
153 | https://bugs.webkit.org/show_bug.cgi?id=118481. | |
154 | ||
155 | Reviewed by Mark Hahnenberg and Geoffrey Garen. | |
156 | ||
157 | Previously, we already capture ExpressionRangeInfo that provides a divot for | |
158 | each bytecode that can potentially throw an exception (and therefore generate | |
159 | a stack trace). On first attempt to compute column numbers, we then do a walk | |
160 | of the source string to record all line start positions in a table associated | |
161 | with the SourceProvider. The column number can then be computed as | |
162 | divot - lineStartFor(bytecodeOffset). | |
163 | ||
164 | The computation of this lineStarts table is the source of the 30% JSBench | |
165 | performance regression. | |
166 | ||
167 | The new code now records lineStarts as the lexer and parser scans the source | |
168 | code. These lineStarts are then used to compute the column number for the | |
169 | given divot, and stored in the ExpressionRangeInfo. Similarly, we also capture | |
170 | the line number at the divot point and store that in the ExpressionRangeInfo. | |
171 | Hence, to look up line and column numbers, we now lookup the ExpressionRangeInfo | |
172 | for the bytecodeOffset, and then compute the line and column from the values | |
173 | stored in the expression info. | |
174 | ||
175 | The strategy: | |
176 | 1. We want to minimize perturbations to the lexer and parser. Specifically, | |
177 | the changes added should not change how it scans code, and generate bytecode. | |
178 | 2. We regard the divot as the source character position we are interested | |
179 | in. As such, we'll capture line and lineStart (for column) at the point | |
180 | when we capture the divot information. This ensures that the 3 values are | |
181 | consistent. | |
182 | ||
183 | How the change is done: | |
184 | 1. Change the lexer to track lineStarts. | |
185 | 2. Change the parser to capture line and lineStarts at the point of capturing | |
186 | divots. | |
187 | 3. Change the parser and associated code to plumb these values all the way to | |
188 | the point that the correspoinding ExpressionRangeInfo is emitted. | |
189 | 4. Propagate and record SourceCode firstLine and firstLineColumnOffset to the | |
190 | the necessary places so that we can add them as needed when reifying | |
191 | UnlinkedCodeBlocks into CodeBlocks. | |
192 | 5. Compress the line and column number values in the ExpressionRangeInfo. In | |
193 | practice, we seldom have both large line and column numbers. Hence, we can | |
194 | encode both in an uint32_t most of the time. For the times when we encounter | |
195 | both large line and column numbers, we have a fallback to store the "fat" | |
196 | position info. | |
197 | 6. Emit an ExpressionRangeInfo for UnaryOp nodes to get more line and column | |
198 | number coverage. | |
199 | 7. Change the interpreter to use the new way of computing line and column. | |
200 | 8. Delete old line and column computation code that is now unused. | |
201 | ||
202 | Misc details: | |
203 | - the old lexer was tracking both a startOffset and charPosition where | |
204 | charPosition equals startOffset - SourceCode.startOffset. We now use | |
205 | startOffset exclusively throughout the system for consistency. | |
206 | All offset values (including lineStart) are relative to the start of the | |
207 | SourceProvider string. These values will only be converted to be relative | |
208 | to the SourceCode.startOffset at the very last minute i.e. when the divot | |
209 | is stored into the ExpressionRangeInfo. | |
210 | ||
211 | This change to use the same offset system everywhere reduces confusion | |
212 | from having to convert back and forth between the 2 systems. It also | |
213 | enables a lot of assertions to be used. | |
214 | ||
215 | - Also fixed some bugs in the choice of divot positions to use. For example, | |
216 | both Eval and Function expressions previously used column numbers from | |
217 | the start of the expression but used the line number at the end of the | |
218 | expression. This is now fixed to use either the start or end positions | |
219 | as appropriate, but not a mix of line and columns from both. | |
220 | ||
221 | - Why use ints instead of unsigneds for offsets and lineStarts inside the | |
222 | lexer and parser? | |
223 | Some tests (e.g. fast/js/call-base-resolution.html and | |
224 | fast/js/eval-cross-window.html) has shown that lineStart offsets can be | |
225 | prior to the SourceCode.startOffset. Keeping the lexer offsets as ints | |
226 | simplifies computations and makes it easier to maintain the assertions | |
227 | that (startOffset >= lineStartOffset). | |
228 | ||
229 | However, column and line numbers are always unsigned when we publish | |
230 | them to the ExpressionRangeInfo. The ints are only used inside the | |
231 | lexer and parser ... well, and bytecode generator. | |
232 | ||
233 | - For all cases, lineStart is always captured where the divot is captured. | |
234 | However, some sputnik conformance tests have shown that we cannot honor | |
235 | line breaks for assignment statements like the following: | |
236 | ||
237 | eval("x\u000A*=\u000A-1;"); | |
238 | ||
239 | In this case, the lineStart is expected to be captured at the start of | |
240 | the assignment expression instead of at the divot point in the middle. | |
241 | The assignment expression is the only special case for this. | |
242 | ||
243 | This patch has been tested against the full layout tests both with release | |
244 | and debug builds with no regression. | |
245 | ||
246 | * API/JSContextRef.cpp: | |
247 | (JSContextCreateBacktrace): | |
248 | - Updated to use the new StackFrame::computeLineAndColumn(). | |
249 | * bytecode/CodeBlock.cpp: | |
250 | (JSC::CodeBlock::CodeBlock): | |
251 | - Added m_firstLineColumnOffset initialization. | |
252 | - Plumbed the firstLineColumnOffset into the SourceCode. | |
253 | - Initialized column for op_debug using the new way. | |
254 | (JSC::CodeBlock::lineNumberForBytecodeOffset): | |
255 | - Changed to compute line number using the ExpressionRangeInfo. | |
256 | (JSC::CodeBlock::columnNumberForBytecodeOffset): Added | |
257 | - Changed to compute column number using the ExpressionRangeInfo. | |
258 | (JSC::CodeBlock::expressionRangeForBytecodeOffset): | |
259 | * bytecode/CodeBlock.h: | |
260 | (JSC::CodeBlock::firstLineColumnOffset): | |
261 | (JSC::GlobalCodeBlock::GlobalCodeBlock): | |
262 | - Plumbed firstLineColumnOffset through to the super class. | |
263 | (JSC::ProgramCodeBlock::ProgramCodeBlock): | |
264 | - Plumbed firstLineColumnOffset through to the super class. | |
265 | (JSC::EvalCodeBlock::EvalCodeBlock): | |
266 | - Plumbed firstLineColumnOffset through to the super class. | |
267 | But for EvalCodeBlocks, the firstLineColumnOffset is always 1 | |
268 | because we're starting with a new source string with no start | |
269 | offset. | |
270 | (JSC::FunctionCodeBlock::FunctionCodeBlock): | |
271 | - Plumbed firstLineColumnOffset through to the super class. | |
272 | ||
273 | * bytecode/ExpressionRangeInfo.h: | |
274 | - Added modes for encoding line and column into a single 30-bit | |
275 | unsigned. The encoding is in 1 of 3 modes: | |
276 | 1. FatLineMode: 22-bit line, 8-bit column | |
277 | 2. FatColumnMode: 8-bit line, 22-bit column | |
278 | 3. FatLineAndColumnMode: 32-bit line, 32-bit column | |
279 | (JSC::ExpressionRangeInfo::encodeFatLineMode): Added. | |
280 | - Encodes line and column into the 30-bit position using FatLine mode. | |
281 | (JSC::ExpressionRangeInfo::encodeFatColumnMode): Added. | |
282 | - Encodes line and column into the 30-bit position using FatColumn mode. | |
283 | (JSC::ExpressionRangeInfo::decodeFatLineMode): Added. | |
284 | - Decodes the FatLine mode 30-bit position into line and column. | |
285 | (JSC::ExpressionRangeInfo::decodeFatColumnMode): Added. | |
286 | - Decodes the FatColumn mode 30-bit position into line and column. | |
287 | ||
288 | * bytecode/UnlinkedCodeBlock.cpp: | |
289 | (JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable): | |
290 | - Plumbed startColumn through. | |
291 | (JSC::UnlinkedFunctionExecutable::link): | |
292 | - Plumbed startColumn through. | |
293 | (JSC::UnlinkedCodeBlock::lineNumberForBytecodeOffset): | |
294 | - Computes a line number using the new way. | |
295 | (JSC::UnlinkedCodeBlock::expressionRangeForBytecodeOffset): | |
296 | - Added decoding of line and column. | |
297 | - Added handling of the case when we do not find a fitting expression | |
298 | range info for a specified bytecodeOffset. This only happens if the | |
299 | bytecodeOffset is below the first expression range info. In that | |
300 | case, we'll use the first expression range info entry. | |
301 | (JSC::UnlinkedCodeBlock::addExpressionInfo): | |
302 | - Added encoding of line and column. | |
303 | ||
304 | * bytecode/UnlinkedCodeBlock.h: | |
305 | - Added m_expressionInfoFatPositions in RareData. | |
306 | (JSC::UnlinkedFunctionExecutable::functionStartColumn): | |
307 | (JSC::UnlinkedCodeBlock::shrinkToFit): | |
308 | - Removed obsoleted m_lineInfo. | |
309 | * bytecompiler/BytecodeGenerator.cpp: | |
310 | (JSC::BytecodeGenerator::emitCall): Plumbed line and lineStart through. | |
311 | (JSC::BytecodeGenerator::emitCallEval): Plumbed line and lineStart through. | |
312 | (JSC::BytecodeGenerator::emitCallVarargs): Plumbed line and lineStart through. | |
313 | (JSC::BytecodeGenerator::emitConstruct): Plumbed line and lineStart through. | |
314 | (JSC::BytecodeGenerator::emitDebugHook): Plumbed lineStart through. | |
315 | * bytecompiler/BytecodeGenerator.h: | |
316 | (JSC::BytecodeGenerator::emitNode): | |
317 | (JSC::BytecodeGenerator::emitNodeInConditionContext): | |
318 | - Removed obsoleted m_lineInfo. | |
319 | (JSC::BytecodeGenerator::emitExpressionInfo): | |
320 | - Plumbed line and lineStart through. | |
321 | - Compute the line and column to be added to the expression range info. | |
322 | * bytecompiler/NodesCodegen.cpp: | |
323 | (JSC::ThrowableExpressionData::emitThrowReferenceError): | |
324 | (JSC::ResolveNode::emitBytecode): | |
325 | (JSC::ArrayNode::toArgumentList): | |
326 | (JSC::BracketAccessorNode::emitBytecode): | |
327 | (JSC::DotAccessorNode::emitBytecode): | |
328 | (JSC::NewExprNode::emitBytecode): | |
329 | (JSC::EvalFunctionCallNode::emitBytecode): | |
330 | (JSC::FunctionCallValueNode::emitBytecode): | |
331 | (JSC::FunctionCallResolveNode::emitBytecode): | |
332 | (JSC::FunctionCallBracketNode::emitBytecode): | |
333 | (JSC::FunctionCallDotNode::emitBytecode): | |
334 | (JSC::CallFunctionCallDotNode::emitBytecode): | |
335 | (JSC::ApplyFunctionCallDotNode::emitBytecode): | |
336 | (JSC::PostfixNode::emitResolve): | |
337 | (JSC::PostfixNode::emitBracket): | |
338 | (JSC::PostfixNode::emitDot): | |
339 | (JSC::DeleteResolveNode::emitBytecode): | |
340 | (JSC::DeleteBracketNode::emitBytecode): | |
341 | (JSC::DeleteDotNode::emitBytecode): | |
342 | (JSC::PrefixNode::emitResolve): | |
343 | (JSC::PrefixNode::emitBracket): | |
344 | (JSC::PrefixNode::emitDot): | |
345 | - Plumbed line and lineStart through the above as needed. | |
346 | ||
347 | (JSC::UnaryOpNode::emitBytecode): | |
348 | - Added emission of an ExpressionRangeInfo for the UnaryOp node. | |
349 | ||
350 | (JSC::BinaryOpNode::emitStrcat): | |
351 | (JSC::ThrowableBinaryOpNode::emitBytecode): | |
352 | (JSC::InstanceOfNode::emitBytecode): | |
353 | (JSC::emitReadModifyAssignment): | |
354 | (JSC::ReadModifyResolveNode::emitBytecode): | |
355 | (JSC::AssignResolveNode::emitBytecode): | |
356 | (JSC::AssignDotNode::emitBytecode): | |
357 | (JSC::ReadModifyDotNode::emitBytecode): | |
358 | (JSC::AssignBracketNode::emitBytecode): | |
359 | (JSC::ReadModifyBracketNode::emitBytecode): | |
360 | - Plumbed line and lineStart through the above as needed. | |
361 | ||
362 | (JSC::ConstStatementNode::emitBytecode): | |
363 | (JSC::EmptyStatementNode::emitBytecode): | |
364 | (JSC::DebuggerStatementNode::emitBytecode): | |
365 | (JSC::ExprStatementNode::emitBytecode): | |
366 | (JSC::VarStatementNode::emitBytecode): | |
367 | (JSC::IfElseNode::emitBytecode): | |
368 | (JSC::DoWhileNode::emitBytecode): | |
369 | (JSC::WhileNode::emitBytecode): | |
370 | (JSC::ForNode::emitBytecode): | |
371 | (JSC::ForInNode::emitBytecode): | |
372 | (JSC::ContinueNode::emitBytecode): | |
373 | (JSC::BreakNode::emitBytecode): | |
374 | (JSC::ReturnNode::emitBytecode): | |
375 | (JSC::WithNode::emitBytecode): | |
376 | (JSC::SwitchNode::emitBytecode): | |
377 | (JSC::LabelNode::emitBytecode): | |
378 | (JSC::ThrowNode::emitBytecode): | |
379 | (JSC::TryNode::emitBytecode): | |
380 | (JSC::ProgramNode::emitBytecode): | |
381 | (JSC::EvalNode::emitBytecode): | |
382 | (JSC::FunctionBodyNode::emitBytecode): | |
383 | - Plumbed line and lineStart through the above as needed. | |
384 | ||
385 | * interpreter/Interpreter.cpp: | |
386 | (JSC::appendSourceToError): | |
387 | - Added line and column arguments for expressionRangeForBytecodeOffset(). | |
388 | (JSC::StackFrame::computeLineAndColumn): | |
389 | - Replaces StackFrame::line() and StackFrame::column(). | |
390 | (JSC::StackFrame::expressionInfo): | |
391 | - Added line and column arguments. | |
392 | (JSC::StackFrame::toString): | |
393 | - Changed to use the new StackFrame::computeLineAndColumn(). | |
394 | (JSC::Interpreter::getStackTrace): | |
395 | - Added the needed firstLineColumnOffset arg for the StackFrame. | |
396 | ||
397 | * interpreter/Interpreter.h: | |
398 | * parser/ASTBuilder.h: | |
399 | (JSC::ASTBuilder::BinaryOpInfo::BinaryOpInfo): | |
400 | (JSC::ASTBuilder::AssignmentInfo::AssignmentInfo): | |
401 | (JSC::ASTBuilder::createResolve): | |
402 | (JSC::ASTBuilder::createBracketAccess): | |
403 | (JSC::ASTBuilder::createDotAccess): | |
404 | (JSC::ASTBuilder::createRegExp): | |
405 | (JSC::ASTBuilder::createNewExpr): | |
406 | (JSC::ASTBuilder::createAssignResolve): | |
407 | (JSC::ASTBuilder::createFunctionExpr): | |
408 | (JSC::ASTBuilder::createFunctionBody): | |
409 | (JSC::ASTBuilder::createGetterOrSetterProperty): | |
410 | (JSC::ASTBuilder::createFuncDeclStatement): | |
411 | (JSC::ASTBuilder::createBlockStatement): | |
412 | (JSC::ASTBuilder::createExprStatement): | |
413 | (JSC::ASTBuilder::createIfStatement): | |
414 | (JSC::ASTBuilder::createForLoop): | |
415 | (JSC::ASTBuilder::createForInLoop): | |
416 | (JSC::ASTBuilder::createVarStatement): | |
417 | (JSC::ASTBuilder::createReturnStatement): | |
418 | (JSC::ASTBuilder::createBreakStatement): | |
419 | (JSC::ASTBuilder::createContinueStatement): | |
420 | (JSC::ASTBuilder::createTryStatement): | |
421 | (JSC::ASTBuilder::createSwitchStatement): | |
422 | (JSC::ASTBuilder::createWhileStatement): | |
423 | (JSC::ASTBuilder::createDoWhileStatement): | |
424 | (JSC::ASTBuilder::createLabelStatement): | |
425 | (JSC::ASTBuilder::createWithStatement): | |
426 | (JSC::ASTBuilder::createThrowStatement): | |
427 | (JSC::ASTBuilder::createDebugger): | |
428 | (JSC::ASTBuilder::createConstStatement): | |
429 | (JSC::ASTBuilder::appendBinaryExpressionInfo): | |
430 | (JSC::ASTBuilder::appendUnaryToken): | |
431 | (JSC::ASTBuilder::unaryTokenStackLastStart): | |
432 | (JSC::ASTBuilder::unaryTokenStackLastLineStartPosition): Added. | |
433 | (JSC::ASTBuilder::assignmentStackAppend): | |
434 | (JSC::ASTBuilder::createAssignment): | |
435 | (JSC::ASTBuilder::setExceptionLocation): | |
436 | (JSC::ASTBuilder::makeDeleteNode): | |
437 | (JSC::ASTBuilder::makeFunctionCallNode): | |
438 | (JSC::ASTBuilder::makeBinaryNode): | |
439 | (JSC::ASTBuilder::makeAssignNode): | |
440 | (JSC::ASTBuilder::makePrefixNode): | |
441 | (JSC::ASTBuilder::makePostfixNode):. | |
442 | - Plumbed line, lineStart, and startColumn through the above as needed. | |
443 | ||
444 | * parser/Lexer.cpp: | |
445 | (JSC::::currentSourcePtr): | |
446 | (JSC::::setCode): | |
447 | - Added tracking for sourceoffset and lineStart. | |
448 | (JSC::::internalShift): | |
449 | (JSC::::parseIdentifier): | |
450 | - Added tracking for lineStart. | |
451 | (JSC::::parseIdentifierSlowCase): | |
452 | (JSC::::parseString): | |
453 | - Added tracking for lineStart. | |
454 | (JSC::::parseStringSlowCase): | |
455 | (JSC::::lex): | |
456 | - Added tracking for sourceoffset. | |
457 | (JSC::::sourceCode): | |
458 | * parser/Lexer.h: | |
459 | (JSC::Lexer::currentOffset): | |
460 | (JSC::Lexer::currentLineStartOffset): | |
461 | (JSC::Lexer::setOffset): | |
462 | - Added tracking for lineStart. | |
463 | (JSC::Lexer::offsetFromSourcePtr): Added. conversion function. | |
464 | (JSC::Lexer::sourcePtrFromOffset): Added. conversion function. | |
465 | (JSC::Lexer::setOffsetFromSourcePtr): | |
466 | (JSC::::lexExpectIdentifier): | |
467 | - Added tracking for sourceoffset and lineStart. | |
468 | ||
469 | * parser/NodeConstructors.h: | |
470 | (JSC::Node::Node): | |
471 | (JSC::ResolveNode::ResolveNode): | |
472 | (JSC::EvalFunctionCallNode::EvalFunctionCallNode): | |
473 | (JSC::FunctionCallValueNode::FunctionCallValueNode): | |
474 | (JSC::FunctionCallResolveNode::FunctionCallResolveNode): | |
475 | (JSC::FunctionCallBracketNode::FunctionCallBracketNode): | |
476 | (JSC::FunctionCallDotNode::FunctionCallDotNode): | |
477 | (JSC::CallFunctionCallDotNode::CallFunctionCallDotNode): | |
478 | (JSC::ApplyFunctionCallDotNode::ApplyFunctionCallDotNode): | |
479 | (JSC::PostfixNode::PostfixNode): | |
480 | (JSC::DeleteResolveNode::DeleteResolveNode): | |
481 | (JSC::DeleteBracketNode::DeleteBracketNode): | |
482 | (JSC::DeleteDotNode::DeleteDotNode): | |
483 | (JSC::PrefixNode::PrefixNode): | |
484 | (JSC::ReadModifyResolveNode::ReadModifyResolveNode): | |
485 | (JSC::ReadModifyBracketNode::ReadModifyBracketNode): | |
486 | (JSC::AssignBracketNode::AssignBracketNode): | |
487 | (JSC::AssignDotNode::AssignDotNode): | |
488 | (JSC::ReadModifyDotNode::ReadModifyDotNode): | |
489 | (JSC::AssignErrorNode::AssignErrorNode): | |
490 | (JSC::WithNode::WithNode): | |
491 | (JSC::ForInNode::ForInNode): | |
492 | - Plumbed line and lineStart through the above as needed. | |
493 | * parser/Nodes.cpp: | |
494 | (JSC::StatementNode::setLoc): Plumbed lineStart. | |
495 | (JSC::ScopeNode::ScopeNode): Plumbed lineStart. | |
496 | (JSC::ProgramNode::ProgramNode): Plumbed startColumn. | |
497 | (JSC::ProgramNode::create): Plumbed startColumn. | |
498 | (JSC::EvalNode::create): | |
499 | (JSC::FunctionBodyNode::FunctionBodyNode): Plumbed startColumn. | |
500 | (JSC::FunctionBodyNode::create): Plumbed startColumn. | |
501 | * parser/Nodes.h: | |
502 | (JSC::Node::startOffset): | |
503 | (JSC::Node::lineStartOffset): Added. | |
504 | (JSC::StatementNode::firstLine): | |
505 | (JSC::StatementNode::lastLine): | |
506 | (JSC::ThrowableExpressionData::ThrowableExpressionData): | |
507 | (JSC::ThrowableExpressionData::setExceptionSourceCode): | |
508 | (JSC::ThrowableExpressionData::divotStartOffset): | |
509 | (JSC::ThrowableExpressionData::divotEndOffset): | |
510 | (JSC::ThrowableExpressionData::divotLine): | |
511 | (JSC::ThrowableExpressionData::divotLineStart): | |
512 | (JSC::ThrowableSubExpressionData::ThrowableSubExpressionData): | |
513 | (JSC::ThrowableSubExpressionData::setSubexpressionInfo): | |
514 | (JSC::ThrowableSubExpressionData::subexpressionDivot): | |
515 | (JSC::ThrowableSubExpressionData::subexpressionStartOffset): | |
516 | (JSC::ThrowableSubExpressionData::subexpressionEndOffset): | |
517 | (JSC::ThrowableSubExpressionData::subexpressionLine): | |
518 | (JSC::ThrowableSubExpressionData::subexpressionLineStart): | |
519 | (JSC::ThrowablePrefixedSubExpressionData::ThrowablePrefixedSubExpressionData): | |
520 | (JSC::ThrowablePrefixedSubExpressionData::setSubexpressionInfo): | |
521 | (JSC::ThrowablePrefixedSubExpressionData::subexpressionDivot): | |
522 | (JSC::ThrowablePrefixedSubExpressionData::subexpressionStartOffset): | |
523 | (JSC::ThrowablePrefixedSubExpressionData::subexpressionEndOffset): | |
524 | (JSC::ThrowablePrefixedSubExpressionData::subexpressionLine): | |
525 | (JSC::ThrowablePrefixedSubExpressionData::subexpressionLineStart): | |
526 | (JSC::ScopeNode::startStartOffset): | |
527 | (JSC::ScopeNode::startLineStartOffset): | |
528 | (JSC::ProgramNode::startColumn): | |
529 | (JSC::EvalNode::startColumn): | |
530 | (JSC::FunctionBodyNode::startColumn): | |
531 | - Plumbed line and lineStart through the above as needed. | |
532 | * parser/Parser.cpp: | |
533 | (JSC::::Parser): | |
534 | (JSC::::parseSourceElements): | |
535 | (JSC::::parseVarDeclarationList): | |
536 | (JSC::::parseConstDeclarationList): | |
537 | (JSC::::parseForStatement): | |
538 | (JSC::::parseBreakStatement): | |
539 | (JSC::::parseContinueStatement): | |
540 | (JSC::::parseReturnStatement): | |
541 | (JSC::::parseThrowStatement): | |
542 | (JSC::::parseWithStatement): | |
543 | - Plumbed line and lineStart through the above as needed. | |
544 | (JSC::::parseFunctionBody): | |
545 | - Plumbed startColumn. | |
546 | (JSC::::parseFunctionInfo): | |
547 | (JSC::::parseFunctionDeclaration): | |
548 | (JSC::LabelInfo::LabelInfo): | |
549 | (JSC::::parseExpressionOrLabelStatement): | |
550 | (JSC::::parseAssignmentExpression): | |
551 | (JSC::::parseBinaryExpression): | |
552 | (JSC::::parseProperty): | |
553 | (JSC::::parseObjectLiteral): | |
554 | (JSC::::parsePrimaryExpression): | |
555 | (JSC::::parseMemberExpression): | |
556 | (JSC::::parseUnaryExpression): | |
557 | - Plumbed line, lineStart, startColumn through the above as needed. | |
558 | * parser/Parser.h: | |
559 | (JSC::Parser::next): | |
560 | (JSC::Parser::nextExpectIdentifier): | |
561 | (JSC::Parser::tokenStart): | |
562 | (JSC::Parser::tokenColumn): | |
563 | (JSC::Parser::tokenEnd): | |
564 | (JSC::Parser::tokenLineStart): | |
565 | (JSC::Parser::lastTokenLine): | |
566 | (JSC::Parser::lastTokenLineStart): | |
567 | (JSC::::parse): | |
568 | * parser/ParserTokens.h: | |
569 | (JSC::JSTokenLocation::JSTokenLocation): | |
570 | - Plumbed lineStart. | |
571 | (JSC::JSTokenLocation::lineStartPosition): | |
572 | (JSC::JSTokenLocation::startPosition): | |
573 | (JSC::JSTokenLocation::endPosition): | |
574 | * parser/SourceCode.h: | |
575 | (JSC::SourceCode::SourceCode): | |
576 | (JSC::SourceCode::startColumn): | |
577 | (JSC::makeSource): | |
578 | (JSC::SourceCode::subExpression): | |
579 | * parser/SourceProvider.cpp: delete old code. | |
580 | * parser/SourceProvider.h: delete old code. | |
581 | * parser/SourceProviderCacheItem.h: | |
582 | (JSC::SourceProviderCacheItem::closeBraceToken): | |
583 | (JSC::SourceProviderCacheItem::SourceProviderCacheItem): | |
584 | - Plumbed lineStart. | |
585 | * parser/SyntaxChecker.h: | |
586 | (JSC::SyntaxChecker::makeFunctionCallNode): | |
587 | (JSC::SyntaxChecker::makeAssignNode): | |
588 | (JSC::SyntaxChecker::makePrefixNode): | |
589 | (JSC::SyntaxChecker::makePostfixNode): | |
590 | (JSC::SyntaxChecker::makeDeleteNode): | |
591 | (JSC::SyntaxChecker::createResolve): | |
592 | (JSC::SyntaxChecker::createBracketAccess): | |
593 | (JSC::SyntaxChecker::createDotAccess): | |
594 | (JSC::SyntaxChecker::createRegExp): | |
595 | (JSC::SyntaxChecker::createNewExpr): | |
596 | (JSC::SyntaxChecker::createAssignResolve): | |
597 | (JSC::SyntaxChecker::createFunctionExpr): | |
598 | (JSC::SyntaxChecker::createFunctionBody): | |
599 | (JSC::SyntaxChecker::createFuncDeclStatement): | |
600 | (JSC::SyntaxChecker::createForInLoop): | |
601 | (JSC::SyntaxChecker::createReturnStatement): | |
602 | (JSC::SyntaxChecker::createBreakStatement): | |
603 | (JSC::SyntaxChecker::createContinueStatement): | |
604 | (JSC::SyntaxChecker::createWithStatement): | |
605 | (JSC::SyntaxChecker::createLabelStatement): | |
606 | (JSC::SyntaxChecker::createThrowStatement): | |
607 | (JSC::SyntaxChecker::createGetterOrSetterProperty): | |
608 | (JSC::SyntaxChecker::appendBinaryExpressionInfo): | |
609 | (JSC::SyntaxChecker::operatorStackPop): | |
610 | - Made SyntaxChecker prototype changes to match ASTBuilder due to new | |
611 | args added for plumbing line, lineStart, and startColumn. | |
612 | * runtime/CodeCache.cpp: | |
613 | (JSC::CodeCache::generateBytecode): | |
614 | (JSC::CodeCache::getCodeBlock): | |
615 | - Plumbed startColumn. | |
616 | * runtime/Executable.cpp: | |
617 | (JSC::FunctionExecutable::FunctionExecutable): | |
618 | (JSC::ProgramExecutable::compileInternal): | |
619 | (JSC::FunctionExecutable::produceCodeBlockFor): | |
620 | (JSC::FunctionExecutable::fromGlobalCode): | |
621 | - Plumbed startColumn. | |
622 | * runtime/Executable.h: | |
623 | (JSC::ScriptExecutable::startColumn): | |
624 | (JSC::ScriptExecutable::recordParse): | |
625 | (JSC::FunctionExecutable::create): | |
626 | - Plumbed startColumn. | |
627 | ||
628 | 2013-07-08 Lucas Forschler <lforschler@apple.com> | |
629 | ||
630 | Merge r152052 | |
631 | ||
632 | 2013-06-26 Anders Carlsson <andersca@apple.com> | |
633 | ||
634 | Add JSStringCreateWithCharactersNoCopy SPI | |
635 | https://bugs.webkit.org/show_bug.cgi?id=118074 | |
636 | <rdar://problem/14279905> | |
637 | ||
638 | Reviewed by Geoffrey Garen. | |
639 | ||
640 | * API/JSStringRef.cpp: | |
641 | (JSStringCreateWithCharactersNoCopy): | |
642 | Create a new OpaqueJSString, using the newly added StringImpl::createWithoutCopying function. | |
643 | ||
644 | * API/JSStringRefPrivate.h: Added. | |
645 | Add a home for the JSStringCreateWithCharactersNoCopy function. | |
646 | ||
647 | * API/OpaqueJSString.h: | |
648 | (OpaqueJSString::OpaqueJSString): | |
649 | Just call isolatedCopy on the passed in string. | |
650 | ||
651 | * API/tests/testapi.c: | |
652 | Add an API test for JSStringCreateWithCharactersNoCopy. | |
653 | ||
654 | * JavaScriptCore.xcodeproj/project.pbxproj: | |
655 | Add new files. | |
656 | ||
657 | 2013-07-08 Lucas Forschler <lforschler@apple.com> | |
658 | ||
659 | Merge r152314 | |
660 | ||
661 | 2013-07-02 Mark Hahnenberg <mhahnenberg@apple.com> | |
662 | ||
663 | Replace RELEASE_ASSERT with ASSERT in CodeBlock:: bytecodeOffsetForCallAtIndex | |
664 | https://bugs.webkit.org/show_bug.cgi?id=118316 | |
665 | ||
666 | Reviewed by Geoffrey Garen. | |
667 | ||
668 | This is causing some crashiness in release builds. We should replace it with an ASSERT | |
669 | until we track down all the places that need fixing in bug 118315. | |
670 | ||
671 | * bytecode/CodeBlock.h: | |
672 | (JSC::CodeBlock::bytecodeOffsetForCallAtIndex): | |
673 | ||
674 | 2013-07-01 Lucas Forschler <lforschler@apple.com> | |
675 | ||
676 | Merge r152091 | |
677 | ||
678 | 2013-06-27 Timothy Hatcher <timothy@apple.com> | |
679 | ||
680 | Notify the debugger about functions created from source code via new Function() or WebCore::JSLazyEventListener. | |
681 | ||
682 | https://bugs.webkit.org/show_bug.cgi?id=118063 | |
683 | ||
684 | Reviewed by Geoffrey Garen. | |
685 | ||
686 | * bytecode/UnlinkedCodeBlock.cpp: | |
687 | (JSC::UnlinkedFunctionExecutable::fromGlobalCode): Call Debugger::sourceParsed. | |
688 | ||
689 | 2013-07-01 Lucas Forschler <lforschler@apple.com> | |
690 | ||
691 | Merge r151978 | |
692 | ||
693 | 2013-06-25 Ryosuke Niwa <rniwa@webkit.org> | |
694 | ||
695 | JSString should remember AtomicString | |
696 | https://bugs.webkit.org/show_bug.cgi?id=117386 | |
697 | ||
698 | Reviewed by Geoffrey Garen. | |
699 | ||
700 | Added JSValue::toAtomicString and JSString::atomicString. These two functions allow WebCore to update | |
701 | JSString's m_value to set isAtomic flag and avoid the AtomicStringTable lookups in subsequent attempts | |
702 | to obtain the AtomicString of the same value. | |
703 | ||
704 | * runtime/JSCJSValue.h: | |
705 | * runtime/JSString.h: | |
706 | (JSC::JSString::atomicString): | |
707 | (JSC::JSValue::toAtomicString): | |
708 | ||
709 | 2013-06-25 Lucas Forschler <lforschler@apple.com> | |
710 | ||
711 | Merge r151786 | |
712 | ||
713 | 2013-06-20 Mark Hahnenberg <mhahnenberg@apple.com> | |
714 | ||
715 | Improper deallocation of JSManagedValue causes crashes during autorelease pool draining | |
716 | https://bugs.webkit.org/show_bug.cgi?id=117840 | |
717 | ||
718 | Reviewed by Geoffrey Garen. | |
719 | ||
720 | Improperly managing a JSManagedValue can cause a crash when the JSC::Weak inside the | |
721 | JSManagedValue is destroyed upon deallocation. We would rather have improperly maintained | |
722 | JSManagedValues cause memory leaks than take down the whole app. | |
723 | ||
724 | The fix is to use the callback to the JSC::Weak on the destruction of the VM so that we | |
725 | can safely null it out. This will prevent ~Weak from crashing. | |
726 | ||
727 | * API/JSManagedValue.mm: | |
728 | (-[JSManagedValue JSC::JSC::]): | |
729 | (JSManagedValueHandleOwner::finalize): | |
730 | * API/tests/testapi.mm: Added a test that crashed prior to this fix due to a leaked | |
731 | managed reference. Also fixed a small style nit I noticed in another test. | |
732 | ||
733 | 2013-06-25 Lucas Forschler <lforschler@apple.com> | |
734 | ||
735 | Merge r151923 | |
736 | ||
737 | 2013-06-24 Roger Fong <roger_fong@apple.com> | |
738 | ||
739 | Unreviewed. Makefile build fix for AppleWindows. | |
740 | ||
741 | * JavaScriptCore.vcxproj/JavaScriptCore.make: | |
742 | ||
743 | 2013-06-21 Lucas Forschler <lforschler@apple.com> | |
744 | ||
745 | Merge r151787 | |
746 | ||
747 | 2013-06-20 Roger Fong <roger_fong@apple.com> | |
748 | ||
749 | Make Windows makefile copy build output to a different folder. | |
750 | <rdar://problem/14219184>. | |
751 | ||
752 | * JavaScriptCore.vcxproj/JavaScriptCore.make: | |
753 | ||
754 | 2013-06-18 Roger Fong <roger_fong@apple.com> | |
755 | ||
756 | Disable some feature flags. | |
757 | <rdar://problem/14171207>. | |
758 | ||
759 | Rubberstamped by Jon Lee. | |
760 | ||
761 | * Configurations/FeatureDefines.xcconfig: | |
762 | ||
763 | 2013-06-18 Oliver Hunt <oliver@apple.com> | |
764 | ||
765 | Going to google.com/trends causes a crash | |
766 | https://bugs.webkit.org/show_bug.cgi?id=117602 | |
767 | ||
768 | Reviewed by Geoffrey Garen. | |
769 | ||
770 | When handling op_throw, etc we need to flush the variables and arguments | |
771 | for the entire inline stack, not just the top frame. | |
772 | ||
773 | * dfg/DFGByteCodeParser.cpp: | |
774 | (JSC::DFG::ByteCodeParser::flushAllArgumentsAndCapturedVariablesInInlineStack): | |
775 | (JSC::DFG::ByteCodeParser::parseBlock): | |
776 | ||
777 | 2013-06-18 Roger Fong <roger_fong@apple.com> | |
778 | ||
779 | Replace tools32 folder with tools and update WebKit Windows solution accordingly. | |
780 | <rdar://problem/14118143>. | |
781 | ||
782 | Rubberstamped by Brent Fulgham. | |
783 | ||
784 | * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: | |
785 | * JavaScriptCore.vcxproj/JavaScriptCoreDebug.props: | |
786 | * JavaScriptCore.vcxproj/JavaScriptCoreDebugCFLite.props: | |
787 | * JavaScriptCore.vcxproj/JavaScriptCoreGenerated.vcxproj: | |
788 | * JavaScriptCore.vcxproj/JavaScriptCoreGeneratedDebug.props: | |
789 | * JavaScriptCore.vcxproj/JavaScriptCoreGeneratedProduction.props: | |
790 | * JavaScriptCore.vcxproj/JavaScriptCoreGeneratedRelease.props: | |
791 | * JavaScriptCore.vcxproj/JavaScriptCorePostBuild.cmd: | |
792 | * JavaScriptCore.vcxproj/JavaScriptCoreProduction.props: | |
793 | * JavaScriptCore.vcxproj/JavaScriptCoreRelease.props: | |
794 | * JavaScriptCore.vcxproj/JavaScriptCoreReleaseCFLite.props: | |
795 | * JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.vcxproj: | |
796 | * JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.vcxproj: | |
797 | * JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractor.vcxproj: | |
798 | * JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorDebug.props: | |
799 | * JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorProduction.props: | |
800 | * JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorRelease.props: | |
801 | * JavaScriptCore.vcxproj/jsc/jsc.vcxproj: | |
802 | * JavaScriptCore.vcxproj/jsc/jscDebug.props: | |
803 | * JavaScriptCore.vcxproj/jsc/jscProduction.props: | |
804 | * JavaScriptCore.vcxproj/jsc/jscRelease.props: | |
805 | * JavaScriptCore.vcxproj/testRegExp/testRegExp.vcxproj: | |
806 | * JavaScriptCore.vcxproj/testRegExp/testRegExpDebug.props: | |
807 | * JavaScriptCore.vcxproj/testRegExp/testRegExpProduction.props: | |
808 | * JavaScriptCore.vcxproj/testRegExp/testRegExpRelease.props: | |
809 | * JavaScriptCore.vcxproj/testapi/testapi.vcxproj: | |
810 | * JavaScriptCore.vcxproj/testapi/testapiDebug.props: | |
811 | * JavaScriptCore.vcxproj/testapi/testapiDebugCFLite.props: | |
812 | * JavaScriptCore.vcxproj/testapi/testapiProduction.props: | |
813 | * JavaScriptCore.vcxproj/testapi/testapiRelease.props: | |
814 | * JavaScriptCore.vcxproj/testapi/testapiReleaseCFLite.props: | |
815 | ||
816 | 2013-06-17 Roger Fong <roger_fong@apple.com> | |
817 | ||
818 | Modify Windows makefiles to copy some bin output into Program Files. | |
819 | https://bugs.webkit.org/show_bug.cgi?id=117714. | |
820 | <rdar://problem/14179054> | |
821 | ||
822 | Reviewed by Brent Fulgham. | |
823 | ||
824 | * JavaScriptCore.vcxproj/JavaScriptCore.make: | |
825 | ||
826 | 2013-06-14 Ryosuke Niwa <rniwa@webkit.org> | |
827 | ||
828 | Function names on Object.prototype should be common identifiers | |
829 | https://bugs.webkit.org/show_bug.cgi?id=117614 | |
830 | ||
831 | Reviewed by Darin Adler. | |
832 | ||
833 | Patch written by Sam Weinig. Make Object's prototype function names common identififers since they're used frequently. | |
834 | ||
835 | * runtime/CommonIdentifiers.h: | |
836 | * runtime/FunctionConstructor.cpp: | |
837 | (JSC::constructFunction): | |
838 | * runtime/JSGlobalObject.cpp: | |
839 | (JSC::JSGlobalObject::reset): | |
840 | * runtime/JSObject.h: | |
841 | * runtime/ObjectPrototype.cpp: | |
842 | (JSC::ObjectPrototype::finishCreation): | |
843 | * runtime/StringPrototype.cpp: | |
844 | (JSC::StringPrototype::finishCreation): | |
845 | ||
846 | 2013-06-13 Ryosuke Niwa <rniwa@webkit.org> | |
847 | ||
848 | Remove LiteralIdentifierTable | |
849 | https://bugs.webkit.org/show_bug.cgi?id=117613 | |
850 | ||
851 | Reviewed by Geoffrey Garen. | |
852 | ||
853 | Removed LiteralIdentifierTable since it doesn't seem to have any perf. impact now. | |
854 | ||
855 | * runtime/Identifier.cpp: | |
856 | (JSC::Identifier::add): | |
857 | ||
858 | 2013-06-12 Conrad Shultz <conrad_shultz@apple.com> | |
859 | ||
860 | JSExport header documentation substitutes "semicolon" for "colon" | |
861 | https://bugs.webkit.org/show_bug.cgi?id=117552 | |
862 | ||
863 | Reviewed by Mark Hahnenberg. | |
864 | ||
865 | * API/JSExport.h: | |
866 | Fix a couple typos. | |
867 | ||
868 | 2013-06-10 Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com> | |
869 | ||
870 | [JSC] Remove a vestige of wxWidgets support. | |
871 | https://bugs.webkit.org/show_bug.cgi?id=117419 | |
872 | ||
873 | Reviewed by Benjamin Poulain. | |
874 | ||
875 | * runtime/JSExportMacros.h: Remove a check for BUILDING_WX__ that | |
876 | seems to have gone unnoticed when the wxWidgets port was removed. | |
877 | ||
878 | 2013-06-06 Roger Fong <roger_fong@apple.com> | |
879 | ||
880 | Stop copying AAS binaries into build folder. | |
881 | https://bugs.webkit.org/show_bug.cgi?id=117319. | |
882 | ||
883 | Rubberstamped by Darin Adler. | |
884 | ||
885 | * JavaScriptCore.vcxproj/JavaScriptCorePreLink.cmd: | |
886 | * JavaScriptCore.vcxproj/jsc/jscPostBuild.cmd: | |
887 | * JavaScriptCore.vcxproj/jsc/jscPreLink.cmd: | |
888 | * JavaScriptCore.vcxproj/testRegExp/testRegExpPostBuild.cmd: | |
889 | * JavaScriptCore.vcxproj/testRegExp/testRegExpPreLink.cmd: | |
890 | * JavaScriptCore.vcxproj/testapi/testapiPreLink.cmd: | |
891 | ||
892 | 2013-06-05 Filip Pizlo <fpizlo@apple.com> | |
893 | ||
894 | DFG CFA shouldn't filter ArrayModes with ALL_NON_ARRAY_ARRAY_MODES if the speculated type is not SpecArray | |
895 | https://bugs.webkit.org/show_bug.cgi?id=117279 | |
896 | <rdar://problem/14078025> | |
897 | ||
898 | Reviewed by Mark Hahnenberg. | |
899 | ||
900 | * dfg/DFGAbstractValue.h: | |
901 | (JSC::DFG::AbstractValue::filterArrayModesByType): | |
902 | ||
903 | 2013-06-05 Michael Saboff <msaboff@apple.com> | |
904 | ||
905 | JSC: Crash beneath cti_op_div @ http://gmailblog.blogspot.com | |
906 | https://bugs.webkit.org/show_bug.cgi?id=117280 | |
907 | ||
908 | Reviewed by Filip Pizlo. | |
909 | ||
910 | Updated the merging of VariableAccessData nodes in ArgumentPosition lists | |
911 | to find the unified VariableAccessData node that is the root of the | |
912 | current node instead of using the current node directly when merging | |
913 | attributes. | |
914 | Added new dump code to dump the ArgumentPosition list. | |
915 | ||
916 | * dfg/DFGArgumentPosition.h: | |
917 | (JSC::DFG::rgumentPosition::mergeArgumentPredictionAwareness): | |
918 | (JSC::DFG::ArgumentPosition::mergeArgumentUnboxingAwareness): | |
919 | (JSC::DFG::ArgumentPosition::dump): | |
920 | * dfg/DFGGraph.cpp: | |
921 | (JSC::DFG::Graph::dump): | |
922 | ||
923 | 2013-06-05 Bear Travis <betravis@adobe.com> | |
924 | ||
925 | [CSS Exclusions][CSS Shapes] Split CSS Exclusions & Shapes compile & runtime flags | |
926 | https://bugs.webkit.org/show_bug.cgi?id=117172 | |
927 | ||
928 | Reviewed by Alexandru Chiculita. | |
929 | ||
930 | Adding the CSS_SHAPES compile flag. | |
931 | ||
932 | * Configurations/FeatureDefines.xcconfig: | |
933 | ||
934 | 2013-06-05 Balazs Kilvady <kilvadyb@homejinni.com> | |
935 | ||
936 | JSC Assertion tests failures on MIPS. | |
937 | https://bugs.webkit.org/show_bug.cgi?id=116552 | |
938 | ||
939 | Reviewed by Geoffrey Garen. | |
940 | ||
941 | Fix condition handlig in branchAdd32 implemetations. | |
942 | ||
943 | * assembler/MacroAssemblerMIPS.h: | |
944 | (JSC::MacroAssemblerMIPS::branchAdd32): | |
945 | ||
946 | 2013-06-04 Julien Brianceau <jbrianceau@nds.com> | |
947 | ||
948 | [sh4] Add floating point absolute function support in baseline JIT. | |
949 | https://bugs.webkit.org/show_bug.cgi?id=117147 | |
950 | ||
951 | Reviewed by Geoffrey Garen. | |
952 | ||
953 | * assembler/MacroAssemblerSH4.h: | |
954 | (JSC::MacroAssemblerSH4::supportsFloatingPointAbs): | |
955 | (JSC::MacroAssemblerSH4::absDouble): | |
956 | * assembler/SH4Assembler.h: | |
957 | (JSC::SH4Assembler::dabs): | |
958 | (JSC::SH4Assembler::printInstr): | |
959 | ||
960 | 2013-06-04 Zan Dobersek <zdobersek@igalia.com> | |
961 | ||
962 | [JSC] Test262 15.5.4.9_3 test is failing | |
963 | https://bugs.webkit.org/show_bug.cgi?id=116789 | |
964 | ||
965 | Reviewed by Geoffrey Garen. | |
966 | ||
967 | Bring the String.prototype.localeCompare behavior in line wit ES5 15.9.4.9. | |
968 | If method is not given enough arguments, the minimal amount of arguments must be assumed, with their value being undefined. | |
969 | The first argument to localeCompare, in its string form, is used as the 'that' string that's used in the comparison. | |
970 | Therefor, when calling str.localeCompare() or str.localeCompare(undefined), the first argument is `undefined` and the | |
971 | string "undefined" is used as the string to which value of str is compared. | |
972 | ||
973 | * runtime/StringPrototype.cpp: | |
974 | (JSC::stringProtoFuncLocaleCompare): Remove the early return in case of no given arguments to achieve the desired behavior. | |
975 | ||
976 | 2013-06-03 Hojong Han <hojong.han@samsung.com> | |
977 | ||
978 | [EFL] Implement GCActivityCallback | |
979 | https://bugs.webkit.org/show_bug.cgi?id=95923 | |
980 | ||
981 | Reviewed by Geoffrey Garen. | |
982 | ||
983 | Implements the activity triggered garbage collector. | |
984 | Additional GCs can be triggered by platfrom timer. | |
985 | It has sort of compaction effect not to make JSC heap grow fast | |
986 | so that memory usage becomes lower than usual. | |
987 | ||
988 | * PlatformEfl.cmake: Added. | |
989 | * heap/HeapTimer.cpp: | |
990 | (JSC): | |
991 | (JSC::HeapTimer::HeapTimer): | |
992 | (JSC::HeapTimer::~HeapTimer): | |
993 | (JSC::HeapTimer::add): | |
994 | (JSC::HeapTimer::stop): | |
995 | (JSC::HeapTimer::timerEvent): | |
996 | * heap/HeapTimer.h: | |
997 | (HeapTimer): | |
998 | * jsc.cpp: | |
999 | (main): | |
1000 | * runtime/GCActivityCallback.cpp: | |
1001 | (JSC): | |
1002 | (JSC::DefaultGCActivityCallback::DefaultGCActivityCallback): | |
1003 | (JSC::DefaultGCActivityCallback::scheduleTimer): | |
1004 | (JSC::DefaultGCActivityCallback::cancelTimer): | |
1005 | (JSC::DefaultGCActivityCallback::didAllocate): | |
1006 | * runtime/GCActivityCallback.h: | |
1007 | (GCActivityCallback): | |
1008 | (JSC::GCActivityCallback::GCActivityCallback): | |
1009 | (DefaultGCActivityCallback): | |
1010 | ||
1011 | 2013-06-03 Roger Fong <roger_fong@apple.com> | |
1012 | ||
1013 | Nuke VS2005 files from the tree. | |
1014 | <rdar://problem/14042021>. | |
1015 | ||
1016 | Rubberstamped by Brent Fulgham. | |
1017 | ||
1018 | * JavaScriptCore.vcproj: Removed. | |
1019 | * JavaScriptCore.vcproj/JavaScriptCore: Removed. | |
1020 | * JavaScriptCore.vcproj/JavaScriptCore.make: Removed. | |
1021 | * JavaScriptCore.vcproj/JavaScriptCore.resources: Removed. | |
1022 | * JavaScriptCore.vcproj/JavaScriptCore.resources/Info.plist: Removed. | |
1023 | * JavaScriptCore.vcproj/JavaScriptCore.sln: Removed. | |
1024 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.vcproj: Removed. | |
1025 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCF.vsprops: Removed. | |
1026 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCFLite.vsprops: Removed. | |
1027 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: Removed. | |
1028 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebug.vsprops: Removed. | |
1029 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebugAll.vsprops: Removed. | |
1030 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreDebugCairoCFLite.vsprops: Removed. | |
1031 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def: Removed. | |
1032 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.make: Removed. | |
1033 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGenerated.vcproj: Removed. | |
1034 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedCommon.vsprops: Removed. | |
1035 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebug.vsprops: Removed. | |
1036 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebugAll.vsprops: Removed. | |
1037 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedDebugCairoCFLite.vsprops: Removed. | |
1038 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedProduction.vsprops: Removed. | |
1039 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedRelease.vsprops: Removed. | |
1040 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedReleaseCairoCFLite.vsprops: Removed. | |
1041 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreGeneratedReleasePGO.vsprops: Removed. | |
1042 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePGOOptimize.vsprops: Removed. | |
1043 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePostBuild.cmd: Removed. | |
1044 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreBuild.cmd: Removed. | |
1045 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCorePreLink.cmd: Removed. | |
1046 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreProduction.vsprops: Removed. | |
1047 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreRelease.vsprops: Removed. | |
1048 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleaseCairoCFLite.vsprops: Removed. | |
1049 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGO.vsprops: Removed. | |
1050 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreReleasePGOOptimize.vsprops: Removed. | |
1051 | * JavaScriptCore.vcproj/JavaScriptCore/build-generated-files.sh: Removed. | |
1052 | * JavaScriptCore.vcproj/JavaScriptCore/copy-files.cmd: Removed. | |
1053 | * JavaScriptCore.vcproj/JavaScriptCoreSubmit.sln: Removed. | |
1054 | * JavaScriptCore.vcproj/LLIntAssembly: Removed. | |
1055 | * JavaScriptCore.vcproj/LLIntAssembly/LLIntAssembly.make: Removed. | |
1056 | * JavaScriptCore.vcproj/LLIntAssembly/LLIntAssembly.vcproj: Removed. | |
1057 | * JavaScriptCore.vcproj/LLIntAssembly/build-LLIntAssembly.sh: Removed. | |
1058 | * JavaScriptCore.vcproj/LLIntDesiredOffsets: Removed. | |
1059 | * JavaScriptCore.vcproj/LLIntDesiredOffsets/LLIntDesiredOffsets.make: Removed. | |
1060 | * JavaScriptCore.vcproj/LLIntDesiredOffsets/LLIntDesiredOffsets.vcproj: Removed. | |
1061 | * JavaScriptCore.vcproj/LLIntDesiredOffsets/build-LLIntDesiredOffsets.sh: Removed. | |
1062 | * JavaScriptCore.vcproj/LLIntOffsetsExtractor: Removed. | |
1063 | * JavaScriptCore.vcproj/LLIntOffsetsExtractor/LLIntOffsetsExtractor.vcproj: Removed. | |
1064 | * JavaScriptCore.vcproj/LLIntOffsetsExtractor/LLIntOffsetsExtractorCommon.vsprops: Removed. | |
1065 | * JavaScriptCore.vcproj/LLIntOffsetsExtractor/LLIntOffsetsExtractorDebug.vsprops: Removed. | |
1066 | * JavaScriptCore.vcproj/LLIntOffsetsExtractor/LLIntOffsetsExtractorDebugAll.vsprops: Removed. | |
1067 | * JavaScriptCore.vcproj/LLIntOffsetsExtractor/LLIntOffsetsExtractorDebugCairoCFLite.vsprops: Removed. | |
1068 | * JavaScriptCore.vcproj/LLIntOffsetsExtractor/LLIntOffsetsExtractorProduction.vsprops: Removed. | |
1069 | * JavaScriptCore.vcproj/LLIntOffsetsExtractor/LLIntOffsetsExtractorRelease.vsprops: Removed. | |
1070 | * JavaScriptCore.vcproj/LLIntOffsetsExtractor/LLIntOffsetsExtractorReleaseCairoCFLite.vsprops: Removed. | |
1071 | * JavaScriptCore.vcproj/LLIntOffsetsExtractor/LLIntOffsetsExtractorReleasePGO.vsprops: Removed. | |
1072 | * JavaScriptCore.vcproj/jsc: Removed. | |
1073 | * JavaScriptCore.vcproj/jsc/jsc.vcproj: Removed. | |
1074 | * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: Removed. | |
1075 | * JavaScriptCore.vcproj/jsc/jscDebug.vsprops: Removed. | |
1076 | * JavaScriptCore.vcproj/jsc/jscDebugAll.vsprops: Removed. | |
1077 | * JavaScriptCore.vcproj/jsc/jscDebugCairoCFLite.vsprops: Removed. | |
1078 | * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd: Removed. | |
1079 | * JavaScriptCore.vcproj/jsc/jscPreBuild.cmd: Removed. | |
1080 | * JavaScriptCore.vcproj/jsc/jscPreLink.cmd: Removed. | |
1081 | * JavaScriptCore.vcproj/jsc/jscProduction.vsprops: Removed. | |
1082 | * JavaScriptCore.vcproj/jsc/jscRelease.vsprops: Removed. | |
1083 | * JavaScriptCore.vcproj/jsc/jscReleaseCairoCFLite.vsprops: Removed. | |
1084 | * JavaScriptCore.vcproj/jsc/jscReleasePGO.vsprops: Removed. | |
1085 | * JavaScriptCore.vcproj/testRegExp: Removed. | |
1086 | * JavaScriptCore.vcproj/testRegExp/testRegExp.vcproj: Removed. | |
1087 | * JavaScriptCore.vcproj/testRegExp/testRegExpCommon.vsprops: Removed. | |
1088 | * JavaScriptCore.vcproj/testRegExp/testRegExpDebug.vsprops: Removed. | |
1089 | * JavaScriptCore.vcproj/testRegExp/testRegExpDebugAll.vsprops: Removed. | |
1090 | * JavaScriptCore.vcproj/testRegExp/testRegExpDebugCairoCFLite.vsprops: Removed. | |
1091 | * JavaScriptCore.vcproj/testRegExp/testRegExpPostBuild.cmd: Removed. | |
1092 | * JavaScriptCore.vcproj/testRegExp/testRegExpPreBuild.cmd: Removed. | |
1093 | * JavaScriptCore.vcproj/testRegExp/testRegExpPreLink.cmd: Removed. | |
1094 | * JavaScriptCore.vcproj/testRegExp/testRegExpProduction.vsprops: Removed. | |
1095 | * JavaScriptCore.vcproj/testRegExp/testRegExpRelease.vsprops: Removed. | |
1096 | * JavaScriptCore.vcproj/testRegExp/testRegExpReleaseCairoCFLite.vsprops: Removed. | |
1097 | * JavaScriptCore.vcproj/testRegExp/testRegExpReleasePGO.vsprops: Removed. | |
1098 | * JavaScriptCore.vcproj/testapi: Removed. | |
1099 | * JavaScriptCore.vcproj/testapi/testapi.vcproj: Removed. | |
1100 | * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: Removed. | |
1101 | * JavaScriptCore.vcproj/testapi/testapiDebug.vsprops: Removed. | |
1102 | * JavaScriptCore.vcproj/testapi/testapiDebugAll.vsprops: Removed. | |
1103 | * JavaScriptCore.vcproj/testapi/testapiDebugCairoCFLite.vsprops: Removed. | |
1104 | * JavaScriptCore.vcproj/testapi/testapiPostBuild.cmd: Removed. | |
1105 | * JavaScriptCore.vcproj/testapi/testapiPreBuild.cmd: Removed. | |
1106 | * JavaScriptCore.vcproj/testapi/testapiPreLink.cmd: Removed. | |
1107 | * JavaScriptCore.vcproj/testapi/testapiProduction.vsprops: Removed. | |
1108 | * JavaScriptCore.vcproj/testapi/testapiRelease.vsprops: Removed. | |
1109 | * JavaScriptCore.vcproj/testapi/testapiReleaseCairoCFLite.vsprops: Removed. | |
1110 | ||
1111 | 2013-05-31 Filip Pizlo <fpizlo@apple.com> | |
1112 | ||
1113 | Incorrect assertion in DFG::Graph::uncheckedActivationRegisterFor() | |
1114 | <rdar://problem/13989324> | |
1115 | ||
1116 | Rubber stamped by Mark Hahnenberg. | |
1117 | ||
1118 | This has a bogus assertion that checks that the passed CodeOrigin doesn't have | |
1119 | an inline call frame. This was well intentioned in the sense that it is true | |
1120 | that inlined call frames wouldn't have an activation register. But that doesn't | |
1121 | mean that people won't ask. Removing the assertion fixes a debug-only crash and | |
1122 | has no impact on production code. This change adds a comment to that effect. | |
1123 | ||
1124 | * dfg/DFGGraph.h: | |
1125 | (JSC::DFG::Graph::uncheckedActivationRegisterFor): | |
1126 | ||
1127 | 2013-05-31 Julien Brianceau <jbrianceau@nds.com> | |
1128 | ||
1129 | [sh4] Fix Overflow case of branchMul32 in baseline JIT. | |
1130 | https://bugs.webkit.org/show_bug.cgi?id=117057 | |
1131 | ||
1132 | Reviewed by Oliver Hunt. | |
1133 | ||
1134 | Current implementation of Overflow case in branchMul32 performs an | |
1135 | unsigned multiplication whereas a signed multiplication is expected. | |
1136 | ||
1137 | * assembler/MacroAssemblerSH4.h: | |
1138 | (JSC::MacroAssemblerSH4::branchMul32): | |
1139 | ||
1140 | 2013-05-31 Julien Brianceau <jbrianceau@nds.com> | |
1141 | ||
1142 | [sh4] Fix floating point comparisons in baseline JIT. | |
1143 | https://bugs.webkit.org/show_bug.cgi?id=117066. | |
1144 | ||
1145 | Reviewed by Oliver Hunt. | |
1146 | ||
1147 | Current implementation of branchDouble function in baseline JIT is wrong | |
1148 | for some conditions and overkill for others. For instance: | |
1149 | - With DoubleGreaterThanOrEqual condition, branch will be taken if either | |
1150 | operand is NaN with current implementation whereras it should not. | |
1151 | - With DoubleNotEqualOrUnordered condition, performed NaN checks are | |
1152 | useless (because comparison result is false if either operand is NaN). | |
1153 | ||
1154 | * assembler/MacroAssemblerSH4.h: | |
1155 | (JSC::MacroAssemblerSH4::branchDouble): | |
1156 | ||
1157 | 2013-05-31 Julien Brianceau <jbrianceau@nds.com> | |
1158 | ||
1159 | [sh4] Fix double floating point transfer in baseline JIT. | |
1160 | https://bugs.webkit.org/show_bug.cgi?id=117054 | |
1161 | ||
1162 | Reviewed by Oliver Hunt. | |
1163 | ||
1164 | In current implementation, dmovRegReg function transfers only one single | |
1165 | FPRegister as PR=1 and SZ=0 in floating point status/control register. | |
1166 | Double transfers must be performed with two fmov.s opcodes. | |
1167 | ||
1168 | * assembler/MacroAssemblerSH4.h: | |
1169 | (JSC::MacroAssemblerSH4::moveDouble): | |
1170 | (JSC::MacroAssemblerSH4::addDouble): Handle (op2==dest) case properly. | |
1171 | (JSC::MacroAssemblerSH4::sqrtDouble): | |
1172 | * assembler/SH4Assembler.h: | |
1173 | (JSC::SH4Assembler::fmovsRegReg): | |
1174 | ||
1175 | 2013-05-31 Julien Brianceau <jbrianceau@nds.com> | |
1176 | ||
1177 | [sh4] Handle branchType properly in branchTruncateDoubleToInt32. | |
1178 | https://bugs.webkit.org/show_bug.cgi?id=117062 | |
1179 | ||
1180 | Reviewed by Oliver Hunt. | |
1181 | ||
1182 | Current implementation of branchTruncateDoubleToInt32 is incorrect | |
1183 | when branchType == BranchIfTruncateSuccessful in sh4 baseline JIT. | |
1184 | ||
1185 | * assembler/MacroAssemblerSH4.h: | |
1186 | (JSC::MacroAssemblerSH4::branchTruncateDoubleToInt32): | |
1187 | ||
1188 | 2013-05-31 Brent Fulgham <bfulgham@apple.com> | |
1189 | ||
1190 | [Windows] Unreviewed build fix for VS2005 builders. | |
1191 | ||
1192 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def: Add | |
1193 | missing export for WTF::SHA1::computeHexDigest | |
1194 | ||
1195 | 2013-05-30 David Farler <dfarler@apple.com> | |
1196 | ||
1197 | Fix jscore-test when not using --sdk option with jsDriver.pl | |
1198 | https://bugs.webkit.org/show_bug.cgi?id=116339 | |
1199 | ||
1200 | Reviewed by Joe Pecoraro. | |
1201 | ||
1202 | * tests/mozilla/jsDriver.pl: | |
1203 | (execute_tests): | |
1204 | With each test, the shell_command needs to be started from scratch. | |
1205 | ||
1206 | This fix will clear the shell_command and start over as before with | |
1207 | the opt_arch option when not using --sdk with jsDriver.pl. | |
1208 | ||
1209 | 2013-05-30 Roger Fong <roger_fong@apple.com> | |
1210 | ||
1211 | Get rid of JavaScript exports file on AppleWin port. | |
1212 | https://bugs.webkit.org/show_bug.cgi?id=117050. | |
1213 | ||
1214 | Reviewed by Darin Adler. | |
1215 | ||
1216 | Delete the JavaScriptCoreExportGenerator folder and remove dependencies. | |
1217 | Start linking in WTF.lib now that it's a shared library. | |
1218 | ||
1219 | * JavaScriptCore.vcxproj/JavaScriptCore.submit.sln: | |
1220 | * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters: | |
1221 | * JavaScriptCore.vcxproj/JavaScriptCoreCommon.props: | |
1222 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator: Removed. | |
1223 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGenerator.vcxproj: Removed. | |
1224 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGenerator.vcxproj.filters: Removed. | |
1225 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorBuildCmd.cmd: Removed. | |
1226 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorCommon.props: Removed. | |
1227 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorDebug.props: Removed. | |
1228 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorPostBuild.cmd: Removed. | |
1229 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorPreBuild.cmd: Removed. | |
1230 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorProduction.props: Removed. | |
1231 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorRelease.props: Removed. | |
1232 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in: Removed. | |
1233 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/make-export-file-generator: Removed. | |
1234 | * JavaScriptCore.vcxproj/jsc/jscCommon.props: | |
1235 | * JavaScriptCore.vcxproj/testRegExp/testRegExp.vcxproj: | |
1236 | * JavaScriptCore.vcxproj/testRegExp/testRegExp.vcxproj.filters: | |
1237 | * JavaScriptCore.vcxproj/testRegExp/testRegExpCommon.props: | |
1238 | * JavaScriptCore.vcxproj/testapi/testapiCommon.props: | |
1239 | ||
1240 | 2013-05-22 David Farler <dfarler@apple.com> | |
1241 | ||
1242 | Add --sdk option to jsDriver.pl to run with iOS Simulator | |
1243 | https://bugs.webkit.org/show_bug.cgi?id=116339 | |
1244 | ||
1245 | Reviewed by David Kilzer. | |
1246 | ||
1247 | * tests/mozilla/jsDriver.pl: | |
1248 | (execute_tests): | |
1249 | Prefix shell command with the path to the "sim" tool. | |
1250 | (parse_args): | |
1251 | Add -d / --sdk option. | |
1252 | (usage): | |
1253 | Help message for -d / --sdk option. | |
1254 | ||
1255 | 2013-05-30 Julien Brianceau <jbrianceau@nds.com> | |
1256 | ||
1257 | [sh4] Optimize NaN checks in LLINT for floating point comparisons. | |
1258 | https://bugs.webkit.org/show_bug.cgi?id=117049 | |
1259 | ||
1260 | Reviewed by Oliver Hunt. | |
1261 | ||
1262 | Use the fcmp/eq opcode in sh4 LLINT to test if a double is NaN. | |
1263 | This is more efficient, doesn't require two tmp registers and requires | |
1264 | less code than current implementation (which converts double to float, | |
1265 | then checks 'E = Emax + 1' and 'f != 0'). | |
1266 | ||
1267 | * offlineasm/sh4.rb: | |
1268 | ||
1269 | 2013-05-30 Oliver Hunt <oliver@apple.com> | |
1270 | ||
1271 | JSCallbackObject does not correctly initialise the PropertySlot for getOwnPropertyDescriptor | |
1272 | https://bugs.webkit.org/show_bug.cgi?id=117053 | |
1273 | ||
1274 | Reviewed by Mark Hahnenberg. | |
1275 | ||
1276 | Set appropriate thisValue on the PropertySlot | |
1277 | ||
1278 | * API/JSCallbackObjectFunctions.h: | |
1279 | (JSC::::getOwnPropertyDescriptor): | |
1280 | * API/tests/testapi.mm: | |
1281 | ||
1282 | 2013-05-29 Jeffrey Pfau <jpfau@apple.com> | |
1283 | ||
1284 | [Mac] Enable cache partitioning and the public suffix list on 10.8 | |
1285 | <rdar://problem/13679019> | |
1286 | ||
1287 | Rubber-stamped by David Kilzer. | |
1288 | ||
1289 | * Configurations/FeatureDefines.xcconfig: | |
1290 | ||
1291 | 2013-05-28 Brent Fulgham <bfulgham@apple.com> | |
1292 | ||
1293 | [Windows] Put correct byteCompile symbol in file. Previous version | |
1294 | had an extra 'i' appended to the end. | |
1295 | ||
1296 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def: | |
1297 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in: | |
1298 | ||
1299 | 2013-05-28 Brent Fulgham <bfulgham@apple.com> | |
1300 | ||
1301 | [Windows] Unreviewed build fix. Remove ?byteCompile symbol that | |
1302 | is no longer accessible during link. | |
1303 | ||
1304 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def: | |
1305 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in: | |
1306 | ||
1307 | 2013-05-28 Gavin Barraclough <barraclough@apple.com> | |
1308 | ||
1309 | String(new Date(2010,10,1)) is wrong in KRAT, YAKT | |
1310 | https://bugs.webkit.org/show_bug.cgi?id=106750 | |
1311 | ||
1312 | Reviewed by Darin Adler. | |
1313 | ||
1314 | * runtime/JSDateMath.cpp: | |
1315 | (JSC::msToGregorianDateTime): | |
1316 | - Additional review comment fix. | |
1317 | ||
1318 | 2013-05-28 Brent Fulgham <bfulgham@apple.com> | |
1319 | ||
1320 | [Windows] Unreviewed build fix after r150833 | |
1321 | ||
1322 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def: | |
1323 | A CR/LF combination was lost in the file, combining two symbols. | |
1324 | ||
1325 | 2013-05-27 Gavin Barraclough <barraclough@apple.com> | |
1326 | ||
1327 | String(new Date(2010,10,1)) is wrong in KRAT, YAKT | |
1328 | https://bugs.webkit.org/show_bug.cgi?id=106750 | |
1329 | ||
1330 | Reviewed by Darin Adler. | |
1331 | ||
1332 | First part of a fix, simplfy date handling code, instead of operating separately | |
1333 | on the UTC-standard and standard-DST offsets, just generate a combined UTC-local | |
1334 | offset (this is what we actually need, and what the OS gives us). | |
1335 | ||
1336 | * runtime/JSDateMath.cpp: | |
1337 | (JSC::getLocalTimeOffset): | |
1338 | - removed getUTCOffset, converted getDSTOffset -> getLocalTimeOffset | |
1339 | (JSC::gregorianDateTimeToMS): | |
1340 | (JSC::msToGregorianDateTime): | |
1341 | (JSC::parseDateFromNullTerminatedCharacters): | |
1342 | - call getLocalTimeOffset instead of getUTCOffset/getDSTOffset | |
1343 | * runtime/VM.cpp: | |
1344 | (JSC::VM::resetDateCache): | |
1345 | - removed cachedUTCOffset, converted DSTOffsetCache -> LocalTimeOffsetCache | |
1346 | * runtime/VM.h: | |
1347 | (JSC::LocalTimeOffsetCache::LocalTimeOffsetCache): | |
1348 | (JSC::LocalTimeOffsetCache::reset): | |
1349 | (LocalTimeOffsetCache): | |
1350 | - removed cachedUTCOffset, converted DSTOffsetCache -> LocalTimeOffsetCache | |
1351 | ||
1352 | 2013-05-28 Mark Hahnenberg <mhahnenberg@apple.com> | |
1353 | ||
1354 | r150199 is very wrong | |
1355 | https://bugs.webkit.org/show_bug.cgi?id=116876 | |
1356 | ||
1357 | JSValue needs to protect its internal JSValueRef. | |
1358 | ||
1359 | Reviewed by Darin Adler. | |
1360 | ||
1361 | * API/JSValue.mm: | |
1362 | (-[JSValue initWithValue:inContext:]): | |
1363 | (-[JSValue dealloc]): | |
1364 | * API/tests/testapi.mm: Added a simple test to make sure that we protect the | |
1365 | underlying JavaScript value across garbage collections. | |
1366 | ||
1367 | 2013-05-27 Patrick Gansterer <paroga@webkit.org> | |
1368 | ||
1369 | Use ICU_INCLUDE_DIRS in BlackBerry CMake files | |
1370 | https://bugs.webkit.org/show_bug.cgi?id=116210 | |
1371 | ||
1372 | Reviewed by Rob Buis. | |
1373 | ||
1374 | Set and use the ICU_INCLUDE_DIRS variable to avoid | |
1375 | duplicated adding of the ICU include directory. | |
1376 | ||
1377 | * PlatformBlackBerry.cmake: | |
1378 | ||
1379 | 2013-05-27 Gabor Rapcsanyi <rgabor@webkit.org> | |
1380 | ||
1381 | MacroAssemblerARM should use xor to swap registers instead of move | |
1382 | https://bugs.webkit.org/show_bug.cgi?id=116306 | |
1383 | ||
1384 | Reviewed by Zoltan Herczeg. | |
1385 | ||
1386 | Change register swapping to xor from move and this way we don't need | |
1387 | temporary register anymore. | |
1388 | ||
1389 | * assembler/MacroAssemblerARM.h: | |
1390 | (JSC::MacroAssemblerARM::swap): | |
1391 | ||
1392 | 2013-05-25 Filip Pizlo <fpizlo@apple.com> | |
1393 | ||
1394 | We broke (-2^31/-1)|0 in the DFG | |
1395 | https://bugs.webkit.org/show_bug.cgi?id=116767 | |
1396 | ||
1397 | Reviewed by Andreas Kling. | |
1398 | ||
1399 | The bug is that we were assuming that in the -2^31 case, we already had -2^31 | |
1400 | in the result register. This was a wrong assumption. | |
1401 | ||
1402 | * dfg/DFGSpeculativeJIT.cpp: | |
1403 | (JSC::DFG::SpeculativeJIT::compileIntegerArithDivForX86): | |
1404 | ||
1405 | 2013-05-24 Filip Pizlo <fpizlo@apple.com> | |
1406 | ||
1407 | We broke !(0/0) | |
1408 | https://bugs.webkit.org/show_bug.cgi?id=116736 | |
1409 | ||
1410 | Reviewed by Gavin Barraclough. | |
1411 | ||
1412 | * parser/ASTBuilder.h: | |
1413 | (JSC::ASTBuilder::createLogicalNot): | |
1414 | * runtime/JSCJSValueInlines.h: | |
1415 | (JSC::JSValue::pureToBoolean): | |
1416 | ||
1417 | 2013-05-24 Julien Brianceau <jbrianceau@nds.com> | |
1418 | ||
1419 | [sh4] Optimize LLINT generated code and fix few bugs in baseline JIT. | |
1420 | https://bugs.webkit.org/show_bug.cgi?id=116716 | |
1421 | ||
1422 | Reviewed by Geoffrey Garen. | |
1423 | ||
1424 | * assembler/MacroAssemblerSH4.h: | |
1425 | (JSC::MacroAssemblerSH4::mul32): Cosmetic changes. | |
1426 | (JSC::MacroAssemblerSH4::convertInt32ToDouble): Absolute address was not dereferenced. | |
1427 | (JSC::MacroAssemblerSH4::branch32): Absolute address was not dereferenced. | |
1428 | (JSC::MacroAssemblerSH4::revertJumpReplacementToBranchPtrWithPatch): Use all 32 bits of pointer for revertJump call. | |
1429 | * assembler/SH4Assembler.h: | |
1430 | (JSC::SH4Assembler::revertJump): Use changePCrelativeAddress to patch the whole pointer. | |
1431 | (JSC::SH4Assembler::linkJump): Cosmetic change. | |
1432 | * offlineasm/sh4.rb: Optimize LLINT generated code. | |
1433 | ||
1434 | 2013-05-23 Peter Wang <peter.wang@torchmobile.com.cn> | |
1435 | ||
1436 | CLoop llint backend should not use the d8 register as scratch register | |
1437 | https://bugs.webkit.org/show_bug.cgi?id=116019 | |
1438 | ||
1439 | Reviewed by Csaba Osztrogonác. | |
1440 | ||
1441 | * offlineasm/cloop.rb: | |
1442 | ||
1443 | 2013-05-22 Peter Wang <peter.wang@torchmobile.com.cn> | |
1444 | ||
1445 | Use uninitialized register in "JIT::emit_op_neq_null" and "emit_op_eq_null" | |
1446 | https://bugs.webkit.org/show_bug.cgi?id=116593 | |
1447 | ||
1448 | Reviewed by Filip Pizlo. | |
1449 | ||
1450 | Generated instructions using uninitialized register. It's caused by a mistake of r126494. | |
1451 | ||
1452 | * jit/JITOpcodes32_64.cpp: | |
1453 | (JSC::JIT::emit_op_eq_null): | |
1454 | (JSC::JIT::emit_op_neq_null): | |
1455 | ||
1456 | 2013-05-22 Filip Pizlo <fpizlo@apple.com> | |
1457 | ||
1458 | Fix indentation of CodeBlock.h | |
1459 | ||
1460 | Rubber stampted by Mark Hahnenberg. | |
1461 | ||
1462 | * bytecode/CodeBlock.h: | |
1463 | ||
1464 | 2013-05-22 Julien Brianceau <jbrianceau@nds.com> | |
1465 | ||
1466 | [sh4] Remove MacroAssemblerSH4.cpp file. | |
1467 | https://bugs.webkit.org/show_bug.cgi?id=116596. | |
1468 | ||
1469 | Reviewed by Geoffrey Garen. | |
1470 | ||
1471 | Move linkCall and repatchCall implementations from MacroAssemblerSH4.cpp | |
1472 | to MacroAssemblerSH4.h and remove MacroAssemblerSH4.cpp, as it is done | |
1473 | for other architectures. | |
1474 | ||
1475 | * GNUmakefile.list.am: | |
1476 | * JavaScriptCore.xcodeproj/project.pbxproj: | |
1477 | * Target.pri: | |
1478 | * assembler/MacroAssemblerSH4.cpp: Removed. | |
1479 | * assembler/MacroAssemblerSH4.h: | |
1480 | (JSC::MacroAssemblerSH4::linkCall): | |
1481 | (MacroAssemblerSH4): | |
1482 | (JSC::MacroAssemblerSH4::repatchCall): | |
1483 | ||
1484 | 2013-05-21 Brent Fulgham <bfulgham@apple.com> | |
1485 | ||
1486 | [Windows] Unreviewed speculative fix for test-bots. | |
1487 | ||
1488 | Add export declaration for WTFInvokeCrashHook to avoid runtime | |
1489 | load error on test bots. | |
1490 | ||
1491 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def: | |
1492 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in: | |
1493 | ||
1494 | 2013-05-21 Mark Lam <mark.lam@apple.com> | |
1495 | ||
1496 | Added missing assert condition for PositiveOrZero in ARM branch32(). | |
1497 | https://bugs.webkit.org/show_bug.cgi?id=116538. | |
1498 | ||
1499 | Reviewed by Geoffrey Garen. | |
1500 | ||
1501 | * assembler/MacroAssemblerARM.h: | |
1502 | (JSC::MacroAssemblerARM::branchAdd32): | |
1503 | ||
1504 | 2013-05-20 Mark Hahnenberg <mhahnenberg@apple.com> | |
1505 | ||
1506 | Disable SuperRegion | |
1507 | https://bugs.webkit.org/show_bug.cgi?id=116362 | |
1508 | ||
1509 | Rubber stamped by Geoff Garen. | |
1510 | ||
1511 | * heap/Region.h: | |
1512 | ||
1513 | 2013-05-20 Oliver Hunt <oliver@apple.com> | |
1514 | ||
1515 | Make C API more robust against null contexts | |
1516 | https://bugs.webkit.org/show_bug.cgi?id=116462 | |
1517 | ||
1518 | Reviewed by Anders Carlsson. | |
1519 | ||
1520 | Handle null contexts in a non-crashy way. It's a bug to ever call the | |
1521 | API with a null context, and the absence of a context means we can't | |
1522 | produce a meaningful result, so we still assert in debug builds. | |
1523 | ||
1524 | Now where possible we detect and early return, returning null for any | |
1525 | pointer type, NaN for doubles, and false for any boolean result. | |
1526 | ||
1527 | * API/JSBase.cpp: | |
1528 | (JSEvaluateScript): | |
1529 | (JSCheckScriptSyntax): | |
1530 | (JSReportExtraMemoryCost): | |
1531 | * API/JSContextRef.cpp: | |
1532 | (JSContextGetGlobalObject): | |
1533 | (JSContextGetGroup): | |
1534 | (JSContextGetGlobalContext): | |
1535 | (JSContextCreateBacktrace): | |
1536 | * API/JSObjectRef.cpp: | |
1537 | (JSObjectMake): | |
1538 | (JSObjectMakeFunctionWithCallback): | |
1539 | (JSObjectMakeConstructor): | |
1540 | (JSObjectMakeFunction): | |
1541 | (JSObjectMakeArray): | |
1542 | (JSObjectMakeDate): | |
1543 | (JSObjectMakeError): | |
1544 | (JSObjectMakeRegExp): | |
1545 | (JSObjectGetPrototype): | |
1546 | (JSObjectSetPrototype): | |
1547 | (JSObjectHasProperty): | |
1548 | (JSObjectGetProperty): | |
1549 | (JSObjectSetProperty): | |
1550 | (JSObjectGetPropertyAtIndex): | |
1551 | (JSObjectSetPropertyAtIndex): | |
1552 | (JSObjectDeleteProperty): | |
1553 | (JSObjectCopyPropertyNames): | |
1554 | * API/JSValueRef.cpp: | |
1555 | (JSValueGetType): | |
1556 | (JSValueIsUndefined): | |
1557 | (JSValueIsNull): | |
1558 | (JSValueIsBoolean): | |
1559 | (JSValueIsNumber): | |
1560 | (JSValueIsString): | |
1561 | (JSValueIsObject): | |
1562 | (JSValueIsObjectOfClass): | |
1563 | (JSValueIsEqual): | |
1564 | (JSValueIsStrictEqual): | |
1565 | (JSValueIsInstanceOfConstructor): | |
1566 | (JSValueMakeUndefined): | |
1567 | (JSValueMakeNull): | |
1568 | (JSValueMakeBoolean): | |
1569 | (JSValueMakeNumber): | |
1570 | (JSValueMakeString): | |
1571 | (JSValueMakeFromJSONString): | |
1572 | (JSValueCreateJSONString): | |
1573 | (JSValueToBoolean): | |
1574 | (JSValueToNumber): | |
1575 | (JSValueToStringCopy): | |
1576 | (JSValueToObject): | |
1577 | (JSValueProtect): | |
1578 | * API/JSWeakObjectMapRefPrivate.cpp: | |
1579 | ||
1580 | 2013-05-20 David Kilzer <ddkilzer@apple.com> | |
1581 | ||
1582 | Synchronize FeatureDefines.xcconfig | |
1583 | ||
1584 | * Configurations/FeatureDefines.xcconfig: Remove | |
1585 | ENABLE_LINK_PRERENDER. This was missed in r150356. | |
1586 | ||
1587 | 2013-05-19 Anders Carlsson <andersca@apple.com> | |
1588 | ||
1589 | Remove link prerendering code | |
1590 | https://bugs.webkit.org/show_bug.cgi?id=116415 | |
1591 | ||
1592 | Reviewed by Darin Adler. | |
1593 | ||
1594 | This code was only used by Chromium and is dead now. | |
1595 | ||
1596 | * Configurations/FeatureDefines.xcconfig: | |
1597 | ||
1598 | 2013-05-18 Patrick Gansterer <paroga@webkit.org> | |
1599 | ||
1600 | [CMake] Replace *_LIBRARY_NAME with *_OUTPUT_NAME | |
1601 | https://bugs.webkit.org/show_bug.cgi?id=114554 | |
1602 | ||
1603 | Reviewed by Gyuyoung Kim. | |
1604 | ||
1605 | Using variables as target names is very uncommon in CMake. | |
1606 | The usual way to specify the name of the resulting binary | |
1607 | is to set the OUTPUT_NAME target property. | |
1608 | ||
1609 | * CMakeLists.txt: | |
1610 | * shell/CMakeLists.txt: | |
1611 | ||
1612 | 2013-05-17 Patrick Gansterer <paroga@webkit.org> | |
1613 | ||
1614 | [CMake] Remove invalid include paths | |
1615 | https://bugs.webkit.org/show_bug.cgi?id=116213 | |
1616 | ||
1617 | Reviewed by Gyuyoung Kim. | |
1618 | ||
1619 | Since "${JAVASCRIPTCORE_DIR}/wtf" does not exist, it is safe | |
1620 | to remove them from the list of include directories. | |
1621 | ||
1622 | * PlatformEfl.cmake: Removed. | |
1623 | * PlatformGTK.cmake: Removed. | |
1624 | ||
1625 | 2013-05-16 Patrick Gansterer <paroga@webkit.org> | |
1626 | ||
1627 | Consolidate lists in JavaScriptCore CMake files | |
1628 | https://bugs.webkit.org/show_bug.cgi?id=115992 | |
1629 | ||
1630 | Reviewed by Gyuyoung Kim. | |
1631 | ||
1632 | Move common files into the CMakeLists.txt to avoid duplicating the list of files. | |
1633 | Also rebase the recently added GTK files to match the other CMake ports, since | |
1634 | the submitted patch was based on an older version of the source tree. | |
1635 | ||
1636 | * CMakeLists.txt: | |
1637 | * PlatformEfl.cmake: | |
1638 | * PlatformGTK.cmake: | |
1639 | * shell/CMakeLists.txt: | |
1640 | * shell/PlatformEfl.cmake: | |
1641 | * shell/PlatformGTK.cmake: | |
1642 | ||
1643 | 2013-05-16 Geoffrey Garen <ggaren@apple.com> | |
1644 | ||
1645 | JSValue shouldn't protect/unprotect its context | |
1646 | https://bugs.webkit.org/show_bug.cgi?id=116234 | |
1647 | ||
1648 | Reviewed by Mark Hahnenberg. | |
1649 | ||
1650 | Our retain on _context is sufficient. | |
1651 | ||
1652 | * API/JSValue.mm: | |
1653 | (-[JSValue initWithValue:inContext:]): | |
1654 | (-[JSValue dealloc]): | |
1655 | ||
1656 | 2013-05-15 Ryosuke Niwa <rniwa@webkit.org> | |
1657 | ||
1658 | Another Windows build fix attempt after r150160. | |
1659 | ||
1660 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def: | |
1661 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in: | |
1662 | ||
1663 | 2013-05-15 Oliver Hunt <oliver@apple.com> | |
1664 | ||
1665 | RefCountedArray needs to use vector initialisers for its backing store | |
1666 | https://bugs.webkit.org/show_bug.cgi?id=116194 | |
1667 | ||
1668 | Reviewed by Gavin Barraclough. | |
1669 | ||
1670 | Use an out of line function to clear the exception stack to avoid | |
1671 | needing to include otherwise unnecessary headers all over the place. | |
1672 | ||
1673 | Everything else is just being updated to use that. | |
1674 | ||
1675 | * bytecompiler/BytecodeGenerator.cpp: | |
1676 | * interpreter/CallFrame.h: | |
1677 | (JSC::ExecState::clearSupplementaryExceptionInfo): | |
1678 | * interpreter/Interpreter.cpp: | |
1679 | (JSC::Interpreter::addStackTraceIfNecessary): | |
1680 | (JSC::Interpreter::throwException): | |
1681 | * runtime/JSGlobalObject.cpp: | |
1682 | (JSC::DynamicGlobalObjectScope::DynamicGlobalObjectScope): | |
1683 | * runtime/VM.cpp: | |
1684 | (JSC): | |
1685 | (JSC::VM::clearExceptionStack): | |
1686 | * runtime/VM.h: | |
1687 | (VM): | |
1688 | (JSC::VM::exceptionStack): | |
1689 | ||
1690 | 2013-05-15 Commit Queue <commit-queue@webkit.org> | |
1691 | ||
1692 | Unreviewed, rolling out r150051. | |
1693 | http://trac.webkit.org/changeset/150051 | |
1694 | https://bugs.webkit.org/show_bug.cgi?id=116186 | |
1695 | ||
1696 | Broke all JSC tests on Mac and the author is unresponsive | |
1697 | (Requested by rniwa on #webkit). | |
1698 | ||
1699 | * JavaScriptCore.xcodeproj/project.pbxproj: | |
1700 | ||
1701 | 2013-05-15 Julien Brianceau <jbrianceau@nds.com> | |
1702 | ||
1703 | Remove savedTimeoutReg from JITStackFrame for sh4 base JIT. | |
1704 | https://bugs.webkit.org/show_bug.cgi?id=116143 | |
1705 | ||
1706 | Reviewed by Geoffrey Garen. | |
1707 | ||
1708 | Since r148119, timeoutCheckRegister is removed from baseline JIT. | |
1709 | So we don't need to save r8 register in JITStackFrame anymore for sh4. | |
1710 | ||
1711 | * jit/JITStubs.cpp: | |
1712 | * jit/JITStubs.h: | |
1713 | (JITStackFrame): | |
1714 | ||
1715 | 2013-05-15 Nico Weber <thakis@chromium.org> | |
1716 | ||
1717 | WebKit doesn't support MSVS2003 any more, remove preprocessor checks for older versions. | |
1718 | https://bugs.webkit.org/show_bug.cgi?id=116157 | |
1719 | ||
1720 | Reviewed by Anders Carlsson. | |
1721 | ||
1722 | Also remove a gcc3.2 workaround. | |
1723 | ||
1724 | Merges parts of these two commits by the talented Nico Weber: | |
1725 | https://chromium.googlesource.com/chromium/blink/+/3677e2f47348daeff405a40b6f90fbdf0654c2f5 | |
1726 | https://chromium.googlesource.com/chromium/blink/+/0fcd96c448dc30be1416dcc15713c53710c1a312 | |
1727 | ||
1728 | * os-win32/inttypes.h: | |
1729 | ||
1730 | 2013-05-13 Alvaro Lopez Ortega <alvaro@alobbs.com> | |
1731 | ||
1732 | Nightly build's jsc doesn't work without DYLD_FRAMEWORK... | |
1733 | https://bugs.webkit.org/show_bug.cgi?id=79065 | |
1734 | ||
1735 | Reviewed by Darin Adler. | |
1736 | ||
1737 | Fixes the build process so the depencencies of the jsc binary are | |
1738 | modified before its copied to its target directory. In this way | |
1739 | jsc should always use relative reference to the JavaScriptCore | |
1740 | libraries. | |
1741 | ||
1742 | * JavaScriptCore.xcodeproj/project.pbxproj: Fixes the commands in | |
1743 | the "Copy Into Framework" target. | |
1744 | ||
1745 | 2013-05-13 Mark Hahnenberg <mhahnenberg@apple.com> | |
1746 | ||
1747 | Objective-C API: scanExternalObjectGraph should not create new JSVirtualMachine wrappers | |
1748 | https://bugs.webkit.org/show_bug.cgi?id=116074 | |
1749 | ||
1750 | If scanExternalObjectGraph creates a new JSVirtualMachine wrapper during collection, when the | |
1751 | scanExternalObjectGraph call finishes and the autorelease pool is drained we will dealloc the | |
1752 | JSVirtualMachine which will cause us to try to take the API lock for the corresponding VM. | |
1753 | If this happens on a GC thread other than the "main" thread, we will deadlock. The solution | |
1754 | is to just check the VM cache, and if there is no JSVirtualMachine wrapper, return early. | |
1755 | ||
1756 | Reviewed by Darin Adler. | |
1757 | ||
1758 | * API/JSVirtualMachine.mm: | |
1759 | (scanExternalObjectGraph): | |
1760 | ||
1761 | 2013-05-13 Benjamin Poulain <benjamin@webkit.org> | |
1762 | ||
1763 | Improve stringProtoFuncLastIndexOf for the prefix case | |
1764 | https://bugs.webkit.org/show_bug.cgi?id=115952 | |
1765 | ||
1766 | Reviewed by Geoffrey Garen. | |
1767 | ||
1768 | * runtime/StringPrototype.cpp: | |
1769 | (JSC::stringProtoFuncLastIndexOf): | |
1770 | Use the optimized string search when possible. | |
1771 | ||
1772 | On Joseph Pecoraro's tests, this gives a ~30% speed improvement. | |
1773 | ||
1774 | 2013-05-13 Zalan Bujtas <zalan@apple.com> | |
1775 | ||
1776 | WebProcess consuming very high CPU on linkedin.com | |
1777 | https://bugs.webkit.org/show_bug.cgi?id=115601 | |
1778 | ||
1779 | Reviewed by Andreas Kling. | |
1780 | ||
1781 | Disable WEB_TIMING_MINIMAL. | |
1782 | Turn off window.performance and performance.now(). Some JS frameworks expect | |
1783 | additional Web Timing APIs, when performance.now() is available. | |
1784 | ||
1785 | * Configurations/FeatureDefines.xcconfig: | |
1786 | ||
1787 | 2013-05-12 Anders Carlsson <andersca@apple.com> | |
1788 | ||
1789 | Stop including UnusedParam.h | |
1790 | https://bugs.webkit.org/show_bug.cgi?id=116003 | |
1791 | ||
1792 | Reviewed by Sam Weinig. | |
1793 | ||
1794 | UnusedParam.h is empty now so there's no need to include it anymore. | |
1795 | ||
1796 | * API/APICast.h: | |
1797 | * API/tests/JSNode.c: | |
1798 | * API/tests/JSNodeList.c: | |
1799 | * API/tests/minidom.c: | |
1800 | * API/tests/testapi.c: | |
1801 | * assembler/AbstractMacroAssembler.h: | |
1802 | * assembler/MacroAssemblerCodeRef.h: | |
1803 | * bytecode/CodeBlock.cpp: | |
1804 | * heap/HandleStack.h: | |
1805 | * interpreter/JSStackInlines.h: | |
1806 | * jit/CompactJITCodeMap.h: | |
1807 | * jit/ExecutableAllocator.h: | |
1808 | * parser/SourceProvider.h: | |
1809 | * runtime/DatePrototype.cpp: | |
1810 | * runtime/JSNotAnObject.cpp: | |
1811 | * runtime/JSSegmentedVariableObject.h: | |
1812 | * runtime/JSVariableObject.h: | |
1813 | * runtime/Options.cpp: | |
1814 | * runtime/PropertyOffset.h: | |
1815 | ||
1816 | 2013-05-11 Martin Robinson <mrobinson@igalia.com> | |
1817 | ||
1818 | [GTK] Add a basic cmake build for WTF and JavaScriptCore | |
1819 | https://bugs.webkit.org/show_bug.cgi?id=115967 | |
1820 | ||
1821 | Reviewed by Laszlo Gombos. | |
1822 | ||
1823 | * PlatformGTK.cmake: Added. | |
1824 | * shell/PlatformGTK.cmake: Added. | |
1825 | ||
1826 | 2013-05-10 Laszlo Gombos <l.gombos@samsung.com> | |
1827 | ||
1828 | Remove USE(OS_RANDOMNESS) | |
1829 | https://bugs.webkit.org/show_bug.cgi?id=108095 | |
1830 | ||
1831 | Reviewed by Darin Adler. | |
1832 | ||
1833 | Remove the USE(OS_RANDOMNESS) guard as it is turned on for all | |
1834 | ports. | |
1835 | ||
1836 | * jit/JIT.cpp: | |
1837 | (JSC::JIT::JIT): | |
1838 | ||
1839 | 2013-05-10 Mark Hahnenberg <mhahnenberg@apple.com> | |
1840 | ||
1841 | Rename StructureCheckHoistingPhase to TypeCheckHoistingPhase | |
1842 | https://bugs.webkit.org/show_bug.cgi?id=115938 | |
1843 | ||
1844 | We're going to add some more types of check hoisting soon, so let's have the right name here. | |
1845 | ||
1846 | Rubber stamped by Filip Pizlo. | |
1847 | ||
1848 | * CMakeLists.txt: | |
1849 | * GNUmakefile.list.am: | |
1850 | * JavaScriptCore.xcodeproj/project.pbxproj: | |
1851 | * Target.pri: | |
1852 | * dfg/DFGDriver.cpp: | |
1853 | (JSC::DFG::compile): | |
1854 | * dfg/DFGStructureCheckHoistingPhase.cpp: Removed. | |
1855 | * dfg/DFGStructureCheckHoistingPhase.h: Removed. | |
1856 | * dfg/DFGTypeCheckHoistingPhase.cpp: Copied from Source/JavaScriptCore/dfg/DFGStructureCheckHoistingPhase.cpp. | |
1857 | (JSC::DFG::TypeCheckHoistingPhase::TypeCheckHoistingPhase): | |
1858 | (JSC::DFG::performTypeCheckHoisting): | |
1859 | * dfg/DFGTypeCheckHoistingPhase.h: Copied from Source/JavaScriptCore/dfg/DFGStructureCheckHoistingPhase.h. | |
1860 | ||
1861 | 2013-05-09 Christophe Dumez <ch.dumez@sisa.samsung.com> | |
1862 | ||
1863 | Unreviewed build fix after r149836. | |
1864 | ||
1865 | It broke at least EFL and GTK builds. Move new static members initialization | |
1866 | outside the class. Those need to have a definition outside the class because | |
1867 | their address is used (e.g. CodeCacheMap::nonGlobalWorkingSetMaxEntries). | |
1868 | ||
1869 | * runtime/CodeCache.cpp: | |
1870 | (JSC): | |
1871 | * runtime/CodeCache.h: | |
1872 | (CodeCacheMap): | |
1873 | ||
1874 | 2013-05-08 Oliver Hunt <oliver@apple.com> | |
1875 | ||
1876 | Code cache stores bogus var references for functions in eval code | |
1877 | https://bugs.webkit.org/show_bug.cgi?id=115747 | |
1878 | ||
1879 | Reviewed by Mark Hahnenberg. | |
1880 | ||
1881 | Non-global eval now uses a per-CodeBlock cache, and only use it | |
1882 | when we're at the top of a function's scope. This means that we | |
1883 | will no longer cache the parsing of a single string across | |
1884 | multiple functions, and we won't cache when we're nested inside | |
1885 | constructs like |with| and |catch| where previously we would, which | |
1886 | is good because caching in those cases is unsound. | |
1887 | ||
1888 | * bytecode/EvalCodeCache.h: | |
1889 | (JSC): | |
1890 | (JSC::EvalCodeCache::getSlow): | |
1891 | (JSC::EvalCodeCache::get): | |
1892 | * bytecode/UnlinkedCodeBlock.h: | |
1893 | (JSC::UnlinkedCodeBlock::codeCacheForEval): | |
1894 | (UnlinkedCodeBlock): | |
1895 | (RareData): | |
1896 | * debugger/Debugger.cpp: | |
1897 | (JSC::evaluateInGlobalCallFrame): | |
1898 | * debugger/DebuggerCallFrame.cpp: | |
1899 | (JSC::DebuggerCallFrame::evaluate): | |
1900 | * interpreter/Interpreter.cpp: | |
1901 | (JSC::eval): | |
1902 | * runtime/CodeCache.cpp: | |
1903 | (JSC::CodeCache::CodeCache): | |
1904 | (JSC::CodeCache::generateBytecode): | |
1905 | (JSC): | |
1906 | (JSC::CodeCache::getCodeBlock): | |
1907 | * runtime/CodeCache.h: | |
1908 | (JSC::CodeCacheMap::CodeCacheMap): | |
1909 | (CodeCacheMap): | |
1910 | (JSC::CodeCacheMap::canPruneQuickly): | |
1911 | (JSC::CodeCacheMap::prune): | |
1912 | (JSC::CodeCache::create): | |
1913 | (CodeCache): | |
1914 | * runtime/Executable.cpp: | |
1915 | (JSC::EvalExecutable::EvalExecutable): | |
1916 | (JSC::EvalExecutable::compileInternal): | |
1917 | * runtime/Executable.h: | |
1918 | (JSC::EvalExecutable::create): | |
1919 | (EvalExecutable): | |
1920 | * runtime/JSGlobalObject.cpp: | |
1921 | (JSC::JSGlobalObject::createEvalCodeBlock): | |
1922 | * runtime/JSGlobalObject.h: | |
1923 | (JSGlobalObject): | |
1924 | * runtime/JSGlobalObjectFunctions.cpp: | |
1925 | (JSC::globalFuncEval): | |
1926 | * runtime/VM.cpp: | |
1927 | (JSC::VM::VM): | |
1928 | * runtime/VM.h: | |
1929 | (VM): | |
1930 | ||
1931 | 2013-05-08 Mark Hahnenberg <mhahnenberg@apple.com> | |
1932 | ||
1933 | DFGArrayMode::fromObserved is too liberal when it sees different Array and NonArray shapes | |
1934 | https://bugs.webkit.org/show_bug.cgi?id=115805 | |
1935 | ||
1936 | Reviewed by Geoffrey Garen. | |
1937 | ||
1938 | It checks the observed ArrayModes to see if we have seen any ArrayWith* first. If so, it assumes it's | |
1939 | an Array::Array, even if we've also observed any NonArrayWith* in the ArrayProfile. This leads to the | |
1940 | code generated by jumpSlowForUnwantedArrayMode to check the indexing type against (shape | IsArray) | |
1941 | instead of just shape, which can cause us to exit a lot in the case that we saw a NonArray. | |
1942 | ||
1943 | To fix this we need to add a case that checks for both ArrayWith* and NonArrayWith* cases first, which | |
1944 | should then use Array::PossiblyArray, then do the checks we were already doing. | |
1945 | ||
1946 | * bytecode/ArrayProfile.h: | |
1947 | (JSC::hasSeenArray): | |
1948 | (JSC::hasSeenNonArray): | |
1949 | * dfg/DFGArrayMode.cpp: | |
1950 | (JSC::DFG::ArrayMode::fromObserved): | |
1951 | ||
1952 | 2013-05-09 Joe Mason <jmason@blackberry.com> | |
1953 | ||
1954 | [BlackBerry] Set up logging buffer on start of jsc executable | |
1955 | https://bugs.webkit.org/show_bug.cgi?id=114688 | |
1956 | ||
1957 | Reviewed by Rob Buis. | |
1958 | ||
1959 | Internal PR: 322715 | |
1960 | Internally Reviewed By: Jeff Rogers | |
1961 | ||
1962 | * jsc.cpp: | |
1963 | (main): call BB::Platform::setupApplicationLogging | |
1964 | ||
1965 | 2013-05-08 Michael Saboff <msaboff@apple.com> | |
1966 | ||
1967 | JSC: There should be a disassembler for ARM Thumb 2 | |
1968 | https://bugs.webkit.org/show_bug.cgi?id=115827 | |
1969 | ||
1970 | Reviewed by Filip Pizlo. | |
1971 | ||
1972 | Added a new disassembler for ARMv7 Thumb2 instructions for use by the JSC debugging | |
1973 | and profiling code. The opcode coverage is currently not complete. It covers all | |
1974 | of the integer instructions JSC currently emits, but only a limited number of | |
1975 | floating point opcodes. Currently that is just the 64 bit vmov and vmsr instructions. | |
1976 | ||
1977 | The disassembler is structured as a base opcode class ARMv7DOpcode with sub-classes | |
1978 | for each instruction group. There is a public format method that does the bulk of | |
1979 | the disassembly work. There are two broad sub-classes, ARMv7D16BitOpcode and | |
1980 | ARMv7D32BitOpcode, for the 16 bit and 32 bit opcodes. There are sub-classes under | |
1981 | those two classes for individual and related groups of opcodes. Instructions are | |
1982 | "dispatched" to the right subclass via two arrays of linked lists in the inner classes | |
1983 | OpcodeGroup. There is one such inner class for each ARMv7D16BitOpcode and ARMv7D32BitOpcode. | |
1984 | Each OpcodeGroup has a mask and a pattern that it applies to the instruction to determine | |
1985 | that it matches a particular group. OpcodeGroup uses a static method to reinterpret_cast | |
1986 | the Opcode object to the right base class for the instruction group for formatting. | |
1987 | The cast eliminates the need of allocating an object for each decoded instruction. | |
1988 | Unknown instructions are formatted as ".word 1234" or ".long 12345678" depending whether | |
1989 | the instruction is 16 or 32 bit. | |
1990 | ||
1991 | * JavaScriptCore.xcodeproj/project.pbxproj: | |
1992 | * disassembler/ARMv7: Added. | |
1993 | * disassembler/ARMv7/ARMv7DOpcode.cpp: Added. | |
1994 | (ARMv7Disassembler): | |
1995 | (OpcodeGroupInitializer): | |
1996 | (JSC::ARMv7Disassembler::ARMv7DOpcode::init): | |
1997 | (JSC::ARMv7Disassembler::ARMv7DOpcode::startITBlock): | |
1998 | (JSC::ARMv7Disassembler::ARMv7DOpcode::saveITConditionAt): | |
1999 | (JSC::ARMv7Disassembler::ARMv7DOpcode::fetchOpcode): | |
2000 | (JSC::ARMv7Disassembler::ARMv7DOpcode::disassemble): | |
2001 | (JSC::ARMv7Disassembler::ARMv7DOpcode::bufferPrintf): | |
2002 | (JSC::ARMv7Disassembler::ARMv7DOpcode::appendInstructionName): | |
2003 | (JSC::ARMv7Disassembler::ARMv7DOpcode::appendRegisterName): | |
2004 | (JSC::ARMv7Disassembler::ARMv7DOpcode::appendRegisterList): | |
2005 | (JSC::ARMv7Disassembler::ARMv7DOpcode::appendFPRegisterName): | |
2006 | (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::init): | |
2007 | (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::doDisassemble): | |
2008 | (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::defaultFormat): | |
2009 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddRegisterT2::format): | |
2010 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSPPlusImmediate::format): | |
2011 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractT1::format): | |
2012 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate3::format): | |
2013 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate8::format): | |
2014 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchConditionalT1::format): | |
2015 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchExchangeT1::format): | |
2016 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchT2::format): | |
2017 | (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareImmediateT1::format): | |
2018 | (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareRegisterT1::format): | |
2019 | (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareRegisterT2::format): | |
2020 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegisterT1::format): | |
2021 | (JSC::ARMv7Disassembler::ARMv7DOpcodeGeneratePCRelativeAddress::format): | |
2022 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadFromLiteralPool::format): | |
2023 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::format): | |
2024 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterOffsetT1::format): | |
2025 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterSPRelative::format): | |
2026 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLogicalImmediateT1::format): | |
2027 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscAddSubSP::format): | |
2028 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscBreakpointT1::format): | |
2029 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscByteHalfwordOps::format): | |
2030 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscCompareAndBranch::format): | |
2031 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscHint16::format): | |
2032 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscIfThenT1::format): | |
2033 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscPushPop::format): | |
2034 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMoveImmediateT1::format): | |
2035 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMoveRegisterT1::format): | |
2036 | (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::init): | |
2037 | (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::doDisassemble): | |
2038 | (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::defaultFormat): | |
2039 | (JSC::ARMv7Disassembler::ARMv7DOpcodeConditionalBranchT3::format): | |
2040 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchOrBranchLink::format): | |
2041 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingModifiedImmediate::appendModifiedImmediate): | |
2042 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingModifiedImmediate::format): | |
2043 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::appendImmShift): | |
2044 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::format): | |
2045 | (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::format): | |
2046 | (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::appendFPRegister): | |
2047 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegShift::format): | |
2048 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegExtend::format): | |
2049 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegParallel::format): | |
2050 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegMisc::format): | |
2051 | (JSC::ARMv7Disassembler::ARMv7DOpcodeHint32::format): | |
2052 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadRegister::format): | |
2053 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadSignedImmediate::format): | |
2054 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadUnsignedImmediate::format): | |
2055 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::format): | |
2056 | (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::format): | |
2057 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataPushPopSingle::format): | |
2058 | (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleImmediate12::format): | |
2059 | (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleImmediate8::format): | |
2060 | (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleRegister::format): | |
2061 | (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVDoublePrecision::format): | |
2062 | (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVSinglePrecision::format): | |
2063 | (JSC::ARMv7Disassembler::ARMv7DOpcodeVMSR::format): | |
2064 | * disassembler/ARMv7/ARMv7DOpcode.h: Added. | |
2065 | (ARMv7Disassembler): | |
2066 | (ARMv7DOpcode): | |
2067 | (JSC::ARMv7Disassembler::ARMv7DOpcode::ARMv7DOpcode): | |
2068 | (JSC::ARMv7Disassembler::ARMv7DOpcode::is32BitInstruction): | |
2069 | (JSC::ARMv7Disassembler::ARMv7DOpcode::isFPInstruction): | |
2070 | (JSC::ARMv7Disassembler::ARMv7DOpcode::conditionName): | |
2071 | (JSC::ARMv7Disassembler::ARMv7DOpcode::shiftName): | |
2072 | (JSC::ARMv7Disassembler::ARMv7DOpcode::inITBlock): | |
2073 | (JSC::ARMv7Disassembler::ARMv7DOpcode::startingITBlock): | |
2074 | (JSC::ARMv7Disassembler::ARMv7DOpcode::endITBlock): | |
2075 | (JSC::ARMv7Disassembler::ARMv7DOpcode::appendInstructionNameNoITBlock): | |
2076 | (JSC::ARMv7Disassembler::ARMv7DOpcode::appendSeparator): | |
2077 | (JSC::ARMv7Disassembler::ARMv7DOpcode::appendCharacter): | |
2078 | (JSC::ARMv7Disassembler::ARMv7DOpcode::appendString): | |
2079 | (JSC::ARMv7Disassembler::ARMv7DOpcode::appendShiftType): | |
2080 | (JSC::ARMv7Disassembler::ARMv7DOpcode::appendSignedImmediate): | |
2081 | (JSC::ARMv7Disassembler::ARMv7DOpcode::appendUnsignedImmediate): | |
2082 | (JSC::ARMv7Disassembler::ARMv7DOpcode::appendPCRelativeOffset): | |
2083 | (JSC::ARMv7Disassembler::ARMv7DOpcode::appendShiftAmount): | |
2084 | (ARMv7D16BitOpcode): | |
2085 | (OpcodeGroup): | |
2086 | (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::OpcodeGroup::OpcodeGroup): | |
2087 | (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::OpcodeGroup::setNext): | |
2088 | (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::OpcodeGroup::next): | |
2089 | (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::OpcodeGroup::matches): | |
2090 | (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::OpcodeGroup::format): | |
2091 | (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::rm): | |
2092 | (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::rd): | |
2093 | (JSC::ARMv7Disassembler::ARMv7D16BitOpcode::opcodeGroupNumber): | |
2094 | (ARMv7DOpcodeAddRegisterT2): | |
2095 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddRegisterT2::rdn): | |
2096 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddRegisterT2::rm): | |
2097 | (ARMv7DOpcodeAddSPPlusImmediate): | |
2098 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSPPlusImmediate::rd): | |
2099 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSPPlusImmediate::immediate8): | |
2100 | (ARMv7DOpcodeAddSubtract): | |
2101 | (ARMv7DOpcodeAddSubtractT1): | |
2102 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractT1::opName): | |
2103 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractT1::op): | |
2104 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractT1::rm): | |
2105 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractT1::rn): | |
2106 | (ARMv7DOpcodeAddSubtractImmediate3): | |
2107 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate3::opName): | |
2108 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate3::op): | |
2109 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate3::immediate3): | |
2110 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate3::rn): | |
2111 | (ARMv7DOpcodeAddSubtractImmediate8): | |
2112 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate8::opName): | |
2113 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate8::op): | |
2114 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate8::rdn): | |
2115 | (JSC::ARMv7Disassembler::ARMv7DOpcodeAddSubtractImmediate8::immediate8): | |
2116 | (ARMv7DOpcodeBranchConditionalT1): | |
2117 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchConditionalT1::condition): | |
2118 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchConditionalT1::offset): | |
2119 | (ARMv7DOpcodeBranchExchangeT1): | |
2120 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchExchangeT1::opName): | |
2121 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchExchangeT1::rm): | |
2122 | (ARMv7DOpcodeBranchT2): | |
2123 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchT2::immediate11): | |
2124 | (ARMv7DOpcodeCompareImmediateT1): | |
2125 | (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareImmediateT1::rn): | |
2126 | (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareImmediateT1::immediate8): | |
2127 | (ARMv7DOpcodeCompareRegisterT1): | |
2128 | (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareRegisterT1::rn): | |
2129 | (ARMv7DOpcodeCompareRegisterT2): | |
2130 | (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareRegisterT2::rn): | |
2131 | (JSC::ARMv7Disassembler::ARMv7DOpcodeCompareRegisterT2::rm): | |
2132 | (ARMv7DOpcodeDataProcessingRegisterT1): | |
2133 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegisterT1::opName): | |
2134 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegisterT1::op): | |
2135 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegisterT1::rm): | |
2136 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegisterT1::rdn): | |
2137 | (ARMv7DOpcodeGeneratePCRelativeAddress): | |
2138 | (JSC::ARMv7Disassembler::ARMv7DOpcodeGeneratePCRelativeAddress::rd): | |
2139 | (JSC::ARMv7Disassembler::ARMv7DOpcodeGeneratePCRelativeAddress::immediate8): | |
2140 | (ARMv7DOpcodeLoadFromLiteralPool): | |
2141 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadFromLiteralPool::rt): | |
2142 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadFromLiteralPool::immediate8): | |
2143 | (ARMv7DOpcodeLoadStoreRegisterImmediate): | |
2144 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::opName): | |
2145 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::op): | |
2146 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::immediate5): | |
2147 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::rn): | |
2148 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::rt): | |
2149 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterImmediate::scale): | |
2150 | (ARMv7DOpcodeLoadStoreRegisterImmediateWordAndByte): | |
2151 | (ARMv7DOpcodeLoadStoreRegisterImmediateHalfWord): | |
2152 | (ARMv7DOpcodeLoadStoreRegisterOffsetT1): | |
2153 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterOffsetT1::opName): | |
2154 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterOffsetT1::opB): | |
2155 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterOffsetT1::rm): | |
2156 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterOffsetT1::rn): | |
2157 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterOffsetT1::rt): | |
2158 | (ARMv7DOpcodeLoadStoreRegisterSPRelative): | |
2159 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterSPRelative::opName): | |
2160 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterSPRelative::op): | |
2161 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterSPRelative::rt): | |
2162 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadStoreRegisterSPRelative::immediate8): | |
2163 | (ARMv7DOpcodeLogicalImmediateT1): | |
2164 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLogicalImmediateT1::opName): | |
2165 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLogicalImmediateT1::op): | |
2166 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLogicalImmediateT1::immediate5): | |
2167 | (ARMv7DOpcodeMiscAddSubSP): | |
2168 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscAddSubSP::opName): | |
2169 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscAddSubSP::op): | |
2170 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscAddSubSP::immediate7): | |
2171 | (ARMv7DOpcodeMiscByteHalfwordOps): | |
2172 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscByteHalfwordOps::opName): | |
2173 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscByteHalfwordOps::op): | |
2174 | (ARMv7DOpcodeMiscBreakpointT1): | |
2175 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscBreakpointT1::immediate8): | |
2176 | (ARMv7DOpcodeMiscCompareAndBranch): | |
2177 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscCompareAndBranch::opName): | |
2178 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscCompareAndBranch::op): | |
2179 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscCompareAndBranch::immediate6): | |
2180 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscCompareAndBranch::rn): | |
2181 | (ARMv7DOpcodeMiscHint16): | |
2182 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscHint16::opName): | |
2183 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscHint16::opA): | |
2184 | (ARMv7DOpcodeMiscIfThenT1): | |
2185 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscIfThenT1::firstCondition): | |
2186 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscIfThenT1::mask): | |
2187 | (ARMv7DOpcodeMiscPushPop): | |
2188 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscPushPop::opName): | |
2189 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscPushPop::op): | |
2190 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMiscPushPop::registerMask): | |
2191 | (ARMv7DOpcodeMoveImmediateT1): | |
2192 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMoveImmediateT1::rd): | |
2193 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMoveImmediateT1::immediate8): | |
2194 | (ARMv7DOpcodeMoveRegisterT1): | |
2195 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMoveRegisterT1::rd): | |
2196 | (JSC::ARMv7Disassembler::ARMv7DOpcodeMoveRegisterT1::rm): | |
2197 | (ARMv7D32BitOpcode): | |
2198 | (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::OpcodeGroup::OpcodeGroup): | |
2199 | (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::OpcodeGroup::setNext): | |
2200 | (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::OpcodeGroup::next): | |
2201 | (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::OpcodeGroup::matches): | |
2202 | (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::OpcodeGroup::format): | |
2203 | (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::rd): | |
2204 | (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::rm): | |
2205 | (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::rn): | |
2206 | (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::rt): | |
2207 | (JSC::ARMv7Disassembler::ARMv7D32BitOpcode::opcodeGroupNumber): | |
2208 | (ARMv7DOpcodeBranchRelative): | |
2209 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchRelative::sBit): | |
2210 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchRelative::j1): | |
2211 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchRelative::j2): | |
2212 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchRelative::immediate11): | |
2213 | (ARMv7DOpcodeConditionalBranchT3): | |
2214 | (JSC::ARMv7Disassembler::ARMv7DOpcodeConditionalBranchT3::offset): | |
2215 | (JSC::ARMv7Disassembler::ARMv7DOpcodeConditionalBranchT3::condition): | |
2216 | (JSC::ARMv7Disassembler::ARMv7DOpcodeConditionalBranchT3::immediate6): | |
2217 | (ARMv7DOpcodeBranchOrBranchLink): | |
2218 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchOrBranchLink::offset): | |
2219 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchOrBranchLink::immediate10): | |
2220 | (JSC::ARMv7Disassembler::ARMv7DOpcodeBranchOrBranchLink::isBL): | |
2221 | (ARMv7DOpcodeDataProcessingLogicalAndRithmetic): | |
2222 | (ARMv7DOpcodeDataProcessingModifiedImmediate): | |
2223 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingModifiedImmediate::opName): | |
2224 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingModifiedImmediate::op): | |
2225 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingModifiedImmediate::sBit): | |
2226 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingModifiedImmediate::immediate12): | |
2227 | (ARMv7DOpcodeDataProcessingShiftedReg): | |
2228 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::opName): | |
2229 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::sBit): | |
2230 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::op): | |
2231 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::immediate5): | |
2232 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::type): | |
2233 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::tbBit): | |
2234 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingShiftedReg::tBit): | |
2235 | (ARMv7DOpcodeDataProcessingReg): | |
2236 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingReg::op1): | |
2237 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingReg::op2): | |
2238 | (ARMv7DOpcodeDataProcessingRegShift): | |
2239 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegShift::opName): | |
2240 | (ARMv7DOpcodeDataProcessingRegExtend): | |
2241 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegExtend::opExtendName): | |
2242 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegExtend::opExtendAndAddName): | |
2243 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegExtend::rotate): | |
2244 | (ARMv7DOpcodeDataProcessingRegParallel): | |
2245 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegParallel::opName): | |
2246 | (ARMv7DOpcodeDataProcessingRegMisc): | |
2247 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataProcessingRegMisc::opName): | |
2248 | (ARMv7DOpcodeHint32): | |
2249 | (JSC::ARMv7Disassembler::ARMv7DOpcodeHint32::opName): | |
2250 | (JSC::ARMv7Disassembler::ARMv7DOpcodeHint32::isDebugHint): | |
2251 | (JSC::ARMv7Disassembler::ARMv7DOpcodeHint32::debugOption): | |
2252 | (JSC::ARMv7Disassembler::ARMv7DOpcodeHint32::op): | |
2253 | (ARMv7DOpcodeFPTransfer): | |
2254 | (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::opH): | |
2255 | (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::opL): | |
2256 | (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::rt): | |
2257 | (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::opC): | |
2258 | (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::opB): | |
2259 | (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::vd): | |
2260 | (JSC::ARMv7Disassembler::ARMv7DOpcodeFPTransfer::vn): | |
2261 | (ARMv7DOpcodeDataLoad): | |
2262 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataLoad::opName): | |
2263 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataLoad::op): | |
2264 | (ARMv7DOpcodeLoadRegister): | |
2265 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadRegister::immediate2): | |
2266 | (ARMv7DOpcodeLoadSignedImmediate): | |
2267 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadSignedImmediate::pBit): | |
2268 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadSignedImmediate::uBit): | |
2269 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadSignedImmediate::wBit): | |
2270 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadSignedImmediate::immediate8): | |
2271 | (ARMv7DOpcodeLoadUnsignedImmediate): | |
2272 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLoadUnsignedImmediate::immediate12): | |
2273 | (ARMv7DOpcodeLongMultipleDivide): | |
2274 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::opName): | |
2275 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::smlalOpName): | |
2276 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::smlaldOpName): | |
2277 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::smlsldOpName): | |
2278 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::rdLo): | |
2279 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::rdHi): | |
2280 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::op1): | |
2281 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::op2): | |
2282 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::nBit): | |
2283 | (JSC::ARMv7Disassembler::ARMv7DOpcodeLongMultipleDivide::mBit): | |
2284 | (ARMv7DOpcodeDataPushPopSingle): | |
2285 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataPushPopSingle::opName): | |
2286 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataPushPopSingle::op): | |
2287 | (ARMv7DOpcodeDataStoreSingle): | |
2288 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataStoreSingle::opName): | |
2289 | (JSC::ARMv7Disassembler::ARMv7DOpcodeDataStoreSingle::op): | |
2290 | (ARMv7DOpcodeStoreSingleImmediate12): | |
2291 | (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleImmediate12::immediate12): | |
2292 | (ARMv7DOpcodeStoreSingleImmediate8): | |
2293 | (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleImmediate8::pBit): | |
2294 | (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleImmediate8::uBit): | |
2295 | (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleImmediate8::wBit): | |
2296 | (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleImmediate8::immediate8): | |
2297 | (ARMv7DOpcodeStoreSingleRegister): | |
2298 | (JSC::ARMv7Disassembler::ARMv7DOpcodeStoreSingleRegister::immediate2): | |
2299 | (ARMv7DOpcodeUnmodifiedImmediate): | |
2300 | (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::opName): | |
2301 | (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::op): | |
2302 | (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::shBit): | |
2303 | (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::bitNumOrSatImmediate): | |
2304 | (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::immediate5): | |
2305 | (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::immediate12): | |
2306 | (JSC::ARMv7Disassembler::ARMv7DOpcodeUnmodifiedImmediate::immediate16): | |
2307 | (ARMv7DOpcodeVMOVDoublePrecision): | |
2308 | (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVDoublePrecision::op): | |
2309 | (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVDoublePrecision::rt2): | |
2310 | (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVDoublePrecision::rt): | |
2311 | (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVDoublePrecision::vm): | |
2312 | (ARMv7DOpcodeVMOVSinglePrecision): | |
2313 | (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVSinglePrecision::op): | |
2314 | (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVSinglePrecision::rt2): | |
2315 | (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVSinglePrecision::rt): | |
2316 | (JSC::ARMv7Disassembler::ARMv7DOpcodeVMOVSinglePrecision::vm): | |
2317 | (ARMv7DOpcodeVMSR): | |
2318 | (JSC::ARMv7Disassembler::ARMv7DOpcodeVMSR::opL): | |
2319 | (JSC::ARMv7Disassembler::ARMv7DOpcodeVMSR::rt): | |
2320 | * disassembler/ARMv7Disassembler.cpp: Added. | |
2321 | (JSC::tryToDisassemble): | |
2322 | ||
2323 | 2013-05-07 Julien Brianceau <jbrianceau@nds.com> | |
2324 | ||
2325 | Take advantage of pre-decrement and post-increment opcodes for sh4 base JIT. | |
2326 | https://bugs.webkit.org/show_bug.cgi?id=115722 | |
2327 | ||
2328 | Reviewed by Oliver Hunt. | |
2329 | ||
2330 | * assembler/MacroAssemblerSH4.h: | |
2331 | (JSC::MacroAssemblerSH4::load8PostInc): | |
2332 | (MacroAssemblerSH4): | |
2333 | (JSC::MacroAssemblerSH4::load16Unaligned): | |
2334 | (JSC::MacroAssemblerSH4::load16PostInc): | |
2335 | (JSC::MacroAssemblerSH4::storeDouble): | |
2336 | (JSC::MacroAssemblerSH4::load32WithUnalignedHalfWords): | |
2337 | * assembler/SH4Assembler.h: | |
2338 | (JSC::SH4Assembler::movwMemRegIn): | |
2339 | (SH4Assembler): | |
2340 | (JSC::SH4Assembler::movbMemRegIn): | |
2341 | (JSC::SH4Assembler::printInstr): | |
2342 | ||
2343 | 2013-05-07 Anders Carlsson <andersca@apple.com> | |
2344 | ||
2345 | Remove AlwaysInline.h from WTF | |
2346 | https://bugs.webkit.org/show_bug.cgi?id=115727 | |
2347 | ||
2348 | Reviewed by Brent Fulgham. | |
2349 | ||
2350 | The macro that used to be in AlwaysInline.h is now in Compiler.h so there's no reason | |
2351 | to keep AlwaysInline.h around anymore. | |
2352 | ||
2353 | * jit/JSInterfaceJIT.h: | |
2354 | * parser/Lexer.h: | |
2355 | * runtime/JSCJSValue.h: | |
2356 | * runtime/SymbolTable.h: | |
2357 | ||
2358 | 2013-05-07 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> | |
2359 | ||
2360 | HashTraits<RefPtr<P> >::PeekType should be raw pointer for better performance | |
2361 | https://bugs.webkit.org/show_bug.cgi?id=115646 | |
2362 | ||
2363 | Reviewed by Darin Adler. | |
2364 | ||
2365 | * bytecompiler/StaticPropertyAnalyzer.h: | |
2366 | (JSC::StaticPropertyAnalyzer::putById): | |
2367 | Updated accordingly to new HashMap<.., RefPtr>::get() semantics. | |
2368 | ||
2369 | 2013-05-06 Julien Brianceau <jbrianceau@nds.com> | |
2370 | ||
2371 | Misc bugfix and cleaning in sh4 base JIT. | |
2372 | https://bugs.webkit.org/show_bug.cgi?id=115627 | |
2373 | ||
2374 | Reviewed by Oliver Hunt. | |
2375 | ||
2376 | Get rid of loadX(RegisterID r0, RegisterID src, RegisterID dest) functions. | |
2377 | Remove misplaced extuw() implementation from MacroAssemblerSH4. | |
2378 | Add movbRegMemr0 and movwRegMemr0 functions in SH4Assembler. | |
2379 | ||
2380 | * assembler/MacroAssemblerSH4.h: | |
2381 | (JSC::MacroAssemblerSH4::add32): Skip operation when first operand is a zero immediate. | |
2382 | (JSC::MacroAssemblerSH4::sub32): Skip operation when first operand is a zero immediate. | |
2383 | (JSC::MacroAssemblerSH4::load32): Fix wrong usage of r0 register. | |
2384 | (JSC::MacroAssemblerSH4::load8Signed): Handle "base == r0" case. | |
2385 | (MacroAssemblerSH4): | |
2386 | (JSC::MacroAssemblerSH4::load16): Handle "base == r0" case. | |
2387 | (JSC::MacroAssemblerSH4::load16Unaligned): Use extuw() implementation from SH4Assembler. | |
2388 | (JSC::MacroAssemblerSH4::load16Signed): Cosmetic change. | |
2389 | (JSC::MacroAssemblerSH4::store8): Fix unhandled BaseIndex offset and handle (base == r0) case. | |
2390 | (JSC::MacroAssemblerSH4::store16): Fix unhandled BaseIndex offset and handle (base == r0) case. | |
2391 | (JSC::MacroAssemblerSH4::store32): | |
2392 | * assembler/SH4Assembler.h: | |
2393 | (JSC::SH4Assembler::movwRegMemr0): | |
2394 | (SH4Assembler): | |
2395 | (JSC::SH4Assembler::movbRegMemr0): | |
2396 | (JSC::SH4Assembler::placeConstantPoolBarrier): Cosmetic change. | |
2397 | (JSC::SH4Assembler::maxJumpReplacementSize): | |
2398 | (JSC::SH4Assembler::replaceWithJump): Correct branch range and save an opcode. | |
2399 | (JSC::SH4Assembler::printInstr): | |
2400 | ||
2401 | 2013-05-06 Anders Carlsson <andersca@apple.com> | |
2402 | ||
2403 | Stop using WTF::deleteAllValues in JavaScriptCore | |
2404 | https://bugs.webkit.org/show_bug.cgi?id=115670 | |
2405 | ||
2406 | Reviewed by Oliver Hunt. | |
2407 | ||
2408 | Change the Vectors used to Vectors of OwnPtrs instead. | |
2409 | ||
2410 | * heap/DFGCodeBlocks.cpp: | |
2411 | (JSC::DFGCodeBlocks::~DFGCodeBlocks): | |
2412 | (JSC::DFGCodeBlocks::deleteUnmarkedJettisonedCodeBlocks): | |
2413 | ||
2414 | 2013-05-06 Andras Becsi <andras.becsi@digia.com> | |
2415 | ||
2416 | Build with GCC 4.8 fails because of -Wmaybe-uninitialized | |
2417 | https://bugs.webkit.org/show_bug.cgi?id=115648 | |
2418 | ||
2419 | Reviewed by Michael Saboff. | |
2420 | ||
2421 | Initialize values in Options::setOption since from | |
2422 | there we end up calling OptionRange::init with | |
2423 | uninitialized members. | |
2424 | ||
2425 | * runtime/Options.cpp: | |
2426 | ||
2427 | 2013-05-06 Gabor Rapcsanyi <rgabor@webkit.org> | |
2428 | ||
2429 | JSC ARM traditional failing on Octane NavierStokes test | |
2430 | https://bugs.webkit.org/show_bug.cgi?id=115626 | |
2431 | ||
2432 | Reviewed by Zoltan Herczeg. | |
2433 | ||
2434 | Change the ARM traditional assembler to use double precision on value | |
2435 | conversions. | |
2436 | ||
2437 | * assembler/ARMAssembler.h: | |
2438 | ||
2439 | 2013-05-03 Michael Saboff <msaboff@apple.com> | |
2440 | ||
2441 | There should be a runtime option to constrain what functions get DFG compiled | |
2442 | https://bugs.webkit.org/show_bug.cgi?id=115576 | |
2443 | ||
2444 | Reviewed by Mark Hahnenberg. | |
2445 | ||
2446 | Added OptionRange to Options to allow checking that something is within an option | |
2447 | or not. The new OptionClass supports range strings in the form of [!]<low>[:<high>]. | |
2448 | If only one value is given, then it will be used for both low and high. A leading | |
2449 | '!' inverts the check. If no range is given, then checking for a value within a range | |
2450 | will always return true. Added the option "bytecodeRangeToDFGCompile" that takes an | |
2451 | OptionRange string to select the bytecode range of code blocks to DFG compile. | |
2452 | ||
2453 | * dfg/DFGDriver.cpp: | |
2454 | (JSC::DFG::compile): Added new check for bytecode count within bytecodeRangeToDFGCompile | |
2455 | range. | |
2456 | * runtime/Options.cpp: | |
2457 | (JSC::parse): Added overloaded parse() for OptionRange. | |
2458 | (JSC::OptionRange::init): Parse range string and then initialize the range. | |
2459 | (JSC::OptionRange::isInRange): Function used by consumer to check if a value is within | |
2460 | the specified range. | |
2461 | (JSC::Options::dumpOption): Added code to dump OptionRange options. | |
2462 | * runtime/Options.h: | |
2463 | (OptionRange): New class. | |
2464 | (JSC::OptionRange::operator= ): This is really used as a default ctor for use within | |
2465 | the Option static array initialization. | |
2466 | (JSC::OptionRange::rangeString): This is used for debug. It assumes that the char* | |
2467 | passed into OptionRange::init is valid when this function is called. | |
2468 | ||
2469 | 2013-05-02 Oliver Hunt <oliver@apple.com> | |
2470 | ||
2471 | Fix potential bug in lookup logic | |
2472 | https://bugs.webkit.org/show_bug.cgi?id=115522 | |
2473 | ||
2474 | Reviewed by Mark Hahnenberg. | |
2475 | ||
2476 | Though not a problem in practise, it is technically possible | |
2477 | to inject an un-proxied global object into the scope chain | |
2478 | via the C API. This change makes sure that the scope walk | |
2479 | in BytecodeGenerator actually limits itself to scopes that | |
2480 | are statically bindable. | |
2481 | ||
2482 | * bytecompiler/BytecodeGenerator.cpp: | |
2483 | (JSC::BytecodeGenerator::resolve): | |
2484 | * runtime/JSObject.h: | |
2485 | (JSObject): | |
2486 | (JSC): | |
2487 | (JSC::JSObject::isStaticScopeObject): | |
2488 | ||
2489 | 2013-05-01 Roger Fong <roger_fong@apple.com> | |
2490 | ||
2491 | Set Path in makefile for AppleWin. | |
2492 | ||
2493 | * JavaScriptCore.vcxproj/JavaScriptCore.make: | |
2494 | ||
2495 | 2013-05-01 Benjamin Poulain <benjamin@webkit.org> | |
2496 | ||
2497 | Remove the remaining wscript | |
2498 | https://bugs.webkit.org/show_bug.cgi?id=115459 | |
2499 | ||
2500 | Reviewed by Andreas Kling. | |
2501 | ||
2502 | * wscript: Removed. | |
2503 | ||
2504 | 2013-04-30 Mark Lam <mark.lam@apple.com> | |
2505 | ||
2506 | JSContextGroupSetExecutionTimeLimit() should not pass a callback to the | |
2507 | VM watchdog if its client did not pass one in. | |
2508 | https://bugs.webkit.org/show_bug.cgi?id=115461. | |
2509 | ||
2510 | Reviewed by Geoffrey Garen. | |
2511 | ||
2512 | * API/JSContextRef.cpp: | |
2513 | (internalScriptTimeoutCallback): | |
2514 | (JSContextGroupSetExecutionTimeLimit): | |
2515 | * API/tests/testapi.c: | |
2516 | (main): | |
2517 | - Added test case when the time limit callback is 0. | |
2518 | - Also updated a check to verify that a TerminatedExecutionException is | |
2519 | thrown when the time out is cancelled. | |
2520 | - Also fixed some cosmetic typos. | |
2521 | ||
2522 | 2013-04-30 Geoffrey Garen <ggaren@apple.com> | |
2523 | ||
2524 | Removed op_ensure_property_exists | |
2525 | https://bugs.webkit.org/show_bug.cgi?id=115460 | |
2526 | ||
2527 | Reviewed by Mark Hahnenberg. | |
2528 | ||
2529 | It was unused, and whatever it was once used for was not optimized. | |
2530 | ||
2531 | * JavaScriptCore.order: | |
2532 | * bytecode/CodeBlock.cpp: | |
2533 | (JSC::CodeBlock::dumpBytecode): | |
2534 | * bytecode/Opcode.h: | |
2535 | (JSC::padOpcodeName): | |
2536 | * jit/JIT.cpp: | |
2537 | (JSC::JIT::privateCompileMainPass): | |
2538 | * jit/JIT.h: | |
2539 | * jit/JITOpcodes.cpp: | |
2540 | * jit/JITOpcodes32_64.cpp: | |
2541 | * jit/JITStubs.cpp: | |
2542 | * jit/JITStubs.h: | |
2543 | * llint/LLIntSlowPaths.cpp: | |
2544 | * llint/LLIntSlowPaths.h: | |
2545 | * llint/LowLevelInterpreter.asm: | |
2546 | ||
2547 | 2013-04-30 Oliver Hunt <oliver@apple.com> | |
2548 | ||
2549 | JSC Stack walking logic craches in the face of inlined functions triggering VM re-entry | |
2550 | https://bugs.webkit.org/show_bug.cgi?id=115449 | |
2551 | ||
2552 | Reviewed by Geoffrey Garen. | |
2553 | ||
2554 | Rename callframeishost to something that makes sense, and fix | |
2555 | getCallerInfo to correctly handle inline functions calling into | |
2556 | the VM. | |
2557 | ||
2558 | * bytecode/CodeBlock.cpp: | |
2559 | (JSC::CodeBlock::codeOriginForReturn): | |
2560 | Make this more robust in the face of incorrect stack walking | |
2561 | * interpreter/CallFrame.cpp: | |
2562 | (JSC::CallFrame::trueCallerFrame): | |
2563 | Everyone has to perform a codeblock() check before calling this | |
2564 | so we might as well just do it here. | |
2565 | * interpreter/Interpreter.cpp: | |
2566 | (JSC::getCallerInfo): | |
2567 | ||
2568 | 2013-04-30 Julien Brianceau <jbrianceau@nds.com> | |
2569 | ||
2570 | Bug fixing in sh4 base JIT and LLINT. | |
2571 | https://bugs.webkit.org/show_bug.cgi?id=115420 | |
2572 | ||
2573 | Reviewed by Oliver Hunt. | |
2574 | ||
2575 | * assembler/MacroAssemblerSH4.h: | |
2576 | (JSC::MacroAssemblerSH4::lshift32): | |
2577 | (JSC::MacroAssemblerSH4::rshift32): | |
2578 | (JSC::MacroAssemblerSH4::branchMul32): | |
2579 | (JSC::MacroAssemblerSH4::urshift32): | |
2580 | (JSC::MacroAssemblerSH4::replaceWithJump): | |
2581 | (JSC::MacroAssemblerSH4::maxJumpReplacementSize): | |
2582 | * assembler/SH4Assembler.h: | |
2583 | (JSC::SH4Assembler::shldRegReg): | |
2584 | (JSC::SH4Assembler::shadRegReg): | |
2585 | (JSC::SH4Assembler::shalImm8r): | |
2586 | (SH4Assembler): | |
2587 | (JSC::SH4Assembler::sharImm8r): | |
2588 | (JSC::SH4Assembler::maxJumpReplacementSize): | |
2589 | (JSC::SH4Assembler::replaceWithJump): | |
2590 | * offlineasm/sh4.rb: | |
2591 | ||
2592 | 2013-04-30 Geoffrey Garen <ggaren@apple.com> | |
2593 | ||
2594 | Objective-C JavaScriptCore API should publicly support bridging to C | |
2595 | https://bugs.webkit.org/show_bug.cgi?id=115447 | |
2596 | ||
2597 | Reviewed by Mark Hahnenberg. | |
2598 | ||
2599 | For consistency, I renamed | |
2600 | ||
2601 | +[JSValue valueWithValue:] => +[JSValue valueWithJSValueRef] | |
2602 | +[JSContext contextWithGlobalContextRef] => +[JSContext contextWithJSGlobalContextRef] | |
2603 | -[JSContext globalContext] => -[JSContext JSGlobalContextRef] | |
2604 | ||
2605 | I searched svn to verify that these functions don't have clients yet, | |
2606 | so we won't break anything. | |
2607 | ||
2608 | I also exported as public API | |
2609 | ||
2610 | +[JSValue valueWithJSValueRef:] | |
2611 | +[JSContext contextWithJSGlobalContextRef:] | |
2612 | ||
2613 | It's hard to integrate with the C API without these. | |
2614 | ||
2615 | 2013-04-30 Commit Queue <rniwa@webkit.org> | |
2616 | ||
2617 | Unreviewed, rolling out r149349 and r149354. | |
2618 | http://trac.webkit.org/changeset/149349 | |
2619 | http://trac.webkit.org/changeset/149354 | |
2620 | https://bugs.webkit.org/show_bug.cgi?id=115444 | |
2621 | ||
2622 | The Thumb version of compileSoftModulo make invalid use of | |
2623 | registers (Requested by benjaminp on #webkit). | |
2624 | ||
2625 | * CMakeLists.txt: | |
2626 | * GNUmakefile.list.am: | |
2627 | * JavaScriptCore.xcodeproj/project.pbxproj: | |
2628 | * assembler/ARMv7Assembler.h: | |
2629 | (ARMv7Assembler): | |
2630 | * assembler/AbstractMacroAssembler.h: | |
2631 | (JSC::isARMv7s): | |
2632 | (JSC): | |
2633 | * assembler/MacroAssemblerARMv7.cpp: Removed. | |
2634 | * assembler/MacroAssemblerARMv7.h: | |
2635 | (MacroAssemblerARMv7): | |
2636 | * dfg/DFGFixupPhase.cpp: | |
2637 | (JSC::DFG::FixupPhase::fixupNode): | |
2638 | * dfg/DFGOperations.cpp: | |
2639 | * dfg/DFGOperations.h: | |
2640 | * dfg/DFGSpeculativeJIT.cpp: | |
2641 | (JSC::DFG::SpeculativeJIT::compileSoftModulo): | |
2642 | (DFG): | |
2643 | (JSC::DFG::SpeculativeJIT::compileIntegerArithDivForARMv7s): | |
2644 | * dfg/DFGSpeculativeJIT.h: | |
2645 | (JSC::DFG::SpeculativeJIT::callOperation): | |
2646 | (SpeculativeJIT): | |
2647 | * dfg/DFGSpeculativeJIT32_64.cpp: | |
2648 | (JSC::DFG::SpeculativeJIT::compile): | |
2649 | ||
2650 | 2013-04-30 Zalan Bujtas <zalan@apple.com> | |
2651 | ||
2652 | Animations fail to start on http://www.google.com/insidesearch/howsearchworks/thestory/ | |
2653 | https://bugs.webkit.org/show_bug.cgi?id=111244 | |
2654 | ||
2655 | Reviewed by David Kilzer. | |
2656 | ||
2657 | Enable performance.now() as a minimal subset of Web Timing API. | |
2658 | It returns DOMHighResTimeStamp, a monotonically increasing value representing the | |
2659 | number of milliseconds from the start of the navigation of the current document. | |
2660 | JS libraries use this API to check against the requestAnimationFrame() timestamp. | |
2661 | ||
2662 | * Configurations/FeatureDefines.xcconfig: | |
2663 | ||
2664 | 2013-04-30 Zoltan Arvai <zarvai@inf.u-szeged.hu> | |
2665 | ||
2666 | Unreviewed. Speculative build fix on Qt Arm and Mips after r149349. | |
2667 | ||
2668 | * dfg/DFGSpeculativeJIT.cpp: | |
2669 | (JSC::DFG::SpeculativeJIT::compileSoftModulo): | |
2670 | ||
2671 | 2013-04-29 Cosmin Truta <ctruta@blackberry.com> | |
2672 | ||
2673 | [ARM] Expand the use of integer division | |
2674 | https://bugs.webkit.org/show_bug.cgi?id=115138 | |
2675 | ||
2676 | Reviewed by Benjamin Poulain. | |
2677 | ||
2678 | If availability of hardware integer division isn't known at compile | |
2679 | time, check the CPU flags and decide at runtime whether to fall back | |
2680 | to software. Currently, this OS-specific check is implemented on QNX. | |
2681 | ||
2682 | Moreover, use operator % instead of fmod() in the calculation of the | |
2683 | software modulo. Even when it's software-emulated, operator % is faster | |
2684 | than fmod(): on ARM v7 QNX, without hardware division, we noticed | |
2685 | >3% speedup on SunSpider. | |
2686 | ||
2687 | * CMakeLists.txt: | |
2688 | * GNUmakefile.list.am: | |
2689 | * JavaScriptCore.xcodeproj/project.pbxproj: | |
2690 | * assembler/ARMv7Assembler.h: | |
2691 | (JSC::ARMv7Assembler::sdiv): Did not compile conditionally. | |
2692 | (JSC::ARMv7Assembler::udiv): Ditto. | |
2693 | * assembler/AbstractMacroAssembler.h: | |
2694 | (JSC::isARMv7s): Removed. | |
2695 | * assembler/MacroAssemblerARMv7.cpp: Added. | |
2696 | (JSC::isIntegerDivSupported): Added. | |
2697 | * assembler/MacroAssemblerARMv7.h: | |
2698 | (JSC::MacroAssemblerARMv7::supportsIntegerDiv): Added. | |
2699 | * dfg/DFGFixupPhase.cpp: | |
2700 | (JSC::DFG::FixupPhase::fixupNode): Checked MacroAssembler::supportsIntegerDiv() in ArithDiv case. | |
2701 | * dfg/DFGOperations.cpp: | |
2702 | (JSC::DFG::operationModOnInts): Added. | |
2703 | * dfg/DFGOperations.h: | |
2704 | (JSC::DFG::Z_DFGOperation_ZZ): Added. | |
2705 | * dfg/DFGSpeculativeJIT.cpp: | |
2706 | (JSC::DFG::SpeculativeJIT::compileSoftModulo): Separated the X86-specific and ARM-specific codegen | |
2707 | from the common implementation; used operationModOnInts on ARM. | |
2708 | (JSC::DFG::SpeculativeJIT::compileIntegerArithDivForARM): Renamed from compileIntegerArithDivForARMv7. | |
2709 | (JSC::DFG::SpeculativeJIT::compileArithMod): Allowed run-time detection of integer div on ARM. | |
2710 | * dfg/DFGSpeculativeJIT.h: | |
2711 | (JSC::DFG::SpeculativeJIT::callOperation): Added overloads with Z_DFGOperation_ZZ arguments. | |
2712 | * dfg/DFGSpeculativeJIT32_64.cpp: | |
2713 | (JSC::DFG::SpeculativeJIT::compile): Used compileIntegerArithDivForARM. | |
2714 | ||
2715 | 2013-04-29 Benjamin Poulain <benjamin@webkit.org> | |
2716 | ||
2717 | Unify the data access of StringImpl members from JavaScriptCore | |
2718 | https://bugs.webkit.org/show_bug.cgi?id=115320 | |
2719 | ||
2720 | Reviewed by Andreas Kling. | |
2721 | ||
2722 | DFG accesses the member infos by directly calling the methods on StringImpl, | |
2723 | while the baseline JIT was using helper methods on ThunkHelpers. | |
2724 | ||
2725 | Cut the middle man, and use StringImpl directly everywhere. | |
2726 | ||
2727 | * jit/JITInlines.h: | |
2728 | (JSC::JIT::emitLoadCharacterString): | |
2729 | * jit/JITPropertyAccess.cpp: | |
2730 | (JSC::JIT::stringGetByValStubGenerator): | |
2731 | * jit/JITPropertyAccess32_64.cpp: | |
2732 | (JSC::JIT::stringGetByValStubGenerator): | |
2733 | * jit/JSInterfaceJIT.h: | |
2734 | * jit/ThunkGenerators.cpp: | |
2735 | (JSC::stringCharLoad): | |
2736 | ||
2737 | 2013-04-29 Benjamin Poulain <bpoulain@apple.com> | |
2738 | ||
2739 | Use push and pop for iOS math function thunks | |
2740 | https://bugs.webkit.org/show_bug.cgi?id=115215 | |
2741 | ||
2742 | Reviewed by Filip Pizlo. | |
2743 | ||
2744 | The iOS ABI is a little different than regular ARM ABI regarding stack alignment. | |
2745 | The requirement is 4 bytes: | |
2746 | "The ARM environment uses a stack that—at the point of function calls—is 4-byte aligned, | |
2747 | grows downward, and contains local variables and a function’s parameters." | |
2748 | ||
2749 | Subsequently, we can just use push and pop to preserve the link register. | |
2750 | ||
2751 | * jit/ThunkGenerators.cpp: | |
2752 | ||
2753 | 2013-04-29 Brent Fulgham <bfulgham@webkit.org> | |
2754 | ||
2755 | [Windows, WinCairo] Get rid of last few pthread include/link references. | |
2756 | https://bugs.webkit.org/show_bug.cgi?id=115375 | |
2757 | ||
2758 | Reviewed by Tim Horton. | |
2759 | ||
2760 | * JavaScriptCore.vcproj/jsc/jscPostBuild.cmd: | |
2761 | * JavaScriptCore.vcxproj/JavaScriptCoreCommon.props: | |
2762 | * JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorCommon.props: | |
2763 | * JavaScriptCore.vcxproj/jsc/jscCommon.props: | |
2764 | * JavaScriptCore.vcxproj/testRegExp/testRegExpCommon.props: | |
2765 | * JavaScriptCore.vcxproj/testapi/testapiCommon.props: | |
2766 | ||
2767 | 2013-04-29 Roger Fong <roger_fong@apple.com> | |
2768 | ||
2769 | Unreviewed. AppleWin VS2010 build fix. | |
2770 | ||
2771 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in: | |
2772 | ||
2773 | 2013-04-26 Mark Hahnenberg <mhahnenberg@apple.com> | |
2774 | ||
2775 | ~BlockAllocator should ASSERT that it has no more Regions left | |
2776 | https://bugs.webkit.org/show_bug.cgi?id=115287 | |
2777 | ||
2778 | Reviewed by Andreas Kling. | |
2779 | ||
2780 | * heap/BlockAllocator.cpp: | |
2781 | (JSC::BlockAllocator::~BlockAllocator): | |
2782 | (JSC::BlockAllocator::allRegionSetsAreEmpty): | |
2783 | * heap/BlockAllocator.h: | |
2784 | (RegionSet): | |
2785 | (JSC::BlockAllocator::RegionSet::isEmpty): | |
2786 | (BlockAllocator): | |
2787 | ||
2788 | 2013-04-29 Mark Hahnenberg <mhahnenberg@apple.com> | |
2789 | ||
2790 | IndexingTypes should use hex | |
2791 | https://bugs.webkit.org/show_bug.cgi?id=115286 | |
2792 | ||
2793 | Decimal is kind of confusing/hard to read because they're used as bit masks. Hex seems more appropriate. | |
2794 | ||
2795 | Reviewed by Geoffrey Garen. | |
2796 | ||
2797 | * runtime/IndexingType.h: | |
2798 | ||
2799 | 2013-04-29 Carlos Garcia Campos <cgarcia@igalia.com> | |
2800 | ||
2801 | Unreviewed. Fix make distcheck. | |
2802 | ||
2803 | * GNUmakefile.list.am: Add missing headers files to compilation | |
2804 | and offlineasm/sh4.rb script. | |
2805 | ||
2806 | 2013-04-28 Dean Jackson <dino@apple.com> | |
2807 | ||
2808 | [Mac] Disable canvas backing store scaling (HIGH_DPI_CANVAS) | |
2809 | https://bugs.webkit.org/show_bug.cgi?id=115310 | |
2810 | ||
2811 | Reviewed by Simon Fraser. | |
2812 | ||
2813 | Remove ENABLE_HIGH_DPI_CANVAS_macosx. | |
2814 | ||
2815 | * Configurations/FeatureDefines.xcconfig: | |
2816 | ||
2817 | 2013-04-27 Darin Adler <darin@apple.com> | |
2818 | ||
2819 | Move from constructor and member function adoptCF/NS to free function adoptCF/NS. | |
2820 | https://bugs.webkit.org/show_bug.cgi?id=115307 | |
2821 | ||
2822 | Reviewed by Geoffrey Garen. | |
2823 | ||
2824 | * heap/HeapTimer.cpp: | |
2825 | (JSC::HeapTimer::HeapTimer): | |
2826 | * runtime/VM.cpp: | |
2827 | (JSC::enableAssembler): | |
2828 | Use adoptCF free function. | |
2829 | ||
2830 | 2013-04-27 Anders Carlsson <andersca@apple.com> | |
2831 | ||
2832 | Try to fix the Windows build. | |
2833 | ||
2834 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def: | |
2835 | ||
2836 | 2013-04-25 Geoffrey Garen <ggaren@apple.com> | |
2837 | ||
2838 | Cleaned up pre/post inc/dec in bytecode | |
2839 | https://bugs.webkit.org/show_bug.cgi?id=115222 | |
2840 | ||
2841 | Reviewed by Filip Pizlo. | |
2842 | ||
2843 | A few related changes here: | |
2844 | ||
2845 | (*) Removed post_inc and post_dec. The two-result form was awkward to | |
2846 | reason about. Being explicit about the intermediate mov and to_number | |
2847 | reduces DFG overhead, removes some fragile ASSERTs from the DFG, and | |
2848 | fixes a const bug. Plus, we get to blow away 262 lines of code. | |
2849 | ||
2850 | (*) Renamed pre_inc and pre_dec to inc and dec, since there's only one | |
2851 | version now. | |
2852 | ||
2853 | (*) Renamed to_jsnumber to to_number, to match the ECMA name. | |
2854 | ||
2855 | (*) Tightened up the codegen and runtime support for to_number. | |
2856 | ||
2857 | ||
2858 | * JavaScriptCore.order: Order! | |
2859 | ||
2860 | * bytecode/CodeBlock.cpp: | |
2861 | (JSC::CodeBlock::dumpBytecode): | |
2862 | * bytecode/Opcode.h: | |
2863 | (JSC::padOpcodeName): | |
2864 | * bytecompiler/BytecodeGenerator.cpp: | |
2865 | (JSC::BytecodeGenerator::emitInc): | |
2866 | (JSC::BytecodeGenerator::emitDec): | |
2867 | * bytecompiler/BytecodeGenerator.h: | |
2868 | (JSC::BytecodeGenerator::emitToNumber): | |
2869 | (BytecodeGenerator): Removed post_inc and post_dec. | |
2870 | ||
2871 | * bytecompiler/NodesCodegen.cpp: | |
2872 | (JSC::emitPreIncOrDec): Updated for rename. | |
2873 | ||
2874 | (JSC::emitPostIncOrDec): Issue an explicit mov and to_number when needed. | |
2875 | These are rare, and they boil away in the DFG. | |
2876 | ||
2877 | (JSC::PostfixNode::emitResolve): | |
2878 | (JSC::PrefixNode::emitResolve): For const, use an explicit mov instead | |
2879 | of any special forms. This fixes a bug where we would do string | |
2880 | add/subtract instead of number. | |
2881 | ||
2882 | * dfg/DFGByteCodeParser.cpp: | |
2883 | (JSC::DFG::ByteCodeParser::parseBlock): | |
2884 | * dfg/DFGCapabilities.h: | |
2885 | (JSC::DFG::canCompileOpcode): | |
2886 | * jit/JIT.cpp: | |
2887 | (JSC::JIT::privateCompileMainPass): | |
2888 | (JSC::JIT::privateCompileSlowCases): | |
2889 | * jit/JIT.h: | |
2890 | * jit/JITArithmetic.cpp: | |
2891 | (JSC::JIT::emit_op_inc): | |
2892 | (JSC::JIT::emitSlow_op_inc): | |
2893 | (JSC::JIT::emit_op_dec): | |
2894 | (JSC::JIT::emitSlow_op_dec): | |
2895 | * jit/JITArithmetic32_64.cpp: | |
2896 | (JSC::JIT::emit_op_inc): | |
2897 | (JSC::JIT::emitSlow_op_inc): | |
2898 | (JSC::JIT::emit_op_dec): | |
2899 | (JSC::JIT::emitSlow_op_dec): Removed post_inc/dec, and updated for renames. | |
2900 | ||
2901 | * jit/JITOpcodes.cpp: | |
2902 | (JSC::JIT::emit_op_to_number): | |
2903 | (JSC::JIT::emitSlow_op_to_number): Removed a test for number cells. There's | |
2904 | no such thing! | |
2905 | ||
2906 | * jit/JITOpcodes32_64.cpp: | |
2907 | (JSC::JIT::emit_op_to_number): Use LowestTag to avoid making assumptions | |
2908 | about the lowest valued tag. | |
2909 | ||
2910 | (JSC::JIT::emitSlow_op_to_number): Updated for renames. | |
2911 | ||
2912 | * jit/JITStubs.cpp: | |
2913 | (JSC::DEFINE_STUB_FUNCTION): | |
2914 | * jit/JITStubs.h: | |
2915 | * llint/LLIntSlowPaths.cpp: | |
2916 | (JSC::LLInt::LLINT_SLOW_PATH_DECL): | |
2917 | * llint/LLIntSlowPaths.h: | |
2918 | * llint/LowLevelInterpreter32_64.asm: | |
2919 | * llint/LowLevelInterpreter64.asm: | |
2920 | * parser/NodeConstructors.h: | |
2921 | (JSC::UnaryPlusNode::UnaryPlusNode): Removed post_inc/dec, and updated for renames. | |
2922 | ||
2923 | * runtime/Operations.cpp: | |
2924 | (JSC::jsIsObjectType): Removed a test for number cells. There's | |
2925 | no such thing! | |
2926 | ||
2927 | 2013-04-27 Julien Brianceau <jbrianceau@nds.com> | |
2928 | ||
2929 | REGRESSION(r149114): cache flush for SH4 arch may flush an extra page. | |
2930 | https://bugs.webkit.org/show_bug.cgi?id=115305 | |
2931 | ||
2932 | Reviewed by Andreas Kling. | |
2933 | ||
2934 | * assembler/SH4Assembler.h: | |
2935 | (JSC::SH4Assembler::cacheFlush): | |
2936 | ||
2937 | 2013-04-26 Geoffrey Garen <ggaren@apple.com> | |
2938 | ||
2939 | Re-landing <http://trac.webkit.org/changeset/148999> | |
2940 | ||
2941 | Filled out more cases of branch folding in bytecode when emitting | |
2942 | expressions into a branching context | |
2943 | https://bugs.webkit.org/show_bug.cgi?id=115057 | |
2944 | ||
2945 | Reviewed by Phil Pizlo. | |
2946 | ||
2947 | We can't fold the number == 1 case to boolean because all non-zero numbers | |
2948 | down-cast to true, but only 1 is == to true. | |
2949 | ||
2950 | 2013-04-26 Filip Pizlo <fpizlo@apple.com> | |
2951 | ||
2952 | Correct indentation of SymbolTable.h | |
2953 | ||
2954 | Rubber stamped by Mark Hahnenberg. | |
2955 | ||
2956 | * runtime/SymbolTable.h: | |
2957 | ||
2958 | 2013-04-26 Roger Fong <roger_fong@apple.com> | |
2959 | ||
2960 | Make Apple Windows VS2010 build results into and get dependencies from __32 suffixed folders. | |
2961 | Make the DebugSuffix configuration use _debug dependencies. | |
2962 | ||
2963 | * JavaScriptCore.vcxproj/JavaScriptCore.make: | |
2964 | * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj: | |
2965 | * JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters: | |
2966 | * JavaScriptCore.vcxproj/JavaScriptCoreCF.props: | |
2967 | * JavaScriptCore.vcxproj/JavaScriptCoreCommon.props: | |
2968 | * JavaScriptCore.vcxproj/JavaScriptCoreDebug.props: | |
2969 | * JavaScriptCore.vcxproj/JavaScriptCoreDebugCFLite.props: | |
2970 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGenerator.vcxproj: | |
2971 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGenerator.vcxproj.filters: | |
2972 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorBuildCmd.cmd: | |
2973 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorCommon.props: | |
2974 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorDebug.props: | |
2975 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorPostBuild.cmd: | |
2976 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorPreBuild.cmd: | |
2977 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorProduction.props: | |
2978 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorRelease.props: | |
2979 | * JavaScriptCore.vcxproj/JavaScriptCoreGenerated.make: | |
2980 | * JavaScriptCore.vcxproj/JavaScriptCoreGenerated.vcxproj: | |
2981 | * JavaScriptCore.vcxproj/JavaScriptCoreGeneratedCommon.props: | |
2982 | * JavaScriptCore.vcxproj/JavaScriptCoreGeneratedDebug.props: | |
2983 | * JavaScriptCore.vcxproj/JavaScriptCoreGeneratedProduction.props: | |
2984 | * JavaScriptCore.vcxproj/JavaScriptCoreGeneratedRelease.props: | |
2985 | * JavaScriptCore.vcxproj/JavaScriptCorePostBuild.cmd: | |
2986 | * JavaScriptCore.vcxproj/JavaScriptCorePreLink.cmd: | |
2987 | * JavaScriptCore.vcxproj/JavaScriptCoreProduction.props: | |
2988 | * JavaScriptCore.vcxproj/JavaScriptCoreRelease.props: | |
2989 | * JavaScriptCore.vcxproj/JavaScriptCoreReleaseCFLite.props: | |
2990 | * JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.make: | |
2991 | * JavaScriptCore.vcxproj/LLInt/LLIntAssembly/LLIntAssembly.vcxproj: | |
2992 | * JavaScriptCore.vcxproj/LLInt/LLIntAssembly/build-LLIntAssembly.sh: | |
2993 | * JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.make: | |
2994 | * JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/LLIntDesiredOffsets.vcxproj: | |
2995 | * JavaScriptCore.vcxproj/LLInt/LLIntDesiredOffsets/build-LLIntDesiredOffsets.sh: | |
2996 | * JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractor.vcxproj: | |
2997 | * JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorCommon.props: | |
2998 | * JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorDebug.props: | |
2999 | * JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorProduction.props: | |
3000 | * JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorRelease.props: | |
3001 | * JavaScriptCore.vcxproj/build-generated-files.sh: | |
3002 | * JavaScriptCore.vcxproj/copy-files.cmd: | |
3003 | * JavaScriptCore.vcxproj/jsc/jsc.vcxproj: | |
3004 | * JavaScriptCore.vcxproj/jsc/jscCommon.props: | |
3005 | * JavaScriptCore.vcxproj/jsc/jscDebug.props: | |
3006 | * JavaScriptCore.vcxproj/jsc/jscPostBuild.cmd: | |
3007 | * JavaScriptCore.vcxproj/jsc/jscPreLink.cmd: | |
3008 | * JavaScriptCore.vcxproj/jsc/jscProduction.props: | |
3009 | * JavaScriptCore.vcxproj/jsc/jscRelease.props: | |
3010 | * JavaScriptCore.vcxproj/testRegExp/testRegExp.vcxproj: | |
3011 | * JavaScriptCore.vcxproj/testRegExp/testRegExp.vcxproj.filters: | |
3012 | * JavaScriptCore.vcxproj/testRegExp/testRegExpCommon.props: | |
3013 | * JavaScriptCore.vcxproj/testRegExp/testRegExpDebug.props: | |
3014 | * JavaScriptCore.vcxproj/testRegExp/testRegExpPostBuild.cmd: | |
3015 | * JavaScriptCore.vcxproj/testRegExp/testRegExpPreLink.cmd: | |
3016 | * JavaScriptCore.vcxproj/testRegExp/testRegExpProduction.props: | |
3017 | * JavaScriptCore.vcxproj/testRegExp/testRegExpRelease.props: | |
3018 | * JavaScriptCore.vcxproj/testapi/testapi.vcxproj: | |
3019 | * JavaScriptCore.vcxproj/testapi/testapiCommon.props: | |
3020 | * JavaScriptCore.vcxproj/testapi/testapiCommonCFLite.props: | |
3021 | * JavaScriptCore.vcxproj/testapi/testapiDebug.props: | |
3022 | * JavaScriptCore.vcxproj/testapi/testapiDebugCFLite.props: | |
3023 | * JavaScriptCore.vcxproj/testapi/testapiPreLink.cmd: | |
3024 | * JavaScriptCore.vcxproj/testapi/testapiProduction.props: | |
3025 | * JavaScriptCore.vcxproj/testapi/testapiRelease.props: | |
3026 | * JavaScriptCore.vcxproj/testapi/testapiReleaseCFLite.props: | |
3027 | ||
3028 | 2013-04-26 Roger Fong <roger_fong@apple.com> | |
3029 | ||
3030 | Disable sub-pixel layout on mac. | |
3031 | https://bugs.webkit.org/show_bug.cgi?id=114999. | |
3032 | ||
3033 | Reviewed by Simon Fraser. | |
3034 | ||
3035 | * Configurations/FeatureDefines.xcconfig: | |
3036 | ||
3037 | 2013-04-26 Oliver Hunt <oliver@apple.com> | |
3038 | ||
3039 | Make stack tracing more robust | |
3040 | https://bugs.webkit.org/show_bug.cgi?id=115272 | |
3041 | ||
3042 | Reviewed by Geoffrey Garen. | |
3043 | ||
3044 | CallFrame already handles stack walking confusion robustly, | |
3045 | so we should make sure that the actual walk handles that as well. | |
3046 | ||
3047 | * interpreter/Interpreter.cpp: | |
3048 | (JSC::getCallerInfo): | |
3049 | ||
3050 | 2013-04-26 Mark Hahnenberg <mhahnenberg@apple.com> | |
3051 | ||
3052 | REGRESSION(r149165): It made many tests crash on 32 bit | |
3053 | https://bugs.webkit.org/show_bug.cgi?id=115227 | |
3054 | ||
3055 | Reviewed by Csaba Osztrogonác. | |
3056 | ||
3057 | m_reservation is uninitialized when ENABLE(SUPER_REGION) is false. | |
3058 | ||
3059 | * heap/SuperRegion.cpp: | |
3060 | (JSC::SuperRegion::~SuperRegion): | |
3061 | ||
3062 | 2013-04-26 Julien Brianceau <jbrianceau@nds.com> | |
3063 | ||
3064 | Fix SH4 build broken since r149159. | |
3065 | https://bugs.webkit.org/show_bug.cgi?id=115229 | |
3066 | ||
3067 | Add BranchTruncateType enum in SH4 port and handle it in branchTruncateDoubleToInt32. | |
3068 | ||
3069 | Reviewed by Allan Sandfeld Jensen. | |
3070 | ||
3071 | * assembler/MacroAssemblerSH4.h: | |
3072 | (JSC::MacroAssemblerSH4::branchTruncateDoubleToInt32): | |
3073 | ||
3074 | 2013-04-25 Mark Hahnenberg <mhahnenberg@apple.com> | |
3075 | ||
3076 | SuperRegion doesn't call deallocate() on its PageReservation | |
3077 | https://bugs.webkit.org/show_bug.cgi?id=115208 | |
3078 | ||
3079 | Reviewed by Geoffrey Garen. | |
3080 | ||
3081 | It should. This doesn't cause us to leak physical memory, but it does cause us to leak virtual | |
3082 | address space (and probably mach ports), which is also bad :-( FixedVMPoolExecutableAllocator | |
3083 | also has this bug, but it doesn't matter much because there's only one instance of that class | |
3084 | throughout the entire lifetime of the process, whereas each VM has its own SuperRegion. | |
3085 | ||
3086 | * heap/SuperRegion.cpp: | |
3087 | (JSC::SuperRegion::~SuperRegion): | |
3088 | * heap/SuperRegion.h: | |
3089 | (SuperRegion): | |
3090 | * jit/ExecutableAllocatorFixedVMPool.cpp: | |
3091 | (FixedVMPoolExecutableAllocator): | |
3092 | (JSC::FixedVMPoolExecutableAllocator::~FixedVMPoolExecutableAllocator): | |
3093 | ||
3094 | 2013-04-25 Filip Pizlo <fpizlo@apple.com> | |
3095 | ||
3096 | DFG doesn't support to_jsnumber | |
3097 | https://bugs.webkit.org/show_bug.cgi?id=115129 | |
3098 | ||
3099 | Reviewed by Geoffrey Garen. | |
3100 | ||
3101 | Based on Oliver's patch. Implements to_jsnumber as Identity(Number:@thingy), and then does | |
3102 | an optimization in Fixup to turn Identity(Number:) into Identity(Int32:) if the predictions | |
3103 | tell us to. Identity is later turned into Phantom. | |
3104 | ||
3105 | Also fixed BackPropMask, which appeared to have NodeDoesNotExit included in it. That's | |
3106 | wrong; NodeDoesNotExit is not a backward propagation property. | |
3107 | ||
3108 | Also fixed Identity to be marked as CanExit (i.e. not NodeDoesNotExit). | |
3109 | ||
3110 | This more than doubles the FPS on ammo. | |
3111 | ||
3112 | * dfg/DFGByteCodeParser.cpp: | |
3113 | (JSC::DFG::ByteCodeParser::parseBlock): | |
3114 | * dfg/DFGCapabilities.h: | |
3115 | (JSC::DFG::canCompileOpcode): | |
3116 | * dfg/DFGFixupPhase.cpp: | |
3117 | (JSC::DFG::FixupPhase::fixupNode): | |
3118 | (FixupPhase): | |
3119 | (JSC::DFG::FixupPhase::observeUseKindOnNode): | |
3120 | (JSC::DFG::FixupPhase::observeUseKindOnEdge): | |
3121 | * dfg/DFGNodeFlags.h: | |
3122 | (DFG): | |
3123 | * dfg/DFGNodeType.h: | |
3124 | (DFG): | |
3125 | * dfg/DFGPredictionPropagationPhase.cpp: | |
3126 | (JSC::DFG::PredictionPropagationPhase::propagate): | |
3127 | ||
3128 | 2013-04-24 Oliver Hunt <oliver@apple.com> | |
3129 | ||
3130 | Add support for Math.imul | |
3131 | https://bugs.webkit.org/show_bug.cgi?id=115143 | |
3132 | ||
3133 | Reviewed by Filip Pizlo. | |
3134 | ||
3135 | Add support for Math.imul, a thunk generator for Math.imul, | |
3136 | and an intrinsic. | |
3137 | ||
3138 | Fairly self explanatory set of changes, DFG intrinsics simply | |
3139 | leverages the existing ValueToInt32 nodes. | |
3140 | ||
3141 | * create_hash_table: | |
3142 | * dfg/DFGAbstractState.cpp: | |
3143 | (JSC::DFG::AbstractState::executeEffects): | |
3144 | * dfg/DFGBackwardsPropagationPhase.cpp: | |
3145 | (JSC::DFG::BackwardsPropagationPhase::propagate): | |
3146 | * dfg/DFGByteCodeParser.cpp: | |
3147 | (JSC::DFG::ByteCodeParser::handleIntrinsic): | |
3148 | * dfg/DFGCSEPhase.cpp: | |
3149 | (JSC::DFG::CSEPhase::performNodeCSE): | |
3150 | * dfg/DFGFixupPhase.cpp: | |
3151 | (JSC::DFG::FixupPhase::fixupNode): | |
3152 | * dfg/DFGNodeType.h: | |
3153 | (DFG): | |
3154 | * dfg/DFGPredictionPropagationPhase.cpp: | |
3155 | (JSC::DFG::PredictionPropagationPhase::propagate): | |
3156 | * dfg/DFGSpeculativeJIT.cpp: | |
3157 | (JSC::DFG::SpeculativeJIT::compileArithIMul): | |
3158 | * dfg/DFGSpeculativeJIT.h: | |
3159 | (SpeculativeJIT): | |
3160 | * dfg/DFGSpeculativeJIT32_64.cpp: | |
3161 | (JSC::DFG::SpeculativeJIT::compile): | |
3162 | * dfg/DFGSpeculativeJIT64.cpp: | |
3163 | (JSC::DFG::SpeculativeJIT::compile): | |
3164 | * jit/ThunkGenerators.cpp: | |
3165 | (JSC::imulThunkGenerator): | |
3166 | (JSC): | |
3167 | * jit/ThunkGenerators.h: | |
3168 | (JSC): | |
3169 | * runtime/Intrinsic.h: | |
3170 | * runtime/MathObject.cpp: | |
3171 | (JSC): | |
3172 | (JSC::mathProtoFuncIMul): | |
3173 | * runtime/VM.cpp: | |
3174 | (JSC::thunkGeneratorForIntrinsic): | |
3175 | ||
3176 | 2013-04-25 Filip Pizlo <fpizlo@apple.com> | |
3177 | ||
3178 | Unreviewed, roll out http://trac.webkit.org/changeset/148999 | |
3179 | It broke http://kripken.github.io/ammo.js/examples/new/ammo.html | |
3180 | ||
3181 | * JavaScriptCore.order: | |
3182 | * bytecompiler/BytecodeGenerator.cpp: | |
3183 | (JSC::BytecodeGenerator::emitNewArray): | |
3184 | (JSC::BytecodeGenerator::emitThrowReferenceError): | |
3185 | (JSC::BytecodeGenerator::emitReadOnlyExceptionIfNeeded): | |
3186 | * bytecompiler/BytecodeGenerator.h: | |
3187 | (JSC::BytecodeGenerator::shouldEmitProfileHooks): | |
3188 | (BytecodeGenerator): | |
3189 | * bytecompiler/NodesCodegen.cpp: | |
3190 | (JSC): | |
3191 | (JSC::NullNode::emitBytecode): | |
3192 | (JSC::BooleanNode::emitBytecode): | |
3193 | (JSC::NumberNode::emitBytecode): | |
3194 | (JSC::StringNode::emitBytecode): | |
3195 | (JSC::IfNode::emitBytecode): | |
3196 | (JSC::IfElseNode::emitBytecode): | |
3197 | * parser/ASTBuilder.h: | |
3198 | (JSC::ASTBuilder::createIfStatement): | |
3199 | (ASTBuilder): | |
3200 | * parser/NodeConstructors.h: | |
3201 | (JSC): | |
3202 | (JSC::NullNode::NullNode): | |
3203 | (JSC::BooleanNode::BooleanNode): | |
3204 | (JSC::NumberNode::NumberNode): | |
3205 | (JSC::StringNode::StringNode): | |
3206 | (JSC::IfNode::IfNode): | |
3207 | (JSC::IfElseNode::IfElseNode): | |
3208 | * parser/Nodes.h: | |
3209 | (JSC::ExpressionNode::isPure): | |
3210 | (JSC::ExpressionNode::isSubtract): | |
3211 | (StatementNode): | |
3212 | (NullNode): | |
3213 | (JSC::NullNode::isNull): | |
3214 | (BooleanNode): | |
3215 | (JSC::BooleanNode::isPure): | |
3216 | (NumberNode): | |
3217 | (JSC::NumberNode::value): | |
3218 | (JSC::NumberNode::isPure): | |
3219 | (StringNode): | |
3220 | (JSC::StringNode::isPure): | |
3221 | (JSC::StringNode::isString): | |
3222 | (BinaryOpNode): | |
3223 | (IfNode): | |
3224 | (JSC): | |
3225 | (IfElseNode): | |
3226 | (ContinueNode): | |
3227 | (BreakNode): | |
3228 | * parser/Parser.cpp: | |
3229 | (JSC::::parseIfStatement): | |
3230 | * parser/ResultType.h: | |
3231 | (ResultType): | |
3232 | * runtime/JSCJSValueInlines.h: | |
3233 | (JSC::JSValue::pureToBoolean): | |
3234 | * runtime/JSCell.h: | |
3235 | (JSCell): | |
3236 | * runtime/JSCellInlines.h: | |
3237 | (JSC): | |
3238 | ||
3239 | 2013-04-25 Filip Pizlo <fpizlo@apple.com> | |
3240 | ||
3241 | PreciseJumpTargets should treat loop_hint as a jump target | |
3242 | https://bugs.webkit.org/show_bug.cgi?id=115209 | |
3243 | ||
3244 | Reviewed by Mark Hahnenberg. | |
3245 | ||
3246 | I didn't add a test but I turned this into a release assertion. Running Octane is enough | |
3247 | to trigger it. | |
3248 | ||
3249 | * bytecode/PreciseJumpTargets.cpp: | |
3250 | (JSC::computePreciseJumpTargets): | |
3251 | * dfg/DFGByteCodeParser.cpp: | |
3252 | (JSC::DFG::ByteCodeParser::parseBlock): | |
3253 | ||
3254 | 2013-04-25 Roman Zhuykov <zhroma@ispras.ru> | |
3255 | ||
3256 | Fix problems with processing negative zero on DFG. | |
3257 | https://bugs.webkit.org/show_bug.cgi?id=113862 | |
3258 | ||
3259 | Reviewed by Filip Pizlo. | |
3260 | ||
3261 | Fix NodeNeedsNegZero flag propagation in BackwardPropagationPhase. | |
3262 | Function arithNodeFlags should not mask NodeNeedsNegZero flag for ArithNegate and DoubleAsInt32 | |
3263 | nodes and this flag should be always used to decide where we need to generate nezative-zero checks. | |
3264 | Remove unnecessary negative-zero checks from integer ArithDiv on ARM. | |
3265 | Also remove such checks from integer ArithMod on ARM and X86, and make them always to | |
3266 | check not only "modulo_result == 0" but also "dividend < 0". | |
3267 | Generate faster code for case when ArithMod operation divisor is constant power of 2 on ARMv7 | |
3268 | in the same way as on ARMv7s, and add negative-zero checks into this code when needed. | |
3269 | Change speculationCheck ExitKind from Overflow to NegativeZero where applicable. | |
3270 | ||
3271 | This shows 30% speedup of math-spectral-norm, and 5% speedup | |
3272 | on SunSpider overall on ARMv7 Linux. | |
3273 | ||
3274 | * assembler/MacroAssemblerARM.h: | |
3275 | (JSC::MacroAssemblerARM::branchConvertDoubleToInt32): | |
3276 | * assembler/MacroAssemblerARMv7.h: | |
3277 | (JSC::MacroAssemblerARMv7::branchConvertDoubleToInt32): | |
3278 | * assembler/MacroAssemblerMIPS.h: | |
3279 | (JSC::MacroAssemblerMIPS::branchConvertDoubleToInt32): | |
3280 | * assembler/MacroAssemblerSH4.h: | |
3281 | (JSC::MacroAssemblerSH4::branchConvertDoubleToInt32): | |
3282 | * assembler/MacroAssemblerX86Common.h: | |
3283 | (JSC::MacroAssemblerX86Common::branchConvertDoubleToInt32): | |
3284 | * dfg/DFGBackwardsPropagationPhase.cpp: | |
3285 | (JSC::DFG::BackwardsPropagationPhase::isNotNegZero): | |
3286 | (JSC::DFG::BackwardsPropagationPhase::isNotPosZero): | |
3287 | (JSC::DFG::BackwardsPropagationPhase::propagate): | |
3288 | * dfg/DFGNode.h: | |
3289 | (JSC::DFG::Node::arithNodeFlags): | |
3290 | * dfg/DFGSpeculativeJIT.cpp: | |
3291 | (JSC::DFG::SpeculativeJIT::compileDoubleAsInt32): | |
3292 | (JSC::DFG::SpeculativeJIT::compileSoftModulo): | |
3293 | (JSC::DFG::SpeculativeJIT::compileArithNegate): | |
3294 | ||
3295 | 2013-04-25 Oliver Hunt <oliver@apple.com> | |
3296 | ||
3297 | Stack guards are too conservative | |
3298 | https://bugs.webkit.org/show_bug.cgi?id=115147 | |
3299 | ||
3300 | Reviewed by Mark Hahnenberg. | |
3301 | ||
3302 | Increase stack guard to closer to old size. | |
3303 | ||
3304 | * interpreter/Interpreter.cpp: | |
3305 | (JSC::Interpreter::StackPolicy::StackPolicy): | |
3306 | ||
3307 | 2013-04-25 Oliver Hunt <oliver@apple.com> | |
3308 | ||
3309 | Stack guards are too conservative | |
3310 | https://bugs.webkit.org/show_bug.cgi?id=115147 | |
3311 | ||
3312 | Reviewed by Geoffrey Garen. | |
3313 | ||
3314 | Reduce the limits and simplify the decision making. | |
3315 | ||
3316 | * interpreter/Interpreter.cpp: | |
3317 | (JSC::Interpreter::StackPolicy::StackPolicy): | |
3318 | ||
3319 | 2013-04-25 Nick Diego Yamane <nick.yamane@openbossa.org> | |
3320 | ||
3321 | JSC: Fix interpreter misbehavior in builds with JIT disabled | |
3322 | https://bugs.webkit.org/show_bug.cgi?id=115190 | |
3323 | ||
3324 | Reviewed by Oliver Hunt. | |
3325 | ||
3326 | Commit http://trac.webkit.org/changeset/147858 modified | |
3327 | some details on how JS stack traces are built. The method | |
3328 | "getLineNumberForCallFrame", renamed in that changeset to | |
3329 | "getBytecodeOffsetForCallFrame" is always returning `0' when | |
3330 | JIT is disabled | |
3331 | ||
3332 | How to reproduce: | |
3333 | - Build webkit with JIT disabled | |
3334 | - Open MiniBrowser, for example, with http://google.com | |
3335 | - In a debug build, WebProcess will hit the following ASSERT: | |
3336 | Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp:279 ASSERT(low); | |
3337 | ||
3338 | * interpreter/Interpreter.cpp: | |
3339 | (JSC::getBytecodeOffsetForCallFrame): | |
3340 | ||
3341 | 2013-04-25 Oliver Hunt <oliver@apple.com> | |
3342 | ||
3343 | Make checkSyntax take a VM instead of an ExecState | |
3344 | ||
3345 | RS=Tim | |
3346 | ||
3347 | * jsc.cpp: | |
3348 | (runInteractive): | |
3349 | * runtime/Completion.cpp: | |
3350 | (JSC::checkSyntax): | |
3351 | * runtime/Completion.h: | |
3352 | (JSC): | |
3353 | ||
3354 | 2013-04-25 Michael Saboff <msaboff@apple.com> | |
3355 | ||
3356 | 32 Bit: Crash due to RegExpTest nodes not setting result type to Boolean | |
3357 | https://bugs.webkit.org/show_bug.cgi?id=115188 | |
3358 | ||
3359 | Reviewed by Geoffrey Garen. | |
3360 | ||
3361 | Changed the RegExpTest node to set the AbstractValue to boolean, since that | |
3362 | what it is. | |
3363 | ||
3364 | * dfg/DFGAbstractState.cpp: | |
3365 | (JSC::DFG::AbstractState::executeEffects): | |
3366 | ||
3367 | 2013-04-25 Julien Brianceau <jbrianceau@nds.com> | |
3368 | ||
3369 | REGRESSION(r137994): Random crashes occur with SH4 JSC. | |
3370 | https://bugs.webkit.org/show_bug.cgi?id=115167. | |
3371 | ||
3372 | Reviewed by Oliver Hunt. | |
3373 | ||
3374 | Since r137994, uncommited pages could be inside the area of memory in | |
3375 | parameter of the cacheFlush function. That's why we have to flush each | |
3376 | page separately to avoid a fail of the whole flush, if an uncommited page | |
3377 | is in the area. | |
3378 | ||
3379 | This patch is very similar to changeset 145194 made for ARMv7 architecture, | |
3380 | see https://bugs.webkit.org/show_bug.cgi?id=111441 for further information. | |
3381 | ||
3382 | * assembler/SH4Assembler.h: | |
3383 | (JSC::SH4Assembler::cacheFlush): | |
3384 | ||
3385 | 2013-04-24 Mark Lam <mark.lam@apple.com> | |
3386 | ||
3387 | Add watchdog timer polling for the DFG. | |
3388 | https://bugs.webkit.org/show_bug.cgi?id=115134. | |
3389 | ||
3390 | Reviewed by Geoffrey Garen. | |
3391 | ||
3392 | The strategy is to add a speculation check to the DFG generated code to | |
3393 | test if the watchdog timer has fired or not. If the watchdog timer has | |
3394 | fired, the generated code will do an OSR exit to the baseline JIT, and | |
3395 | let it handle servicing the watchdog timer. | |
3396 | ||
3397 | If the watchdog is not enabled, this speculation check will not be | |
3398 | emitted. | |
3399 | ||
3400 | * API/tests/testapi.c: | |
3401 | (currentCPUTime_callAsFunction): | |
3402 | (extendTerminateCallback): | |
3403 | (main): | |
3404 | - removed try/catch statements so that we can test the watchdog on the DFG. | |
3405 | - added JS bindings to a native currentCPUTime() function so that the timeout | |
3406 | tests can be more accurate. | |
3407 | - also shortened the time values so that the tests can complete sooner. | |
3408 | ||
3409 | * bytecode/ExitKind.h: | |
3410 | * dfg/DFGAbstractState.cpp: | |
3411 | (JSC::DFG::AbstractState::executeEffects): | |
3412 | * dfg/DFGByteCodeParser.cpp: | |
3413 | (JSC::DFG::ByteCodeParser::parseBlock): | |
3414 | * dfg/DFGFixupPhase.cpp: | |
3415 | (JSC::DFG::FixupPhase::fixupNode): | |
3416 | * dfg/DFGNodeType.h: | |
3417 | * dfg/DFGPredictionPropagationPhase.cpp: | |
3418 | (JSC::DFG::PredictionPropagationPhase::propagate): | |
3419 | * dfg/DFGSpeculativeJIT32_64.cpp: | |
3420 | (JSC::DFG::SpeculativeJIT::compile): | |
3421 | * dfg/DFGSpeculativeJIT64.cpp: | |
3422 | (JSC::DFG::SpeculativeJIT::compile): | |
3423 | * runtime/Watchdog.cpp: | |
3424 | (JSC::Watchdog::setTimeLimit): | |
3425 | ||
3426 | 2013-04-24 Filip Pizlo <fpizlo@apple.com> | |
3427 | ||
3428 | Special thunks for math functions should work on ARMv7 | |
3429 | https://bugs.webkit.org/show_bug.cgi?id=115144 | |
3430 | ||
3431 | Reviewed by Gavin Barraclough and Oliver Hunt. | |
3432 | ||
3433 | The only hard bit here was ensuring that we implemented the very special | |
3434 | "cheap C call" convention on ARMv7. | |
3435 | ||
3436 | * assembler/AbstractMacroAssembler.h: | |
3437 | (JSC::isARMv7s): | |
3438 | (JSC): | |
3439 | (JSC::isX86): | |
3440 | * dfg/DFGCommon.h: | |
3441 | * jit/SpecializedThunkJIT.h: | |
3442 | (SpecializedThunkJIT): | |
3443 | (JSC::SpecializedThunkJIT::callDoubleToDoublePreservingReturn): | |
3444 | * jit/ThunkGenerators.cpp: | |
3445 | (JSC::floorThunkGenerator): | |
3446 | (JSC::ceilThunkGenerator): | |
3447 | (JSC::roundThunkGenerator): | |
3448 | (JSC::expThunkGenerator): | |
3449 | (JSC::logThunkGenerator): | |
3450 | ||
3451 | 2013-04-24 Julien Brianceau <jbrianceau@nds.com> | |
3452 | ||
3453 | Misc bugfix and cleaning in sh4 base JIT. | |
3454 | https://bugs.webkit.org/show_bug.cgi?id=115022. | |
3455 | ||
3456 | Reviewed by Oliver Hunt. | |
3457 | ||
3458 | Remove unused add32() and sub32() with scratchreg parameter to avoid | |
3459 | confusion as this function prototype means another behaviour. | |
3460 | Remove unused "void push(Address)" function which seems quite buggy. | |
3461 | ||
3462 | * assembler/MacroAssemblerSH4.h: | |
3463 | (JSC::MacroAssemblerSH4::and32): Cosmetic change. | |
3464 | (JSC::MacroAssemblerSH4::lshift32): Cosmetic change. | |
3465 | (JSC::MacroAssemblerSH4::or32): Cosmetic change. | |
3466 | (JSC::MacroAssemblerSH4::xor32): Cosmetic change. | |
3467 | (MacroAssemblerSH4): | |
3468 | (JSC::MacroAssemblerSH4::load32): Cosmetic change. | |
3469 | (JSC::MacroAssemblerSH4::load8Signed): Fix invalid offset upper limit | |
3470 | when using r0 register and cosmetic changes. | |
3471 | (JSC::MacroAssemblerSH4::load8): Reuse load8Signed to avoid duplication. | |
3472 | (JSC::MacroAssemblerSH4::load16): Fix invalid offset upper limit when | |
3473 | using r0 register, fix missing offset shift and cosmetic changes. | |
3474 | (JSC::MacroAssemblerSH4::store32): Cosmetic change. | |
3475 | (JSC::MacroAssemblerSH4::branchAdd32): Store result value before branch. | |
3476 | ||
3477 | 2013-04-24 Patrick Gansterer <paroga@webkit.org> | |
3478 | ||
3479 | [WIN] Remove pthread from Visual Studio files in JavaScriptCore | |
3480 | https://bugs.webkit.org/show_bug.cgi?id=114864 | |
3481 | ||
3482 | Reviewed by Brent Fulgham. | |
3483 | ||
3484 | * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreCommon.vsprops: | |
3485 | * JavaScriptCore.vcproj/LLIntOffsetsExtractor/LLIntOffsetsExtractorCommon.vsprops: | |
3486 | * JavaScriptCore.vcproj/jsc/jscCommon.vsprops: | |
3487 | * JavaScriptCore.vcproj/testRegExp/testRegExpCommon.vsprops: | |
3488 | * JavaScriptCore.vcproj/testapi/testapiCommon.vsprops: | |
3489 | * JavaScriptCore.vcxproj/JavaScriptCoreCommon.props: | |
3490 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorCommon.props: | |
3491 | * JavaScriptCore.vcxproj/LLInt/LLIntOffsetsExtractor/LLIntOffsetsExtractorCommon.props: | |
3492 | * JavaScriptCore.vcxproj/jsc/jscCommon.props: | |
3493 | * JavaScriptCore.vcxproj/testRegExp/testRegExpCommon.props: | |
3494 | * JavaScriptCore.vcxproj/testapi/testapiCommon.props: | |
3495 | * JavaScriptCore.vcxproj/testapi/testapiCommonCFLite.props: | |
3496 | ||
3497 | 2013-04-24 Filip Pizlo <fpizlo@apple.com> | |
3498 | ||
3499 | DFG should keep the operand to create_this alive if it's emitting code for create_this | |
3500 | https://bugs.webkit.org/show_bug.cgi?id=115133 | |
3501 | ||
3502 | Reviewed by Mark Hahnenberg. | |
3503 | ||
3504 | The DFG must model bytecode liveness, or else OSR exit is going to have a really bad time. | |
3505 | ||
3506 | * dfg/DFGByteCodeParser.cpp: | |
3507 | (JSC::DFG::ByteCodeParser::parseBlock): | |
3508 | ||
3509 | 2013-04-24 Roger Fong <roger_fong@apple.com> | |
3510 | ||
3511 | Have VS2010 WebKit solution look in WebKit_Libraries/lib32 for dependencies. | |
3512 | ||
3513 | * JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExportGeneratorPostBuild.cmd: | |
3514 | * JavaScriptCore.vcxproj/JavaScriptCorePreLink.cmd: | |
3515 | * JavaScriptCore.vcxproj/jsc/jscPostBuild.cmd: | |
3516 | * JavaScriptCore.vcxproj/jsc/jscPreLink.cmd: | |
3517 | * JavaScriptCore.vcxproj/testRegExp/testRegExp.vcxproj.filters: | |
3518 | * JavaScriptCore.vcxproj/testRegExp/testRegExpPostBuild.cmd: | |
3519 | * JavaScriptCore.vcxproj/testRegExp/testRegExpPreLink.cmd: | |
3520 | * JavaScriptCore.vcxproj/testapi/testapiPreLink.cmd: | |
3521 | ||
3522 | 2013-04-24 Geoffrey Garen <ggaren@apple.com> | |
3523 | ||
3524 | 32-bit build fix. | |
3525 | ||
3526 | Unreviewed. | |
3527 | ||
3528 | * dfg/DFGSpeculativeJIT.cpp: | |
3529 | (JSC::DFG::SpeculativeJIT::compilePeepHoleBooleanBranch): Explicitly | |
3530 | truncate to 32-bit to avoid compiler warnings. It's safe to truncate | |
3531 | because the payload of a boolean is the low bits on both 64-bit and 32-bit. | |
3532 | ||
3533 | 2013-04-23 Geoffrey Garen <ggaren@apple.com> | |
3534 | ||
3535 | Filled out more cases of branch folding in the DFG | |
3536 | https://bugs.webkit.org/show_bug.cgi?id=115088 | |
3537 | ||
3538 | Reviewed by Oliver Hunt. | |
3539 | ||
3540 | No change on the benchmarks we track, but a 3X speedup on a | |
3541 | microbenchmark that uses these techniques. | |
3542 | ||
3543 | * dfg/DFGByteCodeParser.cpp: | |
3544 | (JSC::DFG::ByteCodeParser::parseBlock): (!/=)= and (!/=)== can constant | |
3545 | fold all types, not just numbers, because true constants have no | |
3546 | side effects when type-converted at runtime. | |
3547 | ||
3548 | * dfg/DFGFixupPhase.cpp: | |
3549 | (JSC::DFG::FixupPhase::fixupNode): | |
3550 | * dfg/DFGNode.h: | |
3551 | (JSC::DFG::Node::shouldSpeculateBoolean): Added support for fixing up | |
3552 | boolean uses, like we do for other types like number. | |
3553 | ||
3554 | * dfg/DFGSpeculativeJIT.cpp: | |
3555 | (JSC::DFG::SpeculativeJIT::compilePeepHoleBooleanBranch): | |
3556 | (JSC::DFG::SpeculativeJIT::compilePeepHoleBranch): | |
3557 | (JSC::DFG::SpeculativeJIT::compare): | |
3558 | (JSC::DFG::SpeculativeJIT::compileStrictEq): | |
3559 | (JSC::DFG::SpeculativeJIT::compileBooleanCompare): Peephole fuse | |
3560 | boolean compare and/or compare-branch, now that we have the types for | |
3561 | them. | |
3562 | ||
3563 | * dfg/DFGSpeculativeJIT.h: Updated declarations. | |
3564 | ||
3565 | == Rolled over to ChangeLog-2013-04-24 == |