LGTM with comments. You can address them in a follow up CL since this one is
already getting quite large.
https://codereview.chromium.org/527093002/diff/140001/src/arm/interface-descriptors-arm.cc
File src/arm/interface-descriptors-arm.cc (right):
https://codereview.chromium.org/527093002/diff/140001/src/arm/interface-descriptors-arm.cc#newcode22
src/arm/interface-descriptors-arm.cc:22: return
LoadDescriptor::ReceiverRegister();
Looks like you could just subclass VectorLoadICDescriptor from
LoadDescriptor.
https://codereview.chromium.org/527093002/diff/140001/src/arm/interface-descriptors-arm.cc#newcode41
src/arm/interface-descriptors-arm.cc:41: return
StoreDescriptor::ReceiverRegister();
Same here with ElementTransitionAndStoreDescriptor/StoreDescriptor.
https://codereview.chromium.org/527093002/diff/140001/src/code-stubs.cc
File src/code-stubs.cc (right):
https://codereview.chromium.org/527093002/diff/140001/src/code-stubs.cc#newcode37
src/code-stubs.cc:37: major_ = major;
not sure whether an initialization list would be more readable.
https://codereview.chromium.org/527093002/diff/140001/src/interface-descriptors.h
File src/interface-descriptors.h (right):
https://codereview.chromium.org/527093002/diff/140001/src/interface-descriptors.h#newcode117
src/interface-descriptors.h:117: :
data_(isolate->call_descriptor_data(key)) {}
Can we simply
- fetch data from the isolate
- check whether it's initialized
- if not, initialize it by calling a virtual Initialize method defined
on each CallInterfaceDescriptor
That way we get rid of that eager initializiation in
InitializeForIsolate, and have on-demand lazy initialization.
The Initialize method could either be the way it is, passing isolate and
descriptor key, or it would simply pass a reference to an uninitialized
CallDescriptorData object already fetched via
isolate->call_descriptor_data(key) and would fill it accordingly. That
way we could also get rid of the static InitializeData method, which is
essentially just a wrapper to fetch isolate->call_descriptor_data(key).
https://codereview.chromium.org/527093002/diff/140001/src/interface-descriptors.h#newcode120
src/interface-descriptors.h:120: return data() != NULL &&
data()->IsInitialized();
We then would also not need this any more. The constructor would make
sure that we have data_ set and that data_ is initialized.
https://codereview.chromium.org/527093002/
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.