X87: Vector ICs: Introduce Store and KeyedStore IC code stubs.
port a86384f192
(r28597).
original commit message:
Also introduce new interface descriptors for the trampoline and full
versions of those stubs.
Currently, the stubs aren't functional.
BUG=
Review URL: https://codereview.chromium.org/1148963003
Cr-Commit-Position: refs/heads/master@{#28605}
This commit is contained in:
parent
8712d032e7
commit
47448c9b19
@ -4310,6 +4310,58 @@ void KeyedLoadICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
|
||||
}
|
||||
|
||||
|
||||
void VectorStoreICTrampolineStub::Generate(MacroAssembler* masm) {
|
||||
EmitLoadTypeFeedbackVector(masm, VectorStoreICDescriptor::VectorRegister());
|
||||
VectorStoreICStub stub(isolate(), state());
|
||||
stub.GenerateForTrampoline(masm);
|
||||
}
|
||||
|
||||
|
||||
void VectorKeyedStoreICTrampolineStub::Generate(MacroAssembler* masm) {
|
||||
EmitLoadTypeFeedbackVector(masm, VectorStoreICDescriptor::VectorRegister());
|
||||
VectorKeyedStoreICStub stub(isolate(), state());
|
||||
stub.GenerateForTrampoline(masm);
|
||||
}
|
||||
|
||||
|
||||
void VectorStoreICStub::Generate(MacroAssembler* masm) {
|
||||
GenerateImpl(masm, false);
|
||||
}
|
||||
|
||||
|
||||
void VectorStoreICStub::GenerateForTrampoline(MacroAssembler* masm) {
|
||||
GenerateImpl(masm, true);
|
||||
}
|
||||
|
||||
|
||||
void VectorStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
|
||||
Label miss;
|
||||
|
||||
// TODO(mvstanton): Implement.
|
||||
__ bind(&miss);
|
||||
StoreIC::GenerateMiss(masm);
|
||||
}
|
||||
|
||||
|
||||
void VectorKeyedStoreICStub::Generate(MacroAssembler* masm) {
|
||||
GenerateImpl(masm, false);
|
||||
}
|
||||
|
||||
|
||||
void VectorKeyedStoreICStub::GenerateForTrampoline(MacroAssembler* masm) {
|
||||
GenerateImpl(masm, true);
|
||||
}
|
||||
|
||||
|
||||
void VectorKeyedStoreICStub::GenerateImpl(MacroAssembler* masm, bool in_frame) {
|
||||
Label miss;
|
||||
|
||||
// TODO(mvstanton): Implement.
|
||||
__ bind(&miss);
|
||||
KeyedStoreIC::GenerateMiss(masm);
|
||||
}
|
||||
|
||||
|
||||
void CallICTrampolineStub::Generate(MacroAssembler* masm) {
|
||||
EmitLoadTypeFeedbackVector(masm, ebx);
|
||||
CallICStub stub(isolate(), state());
|
||||
|
@ -26,6 +26,12 @@ const Register StoreDescriptor::NameRegister() { return ecx; }
|
||||
const Register StoreDescriptor::ValueRegister() { return eax; }
|
||||
|
||||
|
||||
const Register VectorStoreICTrampolineDescriptor::SlotRegister() { return edi; }
|
||||
|
||||
|
||||
const Register VectorStoreICDescriptor::VectorRegister() { return ebx; }
|
||||
|
||||
|
||||
const Register StoreTransitionDescriptor::MapRegister() { return ebx; }
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user