Index: src/assembler.cc |
diff --git a/src/assembler.cc b/src/assembler.cc |
index 784331738ee23f47cb9bc5cf9b796304f3e9a6d5..6bb8bc73eecab7e298d23375664d089696651b58 100644 |
--- a/src/assembler.cc |
+++ b/src/assembler.cc |
@@ -149,6 +149,7 @@ double minus_one_half; |
double negative_infinity; |
double the_hole_nan; |
double uint32_bias; |
+double rounding_limit; |
}; |
static DoubleConstant double_constants; |
@@ -950,6 +951,8 @@ void ExternalReference::SetUp() { |
double_constants.negative_infinity = -V8_INFINITY; |
double_constants.uint32_bias = |
static_cast<double>(static_cast<uint32_t>(0xFFFFFFFF)) + 1; |
+ // 2^52; |
+ double_constants.rounding_limit = 4503599627370496.0; |
math_exp_data_mutex = new base::Mutex(); |
} |
@@ -1277,6 +1280,12 @@ ExternalReference ExternalReference::address_of_uint32_bias() { |
} |
+ExternalReference ExternalReference::address_of_rounding_limit() { |
+ return ExternalReference( |
+ reinterpret_cast<void*>(&double_constants.rounding_limit)); |
+} |
+ |
+ |
ExternalReference ExternalReference::is_profiling_address(Isolate* isolate) { |
return ExternalReference(isolate->cpu_profiler()->is_profiling_address()); |
} |