| 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 2557 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2568 } | 2568 } |
| 2569 | 2569 |
| 2570 | 2570 |
| 2571 void LCodeGen::DoCmpMapAndBranch(LCmpMapAndBranch* instr) { | 2571 void LCodeGen::DoCmpMapAndBranch(LCmpMapAndBranch* instr) { |
| 2572 Register reg = ToRegister(instr->value()); | 2572 Register reg = ToRegister(instr->value()); |
| 2573 __ cmp(FieldOperand(reg, HeapObject::kMapOffset), instr->map()); | 2573 __ cmp(FieldOperand(reg, HeapObject::kMapOffset), instr->map()); |
| 2574 EmitBranch(instr, equal); | 2574 EmitBranch(instr, equal); |
| 2575 } | 2575 } |
| 2576 | 2576 |
| 2577 | 2577 |
| 2578 void LCodeGen::DoInstanceOf(LInstanceOf* instr) { | |
| 2579 DCHECK(ToRegister(instr->context()).is(esi)); | |
| 2580 DCHECK(ToRegister(instr->left()).is(InstanceOfDescriptor::LeftRegister())); | |
| 2581 DCHECK(ToRegister(instr->right()).is(InstanceOfDescriptor::RightRegister())); | |
| 2582 DCHECK(ToRegister(instr->result()).is(eax)); | |
| 2583 InstanceOfStub stub(isolate()); | |
| 2584 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); | |
| 2585 } | |
| 2586 | |
| 2587 | |
| 2588 void LCodeGen::DoHasInPrototypeChainAndBranch( | 2578 void LCodeGen::DoHasInPrototypeChainAndBranch( |
| 2589 LHasInPrototypeChainAndBranch* instr) { | 2579 LHasInPrototypeChainAndBranch* instr) { |
| 2590 Register const object = ToRegister(instr->object()); | 2580 Register const object = ToRegister(instr->object()); |
| 2591 Register const object_map = ToRegister(instr->scratch()); | 2581 Register const object_map = ToRegister(instr->scratch()); |
| 2592 Register const object_prototype = object_map; | 2582 Register const object_prototype = object_map; |
| 2593 Register const prototype = ToRegister(instr->prototype()); | 2583 Register const prototype = ToRegister(instr->prototype()); |
| 2594 | 2584 |
| 2595 // The {object} must be a spec object. It's sufficient to know that {object} | 2585 // The {object} must be a spec object. It's sufficient to know that {object} |
| 2596 // is not a smi, since all other non-spec objects have {null} prototypes and | 2586 // is not a smi, since all other non-spec objects have {null} prototypes and |
| 2597 // will be ruled out below. | 2587 // will be ruled out below. |
| (...skipping 3283 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5881 __ bind(deferred->exit()); | 5871 __ bind(deferred->exit()); |
| 5882 __ bind(&done); | 5872 __ bind(&done); |
| 5883 } | 5873 } |
| 5884 | 5874 |
| 5885 #undef __ | 5875 #undef __ |
| 5886 | 5876 |
| 5887 } // namespace internal | 5877 } // namespace internal |
| 5888 } // namespace v8 | 5878 } // namespace v8 |
| 5889 | 5879 |
| 5890 #endif // V8_TARGET_ARCH_X87 | 5880 #endif // V8_TARGET_ARCH_X87 |
| OLD | NEW |