Commit Graph

5953 Commits

Author SHA1 Message Date
jkummerow@chromium.org
75cfdf24e1 fix compile error in doublearray code on ARM
TEST=Bots are green

Review URL: http://codereview.chromium.org/6881102

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-21 10:02:58 +00:00
jkummerow@chromium.org
bc8f6943bb Support Float64Arrays
BUG=None
TEST=mjsunit/external-arrays.js; updated cctest; existing unit tests

Review URL: http://codereview.chromium.org/6879009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-21 07:15:43 +00:00
kmillikin@chromium.org
4d1b2b1d38 Change the Hydrogen representation of uses.
Rather than representing a use as a pointer to an HValue and then searching
for the specific (ambiguous) operand, we now represent a use as a pair of an
HValue and the input operand index.  Additionally, use a linked list instead
of a growable array list since we never use random access.

This allows us to remove a bunch of similarly named and subtly different
functions from the HValue API.  The cost in extra zone allocation per use is
partially offset by reusing use list nodes when replacing a use of one value
with another.

R=danno@chromium.org,fschneider@chromium.org

Review URL: http://codereview.chromium.org/6881044

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-20 10:38:08 +00:00
ricow@chromium.org
e59208527f Prepare push to trunk. Now working on version 3.3.2.
Review URL: http://codereview.chromium.org/6880065

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7672 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-20 09:23:19 +00:00
karlklose@chromium.org
3b6fe22c4d Make throw inlineable only if the exception is inlineable.
BUG=1337
TEST=regress-1337

Review URL: http://codereview.chromium.org/6881079

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7671 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-20 09:15:52 +00:00
fschneider@chromium.org
a4283a5440 Revert r7665.
Review URL: http://codereview.chromium.org/6873106

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7670 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-20 09:08:26 +00:00
fschneider@chromium.org
6197c1566a Lithium LLabel instruction are no longer used as gap instructions.
Instead we use the first part of the first gap after
the label to insert gap-moves for resolving control-flow
and phis.
Review URL: http://codereview.chromium.org/6873075

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7665 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-19 16:14:42 +00:00
ricow@chromium.org
69a4c52bbf Revert revisions 7644 and 7632, they are causing assertion failures in interactive_ui_tests debug mode.
Review URL: http://codereview.chromium.org/6873076

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7664 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-19 16:04:49 +00:00
fschneider@chromium.org
5f7eb953a1 Revert r7662.
Review URL: http://codereview.chromium.org/6878042

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7663 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-19 13:43:36 +00:00
fschneider@chromium.org
cb70c1eaa4 Make predicates on lithium instruction classes non-virtual.
This is the lithium analog to the refactoring of the HIR classes in r7659.
Review URL: http://codereview.chromium.org/6877036

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-19 12:34:07 +00:00
karlklose@chromium.org
af37074c10 Skip crashing cctests.
Review URL: http://codereview.chromium.org/6877034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-19 10:34:34 +00:00
fschneider@chromium.org
202c7f61d3 Use movaps instead of movsd in the gap resolver on ia32 as well.
This is ok since we don't care about preserving the upper half
of xmm registers in Crankshaft code.
Review URL: http://codereview.chromium.org/6880007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-19 09:16:34 +00:00
fschneider@chromium.org
6b7a4f154d Reduce the number of virtual function in hydrogen-instruction.h classes
Instead of using virtual type-tester functions we can just
generate non-virtual ones for all concrete IR classes.

This is changes reduces the V8 binary size by ~2%.

I also simplified the macros to declare new hydrogen instructions slightly.
The name used for debug output is no longer passed as a separate string.
Instead we just use the class name.
Review URL: http://codereview.chromium.org/6880014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-19 09:11:21 +00:00
karlklose@chromium.org
b06ce8dd2c Correct test names for the failing deserialization tests in cctest.status.
Review URL: http://codereview.chromium.org/6877032

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-19 07:50:46 +00:00
vegorov@chromium.org
c300769741 Maintain proper pointer map for branches when resolving phis.
The same was done for gap moves connecting live ranges in r6858.

Review URL: http://codereview.chromium.org/6873053

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7650 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-18 20:26:24 +00:00
karlklose@chromium.org
26fda9bf32 ARM: Optimisations for call, jump and untag.
Improves some V8 benchmarks by a few % on A9.

Patch by ARM Ltd.

BUG=none
TEST=Added to test-assembler-arm.cc.

Review URL: http://codereview.chromium.org/6874010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7647 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-18 13:53:11 +00:00
antonm@chromium.org
dc99761f31 Minor cosmetic changes.
Review URL: http://codereview.chromium.org/6875003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-18 13:28:00 +00:00
danno@chromium.org
ac039b508e Prepare push to trunk. Now working on version 3.3.1.
R=fschneider@chromium.org
BUG=none
TEST=none

Review URL: http://codereview.chromium.org/6882008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-18 12:37:57 +00:00
fschneider@chromium.org
2d8556827e Fix x64 typefeedback for property assignments.
There was not ast-id recorded. I removed the default arguments
for the helper functions that emit IC calls to make sure
we are not missing other places.
Review URL: http://codereview.chromium.org/6878009

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7644 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-18 10:51:57 +00:00
ricow@chromium.org
06932d0e6b Revert 7634, Fix experimental.gyp to include i18n-empty-js.cc so that js2c.py get correct parameters.
This caused all chromium based builds to fail (e.g., DumpRenderTree)
Review URL: http://codereview.chromium.org/6882003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7643 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-18 08:01:50 +00:00
ricow@chromium.org
cabc6108bd Style fix, remove semicolons from tools/test.py
Review URL: http://codereview.chromium.org/6882002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7642 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-18 07:23:48 +00:00
vitalyr@chromium.org
0f6f6a0e93 Initialize ThreadLocalTop.
ThreadLocalTop used to be static and was zero initialized by the
linker. With isolates we have to give it a constructor.

BUG=http://crbug.com/79393

Review URL: http://codereview.chromium.org/6862005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 20:47:27 +00:00
cira@chromium.org
d637c32e63 Fix experimental.gyp to include i18n-empty-js.cc so that js2c.py get correct parameters.
Bug occured somewhere in the merge process.
Review URL: http://codereview.chromium.org/6875013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7634 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 20:31:30 +00:00
yurys@chromium.org
5d70a291fe Fix debuger evaluation on a breakpoint inside eval
Corresponding Chromium issue: http://code.google.com/p/chromium/issues/detail?id=74412
Review URL: http://codereview.chromium.org/6875005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7633 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 14:09:45 +00:00
whesse@chromium.org
46164ee24e Record AST ids in relocation info at spots where we collect dynamic type feedback.
Review URL: http://codereview.chromium.org/6793016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 13:18:53 +00:00
lrn@chromium.org
3b445f14f8 X64 tweaks.
Use movapd instead of movsd to move between xmm registers. Avoids partial
register writes and potential stalls.

Use xorps instead of xorpd to zero a register. Same effect and latency, but
one byte smaller.

Review URL: http://codereview.chromium.org/6873006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 13:06:41 +00:00
ager@chromium.org
5fd4fa2a9e Introduce experimental natives that are enabled by a runtime flag.
Clean up the use of js2c. We generated two identical files.

R=sgjesse@chromium.org,rossberg@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/6865013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7630 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 12:31:03 +00:00
lrn@chromium.org
1eaa4d603d Fix bug in X64 Math.abs optimization
Review URL: http://codereview.chromium.org/6875002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7629 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 11:43:53 +00:00
lrn@chromium.org
7aec228dbb Cleanup of mjsunit.js code and make assertEquals more strict.
Encapsulate the helper functions in mjsunit.js.
Now only exposes the exception class and the assertXXX functions.

Make assertEquals use === instead of ==.
This prevents a lot of possiblefalse positives in tests, and avoids
having to do assertTrue(expected === actual) when you need it.

Fixed some tests that were either buggy or assuming == test.

Review URL: http://codereview.chromium.org/6869007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7628 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 11:35:36 +00:00
karlklose@chromium.org
dab8f48ebc ARM: Implement correct rounding in the lithium codegenerator.
This patch provides testing for values that have a fraction part of 0.5 and uses a different rounding method for them. The original method of VFPTruncating the value with round-to-nearest is not correct because it does not round to the larger number in case of a tie.

BUG=http://code.google.com/p/v8/issues/detail?id=958

Review URL: http://codereview.chromium.org/6840051

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7627 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 11:29:01 +00:00
ricow@chromium.org
cfb5a7ee78 Reapply 7581, Fix tools/test.py to allow CTRL+C to work correctly again.
Buildbot now has python 2.6

Also, remove some semicolons.
Review URL: http://codereview.chromium.org/6871007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 09:41:09 +00:00
ricow@chromium.org
edd2e6bb27 Fix presubmit.
Review URL: http://codereview.chromium.org/6869006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 08:40:16 +00:00
fschneider@chromium.org
ef24af119e Land Kevin's patch for supporting %_CallFunction in Crankshaft.
Original code review: http://codereview.chromium.org/6838018/

TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6869005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7624 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 07:58:22 +00:00
fschneider@chromium.org
348501ae01 Remove support for inlined property loads and stores.
The full code generator does not generate inline code for
property loads and stores. All this code is unused with
Crankshaft.
Review URL: http://codereview.chromium.org/6850015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7623 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 07:48:58 +00:00
vitalyr@chromium.org
cc782be64e Support string add in crankshaft:
o The type recording binary stub got a new type for string + string.

o Added HStringAdd and LStringAdd based on the new type info.

o Started using HValue types to avoid unneccesary checks.

Review URL: http://codereview.chromium.org/6852015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 06:39:36 +00:00
vitalyr@chromium.org
3b23719d2a Make HConstant a bit more compact.
Review URL: http://codereview.chromium.org/6850031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7621 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-15 06:04:50 +00:00
cira@chromium.org
8aaa0c6b18 Add v8Locale.Collator
This is a partial implementation of Collator per what's agreed upon at the last
ECMAScript meeting + mailing list. Only the following three options are implemented: ignoreAccent, ignoreCase, numeric. 

ChromeOS and Chrome need this feature for M12. This could be added as chrome extension API. Giiven that we have a rough agreement on the collation part of ECMAScript API, we thought it'd save us some duplicated work adding this to v8 (experimental i18n api) now rather than implementing it in Chrome now and moving it later. 


BUG=28604
TEST=http://i18nl10n.com/chrome/coll2.html
Review URL: http://codereview.chromium.org/6673011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7620 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-14 19:10:51 +00:00
fschneider@chromium.org
f20ff991f7 Remove unused AssignedVariableAnalyzer.
Not used in Crankshaft anymore.
Review URL: http://codereview.chromium.org/6849023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7619 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-14 14:31:43 +00:00
karlklose@chromium.org
86577062a9 Fix presubmit errors in bootstrapper.cc.
Review URL: http://codereview.chromium.org/6851015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7617 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-14 12:05:03 +00:00
fschneider@chromium.org
418501faef Refine allocation policy for input operands at calls.
For instructions that are marked as calls we can use:

1. Fixed input registers

2. Use-at-start policy (register, memory or constant).

(Memory or constant would not need the use-at-start policy, but
not specifying use-at-start prevents the allocator from using
a register even if there is one available. That's why use-at-start
is required and guarded by assertion)
Review URL: http://codereview.chromium.org/6853010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7616 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-14 11:10:00 +00:00
lrn@chromium.org
3bbcab1ca9 X64: Use roundsd for DoMathFloor.
TEST=mjsunit/math-floor

Review URL: http://codereview.chromium.org/6835021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7613 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-14 09:05:43 +00:00
vegorov@chromium.org
68a8cf365f In ProfilerSignalHandler ensure that thread we are trying to sample locked the isolate.
BUG=http://crbug.com/77725

Review URL: http://codereview.chromium.org/6837028

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-14 08:53:50 +00:00
karlklose@chromium.org
f7840f65f0 Isolates: Cleanup usage of FACTORY in code stubs and bootstrapper.
Review URL: http://codereview.chromium.org/6720014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-14 08:01:19 +00:00
cira@chromium.org
26e2d5a89f Fixing svn:eol-style (from native to LF).
Review URL: http://codereview.chromium.org/6837034

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7609 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-13 21:34:20 +00:00
cira@chromium.org
261318b6a1 Moving locale code from i18n-extension.cc. Each part of the API now has separate cc file, and only extension related code is left in i18n-extension.{cc,h}.
There are no functional changes in this CL.
Review URL: http://codereview.chromium.org/6840024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7608 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-13 21:09:22 +00:00
whesse@chromium.org
98c17a2bf3 Adjust mjsunit.status to account for math-round test passing on ARM when crankshaft is disabled.
Review URL: http://codereview.chromium.org/6840013

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7606 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-13 14:03:24 +00:00
fschneider@chromium.org
9783526239 Enable inlining functions containing throw.
After Kevin's change to the graph builder to allow aborting graph construction
inside arbitrary expressions this just works.

BUG=v8:1143
Review URL: http://codereview.chromium.org/6839017

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-13 13:09:58 +00:00
kmillikin@chromium.org
db91b43ace Fix a just-introduced bug in polymorphic inlining.
When inlining a polymorphic variant, the inlined function indicates we
should bailout of the entire compilation by setting the stack overflow flag
on the visitor.  We need to check this flag and bailout if a call to
TryInline succeeds and it is not in tail position in a graph builder
function.

R=fschneider@chromium.org

Review URL: http://codereview.chromium.org/6840012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-13 11:59:23 +00:00
sgjesse@chromium.org
6b12b41f30 ARM: Fix a number of issues with running without VFPv3 support
The type recording binary operations stub contained a number of issues which broke V8 when running without VFPv3 supoort.

1. The order of the high/low words of doubles in core register pairs where wrong
2. Missing allocation of a heap number for the result
3. Missing call to runtime

Added the option for printing the double values in register pairs to the simulator.

R=karlklose@chromium.org

BUG=v8:1315
TEST=

Review URL: http://codereview.chromium.org//6834020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-13 11:59:17 +00:00
kmillikin@chromium.org
6d7b88b5bc Fix typo which broke build.
TBR=fschneider@chromium.org

Review URL: http://codereview.chromium.org/6837020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7602 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-13 11:30:36 +00:00