OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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/compiler/code-generator-impl.h" | 7 #include "src/compiler/code-generator-impl.h" |
8 #include "src/compiler/gap-resolver.h" | 8 #include "src/compiler/gap-resolver.h" |
9 #include "src/compiler/node-matchers.h" | 9 #include "src/compiler/node-matchers.h" |
10 #include "src/compiler/osr.h" | 10 #include "src/compiler/osr.h" |
(...skipping 764 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
775 __ Lzcntq(i.OutputRegister(), i.InputOperand(0)); | 775 __ Lzcntq(i.OutputRegister(), i.InputOperand(0)); |
776 } | 776 } |
777 break; | 777 break; |
778 case kX64Lzcnt32: | 778 case kX64Lzcnt32: |
779 if (instr->InputAt(0)->IsRegister()) { | 779 if (instr->InputAt(0)->IsRegister()) { |
780 __ Lzcntl(i.OutputRegister(), i.InputRegister(0)); | 780 __ Lzcntl(i.OutputRegister(), i.InputRegister(0)); |
781 } else { | 781 } else { |
782 __ Lzcntl(i.OutputRegister(), i.InputOperand(0)); | 782 __ Lzcntl(i.OutputRegister(), i.InputOperand(0)); |
783 } | 783 } |
784 break; | 784 break; |
| 785 case kX64Tzcnt: |
| 786 if (instr->InputAt(0)->IsRegister()) { |
| 787 __ Tzcntq(i.OutputRegister(), i.InputRegister(0)); |
| 788 } else { |
| 789 __ Tzcntq(i.OutputRegister(), i.InputOperand(0)); |
| 790 } |
| 791 break; |
785 case kX64Tzcnt32: | 792 case kX64Tzcnt32: |
786 if (instr->InputAt(0)->IsRegister()) { | 793 if (instr->InputAt(0)->IsRegister()) { |
787 __ Tzcntl(i.OutputRegister(), i.InputRegister(0)); | 794 __ Tzcntl(i.OutputRegister(), i.InputRegister(0)); |
788 } else { | 795 } else { |
789 __ Tzcntl(i.OutputRegister(), i.InputOperand(0)); | 796 __ Tzcntl(i.OutputRegister(), i.InputOperand(0)); |
790 } | 797 } |
791 break; | 798 break; |
792 case kX64Popcnt32: | 799 case kX64Popcnt32: |
793 if (instr->InputAt(0)->IsRegister()) { | 800 if (instr->InputAt(0)->IsRegister()) { |
794 __ Popcntl(i.OutputRegister(), i.InputRegister(0)); | 801 __ Popcntl(i.OutputRegister(), i.InputRegister(0)); |
(...skipping 1050 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1845 int padding_size = last_lazy_deopt_pc_ + space_needed - current_pc; | 1852 int padding_size = last_lazy_deopt_pc_ + space_needed - current_pc; |
1846 __ Nop(padding_size); | 1853 __ Nop(padding_size); |
1847 } | 1854 } |
1848 } | 1855 } |
1849 | 1856 |
1850 #undef __ | 1857 #undef __ |
1851 | 1858 |
1852 } // namespace compiler | 1859 } // namespace compiler |
1853 } // namespace internal | 1860 } // namespace internal |
1854 } // namespace v8 | 1861 } // namespace v8 |
OLD | NEW |