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/frames-arm64.h" | 7 #include "src/arm64/frames-arm64.h" |
8 #include "src/arm64/macro-assembler-arm64.h" | 8 #include "src/arm64/macro-assembler-arm64.h" |
9 #include "src/ast/scopes.h" | 9 #include "src/ast/scopes.h" |
10 #include "src/compiler/code-generator-impl.h" | 10 #include "src/compiler/code-generator-impl.h" |
(...skipping 1367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1378 UseScratchRegisterScope scope(masm()); | 1378 UseScratchRegisterScope scope(masm()); |
1379 Register tmp = scope.AcquireX(); | 1379 Register tmp = scope.AcquireX(); |
1380 __ Fmov(tmp.W(), i.InputFloat32Register(0)); | 1380 __ Fmov(tmp.W(), i.InputFloat32Register(0)); |
1381 __ Bfi(tmp, i.InputRegister(1), 32, 32); | 1381 __ Bfi(tmp, i.InputRegister(1), 32, 32); |
1382 __ Fmov(i.OutputFloat64Register(), tmp); | 1382 __ Fmov(i.OutputFloat64Register(), tmp); |
1383 break; | 1383 break; |
1384 } | 1384 } |
1385 case kArm64Float64MoveU64: | 1385 case kArm64Float64MoveU64: |
1386 __ Fmov(i.OutputFloat64Register(), i.InputRegister(0)); | 1386 __ Fmov(i.OutputFloat64Register(), i.InputRegister(0)); |
1387 break; | 1387 break; |
| 1388 case kArm64Float64SilenceNaN: |
| 1389 __ CanonicalizeNaN(i.OutputDoubleRegister(), i.InputDoubleRegister(0)); |
| 1390 break; |
1388 case kArm64U64MoveFloat64: | 1391 case kArm64U64MoveFloat64: |
1389 __ Fmov(i.OutputRegister(), i.InputDoubleRegister(0)); | 1392 __ Fmov(i.OutputRegister(), i.InputDoubleRegister(0)); |
1390 break; | 1393 break; |
1391 case kArm64Ldrb: | 1394 case kArm64Ldrb: |
1392 __ Ldrb(i.OutputRegister(), i.MemoryOperand()); | 1395 __ Ldrb(i.OutputRegister(), i.MemoryOperand()); |
1393 break; | 1396 break; |
1394 case kArm64Ldrsb: | 1397 case kArm64Ldrsb: |
1395 __ Ldrsb(i.OutputRegister(), i.MemoryOperand()); | 1398 __ Ldrsb(i.OutputRegister(), i.MemoryOperand()); |
1396 break; | 1399 break; |
1397 case kArm64Strb: | 1400 case kArm64Strb: |
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1938 padding_size -= kInstructionSize; | 1941 padding_size -= kInstructionSize; |
1939 } | 1942 } |
1940 } | 1943 } |
1941 } | 1944 } |
1942 | 1945 |
1943 #undef __ | 1946 #undef __ |
1944 | 1947 |
1945 } // namespace compiler | 1948 } // namespace compiler |
1946 } // namespace internal | 1949 } // namespace internal |
1947 } // namespace v8 | 1950 } // namespace v8 |
OLD | NEW |