• hans's avatar
    ARM assembler: fix undefined behaviour in fits_shifter · 721fdb56
    hans authored
    Bit-shifts have undefined behaviour if the shift amount is greater
    or equal to the width of the type.
    
    In this case the code would do imm32 >> 32 when rot == 0.
    
    A newer version of Clang unrolled the loop, optimized the first
    iteration away, causing the test suite to fail with:
    
      #
      # Fatal error in ../src/arm/assembler-arm.cc, line 1212
      # Check failed: !rn.is(ip).
      #
    
    as well as crashing when running Chromium tests on Android (at least
    we think this was the cause, see the bug).
    
    BUG=463436, 444089
    LOG=Y
    
    Review URL: https://codereview.chromium.org/979633002
    
    Cr-Commit-Position: refs/heads/master@{#26974}
    721fdb56
Name
Last commit
Last update
..
OWNERS Loading commit data...
assembler-arm-inl.h Loading commit data...
assembler-arm.cc Loading commit data...
assembler-arm.h Loading commit data...
builtins-arm.cc Loading commit data...
code-stubs-arm.cc Loading commit data...
code-stubs-arm.h Loading commit data...
codegen-arm.cc Loading commit data...
codegen-arm.h Loading commit data...
constants-arm.cc Loading commit data...
constants-arm.h Loading commit data...
cpu-arm.cc Loading commit data...
debug-arm.cc Loading commit data...
deoptimizer-arm.cc Loading commit data...
disasm-arm.cc Loading commit data...
frames-arm.cc Loading commit data...
frames-arm.h Loading commit data...
full-codegen-arm.cc Loading commit data...
interface-descriptors-arm.cc Loading commit data...
interface-descriptors-arm.h Loading commit data...
lithium-arm.cc Loading commit data...
lithium-arm.h Loading commit data...
lithium-codegen-arm.cc Loading commit data...
lithium-codegen-arm.h Loading commit data...
lithium-gap-resolver-arm.cc Loading commit data...
lithium-gap-resolver-arm.h Loading commit data...
macro-assembler-arm.cc Loading commit data...
macro-assembler-arm.h Loading commit data...
regexp-macro-assembler-arm.cc Loading commit data...
regexp-macro-assembler-arm.h Loading commit data...
simulator-arm.cc Loading commit data...
simulator-arm.h Loading commit data...