Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(21)

Side by Side Diff: src/arm64/stub-cache-arm64.cc

Issue 424423002: Remove keyed_store_calling convention and friends (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/arm64/ic-arm64.cc ('k') | src/ia32/ic-ia32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #if V8_TARGET_ARCH_ARM64 7 #if V8_TARGET_ARCH_ARM64
8 8
9 #include "src/codegen.h" 9 #include "src/codegen.h"
10 #include "src/ic-inl.h" 10 #include "src/ic-inl.h"
(...skipping 1008 matching lines...) Expand 10 before | Expand all | Expand 10 after
1019 } 1019 }
1020 1020
1021 1021
1022 Handle<Code> NamedStoreHandlerCompiler::CompileStoreCallback( 1022 Handle<Code> NamedStoreHandlerCompiler::CompileStoreCallback(
1023 Handle<JSObject> object, Handle<Name> name, 1023 Handle<JSObject> object, Handle<Name> name,
1024 Handle<ExecutableAccessorInfo> callback) { 1024 Handle<ExecutableAccessorInfo> callback) {
1025 ASM_LOCATION("NamedStoreHandlerCompiler::CompileStoreCallback"); 1025 ASM_LOCATION("NamedStoreHandlerCompiler::CompileStoreCallback");
1026 Register holder_reg = Frontend(receiver(), name); 1026 Register holder_reg = Frontend(receiver(), name);
1027 1027
1028 // Stub never generated for non-global objects that require access checks. 1028 // Stub never generated for non-global objects that require access checks.
1029 ASSERT(holder->IsJSGlobalProxy() || !holder->IsAccessCheckNeeded()); 1029 ASSERT(holder()->IsJSGlobalProxy() || !holder()->IsAccessCheckNeeded());
1030 1030
1031 // receiver() and holder_reg can alias. 1031 // receiver() and holder_reg can alias.
1032 ASSERT(!AreAliased(receiver(), scratch1(), scratch2(), value())); 1032 ASSERT(!AreAliased(receiver(), scratch1(), scratch2(), value()));
1033 ASSERT(!AreAliased(holder_reg, scratch1(), scratch2(), value())); 1033 ASSERT(!AreAliased(holder_reg, scratch1(), scratch2(), value()));
1034 __ Mov(scratch1(), Operand(callback)); 1034 __ Mov(scratch1(), Operand(callback));
1035 __ Mov(scratch2(), Operand(name)); 1035 __ Mov(scratch2(), Operand(name));
1036 __ Push(receiver(), holder_reg, scratch1(), scratch2(), value()); 1036 __ Push(receiver(), holder_reg, scratch1(), scratch2(), value());
1037 1037
1038 // Do tail-call to the runtime system. 1038 // Do tail-call to the runtime system.
1039 ExternalReference store_callback_property = 1039 ExternalReference store_callback_property =
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1140 Register name = LoadIC::NameRegister(); 1140 Register name = LoadIC::NameRegister();
1141 static Register registers[] = { receiver, name, x3, x0, x4, x5 }; 1141 static Register registers[] = { receiver, name, x3, x0, x4, x5 };
1142 return registers; 1142 return registers;
1143 } 1143 }
1144 1144
1145 1145
1146 Register* PropertyAccessCompiler::store_calling_convention() { 1146 Register* PropertyAccessCompiler::store_calling_convention() {
1147 // receiver, value, scratch1, scratch2, scratch3. 1147 // receiver, value, scratch1, scratch2, scratch3.
1148 Register receiver = StoreIC::ReceiverRegister(); 1148 Register receiver = StoreIC::ReceiverRegister();
1149 Register name = StoreIC::NameRegister(); 1149 Register name = StoreIC::NameRegister();
1150 ASSERT(x3.is(KeyedStoreIC::MapRegister()));
1150 static Register registers[] = { receiver, name, x3, x4, x5 }; 1151 static Register registers[] = { receiver, name, x3, x4, x5 };
1151 return registers; 1152 return registers;
1152 } 1153 }
1153 1154
1154 1155
1155 Register* PropertyAccessCompiler::keyed_store_calling_convention() {
1156 // receiver, name, scratch1/map, scratch2, scratch3.
1157 Register receiver = KeyedStoreIC::ReceiverRegister();
1158 Register name = KeyedStoreIC::NameRegister();
1159 Register map = KeyedStoreIC::MapRegister();
1160 static Register registers[] = { receiver, name, map, x4, x5 };
1161 return registers;
1162 }
1163
1164
1165 Register NamedStoreHandlerCompiler::value() { return StoreIC::ValueRegister(); } 1156 Register NamedStoreHandlerCompiler::value() { return StoreIC::ValueRegister(); }
1166 1157
1167 1158
1168 #undef __ 1159 #undef __
1169 #define __ ACCESS_MASM(masm) 1160 #define __ ACCESS_MASM(masm)
1170 1161
1171 void NamedLoadHandlerCompiler::GenerateLoadViaGetter( 1162 void NamedLoadHandlerCompiler::GenerateLoadViaGetter(
1172 MacroAssembler* masm, Handle<HeapType> type, Register receiver, 1163 MacroAssembler* masm, Handle<HeapType> type, Register receiver,
1173 Handle<JSFunction> getter) { 1164 Handle<JSFunction> getter) {
1174 { 1165 {
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
1355 1346
1356 // Miss case, call the runtime. 1347 // Miss case, call the runtime.
1357 __ Bind(&miss); 1348 __ Bind(&miss);
1358 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss); 1349 TailCallBuiltin(masm, Builtins::kKeyedLoadIC_Miss);
1359 } 1350 }
1360 1351
1361 1352
1362 } } // namespace v8::internal 1353 } } // namespace v8::internal
1363 1354
1364 #endif // V8_TARGET_ARCH_ARM64 1355 #endif // V8_TARGET_ARCH_ARM64
OLDNEW
« no previous file with comments | « src/arm64/ic-arm64.cc ('k') | src/ia32/ic-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698