OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_X64 | 7 #if V8_TARGET_ARCH_X64 |
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 998 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1009 ASSERT(FLAG_vector_ics); | 1009 ASSERT(FLAG_vector_ics); |
1010 return rbx; | 1010 return rbx; |
1011 } | 1011 } |
1012 | 1012 |
1013 | 1013 |
1014 const Register StoreIC::ReceiverRegister() { return rdx; } | 1014 const Register StoreIC::ReceiverRegister() { return rdx; } |
1015 const Register StoreIC::NameRegister() { return rcx; } | 1015 const Register StoreIC::NameRegister() { return rcx; } |
1016 const Register StoreIC::ValueRegister() { return rax; } | 1016 const Register StoreIC::ValueRegister() { return rax; } |
1017 | 1017 |
1018 | 1018 |
1019 const Register KeyedStoreIC::ReceiverRegister() { | |
1020 return StoreIC::ReceiverRegister(); | |
1021 } | |
1022 | |
1023 | |
1024 const Register KeyedStoreIC::NameRegister() { | |
1025 return StoreIC::NameRegister(); | |
1026 } | |
1027 | |
1028 | |
1029 const Register KeyedStoreIC::ValueRegister() { | |
1030 return StoreIC::ValueRegister(); | |
1031 } | |
1032 | |
1033 | |
1034 const Register KeyedStoreIC::MapRegister() { | 1019 const Register KeyedStoreIC::MapRegister() { |
1035 return rbx; | 1020 return rbx; |
1036 } | 1021 } |
1037 | 1022 |
1038 | 1023 |
1039 void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) { | 1024 void KeyedLoadIC::GenerateRuntimeGetProperty(MacroAssembler* masm) { |
1040 // The return address is on the stack. | 1025 // The return address is on the stack. |
1041 | 1026 |
1042 __ PopReturnAddressTo(KeyedLoadIC_TempRegister()); | 1027 __ PopReturnAddressTo(KeyedLoadIC_TempRegister()); |
1043 __ Push(ReceiverRegister()); // receiver | 1028 __ Push(ReceiverRegister()); // receiver |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1243 Condition cc = (check == ENABLE_INLINED_SMI_CHECK) | 1228 Condition cc = (check == ENABLE_INLINED_SMI_CHECK) |
1244 ? (*jmp_address == Assembler::kJncShortOpcode ? not_zero : zero) | 1229 ? (*jmp_address == Assembler::kJncShortOpcode ? not_zero : zero) |
1245 : (*jmp_address == Assembler::kJnzShortOpcode ? not_carry : carry); | 1230 : (*jmp_address == Assembler::kJnzShortOpcode ? not_carry : carry); |
1246 *jmp_address = static_cast<byte>(Assembler::kJccShortPrefix | cc); | 1231 *jmp_address = static_cast<byte>(Assembler::kJccShortPrefix | cc); |
1247 } | 1232 } |
1248 | 1233 |
1249 | 1234 |
1250 } } // namespace v8::internal | 1235 } } // namespace v8::internal |
1251 | 1236 |
1252 #endif // V8_TARGET_ARCH_X64 | 1237 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |