Index: src/stub-cache.h |
diff --git a/src/stub-cache.h b/src/stub-cache.h |
index 84f7f932b46a824235ab2ded8882f7f23dfe4ff5..cbaeacee80f17ca846122e9ce89c8bb791e0ab93 100644 |
--- a/src/stub-cache.h |
+++ b/src/stub-cache.h |
@@ -112,7 +112,8 @@ class StubCache { |
Handle<Code> ComputeLoadField(Handle<Name> name, |
Handle<JSObject> object, |
Handle<JSObject> holder, |
- PropertyIndex field_index); |
+ PropertyIndex field_index, |
+ Representation representation); |
Handle<Code> ComputeLoadCallback(Handle<Name> name, |
Handle<JSObject> object, |
@@ -147,7 +148,8 @@ class StubCache { |
Handle<Code> ComputeKeyedLoadField(Handle<Name> name, |
Handle<JSObject> object, |
Handle<JSObject> holder, |
- PropertyIndex field_index); |
+ PropertyIndex field_index, |
+ Representation representation); |
Handle<Code> ComputeKeyedLoadCallback( |
Handle<Name> name, |
@@ -506,13 +508,9 @@ class StubCompiler BASE_EMBEDDED { |
static void GenerateFastPropertyLoad(MacroAssembler* masm, |
Register dst, |
Register src, |
- Handle<JSObject> holder, |
- PropertyIndex index); |
- static void DoGenerateFastPropertyLoad(MacroAssembler* masm, |
- Register dst, |
- Register src, |
- bool inobject, |
- int index); |
+ bool inobject, |
+ int index, |
+ Representation representation); |
static void GenerateLoadArrayLength(MacroAssembler* masm, |
Register receiver, |
@@ -542,8 +540,10 @@ class StubCompiler BASE_EMBEDDED { |
Register value_reg, |
Register scratch1, |
Register scratch2, |
+ Register scratch3, |
Label* miss_label, |
- Label* miss_restore_name); |
+ Label* miss_restore_name, |
+ Label* slow); |
void GenerateStoreField(MacroAssembler* masm, |
Handle<JSObject> object, |
@@ -565,6 +565,14 @@ class StubCompiler BASE_EMBEDDED { |
} |
return Builtins::kLoadIC_Miss; |
} |
+ static Builtins::Name SlowBuiltin(Code::Kind kind) { |
+ switch (kind) { |
+ case Code::STORE_IC: return Builtins::kStoreIC_Slow; |
+ case Code::KEYED_STORE_IC: return Builtins::kKeyedStoreIC_Slow; |
+ default: UNREACHABLE(); |
+ } |
+ return Builtins::kStoreIC_Slow; |
+ } |
static void TailCallBuiltin(MacroAssembler* masm, Builtins::Name name); |
// Generates code that verifies that the property holder has not changed |
@@ -643,7 +651,8 @@ class BaseLoadStubCompiler: public StubCompiler { |
Handle<Code> CompileLoadField(Handle<JSObject> object, |
Handle<JSObject> holder, |
Handle<Name> name, |
- PropertyIndex index); |
+ PropertyIndex index, |
+ Representation representation); |
Handle<Code> CompileLoadCallback(Handle<JSObject> object, |
Handle<JSObject> holder, |
@@ -695,7 +704,8 @@ class BaseLoadStubCompiler: public StubCompiler { |
void GenerateLoadField(Register reg, |
Handle<JSObject> holder, |
- PropertyIndex index); |
+ PropertyIndex field, |
+ Representation representation); |
void GenerateLoadConstant(Handle<JSFunction> value); |
void GenerateLoadCallback(Register reg, |
Handle<ExecutableAccessorInfo> callback); |