| OLD | NEW |
| 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. |
| 2 // All Rights Reserved. | 2 // All Rights Reserved. |
| 3 // | 3 // |
| 4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
| 5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
| 6 // met: | 6 // met: |
| 7 // | 7 // |
| 8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, |
| 9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. |
| 10 // | 10 // |
| (...skipping 1270 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1281 ExternalReference ExternalReference::wasm_word32_popcnt(Isolate* isolate) { | 1281 ExternalReference ExternalReference::wasm_word32_popcnt(Isolate* isolate) { |
| 1282 return ExternalReference( | 1282 return ExternalReference( |
| 1283 Redirect(isolate, FUNCTION_ADDR(wasm::word32_popcnt_wrapper))); | 1283 Redirect(isolate, FUNCTION_ADDR(wasm::word32_popcnt_wrapper))); |
| 1284 } | 1284 } |
| 1285 | 1285 |
| 1286 ExternalReference ExternalReference::wasm_word64_popcnt(Isolate* isolate) { | 1286 ExternalReference ExternalReference::wasm_word64_popcnt(Isolate* isolate) { |
| 1287 return ExternalReference( | 1287 return ExternalReference( |
| 1288 Redirect(isolate, FUNCTION_ADDR(wasm::word64_popcnt_wrapper))); | 1288 Redirect(isolate, FUNCTION_ADDR(wasm::word64_popcnt_wrapper))); |
| 1289 } | 1289 } |
| 1290 | 1290 |
| 1291 static void f64_acos_wrapper(double* param) { *param = std::acos(*param); } | 1291 static void f64_acos_wrapper(double* param) { |
| 1292 WriteDoubleValue(param, std::acos(ReadDoubleValue(param))); |
| 1293 } |
| 1292 | 1294 |
| 1293 ExternalReference ExternalReference::f64_acos_wrapper_function( | 1295 ExternalReference ExternalReference::f64_acos_wrapper_function( |
| 1294 Isolate* isolate) { | 1296 Isolate* isolate) { |
| 1295 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_acos_wrapper))); | 1297 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_acos_wrapper))); |
| 1296 } | 1298 } |
| 1297 | 1299 |
| 1298 static void f64_asin_wrapper(double* param) { *param = std::asin(*param); } | 1300 static void f64_asin_wrapper(double* param) { |
| 1301 WriteDoubleValue(param, std::asin(ReadDoubleValue(param))); |
| 1302 } |
| 1299 | 1303 |
| 1300 ExternalReference ExternalReference::f64_asin_wrapper_function( | 1304 ExternalReference ExternalReference::f64_asin_wrapper_function( |
| 1301 Isolate* isolate) { | 1305 Isolate* isolate) { |
| 1302 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_asin_wrapper))); | 1306 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_asin_wrapper))); |
| 1303 } | 1307 } |
| 1304 | 1308 |
| 1305 static void f64_atan_wrapper(double* param) { *param = std::atan(*param); } | 1309 static void f64_atan_wrapper(double* param) { |
| 1310 WriteDoubleValue(param, std::atan(ReadDoubleValue(param))); |
| 1311 } |
| 1306 | 1312 |
| 1307 ExternalReference ExternalReference::f64_atan_wrapper_function( | 1313 ExternalReference ExternalReference::f64_atan_wrapper_function( |
| 1308 Isolate* isolate) { | 1314 Isolate* isolate) { |
| 1309 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_atan_wrapper))); | 1315 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_atan_wrapper))); |
| 1310 } | 1316 } |
| 1311 | 1317 |
| 1312 static void f64_cos_wrapper(double* param) { *param = std::cos(*param); } | 1318 static void f64_cos_wrapper(double* param) { |
| 1319 WriteDoubleValue(param, std::cos(ReadDoubleValue(param))); |
| 1320 } |
| 1313 | 1321 |
| 1314 ExternalReference ExternalReference::f64_cos_wrapper_function( | 1322 ExternalReference ExternalReference::f64_cos_wrapper_function( |
| 1315 Isolate* isolate) { | 1323 Isolate* isolate) { |
| 1316 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_cos_wrapper))); | 1324 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_cos_wrapper))); |
| 1317 } | 1325 } |
| 1318 | 1326 |
| 1319 static void f64_sin_wrapper(double* param) { *param = std::sin(*param); } | 1327 static void f64_sin_wrapper(double* param) { |
| 1328 WriteDoubleValue(param, std::sin(ReadDoubleValue(param))); |
| 1329 } |
| 1320 | 1330 |
| 1321 ExternalReference ExternalReference::f64_sin_wrapper_function( | 1331 ExternalReference ExternalReference::f64_sin_wrapper_function( |
| 1322 Isolate* isolate) { | 1332 Isolate* isolate) { |
| 1323 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_sin_wrapper))); | 1333 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_sin_wrapper))); |
| 1324 } | 1334 } |
| 1325 | 1335 |
| 1326 static void f64_tan_wrapper(double* param) { *param = std::tan(*param); } | 1336 static void f64_tan_wrapper(double* param) { |
| 1337 WriteDoubleValue(param, std::tan(ReadDoubleValue(param))); |
| 1338 } |
| 1327 | 1339 |
| 1328 ExternalReference ExternalReference::f64_tan_wrapper_function( | 1340 ExternalReference ExternalReference::f64_tan_wrapper_function( |
| 1329 Isolate* isolate) { | 1341 Isolate* isolate) { |
| 1330 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_tan_wrapper))); | 1342 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_tan_wrapper))); |
| 1331 } | 1343 } |
| 1332 | 1344 |
| 1333 static void f64_exp_wrapper(double* param) { *param = std::exp(*param); } | 1345 static void f64_exp_wrapper(double* param) { |
| 1346 WriteDoubleValue(param, std::exp(ReadDoubleValue(param))); |
| 1347 } |
| 1334 | 1348 |
| 1335 ExternalReference ExternalReference::f64_exp_wrapper_function( | 1349 ExternalReference ExternalReference::f64_exp_wrapper_function( |
| 1336 Isolate* isolate) { | 1350 Isolate* isolate) { |
| 1337 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_exp_wrapper))); | 1351 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_exp_wrapper))); |
| 1338 } | 1352 } |
| 1339 | 1353 |
| 1340 static void f64_log_wrapper(double* param) { *param = std::log(*param); } | 1354 static void f64_log_wrapper(double* param) { |
| 1355 WriteDoubleValue(param, std::log(ReadDoubleValue(param))); |
| 1356 } |
| 1341 | 1357 |
| 1342 ExternalReference ExternalReference::f64_log_wrapper_function( | 1358 ExternalReference ExternalReference::f64_log_wrapper_function( |
| 1343 Isolate* isolate) { | 1359 Isolate* isolate) { |
| 1344 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_log_wrapper))); | 1360 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_log_wrapper))); |
| 1345 } | 1361 } |
| 1346 | 1362 |
| 1347 static void f64_pow_wrapper(double* param0, double* param1) { | 1363 static void f64_pow_wrapper(double* param0, double* param1) { |
| 1348 *param0 = power_double_double(*param0, *param1); | 1364 WriteDoubleValue(param0, power_double_double(ReadDoubleValue(param0), |
| 1365 ReadDoubleValue(param1))); |
| 1349 } | 1366 } |
| 1350 | 1367 |
| 1351 ExternalReference ExternalReference::f64_pow_wrapper_function( | 1368 ExternalReference ExternalReference::f64_pow_wrapper_function( |
| 1352 Isolate* isolate) { | 1369 Isolate* isolate) { |
| 1353 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_pow_wrapper))); | 1370 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_pow_wrapper))); |
| 1354 } | 1371 } |
| 1355 | 1372 |
| 1356 static void f64_atan2_wrapper(double* param0, double* param1) { | 1373 static void f64_atan2_wrapper(double* param0, double* param1) { |
| 1357 double x = *param0; | 1374 double x = ReadDoubleValue(param0); |
| 1358 double y = *param1; | 1375 double y = ReadDoubleValue(param1); |
| 1359 // TODO(bradnelson): Find a good place to put this to share | 1376 // TODO(bradnelson): Find a good place to put this to share |
| 1360 // with the same code in src/runtime/runtime-math.cc | 1377 // with the same code in src/runtime/runtime-math.cc |
| 1361 static const double kPiDividedBy4 = 0.78539816339744830962; | 1378 static const double kPiDividedBy4 = 0.78539816339744830962; |
| 1362 if (std::isinf(x) && std::isinf(y)) { | 1379 if (std::isinf(x) && std::isinf(y)) { |
| 1363 // Make sure that the result in case of two infinite arguments | 1380 // Make sure that the result in case of two infinite arguments |
| 1364 // is a multiple of Pi / 4. The sign of the result is determined | 1381 // is a multiple of Pi / 4. The sign of the result is determined |
| 1365 // by the first argument (x) and the sign of the second argument | 1382 // by the first argument (x) and the sign of the second argument |
| 1366 // determines the multiplier: one or three. | 1383 // determines the multiplier: one or three. |
| 1367 int multiplier = (x < 0) ? -1 : 1; | 1384 int multiplier = (x < 0) ? -1 : 1; |
| 1368 if (y < 0) multiplier *= 3; | 1385 if (y < 0) multiplier *= 3; |
| 1369 *param0 = multiplier * kPiDividedBy4; | 1386 WriteDoubleValue(param0, multiplier * kPiDividedBy4); |
| 1370 } else { | 1387 } else { |
| 1371 *param0 = std::atan2(x, y); | 1388 WriteDoubleValue(param0, std::atan2(x, y)); |
| 1372 } | 1389 } |
| 1373 } | 1390 } |
| 1374 | 1391 |
| 1375 ExternalReference ExternalReference::f64_atan2_wrapper_function( | 1392 ExternalReference ExternalReference::f64_atan2_wrapper_function( |
| 1376 Isolate* isolate) { | 1393 Isolate* isolate) { |
| 1377 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_atan2_wrapper))); | 1394 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_atan2_wrapper))); |
| 1378 } | 1395 } |
| 1379 | 1396 |
| 1380 static void f64_mod_wrapper(double* param0, double* param1) { | 1397 static void f64_mod_wrapper(double* param0, double* param1) { |
| 1381 *param0 = modulo(*param0, *param1); | 1398 WriteDoubleValue(param0, |
| 1399 modulo(ReadDoubleValue(param0), ReadDoubleValue(param1))); |
| 1382 } | 1400 } |
| 1383 | 1401 |
| 1384 ExternalReference ExternalReference::f64_mod_wrapper_function( | 1402 ExternalReference ExternalReference::f64_mod_wrapper_function( |
| 1385 Isolate* isolate) { | 1403 Isolate* isolate) { |
| 1386 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_mod_wrapper))); | 1404 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_mod_wrapper))); |
| 1387 } | 1405 } |
| 1388 | 1406 |
| 1389 ExternalReference ExternalReference::log_enter_external_function( | 1407 ExternalReference ExternalReference::log_enter_external_function( |
| 1390 Isolate* isolate) { | 1408 Isolate* isolate) { |
| 1391 return ExternalReference( | 1409 return ExternalReference( |
| (...skipping 696 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2088 | 2106 |
| 2089 | 2107 |
| 2090 void Assembler::DataAlign(int m) { | 2108 void Assembler::DataAlign(int m) { |
| 2091 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); | 2109 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); |
| 2092 while ((pc_offset() & (m - 1)) != 0) { | 2110 while ((pc_offset() & (m - 1)) != 0) { |
| 2093 db(0); | 2111 db(0); |
| 2094 } | 2112 } |
| 2095 } | 2113 } |
| 2096 } // namespace internal | 2114 } // namespace internal |
| 2097 } // namespace v8 | 2115 } // namespace v8 |
| OLD | NEW |