| 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 1304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1315 | 1315 |
| 1316 static void f64_asin_wrapper(double* param) { | 1316 static void f64_asin_wrapper(double* param) { |
| 1317 WriteDoubleValue(param, std::asin(ReadDoubleValue(param))); | 1317 WriteDoubleValue(param, std::asin(ReadDoubleValue(param))); |
| 1318 } | 1318 } |
| 1319 | 1319 |
| 1320 ExternalReference ExternalReference::f64_asin_wrapper_function( | 1320 ExternalReference ExternalReference::f64_asin_wrapper_function( |
| 1321 Isolate* isolate) { | 1321 Isolate* isolate) { |
| 1322 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_asin_wrapper))); | 1322 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_asin_wrapper))); |
| 1323 } | 1323 } |
| 1324 | 1324 |
| 1325 static void f64_atan_wrapper(double* param) { | |
| 1326 WriteDoubleValue(param, base::ieee754::atan(ReadDoubleValue(param))); | |
| 1327 } | |
| 1328 | |
| 1329 ExternalReference ExternalReference::f64_atan_wrapper_function( | |
| 1330 Isolate* isolate) { | |
| 1331 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_atan_wrapper))); | |
| 1332 } | |
| 1333 | |
| 1334 static void f64_cos_wrapper(double* param) { | 1325 static void f64_cos_wrapper(double* param) { |
| 1335 WriteDoubleValue(param, std::cos(ReadDoubleValue(param))); | 1326 WriteDoubleValue(param, std::cos(ReadDoubleValue(param))); |
| 1336 } | 1327 } |
| 1337 | 1328 |
| 1338 ExternalReference ExternalReference::f64_cos_wrapper_function( | 1329 ExternalReference ExternalReference::f64_cos_wrapper_function( |
| 1339 Isolate* isolate) { | 1330 Isolate* isolate) { |
| 1340 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_cos_wrapper))); | 1331 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_cos_wrapper))); |
| 1341 } | 1332 } |
| 1342 | 1333 |
| 1343 static void f64_sin_wrapper(double* param) { | 1334 static void f64_sin_wrapper(double* param) { |
| (...skipping 26 matching lines...) Expand all Loading... |
| 1370 static void f64_pow_wrapper(double* param0, double* param1) { | 1361 static void f64_pow_wrapper(double* param0, double* param1) { |
| 1371 WriteDoubleValue(param0, power_double_double(ReadDoubleValue(param0), | 1362 WriteDoubleValue(param0, power_double_double(ReadDoubleValue(param0), |
| 1372 ReadDoubleValue(param1))); | 1363 ReadDoubleValue(param1))); |
| 1373 } | 1364 } |
| 1374 | 1365 |
| 1375 ExternalReference ExternalReference::f64_pow_wrapper_function( | 1366 ExternalReference ExternalReference::f64_pow_wrapper_function( |
| 1376 Isolate* isolate) { | 1367 Isolate* isolate) { |
| 1377 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_pow_wrapper))); | 1368 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_pow_wrapper))); |
| 1378 } | 1369 } |
| 1379 | 1370 |
| 1380 static void f64_atan2_wrapper(double* param0, double* param1) { | |
| 1381 double x = ReadDoubleValue(param0); | |
| 1382 double y = ReadDoubleValue(param1); | |
| 1383 // TODO(bradnelson): Find a good place to put this to share | |
| 1384 // with the same code in src/runtime/runtime-math.cc | |
| 1385 static const double kPiDividedBy4 = 0.78539816339744830962; | |
| 1386 if (std::isinf(x) && std::isinf(y)) { | |
| 1387 // Make sure that the result in case of two infinite arguments | |
| 1388 // is a multiple of Pi / 4. The sign of the result is determined | |
| 1389 // by the first argument (x) and the sign of the second argument | |
| 1390 // determines the multiplier: one or three. | |
| 1391 int multiplier = (x < 0) ? -1 : 1; | |
| 1392 if (y < 0) multiplier *= 3; | |
| 1393 WriteDoubleValue(param0, multiplier * kPiDividedBy4); | |
| 1394 } else { | |
| 1395 WriteDoubleValue(param0, base::ieee754::atan2(x, y)); | |
| 1396 } | |
| 1397 } | |
| 1398 | |
| 1399 ExternalReference ExternalReference::f64_atan2_wrapper_function( | |
| 1400 Isolate* isolate) { | |
| 1401 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_atan2_wrapper))); | |
| 1402 } | |
| 1403 | |
| 1404 static void f64_mod_wrapper(double* param0, double* param1) { | 1371 static void f64_mod_wrapper(double* param0, double* param1) { |
| 1405 WriteDoubleValue(param0, | 1372 WriteDoubleValue(param0, |
| 1406 modulo(ReadDoubleValue(param0), ReadDoubleValue(param1))); | 1373 modulo(ReadDoubleValue(param0), ReadDoubleValue(param1))); |
| 1407 } | 1374 } |
| 1408 | 1375 |
| 1409 ExternalReference ExternalReference::f64_mod_wrapper_function( | 1376 ExternalReference ExternalReference::f64_mod_wrapper_function( |
| 1410 Isolate* isolate) { | 1377 Isolate* isolate) { |
| 1411 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_mod_wrapper))); | 1378 return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_mod_wrapper))); |
| 1412 } | 1379 } |
| 1413 | 1380 |
| (...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2127 | 2094 |
| 2128 | 2095 |
| 2129 void Assembler::DataAlign(int m) { | 2096 void Assembler::DataAlign(int m) { |
| 2130 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); | 2097 DCHECK(m >= 2 && base::bits::IsPowerOfTwo32(m)); |
| 2131 while ((pc_offset() & (m - 1)) != 0) { | 2098 while ((pc_offset() & (m - 1)) != 0) { |
| 2132 db(0); | 2099 db(0); |
| 2133 } | 2100 } |
| 2134 } | 2101 } |
| 2135 } // namespace internal | 2102 } // namespace internal |
| 2136 } // namespace v8 | 2103 } // namespace v8 |
| OLD | NEW |