• mtrofin's avatar
    [turbofan] avoid xchg instruction on Intel · 7440edae
    mtrofin authored
    On Intel, xchg stalls the pipeline. We use xchg to implement swap
    moves. In a separate exploration, the presence of xchg in a very hot
    loop, due to a change in register allocation, lead to over 20% regression.
    
    Simply changing that instruction with push/mov/pop (almost) eliminated
    the regression.
    
    In light of that, I removed uses of xchg. This leads to more instructions,
    though. That is particularly problematic for long cycles, which, today,
    we translate to successions of swaps.
    
    I plan to address this cycle issue in a separate change. For now, the
    goal is to unblock the initial work that lead here.
    
    Review URL: https://codereview.chromium.org/1580233003
    
    Cr-Commit-Position: refs/heads/master@{#33282}
    7440edae
Name
Last commit
Last update
..
assembler-x64-inl.h Loading commit data...
assembler-x64.cc Loading commit data...
assembler-x64.h Loading commit data...
builtins-x64.cc Loading commit data...
code-stubs-x64.cc Loading commit data...
code-stubs-x64.h Loading commit data...
codegen-x64.cc Loading commit data...
codegen-x64.h Loading commit data...
cpu-x64.cc Loading commit data...
deoptimizer-x64.cc Loading commit data...
disasm-x64.cc Loading commit data...
frames-x64.cc Loading commit data...
frames-x64.h Loading commit data...
interface-descriptors-x64.cc Loading commit data...
macro-assembler-x64.cc Loading commit data...
macro-assembler-x64.h Loading commit data...
simulator-x64.cc Loading commit data...
simulator-x64.h Loading commit data...