| 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 360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 371 __ Sxtw(i.OutputRegister(), i.InputRegister(0)); | 371 __ Sxtw(i.OutputRegister(), i.InputRegister(0)); |
| 372 break; | 372 break; |
| 373 case kArm64Int64ToInt32: | 373 case kArm64Int64ToInt32: |
| 374 if (!i.OutputRegister().is(i.InputRegister(0))) { | 374 if (!i.OutputRegister().is(i.InputRegister(0))) { |
| 375 __ Mov(i.OutputRegister(), i.InputRegister(0)); | 375 __ Mov(i.OutputRegister(), i.InputRegister(0)); |
| 376 } | 376 } |
| 377 break; | 377 break; |
| 378 case kArm64Float64ToInt32: | 378 case kArm64Float64ToInt32: |
| 379 __ Fcvtzs(i.OutputRegister32(), i.InputDoubleRegister(0)); | 379 __ Fcvtzs(i.OutputRegister32(), i.InputDoubleRegister(0)); |
| 380 break; | 380 break; |
| 381 case kArm64Float64ToUint32: |
| 382 __ Fcvtzu(i.OutputRegister32(), i.InputDoubleRegister(0)); |
| 383 break; |
| 381 case kArm64Int32ToFloat64: | 384 case kArm64Int32ToFloat64: |
| 382 __ Scvtf(i.OutputDoubleRegister(), i.InputRegister32(0)); | 385 __ Scvtf(i.OutputDoubleRegister(), i.InputRegister32(0)); |
| 383 break; | 386 break; |
| 387 case kArm64Uint32ToFloat64: |
| 388 __ Ucvtf(i.OutputDoubleRegister(), i.InputRegister32(0)); |
| 389 break; |
| 384 case kArm64LoadWord8: | 390 case kArm64LoadWord8: |
| 385 __ Ldrb(i.OutputRegister(), i.MemoryOperand()); | 391 __ Ldrb(i.OutputRegister(), i.MemoryOperand()); |
| 386 break; | 392 break; |
| 387 case kArm64StoreWord8: | 393 case kArm64StoreWord8: |
| 388 __ Strb(i.InputRegister(2), i.MemoryOperand()); | 394 __ Strb(i.InputRegister(2), i.MemoryOperand()); |
| 389 break; | 395 break; |
| 390 case kArm64LoadWord16: | 396 case kArm64LoadWord16: |
| 391 __ Ldrh(i.OutputRegister(), i.MemoryOperand()); | 397 __ Ldrh(i.OutputRegister(), i.MemoryOperand()); |
| 392 break; | 398 break; |
| 393 case kArm64StoreWord16: | 399 case kArm64StoreWord16: |
| (...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 816 v8::internal::Instruction* instr = | 822 v8::internal::Instruction* instr = |
| 817 reinterpret_cast<v8::internal::Instruction*>(instr_address); | 823 reinterpret_cast<v8::internal::Instruction*>(instr_address); |
| 818 return instr->IsMovz() && instr->Rd() == xzr.code() && instr->SixtyFourBits(); | 824 return instr->IsMovz() && instr->Rd() == xzr.code() && instr->SixtyFourBits(); |
| 819 } | 825 } |
| 820 | 826 |
| 821 #endif // DEBUG | 827 #endif // DEBUG |
| 822 | 828 |
| 823 } // namespace compiler | 829 } // namespace compiler |
| 824 } // namespace internal | 830 } // namespace internal |
| 825 } // namespace v8 | 831 } // namespace v8 |
| OLD | NEW |