ricow@chromium.org
e0c7d3cf08
Run array-length less times to make the builder green.
...
We still get this method optimized even without --always-opt flag.
Review URL: http://codereview.chromium.org/6719029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-28 08:51:08 +00:00
vitalyr@chromium.org
1ae2ea08b9
Remove more TLS hurting Dromaeo DOM.
...
Patch by Dmitry Lomov.
Review URL: http://codereview.chromium.org/6745029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7380 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-28 08:44:30 +00:00
ricow@chromium.org
fb6d7e17df
Follow jsc on not throwing when trying to add a property to a non-extensible object.
...
This change makes us compatible with Safari on not throwing when trying to add a property to a non-extensible object.
Review URL: http://codereview.chromium.org/6712059
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7379 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-28 06:11:08 +00:00
ricow@chromium.org
67f20c4d95
Set optimizable to false on code object if shared function info says so.
...
Because we might throw away code when doing code flushing we need to
set the optimizable flag to false in CompileLaze if this has been set
on the shared function info. This is the only place where this can
happen, since we always exchange the code with the laze compile stub
when doing code flushing.
The comment in AbortAndDisable actually states that this is already
the case (and that comment should now be ok).
Review URL: http://codereview.chromium.org/6685044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-28 05:57:27 +00:00
vitalyr@chromium.org
7a74560fcc
Fast TLS support on mac.
...
Review URL: http://codereview.chromium.org/6724028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7377 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-27 18:40:48 +00:00
vitalyr@chromium.org
39faabf198
Add files missing from last commit.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7376 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-27 16:18:34 +00:00
vitalyr@chromium.org
963a75cc09
Fast TLS support.
...
This patch adds common infrastructure for fast TLS support and
implementation on win32. More implementations will be added soon.
Fast TLS is controlled by V8_FAST_TLS define which is enabled by
default in our gyp and scons builds. The scons build has
fasttls={on,off} option so that we can see the effects of slow TLS
when needed.
Review URL: http://codereview.chromium.org/6696112
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7375 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-27 16:14:20 +00:00
vitalyr@chromium.org
b675cfecc8
Remove unneeded TLS reads from v8::Null() and friends.
...
Patch by Dmitry Lomov.
Code review: http://codereview.chromium.org/6737003/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7374 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 14:09:14 +00:00
lrn@chromium.org
40f9a7db8e
Fix test that can fail for small denormals.
...
Review URL: http://codereview.chromium.org/6736027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7373 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 14:03:42 +00:00
lrn@chromium.org
1a15a9e6a9
Fix typo in math-sqrt.js
...
Review URL: http://codereview.chromium.org/6696109
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7372 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 13:48:17 +00:00
vitalyr@chromium.org
62c512e436
Remove TLS read from ON_BAILOUT.
...
Patch by Dmitry Lomov.
Original review: http://codereview.chromium.org/6731030/
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6713128
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7370 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 13:32:06 +00:00
sgjesse@chromium.org
3925045f70
Don't rely on C++ object padding across platforms
...
The use of sizeof on FrameDescription to get to the additional allocated memory for the frame content relies on the padding of the FrameDescription. On IA32 Linux the FrameDescription is not padded but on ARM Linux it is padded to become 8 byte aligned. With a snapshot generated with the ARM simulator on IA32 Linux that contains one or more of the deoptimization tables the deoptimization did not work as the access to the frame content was one off between the C++ code and the generated code.
R=ager@chromium.org
Review URL: http://codereview.chromium.org/6744004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7369 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 13:26:55 +00:00
lrn@chromium.org
0c6fbad874
Add more tests to mul-exhaustive for constant left/right operands.
...
Make MJSUnit able to distinguish 0 and -0.
Review URL: http://codereview.chromium.org/6688062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7368 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 13:24:20 +00:00
ager@chromium.org
94c1058ba9
Cleanup more isolate usage in ia32 files.
...
Review URL: http://codereview.chromium.org/6696107
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 13:21:30 +00:00
vegorov@chromium.org
b97fc27c93
Check for SSE2 support in FullCodeGenerator::EmitMathPow.
...
Do not emit call to the MathPowStub when SSE2 is not available because it requires SSE2.
Review URL: http://codereview.chromium.org/6736006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7366 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 12:51:32 +00:00
lrn@chromium.org
354ee24eca
Fix prettyprinter for --print-ast option.
...
Was broken since isolates merge.
Review URL: http://codereview.chromium.org/6676144
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 11:53:29 +00:00
danno@chromium.org
f4e06e8a0b
Fix ARM external array crankshaft bailout
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6730054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 11:16:29 +00:00
ager@chromium.org
1a9e8d12b9
Correct order of arguments to CHECK_EQ in an API test.
...
R=karlklose@chromium.org
BUG=1275
TEST=
Review URL: http://codereview.chromium.org/6713125
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7361 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 10:34:39 +00:00
ager@chromium.org
cdf65ca087
Reimplement the padding of relocation information for lazy deoptimization on ia32.
...
The previous implementation attempted to keep track of the needed
relocation size for deoptimization while generating the optimized
code. That was error prone. This patch moves the relocation resizing
to the deoptimizer as the last step of creating an optimized code
object.
The down side to this approach is that two relocation information byte
arrays are created for all optimized functions that do not have enough
relocation space for lazy deoptimization.
R=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/6730050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 10:29:34 +00:00
fschneider@chromium.org
6fadb5257f
Fix hydrogen statistics output when no code gets optimized.
...
In that case print 0 instead of NaN for normalized time and bytes allocated.
R=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/6696070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 10:02:42 +00:00
sgjesse@chromium.org
3a1c4d9b78
mprove code generation for DoAddI, DoSubI and DoBitI when the right hand
...
side is a constant.
TEST=none
BUG=none
Patch by Rodolph Perfetta from ARM Ltd.
Review URL: http://codereview.chromium.org/6730029/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 07:41:35 +00:00
danno@chromium.org
fbbace7fbe
Fix build
...
BUG=none
TEST=none
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6732038
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 22:30:53 +00:00
danno@chromium.org
ea45f6719e
Support external arrays in Crankshaft
...
Add specialized hydrogen and lithium instructions to support loading and storing to external arrays.
Review URL: http://codereview.chromium.org/6656001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 22:14:15 +00:00
vitalyr@chromium.org
401b308778
Allow calling stats API functions before we have an isolate.
...
Review URL: http://codereview.chromium.org/6733030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 19:05:49 +00:00
vitalyr@chromium.org
aa0dfc8aeb
Get rid of more TLS fetches in API implementation.
...
Patch by Dmitry Lomov.
Original review: http://codereview.chromium.org/6715016/
TBR=dimich
Review URL: http://codereview.chromium.org/6730031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 18:49:45 +00:00
lrn@chromium.org
8b866d9c87
Fix bug in test-macro-assembler-x64 which is the probable cause for hanging on Win64.
...
Review URL: http://codereview.chromium.org/6733024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 13:01:16 +00:00
lrn@chromium.org
c26f2c32f9
Implemented FastAsciiStringJoin in X64 full codegen.
...
Review URL: http://codereview.chromium.org/6729016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 12:24:28 +00:00
fschneider@chromium.org
e6cbf659d1
Fix bug that caused invalid code motion for certain loads instructions.
...
The dependency flags of instructions depending on a previous check have to
be a super-set of the flags of the check instructions.
Review URL: http://codereview.chromium.org/6730025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 11:37:24 +00:00
sgjesse@chromium.org
aec7de9238
Fix wording in comment
...
Review URL: http://codereview.chromium.org/6676111
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 11:19:27 +00:00
ager@chromium.org
a7d44c49a5
Add regression test.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 11:03:08 +00:00
sgjesse@chromium.org
b05152a2a4
Make V8 build with the chromium shared library build
...
Fix the shell to not use functions from the v8::internal namespace when building with V8 in a shared library.
Remove the v8_preparser library. The dependencies for this target needs to be resolved after isolates have landed.
Review URL: http://codereview.chromium.org/6696067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 10:54:23 +00:00
fschneider@chromium.org
7d8e6c929d
Enable GVN for polymorphic loads by not expanding them at the HIR level.
...
This change adds a new IR instruction for polymorphic loads. It performs
map compares and loads in one IR instruction instead of splitting each
load into a graph of map-compares and field loads.
The advantage is a smaller IR and less basic blocks, plus it allows to
do GVN on polymorphic loads.
Review URL: http://codereview.chromium.org/6708085
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 10:11:51 +00:00
mmaly@chromium.org
956bd6f7bf
Enable V8 test bindings for test262 ietestcenter.
...
Review URL: http://codereview.chromium.org/6711063
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 21:36:42 +00:00
ager@chromium.org
363ef7f750
Ensure enough space for lazy deoptimization relocation information.
...
Was not done for runtime calls and for recursive calls.
Only ia32 for now. We need to refactor x64 and look into arm as well.
R=sgjesse@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6728001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 15:33:49 +00:00
vitalyr@chromium.org
1dc8f7edb3
Store HValue uses in a custom small list structure.
...
This saves about 700K of zone allocation when compiling the V8
benchmark suite.
Review URL: http://codereview.chromium.org/6707001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 14:44:19 +00:00
ager@chromium.org
7f7a91b1d3
Cleanup of Isolate::Current() usage in api.cc.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6705024
Patch from Peter Varga <pvarga@inf.u-szeged.hu>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 14:07:52 +00:00
ager@chromium.org
1bdc8031fa
Introduce accessors on builtins instance and use them to avoid TLS access when getting builtins.
...
R=vitalyr@chromium.org
Review URL: http://codereview.chromium.org/6717018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 13:40:07 +00:00
ager@chromium.org
feac1ff9dd
Fix COUNTERS use in test-serialize.
...
Review URL: http://codereview.chromium.org/6705023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 12:07:23 +00:00
sgjesse@chromium.org
36829b3c2b
Change bleeding edge version to candidate
...
R=ager@chromium.org
Review URL: http://codereview.chromium.org/6723015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 11:41:45 +00:00
ager@chromium.org
4f5de28a9b
Avoid TLS access for counters.
...
Get rid of the COUNTERS macro and fetch the counters from a locally
stored isolate instead.
R=karlklose@chromium.org
Review URL: http://codereview.chromium.org/6723014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 11:13:07 +00:00
lrn@chromium.org
6945a1241a
Fix compile failure on Win64.
...
Review URL: http://codereview.chromium.org/6727021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 11:12:34 +00:00
danno@chromium.org
88854cd712
Remember and reuse derived map for external arrays
...
Ensure that all objects that had the same map before attaching an external array have the same map once the external array is attached.
BUG=75639
TEST=fast/canvas/webgl/uninitialized-test.html
Review URL: http://codereview.chromium.org/6685073
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 09:57:12 +00:00
ager@chromium.org
a12e07999f
Irregexp Interpreter build fix.
...
BUG=1266
TEST=
Review URL: http://codereview.chromium.org/6727018
Patch from Peter Varga <pvarga@inf.u-szeged.hu>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 09:20:08 +00:00
sgjesse@chromium.org
7de048de02
Prepare push to trunk. We are now working on 3.2.5.
...
Review URL: http://codereview.chromium.org/6723012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 09:06:13 +00:00
lrn@chromium.org
a224db3a50
X64: Optimize access to external references.
...
Access to an ExternalReference in non-serializable code will try to use
an offset relative to the root-array register.
Since the root-array is in the Heap object, and the Heap object is in
the Isolate object, there's a good chance that any external data field
is within a 32-bit offset of the root array register.
It falls back on the original behavior if the serializer is enabled,
if the root register isn't initialized or if the offset is not representable
as a 32-bit value.
Review URL: http://codereview.chromium.org/6716018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 09:05:13 +00:00
ager@chromium.org
d5359e338a
Cleanup of FACTORY macro usage in api.cc.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6725014
Patch from Peter Varga <pvarga@inf.u-szeged.hu>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 09:02:15 +00:00
mmaly@chromium.org
7346fbba81
Implement poison pill for non-strict mode function.caller
...
when caller is strict mode function.
Review URL: http://codereview.chromium.org/6713059/
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 03:45:48 +00:00
vitalyr@chromium.org
41c7632a41
Some Isolate usage cleanups in objects.{h,cc}.
...
Review URL: http://codereview.chromium.org/6723001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 19:15:02 +00:00
dimich@chromium.org
bb7f8fbec6
Cleanup of Isolate usage (guided by SunSpider profiling)
...
Review URL: http://codereview.chromium.org/6718023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 18:44:32 +00:00
podivilov@chromium.org
41f30cac90
Fix crash in Debug::SendCommand.
...
R=vitalyr@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6715029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 18:02:23 +00:00