• bmeurer's avatar
    [turbofan] Introduce TruncateTaggedToWord32 simplified operator. · 0231a7ef
    bmeurer authored
    This allows us to get rid of the "push TruncateFloat64ToInt32 into Phi"
    trick that was used in the MachineOperatorReducer to combine the
    ChangeTaggedToFloat64 and TruncateFloat64ToInt32 operations. Instead of
    doing that later, we can just introduce the proper operator during the
    representation selection directly.
    
    Also separate the TruncateFloat64ToInt32 machine operator, which had two
    different meanings depending on a flag (either JavaScript truncation or
    C++ style round to zero). Now there's a TruncateFloat64ToWord32 which
    represents the JavaScript truncation (implemented via TruncateDoubleToI
    macro + code stub) and the RoundFloat64ToInt32, which implements the C++
    round towards zero operation (in the same style as the other WebAssembly
    driven Round* machine operators).
    
    R=jarin@chromium.org
    
    Review URL: https://codereview.chromium.org/1919513002
    
    Cr-Commit-Position: refs/heads/master@{#35743}
    0231a7ef
instruction-selector-x64.cc 67.2 KB