Go to file
rmcilroy@chromium.org 6a3e92b9a2 ARM: Do not set FPSCR when converting to clamped uint8
Setting the FPSCR flags is expensive on some CPUs. Get rid of repeated
setting of the FPSCR by relying on the correct default flags being set
when doing uint8 clamping. Also use vcvt_u32_f64 instead of vcvt_s32_f64,
which enables removing the check against zero (vcvt_u32_f64 will clamp to
zero).

To be on the safe side, add asserts to check that the VFP rounding mode
flags are set to default as expected.

This increases performance of a hot loop repeatedly setting
Uint8ClampedArray values on some CPUs by as much as a factor of 12.

BUG=v8:3253
LOG=N
R=jacob.bramley@arm.com, rmcilroy@chromium.org, ulan@chromium.org

Committed: https://code.google.com/p/v8/source/detail?r=20676

Review URL: https://codereview.chromium.org/230473005

Patch from Olli Etuaho <oetuaho@nvidia.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20755 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-15 09:58:09 +00:00
benchmarks Fix bug in nextWeaker function of deltablue benchmark. 2013-10-25 13:21:46 +00:00
build Fix android_arm64 target for experimental ndk 2014-04-10 21:28:40 +00:00
include Removed GetDefaultIsolate{Debugger,ForLocking,StackGuard}. 2014-04-15 07:47:33 +00:00
samples New Compilation API, part 1, try 2 2014-03-14 10:20:33 +00:00
src ARM: Do not set FPSCR when converting to clamped uint8 2014-04-15 09:58:09 +00:00
test Reland r20692 "Check stack limit in ArgumentAdaptorTrampoline." 2014-04-15 08:26:26 +00:00
tools Clean up default-platform gyp defines 2014-04-14 13:38:16 +00:00
.clang-format Change clang-format config to allow for two empty lines between functions 2013-12-03 10:39:21 +00:00
.gitignore Add support for GNU GLOBAL. 2014-04-08 06:19:05 +00:00
AUTHORS Add ARM contributors to AUTHORS. 2014-02-12 11:54:34 +00:00
ChangeLog Deprecate ChangeLog on bleeding_edge. 2014-03-18 12:46:48 +00:00
codereview.settings Add settings for try server. 2013-12-17 12:24:25 +00:00
DEPS Roll ICU 239289:258359 and add support for external ICU data tables 2014-03-25 12:05:33 +00:00
LICENSE Update LICENSE date. 2014-02-18 10:50:22 +00:00
LICENSE.strongtalk Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.v8 Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.valgrind Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
Makefile Add proper dependencies for the GNU GLOBAL tags db. 2014-04-08 08:26:40 +00:00
Makefile.android Fix android_arm64 target for experimental ndk 2014-04-10 21:28:40 +00:00
Makefile.nacl Fix standalone Android and NaCl Makefiles to support arm_version=7 and optdebug 2013-12-16 15:50:34 +00:00
OWNERS Add rmcilroy@chromium.org to src/OWNERS. 2014-04-11 08:55:18 +00:00
PRESUBMIT.py Update tryserver configuration with new linux and arm bots. 2014-04-01 13:43:32 +00:00
WATCHLISTS Add myself to a watchlist for the public API. 2013-10-10 11:37:48 +00:00