kmillikin@chromium.org
7f43cf0539
Make 'with' mark only variables occurring in the body as used.
...
Before, we conservatively marked every variable in a scope as used if the
scope contained 'with'. Instead, just mark the variables occurring in the
body of the with. This avoids marking 'arguments' as used whenever 'with'
occurs, which incurs an extra performance penalty (a use of arguments is
seen as an instruction to redirect all parameter accesses to the arguments
object).
Review URL: http://codereview.chromium.org/6357007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6415 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-20 12:32:43 +00:00
sgjesse@chromium.org
198bcbaa13
Adding build script changes to support LiveObjectList functionality.
...
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6364002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-20 08:38:01 +00:00
sgjesse@chromium.org
4653cc0aff
Fix Windows compile
...
Review URL: http://codereview.chromium.org/6260014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-20 08:21:40 +00:00
sgjesse@chromium.org
e528223fe2
Stubbed out empty liveobjectlist files.
...
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6335009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-20 08:11:53 +00:00
ager@chromium.org
1c2fddb4c8
ARM: Implement Math.abs in lithium code generator for the integer and
...
tagged case. I couldn't find a way to test the double case yet so I'm
leaving that unimplemented for now.
Review URL: http://codereview.chromium.org/6347007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6411 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-20 08:08:36 +00:00
vitalyr@chromium.org
b4ff318e4b
Support StringCharCodeAt in hydrogen/lithium.
...
This patch adds H- and L-variants of StringCharCodeAt and StringLength.
StringCharCodeAt is used to inline a constant function call of
String.prototype.charCodeAt and to implement the corresponding inline
runtime function. It does not yet use the recently introduced extra IC
state. (We can specialize on string encoding and avoid deopts because
of out of bounds accesses.)
StringLength needs more work because the stub version of it also
supports strings wrappers and it matters in some cases. (We have to
separate the string only case.)
Review URL: http://codereview.chromium.org/6243008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6408 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 20:05:22 +00:00
ager@chromium.org
f6e177f075
Fix the ARM simulator's stop support and add conditional breakpoint.
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6346009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 15:39:40 +00:00
kmillikin@chromium.org
70910af7a0
Fix an assertion failure in the full code generator.
...
We hit an assertion failure when we tried to record the AST ID of
the (shared) .arguments variable proxy more than once. This was hit
when we had multiple calls to the same parameter in a function that
used the arguments object. The fix is to not visit the subexpressions
of the (shared) property access expression.
BUG=1060
Review URL: http://codereview.chromium.org/6368007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 15:26:54 +00:00
sgjesse@chromium.org
3ff8e4d3fa
ARM: Implement DoInstanceOfKnownGlobal stub
...
BUG=none
TEST=none
Patch by Martyn Capewell from ARM Ltd.
Review URL: http://codereview.chromium.org/6248004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 14:53:38 +00:00
mikhail.naganov@gmail.com
0f1a2bda1a
Fix Linux x64 compilation
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 14:51:01 +00:00
mikhail.naganov@gmail.com
7984684ec9
Introducing MemoryMappedExternalResource for creating an external
...
resource from a memory mapped file for creating strings.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6240002/
Relanded with Windows compilation issues fixed.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6401 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 14:28:15 +00:00
fschneider@chromium.org
ac0b1ded7b
Move LOperand class to lithium.h and move implementations out of .h into .cc files.
...
Review URL: http://codereview.chromium.org/6378004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6400 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 13:55:56 +00:00
lrn@chromium.org
93a0b80609
X64: Fix bug in DoBranch that miss detecting NaN as falsy.
...
Review URL: http://codereview.chromium.org/6369005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6399 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 13:52:08 +00:00
ager@chromium.org
56073b733f
ARM: Implement HasInstanceType in lithium backend.
...
Review URL: http://codereview.chromium.org/6283006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 13:04:21 +00:00
ager@chromium.org
fb43b16e2b
ARM: Implement DoCmpJSObjectEqAndBranch.
...
Review URL: http://codereview.chromium.org/6381001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6396 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 11:56:32 +00:00
vegorov@chromium.org
1db0a6a000
Make V8 more Valgrind-friendly.
...
While we don't have to flush icache on Intel CPUs when we patch code we still have to call CPU::FlushICache() to notify Valgrind otherwise Valgrind will run incorrect translations which will lead to strange crashes.
Review URL: http://codereview.chromium.org/6271008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 11:42:43 +00:00
ager@chromium.org
e65647eafc
ARM: Implement StringCharAtStub.
...
Review URL: http://codereview.chromium.org/6334007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 11:35:41 +00:00
mikhail.naganov@gmail.com
53cbbe4a23
Revert "Introducing MemoryMappedExternalResource for creating an external"
...
Windows compilation is broken. Will fix and reland later.
This reverts commit fe13ffaa6d0c3435bfe1ae930813e456650ec980.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 11:20:10 +00:00
antonm@chromium.org
b0abe13ed2
Using unsigned shifts and masks when dealing with 64-bit addresses.
...
BUG=v8:1037
Review URL: http://codereview.chromium.org/6242005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 11:16:23 +00:00
mikhail.naganov@gmail.com
890a0f6b52
Introducing MemoryMappedExternalResource for creating an external
...
resource from a memory mapped file for creating strings.
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6240002/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 10:48:06 +00:00
lrn@chromium.org
e66ceb9079
X64 Crank: Implemented DoBranch and all *AndBranch comparisons.
...
Review URL: http://codereview.chromium.org/6374002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 10:17:18 +00:00
erik.corry@gmail.com
8d3b675586
Prepare push to trunk. We are now working in 3.0.10.
...
Review URL: http://codereview.chromium.org/6380003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6384 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 09:42:17 +00:00
sgjesse@chromium.org
7d4e4a325b
Fix possibly wrong use of strncpy_s
...
This should also fix MinGW build.
Review URL: http://codereview.chromium.org/6376003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6382 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 08:34:24 +00:00
ager@chromium.org
6b4d29766c
Revert r6376 and r6373 which changes external array support. The ARM
...
version did not work.
TBR=kbr@chromium.org
Review URL: http://codereview.chromium.org/6295013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 08:20:42 +00:00
antonm@chromium.org
49144ee6b6
Properly create variables to access outer arguments and function names.
...
Review URL: http://codereview.chromium.org/6266007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 08:16:17 +00:00
sgjesse@chromium.org
9e23f65bec
Adding inspector module and macro-ized object type list.
...
Patch by Mark Lam from Hewlett-Packard Development Company, LP
Review URL: http://codereview.chromium.org/6261012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 08:04:48 +00:00
ager@chromium.org
9ab1970860
Fix ARM compilation after external array changes.
...
TBR=kbr@chromium.org
Review URL: http://codereview.chromium.org/6261014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-19 07:18:04 +00:00
mmaly@chromium.org
d6f88b6688
Revert strict mode (Mozilla test failure).
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-18 23:01:50 +00:00
kbr@chromium.org
27f0ae7aad
Truncate rather than round to nearest when performing float-to-integer
...
conversions for external array types, which implement the Typed Array
spec. The new code paths are for SSE3 and SSE2 capable processors.
The code for non-SSE2 processors is unchanged for now. The ARM port
appears to already be correct.
Moved the generation of the external array load and store intrinsics
to the stub cache (on all platforms) so that they are generated at run
time and can take advantage of CPU features.
This functionality is covered by the array-unit-tests.html test in the
WebGL conformance test suite:
http://khronos.org/webgl/wiki/Testing/Conformance
https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/array-unit-tests.html
Manually verified all of the SSE3/SSE2/non-SSE2 code paths by enabling
each in turn. Tested in Chromium on 32-bit Mac OS X and 64-bit Linux.
BUG=http://code.google.com/p/chromium/issues/detail?id=50972
TEST=none (see above)
Review URL: http://codereview.chromium.org/6315004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-18 21:51:50 +00:00
vitalyr@chromium.org
11a4cb5718
Introduce extra IC state to record additional feedback from IC-s.
...
Extra IC state is only two bits and only supported for call IC-s for
now. To change its extra state an IC stub jumps to a new miss stub
that goes to runtime as usual but then instead of going megamorphic
generates a monomorphic stub with the updated state.
Review URL: http://codereview.chromium.org/6344005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-18 16:54:48 +00:00
mmaly@chromium.org
b4c88d5de4
First part of ES5 strict mode.
...
- var eval | arguments
- catch (eval | arguments)
- 'with' is disabled
- function can't be named eval or arguments
- function parameter name cannot be eval or arguments
- no duplicate parameter names allowed
Add FLAG_strict_mode
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-18 16:43:53 +00:00
vegorov@chromium.org
80b7a0e164
Fix lint error introduced by r6367.
...
TBR=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/6378001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-18 16:16:00 +00:00
vegorov@chromium.org
3003b2156b
Basic GDB JIT Interface integration.
...
It has certain overheads even when gdb is not attached so it is guarded by ENABLE_GDBJIT_INTERFACE define and --gdbjit flag.
Review URL: http://codereview.chromium.org/5965011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-18 16:11:01 +00:00
whesse@chromium.org
9cee28138a
X64 Crankshaft: Add addition of tagged and int32 values to Crankshaft on x64. Enable CallIC to global function to call optimized code.
...
Review URL: http://codereview.chromium.org/6329006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-18 14:32:13 +00:00
fschneider@chromium.org
2ecfe94997
Fix operand type for keyed calls.
...
Record the key as a input operand for keyed call instructions instead
of wrongly making it a temp operand.
This bug does currently not show up as a problem because the
uses are recorded only in the instruction summary.
Review URL: http://codereview.chromium.org/6368003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-18 14:25:05 +00:00
antonm@chromium.org
ec16aa9a17
Do not optimize functions which are in new space.
...
If there are many shortliving closures, they pollute sampler window and
delay optimizations of functions which should be optimized.
Review URL: http://codereview.chromium.org/6344006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6364 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-18 13:59:49 +00:00
vitalyr@chromium.org
c919bb7d4a
Disable aggressive optimizations on the last optimization attempt.
...
Only has effect on the loop invariant code motion and Check instructions
for now.
Review URL: http://codereview.chromium.org/6321007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-18 13:43:48 +00:00
ager@chromium.org
2729e09caf
ARM: Implement double constants in the lithium ARM backend and fix
...
missing minus zero check in MathFloor implementation.
Review URL: http://codereview.chromium.org/6303009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-18 11:31:17 +00:00
lrn@chromium.org
94a0444b7b
Incremented preparse version number.
...
Revision 6309 changed which functions were considered lazy.
That also means that there must be preparse data for now non-lazy functions.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6270002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-18 10:00:36 +00:00
ager@chromium.org
e61725c525
Landing for Mark Larson.
...
Add a README.chromium and LICENSE file for Strongtalk assembler.
This allows the Chromium license tool to automatically include
Strongtalk in about:credits.
BUG= None
TEST= Strongtalk section in Chrome's about:credits
R= ager
Codereview URL: http://codereview.chromium.org/6357004/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-18 07:25:05 +00:00
antonm@chromium.org
4b6981f74d
Do not use possibly stale values for cache size, etc.
...
Those value can become invalid if cache gets cleared by GC.
Review URL: http://codereview.chromium.org/6348002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 16:54:56 +00:00
lrn@chromium.org
d2df943bde
Merge changes to LTemplateInstruction to X64 (Issue 1048).
...
Implement ConstantD and ConstantI.
BUG=1048
Review URL: http://codereview.chromium.org/6262005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 13:51:59 +00:00
ricow@chromium.org
3d245133a3
Enable compilation of very simple functions in x64 crankshaft.
...
This change includes support for safepointtables and adding deoptimization info (but not for deoptimizing).
Implemented crankshaft functions:
CallCode
GenerateSafepointTable
RegisterEnvironmentForDeoptimization
EmitGoto
This change allows us to compile very simple functions with crankshaft:
An empty function
A function returning a constant.
A function returning a parameter.
There is 6 disabled tests that require us to be able to deoptimize
which is currently not supported.
Review URL: http://codereview.chromium.org/6310009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 13:11:39 +00:00
fschneider@chromium.org
e7610a3e14
Add UseAny to create a LOperand without register preference.
...
The result can be a register, a stack slot or a constant operand.
Right now it is only used for enviroment uses.
Review URL: http://codereview.chromium.org/6348003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 12:54:52 +00:00
ager@chromium.org
7095d1ec26
ARM: Reenable Div and Mod in the ARM lithium codegenerator. The
...
crashes uncovered by this were caused by constant pool in safe-point
tables. This should be safe to enable now.
Review URL: http://codereview.chromium.org/6243005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 12:52:06 +00:00
ager@chromium.org
ac320205b9
ARM: Fix ARM safepoint tables by ensuring that constant pools are not
...
emitted as part of the safepoint tables.
Always emit the constant pool as part of generating deferred code
(whether or not there actually is any deferred code) and ASSERT that
there is no pending relocation info while using db and dd to write
tables.
Review URL: http://codereview.chromium.org/6360003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 12:45:39 +00:00
fschneider@chromium.org
87e82b0452
Remove the remaining LOperand-members from concrete LIR instructions.
...
This change introduces the third template parameters for LIR instructions
to specify the number of temp-operands. This is one step towards
removing the instruction-summaries.
I also added hydrogen-accessors in more places and refactored
the LIR-branch instructions to have common super-classes to
avoid code duplication.
Added MUST_USE_RESULT to the functions that record uses
and definitions so that all LOperands are stored in the
LIR instructions (and not only in the summaries).
Review URL: http://codereview.chromium.org/6237002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 12:22:31 +00:00
kmillikin@chromium.org
437914da90
Change the algorithm and generated code for parallel moves on IA32.
...
Instead of spilling and then immediately restoring eax to resolve
memory to memory moves, the gap move resolver now tracks registers
that are known to be free and uses one if available. If not it spills
but restores lazily when the spilled value is needed or at the end of
the algorithm.
Instead of using esi for resolving cycles and assuming it is free to
overwrite because it can be rematerialized, the gap move resolver now
resolves cycles using swaps, possibly using a free register as above.
The algorithm is also changed to be simpler: a recursive depth-first
traversal of the move dependence graph. It uses a list of moves to be
performed (because it mutates the moves themselves), but does not use
any auxiliary structure other than the control stack. It does not
build up a separate list of scheduled moves to be interpreted by the
code generate, but emits code on the fly.
Review URL: http://codereview.chromium.org/6263005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 11:25:36 +00:00
sgjesse@chromium.org
3342871af5
Prepare push to trunk. We are now working in 3.0.9.
...
Review URL: http://codereview.chromium.org/6354006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 10:38:47 +00:00
fschneider@chromium.org
3ff2cebd96
Remove unnecessary recording of temp operands in the register allocator.
...
When processing register contraints we used to add writable input operands
also as temp operands to the same instruction.
This does not seem necessary since we create a fresh virtual register
for writable inputs and insert a definition in the gap before the instruction.
Review URL: http://codereview.chromium.org/6350002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 10:08:58 +00:00
lrn@chromium.org
f09705ab9b
Make invalid break/continue statements an early syntax error.
...
Previously we delayed the throwing of syntax errors until runtime, so
unreachable errors didn't get reported.
To match a change in JSC, we now stop parsing and report the error immediately.
BUG=69736
TEST=
Review URL: http://codereview.chromium.org/6355006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6341 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 09:36:10 +00:00
antonm@chromium.org
fae90d4f32
Make closures optimizable by Crankshaft compiler.
...
Currently only closures which only read from the context are supported.
Review URL: http://codereview.chromium.org/5753005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 08:11:03 +00:00
ager@chromium.org
0819ac76f6
Landing for Martyn Capewell.
...
ARM: Implement DoInteger32ToDouble in lithium codegen. Clean up
temporary register use.
Code review URL: http://codereview.chromium.org/6257003/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 07:26:36 +00:00
antonm@chromium.org
3afbf69f53
Relax verification of JSFunction result caches.
...
As invocation of a functin may trigger GC and hence clear all the caches,
it's hard to ensure previous invariants.
Current invariant is both a key and a value should be the holes or not holes.
Review URL: http://codereview.chromium.org/6309004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-17 07:03:19 +00:00
sandholm@chromium.org
dd242e3fe1
Optimize JSON stringify by allowing QuoteJSONString to prefix with a comma.
...
Review URL: http://codereview.chromium.org/6335004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-16 21:29:32 +00:00
whesse@chromium.org
762f9cf72c
Fix typo that breaks compilation on x64.
...
Review URL: http://codereview.chromium.org/6342003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 16:15:40 +00:00
whesse@chromium.org
5187615943
Fix accidental change to ia32 in r6329.
...
Review URL: http://codereview.chromium.org/6362001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 16:10:00 +00:00
sgjesse@chromium.org
da1f6926e1
Avoid trashing the FPSCR when calculating Math.floor
...
The restoring of FPSCR could restore a random value as the restore point could be jumped to from before FPSCR was loaded.
Review URL: http://codereview.chromium.org/6344002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6332 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 15:39:18 +00:00
karlklose@chromium.org
4e274ca11d
Fix compilation failure on ia32 and x64.
...
TBR=ager
BUG=
TEST=
Review URL: http://codereview.chromium.org/6359001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 15:24:41 +00:00
karlklose@chromium.org
d2d81743c9
Disable DivI and ModI again until the bug with SafepointWithRegistersAndDoubles is solved.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6295004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 15:08:44 +00:00
whesse@chromium.org
2810c2c044
X64 Crankshaft: Add DoParallelMove to x64
...
Review URL: http://codereview.chromium.org/6290004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 15:07:44 +00:00
ager@chromium.org
fd3edaf074
Fix name of the toString method on error objects. Bug caught by layout tests.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/6258004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 14:51:19 +00:00
lrn@chromium.org
2b4767b584
X64: Fix allocated register name table.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6247006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 14:03:05 +00:00
lrn@chromium.org
9f5c1bfba1
X64 Crnakshaft: Added GeneratePrologue implementation.
...
Review URL: http://codereview.chromium.org/6326003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 13:16:48 +00:00
ager@chromium.org
c1306244a6
Make the 'name' property on error prototypes read-only and dont-delete
...
to avoid leaking of error objects to accessor methods when formatting
error messages internally.
Also, do not call overwritten toString methods on error objects when
formatting messages internally.
Review URL: http://codereview.chromium.org/6272004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 12:51:04 +00:00
kmillikin@chromium.org
199846b786
Move class LGapResolver to the platform specific backend implementation files.
...
This change is in preparation for introducing platform-specific strategies
for resolving parallel moves.
Review URL: http://codereview.chromium.org/6324003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 12:50:03 +00:00
ricow@chromium.org
8a3bd712ad
Fix win64 build by using int instead of size_t for position in StringBuilder
...
Review URL: http://codereview.chromium.org/6353002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 11:54:38 +00:00
karlklose@chromium.org
0e26f42bc1
ARM: Implement DoModI stub in the lithium code generator.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6314003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 11:48:43 +00:00
ricow@chromium.org
7954752479
Implement DoStackCheck in x64 crankshaft
...
Review URL: http://codereview.chromium.org/6257002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 11:35:02 +00:00
whesse@chromium.org
962d7019aa
Speed up FastAsciiArrayJoin on ia32 by improving hand-written assembly code.
...
Review URL: http://codereview.chromium.org/6148007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 10:57:49 +00:00
lrn@chromium.org
3800b24f69
Don't lazily compile functions that are immediately receded by '('.
...
We heuristically expect those functions to be called immediately.
Review URL: http://codereview.chromium.org/6311005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6309 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 10:50:13 +00:00
lrn@chromium.org
2cccc4009f
Fix bug when the scanner does a pushback at the end of input.
...
We don't advance the input cursor past the end of input, so we shouldn't
decrease it when we pushback the kEndOfInput marker.
Review URL: http://codereview.chromium.org/6246004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 10:49:18 +00:00
ricow@chromium.org
463d722a8b
Fix presubmit
...
Review URL: http://codereview.chromium.org/6326002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 10:33:41 +00:00
ricow@chromium.org
5e557d3624
Add implementations of some more x64 lithium methods.
...
This puts us very close to being able to compile the empty function.
This changes only has a small number of 64 bit specific assembler instructions.
The remaining changes are much more platform specific and will go in another change.
Review URL: http://codereview.chromium.org/6247005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 10:27:25 +00:00
fschneider@chromium.org
9b7525fa3e
Fix number of result operands for LThrow.
...
This instruction does not produce a result. We don't need a result
LOperand for it.
Review URL: http://codereview.chromium.org/6306001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 09:45:30 +00:00
karlklose@chromium.org
da03f275d2
ARM: Implement DoDivI in the lithium code generator.
...
This change provides fast code for a few special cases and calls the GenericBinaryOpStub for the rest.
It also changes the register allocation in the generation of lithium instructions to use fixed registers that are compatible with the generic stub. This allocation can be change once we use a more flexible implementation.
Finally, this change provides infrastructure to save double registers at safepoints, which is need to call the stub in deferred code.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6164005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-14 08:49:52 +00:00
podivilov@chromium.org
3a167b1fbe
Add function for setting breakpoint by scriptId and position to debugger script
...
Review URL: http://codereview.chromium.org/6301001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-13 17:32:10 +00:00
antonm@chromium.org
8805509f28
Wrap external pointers more carefully.
...
On 32-bit platforms any pointer with 0 as LSB can be wrapped into Smi. However, on 64-bit
platforms it's currently not the case as x64 Smis must have 0s in lower 32 bit word.
Even worse, macroassembler Move instruction will try to fetch integer value from Smi
and will shift by 32 bits to the right rendering stored pointer incorrect.
BUG=v8:1037
Review URL: http://codereview.chromium.org/6119009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-13 15:56:33 +00:00
vitalyr@chromium.org
ac9b035a45
Expose receiver check type in call type feedback.
...
This a preparatory step to support fast function calls on primitive
values. Not really used yet in hydrogen.
Review URL: http://codereview.chromium.org/6263001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-13 14:16:08 +00:00
ricow@chromium.org
4ea3e060bb
Fix the xcode build by not including x64 specific code when generating
...
32 bit code.
Review URL: http://codereview.chromium.org/6249002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-13 14:10:26 +00:00
ager@chromium.org
0ec74d5829
Landing for Rodolph Perfetta.
...
Implementing Math.floor and Math.sqrt for crankshaft.
BUG=none
TEST=none
Code review URL: http://codereview.chromium.org/6250002/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-13 12:21:47 +00:00
lrn@chromium.org
ba023c5405
X64 Crankshaft: Ported lots of boilerplate code.
...
Small tweaks to make X64 compliant.
A few UNIMPLEMENTED left, but most empty functions call Abort to bail out.
Review URL: http://codereview.chromium.org/6201006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-13 10:04:02 +00:00
ager@chromium.org
0b047d7981
Landing for cira@chromium.org
...
Adding gyp file for all of the experimental extensions (currently i18n-extension only).
Embedder should define icu_src_path to point to their copy of ICU library.
Code review URL: http://codereview.chromium.org/6246003/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6296 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-13 09:44:23 +00:00
sgjesse@chromium.org
33006e3d70
Revert r6284 and r6283 as they caused the fuzzer tests to fail.
...
Review URL: http://codereview.chromium.org/6295002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-13 08:24:19 +00:00
ager@chromium.org
48acf77389
Do not allow accessors to intercept getting/setting properties on
...
error objects under construction and string conversions.
Review URL: http://codereview.chromium.org/6146009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-13 06:56:54 +00:00
vitalyr@chromium.org
9e204dd5df
Simplify CheckPrototypeMaps.
...
This instruction only depends on the prototype and the holder and can
completely ignore the receiver and its map.
This change also fixes a small bug on arm where a cell was loaded
instead of the prototype from new space.
Review URL: http://codereview.chromium.org/6094020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-13 00:34:08 +00:00
fschneider@chromium.org
ad58227fcf
Use hydrogen accessor in a few more places to save space in the lithium IR.
...
Review URL: http://codereview.chromium.org/6207007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-12 15:46:39 +00:00
sandholm@chromium.org
5be396cb30
Optimize JSON stringify for arrays.
...
Review URL: http://codereview.chromium.org/6164004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-12 14:16:19 +00:00
vitalyr@chromium.org
e2f8c938c3
Allow arguments in safepoints with registers.
...
This should enable calling runtime functions with arguments from
deferred lithium code.
Review URL: http://codereview.chromium.org/6125007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-12 14:14:14 +00:00
sgjesse@chromium.org
855ffcd15b
Fix bug in r6283
...
Make sure that arguments are pushed only once before calling runtime
TEST=11 sputnik tests
Review URL: http://codereview.chromium.org/6151009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-12 14:00:19 +00:00
sgjesse@chromium.org
1db3db1784
IA32: Refactor to avoid duplicate code.
...
Review URL: http://codereview.chromium.org/6226006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-12 12:52:15 +00:00
erik.corry@gmail.com
7846721d96
Fixes needed to compile on gcc-4.4.1 on ARM. It is still necessary
...
to add -fno-strict-aliasing.
Review URL: http://codereview.chromium.org/6123007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-12 11:56:41 +00:00
sgjesse@chromium.org
6a4df3791e
IA32: Remove an invalid assert
...
Review URL: http://codereview.chromium.org/6129005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-12 11:53:30 +00:00
ager@chromium.org
0b9336ac8b
Landing for Martin Maly.
...
Fix CalculateEmitStore HashMap use.
The hash maps are setup to store strings or smis but instead Literal is being in them. It seems to only work by accident.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-12 09:29:20 +00:00
sgjesse@chromium.org
8f54606109
ARM: Always use the overflow flag to check for NaNs participating in a floating point compare.
...
Looks as if we don't need to use the vcmpe instruction instead of the vcmp, as the overflow FPSCR bit suits our purpose. If we at some point need vcmpe lte's implement it as a separate instruction.
Review URL: http://codereview.chromium.org/6197003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-12 07:47:13 +00:00
whesse@chromium.org
b6ebcd58c6
Crankshaft: Move LEnvironment and LPointerMap classes to platform-independent lithium.h. Move WriteTranslation method from LEnvironment class to LCodeGen class.
...
Review URL: http://codereview.chromium.org/6142011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 15:51:08 +00:00
fschneider@chromium.org
b85538bc16
Introduce two more template parameter for Lithium instructions for input and temp operands.
...
Each LInstruction is now a subclass of LTemplateInstruction<R, I, T>
where R is number of outputs, I number of inputs and T number of temps.
This change only actually uses the parameter I for input operands.
Since the parameter T for temps is 0, it incurs no extra cost.
A separate change will introduce using the temps parameter.
Review URL: http://codereview.chromium.org/6215002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 15:47:34 +00:00
peter.rybin@gmail.com
7c468e53c4
Add fine-grained diff implementation to LiveEdit engine.
...
BUG=1013
TEST=
Review URL: http://codereview.chromium.org/6017008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 14:55:47 +00:00
fschneider@chromium.org
c1d4d89a31
Remove unused Temp() function form LChunkBuilder.
...
Review URL: http://codereview.chromium.org/6217003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 14:38:13 +00:00
karlklose@chromium.org
43b0399505
Implement DoApplyArguments.
...
ARM: Implement DoApplyArguments in the lithium code generator.
This patch also introduces an optional SafepointGenerator argument to InvokeFunction, InvokeCode and InvokeProloque.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6164003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 14:11:03 +00:00
ager@chromium.org
59c158e43f
ARM: Implement ClassOf in the lithium arm backend.
...
Review URL: http://codereview.chromium.org/6201004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 14:01:53 +00:00
kmillikin@chromium.org
a7c743d3ac
Reuse the gap move resolver.
...
Rather than allocating a fresh gap move resolver for every parallel
move, use a single one per Lithium code generator. This avoids always
reallocating the temporary zone-allocated lists used by the gap move
resolver.
Review URL: http://codereview.chromium.org/6128007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 13:50:12 +00:00
vitalyr@chromium.org
404fbb5b0b
SSE2 truncating double-to-i.
...
Review URL: http://codereview.chromium.org/6049008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 13:48:49 +00:00
sgjesse@chromium.org
c4550bc6d5
ARM: Add instructions VFPCompareAndSetFlags and VFPCompareAndLoadFlags to macro assembler
...
Also removed the SBit from the vcmp instruction as it is not part of the instruction.
Review URL: http://codereview.chromium.org/6117003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:45:25 +00:00
mikhail.naganov@gmail.com
ecc00e7800
Visit all roots in the UnreachableObjectsFilter.
...
If an object is only referenced from DOM wrappers, it can only
be seen if all roots are visited.
Review URL: http://codereview.chromium.org/6226004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:38:19 +00:00
mikhail.naganov@gmail.com
6f72caf92d
Add reporting of JS heap size limit to GetHeapStatistics.
...
I found it useful to know inside the heap profiler to avoid
crashes due to heap overflow.
Review URL: http://codereview.chromium.org/6111007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:36:09 +00:00
ager@chromium.org
a314fa4581
ARM: Add deferred stack overflow checks to goto code generation in ARM
...
lithium when needed.
Review URL: http://codereview.chromium.org/6192005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6265 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:32:00 +00:00
whesse@chromium.org
5d3432b530
Add source file lithium-codegen-x64.cc. Add class declarations to lithium-codegen-x64.h.
...
Review URL: http://codereview.chromium.org/6135008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:24:18 +00:00
fschneider@chromium.org
6b00bdf2f2
Fix ARM debug build by moving an assert.
...
Review URL: http://codereview.chromium.org/6127005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:20:22 +00:00
fschneider@chromium.org
9cace6b5f0
Use HIR accessor for CheckPrototypeMaps to remove the duplicate members in lithium.
...
Review URL: http://codereview.chromium.org/6221003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 12:10:11 +00:00
ager@chromium.org
b3d4ea357c
ARM: use existing transcendental cache stub for tagged inputs.
...
Review URL: http://codereview.chromium.org/6167004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:54:37 +00:00
erik.corry@gmail.com
544d941b09
Fix lint
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:47:30 +00:00
erik.corry@gmail.com
ff8ed6b7b6
Fix Solaris build. Patch from Ryan Dahl. See http://codereview.chromium.org/5968004/
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:44:16 +00:00
fschneider@chromium.org
b9f5ab9ef1
Remove duplicate members from some LIR instruction by using the HIR accessors.
...
Remove unused LOperands from keyed-loads. We do not have multiple representations
for load instructions anymore.
Correct number of output operands as for a couple of instructions form 1 to 0
because they do not produce a result (e.g. PushArgument)
Review URL: http://codereview.chromium.org/6158004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:41:01 +00:00
whesse@chromium.org
14cb39e543
X64 Crankshaft: Add LTemplatedInstruction and some derived classes to lithium-x64.cc.
...
Review URL: http://codereview.chromium.org/6128008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:33:52 +00:00
antonm@chromium.org
a0bc9eb040
Add more bailouts for Array.slice over arguments.
...
Unfortunately, arguments is pretty much the normal JS object. For now
I am adding more sanity checks (in hope that typically arguments
list is rather short.) However it probably requires more systematic
treatment, for example, we could optimistically copy elements until
we meet first hole and in this case resort to JS builtin.
Review URL: http://codereview.chromium.org/6062006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-11 11:23:40 +00:00
sgjesse@chromium.org
bb0e35929f
Fix presubmit error - really
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6205003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 21:10:51 +00:00
sgjesse@chromium.org
d04c75c685
Fix presubmit error
...
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6206003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 21:03:48 +00:00
sgjesse@chromium.org
bd208976d7
Update the bits reserved for the gap size in the depotimization table
...
On ARM the a constant pool can be emitted during the gap code generation which leads to larger gap code size
BUG=v8:1018
Review URL: http://codereview.chromium.org/6125004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 19:43:38 +00:00
kmillikin@chromium.org
32254e5324
Change the hydrogen timing data to include zone allocation.
...
Review URL: http://codereview.chromium.org/6190002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 14:16:47 +00:00
ager@chromium.org
cd4ae721e2
ARM: Implement delete operation in lithium codegen.
...
I'm using the post call generator for the macro assembler
InvokeBuiltin call to be consistent with the ia32 version. It only
generates one call, but using the post call generator it should be
easier to catch if we change that at some point.
Review URL: http://codereview.chromium.org/6119004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 12:24:19 +00:00
fschneider@chromium.org
f89ce8159a
Split LInstruction into multiple variant to make our LIR more compact.
...
This change introduces LTemplateInstruction which is a specialized version
of LInstruction and takes one template parameter to indicate whether the
instruction produces a result operand.
All instruction that do not have a result inherit from LTemplateInstruction<0>.
Instructions that have a result operand from LTemplateInstruction<1>
All the Define* function only operate on instructions with a result.
For this to work I also refactored the places where we do
LInstruction* result = new Lxyy
into
Lxyz* result = new Lxyz
Review URL: http://codereview.chromium.org/6219001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 12:19:15 +00:00
sandholm@chromium.org
c260e4f731
Simplify Join and speedup joining arrays of numbers.
...
Review URL: http://codereview.chromium.org/6173004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 11:44:54 +00:00
whesse@chromium.org
a139094016
Crankshaft: Move LParallelMove to lithium.h, add LGap to lithium-x64.h.
...
Review URL: http://codereview.chromium.org/6132002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 11:31:21 +00:00
kmillikin@chromium.org
3d4395bab4
Prepare push to trunk. Now working on version 3.0.8.
...
Review URL: http://codereview.chromium.org/6152002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 08:05:34 +00:00
ager@chromium.org
5e3381c9c7
Landing for Martyn Capewell.
...
ARM: Fix comparison of NaN values.
Enables the cumulative exception flag when comparing values, and uses it to
detect NaN results.
BUG=1023
TEST=none
Code review URL: http://codereview.chromium.org/6142004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 08:04:30 +00:00
sandholm@chromium.org
6dd671d6c2
Make better use of the %_FastAsciiArrayJoin function.
...
Review URL: http://codereview.chromium.org/6100005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 08:00:48 +00:00
ager@chromium.org
d9e5078bbc
Landing for Martin Maly.
...
Implement DoCallKeyed for arm lithium compiler.
Code review URL: http://codereview.chromium.org/6139002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 07:59:13 +00:00
ricow@chromium.org
cd6bd8c4fa
Revert 6220 (generic descriptor support in Object.defineOwnProperty)
...
This change caused a webkit failure in http/tests/security/xss-DENIED-defineProperty.html.
I will look into this and reapply when I find a solution.
Review URL: http://codereview.chromium.org/6134005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-10 07:20:54 +00:00
sgjesse@chromium.org
dae44fd3ee
ARM: Fix lithium codegeneration of TypeofIs
...
The previous implementation was incomplete and wrong.
TBR=karlklose@chromium.org
Review URL: http://codereview.chromium.org/6113003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 14:27:32 +00:00
sgjesse@chromium.org
97621e7e32
ARM: Implement lithium codegen for DoTypeof, DoTypeofIs and DoSmiUntag
...
Review URL: http://codereview.chromium.org/6174001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 13:44:05 +00:00
sandholm@chromium.org
ba4f9faec5
Aviod double checking IS_STRING when joining arrays.
...
Review URL: http://codereview.chromium.org/5977013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 13:21:34 +00:00
lrn@chromium.org
90fd0ee897
Change interpretation of malformed \c? escapes in RegExp to match JSC.
...
Review URL: http://codereview.chromium.org/6171001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 12:35:42 +00:00
karlklose@chromium.org
e74b0ae7db
ARM: Support DoCallGlobal in lithium code generator.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6094011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 12:34:39 +00:00
whesse@chromium.org
7c94bf13b9
Create platform-independent lithium files, move LGapResolver and LGapNode there
...
Review URL: http://codereview.chromium.org/6121001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 11:49:22 +00:00
ricow@chromium.org
08cd803827
Landing for Peter Hallam
...
First cut at bug 992
Fixes JS portion of DefineOwnProperty when there is
an existing property and the new descriptor is generic.
Makes code follow spec steps more closely.
Fixes typo for check for unchanged enumerable in step 6.
Adds regression test.
Codereview url: http://codereview.chromium.org/6035014/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 11:49:09 +00:00
ricow@chromium.org
b02ff71824
Fix win64 build (int conversion)
...
Review URL: http://codereview.chromium.org/6083014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:51:44 +00:00
sgjesse@chromium.org
426f13e084
Fix GC issue in instanceof stub
...
The the call of the builtin in InstanceofStub was not correctly protected with an internal frame leading to the return address being handled as a pointer during GC.
Marked the Instanceof stub as allowing stub calls (the RecordWriteStub was removed some days ago).
This issue was not caught by the assertion designed for this when debug mode is run with --debug-code (which out tests always does) as generating code for Abort set the allow stub calls flag to true. This has been fixed by restoring the allow stub calls flag correctly.
Review URL: http://codereview.chromium.org/6097010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:37:26 +00:00
fschneider@chromium.org
bfecc95694
Revert r6194: Clean up code for type feedback a bit.
...
This causes a big performance regression. I'll investigate.
Review URL: http://codereview.chromium.org/6172001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:36:27 +00:00
kmillikin@chromium.org
12b34fa927
Move IsArgumentsMarker from class MaybeObject to Object.
...
Since we never need to ask it of a MaybeObject, put it with the other
oddball testers in class Object for consistency.
Review URL: http://codereview.chromium.org/6138004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 10:06:28 +00:00
whesse@chromium.org
f39ff5c679
X64 Crankshaft: Implement some methods in LInstruction, update mjsunit test expectations.
...
Review URL: http://codereview.chromium.org/6118002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 09:47:16 +00:00
sgjesse@chromium.org
a6c5fa6993
ARM implementations of LoadElements, LoadKeyedFastElement, StoreNamedField, StoreKeyedFastElement.
...
BUG=none
TEST=none
Patch by Martyn Capewell from ARM Ltd.
Review URL: http://codereview.chromium.org/5967008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-07 07:33:46 +00:00
karlklose@chromium.org
1eb68a859f
Fix presubmit (r6209).
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6029012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 16:20:45 +00:00
fschneider@chromium.org
5fbaece14c
Use a separate marker value to allocate the arguments object on deoptimzation.
...
Before we used the hole value for this purpose, but this does not work once we
start using the hole value for other purposes in the optimizing compiler.
Review URL: http://codereview.chromium.org/6116001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 15:53:56 +00:00
karlklose@chromium.org
d4bbad8e4e
ARM: Support DoCheckInstanceType in lithium codegenerator.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6040008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 15:25:03 +00:00
kmillikin@chromium.org
8945e02d86
Fix disassembly comment for CallFunctionStub.
...
The comment was printing the entire minor key but labeling it with 'argc'.
Review URL: http://codereview.chromium.org/6120001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 14:13:40 +00:00
karlklose@chromium.org
1152cab095
Use hydrogen accessor instead of copying members.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6119001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 14:02:46 +00:00
lrn@chromium.org
a50e69bda5
Avoid calling inherited setters when creating object literals and their boilerplates.
...
Fix issue 1015.
Review URL: http://codereview.chromium.org/6118001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 14:00:50 +00:00
kmillikin@chromium.org
dde853a4ad
Small change to stack checks in unoptimized code.
...
The stack checks include a loop nesting depth encoded in the code stream
after the call to the stack check stub. Change the code to jump around this
instruction as well as the call when the stack check is OK.
Review URL: http://codereview.chromium.org/6005014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 13:48:12 +00:00
whesse@chromium.org
2655060546
Fix errors in x64 crankshaft port, add failing tests to test expectations.
...
Review URL: http://codereview.chromium.org/6104004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-01-06 13:29:22 +00:00