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 540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
551 break; | 551 break; |
552 } | 552 } |
553 case kArm64Umod32: { | 553 case kArm64Umod32: { |
554 UseScratchRegisterScope scope(masm()); | 554 UseScratchRegisterScope scope(masm()); |
555 Register temp = scope.AcquireW(); | 555 Register temp = scope.AcquireW(); |
556 __ Udiv(temp, i.InputRegister32(0), i.InputRegister32(1)); | 556 __ Udiv(temp, i.InputRegister32(0), i.InputRegister32(1)); |
557 __ Msub(i.OutputRegister32(), temp, i.InputRegister32(1), | 557 __ Msub(i.OutputRegister32(), temp, i.InputRegister32(1), |
558 i.InputRegister32(0)); | 558 i.InputRegister32(0)); |
559 break; | 559 break; |
560 } | 560 } |
561 // TODO(dcarney): use mvn instr?? | |
562 case kArm64Not: | 561 case kArm64Not: |
563 __ Orn(i.OutputRegister(), xzr, i.InputOperand(0)); | 562 __ Mvn(i.OutputRegister(), i.InputOperand(0)); |
564 break; | 563 break; |
565 case kArm64Not32: | 564 case kArm64Not32: |
566 __ Orn(i.OutputRegister32(), wzr, i.InputOperand32(0)); | 565 __ Mvn(i.OutputRegister32(), i.InputOperand32(0)); |
567 break; | 566 break; |
568 case kArm64Neg: | 567 case kArm64Neg: |
569 __ Neg(i.OutputRegister(), i.InputOperand(0)); | 568 __ Neg(i.OutputRegister(), i.InputOperand(0)); |
570 break; | 569 break; |
571 case kArm64Neg32: | 570 case kArm64Neg32: |
572 __ Neg(i.OutputRegister32(), i.InputOperand32(0)); | 571 __ Neg(i.OutputRegister32(), i.InputOperand32(0)); |
573 break; | 572 break; |
574 case kArm64Or: | 573 case kArm64Or: |
575 __ Orr(i.OutputRegister(), i.InputRegister(0), i.InputOperand2_64(1)); | 574 __ Orr(i.OutputRegister(), i.InputRegister(0), i.InputOperand2_64(1)); |
576 break; | 575 break; |
(...skipping 746 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1323 } | 1322 } |
1324 } | 1323 } |
1325 MarkLazyDeoptSite(); | 1324 MarkLazyDeoptSite(); |
1326 } | 1325 } |
1327 | 1326 |
1328 #undef __ | 1327 #undef __ |
1329 | 1328 |
1330 } // namespace compiler | 1329 } // namespace compiler |
1331 } // namespace internal | 1330 } // namespace internal |
1332 } // namespace v8 | 1331 } // namespace v8 |
OLD | NEW |