OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 #include <strings.h> // index | 47 #include <strings.h> // index |
48 #include <errno.h> | 48 #include <errno.h> |
49 #include <stdarg.h> | 49 #include <stdarg.h> |
50 #include <limits.h> | 50 #include <limits.h> |
51 | 51 |
52 #undef MAP_TYPE | 52 #undef MAP_TYPE |
53 | 53 |
54 #include "v8.h" | 54 #include "v8.h" |
55 #include "v8threads.h" | 55 #include "v8threads.h" |
56 | 56 |
| 57 #include "platform-posix.h" |
57 #include "platform.h" | 58 #include "platform.h" |
58 #include "vm-state-inl.h" | 59 #include "vm-state-inl.h" |
59 | 60 |
60 | 61 |
61 namespace v8 { | 62 namespace v8 { |
62 namespace internal { | 63 namespace internal { |
63 | 64 |
64 // 0 is never a valid thread id on FreeBSD since tids and pids share a | 65 // 0 is never a valid thread id on FreeBSD since tids and pids share a |
65 // name space and pid 0 is used to kill the group (see man 2 kill). | 66 // name space and pid 0 is used to kill the group (see man 2 kill). |
66 static const pthread_t kNoThread = (pthread_t) 0; | 67 static const pthread_t kNoThread = (pthread_t) 0; |
(...skipping 17 matching lines...) Expand all Loading... |
84 // Convert the current time to a 64-bit integer first, before converting it | 85 // Convert the current time to a 64-bit integer first, before converting it |
85 // to an unsigned. Going directly can cause an overflow and the seed to be | 86 // to an unsigned. Going directly can cause an overflow and the seed to be |
86 // set to all ones. The seed will be identical for different instances that | 87 // set to all ones. The seed will be identical for different instances that |
87 // call this setup code within the same millisecond. | 88 // call this setup code within the same millisecond. |
88 uint64_t seed = static_cast<uint64_t>(TimeCurrentMillis()); | 89 uint64_t seed = static_cast<uint64_t>(TimeCurrentMillis()); |
89 srandom(static_cast<unsigned int>(seed)); | 90 srandom(static_cast<unsigned int>(seed)); |
90 limit_mutex = CreateMutex(); | 91 limit_mutex = CreateMutex(); |
91 } | 92 } |
92 | 93 |
93 | 94 |
| 95 void OS::PostSetUp() { |
| 96 // Math functions depend on CPU features therefore they are initialized after |
| 97 // CPU. |
| 98 MathSetup(); |
| 99 } |
| 100 |
| 101 |
94 void OS::ReleaseStore(volatile AtomicWord* ptr, AtomicWord value) { | 102 void OS::ReleaseStore(volatile AtomicWord* ptr, AtomicWord value) { |
95 __asm__ __volatile__("" : : : "memory"); | 103 __asm__ __volatile__("" : : : "memory"); |
96 *ptr = value; | 104 *ptr = value; |
97 } | 105 } |
98 | 106 |
99 | 107 |
100 uint64_t OS::CpuFeaturesImpliedByPlatform() { | 108 uint64_t OS::CpuFeaturesImpliedByPlatform() { |
101 return 0; // FreeBSD runs on anything. | 109 return 0; // FreeBSD runs on anything. |
102 } | 110 } |
103 | 111 |
(...skipping 771 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
875 | 883 |
876 | 884 |
877 void Sampler::Stop() { | 885 void Sampler::Stop() { |
878 ASSERT(IsActive()); | 886 ASSERT(IsActive()); |
879 SignalSender::RemoveActiveSampler(this); | 887 SignalSender::RemoveActiveSampler(this); |
880 SetActive(false); | 888 SetActive(false); |
881 } | 889 } |
882 | 890 |
883 | 891 |
884 } } // namespace v8::internal | 892 } } // namespace v8::internal |
OLD | NEW |