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
mikhail.naganov@gmail.com
576660e182
Fix x64 build after r7567
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-11 11:49:55 +00:00
mikhail.naganov@gmail.com
690093effe
Mark single-argument inline constructors as 'explicit'.
...
There is currently a bug in cpplint.py hiding this problem.
R=sgjesse@chromium.org
BUG=1304
TEST=none
Review URL: http://codereview.chromium.org/6820028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-11 11:38:34 +00:00
fschneider@chromium.org
544a436425
Remove code from the deprecated GenericBinaryOpStub.
...
All platforms are now using the TypeRecordingBinaryOpStub.
I also removed the ARM IntegerModStub which was called from
the GenericBinaryOpStub.
Review URL: http://codereview.chromium.org/6826032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-11 09:39:21 +00:00
sgjesse@chromium.org
75759805a9
ARM: Remove support for ABI prior to EABI
...
The support for the old ABI is known to be broken and has been deprecated for some time now. Removed the instructions for loading and storing co-processor registers as they where only used to support the old ABI.
R=karlklose@chromium.org
BUG=v8:1316
TEST=
Review URL: http://codereview.chromium.org//6822025
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-11 09:04:30 +00:00
sgjesse@chromium.org
a700211937
ARM: Fix wrong fall through handling
...
Looks like a copy/paste mistake.
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org//6826031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7564 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-11 08:59:29 +00:00
vitalyr@chromium.org
c53727f591
Fix JS ratio computation on startup.
...
Review URL: http://codereview.chromium.org/6826026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-10 08:29:18 +00:00
mmaly@chromium.org
164e3a4173
Strict mode fixes.
...
- mutual inlining strict and non-strict functions in crankshaft.
- assignment to undefined variable with eval in scope.
- propagation of strict mode through lazy compilation.
BUG=
TEST=test/mjsunit/strict-mode.js test/mjsunit/strict-mode-opt.js
Review URL: http://codereview.chromium.org/6814012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-08 14:30:10 +00:00
lrn@chromium.org
ce5500e639
X64: Convert HeapNumbers that contain valid smi values to smis in binop-stub.
...
When the TypeRecordingBinaryOpStub expect smi values as input, they might
sometimes come as HeapNumbers. The transition code will detect the heap numbers
as holding values that are valid smi values, and will not change the expectations.
However, the stub didn't handle HeapNumbers and always tried to transition again.
Review URL: http://codereview.chromium.org/6812046
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-08 12:34:00 +00:00
sgjesse@chromium.org
3ba56badb3
ARM: Fix a crash bug in code for %_IsStringWrapperSafeForDefaultValueOf
...
Turned out out that the setting of bit Map::kStringWrapperSafeForDefaultValueOf in Map::kStringWrapperSafeForDefaultValueOf was not done on the map but in some other memory location causing crashes.
R=vegorov@chromium.org
BUG=none
TEST=mozilla/data/js1_2/String/slice.js (crashed only on ARM hardware)
Review URL: http://codereview.chromium.org//6816054
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-08 11:37:30 +00:00
vegorov@chromium.org
1a3bbebade
Fix compilation with gdbjit=on.
...
Ensure mutual exclusion on access to GDBJITInterface internal structures to make it work correctly with several isolates.
Review URL: http://codereview.chromium.org/6816053
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7557 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-08 11:25:19 +00:00
yurys@chromium.org
684aa3628f
Fix some presumbmit failures.
...
Review URL: http://codereview.chromium.org/6801070
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7554 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-08 10:02:01 +00:00
yurys@chromium.org
9e181c5b4f
Report stack overflow exceptions to V8 message listeners
...
Stack overflow exceptions like other JavaScript exceptions should be reported to listeners added via V8::AddMessageListener
Review URL: http://codereview.chromium.org/6816021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-08 09:39:45 +00:00
fschneider@chromium.org
3dbbb3d771
Add ToBoolean-conversion of constants in Crankshaft and use it when generating a branch based on a constant.
...
Review URL: http://codereview.chromium.org/6801050
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-08 06:54:50 +00:00
vitalyr@chromium.org
15b2573bd9
Fix auto suspension of the sampler thread.
...
BUG=http://crbug.com/78267
Review URL: http://codereview.chromium.org/6801060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7549 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-07 20:57:07 +00:00
antonm@chromium.org
8122f974d8
Make exception thrown via v8 public API propagate to v8::TryCatch as JS thrown exceptions do.
...
Correctly process failures which can be returned by Object::GetProperty
when performing GetRealNamedProperty* queries.
Callback properties can produce exceptions so we need to wrap access to them
into exception checks. However, despite of many other methods with exception
checks, property access doesn't mandatroy go via JavaScript and hence we
need to inject code to propagate exception to public API TryCatch handlers.
Review URL: http://codereview.chromium.org/6685087
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7548 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-07 19:52:24 +00:00
ricow@chromium.org
cf3789a6e1
Fix win64 compile failure.
...
Review URL: http://codereview.chromium.org/6810021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-07 16:10:56 +00:00
whesse@chromium.org
1bfa106d20
oops
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-07 15:01:50 +00:00
danno@chromium.org
7f288c3a00
Fix cow fixed array map check in optimized arm code.
...
R=ager@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6814016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-07 15:01:20 +00:00
whesse@chromium.org
85363049ac
Restart AST node numbering when we enter a function.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6691058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-07 14:45:34 +00:00
ager@chromium.org
95c76ed464
Remove some dead code.
...
- virtual-frame*
- register-allocator*
- jump-target*
- most of codegen*
- AstOptimizer and fields on AST
There is a lot of additional cleanup that we should do but this gets
rid of a lot.
R=kmillikin@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6811012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-07 14:42:37 +00:00
vegorov@chromium.org
8a8d3bbbee
In LCodeGen::DoDeferredLInstanceOfKnownGlobal emit safepoint with registers for the call to stub.
...
Review URL: http://codereview.chromium.org/6793017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-07 13:32:45 +00:00
peterhal@chromium.org
c9daea09b9
Fix --print-code-stubs during VM initialization
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6815007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7539 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-07 11:29:40 +00:00
lrn@chromium.org
39ac44216e
Fix bad deoptimization tests for double-to-int conversion.
...
Deopted on zero result, not just bad cvttsi2sd conversion.
Add inline floating point result for SHR in Smi TypeRecordingBinaryOpStub.
Small optimizations.
Adding rightshift to case handled by floating point result in type-recording binary op stub.
Review URL: http://codereview.chromium.org/6801040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-07 10:44:39 +00:00
danno@chromium.org
fa69fd0817
Fix opmitized external array access for compound assignments and count operations, also implement missing ARM typed array Hydrogen loads and stores.
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6805005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7536 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-07 09:51:25 +00:00