• rmcilroy@chromium.org's avatar
    ARM: Do not set FPSCR when converting to clamped uint8 · b61696dd
    rmcilroy@chromium.org authored
    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
    
    Review URL: https://codereview.chromium.org/230473005
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20676 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    b61696dd
Name
Last commit
Last update
benchmarks Loading commit data...
build Loading commit data...
include Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
Makefile.nacl Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...