Commit Graph

5969 Commits

Author SHA1 Message Date
kmillikin@chromium.org
dc28280a82 Fix a bug in a corner case of direct eval detection.
The corner case is calling a function named 'eval' that is looked up at
runtime and found in a non-global context (but not an extension object).
The bug is that we used the function itself as the receiver rather than
using the global object.

R=ager@chromium.org
TEST=has been added to the eval mjsunit test

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 05:04:48 +00:00
vitalyr@chromium.org
cfb8d1c346 Atomic ops: put the CPU features struct in v8::internal.
Review URL: http://codereview.chromium.org/6880238

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7695 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 17:29:01 +00:00
whesse@chromium.org
d96dc0755b Add AST ID to RelocInfo for type-recording ICs. Changes 7644 and 7632, combined.
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 15:02:59 +00:00
karlklose@chromium.org
7ba01a83e9 Implement hardfloat calling convention in macro assembler and simulator.
Review URL: http://codereview.chromium.org/6874007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7693 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 14:29:25 +00:00
sgjesse@chromium.org
145ec569c9 Initial support for generating Visual Studio solution and project files using GYP
The Windows specific part of the common.gypi now reflects the options used for 'msvc' in the SCons build.
Review URL: http://codereview.chromium.org/6880237

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 14:20:21 +00:00
fschneider@chromium.org
cbe2652682 Refactor lithium classes to reduce the number of virtual functions.
This reduces the binary size by making the Is* type-test functions non-virtual.

I had to change Gap and Label instructions to have a common abstract superclass because both act as gap-instructions for the register allocator.
Review URL: http://codereview.chromium.org/6880204

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7691 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 11:41:42 +00:00
erik.corry@gmail.com
038fa0b408 Prepare push to trunk. Now working on version 3.3.3.
Review URL: http://codereview.chromium.org/6893053

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7687 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 08:50:06 +00:00
sgjesse@chromium.org
8ef0204ca7 Remove the Android build option from the SCons build
The SCons build for Android has not been maintained for some time and did not work with the latest Android open source version. Android now has its own makefiles for building v8 and the v8_shell.

R=erik.corry@gmail.com

BUG=none
TEST=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7686 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 08:25:23 +00:00
erik.corry@gmail.com
7b451068b7 Fix raw pointer misuse in StringReplaceRegExpWithEmptyString. Committing http://codereview.chromium.org/6905035/ for vegorov
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7685 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 08:20:38 +00:00
whesse@chromium.org
e39f0535be Disable logging for the Threading test in cctest/test-api by default.
BUG=
TEST=test-api/Threading

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7684 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-27 07:56:41 +00:00
vegorov@chromium.org
db2cb44b55 Fix an edge case in non-vfp3 version of TypeRecordingBinaryOpStub.
Review URL: http://codereview.chromium.org/6903030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7683 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-26 16:40:20 +00:00
vegorov@chromium.org
b62bdda7d1 Crankshaft support for IN.
In JavaScriptFrame::Print avoid printing optimized frame as if it is unoptimized.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7682 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-26 15:22:44 +00:00
vegorov@chromium.org
08e7b94924 Fix compilation with debuggersupport=off.
Review URL: http://codereview.chromium.org/6901026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7681 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-26 13:53:19 +00:00
sgjesse@chromium.org
24a9d52d3d Fix compilation of D8 with console=readline
BUG=
TEST=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7680 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-26 13:26:05 +00:00
vegorov@chromium.org
74c258f281 Add prototype transitions cache to Map.
Review URL: http://codereview.chromium.org/6902029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7679 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-26 09:44:55 +00:00
vitalyr@chromium.org
bde82b06c0 Avoid hidden TLS access in CpuProfiler::is_profiling().
Review URL: http://codereview.chromium.org/6895014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7677 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-22 06:40:22 +00:00
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