OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/ic/access-compiler.h" | 9 #include "src/ic/access-compiler.h" |
10 | 10 |
(...skipping 11 matching lines...) Expand all Loading... |
22 | 22 |
23 // TODO(all): The so-called scratch registers are significant in some cases. For | 23 // TODO(all): The so-called scratch registers are significant in some cases. For |
24 // example, PropertyAccessCompiler::keyed_store_calling_convention()[3] (x3) is | 24 // example, PropertyAccessCompiler::keyed_store_calling_convention()[3] (x3) is |
25 // actually | 25 // actually |
26 // used for KeyedStoreCompiler::transition_map(). We should verify which | 26 // used for KeyedStoreCompiler::transition_map(). We should verify which |
27 // registers are actually scratch registers, and which are important. For now, | 27 // registers are actually scratch registers, and which are important. For now, |
28 // we use the same assignments as ARM to remain on the safe side. | 28 // we use the same assignments as ARM to remain on the safe side. |
29 | 29 |
30 Register* PropertyAccessCompiler::load_calling_convention() { | 30 Register* PropertyAccessCompiler::load_calling_convention() { |
31 // receiver, name, scratch1, scratch2, scratch3, scratch4. | 31 // receiver, name, scratch1, scratch2, scratch3, scratch4. |
32 Register receiver = LoadConvention::ReceiverRegister(); | 32 Register receiver = LoadDescriptor::ReceiverRegister(); |
33 Register name = LoadConvention::NameRegister(); | 33 Register name = LoadDescriptor::NameRegister(); |
34 static Register registers[] = {receiver, name, x3, x0, x4, x5}; | 34 static Register registers[] = {receiver, name, x3, x0, x4, x5}; |
35 return registers; | 35 return registers; |
36 } | 36 } |
37 | 37 |
38 | 38 |
39 Register* PropertyAccessCompiler::store_calling_convention() { | 39 Register* PropertyAccessCompiler::store_calling_convention() { |
40 // receiver, value, scratch1, scratch2, scratch3. | 40 // receiver, value, scratch1, scratch2, scratch3. |
41 Register receiver = StoreConvention::ReceiverRegister(); | 41 Register receiver = StoreDescriptor::ReceiverRegister(); |
42 Register name = StoreConvention::NameRegister(); | 42 Register name = StoreDescriptor::NameRegister(); |
43 DCHECK(x3.is(StoreConvention::MapRegister())); | 43 DCHECK(x3.is(ElementTransitionAndStoreDescriptor::MapRegister())); |
44 static Register registers[] = {receiver, name, x3, x4, x5}; | 44 static Register registers[] = {receiver, name, x3, x4, x5}; |
45 return registers; | 45 return registers; |
46 } | 46 } |
47 | 47 |
48 | 48 |
49 #undef __ | 49 #undef __ |
50 } | 50 } |
51 } // namespace v8::internal | 51 } // namespace v8::internal |
52 | 52 |
53 #endif // V8_TARGET_ARCH_ARM64 | 53 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |