yangguo@chromium.org
667f15a104
Fix serializing ICs.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/587213002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-29 07:14:05 +00:00
mvstanton@chromium.org
6bb1340515
Make KeyedLoads from a sloppy arguments array use a handler.
...
Before, a custom stub was installed.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/546683003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-22 13:23:27 +00:00
mvstanton@chromium.org
eca5875b9d
Convert KeyedLoad indexed interceptor case to a Handler.
...
Currently, KeyedLoads on objects with indexed interceptors are handled with a
special stub. Instead, key on the map and handler mechanism for more uniform
treatment.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/575373004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-18 13:28:32 +00:00
yangguo@chromium.org
a49ac519c8
Serialize code stubs using stub key.
...
Also add some tracing to the code serializer.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/556243005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-17 12:50:17 +00:00
mvstanton@chromium.org
a4176d2052
Removing ic.h from code-stubs.h
...
CodeStubs use state types defined in ic.h, but this has the unfortunate effect of spreading ic.h all over the place. Instead, define these shared state types in ic-public.h and allow ic.h to concern itself with internal state change of the ICs.
More work could/should be done here, but this is a first step.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/565873002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23977 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-16 12:51:33 +00:00
mvstanton@chromium.org
febf84a333
Added CallInterfaceDescriptors to all code stubs. A handful
...
of code stubs are too complex to be described this way, and
they are encoded with the macro
DEFINE_NULL_CALL_INTERFACE_DESCRIPTOR().
Along the way:
* allowed inheritance of CallInterfaceDescriptors.
* Defined static Register methods for some of the new
CallInterfaceDescriptors. We could go a lot further here, but
it doesn't have to be done immediately.
* Added Representation arrays to some CallInterfaceDescriptors,
especially where future hydrogen versions of the stubs could
benefit from this knowledge.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/551043005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 07:11:10 +00:00
arv@chromium.org
45d8e74cd6
ES6: Add support for method shorthand in object literals
...
This is governed by the harmony-object-literals flag.
BUG=v8:3516
LOG=Y
R=rossberg@chromium.org
Review URL: https://codereview.chromium.org/477263002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-10 16:39:42 +00:00
yangguo@chromium.org
9da1d7dc15
Get CallInterfaceDescriptor directly from CodeStub.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/552803002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23778 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-08 15:18:54 +00:00
yangguo@chromium.org
014c0fe278
Initialize CodeStubInterfaceDescriptor in the constructor.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/553833002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-08 13:27:56 +00:00
mvstanton@chromium.org
6e1ebdcbc3
To aid vector-based load ic work, we need to be able to handle
...
the megamorphic load case in hydrogen. A simple approach is to
wrap the probe activity in a hydrogen instruction.
The instruction is novel in that it always tail-calls away.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/535873002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23772 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-08 12:51:29 +00:00
yangguo@chromium.org
b7ea991a06
Do not cache CodeStubInterfaceDescriptor on the isolate.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/544123002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23744 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 15:20:45 +00:00
yangguo@chromium.org
a6260ee47b
Unify JSEntryStub and JSConstructEntryStub, and some more code stub cleanups.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/545163002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 15:12:49 +00:00
yangguo@chromium.org
2e80f58239
Introduce code stub constructors for stub keys.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/542613003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23716 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-05 07:44:31 +00:00
akos.palfi@imgtec.com
fdfe006ed7
MIPS: Clean up code stubs and ensure distinct major keys.
...
Port r23655 (6327324d)
BUG=
R=machenbach@chromium.org , paul.lind@imgtec.com
Review URL: https://codereview.chromium.org/541513002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23674 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-04 08:59:42 +00:00
yangguo@chromium.org
7540c6cedb
Remove incorrect FINAL attribute from MajorKey declarations.
...
TBR=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/535113003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23656 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 13:23:07 +00:00
yangguo@chromium.org
62ba2c8b7f
Clean up code stubs and ensure distinct major keys.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/530343005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 13:14:55 +00:00
yangguo@chromium.org
3ef636f7fa
Minor-key-ify remaining code stubs.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/535733004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23643 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 11:41:54 +00:00
mvstanton@chromium.org
c2fe5b2b68
Make concrete classes for individual call descriptors. The ic-convention classes that hold register specifications are merged into these new call descriptor classes, which should represent a final home for that information.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/527093002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23639 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 10:51:51 +00:00
yangguo@chromium.org
d0c3652d96
Unify some PlatformCodeStubs.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/527933002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-03 07:20:03 +00:00
yangguo@chromium.org
946a25640c
Minor-key-ify four stubs.
...
- ICCompareStub
- BinaryOpICStub
- CompareNilICStub
- VectorLoadStub
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/529773002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23605 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 11:51:25 +00:00
bmeurer@chromium.org
30f18f0f7d
Use Chrome compatible naming for compiler specifics.
...
Less useless creativity is best creativity!
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/526223002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-02 07:07:52 +00:00
yangguo@chromium.org
bdead275bb
Sub-minor-key-ify HandlerStubs.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/528773002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 13:55:39 +00:00
mvstanton@chromium.org
8786006022
Multiple stubs can point to the same calling convention.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/523583002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 09:18:39 +00:00
mvstanton@chromium.org
9514d34e14
Refactoring InterfaceDescriptors away from code-stubs.h
...
Clean up and create seperation between the concept of a call descriptor and a
code stub interface descriptor. The former is just concerned with how to call,
but the latter has many extra hints related to code generation and
deoptimization for the implementation of a particular code stub.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/517993002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 10:40:02 +00:00
yangguo@chromium.org
0748ee42db
Sub-minor-key-ify seven HydrogenCodeStubs.
...
- FastCloneShallowObjectStub
- StringAddStub
- LoadFastElementStub
- StoreFastElementStub
- TransitionElementsKindStub
- ArrayConstructorStubBase
- InternalArrayConstructorStubBase
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/511853002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23477 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 07:12:16 +00:00
yangguo@chromium.org
3cfef1e09e
Sub-minor-key-ify four HydrogenCodeStubs.
...
- FastNewContextStub
- FastCloneShallowArrayStub
- ToBooleanStub
- ElementsTransitionAndStoreStub.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/513653003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23474 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 07:02:53 +00:00
yangguo@chromium.org
a81ab7af48
Introduce sub minor key to remove NotMissMinorKey in hydrogen stubs.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/504333005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-27 10:27:52 +00:00
yangguo@chromium.org
545c04b9bd
Minor-key-ify BinaryOpICWithAllocationSiteStub.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/506003002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23444 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-27 10:00:06 +00:00
verwaest@chromium.org
fa70f154b7
Remove dead code from LookupResult
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/504183002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23414 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 16:32:51 +00:00
mvstanton@chromium.org
d8b48c0a1d
Minor-key-ify new LoadICTrampolineStub.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/500423002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23409 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 14:56:35 +00:00
mvstanton@chromium.org
76e22ca629
Added vector-based loadic hydrogen stubs. Not yet callable.
...
The next step is to integrate the use of vector[slot] into the IC
infrastructure so it can do the right thing for a vector-based ic.
Then these stubs can be installed. For now, they immediately bail out
to the miss handler.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/499343002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 14:12:47 +00:00
yangguo@chromium.org
2e42f62981
Minor-key-ify CallICStub and CallIC_ArrayStub.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/491143003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23403 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 13:10:01 +00:00
yangguo@chromium.org
a6e503ad92
Change more PlatformCodeStubs to encode properties in the minor key.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/498283002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23394 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 10:39:20 +00:00
mvstanton@chromium.org
295448a4ea
Move register conventions out of the IC classes.
...
A change to a convention shouldn't require recompilation of ic.h/.cc.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/486213003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 09:50:09 +00:00
yangguo@chromium.org
a53b7ff6b3
Use correct BitField arguments in CEntryStub.
...
R=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/494543003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23362 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-25 14:44:06 +00:00
yangguo@chromium.org
fb2ac081f5
Correctly return value. Fix for r23355.
...
TBR=vogelheim@chromium.org
Review URL: https://codereview.chromium.org/500993002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-25 13:47:14 +00:00
yangguo@chromium.org
899fe964ad
Encode CEntryStub properties in the minor key.
...
Eventually, all stubs should encode its properties in the minor key
so that stubs can be restored directly from the stub key.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/502713003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-25 13:09:02 +00:00
verwaest@chromium.org
30c3981c2c
Move IC code into a subdir and move ic-compilation related code from stub-cache into ic-compiler
...
BUG=
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/483683005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-22 11:43:39 +00:00
mstarzinger@chromium.org
44247036a7
Fix newly discovered presubmit errors.
...
R=jochen@chromium.org
Review URL: https://codereview.chromium.org/462033002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 13:33:35 +00:00
mstarzinger@chromium.org
ade23c891a
Extend ToBooleanStub to be able to return oddballs.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/450273002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-08 12:41:57 +00:00
mvstanton@chromium.org
7b9e24e3fb
Clean up IC tracing for CallICs.
...
CallICs have had some confused tracing, because the IC state is not
entirely captured by the installed code stub - it lives in the type
vector.
Change tracing to be able to use the vector state changes instead.
Introduced a DEFAULT state to be used by all vector-based ICs.
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/451643002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-07 15:33:14 +00:00
verwaest@chromium.org
0ef3978a13
Always use the StoreFieldStub to do the actual storing.
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/443963002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 13:18:36 +00:00
verwaest@chromium.org
b8ab822040
Hydrogenize (and share) StoreField except heapobject (for now).
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/443873002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 09:31:10 +00:00
verwaest@chromium.org
5aaf1487da
Load constants from the DescriptorArray
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/442763002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 08:02:21 +00:00
verwaest@chromium.org
f89fd015e3
Tag handlers as monomorphic
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/444623002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 12:32:49 +00:00
verwaest@chromium.org
26107e0d7a
Cleanup hydrogen generated handlers
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/445563002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 11:22:29 +00:00
bmeurer@chromium.org
d07a2eb806
Rename ASSERT* to DCHECK*.
...
This way we don't clash with the ASSERT* macros
defined by GoogleTest, and we are one step closer
to being able to replace our homegrown base/ with
base/ from Chrome.
R=jochen@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/430503007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 11:34:54 +00:00
mstarzinger@chromium.org
e4894b366a
Unify InstanceofStub interface descriptors.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/437483003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-31 12:07:30 +00:00
yangguo@chromium.org
b22724e48b
Fix issue with storing 31-bit bitfield as Smi.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/428183003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22733 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-31 07:50:26 +00:00
danno@chromium.org
a1383e2250
Land the Fan (disabled)
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/426233002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-30 13:54:45 +00:00