Win64: Put a REX_W prefix on all TAILJMP* instructions
authorReid Kleckner <reid@kleckner.net>
Fri, 30 Jan 2015 21:03:31 +0000 (21:03 +0000)
committerReid Kleckner <reid@kleckner.net>
Fri, 30 Jan 2015 21:03:31 +0000 (21:03 +0000)
commite35992951792e6951612301becf6b0ac2e77f30d
tree89add9360e661ac4da00ea04d48f0cd009f0305b
parenta6c6e1ec6c6363de1adcbe0ab7be47e3525f5265
Win64: Put a REX_W prefix on all TAILJMP* instructions

MSDN's x64 software conventions page says that this is one of the fixed
list of legal epilogues:
https://msdn.microsoft.com/en-us/library/tawsa7cb.aspx

Presumably this is how the unwinder distinguishes epilogue jumps from
in-function control flow.

Also normalize the way we place "## TAILCALL" comments on such jumps.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227611 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/X86FrameLowering.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86InstrControl.td
lib/Target/X86/X86InstrInfo.cpp
lib/Target/X86/X86InstrInfo.td
lib/Target/X86/X86MCInstLower.cpp
test/CodeGen/X86/tail-call-win64.ll [new file with mode: 0644]
test/CodeGen/X86/tailcall-64.ll