Skip to content
  • loki@webkit.org's avatar
    Enable truncated floating point feature on ARM · 86097ad2
    loki@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=44233
    
    Reviewed by Gavin Barraclough.
    
    Enable truncated floating point feature with the help of VCVTR.S32.F64
    instruction. If VCVTR.S32.F64 can't fit the result into a 32-bit
    integer/register, it saturates at INT_MAX or INT_MIN. Testing this
    looks quicker than testing FPSCR for exception.
    
    Inspired by Jacob Bramley's patch from JaegerMonkey
    
    * assembler/ARMAssembler.h:
    (JSC::ARMAssembler::):
    (JSC::ARMAssembler::cmn_r):
    (JSC::ARMAssembler::vcvtr_s32_f64_r):
    * assembler/MacroAssemblerARM.h:
    (JSC::MacroAssemblerARM::supportsFloatingPointTruncate):
    (JSC::MacroAssemblerARM::branchTruncateDoubleToInt32):
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@65993 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    86097ad2