Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(36)

Side by Side Diff: src/platform-posix.cc

Issue 269823006: Move generated math methods from platform to codegen (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/platform.h ('k') | src/platform-win32.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Platform-specific code for POSIX goes here. This is not a platform on its 5 // Platform-specific code for POSIX goes here. This is not a platform on its
6 // own, but contains the parts which are the same across the POSIX platforms 6 // own, but contains the parts which are the same across the POSIX platforms
7 // Linux, MacOS, FreeBSD, OpenBSD, NetBSD and QNX. 7 // Linux, MacOS, FreeBSD, OpenBSD, NetBSD and QNX.
8 8
9 #include <dlfcn.h> 9 #include <dlfcn.h>
10 #include <pthread.h> 10 #include <pthread.h>
(...skipping 25 matching lines...) Expand all
36 36
37 #undef MAP_TYPE 37 #undef MAP_TYPE
38 38
39 #if defined(ANDROID) && !defined(V8_ANDROID_LOG_STDOUT) 39 #if defined(ANDROID) && !defined(V8_ANDROID_LOG_STDOUT)
40 #define LOG_TAG "v8" 40 #define LOG_TAG "v8"
41 #include <android/log.h> 41 #include <android/log.h>
42 #endif 42 #endif
43 43
44 #include "v8.h" 44 #include "v8.h"
45 45
46 #include "codegen.h"
47 #include "isolate-inl.h" 46 #include "isolate-inl.h"
48 #include "platform.h" 47 #include "platform.h"
49 48
50 namespace v8 { 49 namespace v8 {
51 namespace internal { 50 namespace internal {
52 51
53 // 0 is never a valid thread id. 52 // 0 is never a valid thread id.
54 static const pthread_t kNoThread = (pthread_t) 0; 53 static const pthread_t kNoThread = (pthread_t) 0;
55 54
56 55
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 asm("int $3"); 277 asm("int $3");
279 #else 278 #else
280 #error Unsupported host architecture. 279 #error Unsupported host architecture.
281 #endif 280 #endif
282 } 281 }
283 282
284 283
285 // ---------------------------------------------------------------------------- 284 // ----------------------------------------------------------------------------
286 // Math functions 285 // Math functions
287 286
288 double modulo(double x, double y) {
289 return std::fmod(x, y);
290 }
291
292
293 #define UNARY_MATH_FUNCTION(name, generator) \
294 static UnaryMathFunction fast_##name##_function = NULL; \
295 void init_fast_##name##_function() { \
296 fast_##name##_function = generator; \
297 } \
298 double fast_##name(double x) { \
299 return (*fast_##name##_function)(x); \
300 }
301
302 UNARY_MATH_FUNCTION(exp, CreateExpFunction())
303 UNARY_MATH_FUNCTION(sqrt, CreateSqrtFunction())
304
305 #undef UNARY_MATH_FUNCTION
306
307
308 void lazily_initialize_fast_exp() {
309 if (fast_exp_function == NULL) {
310 init_fast_exp_function();
311 }
312 }
313
314
315 double OS::nan_value() { 287 double OS::nan_value() {
316 // NAN from math.h is defined in C99 and not in POSIX. 288 // NAN from math.h is defined in C99 and not in POSIX.
317 return NAN; 289 return NAN;
318 } 290 }
319 291
320 292
321 int OS::GetCurrentProcessId() { 293 int OS::GetCurrentProcessId() {
322 return static_cast<int>(getpid()); 294 return static_cast<int>(getpid());
323 } 295 }
324 296
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 } 506 }
535 #elif defined(V8_HOST_ARCH_ARM) 507 #elif defined(V8_HOST_ARCH_ARM)
536 OS::memcopy_uint8_function = 508 OS::memcopy_uint8_function =
537 CreateMemCopyUint8Function(&OS::MemCopyUint8Wrapper); 509 CreateMemCopyUint8Function(&OS::MemCopyUint8Wrapper);
538 OS::memcopy_uint16_uint8_function = 510 OS::memcopy_uint16_uint8_function =
539 CreateMemCopyUint16Uint8Function(&OS::MemCopyUint16Uint8Wrapper); 511 CreateMemCopyUint16Uint8Function(&OS::MemCopyUint16Uint8Wrapper);
540 #elif defined(V8_HOST_ARCH_MIPS) 512 #elif defined(V8_HOST_ARCH_MIPS)
541 OS::memcopy_uint8_function = 513 OS::memcopy_uint8_function =
542 CreateMemCopyUint8Function(&OS::MemCopyUint8Wrapper); 514 CreateMemCopyUint8Function(&OS::MemCopyUint8Wrapper);
543 #endif 515 #endif
544 // fast_exp is initialized lazily.
545 init_fast_sqrt_function();
546 } 516 }
547 517
548 518
549 // ---------------------------------------------------------------------------- 519 // ----------------------------------------------------------------------------
550 // POSIX string support. 520 // POSIX string support.
551 // 521 //
552 522
553 char* OS::StrChr(char* str, int c) { 523 char* OS::StrChr(char* str, int c) {
554 return strchr(str, c); 524 return strchr(str, c);
555 } 525 }
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
789 759
790 void Thread::SetThreadLocal(LocalStorageKey key, void* value) { 760 void Thread::SetThreadLocal(LocalStorageKey key, void* value) {
791 pthread_key_t pthread_key = LocalKeyToPthreadKey(key); 761 pthread_key_t pthread_key = LocalKeyToPthreadKey(key);
792 int result = pthread_setspecific(pthread_key, value); 762 int result = pthread_setspecific(pthread_key, value);
793 ASSERT_EQ(0, result); 763 ASSERT_EQ(0, result);
794 USE(result); 764 USE(result);
795 } 765 }
796 766
797 767
798 } } // namespace v8::internal 768 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/platform.h ('k') | src/platform-win32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698