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 #if V8_TARGET_ARCH_X64 | 5 #if V8_TARGET_ARCH_X64 |
6 | 6 |
7 #include "src/codegen.h" | 7 #include "src/codegen.h" |
8 #include "src/ic/ic.h" | 8 #include "src/ic/ic.h" |
9 #include "src/ic/stub-cache.h" | 9 #include "src/ic/stub-cache.h" |
10 #include "src/interface-descriptors.h" | 10 #include "src/interface-descriptors.h" |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 Register extra2, Register extra3) { | 86 Register extra2, Register extra3) { |
87 Isolate* isolate = masm->isolate(); | 87 Isolate* isolate = masm->isolate(); |
88 Label miss; | 88 Label miss; |
89 USE(extra); // The register extra is not used on the X64 platform. | 89 USE(extra); // The register extra is not used on the X64 platform. |
90 USE(extra2); // The register extra2 is not used on the X64 platform. | 90 USE(extra2); // The register extra2 is not used on the X64 platform. |
91 USE(extra3); // The register extra2 is not used on the X64 platform. | 91 USE(extra3); // The register extra2 is not used on the X64 platform. |
92 // Make sure that code is valid. The multiplying code relies on the | 92 // Make sure that code is valid. The multiplying code relies on the |
93 // entry size being 3 * kPointerSize. | 93 // entry size being 3 * kPointerSize. |
94 DCHECK(sizeof(Entry) == 3 * kPointerSize); | 94 DCHECK(sizeof(Entry) == 3 * kPointerSize); |
95 | 95 |
96 // Make sure the flags do not name a specific type. | |
97 DCHECK(Code::ExtractTypeFromFlags(flags) == 0); | |
98 | |
99 // Make sure that there are no register conflicts. | 96 // Make sure that there are no register conflicts. |
100 DCHECK(!scratch.is(receiver)); | 97 DCHECK(!scratch.is(receiver)); |
101 DCHECK(!scratch.is(name)); | 98 DCHECK(!scratch.is(name)); |
102 | 99 |
103 // Check scratch register is valid, extra and extra2 are unused. | 100 // Check scratch register is valid, extra and extra2 are unused. |
104 DCHECK(!scratch.is(no_reg)); | 101 DCHECK(!scratch.is(no_reg)); |
105 DCHECK(extra2.is(no_reg)); | 102 DCHECK(extra2.is(no_reg)); |
106 DCHECK(extra3.is(no_reg)); | 103 DCHECK(extra3.is(no_reg)); |
107 | 104 |
108 #ifdef DEBUG | 105 #ifdef DEBUG |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
159 __ bind(&miss); | 156 __ bind(&miss); |
160 __ IncrementCounter(counters->megamorphic_stub_cache_misses(), 1); | 157 __ IncrementCounter(counters->megamorphic_stub_cache_misses(), 1); |
161 } | 158 } |
162 | 159 |
163 | 160 |
164 #undef __ | 161 #undef __ |
165 } // namespace internal | 162 } // namespace internal |
166 } // namespace v8 | 163 } // namespace v8 |
167 | 164 |
168 #endif // V8_TARGET_ARCH_X64 | 165 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |