[GHC] #16327: NCG: Don't double adjust SP before calls on Windows.

#16327: NCG: Don't double adjust SP before calls on Windows. -------------------------------------+------------------------------------- Reporter: AndreasK | Owner: (none) Type: task | Status: new Priority: low | Milestone: Component: Compiler | Version: 8.6.3 (CodeGen) | Keywords: | Operating System: Windows Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- Windows ABI requires callers to allocate 32 byte of space in the parameter stack space. This should be rolled into the stack adjustment for Currently we generate this code: {{{ subq $8,%rsp # for stack alignment? movq %r13,%rcx # Arg1 movq %rbx,%rdx # Arg2 subq $32,%rsp # Reserve "shadow" space + align stack if required xorl %eax,%eax # Not required for windows, even on linux only for vararg functions call newCAF addq $40,%rsp testq %rax,%rax je _c9N5 }}} Ideally this should become {{{ movq %r13,%rcx # Arg1 movq %rbx,%rdx # Arg2 subq $40,%rsp # Reserve "shadow" space xorl %eax,%eax call newCAF addq $40,%rsp testq %rax,%rax je _c9N5 }}} I haven't looked deeper into this and don't plan in the near future. But if anyone is interested I'm willing to lend a hand. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16327 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC