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_X87 | 5 #if V8_TARGET_ARCH_X87 |
6 | 6 |
7 #include "src/crankshaft/x87/lithium-codegen-x87.h" | 7 #include "src/crankshaft/x87/lithium-codegen-x87.h" |
8 | 8 |
9 #include "src/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/code-factory.h" | 10 #include "src/code-factory.h" |
(...skipping 5967 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
5978 | 5978 |
5979 GenerateOsrPrologue(); | 5979 GenerateOsrPrologue(); |
5980 } | 5980 } |
5981 | 5981 |
5982 | 5982 |
5983 void LCodeGen::DoForInPrepareMap(LForInPrepareMap* instr) { | 5983 void LCodeGen::DoForInPrepareMap(LForInPrepareMap* instr) { |
5984 DCHECK(ToRegister(instr->context()).is(esi)); | 5984 DCHECK(ToRegister(instr->context()).is(esi)); |
5985 __ test(eax, Immediate(kSmiTagMask)); | 5985 __ test(eax, Immediate(kSmiTagMask)); |
5986 DeoptimizeIf(zero, instr, Deoptimizer::kSmi); | 5986 DeoptimizeIf(zero, instr, Deoptimizer::kSmi); |
5987 | 5987 |
5988 STATIC_ASSERT(FIRST_JS_PROXY_TYPE == FIRST_JS_RECEIVER_TYPE); | 5988 STATIC_ASSERT(JS_PROXY_TYPE == FIRST_JS_RECEIVER_TYPE); |
5989 __ CmpObjectType(eax, LAST_JS_PROXY_TYPE, ecx); | 5989 __ CmpObjectType(eax, JS_PROXY_TYPE, ecx); |
5990 DeoptimizeIf(below_equal, instr, Deoptimizer::kWrongInstanceType); | 5990 DeoptimizeIf(below_equal, instr, Deoptimizer::kWrongInstanceType); |
Toon Verwaest
2015/12/03 11:48:42
equal
| |
5991 | 5991 |
5992 Label use_cache, call_runtime; | 5992 Label use_cache, call_runtime; |
5993 __ CheckEnumCache(&call_runtime); | 5993 __ CheckEnumCache(&call_runtime); |
5994 | 5994 |
5995 __ mov(eax, FieldOperand(eax, HeapObject::kMapOffset)); | 5995 __ mov(eax, FieldOperand(eax, HeapObject::kMapOffset)); |
5996 __ jmp(&use_cache, Label::kNear); | 5996 __ jmp(&use_cache, Label::kNear); |
5997 | 5997 |
5998 // Get the set of properties to enumerate. | 5998 // Get the set of properties to enumerate. |
5999 __ bind(&call_runtime); | 5999 __ bind(&call_runtime); |
6000 __ push(eax); | 6000 __ push(eax); |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
6123 RecordSafepoint(Safepoint::kNoLazyDeopt); | 6123 RecordSafepoint(Safepoint::kNoLazyDeopt); |
6124 } | 6124 } |
6125 | 6125 |
6126 | 6126 |
6127 #undef __ | 6127 #undef __ |
6128 | 6128 |
6129 } // namespace internal | 6129 } // namespace internal |
6130 } // namespace v8 | 6130 } // namespace v8 |
6131 | 6131 |
6132 #endif // V8_TARGET_ARCH_X87 | 6132 #endif // V8_TARGET_ARCH_X87 |
OLD | NEW |