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 1151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1162 break; | 1162 break; |
1163 case kMips64AddS: | 1163 case kMips64AddS: |
1164 // TODO(plind): add special case: combine mult & add. | 1164 // TODO(plind): add special case: combine mult & add. |
1165 __ add_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 1165 __ add_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
1166 i.InputDoubleRegister(1)); | 1166 i.InputDoubleRegister(1)); |
1167 break; | 1167 break; |
1168 case kMips64SubS: | 1168 case kMips64SubS: |
1169 __ sub_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 1169 __ sub_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
1170 i.InputDoubleRegister(1)); | 1170 i.InputDoubleRegister(1)); |
1171 break; | 1171 break; |
| 1172 case kMips64SubPreserveNanS: |
| 1173 __ SubNanPreservePayloadAndSign_s(i.OutputDoubleRegister(), |
| 1174 i.InputDoubleRegister(0), |
| 1175 i.InputDoubleRegister(1)); |
| 1176 break; |
1172 case kMips64MulS: | 1177 case kMips64MulS: |
1173 // TODO(plind): add special case: right op is -1.0, see arm port. | 1178 // TODO(plind): add special case: right op is -1.0, see arm port. |
1174 __ mul_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 1179 __ mul_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
1175 i.InputDoubleRegister(1)); | 1180 i.InputDoubleRegister(1)); |
1176 break; | 1181 break; |
1177 case kMips64DivS: | 1182 case kMips64DivS: |
1178 __ div_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 1183 __ div_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
1179 i.InputDoubleRegister(1)); | 1184 i.InputDoubleRegister(1)); |
1180 break; | 1185 break; |
1181 case kMips64ModS: { | 1186 case kMips64ModS: { |
(...skipping 30 matching lines...) Expand all Loading... |
1212 break; | 1217 break; |
1213 case kMips64AddD: | 1218 case kMips64AddD: |
1214 // TODO(plind): add special case: combine mult & add. | 1219 // TODO(plind): add special case: combine mult & add. |
1215 __ add_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 1220 __ add_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
1216 i.InputDoubleRegister(1)); | 1221 i.InputDoubleRegister(1)); |
1217 break; | 1222 break; |
1218 case kMips64SubD: | 1223 case kMips64SubD: |
1219 __ sub_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 1224 __ sub_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
1220 i.InputDoubleRegister(1)); | 1225 i.InputDoubleRegister(1)); |
1221 break; | 1226 break; |
| 1227 case kMips64SubPreserveNanD: |
| 1228 __ SubNanPreservePayloadAndSign_d(i.OutputDoubleRegister(), |
| 1229 i.InputDoubleRegister(0), |
| 1230 i.InputDoubleRegister(1)); |
| 1231 break; |
1222 case kMips64MulD: | 1232 case kMips64MulD: |
1223 // TODO(plind): add special case: right op is -1.0, see arm port. | 1233 // TODO(plind): add special case: right op is -1.0, see arm port. |
1224 __ mul_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 1234 __ mul_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
1225 i.InputDoubleRegister(1)); | 1235 i.InputDoubleRegister(1)); |
1226 break; | 1236 break; |
1227 case kMips64DivD: | 1237 case kMips64DivD: |
1228 __ div_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), | 1238 __ div_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0), |
1229 i.InputDoubleRegister(1)); | 1239 i.InputDoubleRegister(1)); |
1230 break; | 1240 break; |
1231 case kMips64ModD: { | 1241 case kMips64ModD: { |
(...skipping 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2318 padding_size -= v8::internal::Assembler::kInstrSize; | 2328 padding_size -= v8::internal::Assembler::kInstrSize; |
2319 } | 2329 } |
2320 } | 2330 } |
2321 } | 2331 } |
2322 | 2332 |
2323 #undef __ | 2333 #undef __ |
2324 | 2334 |
2325 } // namespace compiler | 2335 } // namespace compiler |
2326 } // namespace internal | 2336 } // namespace internal |
2327 } // namespace v8 | 2337 } // namespace v8 |
OLD | NEW |