| 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 869 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 880 | 880 | 
| 881 static double math_log_double(double x) { | 881 static double math_log_double(double x) { | 
| 882   return log(x); | 882   return log(x); | 
| 883 } | 883 } | 
| 884 | 884 | 
| 885 | 885 | 
| 886 ExternalReference ExternalReference::math_sin_double_function( | 886 ExternalReference ExternalReference::math_sin_double_function( | 
| 887     Isolate* isolate) { | 887     Isolate* isolate) { | 
| 888   return ExternalReference(Redirect(isolate, | 888   return ExternalReference(Redirect(isolate, | 
| 889                                     FUNCTION_ADDR(math_sin_double), | 889                                     FUNCTION_ADDR(math_sin_double), | 
| 890                                     FP_RETURN_CALL)); | 890                                     BUILTIN_FP_CALL)); | 
| 891 } | 891 } | 
| 892 | 892 | 
| 893 | 893 | 
| 894 ExternalReference ExternalReference::math_cos_double_function( | 894 ExternalReference ExternalReference::math_cos_double_function( | 
| 895     Isolate* isolate) { | 895     Isolate* isolate) { | 
| 896   return ExternalReference(Redirect(isolate, | 896   return ExternalReference(Redirect(isolate, | 
| 897                                     FUNCTION_ADDR(math_cos_double), | 897                                     FUNCTION_ADDR(math_cos_double), | 
| 898                                     FP_RETURN_CALL)); | 898                                     BUILTIN_FP_CALL)); | 
| 899 } | 899 } | 
| 900 | 900 | 
| 901 | 901 | 
| 902 ExternalReference ExternalReference::math_log_double_function( | 902 ExternalReference ExternalReference::math_log_double_function( | 
| 903     Isolate* isolate) { | 903     Isolate* isolate) { | 
| 904   return ExternalReference(Redirect(isolate, | 904   return ExternalReference(Redirect(isolate, | 
| 905                                     FUNCTION_ADDR(math_log_double), | 905                                     FUNCTION_ADDR(math_log_double), | 
| 906                                     FP_RETURN_CALL)); | 906                                     BUILTIN_FP_CALL)); | 
| 907 } | 907 } | 
| 908 | 908 | 
| 909 | 909 | 
| 910 // Helper function to compute x^y, where y is known to be an | 910 // Helper function to compute x^y, where y is known to be an | 
| 911 // integer. Uses binary decomposition to limit the number of | 911 // integer. Uses binary decomposition to limit the number of | 
| 912 // multiplications; see the discussion in "Hacker's Delight" by Henry | 912 // multiplications; see the discussion in "Hacker's Delight" by Henry | 
| 913 // S. Warren, Jr., figure 11-6, page 213. | 913 // S. Warren, Jr., figure 11-6, page 213. | 
| 914 double power_double_int(double x, int y) { | 914 double power_double_int(double x, int y) { | 
| 915   double m = (y < 0) ? 1 / x : x; | 915   double m = (y < 0) ? 1 / x : x; | 
| 916   unsigned n = (y < 0) ? -y : y; | 916   unsigned n = (y < 0) ? -y : y; | 
| (...skipping 22 matching lines...) Expand all  Loading... | 
| 939     return OS::nan_value(); | 939     return OS::nan_value(); | 
| 940   } | 940   } | 
| 941   return pow(x, y); | 941   return pow(x, y); | 
| 942 } | 942 } | 
| 943 | 943 | 
| 944 | 944 | 
| 945 ExternalReference ExternalReference::power_double_double_function( | 945 ExternalReference ExternalReference::power_double_double_function( | 
| 946     Isolate* isolate) { | 946     Isolate* isolate) { | 
| 947   return ExternalReference(Redirect(isolate, | 947   return ExternalReference(Redirect(isolate, | 
| 948                                     FUNCTION_ADDR(power_double_double), | 948                                     FUNCTION_ADDR(power_double_double), | 
| 949                                     FP_RETURN_CALL)); | 949                                     BUILTIN_FP_FP_CALL)); | 
| 950 } | 950 } | 
| 951 | 951 | 
| 952 | 952 | 
| 953 ExternalReference ExternalReference::power_double_int_function( | 953 ExternalReference ExternalReference::power_double_int_function( | 
| 954     Isolate* isolate) { | 954     Isolate* isolate) { | 
| 955   return ExternalReference(Redirect(isolate, | 955   return ExternalReference(Redirect(isolate, | 
| 956                                     FUNCTION_ADDR(power_double_int), | 956                                     FUNCTION_ADDR(power_double_int), | 
| 957                                     FP_RETURN_CALL)); | 957                                     BUILTIN_FP_INT_CALL)); | 
| 958 } | 958 } | 
| 959 | 959 | 
| 960 | 960 | 
| 961 static int native_compare_doubles(double y, double x) { | 961 static int native_compare_doubles(double y, double x) { | 
| 962   if (x == y) return EQUAL; | 962   if (x == y) return EQUAL; | 
| 963   return x < y ? LESS : GREATER; | 963   return x < y ? LESS : GREATER; | 
| 964 } | 964 } | 
| 965 | 965 | 
| 966 | 966 | 
| 967 ExternalReference ExternalReference::double_fp_operation( | 967 ExternalReference ExternalReference::double_fp_operation( | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
| 980       break; | 980       break; | 
| 981     case Token::DIV: | 981     case Token::DIV: | 
| 982       function = &div_two_doubles; | 982       function = &div_two_doubles; | 
| 983       break; | 983       break; | 
| 984     case Token::MOD: | 984     case Token::MOD: | 
| 985       function = &mod_two_doubles; | 985       function = &mod_two_doubles; | 
| 986       break; | 986       break; | 
| 987     default: | 987     default: | 
| 988       UNREACHABLE(); | 988       UNREACHABLE(); | 
| 989   } | 989   } | 
| 990   // Passing true as 2nd parameter indicates that they return an fp value. |  | 
| 991   return ExternalReference(Redirect(isolate, | 990   return ExternalReference(Redirect(isolate, | 
| 992                                     FUNCTION_ADDR(function), | 991                                     FUNCTION_ADDR(function), | 
| 993                                     FP_RETURN_CALL)); | 992                                     BUILTIN_FP_FP_CALL)); | 
| 994 } | 993 } | 
| 995 | 994 | 
| 996 | 995 | 
| 997 ExternalReference ExternalReference::compare_doubles(Isolate* isolate) { | 996 ExternalReference ExternalReference::compare_doubles(Isolate* isolate) { | 
| 998   return ExternalReference(Redirect(isolate, | 997   return ExternalReference(Redirect(isolate, | 
| 999                                     FUNCTION_ADDR(native_compare_doubles), | 998                                     FUNCTION_ADDR(native_compare_doubles), | 
| 1000                                     BUILTIN_CALL)); | 999                                     BUILTIN_COMPARE_CALL)); | 
| 1001 } | 1000 } | 
| 1002 | 1001 | 
| 1003 | 1002 | 
| 1004 #ifdef ENABLE_DEBUGGER_SUPPORT | 1003 #ifdef ENABLE_DEBUGGER_SUPPORT | 
| 1005 ExternalReference ExternalReference::debug_break(Isolate* isolate) { | 1004 ExternalReference ExternalReference::debug_break(Isolate* isolate) { | 
| 1006   return ExternalReference(Redirect(isolate, FUNCTION_ADDR(Debug_Break))); | 1005   return ExternalReference(Redirect(isolate, FUNCTION_ADDR(Debug_Break))); | 
| 1007 } | 1006 } | 
| 1008 | 1007 | 
| 1009 | 1008 | 
| 1010 ExternalReference ExternalReference::debug_step_in_fp_address( | 1009 ExternalReference ExternalReference::debug_step_in_fp_address( | 
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1059     assembler_->RecordRelocInfo(RelocInfo::POSITION, state_.current_position); | 1058     assembler_->RecordRelocInfo(RelocInfo::POSITION, state_.current_position); | 
| 1060     state_.written_position = state_.current_position; | 1059     state_.written_position = state_.current_position; | 
| 1061     written = true; | 1060     written = true; | 
| 1062   } | 1061   } | 
| 1063 | 1062 | 
| 1064   // Return whether something was written. | 1063   // Return whether something was written. | 
| 1065   return written; | 1064   return written; | 
| 1066 } | 1065 } | 
| 1067 | 1066 | 
| 1068 } }  // namespace v8::internal | 1067 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|