OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_X64 | 7 #if V8_TARGET_ARCH_X64 |
8 | 8 |
9 #include "x64/lithium-codegen-x64.h" | 9 #include "x64/lithium-codegen-x64.h" |
10 #include "code-stubs.h" | 10 #include "code-stubs.h" |
(...skipping 4382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4393 __ Move(rbx, to_map); | 4393 __ Move(rbx, to_map); |
4394 bool is_js_array = from_map->instance_type() == JS_ARRAY_TYPE; | 4394 bool is_js_array = from_map->instance_type() == JS_ARRAY_TYPE; |
4395 TransitionElementsKindStub stub(isolate(), from_kind, to_kind, is_js_array); | 4395 TransitionElementsKindStub stub(isolate(), from_kind, to_kind, is_js_array); |
4396 __ CallStub(&stub); | 4396 __ CallStub(&stub); |
4397 RecordSafepointWithLazyDeopt(instr, RECORD_SAFEPOINT_WITH_REGISTERS, 0); | 4397 RecordSafepointWithLazyDeopt(instr, RECORD_SAFEPOINT_WITH_REGISTERS, 0); |
4398 } | 4398 } |
4399 __ bind(¬_applicable); | 4399 __ bind(¬_applicable); |
4400 } | 4400 } |
4401 | 4401 |
4402 | 4402 |
| 4403 void LCodeGen::DoArrayShift(LArrayShift* instr) { |
| 4404 ASSERT(ToRegister(instr->context()).is(rsi)); |
| 4405 ASSERT(ToRegister(instr->object()).is(rax)); |
| 4406 ASSERT(ToRegister(instr->result()).is(rax)); |
| 4407 ArrayShiftStub stub(isolate(), instr->hydrogen()->kind()); |
| 4408 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); |
| 4409 } |
| 4410 |
| 4411 |
4403 void LCodeGen::DoTrapAllocationMemento(LTrapAllocationMemento* instr) { | 4412 void LCodeGen::DoTrapAllocationMemento(LTrapAllocationMemento* instr) { |
4404 Register object = ToRegister(instr->object()); | 4413 Register object = ToRegister(instr->object()); |
4405 Register temp = ToRegister(instr->temp()); | 4414 Register temp = ToRegister(instr->temp()); |
4406 Label no_memento_found; | 4415 Label no_memento_found; |
4407 __ TestJSArrayForAllocationMemento(object, temp, &no_memento_found); | 4416 __ TestJSArrayForAllocationMemento(object, temp, &no_memento_found); |
4408 DeoptimizeIf(equal, instr->environment()); | 4417 DeoptimizeIf(equal, instr->environment()); |
4409 __ bind(&no_memento_found); | 4418 __ bind(&no_memento_found); |
4410 } | 4419 } |
4411 | 4420 |
4412 | 4421 |
(...skipping 1299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5712 __ bind(deferred->exit()); | 5721 __ bind(deferred->exit()); |
5713 __ bind(&done); | 5722 __ bind(&done); |
5714 } | 5723 } |
5715 | 5724 |
5716 | 5725 |
5717 #undef __ | 5726 #undef __ |
5718 | 5727 |
5719 } } // namespace v8::internal | 5728 } } // namespace v8::internal |
5720 | 5729 |
5721 #endif // V8_TARGET_ARCH_X64 | 5730 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |