| Index: src/stub-cache.h
|
| diff --git a/src/stub-cache.h b/src/stub-cache.h
|
| index 84f7f932b46a824235ab2ded8882f7f23dfe4ff5..00f0b48fd3e87d46539a5c36f55cd2f8320bc8ac 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,
|
| @@ -543,7 +541,8 @@ class StubCompiler BASE_EMBEDDED {
|
| Register scratch1,
|
| Register scratch2,
|
| Label* miss_label,
|
| - Label* miss_restore_name);
|
| + Label* miss_restore_name,
|
| + Label* slow);
|
|
|
| void GenerateStoreField(MacroAssembler* masm,
|
| Handle<JSObject> object,
|
| @@ -565,6 +564,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 +650,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 +703,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);
|
|
|