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
mmaly@chromium.org
eb1443eb5b
Fix build break on Mac.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6816012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7535 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-07 09:18:06 +00:00
fschneider@chromium.org
f983244124
Remove unnecessary AST node for ++ and -- operations.
...
Instead of adding an extra AST node we can just use an auxiliary
bailout id for named and keyed property count operations.
Review URL: http://codereview.chromium.org/6810015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-07 07:56:43 +00:00
mmaly@chromium.org
68482dbc10
Fix arm and x64 build break.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6808001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-06 22:47:14 +00:00
mmaly@chromium.org
76b5dc7bfb
Strict mode renamings.
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6804024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-06 20:20:31 +00:00
vitalyr@chromium.org
302037d44e
Make object groups and implicit references a bit more lightweight.
...
We can only call malloc/free once per group and we can avoid scanning
through a list of NULLs if we keep unprocessed groups in the beginning.
I also changed the internal representation of implicit references to
hold a handle to the parent (instead of a direct pointer). The
prologue callback must not trigger a GC, but it's better to be safe.
Review URL: http://codereview.chromium.org/6800003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-06 19:17:54 +00:00
sgjesse@chromium.org
e600d564e3
Add a missing handle for serialized scope info
...
R=vegorov@chromium.org
BUG=v8:1252
TEST=none
Review URL: http://codereview.chromium.org//6805013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7519 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-06 18:32:01 +00:00
yurys@chromium.org
c2e7beb952
Debugger: show local scope before with for functions created inside with block
...
Review URL: http://codereview.chromium.org/6804015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-06 17:54:39 +00:00
peterhal@chromium.org
e3d788329a
1309 fix
...
BUG=
TEST=
Review URL: http://codereview.chromium.org/6800018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7517 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-06 16:22:06 +00:00
vegorov@chromium.org
616dbf76cb
Always iterate outgoing arguments as a part of caller frame.
...
Change caller_sp() to always point to the place after outgoing arguments.
Change deoptimizer to use absolute stack slot addresses for deferred HeapNumber's materialization.
(This is reapplication of r7504 with fix for mozilla testsuite failures).
Review URL: http://codereview.chromium.org/6677164
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7516 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-06 14:23:27 +00:00
lrn@chromium.org
058d82a3df
X64: Allow the type recording binary op stub to create heapnumber results.
...
Review URL: http://codereview.chromium.org/6803010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-06 12:52:51 +00:00
vegorov@chromium.org
90df684330
Prepare push to trunk. Now working on version 3.2.9.
...
Review URL: http://codereview.chromium.org/6804008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-06 11:03:30 +00:00
sgjesse@chromium.org
6255476028
ARM: Add support load/store multiple VFP registers
...
Enter/exit frames with save doubles use these instructions instead of generating 16 load/store instructions.
R=karlklose@chromium.org , rodolph.perfetta@gmail.com
BUG=
TEST=
Review URL: http://codereview.chromium.org//6691057
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7509 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-06 09:06:23 +00:00
lrn@chromium.org
03fd56022b
Remove unused last_pc_ in AssemblerX64.
...
Remove unneeded checks for SSE2 in X64 code.
Remove an unneeded check for SSE3 where the X64 code doesn't use SSE3 features.
Review URL: http://codereview.chromium.org/6793040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-06 08:41:28 +00:00
vitalyr@chromium.org
38e328d469
Use placement new for zone objects in hydrogen.
...
Review URL: http://codereview.chromium.org/6794041
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-05 18:47:46 +00:00
vegorov@chromium.org
264615745a
Revert r7504.
...
Deoptimization infrastructure implicitly uses caller_sp related addressing (where caller_sp is expected to point below outgoing arguments).
TBR=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/6677160
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7505 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-05 18:46:06 +00:00
vegorov@chromium.org
6d59c1b674
Always iterate outgoing arguments as a part of caller frame.
...
Change caller_sp() to always point to the place after outgoing arguments.
Review URL: http://codereview.chromium.org/6720049
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-05 17:18:44 +00:00
fschneider@chromium.org
7ef5cec9ae
Remove environment length from HSimulate instructions.
...
It was only used in an ASSERT when reconstructing environments
at lithium translation time.
Review URL: http://codereview.chromium.org/6693062
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7501 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-05 09:55:18 +00:00
ricow@chromium.org
3dd575ec0d
Add inline non-transcendental cache version of log to lithium.
...
In addition, this change allows one additional level of inlining.
Review URL: http://codereview.chromium.org/6720017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-05 09:21:02 +00:00
mikhail.naganov@gmail.com
c9904976f9
Simplify isolates access during stack iteration (WAS: Move SafeStackFrameIterator::active_count_...)
...
While trying to fix Mac and Windows versions for this change:
http://codereview.chromium.org/6771047/ , I figured out, that we
already store an isolate in StackFrameIterator, so we can use it in
frame objects, instead of requiring it from caller.
I've changed iterators usage to the following scheme: whenever a
caller maintains an isolate pointer, it just passes it to stack
iterator, and no more worries about passing it to frame content
accessors. If a caller uses current isolate, it can omit passing it
to iterator, in this case, an iterator will use the current isolate,
too.
There was a special case with LiveEdit, which creates
detached copies of frame objects.
R=vitalyr@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6794019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7499 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-05 09:01:47 +00:00
ager@chromium.org
101413a0b6
Fix overlapping registers in external array stores on x64.
...
R=danno@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/6794047
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7498 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-05 07:57:35 +00:00
sgjesse@chromium.org
1244225ba8
Extend crankshaft support for global stores
...
All global stores are now supported in crankshaft by using the normal store IC when other optimizations are not possible due to the state of the global object.
R=fschneider@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org//6693066
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-04 15:03:34 +00:00
fschneider@chromium.org
71b2572547
Remove redundant data member from HChange instructions.
...
The target representation is already stored as part of HValue::representation().
Review URL: http://codereview.chromium.org/6794014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-04 08:57:21 +00:00
kmillikin@chromium.org
7dd6bb9144
Prepare push to trunk. Now working on version 3.2.8.
...
R=danno@chromium.org
Review URL: http://codereview.chromium.org/6693060
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-04 08:16:54 +00:00
vitalyr@chromium.org
6c5c823830
Support placement new syntax for zone objects and start using it in the parser.
...
Review URL: http://codereview.chromium.org/6771058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-04-04 06:29:02 +00:00