const Register StoreIC::ValueRegister() { return r0; }
-const Register KeyedStoreIC::ReceiverRegister() {
- return StoreIC::ReceiverRegister();
-}
-
-
-const Register KeyedStoreIC::NameRegister() {
- return StoreIC::NameRegister();
-}
-
-
-const Register KeyedStoreIC::ValueRegister() {
- return StoreIC::ValueRegister();
-}
-
-
const Register KeyedStoreIC::MapRegister() {
return r3;
}
// receiver, name, scratch1, scratch2, scratch3.
Register receiver = StoreIC::ReceiverRegister();
Register name = StoreIC::NameRegister();
+ ASSERT(r3.is(KeyedStoreIC::MapRegister()));
static Register registers[] = { receiver, name, r3, r4, r5 };
return registers;
}
-Register* PropertyAccessCompiler::keyed_store_calling_convention() {
- // receiver, name, scratch1/map, scratch2, scratch3.
- Register receiver = KeyedStoreIC::ReceiverRegister();
- Register name = KeyedStoreIC::NameRegister();
- Register map = KeyedStoreIC::MapRegister();
- static Register registers[] = { receiver, name, map, r4, r5 };
- return registers;
-}
-
-
Register NamedStoreHandlerCompiler::value() { return StoreIC::ValueRegister(); }
const Register StoreIC::ValueRegister() { return x0; }
-const Register KeyedStoreIC::ReceiverRegister() {
- return StoreIC::ReceiverRegister();
-}
-
-
-const Register KeyedStoreIC::NameRegister() {
- return StoreIC::NameRegister();
-}
-
-
-const Register KeyedStoreIC::ValueRegister() {
- return StoreIC::ValueRegister();
-}
-
-
const Register KeyedStoreIC::MapRegister() {
return x3;
}
// receiver, value, scratch1, scratch2, scratch3.
Register receiver = StoreIC::ReceiverRegister();
Register name = StoreIC::NameRegister();
+ ASSERT(x3.is(KeyedStoreIC::MapRegister()));
static Register registers[] = { receiver, name, x3, x4, x5 };
return registers;
}
-Register* PropertyAccessCompiler::keyed_store_calling_convention() {
- // receiver, name, scratch1/map, scratch2, scratch3.
- Register receiver = KeyedStoreIC::ReceiverRegister();
- Register name = KeyedStoreIC::NameRegister();
- Register map = KeyedStoreIC::MapRegister();
- static Register registers[] = { receiver, name, map, x4, x5 };
- return registers;
-}
-
-
Register NamedStoreHandlerCompiler::value() { return StoreIC::ValueRegister(); }
const Register StoreIC::ValueRegister() { return eax; }
-const Register KeyedStoreIC::ReceiverRegister() {
- return StoreIC::ReceiverRegister();
-}
-
-
-const Register KeyedStoreIC::NameRegister() {
- return StoreIC::NameRegister();
-}
-
-
-const Register KeyedStoreIC::ValueRegister() {
- return StoreIC::ValueRegister();
-}
-
-
const Register KeyedStoreIC::MapRegister() {
return ebx;
}
// receiver, name, scratch1, scratch2, scratch3.
Register receiver = StoreIC::ReceiverRegister();
Register name = StoreIC::NameRegister();
+ ASSERT(ebx.is(KeyedStoreIC::MapRegister()));
static Register registers[] = { receiver, name, ebx, edi, no_reg };
return registers;
}
-Register* PropertyAccessCompiler::keyed_store_calling_convention() {
- // receiver, name, scratch1/map, scratch2, scratch3.
- Register receiver = KeyedStoreIC::ReceiverRegister();
- Register name = KeyedStoreIC::NameRegister();
- Register map = KeyedStoreIC::MapRegister();
- static Register registers[] = { receiver, name, map, edi, no_reg };
- return registers;
-}
-
-
Register NamedStoreHandlerCompiler::value() { return StoreIC::ValueRegister(); }
return ExtraICStateKeyedAccessStoreMode::decode(extra_state);
}
- static const Register ReceiverRegister();
- static const Register NameRegister();
- static const Register ValueRegister();
-
// The map register isn't part of the normal call specification, but
// ElementsTransitionAndStoreStub, used in polymorphic keyed store
// stub implementations requires it to be initialized.
Register* PropertyAccessCompiler::GetCallingConvention(Code::Kind kind) {
if (kind == Code::LOAD_IC || kind == Code::KEYED_LOAD_IC) {
return load_calling_convention();
- } else if (kind == Code::STORE_IC) {
- return store_calling_convention();
- } else {
- ASSERT_EQ(Code::KEYED_STORE_IC, kind);
- return keyed_store_calling_convention();
}
+ ASSERT(kind == Code::STORE_IC || kind == Code::KEYED_STORE_IC);
+ return store_calling_convention();
}
const Register StoreIC::ValueRegister() { return rax; }
-const Register KeyedStoreIC::ReceiverRegister() {
- return StoreIC::ReceiverRegister();
-}
-
-
-const Register KeyedStoreIC::NameRegister() {
- return StoreIC::NameRegister();
-}
-
-
-const Register KeyedStoreIC::ValueRegister() {
- return StoreIC::ValueRegister();
-}
-
-
const Register KeyedStoreIC::MapRegister() {
return rbx;
}
// receiver, name, scratch1, scratch2, scratch3.
Register receiver = KeyedStoreIC::ReceiverRegister();
Register name = KeyedStoreIC::NameRegister();
+ ASSERT(rbx.is(KeyedStoreIC::MapRegister()));
static Register registers[] = { receiver, name, rbx, rdi, r8 };
return registers;
}
-Register* PropertyAccessCompiler::keyed_store_calling_convention() {
- // receiver, name, scratch1/map, scratch2, scratch3.
- Register receiver = KeyedStoreIC::ReceiverRegister();
- Register name = KeyedStoreIC::NameRegister();
- Register map = KeyedStoreIC::MapRegister();
- static Register registers[] = { receiver, name, map, rdi, r8 };
- return registers;
-}
-
-
Register NamedStoreHandlerCompiler::value() { return StoreIC::ValueRegister(); }