| 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 |