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/ast/scopes.h" | 5 #include "src/ast/scopes.h" |
6 #include "src/compiler/code-generator.h" | 6 #include "src/compiler/code-generator.h" |
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 896 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
907 __ max_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 907 __ max_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
908 i.InputDoubleRegister(1)); | 908 i.InputDoubleRegister(1)); |
909 break; | 909 break; |
910 case kMipsMinS: | 910 case kMipsMinS: |
911 __ min_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 911 __ min_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
912 i.InputDoubleRegister(1)); | 912 i.InputDoubleRegister(1)); |
913 break; | 913 break; |
914 case kMipsCmpD: | 914 case kMipsCmpD: |
915 // Psuedo-instruction used for FP cmp/branch. No opcode emitted here. | 915 // Psuedo-instruction used for FP cmp/branch. No opcode emitted here. |
916 break; | 916 break; |
| 917 case kMipsMulPair: { |
| 918 __ Mulu(i.OutputRegister(1), i.OutputRegister(0), i.InputRegister(0), |
| 919 i.InputRegister(2)); |
| 920 __ mul(kScratchReg, i.InputRegister(0), i.InputRegister(3)); |
| 921 __ mul(kScratchReg2, i.InputRegister(1), i.InputRegister(2)); |
| 922 __ Addu(i.OutputRegister(1), i.OutputRegister(1), kScratchReg); |
| 923 __ Addu(i.OutputRegister(1), i.OutputRegister(1), kScratchReg2); |
| 924 } break; |
917 case kMipsAddD: | 925 case kMipsAddD: |
918 // TODO(plind): add special case: combine mult & add. | 926 // TODO(plind): add special case: combine mult & add. |
919 __ add_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 927 __ add_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
920 i.InputDoubleRegister(1)); | 928 i.InputDoubleRegister(1)); |
921 break; | 929 break; |
922 case kMipsSubD: | 930 case kMipsSubD: |
923 __ sub_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 931 __ sub_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
924 i.InputDoubleRegister(1)); | 932 i.InputDoubleRegister(1)); |
925 break; | 933 break; |
926 case kMipsMulD: | 934 case kMipsMulD: |
(...skipping 938 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1865 padding_size -= v8::internal::Assembler::kInstrSize; | 1873 padding_size -= v8::internal::Assembler::kInstrSize; |
1866 } | 1874 } |
1867 } | 1875 } |
1868 } | 1876 } |
1869 | 1877 |
1870 #undef __ | 1878 #undef __ |
1871 | 1879 |
1872 } // namespace compiler | 1880 } // namespace compiler |
1873 } // namespace internal | 1881 } // namespace internal |
1874 } // namespace v8 | 1882 } // namespace v8 |
OLD | NEW |