| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/compiler/code-generator.h" | 5 #include "src/compiler/code-generator.h" |
| 6 | 6 |
| 7 #include "src/arm64/macro-assembler-arm64.h" | 7 #include "src/arm64/macro-assembler-arm64.h" |
| 8 #include "src/compiler/code-generator-impl.h" | 8 #include "src/compiler/code-generator-impl.h" |
| 9 #include "src/compiler/gap-resolver.h" | 9 #include "src/compiler/gap-resolver.h" |
| 10 #include "src/compiler/node-matchers.h" | 10 #include "src/compiler/node-matchers.h" |
| (...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 366 // TODO(dcarney): implement directly. See note in lithium-codegen-arm64.cc | 366 // TODO(dcarney): implement directly. See note in lithium-codegen-arm64.cc |
| 367 FrameScope scope(masm(), StackFrame::MANUAL); | 367 FrameScope scope(masm(), StackFrame::MANUAL); |
| 368 DCHECK(d0.is(i.InputDoubleRegister(0))); | 368 DCHECK(d0.is(i.InputDoubleRegister(0))); |
| 369 DCHECK(d1.is(i.InputDoubleRegister(1))); | 369 DCHECK(d1.is(i.InputDoubleRegister(1))); |
| 370 DCHECK(d0.is(i.OutputDoubleRegister())); | 370 DCHECK(d0.is(i.OutputDoubleRegister())); |
| 371 // TODO(dcarney): make sure this saves all relevant registers. | 371 // TODO(dcarney): make sure this saves all relevant registers. |
| 372 __ CallCFunction(ExternalReference::mod_two_doubles_operation(isolate()), | 372 __ CallCFunction(ExternalReference::mod_two_doubles_operation(isolate()), |
| 373 0, 2); | 373 0, 2); |
| 374 break; | 374 break; |
| 375 } | 375 } |
| 376 case kArm64Float64Sqrt: |
| 377 __ Fsqrt(i.OutputDoubleRegister(), i.InputDoubleRegister(0)); |
| 378 break; |
| 376 case kArm64Float64ToInt32: | 379 case kArm64Float64ToInt32: |
| 377 __ Fcvtzs(i.OutputRegister32(), i.InputDoubleRegister(0)); | 380 __ Fcvtzs(i.OutputRegister32(), i.InputDoubleRegister(0)); |
| 378 break; | 381 break; |
| 379 case kArm64Float64ToUint32: | 382 case kArm64Float64ToUint32: |
| 380 __ Fcvtzu(i.OutputRegister32(), i.InputDoubleRegister(0)); | 383 __ Fcvtzu(i.OutputRegister32(), i.InputDoubleRegister(0)); |
| 381 break; | 384 break; |
| 382 case kArm64Int32ToFloat64: | 385 case kArm64Int32ToFloat64: |
| 383 __ Scvtf(i.OutputDoubleRegister(), i.InputRegister32(0)); | 386 __ Scvtf(i.OutputDoubleRegister(), i.InputRegister32(0)); |
| 384 break; | 387 break; |
| 385 case kArm64Uint32ToFloat64: | 388 case kArm64Uint32ToFloat64: |
| (...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 867 } | 870 } |
| 868 } | 871 } |
| 869 MarkLazyDeoptSite(); | 872 MarkLazyDeoptSite(); |
| 870 } | 873 } |
| 871 | 874 |
| 872 #undef __ | 875 #undef __ |
| 873 | 876 |
| 874 } // namespace compiler | 877 } // namespace compiler |
| 875 } // namespace internal | 878 } // namespace internal |
| 876 } // namespace v8 | 879 } // namespace v8 |
| OLD | NEW |