Chromium Code Reviews

Unified Diff: src/bootstrapper.cc

Issue 411263004: Implement trigonometric functions using a fdlibm port. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Added README.v8 Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
« no previous file with comments | « DEPS ('k') | src/math.js » ('j') | test/mjsunit/sin-cos.js » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/bootstrapper.cc
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
index e58bf5abdb43b79699b32fea96f7fc6f340dfd08..1c0a409e5f7e77a4621230df3e288e9b34620105 100644
--- a/src/bootstrapper.cc
+++ b/src/bootstrapper.cc
@@ -14,7 +14,7 @@
#include "src/isolate-inl.h"
#include "src/natives.h"
#include "src/snapshot.h"
-#include "src/trig-table.h"
+#include "third_party/fdlibm/fdlibm.h"
namespace v8 {
namespace internal {
@@ -2628,43 +2628,19 @@ Genesis::Genesis(Isolate* isolate,
NONE).Assert();
// Initialize trigonometric lookup tables and constants.
- const int table_num_bytes = TrigonometricLookupTable::table_num_bytes();
- v8::Local<v8::ArrayBuffer> sin_buffer = v8::ArrayBuffer::New(
+ const int constants_size = ARRAY_SIZE(TrigonometricConstants::constants);
+ const int table_num_bytes = constants_size * kDoubleSize;
+ v8::Local<v8::ArrayBuffer> trig_buffer = v8::ArrayBuffer::New(
reinterpret_cast<v8::Isolate*>(isolate),
- TrigonometricLookupTable::sin_table(), table_num_bytes);
- v8::Local<v8::ArrayBuffer> cos_buffer = v8::ArrayBuffer::New(
- reinterpret_cast<v8::Isolate*>(isolate),
- TrigonometricLookupTable::cos_x_interval_table(), table_num_bytes);
- v8::Local<v8::Float64Array> sin_table = v8::Float64Array::New(
- sin_buffer, 0, TrigonometricLookupTable::table_size());
- v8::Local<v8::Float64Array> cos_table = v8::Float64Array::New(
- cos_buffer, 0, TrigonometricLookupTable::table_size());
+ const_cast<double*>(TrigonometricConstants::constants),
+ table_num_bytes);
+ v8::Local<v8::Float64Array> trig_table =
+ v8::Float64Array::New(trig_buffer, 0, constants_size);
- Runtime::DefineObjectProperty(builtins,
- factory()->InternalizeOneByteString(
- STATIC_ASCII_VECTOR("kSinTable")),
- Utils::OpenHandle(*sin_table),
- NONE).Assert();
- Runtime::DefineObjectProperty(
- builtins,
- factory()->InternalizeOneByteString(
- STATIC_ASCII_VECTOR("kCosXIntervalTable")),
- Utils::OpenHandle(*cos_table),
- NONE).Assert();
- Runtime::DefineObjectProperty(
- builtins,
- factory()->InternalizeOneByteString(
- STATIC_ASCII_VECTOR("kSamples")),
- factory()->NewHeapNumber(
- TrigonometricLookupTable::samples()),
- NONE).Assert();
Runtime::DefineObjectProperty(
builtins,
- factory()->InternalizeOneByteString(
- STATIC_ASCII_VECTOR("kIndexConvert")),
- factory()->NewHeapNumber(
- TrigonometricLookupTable::samples_over_pi_half()),
- NONE).Assert();
+ factory()->InternalizeOneByteString(STATIC_ASCII_VECTOR("kTrig")),
+ Utils::OpenHandle(*trig_table), NONE).Assert();
}
result_ = native_context();
« no previous file with comments | « DEPS ('k') | src/math.js » ('j') | test/mjsunit/sin-cos.js » ('J')

Powered by Google App Engine