verwaest@chromium.org
0bff3fa74b
Remove duplicate way of encoding the holder in the flags.
...
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/24316002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-20 11:22:23 +00:00
mstarzinger@chromium.org
16a22a96c3
Handlify JSReceiver::SetProperty and friends.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/23601031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16758 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-17 11:01:43 +00:00
verwaest@chromium.org
223ac69ff6
Rename StubType MAP_TRANSITION to TRANSITION.
...
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/24120007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16726 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-16 09:30:43 +00:00
verwaest@chromium.org
e9c4a49866
Reland Handle non-JSObject heap objects using slow-path IC stub guarded by the map.
...
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23578030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-12 22:04:04 +00:00
verwaest@chromium.org
ff412d8c37
Revert "Handle non-JSObject heap objects using slow-path IC stub guarded by the map."
...
TBR=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23475039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16692 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-12 16:57:37 +00:00
verwaest@chromium.org
f375e0514b
Handle non-JSObject heap objects using slow-path IC stub guarded by the map.
...
BUG=chromium:280632
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/23691056
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16689 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-12 16:12:04 +00:00
mstarzinger@chromium.org
34edb73332
Refactoring PropertyCallbackInfo & FunctionCallbackInfo, step 1.
...
The goal is to unify PropertyCallbackInfo and FunctionCallbackInfo so that they
contain the same fields.
The field order will be:
holder
isolate
return value default value
return value
data
this
This step 1 reorders the PropertyCallbackInfo fields.
BUG=
R=dcarney@chromium.org , mstarzinger@chromium.org
Committed: http://code.google.com/p/v8/source/detail?r=16673
Review URL: https://codereview.chromium.org/23620036
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-12 14:32:14 +00:00
mstarzinger@chromium.org
e6d10e4243
Revert "Refactoring PropertyCallbackInfo & FunctionCallbackInfo, step 1."
...
TBR=marja@chromium.org
Review URL: https://codereview.chromium.org/23431019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-12 10:03:56 +00:00
mstarzinger@chromium.org
541840f8c1
Refactoring PropertyCallbackInfo & FunctionCallbackInfo, step 1.
...
The goal is to unify PropertyCallbackInfo and FunctionCallbackInfo so that they
contain the same fields.
The field order will be:
holder
isolate
return value default value
return value
data
this
This step 1 reorders the PropertyCallbackInfo fields.
BUG=
R=dcarney@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/23620036
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-12 09:09:39 +00:00
mstarzinger@chromium.org
ebbd9c8ed7
Revert "Unify computation of load stubs in stub cache."
...
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/24095005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16661 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-11 16:27:41 +00:00
mstarzinger@chromium.org
45a65d870d
Unify computation of load stubs in stub cache.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/23647011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16660 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-11 15:44:09 +00:00
mstarzinger@chromium.org
5dc202d274
Revert "Handlify JSObject::AddProperty method" for performance.
...
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/23464069
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-11 13:42:57 +00:00
mstarzinger@chromium.org
c570640334
Handlify JSObject::AddProperty method.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/23883007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16647 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-11 11:00:36 +00:00
dcarney@chromium.org
cc2257b92a
move HEAP to /test
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23468021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-11 07:14:41 +00:00
dcarney@chromium.org
3a3a27b2ee
store ics for js api accessors
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23549019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16571 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-06 11:31:25 +00:00
dcarney@chromium.org
d208d048ac
remove most Isolate::Current asserts
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23493019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 11:27:22 +00:00
dcarney@chromium.org
04c1b38d84
load ics for js api accessors
...
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23984002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 11:18:52 +00:00
dcarney@chromium.org
215ae8aa6d
revert 16543 for breaking windows build
...
load ics for js api accessors
TBR=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23819021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 10:21:29 +00:00
dcarney@chromium.org
11af95d749
load ics for js api accessors
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23699002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-05 08:34:17 +00:00
dcarney@chromium.org
166b6d0747
remove old style callbacks
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23513004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-27 11:47:52 +00:00
danno@chromium.org
ca9a3c71a1
Remove platform-specific dead code for KeyedStores
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/22745003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-19 22:12:46 +00:00
bmeurer@chromium.org
709012021a
The compiled_transitions flag was enabled for quite some time now and seems to work out quite well, so time has come to remove the obsolete code paths and remove the unused methods.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18034024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:12:16 +00:00
verwaest@chromium.org
6b83c868f0
Convert CONSTANT_FUNCTION to CONSTANT
...
R=yangguo@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19485008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-24 12:34:50 +00:00
verwaest@chromium.org
46ca825561
Avoid repeated rewrites of global store to constant IC due to store of same value.
...
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19663007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15806 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-22 14:15:58 +00:00
bmeurer@chromium.org
410b4b2db4
Reland "Turn ElementsTransitionAndStore stub into a HydrogenCodeStub".
...
Fix the invalid array length check, replacing it with a check of
the elements pointer similar to TransitionElementsKindStub.
Refactor common code from ElementsTransitionAndStoreStub and TransitionElementsKindStub into BuildTransitionElementsKind() helper method.
Add test case for the MD5 computation that used to crash before,
and a small test case for the specific issue.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/19367003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15713 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 11:37:20 +00:00
ulan@chromium.org
b75063bea8
Do not call reinterpret_cast when converting from NULL.
...
If NULL is a nullptr (such as on my FreeBSD system), it is not possible to
use reinterpret_cast to convert it to another pointer. Plus, just using NULL
directly achieves the same effect.
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/19388005
Patch from Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15705 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 08:46:44 +00:00
danno@chromium.org
5713ca0d8f
Revert 15635: Turn ElementsTransitionAndStore stub into a HydrogenCodeStub
...
Causes breakage in crypto-(sha1|md5) SunSpider
TBR=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/19214002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-15 15:23:52 +00:00
bmeurer@chromium.org
6c13f097d6
Turn ElementsTransitionAndStore stub into a HydrogenCodeStub.
...
R=danno@chromium.org , mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18881004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-11 14:29:00 +00:00
verwaest@chromium.org
a9fd01d567
- Makes a common superclass for Load and Store stub compiler.
...
- Splits all non-normal Store ICs into handler and IC.
- Ensures monomorphic store ICs go polymorphic.
- Feeds polymorphic type feedback into count operation.
R=ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/14142005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 08:22:41 +00:00
danno@chromium.org
345cc98a25
Generate StoreGlobal stubs with Hydrogen
...
- Constants globals are inlined into Hydrogen code using code dependencies that invalidate the Crankshafted code when global PropertyCells or the global object change.
- The more general case generates code that is just as good as the hand-written assembly stubs on all platforms.
R=rossberg@chromium.org , ulan@chromium.org
Committed: http://code.google.com/p/v8/source/detail?r=15419
Review URL: https://codereview.chromium.org/16925008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 10:34:02 +00:00
yangguo@chromium.org
02674ee414
Keep two empty lines between declarations for cpp files
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18509003
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:52:11 +00:00
yurys@chromium.org
678c9dc940
Remove #include "cpu-profiler-inl.h" from v8.h
...
This significantly reduces amount of files to be recompiled after changes in cpu-profiler.h and its dependencies.
BUG=None
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/18522004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15482 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-03 15:39:18 +00:00
danno@chromium.org
77c20c30a3
Revert r15419: "Generate StoreGlobal stubs with Hydrogen"
...
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/18357004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15427 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 15:12:21 +00:00
danno@chromium.org
a3bce19868
Generate StoreGlobal stubs with Hydrogen
...
- Constants globals are inlined into Hydrogen code using code dependencies that invalidate the Crankshafted code when global PropertyCells or the global object change.
- The more general case generates code that is just as good as the hand-written assembly stubs on all platforms.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/16925008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15419 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-01 13:22:13 +00:00
bmeurer@chromium.org
9e0f0a73dc
Get rid of ZoneScope completely.
...
There's no need to differentiate between an actual Zone and its
scope. Instead we bind the lifetime of the Zone memory to the
lifetime of the Zone itself, which is way easier to understand
than having to dig through the code looking for zone scopes.
Depends on https://codereview.chromium.org/17826004/
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17827005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-26 13:36:16 +00:00
yurys@chromium.org
c7b3ef0e05
Make sure ExternalCallbackScope is always created when VM state changes to EXTERNAL
...
ExternalCallbackScope is used to let CPU profiler know which API callback is being executed. Whenever such callback is called we should create VMState<ETERNAL> and ExternalCallbackScope. This patch fixes several places where VMState<ETERNAL> went without ExternalCallbackScope.
BUG=244580
R=dcarney@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/17059005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 14:47:35 +00:00
mvstanton@chromium.org
c70b41684d
Use type feedback for Array (non-constructor) call sites.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/17155010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15201 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 09:25:24 +00:00
danno@chromium.org
61a23ceb4d
Refactor only: Rename JSGlobaPropertyCell to PropertyCell
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/17064002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 16:06:12 +00:00
danno@chromium.org
1b89cbf817
Separate Cell and PropertyCell spaces
...
This makes it possible to store additional information on property cells, for example Type and optimized Code dependencies.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/16631002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 15:03:44 +00:00
olivf@chromium.org
946ea53264
use compare nil ic only for non-strict equality. strict-equality only has one check and cannot deopt. should therefore not be part of the stub.
...
BUG=
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/16732002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 15:47:23 +00:00
olivf@chromium.org
3a26dda780
revert accidental dcommit
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 15:43:40 +00:00
olivf@chromium.org
73b7ab9ae6
remove equality kind from compare nil ic
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 15:30:02 +00:00
dcarney@chromium.org
b12e6a9c1e
adjust assertions for addition of default value
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/16136012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 09:35:47 +00:00
verwaest@chromium.org
5e8679beea
Remove the optimized construct stub.
...
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15993016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-05 08:43:25 +00:00
mstarzinger@chromium.org
f8db2414f2
Deprecate FACTORY helper macro.
...
This removes the FACTORY helper macro to avoid accidental TLS access
when using the factory. Most internal code has access to the Isolate by
now whereas tests which are not performance critical still heavily use
TLS access through explicit Isolate::Current() calls.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/16337005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-04 10:30:05 +00:00
olivf@chromium.org
7aa74c3dc5
fix some names in compare nil ic
...
The compare nil ic introduces a mechanism called lightweight miss. The
idea is to insert a direct call to the miss handler instead of going
through the deopt routine. This can be use for uninitialized stubs, to
directly jump to the runtime.
This cl
1. Cleans up naming
2. localizes the lightweight miss functionality on the only user (compare nil ic)
3. fixes DoCodegen, to actually call the correct method (uninitialized vs initialized)
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/15806005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14798 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-24 11:44:55 +00:00
titzer@chromium.org
94b4240f5c
Introduce ObjectAccess, which is used by LoadNamedField and StoreNamedField to denote what parts of an object are referred to by a given load or store. Refactor HGraphBuilder to use ObjectAccess, which removes the need to manually set GVN flags and simplifies the code as well.
...
Review URL: https://codereview.chromium.org/14284010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14791 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-24 08:38:21 +00:00
verwaest@chromium.org
8fed3da4a4
Zap map value in the stub-cache on clear.
...
The empty_string is a valid key for keyed loads and stores.
BUG=
R=mstarzinger@chromium.org
Review URL: https://chromiumcodereview.appspot.com/15565002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14732 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-21 12:59:48 +00:00
dcarney@chromium.org
881476a7af
new style of property/function callbacks
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12494012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-21 06:36:24 +00:00
olivf@chromium.org
c3dde4bd9d
Encapsulating Type information in the CompareICStub
...
Encapsulate type information in a convenient wrapper instead of storing it in a naked bitfield. This especially facilitates transitioning to a new state and converting from/to the extraICState representation. Additionally cleaning up ToBooleanICStub::Types for consistency.
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/14862009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14704 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-16 10:59:17 +00:00