// Compile the stub that is either shared for all names or
// name specific if there are global objects involved.
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(Code::LOAD_IC, Code::NONEXISTENT);
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ Code::LOAD_IC, Code::kNoExtraICState, Code::NONEXISTENT);
Handle<Object> probe(receiver->map()->FindInCodeCache(*cache_name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
PropertyIndex field) {
InlineCacheHolderFlag cache_holder =
IC::GetCodeCacheForObject(*receiver, *holder);
- Handle<JSObject> map_holder(
- IC::GetCodeCacheHolder(isolate_, *receiver, cache_holder));
- Code::Flags flags = Code::ComputeMonomorphicFlags(Code::LOAD_IC, Code::FIELD);
+ Handle<JSObject> map_holder(IC::GetCodeCacheHolder(
+ isolate_, *receiver, cache_holder));
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ Code::LOAD_IC, Code::kNoExtraICState, Code::FIELD);
Handle<Object> probe(map_holder->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
ASSERT(v8::ToCData<Address>(callback->getter()) != 0);
InlineCacheHolderFlag cache_holder =
IC::GetCodeCacheForObject(*receiver, *holder);
- Handle<JSObject> map_holder(
- IC::GetCodeCacheHolder(isolate_, *receiver, cache_holder));
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(Code::LOAD_IC, Code::CALLBACKS);
+ Handle<JSObject> map_holder(IC::GetCodeCacheHolder(
+ isolate_, *receiver, cache_holder));
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ Code::LOAD_IC, Code::kNoExtraICState, Code::CALLBACKS);
Handle<Object> probe(map_holder->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
Handle<JSFunction> getter) {
InlineCacheHolderFlag cache_holder =
IC::GetCodeCacheForObject(*receiver, *holder);
- Handle<JSObject> map_holder(
- IC::GetCodeCacheHolder(isolate_, *receiver, cache_holder));
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(Code::LOAD_IC, Code::CALLBACKS);
+ Handle<JSObject> map_holder(IC::GetCodeCacheHolder(
+ isolate_, *receiver, cache_holder));
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ Code::LOAD_IC, Code::kNoExtraICState, Code::CALLBACKS);
Handle<Object> probe(map_holder->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
Handle<JSFunction> value) {
InlineCacheHolderFlag cache_holder =
IC::GetCodeCacheForObject(*receiver, *holder);
- Handle<JSObject> map_holder(
- IC::GetCodeCacheHolder(isolate_, *receiver, cache_holder));
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(Code::LOAD_IC, Code::CONSTANT_FUNCTION);
+ Handle<JSObject> map_holder(IC::GetCodeCacheHolder(
+ isolate_, *receiver, cache_holder));
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ Code::LOAD_IC, Code::kNoExtraICState, Code::CONSTANT_FUNCTION);
Handle<Object> probe(map_holder->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
Handle<JSObject> holder) {
InlineCacheHolderFlag cache_holder =
IC::GetCodeCacheForObject(*receiver, *holder);
- Handle<JSObject> map_holder(
- IC::GetCodeCacheHolder(isolate_, *receiver, cache_holder));
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(Code::LOAD_IC, Code::INTERCEPTOR);
+ Handle<JSObject> map_holder(IC::GetCodeCacheHolder(
+ isolate_, *receiver, cache_holder));
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ Code::LOAD_IC, Code::kNoExtraICState, Code::INTERCEPTOR);
Handle<Object> probe(map_holder->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
bool is_dont_delete) {
InlineCacheHolderFlag cache_holder =
IC::GetCodeCacheForObject(*receiver, *holder);
- Handle<JSObject> map_holder(
- IC::GetCodeCacheHolder(isolate_, *receiver, cache_holder));
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(Code::LOAD_IC, Code::NORMAL);
+ Handle<JSObject> map_holder(IC::GetCodeCacheHolder(
+ isolate_, *receiver, cache_holder));
+ Code::Flags flags = Code::ComputeMonomorphicFlags(Code::LOAD_IC);
Handle<Object> probe(map_holder->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
PropertyIndex field) {
InlineCacheHolderFlag cache_holder =
IC::GetCodeCacheForObject(*receiver, *holder);
- Handle<JSObject> map_holder(
- IC::GetCodeCacheHolder(isolate_, *receiver, cache_holder));
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(Code::KEYED_LOAD_IC, Code::FIELD);
+ Handle<JSObject> map_holder(IC::GetCodeCacheHolder(
+ isolate_, *receiver, cache_holder));
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ Code::KEYED_LOAD_IC, Code::kNoExtraICState, Code::FIELD);
Handle<Object> probe(map_holder->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
Handle<JSFunction> value) {
InlineCacheHolderFlag cache_holder =
IC::GetCodeCacheForObject(*receiver, *holder);
- Handle<JSObject> map_holder(
- IC::GetCodeCacheHolder(isolate_, *receiver, cache_holder));
- Code::Flags flags = Code::ComputeMonomorphicFlags(Code::KEYED_LOAD_IC,
- Code::CONSTANT_FUNCTION);
+ Handle<JSObject> map_holder(IC::GetCodeCacheHolder(
+ isolate_, *receiver, cache_holder));
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ Code::KEYED_LOAD_IC, Code::kNoExtraICState, Code::CONSTANT_FUNCTION);
Handle<Object> probe(map_holder->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
Handle<JSObject> holder) {
InlineCacheHolderFlag cache_holder =
IC::GetCodeCacheForObject(*receiver, *holder);
- Handle<JSObject> map_holder(
- IC::GetCodeCacheHolder(isolate_, *receiver, cache_holder));
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(Code::KEYED_LOAD_IC, Code::INTERCEPTOR);
+ Handle<JSObject> map_holder(IC::GetCodeCacheHolder(
+ isolate_, *receiver, cache_holder));
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ Code::KEYED_LOAD_IC, Code::kNoExtraICState, Code::INTERCEPTOR);
Handle<Object> probe(map_holder->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
Handle<ExecutableAccessorInfo> callback) {
InlineCacheHolderFlag cache_holder =
IC::GetCodeCacheForObject(*receiver, *holder);
- Handle<JSObject> map_holder(
- IC::GetCodeCacheHolder(isolate_, *receiver, cache_holder));
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(Code::KEYED_LOAD_IC, Code::CALLBACKS);
+ Handle<JSObject> map_holder(IC::GetCodeCacheHolder(
+ isolate_, *receiver, cache_holder));
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ Code::KEYED_LOAD_IC, Code::kNoExtraICState, Code::CALLBACKS);
Handle<Object> probe(map_holder->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
Code::StubType type =
(transition.is_null()) ? Code::FIELD : Code::MAP_TRANSITION;
Code::Flags flags = Code::ComputeMonomorphicFlags(
- Code::STORE_IC, type, strict_mode);
+ Code::STORE_IC, strict_mode, type);
Handle<Object> probe(receiver->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
Handle<Code> StubCache::ComputeKeyedLoadElement(Handle<Map> receiver_map) {
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(Code::KEYED_LOAD_IC, Code::NORMAL);
+ Code::Flags flags = Code::ComputeMonomorphicFlags(Code::KEYED_LOAD_IC);
Handle<String> name =
isolate()->factory()->KeyedLoadElementMonomorphic_symbol();
Code::ExtraICState extra_state =
Code::ComputeExtraICState(grow_mode, strict_mode);
Code::Flags flags = Code::ComputeMonomorphicFlags(
- Code::KEYED_STORE_IC, Code::NORMAL, extra_state);
+ Code::KEYED_STORE_IC, extra_state);
ASSERT(stub_kind == KeyedStoreIC::STORE_NO_TRANSITION ||
stub_kind == KeyedStoreIC::STORE_AND_GROW_NO_TRANSITION);
Handle<JSGlobalPropertyCell> cell,
StrictModeFlag strict_mode) {
Code::Flags flags = Code::ComputeMonomorphicFlags(
- Code::STORE_IC, Code::NORMAL, strict_mode);
+ Code::STORE_IC, strict_mode);
Handle<Object> probe(receiver->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
StrictModeFlag strict_mode) {
ASSERT(v8::ToCData<Address>(callback->setter()) != 0);
Code::Flags flags = Code::ComputeMonomorphicFlags(
- Code::STORE_IC, Code::CALLBACKS, strict_mode);
+ Code::STORE_IC, strict_mode, Code::CALLBACKS);
Handle<Object> probe(receiver->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
Handle<JSFunction> setter,
StrictModeFlag strict_mode) {
Code::Flags flags = Code::ComputeMonomorphicFlags(
- Code::STORE_IC, Code::CALLBACKS, strict_mode);
+ Code::STORE_IC, strict_mode, Code::CALLBACKS);
Handle<Object> probe(receiver->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
Handle<JSObject> receiver,
StrictModeFlag strict_mode) {
Code::Flags flags = Code::ComputeMonomorphicFlags(
- Code::STORE_IC, Code::INTERCEPTOR, strict_mode);
+ Code::STORE_IC, strict_mode, Code::INTERCEPTOR);
Handle<Object> probe(receiver->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
Code::StubType type =
(transition.is_null()) ? Code::FIELD : Code::MAP_TRANSITION;
Code::Flags flags = Code::ComputeMonomorphicFlags(
- Code::KEYED_STORE_IC, type, strict_mode);
+ Code::KEYED_STORE_IC, strict_mode, type);
Handle<Object> probe(receiver->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
return Handle<Code>::null();
}
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(kind, Code::CONSTANT_FUNCTION, extra_state,
- cache_holder, argc);
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ kind, extra_state, Code::CONSTANT_FUNCTION, argc, cache_holder);
Handle<Object> probe(map_holder->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
object = holder;
}
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(kind, Code::FIELD, extra_state,
- cache_holder, argc);
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ kind, extra_state, Code::FIELD, argc, cache_holder);
Handle<Object> probe(map_holder->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
object = holder;
}
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(kind, Code::INTERCEPTOR, extra_state,
- cache_holder, argc);
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ kind, extra_state, Code::INTERCEPTOR, argc, cache_holder);
Handle<Object> probe(map_holder->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
Handle<JSFunction> function) {
InlineCacheHolderFlag cache_holder =
IC::GetCodeCacheForObject(*receiver, *holder);
- Handle<JSObject> map_holder(
- IC::GetCodeCacheHolder(isolate_, *receiver, cache_holder));
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(kind, Code::NORMAL, extra_state,
- cache_holder, argc);
+ Handle<JSObject> map_holder(IC::GetCodeCacheHolder(
+ isolate_, *receiver, cache_holder));
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ kind, extra_state, Code::NORMAL, argc, cache_holder);
Handle<Object> probe(map_holder->map()->FindInCodeCache(*name, flags),
isolate_);
if (probe->IsCode()) return Handle<Code>::cast(probe);
Handle<Code> LoadStubCompiler::GetCode(Code::StubType type,
Handle<String> name,
InlineCacheState state) {
- Code::Flags flags = Code::ComputeMonomorphicFlags(Code::LOAD_IC, type);
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ Code::LOAD_IC, Code::kNoExtraICState, type);
Handle<Code> code = GetCodeWithFlags(flags, name);
PROFILE(isolate(), CodeCreateEvent(Logger::LOAD_IC_TAG, *code, *name));
GDBJIT(AddCode(GDBJITInterface::LOAD_IC, *name, *code));
Handle<Code> StoreStubCompiler::GetCode(Code::StubType type,
Handle<String> name) {
- Code::Flags flags =
- Code::ComputeMonomorphicFlags(Code::STORE_IC, type, strict_mode_);
+ Code::Flags flags = Code::ComputeMonomorphicFlags(
+ Code::STORE_IC, strict_mode_, type);
Handle<Code> code = GetCodeWithFlags(flags, name);
PROFILE(isolate(), CodeCreateEvent(Logger::STORE_IC_TAG, *code, *name));
GDBJIT(AddCode(GDBJITInterface::STORE_IC, *name, *code));
Handle<String> name) {
int argc = arguments_.immediate();
Code::Flags flags = Code::ComputeMonomorphicFlags(kind_,
- type,
extra_state_,
- cache_holder_,
- argc);
+ type,
+ argc,
+ cache_holder_);
return GetCodeWithFlags(flags, name);
}