sgjesse@chromium.org
e8918bb7c7
MIPS: Fixed two bugs related to double function calls.
...
These originated from 4dfb7f2e.
This fixes cctest test-api/ConversionNumber in soft-float mode.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7068002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-25 06:41:39 +00:00
ager@chromium.org
b92ef0be32
MIPS: port Fix calls of strict mode function with an implicit receiver.
...
Port of r8040 to mips.
Original commit message:
Strict mode functions are to get 'undefined' as the receiver when
called with an implicit receiver. Modes are bad! It forces us to have
checks on all function calls.
This change attempts to limit the cost by passing information about
whether or not a call is with an implicit or explicit receiver in ecx
as part of the calling convention. The cost is setting ecx on all
calls and checking ecx on entry to strict mode functions.
Implicit/explicit receiver state has to be maintained by ICs. Various
stubs have to not clobber ecx or save and restore it.
CallFunction stub needs to check if the receiver is implicit when it
doesn't know from the context.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6992051
Patch from Paul Lind <plind44@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-25 06:04:01 +00:00
danno@chromium.org
2489594d71
Migrate flag from bit_field2 to bit_field3
...
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7064029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 21:07:55 +00:00
whesse@chromium.org
cc14935ddf
Ensure that external pixel arrays use a byte register in Crankshaft.
...
BUG=v8:1406
TEST=fast/canvas/canvas-putImageData.html
Review URL: http://codereview.chromium.org/7067028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 16:23:22 +00:00
whesse@chromium.org
ce77e9499d
Remove some dead code from full-codegen on all platforms.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6966033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 15:11:48 +00:00
lrn@chromium.org
b97da90453
Add tests for function statements in strict mode.
...
Small fixes.
Added test for const declaration in strict mode.
TEST=preparser/strict-function-statement
Review URL: http://codereview.chromium.org/6990056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8041 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 14:02:59 +00:00
ager@chromium.org
6f775f2fb0
Fix calls of strict mode function with an implicit receiver.
...
Only IA32 version for now. I'll start porting.
Strict mode functions are to get 'undefined' as the receiver when
called with an implicit receiver. Modes are bad! It forces us to have
checks on all function calls.
This change attempts to limit the cost by passing information about
whether or not a call is with an implicit or explicit receiver in ecx
as part of the calling convention. The cost is setting ecx on all
calls and checking ecx on entry to strict mode functions.
Implicit/explicit receiver state has to be maintained by ICs. Various
stubs have to not clobber ecx or save and restore it.
CallFunction stub needs to check if the receiver is implicit when it
doesn't know from the context.
Review URL: http://codereview.chromium.org/7039036
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 14:01:36 +00:00
whesse@chromium.org
583afefab5
Modify use of RelocInfo::CODE_TARGET_WITH_ID in full-codegen to make it the same on all platforms.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/7063021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 13:48:55 +00:00
sgjesse@chromium.org
eff2946b9b
Handle changes to the Object prototype in fast handling of arrays
...
R=ager@chromium.org
BUG=v8:1403
TEST=test/mjsunit/regress/regress-1403.js
Review URL: http://codereview.chromium.org//7067019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 12:28:10 +00:00
fschneider@chromium.org
5552dbccdd
Rename TypeRecording...Stub into ...Stub.
...
There is no need for this long name.
Review URL: http://codereview.chromium.org/7063017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 12:20:16 +00:00
ricow@chromium.org
3c7e1d7015
Create stand-alone json parser (including scanner).
...
The current json parser and scanner inherits fromt he normal scanners and parsers,
which are more complicated than we need for parsing json.
The supplied scanner works directly on the string supplied and has a
fast case mode for scanning only ascii characters (it will simply
create a substring or a symbol directly from the existing string). To
allow for creating symbols from a substring I have added a
SubStringAsciiSymbolKey that creates the hash based from our string
without extracting the sub-string. In case we need to add the symbol
it simply creates the symbol directly from the characters inside the
given string.
Review URL: http://codereview.chromium.org/7039037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 12:16:23 +00:00
kmillikin@chromium.org
0e76bfeae7
Fix a bug in deoptimization on x64.
...
When deoptimizing to just after an ignored (because of a duplicate
property name) object literal property initializer, we incorrectly saw
the value of the initializer expression on the stack in the
unoptimized code. The bug affected x64 only.
R=fschneider@chromium.org
BUG=v8:1404
Review URL: http://codereview.chromium.org/7066015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8028 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 12:12:41 +00:00
ricow@chromium.org
ab67432ed0
Change strict mode poison pill to be the samme type error function (fixes issue 1387).
...
We are now following the spec, and with regards to the error message we are following firefox (webkit still has different type errors in their nightly)
Review URL: http://codereview.chromium.org/7067017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8026 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 11:07:06 +00:00
danno@chromium.org
59a7ce37a6
Fix poliarty of CheckMap smi check on ia32
...
R=karlklose@chromium.org
BUG=none
TEST=existing tests
Review URL: http://codereview.chromium.org/7067018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 08:59:51 +00:00
fschneider@chromium.org
a3853feed2
Remove wrong assert to fix a debug crash with arguments object.
...
We don't need to assert the existence of a length-property of the
arguments object because it is not a JSArray, but just a normal JSObject.
BUG=v8:1227
Review URL: http://codereview.chromium.org/7064020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 08:38:42 +00:00
sgjesse@chromium.org
fbd106d9cd
MIPS: arch-independent changes to support mips.
...
This change supports all non-crankshaft features except serialization.
This must be built after the changes in http://codereview.chromium.org/6966031
are landed.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7039058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8023 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 07:56:20 +00:00
sgjesse@chromium.org
9891a057e1
MIPS: Update for 23-May commits, and a few older ones.
...
Make mips-specifc changes for r7999, r8001, r8002.
Also bring in changes for older commits 7203, 7279, 7693, 7715, 7788.
Mips changes for 7715 (Arm: Support hardfloat in SCons build), and
7693 (Implement hardfloat calling convention in macro assembler and simulator)
resulted in changes to SConstruct.
BUG=
TEST=
Review URL: http://codereview.chromium.org//6966031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8022 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-24 07:23:32 +00:00
vitalyr@chromium.org
179702df03
Inline more zone stuff.
...
R=ager@chromium.org
Review URL: http://codereview.chromium.org/7066004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 22:23:50 +00:00
karlklose@chromium.org
b082e6cc73
Remove stub call in non-VFP3 code path of external array load.
...
KeyedLoadStubCompiler::GenerateLoadExternalArray is tail-calling a stub, which it is not allowed to, because its major key is higher than InstanceOf. Instead of changing the major key I decided to provide an inline implementation.
TEST=test-api/ExternalArrays with --noenable-vfp3
R=danno@chromium.org
Review URL: http://codereview.chromium.org/7060007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 16:17:40 +00:00
danno@chromium.org
70d5e6d582
Add bit_field3 to Map objects
...
Reuse instance_descriptor field in the map to store additional flags when there are no descriptors. When descriptors get added to the map, move the flags to the DescriptorArray and access through indirection.
Review URL: http://codereview.chromium.org/7033024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 15:59:38 +00:00
whesse@chromium.org
d88dbf27f5
Avoid calling ToObject on JSFunction receiver arguments for Function.call and Function.apply.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/7062007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 15:17:10 +00:00
danno@chromium.org
b21987203e
Ensure SMI check for receiver in external array store stub for ARM.
...
R=ager@chromium.org
BUG=none
TEST=test/mjsunit/external-array.js
Review URL: http://codereview.chromium.org/7058011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7999 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 15:04:32 +00:00
danno@chromium.org
780df33019
SMI checks for receiver in KeyedLoad/Store (done right this time)
...
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7059013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7998 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 13:42:33 +00:00
vitalyr@chromium.org
3c689b33e8
Use placement new for ZoneLists in the parser.
...
Review URL: http://codereview.chromium.org/7059012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7994 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 13:00:11 +00:00
vitalyr@chromium.org
69bc282fd6
Isolates cleanup: get rid of some ugly macros.
...
Review URL: http://codereview.chromium.org/7062003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7993 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 12:59:02 +00:00
sgjesse@chromium.org
0e0b1b2da9
Optimise the deoptimisation check to improve performance on modern ARM cores.
...
BUG=none
TEST=none
Committed: http://code.google.com/p/v8/source/detail?r=7909
Reverted in r7916.
Review URL: http://codereview.chromium.org//7021007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7991 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 12:48:17 +00:00
danno@chromium.org
a86e0b7708
Add missing SMI checks to fix reliability bots
...
R=ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6974008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7989 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 11:40:36 +00:00
sgjesse@chromium.org
a1bcafab69
Improve bit tests on IA32.
...
Bit tests with a memory operand should be avoided on Intel processors.
On Atom bts with a memory operand has 10~11 cycles latency and on Core 2
it has 5~6 cycles latency, and also produces multiple uops.
If the bit base operand is a register the latency is 1 cycle instead.
This CL improves several cases from Kraken 1.1 benchmark on Atom. For example,
12% for imaging-desaturate, 8% for audio-fft, and 5% for audio-beat-detection.
Review URL: http://codereview.chromium.org//7048003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 10:47:43 +00:00
kasperl@chromium.org
e8277a0ab5
Changed d8 to print exception stack traces like samples/shell.cc.
...
Review URL: http://codereview.chromium.org/7060006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7986 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 10:41:02 +00:00
lrn@chromium.org
b253dd8927
Create template system for strict-mode tests.
...
This makes it possible to get total coverage without creating thousands
of individual test files.
Review URL: http://codereview.chromium.org/7061008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 10:35:30 +00:00
rossberg@chromium.org
b5223ab7a6
Fix object visitor.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7984 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 09:11:24 +00:00
ager@chromium.org
5765e8a9c0
Experimental i18n extension breaks shared library build. Revert recent
...
changes to unblock V8 release.
Revert "Adding DateTimeFormat class to i18n API with following methods:"
Revert "Some internal methods are requested when v8 is built as DLL (V8_SHARED), and"
R=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/7060005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7981 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 08:35:46 +00:00
sgjesse@chromium.org
f19fb45510
MIPS: Minor fixes to simulator and builtins-mips.
...
Updated to include fixes to several mips arch-specific files, corresponding to recent changes in r7944, r7935, r7926, r7914, r7910, r7895, and parts of r7423, which had previously been missed for mips. Rebased on r7964.
The simulator changes were missed on r7893 for code-stubs-mips,
where the DirectCEntry stuff was added.
There are also a couple small changes to builtins-mips following
r7879 for the other architectures.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7042031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 07:12:58 +00:00
svenpanne@chromium.org
8ea947e64b
Fixed pretty printing of typeof/delete/void expressions. Put spaces around binary operations and comparisons to improve readability.
...
Review URL: http://codereview.chromium.org/7055008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7976 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 07:00:54 +00:00
ager@chromium.org
fe6bdabc07
Some internal methods are requested when v8 is built as DLL (V8_SHARED), and
...
they are not available.
Make them no-op (or better yet part of public API).
TEST = Build Chromium with V8_SHARED
Review URL: http://codereview.chromium.org/7004051
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7973 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 06:14:32 +00:00
ager@chromium.org
e4509a59b7
Prepare push to trunk. Now working on version 3.3.10.
...
R=erik.corry@gmail.com
Review URL: http://codereview.chromium.org/7059006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 06:00:45 +00:00
vitalyr@chromium.org
36195e73a7
ll_prof: Add function optimization status markers.
...
Review URL: http://codereview.chromium.org/7056012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7970 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-20 15:45:06 +00:00
mikhail.naganov@gmail.com
dd2c990178
Remove redundant 'running' checks for ProfilerEventsProcessor in tests.
...
A follow up to r7949
R=vitalyr@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7040014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-20 15:11:00 +00:00
svenpanne@chromium.org
969a909e3a
Refactoring only: Simplified LChunkBuilder:DoTest a bit, making it a simple if-then-else cascade.
...
Review URL: http://codereview.chromium.org/7055006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7968 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-20 11:49:52 +00:00
cira@chromium.org
11cc4dcfc6
Adding DateTimeFormat class to i18n API with following methods:
...
- format
- getWeekdays
- getMonths
- get Eras
- getAmPm
TEST=Visit i18n.kaziprst.org/datetimeformat.html
Review URL: http://codereview.chromium.org/7014019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7967 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 21:12:47 +00:00
kmillikin@chromium.org
86bd8a6c40
Allocate fewer handles in the TypeFeedbackOracle.
...
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7047009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 13:26:47 +00:00
kmillikin@chromium.org
47157e8a56
When inlining fails, disable optimization of the proper function.
...
Also, refactor disabling of optimization to make it easier to ensure
that both SharedFunctionInfo and Code get disabled.
R=whesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7033020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7963 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 13:15:57 +00:00
fschneider@chromium.org
742a001c00
Also skip unary op IC when iterating over break locations in the debugger.
...
Review URL: http://codereview.chromium.org/7040002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7962 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 13:14:12 +00:00
whesse@chromium.org
7878391841
Refactor TraceInlining method of hydrogen so it works correctly.
...
Fix TraceInline.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7049005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7961 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 12:53:50 +00:00
rossberg@chromium.org
abd77ad439
Rename Proxy class to Foreign, to avoid confusion with Harmony proxies.
...
Also fix grokdump, which was off by one after intro of JSProxy type.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7959 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 11:47:34 +00:00
lrn@chromium.org
eea59292e6
Avoid conflict between method and type name.
...
Make builder happy.
Review URL: http://codereview.chromium.org/7046004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 09:22:32 +00:00
lrn@chromium.org
7db97de8e0
Added preparser strict-mode tests.
...
Now tests for use of eval, arguments, reserved words and with statement.
Review URL: http://codereview.chromium.org/7037024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7951 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 09:01:46 +00:00
mikhail.naganov@gmail.com
e7484dbd01
Fix bug with long stack traces truncation in DevTools CPU profiler.
...
R=sgjesse@chromium.org ,vitalyr@chromium.org
BUG=1398
TEST=cctest/test-cpu-profiler/Issue1398
Review URL: http://codereview.chromium.org/7046001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7949 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 08:25:38 +00:00
ager@chromium.org
98778dc802
Remove execScript from V8. No longer present i neither Firefox nor Safari.
...
R=ricow@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/7046002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7948 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-19 08:10:27 +00:00
dslomov@chromium.org
c5c57d722a
Put 7942 "Per-isolate embedder-specific data" back
...
TBR=
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7947 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 23:26:38 +00:00
dslomov@chromium.org
3d5d169275
Revert "Per-isolate embedder-specific data"
...
This reverts commit 42f5dc01fb9adbf55242da9f6515e9a37132217b.
Checking if this helps webkit-tests
TBR=dslomov@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 22:35:41 +00:00
fschneider@chromium.org
932390fd2d
Fix compilation warning on some C++ compilers.
...
TBR=
Review URL: http://codereview.chromium.org/7034030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7945 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 17:43:20 +00:00
fschneider@chromium.org
f2cb08f1c2
Fix handling of -0 in the unary-op IC and avoid repeated patching/transitions.
...
When the stub return a heap number we do a state transition to
a version HEAP_NUMBER that can handle -0.
There is room for further improvement in the typefeedback for the
case of -0. This change however does not address this and only fixes
the acute issue.
Review URL: http://codereview.chromium.org/7037025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 17:32:36 +00:00
vitalyr@chromium.org
85edb5f96b
Make GVN side effect analysis more precise.
...
When descending the dominator tree we used to collect side effects from all blocks between the dominator and the dominated blocks in the block ordering. This could include blocks that do not appear on paths from the dominator to the dominated and unnecessarily removed available values from the GVN map.
Review URL: http://codereview.chromium.org/7036010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 17:18:35 +00:00
dslomov@chromium.org
469c55f058
Per-isolate embedder-specific data
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6975020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 16:20:45 +00:00
vitalyr@chromium.org
35211e959e
Assert that independent handles do not participate in grouping.
...
Review URL: http://codereview.chromium.org/7044007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7941 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 15:28:43 +00:00
whesse@chromium.org
a32540e762
Add code to ia32 TypeRecordingBinaryOpStub to handle SHR Smi overflow.
...
BUG=v8:1395
TEST=
Review URL: http://codereview.chromium.org/7039013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 14:53:02 +00:00
rossberg@chromium.org
30ecaa2f6c
Move derived get trap from builtins to global context.
...
Review URL: http://codereview.chromium.org/7017008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 14:00:34 +00:00
danno@chromium.org
123500999f
Reland 7917:
...
Better support for 'polymorphic' JS and external arrays
Allow keyed store/load stubs to switch between external array and fast JS arrays without forcing a state transition to the generic stub.
There CL consists of two pieces of functionality. First, code stubs for fast element arrays don't immediately transition to the MEGAMORPHIC state when there's a map mismatch. Second, two ICs are cached per map for fast elements, the MONOMORPHIC version, and a new MEGAMORPHIC version that handles two or more different maps and dispatches to shared stubs to perform the array operation.
Review URL: http://codereview.chromium.org/7036016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 13:17:29 +00:00
vegorov@chromium.org
1ff163b219
Revert accidental change from r7795 that was causing a bug fixed in r7790 to reappear.
...
Review URL: http://codereview.chromium.org/6968010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 12:26:04 +00:00
lrn@chromium.org
9307ce2fcf
Fix incorrect coercion of other failures to Failure::Exception in ReThrow.
...
TEST=cctest/test-api/OutOfMemoryNested
Review URL: http://codereview.chromium.org/7029028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 12:22:19 +00:00
whesse@chromium.org
f40c463526
Fix bug 1396: Optimized calls to API functions assumed that the receiver was a JSObject, failed when compiling stub otherwise.
...
BUG=v8:1396
Review URL: http://codereview.chromium.org/7045002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 12:20:36 +00:00
fschneider@chromium.org
66911961cf
Fix bug in optimized compiler's switch-statement.
...
In the case where the default-clause occurs as the first clause,
the case-blocks were not wired up correctly.
BUG=v8:1394
TEST=mjsunit/compiler/regress-1394.js
Review URL: http://codereview.chromium.org/7037023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 11:06:07 +00:00
svenpanne@chromium.org
f39b0dfccb
Handle all kind of arguments in the ToBooleanStub. While this is not very thrilling in itself, it is one of several steps to add type recording to this stub. Removed a duplicate check for null in the ARM stub and made a tiny simplification, removing a sub instruction.
...
As a side note, this change has some positive impact on the performace, e.g. imaging-darkroom is 8.3% faster and ws-ieee754conv is even 19.9% faster. No idea why the speedup is so big in some cases, but never look a gift horse in the mouth... ;-)
Review URL: http://codereview.chromium.org/7042004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 10:40:01 +00:00
vitalyr@chromium.org
2cb0c0a957
Remove NULL temp operand from ia32 LStoreKeyedSpecializedArrayElement.
...
Review URL: http://codereview.chromium.org/7042006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 09:19:14 +00:00
kmillikin@chromium.org
b5b5fa22e1
Prepare push to trunk. Now working on version 3.3.9.
...
Review URL: http://codereview.chromium.org/7042005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 08:49:07 +00:00
lrn@chromium.org
6932196aa8
Fix push of untagged value in type-recording unary op stub.
...
Review URL: http://codereview.chromium.org/7037007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-18 07:40:51 +00:00
danno@chromium.org
83c84a43e8
Revert 7917
...
TBR=danno@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 18:47:10 +00:00
danno@chromium.org
5a9b2b3c5f
Better support for 'polymorphic' JS and external arrays
...
Allow keyed store/load stubs to switch between external array and fast JS arrays without forcing a state transition to the generic stub.
There CL consists of two pieces of functionality. First, code stubs for fast element arrays don't immediately transition to the MEGAMORPHIC state when there's a map mismatch. Second, two ICs are cached per map for fast elements, the MONOMORPHIC version, and a new MEGAMORPHIC version that handles two or more different maps. Currently, the only array types supported by the MEGAMORPHIC stub are fast elements for objects and JSArrays.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6894003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 17:29:13 +00:00
sgjesse@chromium.org
46aeea9d3a
Revert r7909
...
r7909: Optimise the deoptimisation check to improve performance on modern ARM cores.
Assert failure on mozilla/ecma/Date/15.9.3.8-2 and mozilla/ecma/Date/15.9.3.8-4.
R=ricow@chromium.org
Review URL: http://codereview.chromium.org//7037006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 12:43:14 +00:00
vegorov@chromium.org
925107046e
Extend Handle API with MarkIndependent.
...
Garbage collector is free to ignore object groups for independent handles and can collect then in minor collections.
Review URL: http://codereview.chromium.org/7031005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 12:18:19 +00:00
danno@chromium.org
ecc25bfb47
Add enumeration to specify if smi check needed
...
R==ager@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7039004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 12:05:06 +00:00
whesse@chromium.org
0eca2b4fc1
Fix error in postfix ++ in Crankshaft.
...
Add HForceRepresentation, to represent the implicit ToNumber applied to the input of a count operation.
BUG=v8:1389
TEST=
Review URL: http://codereview.chromium.org/7033008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 11:41:59 +00:00
fschneider@chromium.org
e3fd7c450e
Fix presubmit errors.
...
TBR=whesse@chromium.org
Review URL: http://codereview.chromium.org/7017011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 11:24:38 +00:00
fschneider@chromium.org
7d446f7f4c
Fix bug restoring of JS entry sp so to fix profiler-related valgrind issues.
...
The profiler did not correctly identify when there was a JS frame
on the stack after an exception was thrown.
I also refactored the code to use PopTryHandler macro-instructions on all platforms
BUG=73722
TEST=No more valgrind errors related to v8::internal::StackFrameIterator.
Review URL: http://codereview.chromium.org/7019010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 11:11:12 +00:00
sgjesse@chromium.org
9bddc8e0d8
Optimise the deoptimisation check to improve performance on modern ARM cores.
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//7021007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 10:52:51 +00:00
sgjesse@chromium.org
17c4dc86f0
MIPS: Remove peeophole optimizations from assembler.
...
Following r7854.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7037004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 10:34:02 +00:00
sgjesse@chromium.org
f801756bf8
Submit regexp-macro-assembler-mips.cc.
...
Also includes minor changes to regexp-macro-assembler.h.
Builds, but won't run until mips port submission is complete. Has
been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7038004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 10:30:09 +00:00
sgjesse@chromium.org
d1b03ba608
Submit full-codegen-mips.cc.
...
Includes an arch-independent change for FullCodeGenerator::Split()
prototype for mips, which requires two extra parameters.
Compiles, does not run yet. Tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7019004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 10:24:44 +00:00
sgjesse@chromium.org
35727e4507
Submit stub-cache-mips.cc.
...
Compiles, but not testable until all of mips port is in place. It
has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7038002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 10:07:42 +00:00
danno@chromium.org
7185ec6ca8
Remaining (forgotten) feedback for pixel array deopt fix
...
TBR=kmillikin@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7019008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-17 07:22:01 +00:00
rossberg@chromium.org
05fd779dd3
Implement get trap for proxies.
...
TODO: reflective Object methods not handled yet.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7035007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 16:33:58 +00:00
danno@chromium.org
daa1be1226
Support conversion of clamped double values for pixel arrays in Crankshaft.
...
BUG=1313
TEST=test/mjsunit/external-array.js
Review URL: http://codereview.chromium.org/7014033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 14:10:56 +00:00
vegorov@chromium.org
fbcc2ae6f0
Prepare push to trunk. Now working on version 3.3.8.
...
Review URL: http://codereview.chromium.org/7030012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 11:28:23 +00:00
vegorov@chromium.org
850b106400
Extend GCMole with poor man's data flow analysis to catch dead raw pointer vars.
...
Fix various places in the code found by improved GCMole.
Review URL: http://codereview.chromium.org/6973063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 09:06:16 +00:00
sgjesse@chromium.org
e90632f417
Submit debug-mips.cc.
...
It compiles, but is not testable until the rest of the mips port
is in place. This has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7032003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 08:59:56 +00:00
sgjesse@chromium.org
7510bffc4b
Submit code-stubs-mips.cc.
...
This submission required a small change to arch-indep code to declare
code stub DirectCEntry for mips.
It also required updates to macro-assembler-mips.cc & h and frames-mips.h.
I also made a small change to frames-mips.cc.
This code submission will compile, but is not testable until the majority
of the mips port is in place. It has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7034008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 08:38:19 +00:00
sgjesse@chromium.org
230a56abda
Limit the number of local variables in a function
...
Review URL: http://codereview.chromium.org//7003030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-16 08:27:52 +00:00
svenpanne@chromium.org
fe2074f580
Removed a "feature envy" bad smell: Moved AssumeRepresentation method to where
...
it belongs.
Review URL: http://codereview.chromium.org/7015039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 13:29:02 +00:00
erik.corry@gmail.com
cfd6e000ea
Fix uninitialized variable recording how much regexp code
...
has been generated.
Review URL: http://codereview.chromium.org/7015040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 11:10:18 +00:00
rossberg@chromium.org
e14402b1df
A first skeleton for introducing Harmony proxies.
...
1) Add new type JSProxy for representing proxy objects.
Currently devoid of functionality, i.e., all properties are undefined.
2) Some rudimentary global $Proxy functions to create proxies.
Next step: Hook up getProperty and getOwnProperty handlers. Will probably
require introducing a new LookupResult type, which is a mixture of
INTERCEPTOR (handles any property) and CALLBACK (calls back to JS).
Can we unify this somehow?
TODO: Should probably rename existing Proxy type to something like
"Foreign", to avoid confusion.
Review URL: http://codereview.chromium.org/6932068
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 10:58:25 +00:00
svenpanne@chromium.org
edac3d93c2
Remove more dead code.
...
Review URL: http://codereview.chromium.org/7013045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 09:25:05 +00:00
vitalyr@chromium.org
73c809bb0e
Isolates cleanup: move top.cc to isolate.cc.
...
Review URL: http://codereview.chromium.org/6969042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 08:54:16 +00:00
svenpanne@chromium.org
ca5dad94a7
Removed dead code (ingenious 3-bit representation of types)
...
Review URL: http://codereview.chromium.org/6973053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 08:21:50 +00:00
svenpanne@chromium.org
78f4dd1208
Use type feedback for unary minus, improving the performance on e.g. 3d-cube by
...
7.2% and math-cordic by 5.7%.
Review URL: http://codereview.chromium.org/7013025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 08:21:35 +00:00
sgjesse@chromium.org
2838a3c78b
Submit builtins-mips.cc.
...
This code submission will compile, but is not testable until the majority
of the mips port is in place. This has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//7013031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 07:27:46 +00:00
ricow@chromium.org
964dbff40d
Only send null or undefined as receiver for es5 natives, not generally
...
for builtin functions.
Review URL: http://codereview.chromium.org/7012012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-13 07:26:44 +00:00
vitalyr@chromium.org
658e323e87
Micro-optimize passing of args to HasLocalProperty.
...
Review URL: http://codereview.chromium.org/7018001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 16:19:03 +00:00
fschneider@chromium.org
5f29f9bd8e
Don't use environment values at certain deoptimize-instructions.
...
If a HDeoptimize does not cut away parts of the control-flow-graph
we don't need to insert uses to correctly elimiate dead phis since
the full function is visible to the optimizing compiler.
This is a small improvement of the change r7221 which fixed a problem
when deoptimizing on never executed case-clauses.
Review URL: http://codereview.chromium.org/7012010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 14:56:56 +00:00
sgjesse@chromium.org
58161ce6ed
Introduce ic-mips.cc.
...
This code submission will compile, but is not testable until the majority
of the mips port is in place. This has been tested externally.
BUG=
TEST=
Review URL: http://codereview.chromium.org//6973024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 14:48:20 +00:00
karlklose@chromium.org
b606195012
ARM: Fix disasm for strh, vabs, vneg. Add load/store tests.
...
Patch from ARM Ltd.
BUG=none
TEST=added to test/cctest/test-disasm-arm.cc
Original review at http://codereview.chromium.org/7013024/ .
Review URL: http://codereview.chromium.org/7013027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 14:44:49 +00:00
svenpanne@chromium.org
a3afc9a896
Made the output of the --trace-representation flag a bit more informative and
...
centralized its handling.
Review URL: http://codereview.chromium.org/6969034
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 13:36:49 +00:00
sgjesse@chromium.org
b9c771c106
ARM: Reduce amount of code generated for context save on deopt.
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//6930038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 13:33:14 +00:00
ager@chromium.org
89278730bb
Make the code flushing candidate field explicit in code objects.
...
This way it is counted and the rounding of the size will just work
without extra tweaking if you want to add an extra field to code
objects.
R=vegorov@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6969037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7872 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 13:13:00 +00:00
vitalyr@chromium.org
bc52ed0850
Extend the fast case of HasLocalProperty.
...
Review URL: http://codereview.chromium.org/7016016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7871 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 12:48:10 +00:00
svenpanne@chromium.org
db563ed204
Fixed TypeFeedbackOracle for unary operations: Record code for the corresponding
...
type recording IC.
Review URL: http://codereview.chromium.org/6973025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-12 08:54:13 +00:00
sgjesse@chromium.org
4e18d50834
Add constant splitting for user controlled constants in the full compiler
...
This is IA32 only for now.
Added a random value to each assembler instance (JIT cookie) to be used for constant splitting. Added safe versions of setting a register with an immediate value and for pushing an immediate value. Used these functions where user controlled immediate values could be emitted in the code stream. I also used it for immediates which are an argument number even though the number of formal arguments is currently limited to 16k.
I found no compares directly with user controlled constants.
I am not sure whether the test is that useful, but it might catch some changes missing constant splitting.
Review URL: http://codereview.chromium.org//7005031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 14:16:24 +00:00
vitalyr@chromium.org
26bf1dfd4a
Kill some dead code.
...
Review URL: http://codereview.chromium.org/6995048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 13:45:30 +00:00
fschneider@chromium.org
48077e89e9
Remove support for branch hints from the IA32 and X64 assembler.
...
They were not on by default and should not be needed on modern
platforms.
Review URL: http://codereview.chromium.org/7001025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 13:26:07 +00:00
vitalyr@chromium.org
03c00ee6a6
Support symbol comparison in crankshaft.
...
Review URL: http://codereview.chromium.org/7000021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 12:50:04 +00:00
whesse@chromium.org
b77f131914
Don't emit code for HContext values with no uses.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6982023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7860 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 12:11:23 +00:00
sandholm@chromium.org
fcd9380eda
JSON.parse improvement. Call "LookupSymbol" rather than "NewString"
...
for property string tokens.
Review URL: http://codereview.chromium.org/7004016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:56:15 +00:00
vitalyr@chromium.org
4cc800b3cf
Support %_IsUndetectableObject in crankshaft.
...
Review URL: http://codereview.chromium.org/6995046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:53:43 +00:00
karlklose@chromium.org
7a798fb9e9
Prepare push to trunk. Now working on version 3.3.7.
...
Review URL: http://codereview.chromium.org/7005029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:34:56 +00:00
fschneider@chromium.org
6db15ae34b
Remove peephole optimiziations from IA32 and ARM assembler.
...
They are not used with Crankshaft anymore.
Review URL: http://codereview.chromium.org/7003025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:29:53 +00:00
ager@chromium.org
8a0b1f5bc9
Allow closures to be optimized if outer contexts that call eval are all in strict mode.
...
R=kmillikin@chromium.org
BUG=
TEST=mjsunit/compiler/eval-introduced-closure.js
Review URL: http://codereview.chromium.org/6993008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:26:11 +00:00
ricow@chromium.org
fa2a92b45f
Add case for EXTERNAL_ARRAY_TRANSITION to JSObject::NormalizeProperties
...
Review URL: http://codereview.chromium.org/7004014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:25:03 +00:00
whesse@chromium.org
bf06fbdbf1
Recommit "First step in letting Crankshaft inline functions with a different context.""
...
This reverts r7810, thus recommitting 7807.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6963009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 11:03:12 +00:00
jkummerow@chromium.org
79e76dbd34
Rename parameters to fix Windows build
...
TEST=compiles on Windows
Review URL: http://codereview.chromium.org/7005027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 09:50:34 +00:00
svenpanne@chromium.org
9f3f90ddc0
Improved c1visualizer output a bit: Emit a human-readable description for
...
changes instead of a bit-pattern. Fixed logic when ranges are emitted. Improved
indentation in hydrogen.cfg (aesthetical change only). Some minor additional
cleanup.
Review URL: http://codereview.chromium.org/6995024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 09:19:28 +00:00
jkummerow@chromium.org
e90d16953c
Remove NearLabel, replacing remaining occurrences with Label
...
TEST=compiles, existing tests pass
Review URL: http://codereview.chromium.org/6991010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 09:12:16 +00:00
ricow@chromium.org
7f8a918f08
Allow strict mode flag as extraicstate for keyed external array store ic
...
We currently hit an assertion in computeflags, but the extra_ic_state is used to pass the strict mode flag in.
BUG: 1383
Review URL: http://codereview.chromium.org/7003022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 08:53:46 +00:00
erik.corry@gmail.com
291781ed3c
Limit the generation of regexp code with large inlined constants.
...
Review URL: http://codereview.chromium.org/6997015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7845 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-11 06:39:27 +00:00
jkummerow@chromium.org
944a388412
Avoid using a register for constant external array indices.
...
This CL is based on and obsoletes CL 6879037.
TEST=mjsunit/external-array.js
Review URL: http://codereview.chromium.org/6902112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 15:25:17 +00:00
svenpanne@chromium.org
986ed5358e
Reverted some code which got accidentally committed as part of another commit.
...
TBR=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/6994011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 14:39:19 +00:00
vitalyr@chromium.org
5ac2a3acfc
Fix lint.
...
TBR=svenpanne@chromium.org
Review URL: http://codereview.chromium.org/6995022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7841 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 14:21:23 +00:00
vitalyr@chromium.org
c10267f1fa
Refactor HCheckInstanceType to allow mask/tag tests.
...
This allows us to get rid of totally fake LAST_STRING_TYPE and makes
it possible to test for symbols.
I considered splitting HCheckInstanceType into two instructions, but
it seems nice to be able to hide the instance type implementation
details from the hydrogen level.
Review URL: http://codereview.chromium.org/6964011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 14:17:23 +00:00
svenpanne@chromium.org
4912c0371b
A few "extract method" refactorings, trying to get individual method definitions
...
onto a sinlge 30" screen. A lot of times, the AST visitor stops a bit too early,
so we have to do the rest of the dispatch by hand. This is caused by the fact
that the kind of the AST nodes are a bit too coarse for some traversals (e.g. a
single node type for all binary ops), perhaps one could try to refine this a
little bit more.
Review URL: http://codereview.chromium.org/6963008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 13:29:57 +00:00
jkummerow@chromium.org
2d38ad98fd
fix x64 build error (introduced by rebasing)
...
TEST=compiles
Review URL: http://codereview.chromium.org/6980018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 09:15:21 +00:00
jkummerow@chromium.org
95ff85112f
Merge Label and NearLabel
...
by adding NearLabel's functionality to Label and introducing a "near" parameter to jump instructions.
TEST=compiles; existing tests still pass.
Review URL: http://codereview.chromium.org/6928060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 09:03:42 +00:00
sgjesse@chromium.org
5d8cd989ab
Add new function ICCompareStub::GenerateSymbols to mips, introduced in r7824.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org//6970006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-10 06:29:16 +00:00
vegorov@chromium.org
d9c80d4771
Propagate a Failure from GenerateDictionaryNegativeLookup instead of causing GC.
...
Review URL: http://codereview.chromium.org/6973001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7829 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 16:15:18 +00:00
ager@chromium.org
8033be880e
Add IsCallable method for Object in the API
...
Patch by Peter Varga.
BUG=none
TEST=cctest/test-api/CallableObject
Review URL: http://codereview.chromium.org/6964005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7828 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 15:24:48 +00:00
fschneider@chromium.org
45d07bcd32
Simple elimination of redundant array-hole checks.
...
If the result of an fast elements load is converted to an untagged
representation we can omit the hole check if the value is not used
anywhere else except for HChange instructions converting it to
an untagged representation since those will deoptimize for the hole
value anyway.
Review URL: http://codereview.chromium.org/6964012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7827 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 15:21:40 +00:00
svenpanne@chromium.org
2fb4556bfe
Code should be retrieved via the AST id, not via the source position. Bugs like
...
this are a "little bit" hard to find when everything is an int... >:-(
Review URL: http://codereview.chromium.org/6970001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7826 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 14:58:06 +00:00
sgjesse@chromium.org
40172e6a7b
Update mips infrastructure files.
...
- Merge to current tip of tree, fix build problems.
- Remove deprecated source files.
- Add cctest test-disasm-mips
- Consistently use single-reg push()/pop() (remove uppercase variants)
- Add assembler field accessors.
- More style fixes.
BUG=
TEST=
Review URL: http://codereview.chromium.org//6965006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7825 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 14:28:09 +00:00
vitalyr@chromium.org
07ed2f1263
Compare IC: add SYMBOLS state.
...
Review URL: http://codereview.chromium.org/6960011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7824 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 13:30:04 +00:00
vitalyr@chromium.org
7cd41c875d
Make sure v8::String::Value and relatives are always initialized.
...
BUG=1370
Review URL: http://codereview.chromium.org/6966003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7818 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 10:39:02 +00:00
lrn@chromium.org
465aa7ef08
Prepare push to trunk. Now working on version 3.3.6.
...
Review URL: http://codereview.chromium.org/6964006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7815 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 09:21:21 +00:00
jkummerow@chromium.org
89c64653bf
Expose optimization info via runtime functions
...
TEST=mjsunit/assert-opt-and-deopt.js
Review URL: http://codereview.chromium.org/6879108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-09 08:58:57 +00:00
vitalyr@chromium.org
f5af29e848
Fix build on FreeBSD.
...
Patch by Akinori MUSHA.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7811 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-08 14:50:09 +00:00
whesse@chromium.org
912ec759da
Revert "First step in letting Crankshaft inline functions with a different context."
...
This reverts commit r7807. TBR=kmillikin@chromium.org .
BUG=
TEST=
Review URL: http://codereview.chromium.org/6928061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7810 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-06 15:02:15 +00:00
vitalyr@chromium.org
913ce07e2f
Extract common code in string compare loops.
...
Review URL: http://codereview.chromium.org/6927044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7809 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-06 14:19:51 +00:00
ager@chromium.org
0961b1a936
Check that receiver is JSObject on API calls.
...
R=sgjesse@chromium.org
BUG=v8:1369
TEST=mjsunit/regress/regress-1369.js
Review URL: http://codereview.chromium.org/6931056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-06 14:14:16 +00:00
whesse@chromium.org
efc43746df
First step in letting Crankshaft inline functions with a different context.
...
Use a special slot for HContext, and fetch the value from there each time it is used. Allocate space for special slots in every HEnvironment. Fill them with constant undefined. Do not copy them to LEnvironment.
BUG=
TEST=
Review URL: http://codereview.chromium.org/6929066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7807 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-06 13:26:22 +00:00
sgjesse@chromium.org
b15475abbc
ARM: Fix the detection of whether the binary was compiler with -mfloat-abi=hard
...
The constant 1.0 should be 0x3FF0000000000000 not 0x03FF000000000000.
R=karlklose@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//6930064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-06 12:52:12 +00:00
lrn@chromium.org
91968ac8a6
Fix newly introduced bug in detecing octal numbers.
...
TEST=mjsunit/strict
Review URL: http://codereview.chromium.org/6928059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7805 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-06 12:47:18 +00:00
lrn@chromium.org
1a169aa3f0
Strict mode detection in preparser.
...
Handle octal escapes in everything but RegExps.
Extend preparser test suite to test whether the preparser reports
exceptions to throw.
TEST=preparser/*
Review URL: http://codereview.chromium.org/6927075
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7804 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-06 11:41:15 +00:00
ager@chromium.org
cf19179266
Implement CallAsConstructor method for Object in the API
...
Patch by Peter Varga.
BUG=v8:1348
TEST=cctest/test-api/ConstructorForObject
Review URL: http://codereview.chromium.org/6902108
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-06 11:07:52 +00:00
svenpanne@chromium.org
76d5eda67e
Tiny refactorings to improve the readability of the compiler pipeline a bit.
...
Review URL: http://codereview.chromium.org/6933048
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7802 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-06 11:02:23 +00:00
karlklose@chromium.org
30c169718d
Remove unused but set variable.
...
R=ager@chromium.org
Review URL: http://codereview.chromium.org/6930063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7799 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-06 09:05:44 +00:00
svenpanne@chromium.org
5cd715cbc3
A tiny contribution for the IWYU day: Include allocation.h in every
...
header which uses BASE_EMBEDDED and/or AllStatic. Note that still only
45 out of 135 headers in src/ can be used stand-alone, but at least
this is a little bit more than before...
Review URL: http://codereview.chromium.org/6931031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-06 06:50:20 +00:00
dslomov@chromium.org
2500f14868
This implements per-isolate locking and unlocking, including tests
...
BUG=
TEST=
Committed: http://code.google.com/p/v8/source/detail?r=7734
Committed: http://code.google.com/p/v8/source/detail?r=7784
Review URL: http://codereview.chromium.org/6788023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7797 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-05 18:55:31 +00:00
cira@chromium.org
9695ce9f37
Trying to re-land http://codereview.chromium.org/6901141 .
...
Changes from previus revision:
- Made my own strncpy in I18NUtils class (we can't use OS::SNPrintF nor snprintf).
- Fixed a crashing bug related to ICU call in LanguageMatcher::BCP47ToICUFormat.
TEST=Visit i18n.kaziprst.org/locale.html
Review URL: http://codereview.chromium.org/6928017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7796 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-05 17:18:22 +00:00
vegorov@chromium.org
9a9211e22d
Unroll more StringDictionary lookup probes both for positive and negative dictionary lookups.
...
Review URL: http://codereview.chromium.org/6932010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7795 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-05 12:30:57 +00:00
vitalyr@chromium.org
5b2e2636b7
Faster string equals in generated code.
...
In my previous change I mixed up "compare" and "equals". This made us
miss the fast length check before comparing strings for equality.
Now we have a separate helper for "equals". It shares some of the
inner loop details with "compare". I'll see if this can be cleaned up
without making it unreadable.
Review URL: http://codereview.chromium.org/6928020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-05 11:40:08 +00:00
ager@chromium.org
0af052870f
Support polymorphic loads of constant functions as well as fields.
...
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6930005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7792 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-05 09:22:09 +00:00
fschneider@chromium.org
b4022f7b73
Fix bug in x64 >>> operator.
...
Whenever >>> produces a non-smi result, the binary op stub would
return a wrong result in case of a failed new-space allocation.
This also fixes the (flaky) sparse-array-reverse test which was failing
sometimes because of this.
BUG=v8:1359
TEST=mjsunit/sparse-array-reverse.js
Review URL: http://codereview.chromium.org/6927013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7790 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-05 08:17:31 +00:00
ager@chromium.org
4e85fab9f9
Fix overflow in arm simulator.
...
Don't copy 64 bits to a 32 bit value.
R=karlklose@chromium.org ,sgjesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6933009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7788 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-05 06:22:58 +00:00
ricow@chromium.org
03852da3b8
Remove extra debug line from Object.prototype.toString
...
Fixes mozilla failures
Review URL: http://codereview.chromium.org/6935020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-05 05:51:43 +00:00
ricow@chromium.org
e0eb110130
Reapply 7763, including arm and x64 variants.
...
The only difference to revision 7763 is the implementation in the
builtins file for arm and x64, plus a move of Array.prototype.toString
and Array.prototype.toLocaleString from should throw on null or
undefined to the non generic test cases in the function-call test (due
to us not currently supporting generic cases with these to functions)
Review URL: http://codereview.chromium.org/6928007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7786 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-05 05:21:30 +00:00
dslomov@chromium.org
6e4629a81c
Revert "This implements per-isolate locking and unlocking, including tests"
...
This reverts commit 1aa40d0c278e195e9e69dcf8b29a212aa1817c0b.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7785 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-04 22:35:42 +00:00
dslomov@chromium.org
d54fe47fad
This implements per-isolate locking and unlocking, including tests
...
BUG=
TEST=
Committed: http://code.google.com/p/v8/source/detail?r=7734
Review URL: http://codereview.chromium.org/6788023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7784 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-04 21:04:32 +00:00
vitalyr@chromium.org
4ca7b50990
Compare IC: add STRINGS state.
...
BUG=1340
Review URL: http://codereview.chromium.org/6937001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7783 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-04 18:30:37 +00:00
whesse@chromium.org
788db8aedc
Tiny refactoring - change compilation phase parameter for CopyForInlining from a boolean to an enum.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6913021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7782 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-04 15:00:04 +00:00
ager@chromium.org
82a04c7fdc
Add CallAsFunction method to the Object class in the API
...
Patch by Peter Varga.
BUG=v8:1336
TEST=cctest/test-api/CallAsFunction
Review URL: http://codereview.chromium.org/6883045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7781 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-04 13:03:08 +00:00
fschneider@chromium.org
23b770759d
Prepare push to trunk. Now working on version 3.3.5.
...
Review URL: http://codereview.chromium.org/6933004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-04 11:55:09 +00:00
sgjesse@chromium.org
dfed2ce8a3
Revert r7768
...
This broke the Chromium Windows shared build.
BUG=none
TEST=Windows shared build works when pushed to Chromium
Review URL: http://codereview.chromium.org/6932007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7777 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-04 11:12:06 +00:00
sgjesse@chromium.org
79fba38d6f
Fix the Windows shared build
...
R=fschneider@chromium.org
BUG=none
TEST=Windows shared build works when pushed to Chromium
Review URL: http://codereview.chromium.org//6932006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7776 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-04 11:10:49 +00:00
ager@chromium.org
24f19608d4
Actually revert "Add Call method to the Object class in the API"
...
Tests are failing in debug mode.
This also reapplies the change "Make Date and RegExp inherit from
Object in the API" that I accidentally reverted.
R=sgjesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6927009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7775 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-04 11:07:09 +00:00
ager@chromium.org
26c775da94
Revert "Make Date and RegExp inherit from Object in the API."
...
Tests are failing in debug mode.
R=sgjesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6930004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7774 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-04 10:51:07 +00:00
ager@chromium.org
b8cdecb517
Add Call method to the Object class in the API
...
Patch by Peter Varga.
BUG=v8:1336
TEST=cctest/test-api/CallAsFunction
Review URL: http://codereview.chromium.org/6883045
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-04 10:03:49 +00:00
ager@chromium.org
87f225936f
Make Date and RegExp inherit from Object in the API.
...
They are objects and the API inheritance hierarchy should reflect that.
R=sgjesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6929008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-04 07:28:27 +00:00
cira@chromium.org
5a9fa7a8c6
Change v8Locale to match proposal - constructor is different (takes settings object, not a plain string) and I've added derive method to it.
...
Added comments to i18n.js methods and properties, and util functions to check settings and locale validity.
Added LanguageMatcher class until ICU gets C implementation (in progress, but late for our current deadline). I added TODO to remove LanguageMatcher code.
TEST=Visit http://i18n.kaziprst.org/locale.html .
Review URL: http://codereview.chromium.org/6901141
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7768 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-03 20:43:51 +00:00
svenpanne@chromium.org
1b833ff35e
Additional minor cleanup regarding CallWrapper: Use the null object pattern.
...
Review URL: http://codereview.chromium.org/6909026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7767 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-03 15:12:40 +00:00
ricow@chromium.org
4d890da191
Revert 7763, missing implementation on x64 and arm for call and apply with null or undefined.
...
Review URL: http://codereview.chromium.org/6913024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7764 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-03 13:45:19 +00:00
ricow@chromium.org
2b730c2bf6
Don't exchange null and undefined with the global object in function.prototype.{call, apply} for natives.
...
This makes us compatible with firefox in throwing an exception when
call is invoked on a builtin with null as the this argument.
Review URL: http://codereview.chromium.org/6902104
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7763 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-03 13:19:04 +00:00
lrn@chromium.org
569574b7bf
Fix implementation of == to correctly convert Date objects to primitives.
...
Fix issue 1356
BUG=v8:1356
TEST=mjsunit/double-equals
Review URL: http://codereview.chromium.org/6912021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7761 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-03 12:15:14 +00:00
ager@chromium.org
eda2a0d4d2
Cleanup: use xorps to zero out an xmm register on ia32 too.
...
Encoding is one byte shorter.
R=lrn@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6910021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7760 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-03 12:00:54 +00:00
svenpanne@chromium.org
5197bff4f2
Unified CallWrapper and PostCallGenerator classes, the former is a
...
generalization of the latter. This makes CallWrapper architecture-independant,
so it can be pulled up into assembler.h, nuking 3 copy-n-paste classes. Only a
small improvement, but nevertheless...
Review URL: http://codereview.chromium.org/6893156
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-03 09:30:06 +00:00
fschneider@chromium.org
3e94ac952d
Change heuristics for deciding phi-representation types to use int32 more frequently.
...
Until now we conservatively chose a double representation if
at least one use occurs in a double operation. This causes performance
degradation in many cases where there are mixes uses (integer and double)
e.g.:
for (int i = 0; i < 10; i++) {
var t = i / 3.5;
a[i] = t;
}
where the use in i/3 requires a double, where as the keyed store requires i
as an integer.
For these cases we want to have i as an integer and convert it only before the
double division.
In order to avoid unconditional deoptimization in some rare cases, we check
phis if there is any conversion that will always fail when converting a
heap-number constant to int32.
Review URL: http://codereview.chromium.org/6905166
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7757 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-03 08:31:35 +00:00
kmillikin@chromium.org
d0fcbb4ece
Simplify include dependencies.
...
Try to make sure that accessors.h, data-flow.h, list-inl.h, and
scopeinfo.h are included only where needed, but without introducing
implicit dependencies.
Review URL: http://codereview.chromium.org/6903175
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-03 08:23:58 +00:00
lrn@chromium.org
d1411602a7
Don't allow whitespace after sign characters in parseInt.
...
BUG=v8:955
TEST=mjsunit/regress/regress-955
Review URL: http://codereview.chromium.org/6903171
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-03 07:11:17 +00:00
sgjesse@chromium.org
01707c7106
ARM: Changed the handling of compiletime CPU feature detection
...
Always use CpuFeaturesImpliedByCompiler() when selecting CPU features. This checks both for CAN_USE_ARMV7_INSTRUCTIONS and CAN_USE_VFP_INSTRUCTIONS and for GCC preprocessor symbols. This will support using the CAN_USE_XXX for a simulator build used for generating a snapshot followed by a crosscompile using -march= and -mfpu= for selecting the (minimal) target device CPU features. The snapshot will use instructions based on the CAN_USE_XXX whereas the target will at least use features based on both CAN_USE_XXX and -march= and -mfpu=, but will try runtime CPU feature detection a well looking for somethis better.
Remove the compiler based CPU feature detection from the OS::CpuFeaturesImpliedByPlatform() as it did not belong there. Also was already in the CpuFeaturesImpliedByCompiler().
Add the variable 'v8_can_use_vfp_instructions' to the GYP file which can be used to turn on CAN_USE_VFP_INSTRUCTIONS when building V8. I did not add any -mfpu= cflags for this, as there are several options here (e.g. vfp and neon).
R=erik.corry@gmail.com , karlklose@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//6904164
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7754 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-03 06:51:59 +00:00
ager@chromium.org
8aeaa5e90a
Implement API to disallow code generation from strings for a context.
...
R=sgjesse@chromium.org
BUG=v8:1258
TEST=test-api/AllowCodeGenFromStrings
Review URL: http://codereview.chromium.org/6905167
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7753 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-03 05:40:47 +00:00
ager@chromium.org
be15ea860d
Fix lint.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/6905168
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7752 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-02 15:12:50 +00:00
ager@chromium.org
4f8dc51e34
Make component=shared_library gyp build work for Linux.
...
Review URL: http://codereview.chromium.org/6902128
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7751 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-02 15:06:49 +00:00
ager@chromium.org
ccafbca61d
Use JSON.parse instead of eval for the debugger JSON protocol.
...
R=sgjesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6903172
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7748 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-02 14:20:34 +00:00
sgjesse@chromium.org
5b0f739408
Prepare push to trunk. We are now working on version 3.3.4
...
R=ager@chromium.org
Review URL: http://codereview.chromium.org/6902200
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7747 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-02 14:10:14 +00:00
whesse@chromium.org
014e42a81f
Fix unary sub IC heap number code on x64: an untagged double was pushed on the stack and GCd.
...
BUG=1352
TEST=mjsunit/math-abs
Review URL: http://codereview.chromium.org/6901150
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-02 12:55:44 +00:00
kmillikin@chromium.org
1af840ad4c
Be more discriminating about uses of the arguments object in optimized code.
...
Because we track the value of the arguments object, we need to check
values whenever plugged into a forbidden value context. It is not
enough to check at only variable references as we did previously.
R=fschneider@chromium.org
BUG=1351
TEST=regress-1351.js
Review URL: http://codereview.chromium.org/6902202
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7739 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-02 11:35:51 +00:00
vegorov@chromium.org
cf239c4ea8
Fix two bugs the LAllocator::FindOptimalSplitPos.
...
- It was calculating start_block and end_block incorrectly.
- It was not considering the case when end_block is a loop header itself when searching for the header of the outermost loop.
These bugs do not affect correctness of the allocation but can severely degrade it's quality (cause spills in loop bodies).
Review URL: http://codereview.chromium.org/6901148
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7737 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-02 07:47:10 +00:00
dslomov@chromium.org
7088aea3eb
Revert "This implements per-isolate locking and unlocking, including tests"
...
This reverts commit 76c78febb70e75b18214f5fe45de95c7fb515386.
This change has broken test-thread-termination/TerminateMultipleV8Threads
TBR=vitalyr
Review URL: http://codereview.chromium.org/6903154
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7735 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 22:16:45 +00:00
dslomov@chromium.org
f4c120d615
This implements per-isolate locking and unlocking, including tests
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6788023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 21:26:03 +00:00
svenpanne@chromium.org
b60baa0b70
Removed InvokeJSFlags enum, we already have InvokeFlag for the same purpose.
...
Review URL: http://codereview.chromium.org/6880321
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 20:07:41 +00:00
svenpanne@chromium.org
238349f2a7
Removed dead code: GenericUnaryOpStub is not used anymore, as a consequence, NegativeZeroHandling and UnaryOpFlags are dead, too.
...
Review URL: http://codereview.chromium.org/6903124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 17:49:53 +00:00
vitalyr@chromium.org
9af0a4e4a3
Fix windows build.
...
TBR=mnaganov@chromium.org
Review URL: http://codereview.chromium.org/6901125
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7730 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 16:26:37 +00:00
vitalyr@chromium.org
a9ea3f98b0
ll_prof: Reduce profiling hooks overhead from >400% to 25%.
...
Switched to using binary low-level log instead of the textual log used
by the ticks processor. The binary log contains code-related events,
code object names, and their bodies. When writing to the log we ask
glibc to use a larger buffer. To avoid complex processing of the
snapshot log (which is still textual) the serializer emits final
snapshot position to code name mappings that can be quickly be read
without replaying the snapshot log. (This might be useful for the
ticks processor.)
Review URL: http://codereview.chromium.org/6904127
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7729 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 16:06:25 +00:00
mmaly@chromium.org
796ac25a4f
Strict mode eval declares its locals in its own environment.
...
BUG=
TEST=strict-mode.js
Review URL: http://codereview.chromium.org/6883200
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 15:31:39 +00:00
mikhail.naganov@gmail.com
9a2cb3009c
Fix whitespace error after r7726
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7727 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 12:47:34 +00:00
mikhail.naganov@gmail.com
7a8996b626
Fix Linux builds after r7724
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 12:43:24 +00:00
sgjesse@chromium.org
1f96aa3772
ARM: Enhance the hardfloat support
...
The "simple" function with inline assembly for detecting hardfloat have been changed to handle compiling without VFP and with thumb.
The SCons setting for the float abi now follows then naming used by the GCC -mfloat-abi and soft has been added.
R=karlklose@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//6904126
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 12:13:46 +00:00
mikhail.naganov@gmail.com
ec58c05f4e
Add support for startup data (snapshot) compression.
...
This is for mobile platforms where application footprint size is
important. To avoid including compression libraries into V8, we assume
that the host machine have them (true for Linux), and rely on embedder
to provide decompressed data.
Currently, only snapshot data can be comressed. It is also possible to
compress libraries sources, but it is more involved and will be
addressed in another CL.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6901090
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7724 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 12:08:33 +00:00
whesse@chromium.org
cad92b4d33
Remove unused constructor BinaryOperation(Assignment* compound_assignment).
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6880312
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7723 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 11:25:01 +00:00
karlklose@chromium.org
03459506e8
ARM: Fix handling of return value of compare_doubles in the simulator.
...
Review URL: http://codereview.chromium.org/6904124
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 11:16:09 +00:00
whesse@chromium.org
4f41d895b0
Use type info for count operation in Crankshaft.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6880276
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 09:21:18 +00:00
lrn@chromium.org
f470cf2777
Handle join of sparse arrays with non-empty separator more efficiently.
...
BUG=v8:1028
Review URL: http://codereview.chromium.org/6902144
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 08:53:36 +00:00
sgjesse@chromium.org
00bc2db28f
ARM: Support hardfloat in SCons build and make it a build time setting
...
Add option armeabi to the SCons build for selecting the floating point variant to use. Also add externally defined CCFLAGS environment for all targets. Run test.py with option -S armeabi=hardfloat to test with hardfloat enabled.
Make selecting hardfloat EABI variant a build-time option instead of a runtime option.
Add a simple check of the EABI variant during V8 initialization to exit if the compilation was not configured correctly. The reason for this is that GCC does not provide a compile time symbol defining the EABI variant. This check is not fool-proof as it cannot check the compilation configuration used for the snapshot if any.
R=karlklose@chromium.org , erik.corry@gmail.com
BUG=none
TEST=none
Review URL: http://codereview.chromium.org//6905098
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7715 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 08:50:38 +00:00
sgjesse@chromium.org
122133e800
Improve modulo operation in lithium on x64.
...
This is the x64 porting of http://codereview.chromium.org/6816049/
Patch by: Yuqiang Xian from Intel
Review URL: http://codereview.chromium.org//6901091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7714 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 07:22:39 +00:00
danno@chromium.org
f6f5e5ce43
Fix build
...
TBR=ager@chromium.org
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 05:36:27 +00:00
danno@chromium.org
71f15faf70
Fix assert in KeyedLoadIC constructor
...
Don't assert when external array ICs are also handled by the KeyedLoadIC.
BUG=1346
TEST=none
Review URL: http://codereview.chromium.org/6893093
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7712 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-29 05:03:39 +00:00
svenpanne@chromium.org
fd5bff856e
Fixed compilation breakage due to warnings. TBR...
...
Review URL: http://codereview.chromium.org/6880286
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 21:02:14 +00:00
peter.rybin@gmail.com
e04dd7199e
LiveEdit: optimize substring comparison
...
Review URL: http://codereview.chromium.org/6899011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7710 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 20:24:47 +00:00
svenpanne@chromium.org
f7ecf95e95
Fixed build on Mac, where g++ is a bit too dumb to see that a variable is always initialized.
...
Review URL: http://codereview.chromium.org/6893105
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 20:11:39 +00:00
peter.rybin@gmail.com
265c362925
Support LiveEdit when standing on return operator
...
Review URL: http://codereview.chromium.org/6894014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7708 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 20:05:50 +00:00
svenpanne@chromium.org
e013d4f0a4
Type recording for unary ops
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7707 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 17:49:55 +00:00
vegorov@chromium.org
1c950e04cc
Fix missing writebarrier in ArraySplice builtin.
...
Review URL: http://codereview.chromium.org/6883227
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7706 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 16:03:40 +00:00
sgjesse@chromium.org
37f33a7087
Improve modulo operation in lithium on IA32.
...
Implement fast paths for the special cases like PowerOfTwo divisors
and the dividend being smaller than the divisor (non-negative).
BUG=v8:1314
Review URL: http://codereview.chromium.org//6816049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 14:58:45 +00:00
ager@chromium.org
34d1ea45d7
Fix broken cases in x64 disassembler.
...
R=whesse@chromium.org
Review URL: http://codereview.chromium.org/6893094
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7703 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 14:56:09 +00:00
karlklose@chromium.org
32732fbc86
Expose hasOwnProperty() through API.
...
BUG=http://code.google.com/p/v8/issues/detail?id=1342
TEST=test-api/HasOwnProperty
Review URL: http://codereview.chromium.org/6903059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7699 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 09:27:40 +00:00
kmillikin@chromium.org
bae61ba619
Sometimes avoid checking whether the receiver is an object in generated code.
...
In unoptimized code, use the version of the CallFunctionStub that does not
check whether its receiver is an object in all the cases where we statically
know that it is an object.
R=ager@chromium.org ,sgjesse@chromium.org
Review URL: http://codereview.chromium.org/6880268
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7698 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-28 09:03:15 +00:00
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
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
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
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
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
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
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
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
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
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
kmillikin@chromium.org
c25c2784d9
Relax assumptions about control flow in the hydrogen graph.
...
Previously we assumed that control was always live after visiting an
expression, and that control was live to both basic block targets of an
expression in a test context.
Now we allow any expression to exit the graph.
R=fschneider@chromium.org ,danno@chromium.org
Review URL: http://codereview.chromium.org/6839015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7601 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-13 11:24:06 +00:00
whesse@chromium.org
5a6ec1a46e
Fix optimized code for Math.round on ia32 platform.
...
Review URL: http://codereview.chromium.org/6838012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7600 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-13 10:32:05 +00:00
lrn@chromium.org
caee8a3ccf
Fix Math.round in runtime.cc and x64 optimized code.
...
Make math-round.js test check both normal and optimized version.
Add some cases to the tests.
BUG=v8:958
TEST=mjsunit/math-round
Review URL: http://codereview.chromium.org/6837018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7599 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-13 09:35:56 +00:00
ager@chromium.org
f7170df2af
Prepare push to trunk. Now working on version 3.3.0.
...
Review URL: http://codereview.chromium.org/6833021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7595 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-13 08:34:46 +00:00
karlklose@chromium.org
bb1fe3ed9c
Revert revision 7582.
...
The changes caused mozilla date test failures on ARM.
TBR=ager
Review URL: http://codereview.chromium.org/6833020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7594 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-13 08:00:59 +00:00
vitalyr@chromium.org
09dfc4b5d3
Add global setup for runtime profiler.
...
Whether it's enabled or not must not change while we're running. Let's
not waste time recomputing it. This also makes the VM state tracking
code slightly more lightweight.
Review URL: http://codereview.chromium.org/6825054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7593 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 19:15:53 +00:00
vitalyr@chromium.org
34d50b3d5c
Fit Representation and HType in one word to make HValue smaller.
...
Review URL: http://codereview.chromium.org/6813091
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7592 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 19:05:48 +00:00
cira@chromium.org
df453b1203
Moving JavaScript code from i18n-extension.cc into i18n.js file using
...
tools/js2c.py script.
Added new type I18N to natives.h enum.
Review URL: http://codereview.chromium.org/6825049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 18:19:40 +00:00
jkummerow@chromium.org
1d774ac5ca
Fix load/store of external float arrays on ARM
...
BUG=1323
TEST=mjsunit/regress/regress-1323.js, run with simulator=arm
Review URL: http://codereview.chromium.org/6822054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7590 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 15:20:26 +00:00
lrn@chromium.org
c0aa591bbb
X64: Tweak code generation slightly.
...
Uses a shorter opcode for movl and movb with immediates.
Make movl preferable to movq in Set(register, int64_t) and use Set in more places.
Review URL: http://codereview.chromium.org/6824074
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7589 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 13:20:51 +00:00
fschneider@chromium.org
fee9845599
Enable inlining of functions containing loops.
...
Review URL: http://codereview.chromium.org/6813107
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 10:27:09 +00:00
fschneider@chromium.org
4618b186ef
Change the list of statements that are inlineable into a black-list.
...
Before we had a white-list of things that we allow inside inlined functions.
This way we can enable new constructs one-by-one.
Review URL: http://codereview.chromium.org/6825042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 08:37:29 +00:00
lrn@chromium.org
a932441a0c
Cleanup of ScannerConstants, now named UnicodeCache.
...
The ScannerConstants class was originally static fields on the scanner class.
During creation of the stand-alone preparser and later isolates, it has been
moved into a separate class with a per-isolate instance.
It is used to hold caching unicode Predicate values.
This change renames the class to UnicodeCache, and passes a reference
to the instance down to methods that doesn't have an easy access to
an isolate (to avoid, e.g., having to do an Isolate::Current() for every
number parsed).
Review URL: http://codereview.chromium.org/6824071
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 08:27:38 +00:00
karlklose@chromium.org
72fff00e48
ARM: Add optimization for constant RHS in DoMulI.
...
Patch by ARM Ltd.
Review URL: http://codereview.chromium.org/6756033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7582 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 06:44:15 +00:00
sgjesse@chromium.org
af7804f3b7
ARM: Always enable ARMv7 when VFPv3 is enabled.
...
R=vegorov@chromium.org , rodolph.perfetta@gmail.com
BUG=v8:1317
TEST=
Review URL: http://codereview.chromium.org//6825037
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 06:12:45 +00:00
vitalyr@chromium.org
d26ba633a8
Fix retained object info leak.
...
Review URL: http://codereview.chromium.org/6813101
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7578 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 05:08:13 +00:00
dimich@chromium.org
13bfbe8226
Another attempt to fix Win build.
...
Review URL: http://codereview.chromium.org/6825061
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7577 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 00:49:30 +00:00
dimich@chromium.org
097b09bff3
Fix build borkage due to r7575
...
(landing for Dmitry Lomov)
Review URL: http://codereview.chromium.org/6823065
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7576 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-12 00:42:27 +00:00
vitalyr@chromium.org
d932b5f768
Do not rely on uniqueness of pthread_t
...
Patch by Dmitry Lomov.
pthreads implementations are free to reuse pthread_t (thread id) after
the thread has died. This change gets rid of ThreadHandle class and
replaces it with v8-managed thread identifiers.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-11 23:46:22 +00:00
antonm@chromium.org
0b30898379
Allow recursive messages reporting as it is already used.
...
Instead discard unhandled exceptions thown while running
message listeners.
Review URL: http://codereview.chromium.org/6820003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7574 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-11 16:16:52 +00:00
jkummerow@chromium.org
ed968b1042
Introduce runtime function %OptimizeFunctionOnNextCall to manually trigger optimization.
...
TEST=existing unit tests still pass
Review URL: http://codereview.chromium.org/6821009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-11 13:24:50 +00:00
karlklose@chromium.org
d8f0b3bea2
Prepare push to trunk. Now working on version 3.2.10.
...
Review URL: http://codereview.chromium.org/6820029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-11 12:14:53 +00:00