jarin@chromium.org
69d5b3c155
Make new space iterable when transitioning double array to objects
...
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/228643002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-09 09:50:08 +00:00
rmcilroy@chromium.org
c8df5f42a2
Use correct call size for PredictableCodeSizeScopes.
...
If out-of-line constant pool is enabled, then calls can be 3 instructions
rather than 2. Fix the hard-coded PredictableCodeSizeScopes values with values
based on CallSize instead.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/226503003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20577 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-08 12:28:28 +00:00
svenpanne@chromium.org
341ec1b50e
Fixed flooring division by -1 on ARM.
...
We should avoid ASR #0 on ARM. Simplified and improved code a bit
while we're there on all platforms. Human brains are very bad at
understanding nested structures...
BUG=v8:3259
LOG=y
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/227553003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-07 12:08:40 +00:00
mvstanton@chromium.org
9e5757abee
Revert "Reland of https://codereview.chromium.org/172523002/ "
...
This reverts commit r20516 due to a Sunspider performance issue.
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/226233002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-04 16:18:59 +00:00
mvstanton@chromium.org
f9a8425cd2
Reland of https://codereview.chromium.org/172523002/
...
Fixed
1) Missing line in x64 port.
2) GcStress found a logic error in the IC miss handler.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/224903005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20516 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-04 13:57:53 +00:00
rmcilroy@chromium.org
3eb418df78
Fix fixed-point vcvt_f64_s32 immediate value encoding
...
The (32 - fraction_bits) value should be encoded so that the least
significant bit is set to bit 5 and the four next bits to bits 0-3. Fix
the previously incorrect encoding. This bug did not cause behavioral
issues before, since in existing uses of the function the order of the
bits in the immediate value does not matter, as they are all 1.
BUG=3256
LOG=N
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/223623003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-04 11:12:40 +00:00
svenpanne@chromium.org
f32ef903da
Reland "Fixed environment assignment for LCheckNonSmi."
...
Now with (hopefully correct) ARM64 part... :-}
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/225313003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-04 07:07:34 +00:00
jochen@chromium.org
5a57e644d7
Revert r20476.
...
Reason for revert: crashes arm64.debug cctest
Fatal error in ../src/hydrogen-instructions.h, line 2968
CHECK(value->IsCheckHeapObject()) failed
Fixed environment assignment for LCheckNonSmi.
TBR=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/223873003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20484 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-03 14:04:05 +00:00
mvstanton@chromium.org
5c0d85163c
Revert r20474
...
This reverts commit r20474 due to an x64 release issue.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/223823002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-03 12:27:24 +00:00
svenpanne@chromium.org
48ccdd9f7e
Fixed environment assignment for LCheckNonSmi.
...
This fixes browsing facebook.com with a debug version of Chrome.
TBR=ulan@chromium.org
Review URL: https://codereview.chromium.org/223763003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20476 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-03 12:12:28 +00:00
mvstanton@chromium.org
c21cf2d334
Function calls are handled with a LoadIC and a FunctionCallStub. This works well, but we can create a platform to gather custom feedback by inventing a CallIC. CallIC takes a JSFunction as input, maintains UNINIT/MONO/MEGA state in a feedback slot, and engages in limited patching for the most efficient code.
...
The change creates a degrade in NBody tests, but a follow-on CL addresses it by using this custom feedback platform to give a 45% improvement.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/172523002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-03 11:41:03 +00:00
jarin@chromium.org
0b53ed2d2b
Check in Lithium that allocation size in Smi range.
...
This is to avoid triggering an assertion from Smi::FromInt. The
generated code is unreachable, so it is not a real bug.
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/221743005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-03 07:04:46 +00:00
svenpanne@chromium.org
4e40600485
Check that environments assigned via AssignEnvironment are actually used.
...
Removed some temporary marker comments on the way.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/218403006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-02 11:30:13 +00:00
rossberg@chromium.org
45118bfdfb
Make invalid LHSs that are calls late errors
...
Necessary for web legacy compatibility.
Also fold in additional strict mode checks into LHS checks.
Minor constness clean-ups on the way.
R=marja@chromium.org
BUG=chromium:358346
LOG=Y
Review URL: https://codereview.chromium.org/217823003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20428 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-02 11:03:05 +00:00
svenpanne@chromium.org
497487beec
Consistently use a separate Lithium instruction for flooring division.
...
Previously we tried to share some code on by a slightly confusing re-use
of LDivI for a (general) flooring division. Now we cleanly separate
concerns, just like for the rest of the division-like operations. Note
that ARM64 already did it this way.
If we really want to save some code, we can introduce some macro
assembler instructions and/or helper functions in the code generator in
a future CL, but we should really try to avoid being "clever" to save
just a few lines of trivial code. Effort != complexity. :-)
Renamed some related Lithium operands on the way for more consistency.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/212703002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20395 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-01 11:42:42 +00:00
rmcilroy@chromium.org
69f8179c23
Only allow automatic FrameScope types for FrameAndConstantPoolScope
...
In certain situations the PP register would be invalid in a FrameScope::Manual FrameAndConstantPoolScope
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/214623002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20387 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-01 10:49:44 +00:00
svenpanne@chromium.org
4da732e321
Fixed power-of-2 predicates, excluding 0.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/219213003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-01 09:20:28 +00:00
svenpanne@chromium.org
51c209c609
Only assign environments when they are actually needed. (ARM and ARM64 only)
...
Twin of https://codereview.chromium.org/210783003/ and https://codereview.chromium.org/211153003/ .
Cleaned up DoChange a bit on the way, making things more uniform across platforms, removed useless comments etc.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/214613004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-01 07:21:31 +00:00
dslomov@chromium.org
b3148d921e
Fix PrepareKeyedOperand on arm.
...
When additional_offset is specified, the 'key' operand can be negative
and still pass the bounds check. Therefore, when converting key from
Smi, arithmetic and not logical shift must be used.
R=verwaest@chromium.org
BUG=358057
LOG=Y
Review URL: https://codereview.chromium.org/219473002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20363 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-31 15:14:28 +00:00
verwaest@chromium.org
019e27d8db
Reland and fix "Fix LoadFieldByIndex to take mutable heap-numbers into account.""
...
BUG=
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/218663005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-31 14:21:04 +00:00
yangguo@chromium.org
c0fa861726
Do not check for interrupt when allocating stack locals.
...
R=dcarney@chromium.org
BUG=357137
LOG=N
Review URL: https://codereview.chromium.org/219373004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20357 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-31 14:14:54 +00:00
jochen@chromium.org
163044e7ba
Revert 20348 - "Fix LoadFieldByIndex to take mutable heap-numbers into account."
...
Reason for revert: crashes benchmarks/sunspider/string-fasta on ia32.debug
This also reverts r20350 and r20352
> Fix LoadFieldByIndex to take mutable heap-numbers into account.
>
> BUG=
> R=ishell@chromium.org
>
> Review URL: https://codereview.chromium.org/213213002
BUG=none
LOG=n
TBR=verwaest@chromium.org
Revert "Use sarq on x64"
This reverts commit e2a8ef9321345c6bc091054443bf2b9535ff6b1c.
Revert "Don't | int and bool"
This reverts commit c90d713d3a8ceba4fec41933a63beb6e50a3d7c0.
Review URL: https://codereview.chromium.org/219393002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-31 13:23:32 +00:00
verwaest@chromium.org
55a6318560
Fix LoadFieldByIndex to take mutable heap-numbers into account.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/213213002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-31 11:59:29 +00:00
jarin@chromium.org
d65fe51ca0
Add missing lazy deopt point for the TransitionElementsKind instruction.
...
R=mvstanton@chromium.org , yangguo@chromium.org
BUG=357105
TEST=test/mjsunit/regress/regress-357105.js
LOG=N
Review URL: https://codereview.chromium.org/216963002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-31 11:58:53 +00:00
yangguo@chromium.org
dae7ecbfdf
Reland "Clean up runtime functions for Maths."
...
BUG=
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/216643002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-28 10:07:23 +00:00
yangguo@chromium.org
e8d5e6377e
Revert "Clean up runtime functions for Maths."
...
This reverts r20307.
TBR=jarin@chromium.org
Review URL: https://codereview.chromium.org/214593005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-27 16:30:03 +00:00
yangguo@chromium.org
1110f4fcbb
Clean up runtime functions for Maths.
...
R=dslomov@google.com , dslomov@chromium.org
Review URL: https://codereview.chromium.org/212763008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-27 14:45:56 +00:00
yangguo@chromium.org
8847b52097
Reland "Correctly OOM in the CEntryStub after retries."
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/214473003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-27 10:41:45 +00:00
yangguo@chromium.org
caad1de770
Revert "Correctly OOM in the CEntryStub after retries."
...
This reverts r20292 due to no-snapshot failures.
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/214413005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-27 09:59:07 +00:00
yangguo@chromium.org
3ee0783686
Correctly OOM in the CEntryStub after retries.
...
This fixes a bug introduced in r20179.
R=jkummerow@chromium.org
BUG=356211
LOG=N
Review URL: https://codereview.chromium.org/213193011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-27 09:26:47 +00:00
yangguo@chromium.org
9be61ddb8a
Hide some runtime functions.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/212163004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 15:51:48 +00:00
yangguo@chromium.org
9297e8b4b5
Fix interpreted regexp build.
...
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/212473002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-26 08:55:19 +00:00
dslomov@chromium.org
f66af4feb4
Refactor optimized in hydrogen only runtime functions.
...
This splits all runtime function into 3 categories:
1) RUNTIME: implemented in runtime and called from both full and optimized code.
2) RUNTIME_HIDDEN: implemented in runtime, never called directly from JS builtins.
3) INLINE: inlined in both full and optimized code
4) INLINE_OPTIMIZED: inlined in optimized code, implemented in runtime for full code.
R=yangguo@chromium.org , yannguo@chromium.org
Review URL: https://codereview.chromium.org/209353006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-25 14:26:55 +00:00
svenpanne@chromium.org
3081e1b730
Replaced unreachable code in DoStoreNamedField by an assertion.
...
This is part of the effort to assign an environment if and only if we can deopt.
Removed some related dead code on the way.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/209873005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 13:16:23 +00:00
yangguo@chromium.org
8b8fb30e7f
Reland "Remove Failure::OutOfMemory propagation and V8::IgnoreOutOfMemoryException."
...
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/209903003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 10:07:15 +00:00
yangguo@chromium.org
03866841aa
Revert "Remove Failure::OutOfMemory propagation and V8::IgnoreOutOfMemoryException."
...
This reverts r20179.
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/201573007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 09:17:18 +00:00
yangguo@chromium.org
62f65d8697
Remove Failure::OutOfMemory propagation and V8::IgnoreOutOfMemoryException.
...
R=dcarney@chromium.org
BUG=v8:3060
LOG=Y
Review URL: https://codereview.chromium.org/208263002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 08:47:45 +00:00
dcarney@chromium.org
493c6b3543
Do stack checks while pushing locals
...
R=yangguo@chromium.org
BUG=
Review URL: https://codereview.chromium.org/207543003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-24 08:17:06 +00:00
rodolph.perfetta@arm.com
d5753f27d9
ARM: fix assertions for uxtb and co.
...
Allow operands with ROR #0 . Behind the scene they are mapped to LSL #0 .
BUG=v8:3209
LOG=N
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/198053014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 15:59:45 +00:00
m.m.capewell@googlemail.com
6c4178330d
ARM: Fix Q register encoding
...
Fix Q register encoding for registers other than Q0. Also, fix value in NeonSize
enumeration.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/207523005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 13:04:20 +00:00
ulan@chromium.org
f20a9473f3
Ensure that lazy deopt sequence does not override calls.
...
BUG=354433
LOG=N
TEST=mjsunit/regress/regress-354433.js
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/198463006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-21 11:02:15 +00:00
svenpanne@chromium.org
68237f6590
Implement flooring division by a constant via truncating division by a constant.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/204583002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-20 13:10:23 +00:00
rodolph.perfetta@arm.com
bdea3e9a8f
ARM: clean-up some stub call sequences.
...
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/203263016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 16:27:09 +00:00
mvstanton@chromium.org
535f3427ca
Pretenure call new support.
...
When FLAG_pretenure_call_new is on, we emit mementos on new object creation
in full code, and consume the feedback in crankshaft. A key difference in the
generated code for stubs is the allocation of an additional type vector slot for the
CallNew AST node, which simplifies the CallConstructStub and CallFunctionStub
considerably.
Some performance tuning still needs to be addressed, therefore the flag is off at
this moment, though fully functional. The goal is to remove the flag as soon as
possible, which allows much code deletion (yay).
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/132963012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 13:39:09 +00:00
mvstanton@chromium.org
5e4febb06e
Array constructor expects AllocationSite or undefined as feedback.
...
Redefine Array constructor to expect an AllocationSite in the feedback
register or undefined. This will make code simpler as we support
pretenuring feedback for all constructed objects.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/203173003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 11:51:30 +00:00
rmcilroy@chromium.org
0acbcf9876
Reland "Add out-of-line constant pool support to Arm."
...
This CL adds out-of-line constant pool support to Arm. A ConstantPoolBuilder
object is introduced to manage building of the ConstantPoolArray for a given
code object.
This CL depends on the following CLs landing first:
https://codereview.chromium.org/138503002/
https://codereview.chromium.org/179813005/
https://codereview.chromium.org/183553003/
https://codereview.chromium.org/183803022/
https://codereview.chromium.org/183883011/
https://codereview.chromium.org/186733006/
https://codereview.chromium.org/188063002/
https://codereview.chromium.org/190793002/
https://codereview.chromium.org/190823002/
https://codereview.chromium.org/190833002/
https://codereview.chromium.org/190883002/
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/204323004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 10:32:12 +00:00
yangguo@chromium.org
bd2397c90c
Revert "Add out-of-line constant pool support to Arm."
...
This reverts commit r20051.
TBR=rmcilroy@chromium.org
Review URL: https://codereview.chromium.org/204403002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 09:53:58 +00:00
rmcilroy@chromium.org
9415863c97
Add out-of-line constant pool support to Arm.
...
This CL adds out-of-line constant pool support to Arm. A ConstantPoolBuilder
object is introduced to manage building of the ConstantPoolArray for a given
code object.
This CL depends on the following CLs landing first:
https://codereview.chromium.org/138503002/
https://codereview.chromium.org/179813005/
https://codereview.chromium.org/183553003/
https://codereview.chromium.org/183803022/
https://codereview.chromium.org/183883011/
https://codereview.chromium.org/186733006/
https://codereview.chromium.org/188063002/
https://codereview.chromium.org/190793002/
https://codereview.chromium.org/190823002/
https://codereview.chromium.org/190833002/
https://codereview.chromium.org/190883002/
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/191233003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 09:38:20 +00:00
svenpanne@chromium.org
1a6f977d6a
Tweaked FlooringDiv back to TruncatingDiv again.
...
This is a first step towards getting the flooring division by a
constant working again (which will be a separate CL).
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/197873029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-19 07:01:08 +00:00
ulan@chromium.org
487ca9e384
Fix TransitionElementsKindStub to handle non-JSArray objects correctly.
...
BUG=352982
LOG=N
TEST=mjsunit/regress/regress-352982.js
R=danno@chromium.org
Review URL: https://codereview.chromium.org/196343023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 13:29:29 +00:00
rmcilroy@chromium.org
be0bc25bbb
Add support for movw/movt immediate loads to BackEdgeTable on ARM to enable ool constant pool.
...
R=rodolph.perfetta@arm.com , ulan@chromium.org
Review URL: https://codereview.chromium.org/190833002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-18 11:36:19 +00:00
rmcilroy@chromium.org
4268685a3b
Update constant pool correctly when resuming a generator
...
This CL depends on the following CLs landing first:
https://codereview.chromium.org/188063002/
https://codereview.chromium.org/190793002/
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/190823002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20012 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 17:29:03 +00:00
ishell@chromium.org
3b257c35e5
Fixed spec violation of storing to length of a frozen object.
...
BUG=chromium:350890
LOG=N
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/196653015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 15:43:33 +00:00
mvstanton@chromium.org
6a4a934d8d
Utility functions for pretenure call new. These functions aren't yet called in the tree but will be in the next days. AssertUndefinedOrAllocationSite is to be used in several places where AllocationSite feedback is optional.
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/197643008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 13:55:22 +00:00
rossberg@chromium.org
c3c185c173
Make invalid LHSs a parse-time (reference) error
...
This is required by the spec. It also prevents crashes resulting from the attempt to read type feedback for the RHS of an invalid assignment which full codegen never actually allocated info for.
To do: check properly in preparser already.
R=marja@chromium.org , mstarzinger@chromium.org
BUG=351658
LOG=Y
Review URL: https://codereview.chromium.org/200473003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 10:21:01 +00:00
mvstanton@chromium.org
e3f3f6d98b
Revert "Continued fix for 351257. Reusing the feedback vector is too complex."
...
This reverts commit r19919.
TBR=bmeuer@chromium.org
Review URL: https://codereview.chromium.org/196343021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-17 08:31:21 +00:00
rmcilroy@chromium.org
f1f6d3095a
Fix deoptimization for out-of-line constant pool.
...
Ensure that the stack contains the correct constant pool pointer when a
function deopts.
This CL depends on https://codereview.chromium.org/183803022/ landing first.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/188063002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19940 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 15:11:58 +00:00
mvstanton@chromium.org
11df4b8815
Fix for issue 351261.
...
This relands the following fix: "HAllocate should never generate
allocation code if the requested size does not fit into page. Regression
test included. (bug 347543)" along with additional fixes to KeyedStoreIC.
BUG=351261
LOG=N
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/200113002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 10:22:55 +00:00
mvstanton@chromium.org
dd28969c1c
Continued fix for 351257. Reusing the feedback vector is too complex.
...
Attempting to re-use the type feedback vector stored in the
SharedFunctionInfo turns out to be difficult among the various cases.
It will be much easier to do this when deferred type feedback processing
is removed, as is in the works.
Created bug v8:3212 to track re-introducing the optimization of reusing
the type vector on recompile before optimization.
The CL also brings back the type vector on the SharedFunctionInfo.
BUG=351257
LOG=Y
R=bmeurer@chromium.org , bmeuer@chromium.org
Review URL: https://codereview.chromium.org/199973004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-14 09:28:37 +00:00
hpayer@chromium.org
7b810f4593
Revert "Moved type feedback vector to SharedFunctionInfo."
...
This reverts commit 828f1d563a3f0972135886888fd26526e04da07f.
Conflicts:
src/compiler.cc
test/cctest/test-compiler.cc
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/196283015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 17:47:12 +00:00
verwaest@chromium.org
c2af96ba7b
Turn StringLengthStub (used by string wrappers only) into a hydrogen stub.
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/197603002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 10:57:07 +00:00
bmeurer@chromium.org
4da15df008
Remove uses of CanBeNegative() in HMod.
...
BUG=v8:3204
LOG=y
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/195793016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 08:17:44 +00:00
bmeurer@chromium.org
929313bd6b
Remove uses of RangeCanInclude() in flooring division by power of 2.
...
Drive-By-Fix: Improve ARM code generation for flooring division by
power of 2.
BUG=v8:3204
LOG=y
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/196653009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 07:58:58 +00:00
bmeurer@chromium.org
750f2d98f8
Fix uses of range analysis results in HChange.
...
BUG=v8:3204
LOG=y
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/195023002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 06:11:52 +00:00
rmcilroy@chromium.org
7f622cffd4
Introduce FrameAndConstantPoolScope and ConstantPoolUnavailableScope.
...
Adds FrameAndConstantPoolScope and ConstantPoolUnavailableScope to enable
scoped management of constant pool availability. Also load constant pool
pointer when entering an internal frame scope.
R=rodolph.perfetta@arm.com , ulan@chromium.org
Review URL: https://codereview.chromium.org/190793002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 15:56:16 +00:00
rmcilroy@chromium.org
e57d0296da
Reland "Pass a Code object to Assembler::(set_)target_address_at for use by ool constant pool."
...
The ool constant pool will require a pointer to the code's constant pool when
updating or reading target addresses using set_target_address_at()
and target_address_at().
Original Review URL: https://codereview.chromium.org/183803022
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/195983002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 15:23:54 +00:00
svenpanne@chromium.org
be328fd4ce
Disable special handling of flooring division by constant until it is fixed for real.
...
Added a test to check the various division-like operations more exhaustively.
R=bmeurer@chromium.org , ulan@chromium.org
Review URL: https://codereview.chromium.org/194863002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 14:28:59 +00:00
svenpanne@chromium.org
d6f639bcb0
Handle flooring division in LCodeGen::DoDivByConstI on ARM, too.
...
We should really split up the Lithium instruction, but this will be
done in some future cleanup CL.
Removed some "const"s for local variables on the way, they don't really
help us much and just clutter up the code.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/196603004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 14:06:26 +00:00
jkummerow@chromium.org
8a1812f252
Fix lazy deopt after tagged binary ops
...
Also add policing code to ensure that optimized frames can in fact lazily deopt
at their respective current PC when we patch them for lazy bailout.
BUG=chromium:350434
LOG=y
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/194703008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-12 09:59:36 +00:00
rmcilroy@chromium.org
0896bd70a2
Revert "Pass a Code object to Assembler::(set_)target_address_at for use by ool constant pool."
...
This reverts r19825 for breaking ia32.debug checks.
Original Review URL: https://codereview.chromium.org/183803022
Update serializer to be able to deal with ool constant pool.
TBR=ulan@chromium.org
Review URL: https://codereview.chromium.org/195373004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 21:46:26 +00:00
rmcilroy@chromium.org
38732785dd
Pass a Code object to Assembler::(set_)target_address_at for use by ool constant pool.
...
The ool constant pool will require a pointer to the code's constant pool when
updating or reading target addresses using set_target_address_at()
and target_address_at().
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/183803022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 20:31:23 +00:00
rmcilroy@chromium.org
fadc74ec04
Clean up ARM mov 32bit immediate code in preparation for out of line constant pool.
...
R=rodolph.perfetta@arm.com , ulan@chromium.org
Review URL: https://codereview.chromium.org/138503002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19823 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 20:17:02 +00:00
rossberg@chromium.org
8e3f3cee9e
Eliminate extended mode, and other modes clean-up
...
- Merge LanguageMode and StrictModeFlag enums
- Make harmony-scoping depend only on strict mode
- Free some bits on the way
- Plus additional clean-up and renaming
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/181543002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19800 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 14:41:22 +00:00
rossberg@chromium.org
3f702d4bf9
Mode clean-up pt 1: rename classic/non-strict mode to sloppy mode
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/177683002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 14:39:08 +00:00
bmeurer@chromium.org
4ac0876a8c
Cleanup some of the range uses in ModI/DivI.
...
BUG=v8:3204
LOG=y
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/191293013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-11 11:57:27 +00:00
rmcilroy@chromium.org
9cfd807cba
Special case the recording of constant pool entries in the slot buffer.
...
This CL enables RelocInfo pointers which live in the constant pool to be treated
as normal pointers by the slot buffer, avoiding the requirement of creating fake
RelocInfo objects during UpdateSlots() in order to update these slots. This
is possible because constant pool entries are just pointers and don't require
the RelocInfo machinary to be updated.
EmbeddedObject constant pool entries can be added untyped to the slot buffer,
while code targets are still typed in order to correctly update the target
address based on the relocated code object.
Note: this is required in order to enable OOL constant pool support on Arm, but
should be benifitial for the current inline constant pool used by Arm code.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/179813005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-10 18:47:57 +00:00
m.m.capewell@googlemail.com
be8e2885d3
ARM: cleanning of InstanceOfKnownGlobal
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/189263011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-10 13:23:28 +00:00
verwaest@chromium.org
1180803953
Reland and fix "Allow ICs to be generated for own global proxy."
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/176793003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-10 12:23:05 +00:00
bmeurer@chromium.org
bf86e624d4
Reland "Handle non-power-of-2 divisors in division-like operations".
...
Fixed the flooring div bug and added a test case.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/191293012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19749 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-10 10:39:17 +00:00
dcarney@chromium.org
132d4428e5
allowed keyed store callbacks ic generation
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/173853005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19744 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-10 08:40:03 +00:00
yangguo@chromium.org
4f15fd2977
Reland "Introduce intrinsics for double values in Javascript."
...
This relands r19704 with a fix to the test case.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/189823003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 14:58:41 +00:00
svenpanne@chromium.org
fa6d25a602
Revert "Handle non-power-of-2 divisors in division-like operations", "A64 tweaks for division-like operations." and "Windows build fix.".
...
This reverts commit 19719, 19720 and 19721 because
mozilla/ecma/Date/15.9.3.1-1 fails (in release mode only?).
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/189963005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 13:11:56 +00:00
svenpanne@chromium.org
94c450fcb9
Handle non-power-of-2 divisors in division-like operations
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/190383002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 11:44:04 +00:00
svenpanne@chromium.org
819315db4e
Consistenly handle power-of-2 divisors in division-like operations
...
Lithium currently supports 3 division-like operations on integral operands: "Normal" division (rounding towards zero), flooring division (rounding towards -Infinity) and modulus calculation (the counterpart for the "normal" division). For divisors which are a power of 2, one can efficiently use some bit fiddling to avoid the actual division for such operations. This CL cleanly splits off these operations into separate Lithium instructions, making the code much more maintainable and more consistent across platforms.
There are 2 basic variations of these bit fiddling algorithms: One involving branches and a seemingly more clever one without branches. Choosing between the two is not as easy as it seems: Benchmarks (and probably real-world) programs seem to favor positive dividends, registers and shifting units are sometimes scarce resources, and branch prediction is quite good in modern processors. Therefore only the "normal" division by a power of 2 is implemented in a branch-free manner, this seems to be the best approach in practice. If this turns out to be wrong, we can easily and locally change this.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/175143002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 10:36:28 +00:00
mvstanton@chromium.org
1812f63fd2
Moved type feedback vector to SharedFunctionInfo.
...
Type Vector followup: the type vector currently lives off the code object. This CL moves it to the SharedFunctionInfo, facilitating re-use and continued use in crankshafted code if desired.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/178463007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 10:12:17 +00:00
yangguo@chromium.org
143902bebf
Revert "Introduce intrinsics for double values in Javascript."
...
This reverts r19704.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/189533008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 09:49:28 +00:00
mvstanton@chromium.org
1d3652ebe6
Symbols for type cells. We can make more efficient code to check against type cells in the future if we use symbols, guaranteed not to conflict with user code. Currently, the "symbols" are the hole and undefined. Undefined may come in from the outside.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/181283003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 09:10:18 +00:00
yangguo@chromium.org
2aefde4443
Introduce intrinsics for double values in Javascript.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/178583006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 09:05:10 +00:00
mvstanton@chromium.org
6115a006fd
Bugfix for 349874: we incorrectly believe we saw a growing store
...
When we set an out of bounds array index, the index might be so large that
it causes the array to go to dictionary mode. It's better to avoid
"learning" that this was a growing store in that case.
This fix also partially reverts a fix for bug 347543, as this fix is
comprehensive and satisfies that repro case as well (partial revert of
v19591).
BUG=349874
LOG=N
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/188643002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-06 13:07:51 +00:00
jarin@chromium.org
7ac668f753
Deoptimization fix for HPushArgument.
...
HPushArgument should never be used in a simulation environment
because the slot addresses for the arguments can be off (e.g.,
due to on-stack arguments object of an inlined caller).
R=mstarzinger@chromium.org
BUG=v8:3183
LOG=N
Review URL: https://codereview.chromium.org/178193026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-05 12:45:46 +00:00
verwaest@chromium.org
9b8021ad29
Remove all uses of field-tracking flags that do not make decisions but are subject to existing information.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/173963002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-04 12:48:17 +00:00
bmeurer@chromium.org
e16cc0acaf
Push safepoint registers in deferred number-to-i/u only on-demand.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/181053005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-04 12:45:00 +00:00
hpayer@chromium.org
b3ecfa32c2
Consolidate RecordWriteFromCode and RecordWriteForEvacuationFromCode.
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/185233008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-03 13:27:59 +00:00
ulan@chromium.org
b9e0b87a5a
Clear optimized code cache in shared function info when code gets deoptimized.
...
This adds a pointer to the shared function info into deoptimization data of an optimized code. Whenever the code is deoptimized, it clears the cache in the shared function info.
This fixes the problem when the optimized function dies in new space GC before the code is deoptimized due to code dependency and before the optimized code cache is cleared in old space GC (see mjsunit/regress/regress-343609.js).
This partially reverts r19603 because we need to be able to evict specific code from the optimized code cache.
BUG=343609
LOG=Y
TEST=mjsunit/regress/regress-343609.js
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/184923002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-03 11:11:39 +00:00
jkummerow@chromium.org
8b4c59fc81
Fix ARM/MIPS versions of r19607
...
kNoCodeAgeSequenceLength is in bytes on ia32/x64, but in instructions on arm/mips.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/183893006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-28 14:08:39 +00:00
jkummerow@chromium.org
85367a7db9
Fail early when re-entering code that has been patched for lazy deopt
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/184373004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19607 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-28 12:41:25 +00:00
jochen@chromium.org
927e5605eb
Delete the simulator when we don't need it anymore
...
BUG=none
R=svenpanne@chromium.org , ulan@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/180243010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-28 10:55:47 +00:00
mvstanton@chromium.org
df988c7f6b
The Array function must be looked up in the native context.
...
Platforms x64, a64, arm and mips had the bug that the array function was looked
up in the global context instead of the native context. Fix this, restoring a
weakened assert in hydrogen along the way (by the fix for crbug 347528, which
helped find this case).
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/184383003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-28 10:39:36 +00:00
ishell@chromium.org
2ab83cf192
HAllocate should never generate allocation code if the requested size does not fit into page. Regression test included.
...
BUG=347543
LOG=N
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/180803005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-27 17:33:25 +00:00
mvstanton@chromium.org
e664f42a5a
Revert r19430, r19459:
...
"Reland "Allow ICs to be generated for own global proxy.""
Causing ClusterFuzz crash (issue 343928)
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/179643003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-25 12:18:30 +00:00
jacob.bramley@arm.com
baf2614853
Remove the unused LoadInitialArrayMap.
...
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/173883003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-20 16:36:53 +00:00
ulan@chromium.org
db60894687
Clean up weak objects in optimized code.
...
This prepares for weak objects in IC stubs.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/172233003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-19 14:03:48 +00:00
mvstanton@chromium.org
73b679cbee
Revert "Second attempt at introducing a premonomorphic state in the call"
...
This reverts commits r19463 and r19457 (includes MIPS port), there was a
Sunspider perf issue and on reflection we can achieve the necessary
result in a new way.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/172383003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-19 13:55:25 +00:00
yangguo@chromium.org
139134acc2
Harmony: optimize Math.clz32.
...
R=svenpanne@chromium.org
BUG=v8:2938
LOG=N
Review URL: https://codereview.chromium.org/172133003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19487 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-19 13:51:49 +00:00
ulan@chromium.org
cf568ea0ed
Do not emit receiver map in CheckPrototypes.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/170613002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19471 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-19 09:24:44 +00:00
mvstanton@chromium.org
5224c3d0f0
Second attempt at introducing a premonomorphic state in the call
...
target caches.
This time we don't go through the premonomorphic state for
the Array call target caches to avoid losing information from
allocation sites that aren't only used once, but where the
resulting array is used heavily.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/169683003
Patch from Kasper Lund <kasperl@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19457 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-18 15:33:34 +00:00
jacob.bramley@arm.com
847aad8059
Pass a BailoutReason to Runtime::kAbort.
...
BUG=
R=rmcilroy@chromium.org , ulan@chromium.org
Review URL: https://codereview.chromium.org/168903004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19442 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-18 13:03:24 +00:00
svenpanne@chromium.org
dbce27047e
Fixed and improved code for integral division. Fixed and extended tests.
...
Arithmetic right shifting is *not* division in two's complement
representation, only in one's complement. So we convert to one's
complement, shift, and go back to two's complement. By permutating the
last steps, one can get efficient branch-free code. This insight comes
from the paleozoic era of computer science, see the paper from 1976:
Guy Lewis Steele Jr.: "Arithmetic Shifting Considered Harmful"
ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-378.pdf
This results in better and more correct code than our previous
"neg/shift/neg" dance.
LOG=y
BUG=v8:3151
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/166793002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-18 10:45:27 +00:00
verwaest@chromium.org
2f9f49798a
Reland "Allow ICs to be generated for own global proxy."
...
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/170343002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-18 10:10:06 +00:00
rmcilroy@chromium.org
f6e95dc928
A64 support for DoubleToIStub (truncating).
...
Added support for truncating DoubleToIStub and reorganize the macro-assembler
dToI operations to do the fast-path inline and the slow path by calling the
stub.
This a port essentially a port of https://codereview.chromium.org/23129003/ .
R=jacob.bramley@arm.com , ulan@chromium.org
Review URL: https://codereview.chromium.org/160423002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-17 15:09:46 +00:00
mvstanton@chromium.org
8bcdbc354f
Revert "Add a premonomorphic state to the call target cache."
...
This reverts commit r19402
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/169713002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-17 14:22:18 +00:00
dcarney@chromium.org
127cafa846
Remove arch specific api callback generate functions
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/169353002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-17 12:36:44 +00:00
mvstanton@chromium.org
be731e6c95
Add a premonomorphic state to the call target cache.
...
From a CL by kasperl: https://codereview.chromium.org/162903004/
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/163413003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19402 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-17 11:59:45 +00:00
jkummerow@chromium.org
43a836f70a
ARM: build fix for r19380.
...
This commit fixes the debug build on Linux with gcc 4.6.3 and 4.7.2.
Port r19381 (5476e11b)
BUG=
R=dcarney@chromium.org , plind44@gmail.com
Review URL: https://codereview.chromium.org/167523003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-17 08:10:02 +00:00
verwaest@chromium.org
ed9bbc7051
Remove HandlerKindField and just encode the handlerkind as the only extra-ic-state.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/166883002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19385 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-14 15:17:26 +00:00
verwaest@chromium.org
209b17ac31
Don't mix handler flags into regular flag computation.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/163363003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19384 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-14 15:15:08 +00:00
dcarney@chromium.org
0c844cc590
api accessor store ics should return passed value
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/166653003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-14 14:13:06 +00:00
yangguo@chromium.org
68c7523e63
Fix assignment of function name constant.
...
If it's shadowed by a variable of the same name and both are forcibly
context-allocated, the function is assigned to the wrong context slot.
R=rossberg@chromium.org
BUG=v8:3138
LOG=Y
Review URL: https://codereview.chromium.org/159903008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-14 12:40:47 +00:00
vegorov@chromium.org
8f170a66e7
Improve positions tracking inside the HGraphBuilder.
...
Instead of tracking simple absolute offset from the start of the script like other places do, track a pair of (inlining id, offset from the start of inlined function).
This enables us to pinpoint with inlining path an instruction came from. Previously in multi-script environments we emitted positions that made very little sense because inside a single optimized function they would point to different scripts without a way to distinguish them.
Start dumping the source of every inlined function to make possible IR viewing tools with integrated source views as there was previously no way to acquire this information from IR dumps. We also dump source position at which each inlining occured.
Tracked positions are written into hydrogen.cfg as pos:<inlining-id>_<offset>.
Flag --emit-opt-code-positions is renamed by this change into --hydrogen-track-positions to better convey it's meaning.
In addition this change assigned global unique identifier to each optimization performed inside isolate. This allows to precisely match compilation artifacts (e.g. IR and disassembly) and deoptimizations.
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/140683011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-13 16:09:28 +00:00
rmcilroy@chromium.org
7152389af6
Add to OWNERS for arm and a64
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/138953017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-12 13:33:54 +00:00
bmeurer@chromium.org
85856feaf7
Omit redundant smi checks in write barriers.
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/155843006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-12 12:36:53 +00:00
svenpanne@chromium.org
ad536f2afc
Improved variable-related assembler comments in fullcode.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/157033012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-12 12:06:11 +00:00
ulan@chromium.org
e95bc7eec8
Merge experimental/a64 to bleeding_edge.
...
BUG=v8:3113
LOG=Y
R=jochen@chromium.org , rmcilroy@chromium.org , rodolph.perfetta@arm.com
Review URL: https://codereview.chromium.org/148293020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-12 09:19:30 +00:00
mvstanton@chromium.org
1d88f09092
Cleanup: ContextualMode doesn't need to be passed to ICs.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/154113010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-11 12:41:58 +00:00
mvstanton@chromium.org
516ed9fa90
Adding a type vector to replace type cells.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/137403009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-10 21:38:17 +00:00
yangguo@chromium.org
db1a685b8f
Revert "Fix inconsistencies wrt whitespaces."
...
This reverts r19196.
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/147443008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19199 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-07 14:13:00 +00:00
yangguo@chromium.org
d0f57e1195
Fix inconsistencies wrt whitespaces.
...
\u0085 (NEL) is now considered a whitespace in accordance to http://www.unicode.org/Public/6.3.0/ucd/PropList.txt
R=mstarzinger@chromium.org
BUG=v8:3109
LOG=Y
Review URL: https://codereview.chromium.org/146983007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19196 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-07 12:34:45 +00:00
dcarney@chromium.org
12039c97c6
swap in global proxy on accessors
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/156623002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-06 10:50:07 +00:00
verwaest@chromium.org
7dc05b57fd
Move failing ASSERT on ARM to a more sane place.
...
Objects can actually be stored into themselves. This fails when no write
barrier is needed (eg, the object was just allocated).
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/148733005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-05 10:12:14 +00:00
bmeurer@chromium.org
8150c34c82
Optimize redundant HCompareMap instructions with known successors.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/150663005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-05 09:30:53 +00:00
jkummerow@chromium.org
4058d90747
Cleanup: Unify CodeGenerator class across platforms
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/134643026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-04 13:53:41 +00:00
dcarney@chromium.org
ef2ca4ac09
let load and store api callbacks use global proxy as receiver
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/151063003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-03 15:19:38 +00:00
verwaest@chromium.org
77ccf36993
Ensure we don't clobber the cell on ARM and MIPS
...
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/151543003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-01 10:43:57 +00:00
verwaest@chromium.org
ae7a209e71
Remove CallICs
...
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/148223002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-31 16:52:17 +00:00
jochen@chromium.org
253edf246f
Remove IsRegExpEquivalent.
...
It's not used anywhere.
BUG=none
R=ulan@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/141563013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-31 14:17:02 +00:00
hpayer@chromium.org
dae054e7f0
Fix compiler error on MacOS, remove unused ParameterCount member in CallInterceptorCompiler.
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/132113004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-31 07:02:33 +00:00
verwaest@chromium.org
a9ba16dee3
Fix the context check in LoadGlobalFunctionPrototype
...
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/146303003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18958 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-30 17:45:09 +00:00
dcarney@chromium.org
5c589640bf
crankshaft support for api method calls
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/148333003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-30 13:18:41 +00:00
verwaest@chromium.org
b73101d539
Optimize HWrapReceiver
...
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/135593006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-30 12:52:49 +00:00
dcarney@chromium.org
a1f55c107f
stub api getters
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/150213003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-30 12:15:51 +00:00
ulan@chromium.org
979cd4b0f3
Disable tracking of double fields during snapshot creation.
...
Follow-up to r18298.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/101123004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 14:18:55 +00:00
bmeurer@chromium.org
4a0959e360
Replace HThrow with HCallRuntime.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/131103021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 14:03:32 +00:00
bmeurer@chromium.org
f80e76cd58
Remove the unused HElementsKind instruction.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/136093004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 13:44:50 +00:00
bmeurer@chromium.org
87a3951c11
Remove the HValueOf instruction.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/139233004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 13:41:00 +00:00
bmeurer@chromium.org
3ba2f104c9
Turn RegExpConstructResultStub into a HydrogenCodeStub.
...
This has the additional benefit that it is now possible to
inline the RegExpResult construction code into Hydrogen
builtins.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/141703018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 13:10:35 +00:00
bmeurer@chromium.org
1e6606849a
Don't create dummy uses for control dependencies.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/149513002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 12:48:32 +00:00
bmeurer@chromium.org
c12593cf2b
Kill obsolete HLoadExternalArrayPointer instruction.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/141583011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 07:27:35 +00:00
bmeurer@chromium.org
1e7bbbc921
Both HGlobalObject and HGlobalReceiver can be replaced with HLoadNamedField.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/148453009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 07:26:52 +00:00
palfia@homejinni.com
bea3014d9e
ARM: Fix global object loading in DoWrapReceiver.
...
This commit fixes the global object loading to load the result into the "result" register instead of the "receiver" register.
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/134903004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 20:25:38 +00:00
hpayer@chromium.org
a09a5a86b7
Allocation site pretenuring for StringAdd on all platforms.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/147763005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 15:43:28 +00:00
bmeurer@chromium.org
a2d1f8b8f6
Drop the native FastNewBlockContextStub.
...
This code is almost never executed in real world and benchmarks,
and there's obviously absolutely no need to have this native code
hanging around for no benefit.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/148873002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 13:43:04 +00:00
mvstanton@chromium.org
371d6f6a98
We shouldn't throw under FLAG_debug_code, rather abort.
...
Throwing under FLAG_debug_code confuses the rest of our infrastructure
which expects a safe point at the site of call into the runtime
for throw. We were doing that to make a clusterfuzz test happy, but
the better solution is to assert/abort under debug_code, and prevent
clusterfuzz from fuzzing on internal APIs that crash on incorrect
values.
We'll need to alter the fuzzer to turn off fuzzing for:
string-natives.js
lithium/SeqStringSetChar.js
regress/regress-seqstrsetchar-ex3.js
regress/regress-seqstrsetchar-ex1.js
regress/regress-crbug-320922.js
So as to prevent the fuzzer from running
%_OneByteSeqStringSetChar() and
%_TwoByteSeqStringSetChar().
BUG=
R=hpayer@chromium.org , machenbach@chromium.org
Review URL: https://codereview.chromium.org/139903005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 11:53:11 +00:00
bmeurer@chromium.org
f9575fb82a
Remove obsolete instruction HOuterContext.
...
HOuterContext can be expressed in terms of HLoadNamedField.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/131513015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 09:42:24 +00:00
dcarney@chromium.org
d1a10c6e37
stub fast api calls
...
R=verwaest@chromium.org , vervaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/140613004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-27 09:57:54 +00:00
dslomov@chromium.org
1a67b7f86a
External Array renaming and boilerplate scrapping
...
Replaced symbolic names with correct JS name (byte -> int8, unsigned int -> uint32 etc).
Using macros to scrap the boilerplate
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/145133013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18835 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-24 16:01:15 +00:00
svenpanne@chromium.org
13395a8392
Simplify HUnaryMathOperation::Canonicalize.
...
Made the logic architecture-independent, although we should really have some kind of instruction selection instead of trying to handle some weird cases at the hydrogen level.
Some tiny related cleanups on the way.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/141653015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-24 14:05:11 +00:00
svenpanne@chromium.org
c19d55f801
ARM: Reduce the stack requirements of GetNoCodeAgeSequence.
...
Allocate the patcher object on the heap, to avoid occasional stack
overflows on QNX/ARM when entering GetNoCodeAgeSequence.
BUG=v8:3111
LOG=y
Patch from Cosmin Truta <ctruta@blackberry.com>.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/144933002
Patch from Cosmin Truta <ctruta@blackberry.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-24 11:48:09 +00:00
verwaest@chromium.org
21532ddfdc
Reland ArrayPop / ArrayPush.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/138443012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18814 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-24 11:47:53 +00:00
jkummerow@chromium.org
ee4e034d70
Revert broken ArrayPop changes
...
This reverts:
r18749 "Reland (and fix) "Add hydrogen support for ArrayPop, and remove the handwritten call stubs."",
r18790 "Remove ArrayPush from the custom call generators, and instead call directly to the handler in crankshaft.", and
r18798 "MIPS: Remove ArrayPush from the custom call generators, and instead call directly to the handler in crankshaft."
For causing crashes on Canary.
BUG=chromium:337686
LOG=N
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/146003006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-24 08:32:50 +00:00
verwaest@chromium.org
6b60546b16
Remove ArrayPush from the custom call generators, and instead call directly to the handler in crankshaft.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/137693003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-23 16:20:25 +00:00
hpayer@chromium.org
83a1df2354
Remove Heap::MaxRegularSpaceAllocationSize and use Page::MaxRegularHeapObjectSize instead.
...
BUG=
R=mstarzinger@chromium.org , mvstanton@chromium.org
Review URL: https://codereview.chromium.org/141653016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-23 13:02:27 +00:00
bmeurer@chromium.org
5e0f020d3a
Turn FastNewContextStub into a HydrogenCodeStub.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/145513002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-23 08:36:22 +00:00
dcarney@chromium.org
02c02fe567
Reland r18714 'Unify calling to GenerateFastApiCallBody before stubbing it'
...
TBR=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/144543004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18762 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-23 08:14:00 +00:00
bmeurer@chromium.org
e5f1ac1ded
Get rid of the unused native code StringAddStub.
...
BUG=v8:2990
LOG=n
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/144023009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 13:48:05 +00:00
verwaest@chromium.org
f30330325e
Reland (and fix) "Add hydrogen support for ArrayPop, and remove the handwritten call stubs."
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/144913003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18749 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 13:22:58 +00:00
mvstanton@chromium.org
1b3280c491
Revert "Add hydrogen support for ArrayPop, and remove the handwritten call stubs."
...
This reverts commit r18709, due to deopt fuzzer issue.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/143983010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-22 10:41:23 +00:00
mvstanton@chromium.org
796a244bea
Revert "Unify calling to GenerateFastApiCallBody before stubbing it"
...
This reverts commit r18714 for breaking webkit tests with an assert.
TBR=dcarney@chromium.org
Review URL: https://codereview.chromium.org/144143002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18720 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 17:04:17 +00:00
rossberg@chromium.org
0d906a8bdb
Zonify types in compiler frontend
...
Clean up some zone/isolate handling in AST and its visitors on the way.
(Based on https://codereview.chromium.org/103743004/ )
R=jkummerow@chromium.org , titzer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/102563004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18719 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 16:22:52 +00:00
mvstanton@chromium.org
c472ee85f8
Array constructor shouldn't require a Cell, just an AllocationSite.
...
The Array constructor has a needless dependency on an input argument
that is a Cell. It uses this to walk through to an AllocationSite.
The dependency hampers future work. Instead, pass the AllocationSite
as input to the Array constructor.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/140963004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 16:04:39 +00:00
dcarney@chromium.org
058c5c9f40
Unify calling to GenerateFastApiCallBody before stubbing it
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/142973005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 15:06:46 +00:00
verwaest@chromium.org
2d9a4eb355
Add hydrogen support for ArrayPop, and remove the handwritten call stubs.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/137783023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 12:42:24 +00:00
verwaest@chromium.org
342b534e7e
Stay in fast enum case if the empty_slow_element_dictionary is used.
...
This fixes slow for-in over frozen objects.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/135903014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-21 11:20:11 +00:00
verwaest@chromium.org
9f64f43a1c
Turn ArrayPush into a stub specialized on the elements kind and argc.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/143213003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 17:09:24 +00:00
rmcilroy@chromium.org
6eb9e02b00
DoubleToIStub can't use ip on armv6, because the ubfx impl will clobber it
...
This previous change broke DoubleToIStub on armv6:
https://code.google.com/p/v8/source/detail?r=16322
The problem is that DoubleToIStub::Generate assumed that it could safely use the ip register, but on armv6 the ubfx implementation will clobber any previous value stored there. So instead, pick another register.
Test case:
for (var i=0; i<2; i++) {
v = 4294967295;
v &= -2;
print(v)
}
This should print -2 twice, but on armv6 without this patch, it prints -2 followed by 2046.
This problem causes sunspider's bitops-nsieve-bit, crypto-md5 and crypto-sha1 tests to generate incorrect results (but the results are not checked for validity in sunspider-1.0 as available in chromium, but are checked and reported as incorrect in sunspider-1.0.2).
Thanks to Tomasz Kilarski for helping out with this.
R=bmeurer@chromium.org , rmcilroy@chromium.org
Review URL: https://codereview.chromium.org/131823004
Patch from Mostyn Bramley-Moore <mostynb@opera.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 11:30:48 +00:00
mvstanton@chromium.org
04b1baa4c4
We no longer need to recover type cells from the oracle.
...
We only need the values within them. Function calls to Array from optimized code needed the cell in the past, but no longer.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/141893002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18682 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 09:48:05 +00:00
svenpanne@chromium.org
0757d56057
De-virtualize GenerateNameCheck.
...
Currently there are two kinds of "vtables" used in the load/store stub
compilers: kind() and C++'s own vtables. This is a bit confusing, and
this is a step towards simplifying things.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/141763002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-20 07:05:23 +00:00
verwaest@chromium.org
db3bc1ee85
Remove special String.fromCharCode call IC support.
...
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/141773002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18671 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-17 16:08:54 +00:00
verwaest@chromium.org
5b5feaa92d
Remove the special MathFloor / MathAbs call handlers.
...
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/141733002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18669 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-17 14:21:01 +00:00
mvstanton@chromium.org
431dcc9342
Moving logic to AstNode to determine how many type cells are required.
...
With this change, we'll be able to discover how many type cells we
need at parse time, enabling future optimizations.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/141533004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18668 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-17 14:08:50 +00:00
verwaest@chromium.org
e9f957ce2c
Remove special charAt and charCodeAt handling in the ICs.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/136443006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18663 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-17 11:28:22 +00:00
verwaest@chromium.org
ef52aeb701
Remove special ArrayCode CallIC.
...
Once Call ICs are replaced by LoadIC + CallFunctionStub, we'll need a new way
of tracking this information.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/141073006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-17 11:24:36 +00:00
mvstanton@chromium.org
155ef100e9
Fix logic error in assert in IsUndeclaredGlobal()
...
Recent changes in IC logic meant that CallStubs no longer use the Contextual bit. IsUndeclaredGlobal() needed to adjust for that.
In fact, now the CL has morphed to remove the notion of storing contextual state in the IC at all, it just becomes some extra ic state of the load ic. This took some adjustment in harmony code to use the global receiver for certain stores.
Now it's clearer that only LoadICs actually record any information about contextual or not.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/140943002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-17 11:08:24 +00:00
dcarney@chromium.org
7cee52948f
Fix stub-invoked setter callback handling.
...
When invoking a setter callback for a property using
JSObject::SetPropertyWithCallback(),the callback arguments includes
a correct pair of receiver and holder objects.
Such a pair of _possibly different_ arguments (receiver, holder) must
also be supplied when invoking the same setter callback from JITed
code, when the setter is invoked through the StoreCallbackProperty
stub.
An example where this matters are the accessor properties kept on the
global scope of Worker (i.e., properties kept on the global object
itself, and not on its prototype.) Conflating the receiver with the
holder leads to general confusion when attempting to fetch out the
wrapper object.
LOG=N
R=dcarney@chromium.org , dcarney
BUG=239669
Review URL: https://codereview.chromium.org/139263008
Patch from Sigbjorn Finne <sigbjornf@opera.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18658 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-17 10:34:43 +00:00
dslomov@chromium.org
5da41be7b8
Implement in-heap backing store for typed arrays.
...
This adds a fixed array sub-type that will represent a backing store for
typed arrays allocated with TypedArray(length) construtor.
R=mvstanton@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/101413006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-16 17:08:45 +00:00
dslomov@chromium.org
34eeeb8953
Revert "Implement in-heap backing store for typed arrays."
...
This reverts commit r18649 for breaking Linux/nosnap and Win64 tests.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/140793003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-16 16:00:36 +00:00
dslomov@chromium.org
97040ce67b
Implement in-heap backing store for typed arrays.
...
This adds a fixed array sub-type that will represent a backing store for
typed arrays allocated with TypedArray(length) construtor.
R=mvstanton@chromium.org , verwaest@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=18646
Review URL: https://codereview.chromium.org/101413006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18649 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-16 15:01:27 +00:00
dslomov@chromium.org
95f572389e
Revert "Implement in-heap backing store for typed arrays."
...
This reverts commit r18646 for breaking Win32 build.
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/132233012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18647 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-16 14:26:15 +00:00
dslomov@chromium.org
0c960c2e96
Implement in-heap backing store for typed arrays.
...
This adds a fixed array sub-type that will represent a backing store for
typed arrays allocated with TypedArray(length) construtor.
R=mvstanton@chromium.org , verwaest@chromium.org
Review URL: https://codereview.chromium.org/101413006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-16 14:18:37 +00:00
titzer@chromium.org
ff885a1114
Fix handling of last position for lazy deopt on X64, ARM and MIPS.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/140773002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18642 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-16 11:58:06 +00:00
jarin@chromium.org
33b3f5639b
Fix Win32 buildbreak (caused by overriden methods that have disappeared
...
while having the patch out for code review).
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/136303004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-15 17:51:09 +00:00
jarin@chromium.org
19d832719e
This is a preview of a first step towards unification of the hydrogen
...
call machinery. The change replaces CallNamed, CallKeyed,
CallConstantFunction and CallKnownGlobal hydrogen instructions with two
new instructions with a more lower level semantics:
1. CallJSFunction for direct calls of JSFunction objects (no
argument adaptation)
2. CallWithDescriptor for calls of a given Code object according to
the supplied calling convention.
Details:
CallJSFunction should be straightforward, the main difference from the
existing InvokeFunction instruction is the absence of argument adaptor
handling. (As a next step, we will replace InvokeFunction with an
equivalent hydrogen code.)
For CallWithDescriptor, the calling conventions are represented by a
tweaked version of CallStubInterfaceDescriptor. In addition to the
parameter-register mapping, we also define parameter-representation
mapping there. The CallWithDescriptor instruction has variable number of
parameters now - this required some simple tweaks in Lithium, which
assumed fixed number of arguments in some places.
The calling conventions used in the calls are initialized in the
CallDescriptors class (code-stubs.h, <arch>/code-stubs-<arch>.cc), and
they live in a new table in the Isolate class. I should say I am not
quite sure about Representation::Integer32() representation for some of
the params of ArgumentAdaptorCall - it is not clear to me wether the
params could not end up on the stack and thus confuse the GC.
The change also includes an earlier small change to argument adaptor
(https://codereview.chromium.org/98463007 ) that avoids passing a naked
pointer to the code entry as a parameter. I am sorry for packaging that
with an already biggish change.
Performance implications:
Locally, I see a small regression (.2% or so). It is hard to say where
exactly it comes from, but I do see inefficient call sequences to the
adaptor trampoline. For example:
;;; <@78,#24> constant-t
bf85aa515a mov edi,0x5a51aa85 ;; debug: position 29
;;; <@72,#53> load-named-field
8b7717 mov esi,[edi+0x17] ;; debug: position 195
;;; <@80,#51> constant-s
b902000000 mov ecx,0x2 ;; debug: position 195
;;; <@81,#51> gap
894df0 mov [ebp+0xf0],ecx
;;; <@82,#103> constant-i
bb01000000 mov ebx,0x1
;;; <@84,#102> constant-i
b902000000 mov ecx,0x2
;;; <@85,#102> gap
89d8 mov eax,ebx
89cb mov ebx,ecx
8b4df0 mov ecx,[ebp+0xf0]
;;; <@86,#58> call-with-descriptor
e8ef57fcff call ArgumentsAdaptorTrampoline (0x2d80e6e0) ;; code: BUILTIN
Note the silly handling of ecx; the hydrogen for this code is:
0 4 s27 Constant 1 range:1_1 <|@
0 3 t30 Constant 0x5bc1aa85 <JS Function xyz (SharedFunctionInfo 0x5bc1a919)> type:object <|@
0 1 t36 LoadNamedField t30.[in-object]@24 <|@
0 1 t38 Constant 0x2300e6a1 <Code> <|@
0 1 i102 Constant 2 range:2_2 <|@
0 1 i103 Constant 1 range:1_1 <|@
0 2 t41 CallWithDescriptor t38 t30 t36 s27 i103 i102 #2 changes[*] <|@
BUG=
R=verwaest@chromium.org , danno@chromium.org
Review URL: https://codereview.chromium.org/104663004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-15 17:00:35 +00:00
machenbach@chromium.org
4398efe84d
Reland "Remove flags argument from EmitCallWithStub" and "MIPS: Remove flags argument from EmitCallWithStub.""
...
This reverts commit r18606 since suspected problems still remained.
BUG=
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/139013005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-15 09:05:21 +00:00
machenbach@chromium.org
b0d92e0c3a
Revert "Remove flags argument from EmitCallWithStub" and "MIPS: Remove flags argument from EmitCallWithStub."
...
This reverts commits r18598 and r18604 for breaking GC stress.
BUG=
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/133393003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-15 08:12:39 +00:00
verwaest@chromium.org
ca9ee7b53b
Remove flags argument from EmitCallWithStub
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/135653003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18598 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-14 17:31:31 +00:00
verwaest@chromium.org
72125bafcc
Remove HCallGlobal and merge uses with HCallNamed.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/134333007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-14 16:15:52 +00:00
verwaest@chromium.org
53f46c5214
Get rid of ContextualMode for call ICs.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/137083002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-14 16:15:05 +00:00
verwaest@chromium.org
cfcb201367
Fix loading the global receiver on ARM.
...
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/138463002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-14 16:13:18 +00:00
mstarzinger@chromium.org
4d338985b9
Closed generator returns a completed object instead of throwing a error
...
From ES6 rev20 draft, closed generator returns completed object (the
value is `undefined` and done is `true`).
Since a error thrown in generator is propagated to the caller without
setting status of a thrown generator to "completed", once a generator is
suspended by a error, status becomes "executing" forever. This is filed
as v8:3096
LOG=N
BUG=v8:3097
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/136003003
Patch from Yusuke Suzuki <yusukesuzuki@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-14 15:19:34 +00:00
verwaest@chromium.org
1257ba358c
Remove CALL_AS_FUNCTION and CALL_AS_METHOD.
...
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/136403005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18590 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-14 14:36:24 +00:00
jkummerow@chromium.org
1ed94acf0c
Turn Runtime_MigrateInstance into Runtime_TryMigrateInstance
...
because it must not cause lazy deopts because it is called from deferred code that cannot handle lazy deopts.
Hat tip to Ben for doing most of the debugging work, and to Toon for writing the regression test.
BUG=chromium:315252
LOG=Y
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/131243003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-14 13:41:09 +00:00
bmeurer@chromium.org
1ab6727b5d
Fix typo in ARM macro assembler Pop() method.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/138163002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-14 12:47:17 +00:00
verwaest@chromium.org
f2245a9cf9
Make the strict-mode calling convention for contextual calls the default one.
...
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/131663003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18581 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-14 12:04:10 +00:00
bmeurer@chromium.org
be986094a3
Use std:: on symbols declared in C++-style C headers.
...
Some libraries (e.g. Dinkumware) perform strict checks on whether
the symbols defined in classic C library headers (e.g. <stdio.h>),
or in C++-style C library headers (e.g. <cmath>) are used correctly
(respectively, in the global namespace, or in namespace std).
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/121303005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18578 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-14 09:57:05 +00:00
svenpanne@chromium.org
a5535f58f9
Demystified floating point ABI function names.
...
This unifies the names used for floating point ABI abstraction across
ARM and MIPS and makes them more comprehensible. Note that in the
underlying implementation, ARM doesn't care about the argument/result
distinction, while MIPS does, but we want to abstract from that, too.
Nuked an unused related function on the way.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/136613003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-13 13:25:38 +00:00
mvstanton@chromium.org
380aa6dc8d
Array constructor can be simplified by loading context from JSFunction.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/128683002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-09 15:07:23 +00:00
bmeurer@chromium.org
bb041d65ee
ARM: Implement sqrt in inline assembly.
...
Call VSQRT directly to avoid the tiniest (1ulp) precision
error that occurs in the system-supplied sqrt on QNX/ARM.
All precision tests in SunSpider are now passing on this platform.
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/98363010
Patch from Cosmin Truta <ctruta@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-09 07:47:58 +00:00
mvstanton@chromium.org
fc5834343f
Remove flag track-allocation-sites.
...
The flag has been on in the build for ~9 months, and we aren't likely to turn it off. The only customer of the flag is a set of tests that want to verify transitioning behavior in isolation. This CL removes the flag and updates those tests to get what they want without the flag.
R=verwaest@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=18385
Review URL: https://codereview.chromium.org/104923010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-07 15:58:25 +00:00
rmcilroy@chromium.org
687537ded3
Fix some out-of-line constant pool garbage collection bugs.
...
This CL fixes some bugs in the out of line constant pool implementation when
constant pools are GCed. Namely:
- Push/Pop pp register in exit frames and VisitPointer on it to ensure it is
updated if the ConstantPoolArray is moved by GC.
- Mark pp as a SafePoint Register for optimized functions.
- Ensure that StandardFrame::IterateExpressions also iterates over the
constant pool pointer in the stackframe.
- Fix calculation of last_ptr_offset in ConstantPoolArray body iterator.
- Make ensure that CONSTANT_POOL_ARRAY_TYPE is a pointer object InstanceType.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/123263005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-07 15:53:54 +00:00
jarin@chromium.org
acf24331e3
Fixed Lithium environment generation bug for captured objects (created
...
by escape analysis). Added several tests that expose the bug.
Summary:
LCodegen::AddToTranslation assumes that Lithium environments are
generated by depth-first traversal, but LChunkBuilder::CreateEnvironment
was generating them in breadth-first fashion. This fixes the
CreateEnvironment to traverse the captured objects depth-first.
Note:
It might be worth considering representing LEnvironment by a list
with the same order as the serialized translation representation
rather than having two lists with a subtle relationship between
them (and then serialize in a slightly different order again).
R=titzer@chromium.org , mstarzinger@chromium.org
LOG=N
BUG=
Review URL: https://codereview.chromium.org/93803003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18470 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-07 14:36:26 +00:00
mvstanton@chromium.org
e3e7daf01c
We need to know if a load, store or call IC is assumed
...
to be on the global object. Previously, this information
was stored in RelocInfo. A more logical place for this kind
of structural information is ExtraICState. Storing it there
makes it easier for us to gather type feedback from these
sites too.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/96083005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18466 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-07 14:14:34 +00:00
verwaest@chromium.org
4615e9edac
Reland v8:18458 "Load the global proxy from the context of the target function."
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/104013008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-07 10:46:39 +00:00
rossberg@chromium.org
2879f2104c
Revert "Load the global proxy from the context of the target function."
...
This reverts commit https://code.google.com/p/v8/source/detail?r=18458 , since it exhibits a bug that breaks some tests.
TBR=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/93863006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18461 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-07 09:55:25 +00:00
verwaest@chromium.org
5b40c38679
Load the global proxy from the context of the target function.
...
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/111613003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-07 08:21:17 +00:00
m.m.capewell@googlemail.com
d6aabbdcc7
ARM: Optimize truncating division and fix sim
...
Optimize code generated for DivI Lithium instruction when handling division
where the result is int32. Also, fix the ARM simulator to give the correct
answer for kMinInt / -1.
TEST=Division tests added to test-assembler-arm.cc
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/102623003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-02 16:36:21 +00:00
bmeurer@chromium.org
ad4231c495
Reland "Allocation site support for monomorphic StringAdds in BinaryOps".
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/106313003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-02 15:31:27 +00:00
bmeurer@chromium.org
4d88b0b4be
Revert "Fix compilation with C++11." and "Allocation site support for monomorphic StringAdds in BinaryOps.".
...
This reverts commit r18431 and r18432 for breaking
the Linux nosnapshot build.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/122463004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-02 10:38:45 +00:00
bmeurer@chromium.org
a91499fec7
Allocation site support for monomorphic StringAdds in BinaryOps.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/106453003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-02 09:17:52 +00:00
bmeurer@chromium.org
0899da3697
Add support for the QNX operating system.
...
This patch contains contributions from the following members of the
BlackBerry Web Technologies team:
Eli Fidler <efidler@blackberry.com>
Konrad Piascik <kpiascik@blackberry.com>
Jeff Rogers <jrogers@blackberry.com>
Cosmin Truta <ctruta@blackberry.com>
Peter Wang <peter.wang@torchmobile.com.cn>
Xiaobo Wang <xiaobwang@blackberry.com>
Ming Xie <mxie@blackberry.com>
Leo Yang <leoyang@blackberry.com>
R=bmeurer@chromium.org , jkummerow@chromium.org
Review URL: https://codereview.chromium.org/61153009
Patch from Cosmin Truta <ctruta@blackberry.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-02 07:04:05 +00:00
bmeurer@chromium.org
ffb5eb6e09
[arm] Drop useless branches in full and lithium codegen.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/100483006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-02 06:49:09 +00:00
bmeurer@chromium.org
c82a2e648b
[arm] Avoid unnecessary branches in array constructor stubs.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/113863002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-02 06:18:02 +00:00
bmeurer@chromium.org
0d0b40fe97
[arm] Use single instruction tail call sequence.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/107813003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-02 06:10:58 +00:00
rmcilroy@chromium.org
78ab4379d3
Out-of-line constant pool on Arm: Stage 3 - Set Constant Pool Pointer on Function Entry
...
Third stage of implementing an out-of-line constant pool for Arm. This CL adds
a ConstantPool field to Code objects and initializes the pp register on
function entry, and saves the pp register on the stack frame. The ConstantPool
object is always empty and is unused currently.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/88043002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18425 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-30 11:23:59 +00:00
ulan@chromium.org
711bcbb0e3
ARM: fix loading of global object in LWrapReceiver.
...
Since r16993 the cp register is handled by registers allocator,
and we cannot assume that the cp always contains the context.
BUG=318420
LOG=Y
TEST=test/mjsunit/regress/regress-318420.js
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/121703002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18421 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-27 14:38:00 +00:00
yangguo@chromium.org
2a4be7067c
Refactor the compiling pipeline.
...
Goals:
- easier to read, more suitable identifiers.
- better distinction between compiling optimized/unoptimized code
- compiler does not install code on the function.
- easier to add features (e.g. caching optimized code for osr).
- remove unnecessary code.
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/110203002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-23 14:30:35 +00:00
jkummerow@chromium.org
315b0c6a30
Delete unused TypeInfo class
...
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/105313008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-20 13:33:20 +00:00
yurys@chromium.org
0dbbedc344
Fix number of parameters passed into PrepareCallCFunction in code age stubs
...
In r16710 Additional parameter (Isolate) was added to parameter lists of some native functions called from the generated code. However, corresponding PrepareCallCFunction arguments changed only on i32. This CL updates other architectures to match actual value.
BUG=None
LOG=None
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/74753006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-20 07:46:02 +00:00
verwaest@chromium.org
fb7218dc3d
Enable optimization of functions with generic switches.
...
R=jkummerow@chromium.org , titzer@chromium.org
Review URL: https://chromiumcodereview.appspot.com/110123002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-18 11:44:38 +00:00
svenpanne@chromium.org
84aa5263f3
Remove the last remnants of the TranscendentalCache.
...
It was only used for Math.log, and even then only in full code and in %_MathLog. For crankshafted code, Intel already used the FP operations directly, while the ARM/MIPS ports were a bit lazy and simply called the stub. The latter directly call the C library now without any cache. It would be possible to directly generate machine code if somebody has the time, from what I've seen out in the wild it should be only about a dozen instructions.
LOG=y
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/113343003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-18 10:40:26 +00:00
verwaest@chromium.org
f5832810d7
Move the receiver into r0 for PatchGlobalProxy.
...
This fixes the ARM/android bug http://build.chromium.org/p/tryserver.chromium/builders/android_dbg_triggered_tests/builds/112686/steps/androidwebview_instrumentation_tests TBR=dcarney@chromium.org
BUG=
Review URL: https://codereview.chromium.org/104823006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-17 17:36:39 +00:00
verwaest@chromium.org
4b9730b1b3
Push receiver and holder separately, given that they can be the same.
...
TBR=dcarney@chromium.org
Review URL: https://chromiumcodereview.appspot.com/110883007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-10 22:43:15 +00:00
verwaest@chromium.org
c70e83299e
Fix popping order on ARM.
...
R=dcarney@chromium.org
Review URL: https://chromiumcodereview.appspot.com/99353003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-10 16:28:58 +00:00
verwaest@chromium.org
be509eecf1
Properly restore the receiver after the interceptor call.
...
R=dcarney@chromium.org
Review URL: https://chromiumcodereview.appspot.com/108803006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-10 14:36:10 +00:00
verwaest@chromium.org
7ee571bee6
Fix patching the receiver (global object -> global proxy) after the interceptor.
...
This is a temporary fix that will be replaced by loading the proxy from the target function.
R=dcarney@chromium.org
Review URL: https://chromiumcodereview.appspot.com/108913006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-10 13:11:08 +00:00
yurys@chromium.org
cd5ea74700
Replace 'operator*' with explicit 'get' method on SmartPointer
...
Made operator* return reference to the raw type, not pointer. New method 'get()' should be used when raw pointer is needed.
Also removed useless inline modifier from the SmaprtPointer methods and added const modifier to the methods that don't change smart pointer.
Made ~SmartPointerBase protected to avoid accidental calls of the non-virtual base class's destructor.
drive-by: fixed use after free in src/factory.cc
BUG=None
LOG=N
R=alph@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/101763003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-09 07:41:20 +00:00
jkummerow@chromium.org
64e9cbc305
Fix compilation with clang
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/106863002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-06 11:45:26 +00:00
jkummerow@chromium.org
b1a1968ac1
Remove outdated profiler flags
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/103293006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-06 09:52:40 +00:00
yangguo@chromium.org
96b58ba4a3
Fix incorrect patching for OSR.
...
If OSR happens before regular recompilation, the unoptimized function code
on the stack may not have deoptimization support. In that case, graph
creation compiles the unoptimized code again to include support. That
code is then installed as shared code. When we patch code for OSR, the
function code on the stack and not the shared code is what we want.
R=titzer@chromium.org
TEST=block-conflicts.js with --always-osr --concurrent-osr
Review URL: https://codereview.chromium.org/99013003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-05 16:17:44 +00:00
dcarney@chromium.org
69314e1f47
Fix parameter passing in callback store ics on arm
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/93873007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-05 12:38:50 +00:00
yangguo@chromium.org
5df90d2c74
Remove unused trigonometric code.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/104203003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-04 11:39:24 +00:00
ulan@chromium.org
a06c84354c
Make LCodeGen::RegisterDependentCodeForEmbeddedMaps platform independent.
...
BUG=
R=hpayer@chromium.org
Review URL: https://chromiumcodereview.appspot.com/99053002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-03 12:32:35 +00:00
mvstanton@chromium.org
de96489df8
Bug in StoreIC::GenerateMegamorphic: strict_mode/extra_ic_state mismatch.
...
When computing the code flags for a megamorphic store IC, we mistakenly
passed a strict_mode variable when an ExtraICState was expected.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/98633005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-02 15:38:50 +00:00
m.m.capewell@googlemail.com
02bc466a1c
ARM: Tidy up Throw and Mod
...
Small fixes to Throw and Mod Lithium instructions.
TEST=none
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/98603005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-02 15:27:57 +00:00
bmeurer@chromium.org
9b892b86b1
Refactor BinaryOpIC to be able to use different stubs.
...
Previously BinaryOpIC and BinaryOpStub were pretty much interdependent.
However, in order to use allocation sites for string adds on-demand,
we need to be able to use different stubs (with a different number of
register parameters, via trampolines) depending on the BinaryOpIC state.
R=hpayer@chromium.org , mvstanton@chromium.org
Review URL: https://codereview.chromium.org/97543002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-02 13:14:07 +00:00
mvstanton@chromium.org
30c77be771
Removed pieces of extra_ic_state scattered around the stub compiler class hierarchy, and pushed down to a extra_ic_state in the base class.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/98853002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-02 11:59:44 +00:00
bmeurer@chromium.org
a3d1df29f1
Fix HInnerAllocatedObject to use an HValue for the offset.
...
R=hpayer@chromium.org , mvstanton@chromium.org
Review URL: https://codereview.chromium.org/98673003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-02 11:24:31 +00:00
m.m.capewell@googlemail.com
b974ede8d5
ARM: Optimize WrapReceiver
...
Optimize register constraints and code generated for WrapReceiver Lithium
instruction.
TEST=none
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/96993002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-02 10:56:23 +00:00
bmeurer@chromium.org
46fbeec7ab
Remove the obsolete Code::IsPregenerated flag.
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/96753003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-02 09:46:35 +00:00
bmeurer@chromium.org
6e373493aa
Drop IsPregenerated() and allow_stub_calls flag.
...
This also removes the fixed register hack that was required to support RecordWriteStub in the snapshot.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/96853003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 20:49:15 +00:00
mvstanton@chromium.org
5ba1304d60
Array builtins need to be prevented from changing frozen objects, and changing structure on sealed objects.
...
BUG=299979
LOG=Y
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/80623002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 15:22:16 +00:00
m.m.capewell@googlemail.com
662fcc6363
ARM: Optimize NumberTagU
...
Optimize register constaints for NumberTagU Lithium instruction, and adjust code
generated to match.
TEST=none
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/94983002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 13:21:43 +00:00