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 #if V8_TARGET_ARCH_X64 | 5 #if V8_TARGET_ARCH_X64 |
6 | 6 |
7 #include "src/crankshaft/x64/lithium-codegen-x64.h" | 7 #include "src/crankshaft/x64/lithium-codegen-x64.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 4595 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4606 Register result = ToRegister(instr->result()); | 4606 Register result = ToRegister(instr->result()); |
4607 | 4607 |
4608 // TODO(3095996): Get rid of this. For now, we need to make the | 4608 // TODO(3095996): Get rid of this. For now, we need to make the |
4609 // result register contain a valid pointer because it is already | 4609 // result register contain a valid pointer because it is already |
4610 // contained in the register pointer map. | 4610 // contained in the register pointer map. |
4611 __ Set(result, 0); | 4611 __ Set(result, 0); |
4612 | 4612 |
4613 PushSafepointRegistersScope scope(this); | 4613 PushSafepointRegistersScope scope(this); |
4614 __ Integer32ToSmi(char_code, char_code); | 4614 __ Integer32ToSmi(char_code, char_code); |
4615 __ Push(char_code); | 4615 __ Push(char_code); |
4616 CallRuntimeFromDeferred(Runtime::kCharFromCode, 1, instr, instr->context()); | 4616 CallRuntimeFromDeferred(Runtime::kStringCharFromCode, 1, instr, |
| 4617 instr->context()); |
4617 __ StoreToSafepointRegisterSlot(result, rax); | 4618 __ StoreToSafepointRegisterSlot(result, rax); |
4618 } | 4619 } |
4619 | 4620 |
4620 | 4621 |
4621 void LCodeGen::DoInteger32ToDouble(LInteger32ToDouble* instr) { | 4622 void LCodeGen::DoInteger32ToDouble(LInteger32ToDouble* instr) { |
4622 LOperand* input = instr->value(); | 4623 LOperand* input = instr->value(); |
4623 DCHECK(input->IsRegister() || input->IsStackSlot()); | 4624 DCHECK(input->IsRegister() || input->IsStackSlot()); |
4624 LOperand* output = instr->result(); | 4625 LOperand* output = instr->result(); |
4625 DCHECK(output->IsDoubleRegister()); | 4626 DCHECK(output->IsDoubleRegister()); |
4626 if (input->IsRegister()) { | 4627 if (input->IsRegister()) { |
(...skipping 1220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5847 RecordSafepoint(Safepoint::kNoLazyDeopt); | 5848 RecordSafepoint(Safepoint::kNoLazyDeopt); |
5848 } | 5849 } |
5849 | 5850 |
5850 | 5851 |
5851 #undef __ | 5852 #undef __ |
5852 | 5853 |
5853 } // namespace internal | 5854 } // namespace internal |
5854 } // namespace v8 | 5855 } // namespace v8 |
5855 | 5856 |
5856 #endif // V8_TARGET_ARCH_X64 | 5857 #endif // V8_TARGET_ARCH_X64 |
OLD | NEW |