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 #include "src/crankshaft/arm/lithium-codegen-arm.h" | 5 #include "src/crankshaft/arm/lithium-codegen-arm.h" |
6 | 6 |
7 #include "src/base/bits.h" | 7 #include "src/base/bits.h" |
8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
10 #include "src/crankshaft/arm/lithium-gap-resolver-arm.h" | 10 #include "src/crankshaft/arm/lithium-gap-resolver-arm.h" |
(...skipping 4483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4494 Register result = ToRegister(instr->result()); | 4494 Register result = ToRegister(instr->result()); |
4495 | 4495 |
4496 // TODO(3095996): Get rid of this. For now, we need to make the | 4496 // TODO(3095996): Get rid of this. For now, we need to make the |
4497 // result register contain a valid pointer because it is already | 4497 // result register contain a valid pointer because it is already |
4498 // contained in the register pointer map. | 4498 // contained in the register pointer map. |
4499 __ mov(result, Operand::Zero()); | 4499 __ mov(result, Operand::Zero()); |
4500 | 4500 |
4501 PushSafepointRegistersScope scope(this); | 4501 PushSafepointRegistersScope scope(this); |
4502 __ SmiTag(char_code); | 4502 __ SmiTag(char_code); |
4503 __ push(char_code); | 4503 __ push(char_code); |
4504 CallRuntimeFromDeferred(Runtime::kCharFromCode, 1, instr, instr->context()); | 4504 CallRuntimeFromDeferred(Runtime::kStringCharFromCode, 1, instr, |
| 4505 instr->context()); |
4505 __ StoreToSafepointRegisterSlot(r0, result); | 4506 __ StoreToSafepointRegisterSlot(r0, result); |
4506 } | 4507 } |
4507 | 4508 |
4508 | 4509 |
4509 void LCodeGen::DoInteger32ToDouble(LInteger32ToDouble* instr) { | 4510 void LCodeGen::DoInteger32ToDouble(LInteger32ToDouble* instr) { |
4510 LOperand* input = instr->value(); | 4511 LOperand* input = instr->value(); |
4511 DCHECK(input->IsRegister() || input->IsStackSlot()); | 4512 DCHECK(input->IsRegister() || input->IsStackSlot()); |
4512 LOperand* output = instr->result(); | 4513 LOperand* output = instr->result(); |
4513 DCHECK(output->IsDoubleRegister()); | 4514 DCHECK(output->IsDoubleRegister()); |
4514 SwVfpRegister single_scratch = double_scratch0().low(); | 4515 SwVfpRegister single_scratch = double_scratch0().low(); |
(...skipping 1255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5770 __ push(ToRegister(instr->function())); | 5771 __ push(ToRegister(instr->function())); |
5771 CallRuntime(Runtime::kPushBlockContext, 2, instr); | 5772 CallRuntime(Runtime::kPushBlockContext, 2, instr); |
5772 RecordSafepoint(Safepoint::kNoLazyDeopt); | 5773 RecordSafepoint(Safepoint::kNoLazyDeopt); |
5773 } | 5774 } |
5774 | 5775 |
5775 | 5776 |
5776 #undef __ | 5777 #undef __ |
5777 | 5778 |
5778 } // namespace internal | 5779 } // namespace internal |
5779 } // namespace v8 | 5780 } // namespace v8 |
OLD | NEW |