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/ast/scopes.h" | 7 #include "src/ast/scopes.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 797 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
808 break; | 808 break; |
809 case kIA32Lzcnt: | 809 case kIA32Lzcnt: |
810 __ Lzcnt(i.OutputRegister(), i.InputOperand(0)); | 810 __ Lzcnt(i.OutputRegister(), i.InputOperand(0)); |
811 break; | 811 break; |
812 case kIA32Tzcnt: | 812 case kIA32Tzcnt: |
813 __ Tzcnt(i.OutputRegister(), i.InputOperand(0)); | 813 __ Tzcnt(i.OutputRegister(), i.InputOperand(0)); |
814 break; | 814 break; |
815 case kIA32Popcnt: | 815 case kIA32Popcnt: |
816 __ Popcnt(i.OutputRegister(), i.InputOperand(0)); | 816 __ Popcnt(i.OutputRegister(), i.InputOperand(0)); |
817 break; | 817 break; |
| 818 case kX87Float64Log: |
| 819 __ sub(esp, Immediate(kDoubleSize)); |
| 820 __ movsd(Operand(esp, 0), i.InputDoubleRegister(0)); |
| 821 __ fldln2(); |
| 822 __ fld_d(Operand(esp, 0)); |
| 823 __ fyl2x(); |
| 824 __ fstp_d(Operand(esp, 0)); |
| 825 __ movsd(i.OutputDoubleRegister(), Operand(esp, 0)); |
| 826 __ add(esp, Immediate(kDoubleSize)); |
| 827 break; |
818 case kSSEFloat32Cmp: | 828 case kSSEFloat32Cmp: |
819 __ ucomiss(i.InputDoubleRegister(0), i.InputOperand(1)); | 829 __ ucomiss(i.InputDoubleRegister(0), i.InputOperand(1)); |
820 break; | 830 break; |
821 case kSSEFloat32Add: | 831 case kSSEFloat32Add: |
822 __ addss(i.InputDoubleRegister(0), i.InputOperand(1)); | 832 __ addss(i.InputDoubleRegister(0), i.InputOperand(1)); |
823 break; | 833 break; |
824 case kSSEFloat32Sub: | 834 case kSSEFloat32Sub: |
825 __ subss(i.InputDoubleRegister(0), i.InputOperand(1)); | 835 __ subss(i.InputDoubleRegister(0), i.InputOperand(1)); |
826 break; | 836 break; |
827 case kSSEFloat32Mul: | 837 case kSSEFloat32Mul: |
(...skipping 1129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1957 int padding_size = last_lazy_deopt_pc_ + space_needed - current_pc; | 1967 int padding_size = last_lazy_deopt_pc_ + space_needed - current_pc; |
1958 __ Nop(padding_size); | 1968 __ Nop(padding_size); |
1959 } | 1969 } |
1960 } | 1970 } |
1961 | 1971 |
1962 #undef __ | 1972 #undef __ |
1963 | 1973 |
1964 } // namespace compiler | 1974 } // namespace compiler |
1965 } // namespace internal | 1975 } // namespace internal |
1966 } // namespace v8 | 1976 } // namespace v8 |
OLD | NEW |