plind44@gmail.com [Wed, 19 Feb 2014 18:16:06 +0000 (18:16 +0000)]
MIPS: Harmony: optimize Math.clz32.
Port r19487 (bd8c70f)
BUG=v8:2938
LOG=N
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
172533002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19499
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 19 Feb 2014 16:35:19 +0000 (16:35 +0000)]
Fix template copy constructor in zone_allocator
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
165943005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19498
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alexandre.rames@arm.com [Wed, 19 Feb 2014 16:13:09 +0000 (16:13 +0000)]
A64: Introduce 'branch types' that extend the architectural conditions.
The branch types include 'always' and 'never', and types like reg_zero (CBZ) and
reg_bit_clear (TBZ).
This will be used by incoming improvements to the code generated for
deoptimization exit points.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
170783002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19497
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Wed, 19 Feb 2014 15:20:15 +0000 (15:20 +0000)]
A64: Fix compilation with clang
The size_ member is only used in debug mode, so we should only define
it in debug mode.
BUG=none
R=rodolph.perfetta@arm.com, ulan@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
171583004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19495
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 19 Feb 2014 14:56:19 +0000 (14:56 +0000)]
Refactoring: Extract git checks in push and merge scripts.
This extracts the pattern "if call git fails: raise exception", which is spread all over the place. Now all calls to git are required to return gracefully and give a uniform exception message if they don't.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
166903012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19494
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Wed, 19 Feb 2014 14:53:14 +0000 (14:53 +0000)]
Re-enable fast/js/reserved-words-as-property.html.
Error message migration is done and Blink has updated the expected result.
R=yangguo@chromium.org, ulan@chromium.org
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/
169353004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19493
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Wed, 19 Feb 2014 14:50:33 +0000 (14:50 +0000)]
Add comments about lazy parsing and lazy compilation.
Also rename is_lazily_compiled in (Pre)Parser; it really means "is lazily
parsed" and doesn't correspond to the lazy compilation decision.
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
169223009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19492
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jacob.bramley@arm.com [Wed, 19 Feb 2014 14:37:18 +0000 (14:37 +0000)]
A64: Fix r19474: Tidy up Push and Pop TODOs.
This fixes some snapshot=off, debug-mode regressions.
- Call CheckConstPool when entering InsturctionAccurateScopes. This
fixes a problem in PushMultipleTimes where 'count' is very high.
Each call to PushHelper starts an InstructionAccurateScope
immediately after the last one finishes, with no opportunity for the
constant pool to be generated.
- Temporarily disable AssertStackConsistency in PrepareForPush. This
assertion seems to push the code size too far, and several cctests
(intermittently) fail due to buffer size limitations. I would like
to renable this assertion later.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
172453002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19491
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 19 Feb 2014 14:19:42 +0000 (14:19 +0000)]
Upgrade Symbol implementation to match current ES6 behavior.
Refresh the implementation of Symbols to catch up with what the
specification now mandates:
* The global Symbol() function manufactures new Symbol values,
optionally with a string description attached.
* Invoking Symbol() as a constructor will now throw.
* ToString() over Symbol values still throws, and
Object.prototype.toString() stringifies like before.
* A Symbol value is wrapped in a Symbol object either implicitly if
it is the receiver, or explicitly done via Object(symbolValue) or
(new Object(symbolValue).)
* The Symbol.prototype.toString() method no longer throws on Symbol
wrapper objects (nor Symbol values.) Ditto for Symbol.prototype.valueOf().
* Symbol.prototype.toString() stringifies as "Symbol("<description>"),
valueOf() returns the wrapper's Symbol value.
* ToPrimitive() over Symbol wrapper objects now throws.
Overall, this provides a stricter separation between Symbol values and
wrapper objects than before, and the explicit fetching out of the
description (nee name) via the "name" property is no longer supported
(by the spec nor the implementation.)
Adjusted existing Symbol test files to fit current, adding some extra
tests for new/changed behavior.
LOG=N
R=arv@chromium.org, rossberg@chromium.org, arv, rossberg
BUG=v8:3053
Review URL: https://codereview.chromium.org/
118553003
Patch from Sigbjorn Finne <sigbjornf@opera.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19490
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 19 Feb 2014 14:03:48 +0000 (14:03 +0000)]
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
mvstanton@chromium.org [Wed, 19 Feb 2014 13:55:25 +0000 (13:55 +0000)]
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
yangguo@chromium.org [Wed, 19 Feb 2014 13:51:49 +0000 (13:51 +0000)]
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
yangguo@chromium.org [Wed, 19 Feb 2014 13:49:59 +0000 (13:49 +0000)]
Harmony: implement Math.cbrt, Math.expm1 and Math.log1p.
BUG=v8:2938
LOG=N
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
163563003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19486
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 19 Feb 2014 13:44:17 +0000 (13:44 +0000)]
Prepare push to trunk. Now working on version 3.25.1.
R=danno@chromium.org
TBR=danno@chromium.org
Review URL: https://codereview.chromium.org/
170283011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19483
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 19 Feb 2014 13:40:30 +0000 (13:40 +0000)]
Retrieve bleeding edge push revision from trunk commit message.
This is part of moving towards an lkgr-push script and prepares the deprecation of the prepare push commit.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
169843002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19482
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ishell@chromium.org [Wed, 19 Feb 2014 12:34:50 +0000 (12:34 +0000)]
Bugfix in check elimination with a regression test.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
172173003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19481
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 19 Feb 2014 12:30:10 +0000 (12:30 +0000)]
Fix cornercase in r19475
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
169353003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19480
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 19 Feb 2014 11:59:05 +0000 (11:59 +0000)]
ES6: Tighten up Object.prototype.__proto__
The spec requires that we throw under certain conditions.
BUG=v8:3064
LOG=y
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/
103853006
Patch from Erik Arvidsson <arv@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19479
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 19 Feb 2014 11:56:48 +0000 (11:56 +0000)]
Refactor persisting state in push and merge scripts.
- The backed state dict is now persisted and restored in the step template as a json file
- All explicit persist/restore calls are removed
- Added testing an unexpected script failure + restart with state recovery to the merge-to-branch test
- This CL is not changing external behavior of the scripts
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
170583002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19478
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rossberg@chromium.org [Wed, 19 Feb 2014 10:52:06 +0000 (10:52 +0000)]
Narrows predicate for type bounds
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
170943005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19476
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 19 Feb 2014 10:30:39 +0000 (10:30 +0000)]
Fix Hydrogen bounds check elimination
When combining bounds checks, they must all be moved before the first load/store
that they are guarding.
BUG=chromium:344186
LOG=y
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
172093002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19475
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jacob.bramley@arm.com [Wed, 19 Feb 2014 09:43:45 +0000 (09:43 +0000)]
A64: Tidy up Push and Pop TODOs.
This addresses several TODOs:
- Push and Pop requests can be queued up so that arrays of Registers
can be pushed efficiently, with just one PrepareForPush/Pop.
- PushMultipleTimes now takes an Operand. This allows variable-length
arguments arrays to be initialized, for example.
- A NoUseRealAbortsScope has been added to Abort so that
AssertStackConsistency can be called from PrepareForPush without
introducing infinite recursion.
BUG=
R=rmcilroy@chromium.org, ulan@chromium.org
Review URL: https://codereview.chromium.org/
170623002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19474
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
baptiste.afsa@arm.com [Wed, 19 Feb 2014 09:38:45 +0000 (09:38 +0000)]
A64: Remove early_exit unused mechanism in CompareMap.
R=jochen@chromium.org, ulan@chromium.org
Review URL: https://codereview.chromium.org/
169733003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19473
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
baptiste.afsa@arm.com [Wed, 19 Feb 2014 09:37:07 +0000 (09:37 +0000)]
A64: Replace a Cmp/Branch sequence by a conditional compare.
R=jochen@chromium.org, ulan@chromium.org
Review URL: https://codereview.chromium.org/
169403003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19472
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Wed, 19 Feb 2014 09:24:44 +0000 (09:24 +0000)]
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
jkummerow@chromium.org [Wed, 19 Feb 2014 08:56:16 +0000 (08:56 +0000)]
Makefile: don't force -Dv8_optimized_debug=0 unnecessarily
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
170243003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19470
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Wed, 19 Feb 2014 08:56:11 +0000 (08:56 +0000)]
(Pre)Parser: Move ParseExpression and ParseArrayLiteral to ParserBase.
Notes:
- The functions already did the same thing -> no changes in logic.
- One less glue function needed now.
R=ulan@chromium.org
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/
169853002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19469
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Wed, 19 Feb 2014 08:28:14 +0000 (08:28 +0000)]
Fix zone_allocator to support comparison
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
171713004
Patch from Daniel Clifford <danno@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19468
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 19 Feb 2014 08:25:30 +0000 (08:25 +0000)]
Fast-forward version number on bleeding_edge to 3.25.0
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/
170843008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19467
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Wed, 19 Feb 2014 01:05:18 +0000 (01:05 +0000)]
Prepare push to trunk. Now working on version 3.24.41.
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
171783002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19464
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Tue, 18 Feb 2014 19:29:56 +0000 (19:29 +0000)]
MIPS: Second attempt at introducing a premonomorphic state in the call target caches.
Port: r19457 (9d8d5f3)
Original commit message:
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.
Patch from Kasper Lund <kasperl@chromium.org>.
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
170903002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19463
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
m.m.capewell@googlemail.com [Tue, 18 Feb 2014 17:42:49 +0000 (17:42 +0000)]
A64: Fix WrapReceiver corrupting receiver register
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
170433006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19462
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alexandre.rames@arm.com [Tue, 18 Feb 2014 17:10:04 +0000 (17:10 +0000)]
A64: Let the Simulator trap BLR XZR instructions.
This instruction is used as a guard for the constant pool.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
170673003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19461
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jarin@chromium.org [Tue, 18 Feb 2014 16:34:52 +0000 (16:34 +0000)]
Add filler at the new space top when forcing scavenge.
We only seem to force scavenge in our cctest test suite, so this is
expected to fix some flakiness in our tests, but it will not
improve stability of v8 itself.
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
167423004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19460
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Tue, 18 Feb 2014 16:14:14 +0000 (16:14 +0000)]
MIPS: Reland "Allow ICs to be generated for own global proxy."
Port r19430 (70bb668)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
170343004
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19459
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alph@chromium.org [Tue, 18 Feb 2014 15:57:44 +0000 (15:57 +0000)]
DevTools: Drop kSinTable dependency off the heap profiler ArrayBuffer backing_store test
LOG=N
R=dslomov@chromium.org, yurys@chromium.org
Review URL: https://codereview.chromium.org/
170253008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19458
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Tue, 18 Feb 2014 15:33:34 +0000 (15:33 +0000)]
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
alexandre.rames@arm.com [Tue, 18 Feb 2014 15:14:23 +0000 (15:14 +0000)]
A64: Minor code generation improvement: only load the object map if needed.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
170503004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19456
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Tue, 18 Feb 2014 15:12:58 +0000 (15:12 +0000)]
Load target types and handlers before IC computation.
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
170563002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19455
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alph@chromium.org [Tue, 18 Feb 2014 14:21:09 +0000 (14:21 +0000)]
Fix compile on Windows
TBR=yurys@chromium.org,dslomov@chromium.org
LOG=N
Review URL: https://codereview.chromium.org/
170543002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19454
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Tue, 18 Feb 2014 14:17:08 +0000 (14:17 +0000)]
Fix merge-to-branch options.
BUG=
TBR=ulan@chromium.org
Review URL: https://codereview.chromium.org/
170443003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19453
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Tue, 18 Feb 2014 14:05:59 +0000 (14:05 +0000)]
Fix merge-to-branch python port.
This fixes a forgotten parameter when calling the script's toplevel method and adds the same usage message as in the bash script.
BUG=
TBR=ulan@chromium.org
Review URL: https://codereview.chromium.org/
164373015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19450
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alph@chromium.org [Tue, 18 Feb 2014 13:56:07 +0000 (13:56 +0000)]
Fix compile error.
LOG=N
TBR=yurys@chromium.org,dslomov@chromium.org
Review URL: https://codereview.chromium.org/
166193005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19449
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Tue, 18 Feb 2014 13:51:46 +0000 (13:51 +0000)]
Fix merge-to-branch imports.
BUG=
TBR=ulan@chromium.org
Review URL: https://codereview.chromium.org/
170513002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19448
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jacob.bramley@arm.com [Tue, 18 Feb 2014 13:51:24 +0000 (13:51 +0000)]
A64: Fix compiler warning in r19444.
BUG=
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/
167463004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19447
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Tue, 18 Feb 2014 13:47:56 +0000 (13:47 +0000)]
Make merge-to-branch python port executable
BUG=
TBR=ulan@chromium.org
Review URL: https://codereview.chromium.org/
170493002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19446
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alph@chromium.org [Tue, 18 Feb 2014 13:22:07 +0000 (13:22 +0000)]
Allow self_size to be larger than 2GB in heap snapshots.
LOG=N
R=dslomov@chromium.org, yurys@chromium.org
Review URL: https://codereview.chromium.org/
166383002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19445
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alexandre.rames@arm.com [Tue, 18 Feb 2014 13:15:32 +0000 (13:15 +0000)]
A64: Let the MacroAssembler resolve branches to distant targets.
Code generation would fail when assembling a branch to a label that is bound
outside the immediate range of the instruction. A64 is sensitive to this, as the
various branching instructions have different ranges, going down to +-32KB for
TBZ/TBNZ. The MacroAssembler is augmented to handle branches to targets that
may exceed the immediate range of instructions.
When branching backward to a label exceeding the instruction range, the
MacroAssembler can simply tweak the generated code to use an unconditional
branch with a longer range. For example instead of
B(cond, &label);
the MacroAssembler can generate:
b(InvertCondition(cond), &done);
b(&label);
bind(&done);
Since the target is not known when the branch is emitted, forward branches uses
a different mechanism. The MacroAssembler keeps track of forward branches to
unbound labels. When the code generation approaches the end of the range of a
branch, a veneer is generated for the branch.
BUG=v8:3148
LOG=Y
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
169893002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19444
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
machenbach@chromium.org [Tue, 18 Feb 2014 13:09:14 +0000 (13:09 +0000)]
Add merge-to-branch python port.
- To ease a line-by-line review, the script is intentionally close to the former bash version
- Disambiguate the existing "-r" option for reviewer in the other scripts
- The options design will be refactored in a follow up CL
TEST=python -m unittest test_scripts.ScriptTest.testMergeToBranch
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
163183004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19443
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jacob.bramley@arm.com [Tue, 18 Feb 2014 13:03:24 +0000 (13:03 +0000)]
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
dcarney@chromium.org [Tue, 18 Feb 2014 12:38:12 +0000 (12:38 +0000)]
templatize operand constructors
R=jochen@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
170403003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19441
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 18 Feb 2014 12:19:32 +0000 (12:19 +0000)]
Directly store the transition target on LookupResult in TransitionResult.
BUG=chromium:343964
LOG=N
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
170343003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19440
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Tue, 18 Feb 2014 11:56:55 +0000 (11:56 +0000)]
A64: Fix register usage in LCodeGen::ArgumentsLength
The result should be just stored in a W register
BUG=none
R=m.m.capewell@googlemail.com, ulan@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
170363002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19439
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Tue, 18 Feb 2014 11:30:51 +0000 (11:30 +0000)]
Consistent use of const for LookupResult.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
170073003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19438
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yurys@chromium.org [Tue, 18 Feb 2014 11:30:38 +0000 (11:30 +0000)]
Create HandleScope before calling GetScriptLineNumber
Otherwise we may crash.
BUG=None
LOG=N
R=alph@chromium.org, hpayer@chromium.org
Review URL: https://codereview.chromium.org/
169773002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19437
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 18 Feb 2014 10:50:22 +0000 (10:50 +0000)]
Update LICENSE date.
R=jkummerow@chromium.org, danno@chromium.org
Review URL: https://codereview.chromium.org/
144663005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19436
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
yangguo@chromium.org [Tue, 18 Feb 2014 10:49:35 +0000 (10:49 +0000)]
Harmony: implement Math.clz32
R=dslomov@chromium.org, svenpanne@chromium.org
BUG=v8:2938
LOG=N
Review URL: https://codereview.chromium.org/
169783002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19435
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
svenpanne@chromium.org [Tue, 18 Feb 2014 10:45:27 +0000 (10:45 +0000)]
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
yangguo@chromium.org [Tue, 18 Feb 2014 10:43:06 +0000 (10:43 +0000)]
Harmony: implement Math.fround.
R=jarin@chromium.org
BUG=v8:2938
LOG=N
Review URL: https://codereview.chromium.org/
169513002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19433
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Tue, 18 Feb 2014 10:38:25 +0000 (10:38 +0000)]
Revert "Handlify DescriptorArray::Merge()."
This reverts commit r19410.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
169113005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19432
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 18 Feb 2014 10:14:11 +0000 (10:14 +0000)]
Remove unnecessary checks in CompileStoreInterceptor on a64.
BUG=
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
163963003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19431
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Tue, 18 Feb 2014 10:10:06 +0000 (10:10 +0000)]
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
alexandre.rames@arm.com [Tue, 18 Feb 2014 09:59:02 +0000 (09:59 +0000)]
A64: Optimize a loop by using post-indexing.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
169543002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19429
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alexandre.rames@arm.com [Tue, 18 Feb 2014 09:44:43 +0000 (09:44 +0000)]
A64: Cleaning of Builtins::Generate_FunctionCall.
This is mostly register renaming, and a minor optimization merging two TBZ into
one TST and BNE.
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/
166833002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19428
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Tue, 18 Feb 2014 09:12:11 +0000 (09:12 +0000)]
Make tools/bash-completion.sh robust against arbitrary CWD
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/
168983006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19427
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Tue, 18 Feb 2014 08:59:06 +0000 (08:59 +0000)]
A64: Update DoAllocate() to use a W register for the size
Inputs should always be 32bit
BUG=none
R=m.m.capewell@googlemail.com, ulan@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
167123004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19426
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Tue, 18 Feb 2014 08:53:51 +0000 (08:53 +0000)]
Also compile A64 for quickcheck target
We don't run tests yet because even in release mode, this will take a
considerable amount of time.
BUG=none
R=ulan@chromium.org, machenbach@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
169303006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19425
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Tue, 18 Feb 2014 08:50:19 +0000 (08:50 +0000)]
Update v8heapconst.py
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/
170263002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19424
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Tue, 18 Feb 2014 08:34:56 +0000 (08:34 +0000)]
Revert r19409: "Allow ICs to be generated for own global proxy."
Causing Layout test crashes
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
170253002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19423
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Mon, 17 Feb 2014 20:37:29 +0000 (20:37 +0000)]
MIPS: Remove arch specific api callback generate functions.
Port r19406 (4eab88a)
BUG=
R=gergely@homejinni.com
Review URL: https://codereview.chromium.org/
169243003
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19421
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 17 Feb 2014 17:37:55 +0000 (17:37 +0000)]
A64: fix cctest/test-code-stubs-a64/ConvertDToI.
R=danno@google.com
Review URL: https://codereview.chromium.org/
169863002
Patch from Ulan Degenbaev <ulan@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19420
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Mon, 17 Feb 2014 16:08:44 +0000 (16:08 +0000)]
Revert r19403: "A64: Tidy up Push and Pop TODOs."
Causes a64 debug asserts
TBR=jacob.bramley@arm.com,ulan@chromium.org
Review URL: https://codereview.chromium.org/
169303007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19419
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Mon, 17 Feb 2014 15:46:29 +0000 (15:46 +0000)]
build fix for 19415
TBR=jochen@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
169793002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19418
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Mon, 17 Feb 2014 15:40:51 +0000 (15:40 +0000)]
(Pre)Parser: Simplify NewExpression handling (fixed).
Notes:
- We use simple recursion to keep track of how many "new" operators we have seen
and where.
- This makes the self-baked stack class PositionStack in parser.cc unnecessary.
- Now the logic is also unified between Parser and PreParser.
- This is a fixed version of r19386.
R=ulan@chromium.org
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/
168583008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19417
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alph@chromium.org [Mon, 17 Feb 2014 15:24:39 +0000 (15:24 +0000)]
Make a single HeapEntry per single JSArrayBuffer data in heap snapshot.
It turned out that JSArrayBuffer's may share their backing_store so
the backing_store should go through hash map registration just like
other heap objects, so they won't be reported twice.
BUG=341741
LOG=N
R=dslomov@chromium.org, yurys@chromium.org
Review URL: https://codereview.chromium.org/
166993002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19416
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Mon, 17 Feb 2014 15:20:54 +0000 (15:20 +0000)]
make a64 compile on mavericks - part 1
R=jochen@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
169523005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19415
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
rmcilroy@chromium.org [Mon, 17 Feb 2014 15:09:46 +0000 (15:09 +0000)]
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
verwaest@chromium.org [Mon, 17 Feb 2014 14:43:15 +0000 (14:43 +0000)]
Support elements transitions in load elimination
BUG=
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/
167893007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19413
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Mon, 17 Feb 2014 14:22:18 +0000 (14:22 +0000)]
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
bmeurer@chromium.org [Mon, 17 Feb 2014 13:23:04 +0000 (13:23 +0000)]
Cleanup the double field tracking in Hydrogen.
Use a dedicated BuildLoadNamedField() with PropertyAccessInfo,
similar to BuildStoreNamedField() for optimized graph building,
and a dedicated BuildLoadNamedField() for the code stubs, and
don't depend on FLAG_track_double_fields during code generation.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
168583006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19411
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
bmeurer@chromium.org [Mon, 17 Feb 2014 13:22:34 +0000 (13:22 +0000)]
Handlify DescriptorArray::Merge().
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
169363002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19410
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
verwaest@chromium.org [Mon, 17 Feb 2014 13:12:56 +0000 (13:12 +0000)]
Allow ICs to be generated for own global proxy.
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
166233004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19409
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jochen@chromium.org [Mon, 17 Feb 2014 12:43:30 +0000 (12:43 +0000)]
A64: Make simulator compiler with optdebug
For some reason, the compiler cannot deduce the array bounds in opt
debug mode. An explicit check makes it happy.
BUG=none
R=ulan@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
169473003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19408
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
alph@chromium.org [Mon, 17 Feb 2014 12:39:01 +0000 (12:39 +0000)]
Fix heap snapshot crash when JSArrayBuffer has no backing_store.
LOG=N
BUG=344239
R=dslomov@chromium.org, yurys@chromium.org
Review URL: https://codereview.chromium.org/
169393004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19407
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
dcarney@chromium.org [Mon, 17 Feb 2014 12:36:44 +0000 (12:36 +0000)]
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
hpayer@chromium.org [Mon, 17 Feb 2014 12:15:16 +0000 (12:15 +0000)]
Added a special stack guard to deopt marked allocation sites.
BUG=
R=mvstanton@chromium.org, ulan@chromium.org
Review URL: https://codereview.chromium.org/
169563002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19404
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jacob.bramley@arm.com [Mon, 17 Feb 2014 12:08:06 +0000 (12:08 +0000)]
A64: Tidy up Push and Pop TODOs.
This addresses several TODOs:
- Push and Pop requests can be queued up so that arrays of Registers
can be pushed efficiently, with just one PrepareForPush/Pop.
- PushMultipleTimes now takes an Operand. This allows variable-length
arguments arrays to be initialized, for example.
- A NoUseRealAbortsScope has been added to Abort so that
AssertStackConsistency can be called from PrepareForPush without
introducing infinite recursion.
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
169533002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19403
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mvstanton@chromium.org [Mon, 17 Feb 2014 11:59:45 +0000 (11:59 +0000)]
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
yangguo@chromium.org [Mon, 17 Feb 2014 10:41:25 +0000 (10:41 +0000)]
Do not visit smis in the root list during GC.
R=mstarzinger@chromium.org
BUG=328804
LOG=N
Review URL: https://codereview.chromium.org/
166023003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19400
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
jkummerow@chromium.org [Mon, 17 Feb 2014 08:10:02 +0000 (08:10 +0000)]
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
jarin@chromium.org [Sun, 16 Feb 2014 05:51:10 +0000 (05:51 +0000)]
Comparison in effect context lazy deopt fix.
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
163623002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19396
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
palfia@homejinni.com [Fri, 14 Feb 2014 21:28:22 +0000 (21:28 +0000)]
MIPS: build fix for r19380
Port r19381 (
5476e11b)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
163953014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19395
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Fri, 14 Feb 2014 18:11:31 +0000 (18:11 +0000)]
MIPS: Remove HandlerKindField and just encode the handlerkind as the only extra-ic-state.
Port r19385 (27769f9)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
164283008
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19394
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Fri, 14 Feb 2014 18:06:34 +0000 (18:06 +0000)]
MIPS: Don't mix handler flags into regular flag computation.
Port r19384 (4ba5d0d)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
167243003
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19393
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Fri, 14 Feb 2014 17:45:53 +0000 (17:45 +0000)]
MIPS: api accessor store ics should return passed value.
Port r19380 (114a9ca)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
167083002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19392
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
plind44@gmail.com [Fri, 14 Feb 2014 17:37:45 +0000 (17:37 +0000)]
MIPS: Fix assignment of function name constant.
Port r19379 (622d830)
Original commit message:
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.
BUG=v8:3138
LOG=Y
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/
166813002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19391
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ishell@chromium.org [Fri, 14 Feb 2014 16:41:59 +0000 (16:41 +0000)]
Debug-mode check added: optimized keyed store of a smi on x64 is done to a entry containing a smi.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/
167063002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19389
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Fri, 14 Feb 2014 16:08:14 +0000 (16:08 +0000)]
Revert "(Pre)Parser: Simplify NewExpression handling."
This reverts revision 19386.
Reason: Mozilla failures.
BUG=
TBR=ulan@chromium.org,marja@chromium.org
Review URL: https://codereview.chromium.org/
164183006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19388
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ulan@chromium.org [Fri, 14 Feb 2014 15:52:24 +0000 (15:52 +0000)]
Fix dictionary element load to pass correct elements kind.
Using FAST_SMI_ELEMENTS triggers optimization on 64-bit architectures that load
only the higher 32 bits of the element. If the element is a pointer to undefined
that has 0 in the higher half than it is erroneously treated as SMI 0.
BUG=v8:3158
LOG=N
TEST=mjsunit/sparse-array-reverse,mjsunit/regress/regress-3158.js
R=danno@chromium.org, ishell@chromium.org
Review URL: https://codereview.chromium.org/
166653005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19387
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
marja@chromium.org [Fri, 14 Feb 2014 15:33:10 +0000 (15:33 +0000)]
(Pre)Parser: Simplify NewExpression handling.
Notes:
- We use simple recursion to keep track of how many "new" operators we have seen
and where.
- This makes the self-baked stack class PositionStack in parser.cc unnecessary.
- Now the logic is also unified between Parser and PreParser.
- It might have been a copy-paste artifact (ParseLeftHandSideExpression ->
ParseMemberWithNewPrefixesExpression) that the logic was so complicated
before.
R=ulan@chromium.org
BUG=v8:3126
LOG=N
Review URL: https://codereview.chromium.org/
166943002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19386
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00