antonm@chromium.org [Thu, 17 Mar 2011 17:25:54 +0000 (17:25 +0000)]
Refactor fast API call.
Make it use custom call generator infrastructure.
Review URL: http://codereview.chromium.org/
6686003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7246
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 17 Mar 2011 16:12:13 +0000 (16:12 +0000)]
Remove empty test/mjsunit/compiler/global-accessors.js to make lint happy.
Review URL: http://codereview.chromium.org/
6712001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7244
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Thu, 17 Mar 2011 15:46:42 +0000 (15:46 +0000)]
Emit slightly more compact code in untag double.
Review URL: http://codereview.chromium.org/
6677111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7243
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 17 Mar 2011 14:30:48 +0000 (14:30 +0000)]
Revert revisions 7215 and 7212.
This caueses line positions to be off by one in certain cases, causing webkit http/tests/inspector/console-xhr-logging to fail.
Review URL: http://codereview.chromium.org/
6667077
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7239
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 17 Mar 2011 12:36:12 +0000 (12:36 +0000)]
Fix presubmit error introduced by r7221.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/
6673112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7223
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 17 Mar 2011 12:34:24 +0000 (12:34 +0000)]
X64: Add the global object as parameter to the GlobalReceiver instruction
Review URL: http://codereview.chromium.org/
6674053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7222
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Thu, 17 Mar 2011 12:22:49 +0000 (12:22 +0000)]
Make HDeoptimize to explicitly use environment values.
Otherwise dead phi elimination can actually remove some of the implicitly used phis.
BUG=1257
TEST=test/mjsunit/regress/regress-1257.js
Review URL: http://codereview.chromium.org/
6672066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7221
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 17 Mar 2011 12:03:20 +0000 (12:03 +0000)]
Prepare push to trunk. Now working on version 3.2.4.
Review URL: http://codereview.chromium.org/
6667074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7218
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 17 Mar 2011 10:37:29 +0000 (10:37 +0000)]
Add support for unary plus in hydrogen compiler.
Also strength-reduction of unary minus.
Fixes issue 1248.
BUG=1248
Review URL: http://codereview.chromium.org/
6685045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7217
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 17 Mar 2011 09:55:57 +0000 (09:55 +0000)]
Fix infinite recursion in the compiler introduced in r7212
In most situations tests passed just causing a bailout from the compiler due to stack overflow. On Mac some tests actually did crash and of cause some benchmarks showed regressions due to this.
Review URL: http://codereview.chromium.org/
6665064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7215
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 17 Mar 2011 09:23:48 +0000 (09:23 +0000)]
Fix some XMM and byte register names in the X64 disassembler.
Review URL: http://codereview.chromium.org/
6672045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7214
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Thu, 17 Mar 2011 08:16:27 +0000 (08:16 +0000)]
Partially fix serializer which crashes on x64 running with no snapshot.
We used the wrong heap space number when reading in code chunks (we
used LO_SPACE, should use kLargeCode).
Review URL: http://codereview.chromium.org/
6670083
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7213
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 17 Mar 2011 08:16:12 +0000 (08:16 +0000)]
Increase coverage of global loads in optimized code
In the cases where a global property cell cannot be used in the optimized code use standard load ic to get the property instead of bailing out.
Review URL: http://codereview.chromium.org/
6665026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7212
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 17 Mar 2011 07:34:37 +0000 (07:34 +0000)]
Add a preprocessor symbol to have printing on Android use stdout instead of the system log
This is convenient for debugging on Android as one don't have to go to the system log for printf based debugging.
Review URL: http://codereview.chromium.org/
6672041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7211
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Mar 2011 19:55:31 +0000 (19:55 +0000)]
Fix Array::New(length) in the API to return an array with the provided length.
The internal factory method initializes the elements but does not set
the length property of the array.
Add array api test case for length.
R=antonm@chromium.org
BUG=v8:1256
TEST=cctest/test-api/Array
Review URL: http://codereview.chromium.org/
6674034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7210
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 16 Mar 2011 16:28:06 +0000 (16:28 +0000)]
Refactor lithium CheckSmi instruction into two separate instructions CheckSmi and CheckNonSmi.
There is no need to store the branch condition separately in the LIR.
Review URL: http://codereview.chromium.org/
6673082
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7206
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 16 Mar 2011 16:11:14 +0000 (16:11 +0000)]
Fix some register names in the ia32 disassembler. Byte register and XMM register names were sometimes not used, or used where they shouldn't be.
Review URL: http://codereview.chromium.org/
6702001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7205
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 16 Mar 2011 12:47:43 +0000 (12:47 +0000)]
ARM: Fix the debugger using wrong break stub for slot breaks
On ARM the break at break slots wrongly used the break at return stub which assumes an object opinter in r0. At break slots there are no objects live in registers so a GC while at a break on a break stub could cause a crash as r0 was wrongly pushed on a internal frame to be handled by GC.
Review URL: http://codereview.chromium.org/
6676037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7203
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Wed, 16 Mar 2011 12:02:28 +0000 (12:02 +0000)]
Introduce one way dependencies into object grouping.
Those are necessary to properly manage relationship between objects in cases
when they don't form proper tree structure.
Review URL: http://codereview.chromium.org/
6686053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7202
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Mar 2011 11:16:18 +0000 (11:16 +0000)]
Use full paths for cctests.
Review URL: http://codereview.chromium.org/
6670045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7201
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Wed, 16 Mar 2011 11:15:43 +0000 (11:15 +0000)]
* Fix build errors on FreeBSD 8.2
* Fix Crankshaft on FreeBSD.
* Partially fix profiling on FreeBSD.
* Remove bash-isms from tick processor script.
Review URL: http://codereview.chromium.org/
6673045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7200
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Mar 2011 10:03:13 +0000 (10:03 +0000)]
Disable v8 benchmark run from standard test.py runs.
Let's add it as a separate test run on the buildbots.
TBR=ricow@chromium.org
Review URL: http://codereview.chromium.org/
6667039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7199
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Wed, 16 Mar 2011 09:45:28 +0000 (09:45 +0000)]
Add a V8 benchmark suite run to test.py to catch failures on the buildbot.
Review URL: http://codereview.chromium.org/
6698029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7198
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 15 Mar 2011 21:56:12 +0000 (21:56 +0000)]
Fix incorrect assumption on bit-and on ARM
Review URL: http://codereview.chromium.org/
6696037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7183
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Tue, 15 Mar 2011 18:20:10 +0000 (18:20 +0000)]
Strict mode renames and formatting cleanup.
BUG=
TEST=
Review URL: http://codereview.chromium.org/
6693014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7180
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 15 Mar 2011 14:49:10 +0000 (14:49 +0000)]
Use a class field instead of global FLAG_debug_code in assember and
macro assembler.
This way we can avoid changing the global flag value.
Review URL: http://codereview.chromium.org/
6677044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7178
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Tue, 15 Mar 2011 14:26:55 +0000 (14:26 +0000)]
Use NativesFlag to allow/disallow natives syntax during compilation.
This way we can avoid changing the value of FLAG_allow_natives_syntax.
Review URL: http://codereview.chromium.org/
6694024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7177
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 15 Mar 2011 14:19:18 +0000 (14:19 +0000)]
Follow Safari on not throwing when __defineGetter__ fails.
In addition, this fixes defineOwnProperty to actually not throw when
the should_throw flag is false (we had no usage of this priorly).
Review URL: http://codereview.chromium.org/
6695018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7176
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 15 Mar 2011 12:25:13 +0000 (12:25 +0000)]
Reapply 7143 after fixing issue 1250
Review URL: http://codereview.chromium.org/
6698027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7175
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Tue, 15 Mar 2011 11:19:13 +0000 (11:19 +0000)]
ARM: Improved double to integer truncation.
Patch from ARM Ltd.
BUG=none
TEST=Added to cctest/test-assembler-arm.cc and cctest/test-disasm-arm.cc
Review URL: http://codereview.chromium.org/
6625084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7174
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ager@chromium.org [Tue, 15 Mar 2011 11:01:21 +0000 (11:01 +0000)]
Revert "Strict mode ThrowTypeError functions for"
TBR=mmaly@chromium.org
Review URL: http://codereview.chromium.org/
6696018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7173
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
erik.corry@gmail.com [Tue, 15 Mar 2011 10:03:57 +0000 (10:03 +0000)]
Fix SmiCompare on 64 bit to distinguish between comparisons where
we know that both sides are Smi and those where we don't. Fix inlined
symbol table probes to cope with strings, undefined and null (indicating
a deleted entry). Some changes to other architectures that were found
with the new asserts.
Review URL: http://codereview.chromium.org/
6682026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7172
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 15 Mar 2011 09:16:12 +0000 (09:16 +0000)]
Do not set value on host objects in Object.defineProperty (fixes issue 1250).
To be compatible with safari we should not change the value on API
objects in Object.defineProperty (e.g., the window.location object).
Review URL: http://codereview.chromium.org/
6673042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7169
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Mon, 14 Mar 2011 17:46:37 +0000 (17:46 +0000)]
Strict mode ThrowTypeError functions for
- function.caller
- function.arguments
Review URL: http://codereview.chromium.org/
6691003/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7168
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 14 Mar 2011 16:54:51 +0000 (16:54 +0000)]
Remove unused StringCharCodeAt stub.
Review URL: http://codereview.chromium.org/
6690014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7163
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 14 Mar 2011 15:43:36 +0000 (15:43 +0000)]
Prepare push to trunk. Now working on version 3.2.3.
Review URL: http://codereview.chromium.org/
6685048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7161
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Mon, 14 Mar 2011 15:36:00 +0000 (15:36 +0000)]
Crankshaft support for StringCharFromCode.
This allows more efficient implementations of string keyed access,
String.prototype.chatAt, and String.fromCharCode.
Review URL: http://codereview.chromium.org/
6682025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7160
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 14 Mar 2011 15:09:50 +0000 (15:09 +0000)]
Fix presubmit failure introduced by r7158.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/
6685047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7159
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Mon, 14 Mar 2011 14:42:14 +0000 (14:42 +0000)]
Reduce strength of ModI for power-of-2 divisor.
This is ia32 only. I will port it to other platforms if this looks good to you.
Review URL: http://codereview.chromium.org/
6665006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7158
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Mon, 14 Mar 2011 12:32:20 +0000 (12:32 +0000)]
ARM: Move the constant pool blocking for call instruction sequences
The constant pool blocking for call instruction sequences is hoisted to the begof the function generating the call sequence.
Review URL: http://codereview.chromium.org/
6690009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7155
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kasperl@chromium.org [Mon, 14 Mar 2011 11:26:19 +0000 (11:26 +0000)]
When aborting optimization attempts for a function, make sure
to clear any eager optimizing hints in the compilation cache.
Review URL: http://codereview.chromium.org/
6681031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7154
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 11 Mar 2011 13:57:20 +0000 (13:57 +0000)]
Fix a problem where Object.getOwnPropertyDescriptor and related functions unintentionally called toString on the values of an object's properties. Fixes issue 1233.
Review URL: http://codereview.chromium.org/
6677017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7151
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Fri, 11 Mar 2011 13:33:39 +0000 (13:33 +0000)]
X64: Load more values from the root array, rather than from immediate 64-bit constants.
Review URL: http://codereview.chromium.org/
6676025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7150
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
antonm@chromium.org [Fri, 11 Mar 2011 13:25:01 +0000 (13:25 +0000)]
Faster invocation for most of API calls.
For most of API calls we generate better stub which is faster than invocation
via builtin, so use IC instead of direct call in Hydrogen.
Review URL: http://codereview.chromium.org/
6672026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7149
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Fri, 11 Mar 2011 12:12:44 +0000 (12:12 +0000)]
ARM: Implement inline conversion of heap numbers to int32 values for bitoperations.
For bit operations, values are truncated and converted to the range -2^31 through 2^31 - 1. This patch provides inlined handling of this conversion for all heap numbers.
Before, we were calling runtime for every heap number that did not fit into a signed int32.
Review URL: http://codereview.chromium.org/
6658034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7148
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 11 Mar 2011 11:02:27 +0000 (11:02 +0000)]
Fix compile failure with GCC 4.5.0 (issue 1244)
GCC apparently assumes that given that we do a static cast in the next
line the value must actually be in StrictModeFlag enum range (even
though this is actually what we are asserting)
Review URL: http://codereview.chromium.org/
6670031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7147
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Fri, 11 Mar 2011 10:30:33 +0000 (10:30 +0000)]
Fix x64 array length operations in Crankshaft
x64-bit array length loads and bounds checks should be 32-bits
Review URL: http://codereview.chromium.org/
6676009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7146
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 11 Mar 2011 09:08:52 +0000 (09:08 +0000)]
Fix presubmit by deleting regress-1240 not deleted by last patch.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7145
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 11 Mar 2011 09:02:54 +0000 (09:02 +0000)]
Revert revision 7143, this causes a number of webkit tests to fail.
This includes a security test. Reverting to investigate further.
Review URL: http://codereview.chromium.org/
6673019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7144
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Fri, 11 Mar 2011 08:05:59 +0000 (08:05 +0000)]
Change __defineGetter__ and __defineSetter__ to respect non-configurable.
This makes us compatible with firefox. Earlier on we were somehow
compatible with safari - which will allow defining a getter even when
an existing getter is present and non-configurable. We would, however,
in addition to overwriting the getter also change configurable to
true. The approach used by firefox seems much more sound, i.e., why
should it be possible to use __defineGetter__ or __defineSetter__ to
overwrite a non-configurable getter or setter respectively.
I will file a bug on the webkit bugtracker.
Review URL: http://codereview.chromium.org/
6658037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7143
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 11 Mar 2011 07:41:45 +0000 (07:41 +0000)]
Use pthread_kill on solaris.
Landing patch by Ryan Dahl.
TBR=vegorov@chromium.org
Original review: http://codereview.chromium.org/
6667030/
Review URL: http://codereview.chromium.org/
6667031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7142
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 11 Mar 2011 07:34:55 +0000 (07:34 +0000)]
Sample correct registers on solaris.
Landing patch by Ryan Dahl.
TBR=vegorov@chromium.org
Original review: http://codereview.chromium.org/
6676019/
Review URL: http://codereview.chromium.org/
6665023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7141
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vitalyr@chromium.org [Fri, 11 Mar 2011 01:43:44 +0000 (01:43 +0000)]
Update platform-solaris to support runtime profiling.
Landing patch by Ryan Dahl.
TBR=vegorov@chromium.org
Original review: http://codereview.chromium.org/
6674002/
Review URL: http://codereview.chromium.org/
6667025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7140
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 17:29:37 +0000 (17:29 +0000)]
Fix bit field for GlobalHandles::Node State in MSVC.
TBR=vitalyr@chromium.org
BUG=1243
TEST=none
Review URL: http://codereview.chromium.org/
6658040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7136
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 10 Mar 2011 14:04:18 +0000 (14:04 +0000)]
Fix error in sin-cos.js test introduced in r7129.
Review URL: http://codereview.chromium.org/
6659034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7133
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Thu, 10 Mar 2011 13:58:20 +0000 (13:58 +0000)]
ARM: Port r7089 to ARM
Ensure that there is always enough bytes between consequtive calls in optimized code to write a call instruction at the return points without overlapping.
Add a call to deoptimize all functions after running tests with --stress-opt. This will catch some issues with functions which cannot be forcefully deoptimized. Some of the tests failed on ARM with that change without the rest of the changes in this change.
Review URL: http://codereview.chromium.org/
6661022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7132
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 13:45:35 +0000 (13:45 +0000)]
Fix for win32 after r7125. For some reason introducing a bit field into GlobalHandles::Node causes a trouble.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7131
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 10 Mar 2011 13:34:56 +0000 (13:34 +0000)]
Crankshaft: Fix error in range analysis of compare operations.
Review URL: http://codereview.chromium.org/
6658035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7130
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Thu, 10 Mar 2011 13:34:23 +0000 (13:34 +0000)]
X64 Crankshaft: Fix error in computation of sine and cosine.
Review URL: http://codereview.chromium.org/
6646047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7129
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 10 Mar 2011 13:26:51 +0000 (13:26 +0000)]
Normalize statistics about compilation time and allocation size.
Now we print compilation time and zone allocation per KB of compiled
source code to better compare with previous revisions.
Review URL: http://codereview.chromium.org/
6646015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7128
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 12:58:57 +0000 (12:58 +0000)]
Fix x64 build after r7125
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7127
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 12:22:59 +0000 (12:22 +0000)]
A follow-up to r7125: fix a couple of remaining comments.
Review URL: http://codereview.chromium.org/
6626043/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7126
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 12:05:31 +0000 (12:05 +0000)]
Add an interface for an embedder to provide information about native
objects retained by object groups and global handles.
This information is then used during heap snapshot generation
to provide a more complete memory picture.
This patch will be needed to fix https://bugs.webkit.org/show_bug.cgi?id=53659.
Review URL: http://codereview.chromium.org/
6626043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7125
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 12:00:27 +0000 (12:00 +0000)]
Remove `sfi' abbreviations (a follow-up to r6902).
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/
6646022/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7124
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 11:55:03 +0000 (11:55 +0000)]
Revert r7119..r7121
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7123
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Thu, 10 Mar 2011 11:54:55 +0000 (11:54 +0000)]
Initialize zone lists in the register allocator with more reasonable initial capacities.
Also replace fixed length zone lists with embedded vectors for the fixed live ranges.
Review URL: http://codereview.chromium.org/
6660023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7122
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 11:49:17 +0000 (11:49 +0000)]
lint
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7121
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 11:49:07 +0000 (11:49 +0000)]
comment
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7120
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mikhail.naganov@gmail.com [Thu, 10 Mar 2011 11:48:56 +0000 (11:48 +0000)]
renamed
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7119
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Thu, 10 Mar 2011 10:14:24 +0000 (10:14 +0000)]
X64: Change kSmiConstantRegister to r12.
We never use the smi register in places where it matters that r12 as
a base register needs an extra SIB byte. Might as well free up the
unencumbered r15 register instead.
Review URL: http://codereview.chromium.org/
6647015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7113
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Thu, 10 Mar 2011 09:43:58 +0000 (09:43 +0000)]
Prepare push to trunk. Now working on version 3.2.2.
Review URL: http://codereview.chromium.org/
6659030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7112
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 9 Mar 2011 17:14:12 +0000 (17:14 +0000)]
Add bailout to x64 pixel array lithium instructions.
Stops segfaults in tests while tracking down the problem.
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/
6647024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7111
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
vegorov@chromium.org [Wed, 9 Mar 2011 16:57:03 +0000 (16:57 +0000)]
Rebuild scope chain from serialized scope info before parsing lazily.
We used to rebuild it in Scope::Analyze but this might lead to mismatch between scopes seen by parser during the first and the second parse of the function.
BUG=v8:1230
Review URL: http://codereview.chromium.org/
6646017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7110
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 9 Mar 2011 15:57:47 +0000 (15:57 +0000)]
X64 Crankshaft: Add inline one-element cache for Instanceof.
Review URL: http://codereview.chromium.org/
6621071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7109
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Wed, 9 Mar 2011 15:50:24 +0000 (15:50 +0000)]
Reuse backing store of two zone lists by using Rewind(0) instead of Clear().
Review URL: http://codereview.chromium.org/
6647019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7108
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Wed, 9 Mar 2011 15:27:07 +0000 (15:27 +0000)]
X64 Crankshaft: Fix unrestored context register in Math.power.
Review URL: http://codereview.chromium.org/
6649020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7107
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
danno@chromium.org [Wed, 9 Mar 2011 15:01:16 +0000 (15:01 +0000)]
Combine typed and pixel arrays.
Worth mentioning:
- Specialized versions of pixel array and store/loads inside the generic stubs have been removed, since to have parity for all external arrays, 8 different versions would have to be inlined/checked.
- There's a new constant in v8.h for external arrays with pixel array elements.
Review URL: http://codereview.chromium.org/
6546036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7106
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 9 Mar 2011 12:37:56 +0000 (12:37 +0000)]
Remove class HSubgraph.
Review URL: http://codereview.chromium.org/
6647018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7100
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Wed, 9 Mar 2011 12:06:54 +0000 (12:06 +0000)]
Refactor construction of switch statements to avoid subgraphs.
Refactor construction of switch statements so it doesn't use class
HSubgraph.
There are also a few improvements. We do not use an auxiliary list of
comparisons because they're embedded as a linked list in the graph
under construction. We share a common break block for all breaks from
the same switch. We do not insert empty blocks unless necessary to
maintain edge-split form.
There is also a bug fix. The entry to a clause body is a potential
join and must have a join ID set, otherwise deoptimization within the
body can go to an unpredictable place in the unoptimized code.
Review URL: http://codereview.chromium.org/
6650021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7099
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 9 Mar 2011 11:50:03 +0000 (11:50 +0000)]
Remove deserializer assert checking object size allocated in large object space
The change r7079 could allocate a few small code objects in large object space. Therefore the assert is no longer valid.
Review URL: http://codereview.chromium.org/
6647017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7098
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Wed, 9 Mar 2011 10:38:19 +0000 (10:38 +0000)]
Add the possibility for a code stub to be non-movable
Non-moveable code-stube are allocated in large object space. They are only required on ARM where the different C-entry stubs are required to never move.
This gets rid of pre-computing these stubs and hope that they never move. Also for crankshaft the C-entry stub which saved doubles is not generated in the snapshot so it ends up being generated at runtime and potentially move.
Review URL: http://codereview.chromium.org/
6626072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7097
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 9 Mar 2011 10:29:14 +0000 (10:29 +0000)]
Remove unneccesary JumpTableEntry pointer from lithium-codegen-x64.cc
Review URL: http://codereview.chromium.org/
6648028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7096
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Wed, 9 Mar 2011 10:02:47 +0000 (10:02 +0000)]
Fix memory leaks on x64
This change uses ZoneObject as base class for our jumptable entry. In
addition this change refactors the JumpTableEntry a bit.
Review URL: http://codereview.chromium.org/
6647012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7095
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 8 Mar 2011 15:08:36 +0000 (15:08 +0000)]
Avoid allocation of temporary zone lists when inserting representation changes.
Instead of allocating fresh temporary lists for every instruction, reuse
the same instance and reset it between instructions.
This reduces the amount of zone memory used for inserting the HChange
instructions roughly by half.
Review URL: http://codereview.chromium.org/
6628079
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7094
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 8 Mar 2011 15:00:08 +0000 (15:00 +0000)]
Fix release build
Disassemble is not available in release build
Review URL: http://codereview.chromium.org/
6635043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7093
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
ricow@chromium.org [Tue, 8 Mar 2011 14:18:28 +0000 (14:18 +0000)]
Remove GetProvidedParametersCount from JavaScriptFrame, it simply calls ComputeParametersCount.
Review URL: http://codereview.chromium.org/
6635042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7092
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 8 Mar 2011 14:15:25 +0000 (14:15 +0000)]
Fix bug in X64 RegExpExec stub.
Used incorrect register for referencing RegExp data, so it always failed
to match the fast case.
When modifiying the object layout, it was possible to make it crash instead.
BUG=v8:1236
TEST=test/mjsunit/regress/regress-1236.js
Review URL: http://codereview.chromium.org/
6635041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7091
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
lrn@chromium.org [Tue, 8 Mar 2011 11:21:38 +0000 (11:21 +0000)]
Fix Issue 1234.
Ensure that there is always enough bytes between consequtive calls in
unoptimized code to write a call instruction at the return points
without overlapping.
This handles the case where two return points were only four bytes
apart (because the latter call was to a register).
BUG=v8:1234
Review URL: http://codereview.chromium.org/
6624091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7089
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
sgjesse@chromium.org [Tue, 8 Mar 2011 11:14:25 +0000 (11:14 +0000)]
Ensure the result is used for the remaining calls to SetElement
Now mark SetElement as must use result
The debugger runs inside its own context so there should be no setters hit. Which is the reason for the live-edit code asserting non-empty handles.
Review URL: http://codereview.chromium.org/
6621042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7088
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 8 Mar 2011 10:49:01 +0000 (10:49 +0000)]
Fix assertion failure introduced by my previous change.
Review URL: http://codereview.chromium.org/
6621068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7087
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Tue, 8 Mar 2011 10:29:40 +0000 (10:29 +0000)]
ARM: Implement MathPowStub and DoMathPowHalf.
Review URL: http://codereview.chromium.org/
6613015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7086
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Tue, 8 Mar 2011 10:04:23 +0000 (10:04 +0000)]
Improve dead phi elimination.
This change splits the existing phi elimination into two phases:
1. Remove redundant phis
2. Remove dead phis with a fixed point iteration.
The new approach allows us to remove dead phis that are connected
in a cycle.
Review URL: http://codereview.chromium.org/
6624061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7085
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
mmaly@chromium.org [Mon, 7 Mar 2011 19:23:46 +0000 (19:23 +0000)]
Strict mode arguments do not share binding with formal parameters.
Move strict mode flag from TemporaryScope to Scope so that it can be accessed from variable binding code.
Arguments do not alias in strict mode (ia32, x64 and arm, codegen and full codegen).
Hydrogen tolerates null arguments_shadow().
In codegen-<arch> arguments object is allocated eagerly to capture values before they get modified.
Review URL: http://codereview.chromium.org/
6625048/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7083
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 7 Mar 2011 17:01:12 +0000 (17:01 +0000)]
Fix a stack-height mismatch during deoptimization.
When deoptimizing after a conditional expression in an effect context, we
should not see the value of the conditional expression.
BUG=v8:1237
Review URL: http://codereview.chromium.org/
6625057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7082
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
fschneider@chromium.org [Mon, 7 Mar 2011 16:09:56 +0000 (16:09 +0000)]
Make the typefeedback oracle use a NumberDictionary instead of JSObject as its backing store.
This avoids problems when getters/setters are defined on Object.
BUG=v8:1232
Review URL: http://codereview.chromium.org/
6625054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7081
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 7 Mar 2011 15:42:23 +0000 (15:42 +0000)]
Refactor inlined functions to avoid using subgraphs.
Function inlining no longer uses subgraphs. We detect inlining in an
effect context and avoid materializing a return value earlier than we
did before.
Review URL: http://codereview.chromium.org/
6635012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7080
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
karlklose@chromium.org [Mon, 7 Mar 2011 13:48:02 +0000 (13:48 +0000)]
Prepare push to trunk. Now working on version 3.2.1.
Review URL: http://codereview.chromium.org/
6623053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7076
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 7 Mar 2011 12:08:51 +0000 (12:08 +0000)]
Fix presubmit errors.
TBR=whesse
Review URL: http://codereview.chromium.org/
6627049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7075
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
kmillikin@chromium.org [Mon, 7 Mar 2011 11:52:36 +0000 (11:52 +0000)]
Refactor polymorphic load and inline function graph construction.
Change the way we construct the graph for polymorphic loads to match that of
polymorphic stores.
Introduce a stack-allocated helper for saving and restoring all the
function-specific graph builder state that needs to change when we begin
translating an inlined function. Make this class authoritative by moving
redundant state out of the builder and deferring to the current function's
state.
Ensure that we always print a tracing message when abandoning an inlining
attempt.
Review URL: http://codereview.chromium.org/
6628012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7074
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
whesse@chromium.org [Mon, 7 Mar 2011 11:26:43 +0000 (11:26 +0000)]
X64 Crankshaft: Revert r7071 and fix DoStoreContextSlot in a different way.
Review URL: http://codereview.chromium.org/
6627048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7073
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00