Skip to content
  • Geoffrey Mainland's avatar
    Fixup stack spills when generating AVX instructions. · f8c51678
    Geoffrey Mainland authored
    LLVM uses aligned AVX moves to spill values onto the stack, which requires
    32-bye aligned stacks. Since the stack in only 16-byte aligned, LLVM inserts
    extra instructions that munge the stack pointer. This is very very bad for the
    GHC calling convention, so we tell LLVM to assume the stack is 32-byte
    aligned. This patch rewrites the spill instructions that LLVM generates so they
    do not require an aligned stack.
    f8c51678