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/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/arm/lithium-codegen-arm.h" | 7 #include "src/arm/lithium-codegen-arm.h" |
8 #include "src/arm/lithium-gap-resolver-arm.h" | 8 #include "src/arm/lithium-gap-resolver-arm.h" |
9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
10 #include "src/hydrogen-osr.h" | 10 #include "src/hydrogen-osr.h" |
(...skipping 3830 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3841 __ bind(&convert); | 3841 __ bind(&convert); |
3842 __ vadd(input_plus_dot_five, input, dot_five); | 3842 __ vadd(input_plus_dot_five, input, dot_five); |
3843 // Reuse dot_five (double_scratch0) as we no longer need this value. | 3843 // Reuse dot_five (double_scratch0) as we no longer need this value. |
3844 __ TryInt32Floor(result, input_plus_dot_five, input_high, double_scratch0(), | 3844 __ TryInt32Floor(result, input_plus_dot_five, input_high, double_scratch0(), |
3845 &done, &done); | 3845 &done, &done); |
3846 DeoptimizeIf(al, instr->environment()); | 3846 DeoptimizeIf(al, instr->environment()); |
3847 __ bind(&done); | 3847 __ bind(&done); |
3848 } | 3848 } |
3849 | 3849 |
3850 | 3850 |
| 3851 void LCodeGen::DoMathFround(LMathFround* instr) { |
| 3852 DwVfpRegister input_reg = ToDoubleRegister(instr->value()); |
| 3853 DwVfpRegister output_reg = ToDoubleRegister(instr->result()); |
| 3854 LowDwVfpRegister scratch = double_scratch0(); |
| 3855 __ vcvt_f32_f64(scratch.low(), input_reg); |
| 3856 __ vcvt_f64_f32(output_reg, scratch.low()); |
| 3857 } |
| 3858 |
| 3859 |
3851 void LCodeGen::DoMathSqrt(LMathSqrt* instr) { | 3860 void LCodeGen::DoMathSqrt(LMathSqrt* instr) { |
3852 DwVfpRegister input = ToDoubleRegister(instr->value()); | 3861 DwVfpRegister input = ToDoubleRegister(instr->value()); |
3853 DwVfpRegister result = ToDoubleRegister(instr->result()); | 3862 DwVfpRegister result = ToDoubleRegister(instr->result()); |
3854 __ vsqrt(result, input); | 3863 __ vsqrt(result, input); |
3855 } | 3864 } |
3856 | 3865 |
3857 | 3866 |
3858 void LCodeGen::DoMathPowHalf(LMathPowHalf* instr) { | 3867 void LCodeGen::DoMathPowHalf(LMathPowHalf* instr) { |
3859 DwVfpRegister input = ToDoubleRegister(instr->value()); | 3868 DwVfpRegister input = ToDoubleRegister(instr->value()); |
3860 DwVfpRegister result = ToDoubleRegister(instr->result()); | 3869 DwVfpRegister result = ToDoubleRegister(instr->result()); |
(...skipping 2012 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5873 __ Push(scope_info); | 5882 __ Push(scope_info); |
5874 __ push(ToRegister(instr->function())); | 5883 __ push(ToRegister(instr->function())); |
5875 CallRuntime(Runtime::kPushBlockContext, 2, instr); | 5884 CallRuntime(Runtime::kPushBlockContext, 2, instr); |
5876 RecordSafepoint(Safepoint::kNoLazyDeopt); | 5885 RecordSafepoint(Safepoint::kNoLazyDeopt); |
5877 } | 5886 } |
5878 | 5887 |
5879 | 5888 |
5880 #undef __ | 5889 #undef __ |
5881 | 5890 |
5882 } } // namespace v8::internal | 5891 } } // namespace v8::internal |
OLD | NEW |