- 16 May, 2014 1 commit
-
-
yangguo@chromium.org authored
Traditionally, we cross compile a snapshot iff the serializer is enabled. This will change in the future. Changes: - CpuFeatures probing is done once per process, depending on whether we cross compile. - CpuFeatures are consolidated into the platform-independent assembler.h as much as possible. - FLAG_enable_<feature> will only be checked at probing time (already the case for ARM). - The serializer state is cached by the MacroAssembler. - PlatformFeatureScope is no longer necessary. - CPUFeature enum values no longer map to CPUID bit fields. R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/285233010 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21347 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 May, 2014 1 commit
-
-
jochen@chromium.org authored
BUG=none R=mstarzinger@chromium.org LOG=n Review URL: https://codereview.chromium.org/269823006 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 May, 2014 1 commit
-
-
svenpanne@chromium.org authored
The serializer state has to be per-Isolate, but at the point where we generate our memmoves we don't really have an Isolate. Furthermore, there was no fundamental reason why we shouldn't use our home-grown memmove during mksnapshot time. Perhaps we can totally remove our own memmove nowadays, but this would be a separate CL. BUG=359977 LOG=y R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/261903002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Apr, 2014 1 commit
-
-
svenpanne@chromium.org authored
This parameter will soon be used when a few pseudo-classes like Serializer are turned into real classes. The current CL is already big enough, untying our Gordian knot called "startup" will continue... BUG=359977 LOG=y R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/260003006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Apr, 2014 1 commit
-
-
bmeurer@chromium.org authored
R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/259183002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Apr, 2014 1 commit
-
-
jochen@chromium.org authored
BUG=none R=mstarzinger@chromium.org LOG=n Review URL: https://codereview.chromium.org/251103003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21018 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Mar, 2014 1 commit
-
-
ulan@chromium.org authored
This allocates a timezone cache per isolate. BUG= R=jochen@chromium.org Review URL: https://codereview.chromium.org/197023002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19943 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Mar, 2014 1 commit
-
-
ulan@chromium.org authored
When V8 is informed that the system's date time configuration has changed, it should also drop its OS-specific caches of time zone information R=ulan@chromium.org Review URL: https://codereview.chromium.org/193933002 Patch from James Robinson <jamesr@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19808 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Mar, 2014 1 commit
-
-
vegorov@chromium.org authored
VPrintHelper would silently ignore the stream given to it if application is in GUI mode (no console is attached) and redirect output to the debugger via OutputDebugString. Such redirection makes sense only if passed stream is either stderr or stdout. Don't redirect any other stream to the debugger. Reorder clauses in VPrintHelper to make condition more readable. BUG= R=yangguo@chromium.org Review URL: https://codereview.chromium.org/177413006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19688 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Feb, 2014 1 commit
-
-
dcarney@chromium.org authored
Crash like chrome. Currently, most chrome crashes do not yield useful stack traces as v8 does a silent abort and chrome's crash symbolization does not kick in. R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/179793004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Jan, 2014 1 commit
-
-
bmeurer@chromium.org authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/146793002 Patch from Cosmin Truta <ctruta@blackberry.com>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Dec, 2013 2 commits
-
-
svenpanne@chromium.org authored
TBR=dcarney@chromium.org Review URL: https://codereview.chromium.org/102123008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
svenpanne@chromium.org authored
It was only used for Math.log, and even then only in full code and in %_MathLog. For crankshafted code, Intel already used the FP operations directly, while the ARM/MIPS ports were a bit lazy and simply called the stub. The latter directly call the C library now without any cache. It would be possible to directly generate machine code if somebody has the time, from what I've seen out in the wild it should be only about a dozen instructions. LOG=y R=yangguo@chromium.org Review URL: https://codereview.chromium.org/113343003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18344 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Dec, 2013 1 commit
-
-
yangguo@chromium.org authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/104203003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18256 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Nov, 2013 1 commit
-
-
svenpanne@chromium.org authored
R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/88133002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Oct, 2013 1 commit
-
-
bmeurer@chromium.org authored
This way, we also ensure that timeGetTime() is used for Time::Now(), and thereby Date.now() even if GetTickCount64() is available. Also add test coverage for Time::Now(), TimeTicks::Now() and TimeTicks::HighResNow(). BUG=chromium:288924 TEST=cctest/test-timer R=hpayer@chromium.org Review URL: https://codereview.chromium.org/25468003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17080 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Sep, 2013 2 commits
-
-
hpayer@chromium.org authored
Re-land "Add methods to enable configuration of ResourceConstraints based on limits derived at runtime." Adds ConfigureResourceConstraintsForCurrentPlatform and SetDefaultResourceConstraintsForCurrentPlatform which configure the heap based on the available physical memory, rather than hard-coding by platform as previous. This change also adds OS::TotalPhysicalMemory to platform.h. The re-land fix the performance regression caused by accidental change in default max young space size. BUG=292928 R=hpayer@chromium.org Review URL: https://codereview.chromium.org/24989003 Patch from Ross McIlroy <rmcilroy@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16983 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
machenbach@chromium.org authored
Revert "Add methods to enable configuration of ResourceConstraints based on limits derived at runtime." and "Fix Windows build of defaults.cc." This reverts commit r16964 and r16968 due to performance regressions in octane. TBR=hpayer@chromium.org Review URL: https://codereview.chromium.org/24996003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16979 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Sep, 2013 1 commit
-
-
hpayer@chromium.org authored
Adds ConfigureResourceConstraintsForCurrentPlatform and SetDefaultResourceConstraintsForCurrentPlatform which configure the heap based on the available physical memory, rather than hard-coding by platform as previous. This change also adds OS::TotalPhysicalMemory to platform.h. BUG=292928 R=danno@chromium.org, hpayer@chromium.org Review URL: https://codereview.chromium.org/24269003 Patch from Ross McIlroy <rmcilroy@chromium.org>. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16964 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 25 Sep, 2013 1 commit
-
-
hpayer@chromium.org authored
BUG=chromium:288924 R=danno@chromium.org, jkummerow@chromium.org Review URL: https://codereview.chromium.org/24529002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16938 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 23 Sep, 2013 1 commit
-
-
bmeurer@chromium.org authored
This also removes the platform-posix.h header file. R=machenbach@chromium.org Review URL: https://codereview.chromium.org/23497009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 13 Sep, 2013 3 commits
-
-
dcarney@chromium.org authored
TBR=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/23708039 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dcarney@chromium.org authored
R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/23868025 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dcarney@chromium.org authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/23703013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16711 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Sep, 2013 4 commits
-
-
mstarzinger@chromium.org authored
Original descriptions were: - "Refactor and cleanup VirtualMemory." - "Fix typo." - "Deuglify V8_INLINE and V8_NOINLINE." - "Don't align size on allocation granularity for unaligned ReserveRegion calls." Reasons for the revert are: - Our mjsunit test suite slower by a factor of 5(!) in release mode. - Flaky cctest/test-alloc/CodeRange on all architectures and platforms. - Tankage of Sunspider by about 6% overall (unverified). TBR=bmeurer@chromium.org Review URL: https://codereview.chromium.org/23970004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16662 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dcarney@chromium.org authored
R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/23710025 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16646 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
Remove a lot of platform duplication, and simplify the virtual memory implementation. Also improve readability by avoiding bool parameters for executability (use a dedicated Executability type instead). Get rid of the Isolate::UncheckedCurrent() call in the platform code, as part of the Isolate TLS cleanup. Use a dedicated random number generator for the address randomization, instead of messing with the per-isolate random number generators. TEST=cctest/test-virtual-memory R=verwaest@chromium.org Review URL: https://codereview.chromium.org/23641009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16637 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
dcarney@chromium.org authored
R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/23480067 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16632 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Sep, 2013 2 commits
-
-
bmeurer@chromium.org authored
Introduce a RandonNumberGenerator class. Refactor the random/private_random uses in Isolate/Context. The RandomNumberGenerator is a pseudorandom number generator with 48-bit state. It is properly seeded using either (1) the --random-seed if specified, or (2) the entropy_source function if configured, or (3) /dev/urandom if available, or (4) falls back to Time and TimeTicks based seeding. Each Isolate now contains a RandomNumberGenerator, which replaces the previous private_random_seed. Every native context still has its own random_seed. But this random seed is now properly initialized during bootstrapping, instead of on-demand initialization. This will allow us to cleanup and speedup the HRandom implementation quite a lot (this is delayed for a followup CL)! Also stop messing with the system rand()/random(), which should not be done from a library anyway! We probably re-seeded the libc rand()/random() after the application (i.e. Chrome) already seeded it (with better entropy than what we used). Another followup CL will replace the use of the per-isolate random number generator for the address randomization and thereby get rid of the Isolate::UncheckedCurrent() usage in the platform code. TEST=cctest/test-random-number-generator,cctest/test-random R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/23548024 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
Up until now we used PAGE_GUARD for guard pages in Windows, which will raise a STATUS_GUARD_PAGE_VIOLATION exception on first access and grant regular access afterwards. This behavior is required to implement automatic stack checking, or more generally to implement applications that monitor the growth of large dynamic data structures. However, this is not what we want for our guard pages, which are used as a security mechanism. What we really want is PAGE_NOACCESS here, which is the Windows-equivalent of PROT_NONE that we use on all other platforms. R=cdn@chromium.org Review URL: https://codereview.chromium.org/23458022 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16604 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Sep, 2013 1 commit
-
-
bmeurer@chromium.org authored
Instead of globally tracking allocated space limits, which was not implemented properly anyway (i.e. lack of synchronization on the reading side), track it per MemoryAllocator (that is per heap/isolate). In particular, avoid to call IsBadWritePtr() on Windows, it is obsolete and Microsoft strongly discourages its usage. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/23903008 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 04 Sep, 2013 1 commit
-
-
bmeurer@chromium.org authored
Move the Socket class to dedicated platform/socket.{cc,h} files. Cleaned up the implementation to allow for more code sharing. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/23484014 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Sep, 2013 1 commit
-
-
bmeurer@chromium.org authored
Drop the previous Semaphore class from platform files. Add new Semaphore class using the new TimeDelta class for the WaitFor() operation. Consistently assert correct behaviour for the different implementations. Improve test coverage of the Semaphore class. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/23748003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Aug, 2013 2 commits
-
-
bmeurer@chromium.org authored
Drop the previous Mutex and ScopedLock classes from platform files. Add new Mutex, RecursiveMutex and LockGuard classes, which are designed after their C++11 counterparts, so that at some point we can simply drop our custom code and switch to the C++11 classes. We distinguish regular and recursive mutexes, as the latter don't work well with condition variables, which will be introduced by a followup CL. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/23625003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(), which are broken in several ways. The ElapsedTimer class implements a stopwatch using TimeTicks::HighResNow() for high resolution, monotonic timing. Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime() methods to actually return the time relative to the unix epoch as stated in the documentation (previously that was relative to some arbitrary point in time, i.e. boot time). The previous Windows issues have been resolved, and we now use GetTickCount64() on Windows Vista and later, falling back to timeGetTime() with rollover protection for earlier Windows versions. BUG=v8:2853 R=machenbach@chromium.org, yurys@chromium.org Review URL: https://codereview.chromium.org/23490015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Aug, 2013 5 commits
-
-
bmeurer@chromium.org authored
Revert "Cross-compiling from Linux to Android requires -lrt for the host toolset.", "Fix Visual Studio debug build after r16398." and "Reland "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class."" This reverts commit r16398, r16399 and r16402 for breaking the Windows WebKit tests. Will reland fix which doesn't use High Resolution Timer for ElapsedTimer (we suspect QueryPerformanceCounter overhead is responsible for test breakage). TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/23710002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(), which are broken in several ways. The ElapsedTimer class implements a stopwatch using TimeTicks::HighResNow() for high resolution, monotonic timing. Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime() methods to actually return the time relative to the unix epoch as stated in the documentation (previously that was relative to some arbitrary point in time, i.e. boot time). BUG=v8:2853 R=machenbach@chromium.org Review URL: https://codereview.chromium.org/23469013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
The name NumberOfCores is misleading, as it does not return the actual number of cores. While NumberOfProcessorsOnline is also not a great name, it's at least consistent with the operating system terminology. R=verwaest@chromium.org Review URL: https://codereview.chromium.org/23655004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
This reverts commit r16390 for breaking the Windows build. Will reland fixed version, which also uses the platform/ folder instead of time/ folder as per offline discussion. TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/23690003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(), which are broken in several ways. The ElapsedTimer class implements a stopwatch using TimeTicks::HighResNow() for high resolution, monotonic timing. Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime() methods to actually return the time relative to the unix epoch as stated in the documentation (previously that was relative to some arbitrary point in time, i.e. boot time). BUG=v8:2853 R=machenbach@chromium.org, yurys@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=16388 Review URL: https://codereview.chromium.org/23295034 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-