From c39ef776fcf7360de7ff7b7eb2e63cd3c580dd3b Mon Sep 17 00:00:00 2001 From: Hans Wennborg Date: Thu, 8 Sep 2016 23:35:10 +0000 Subject: Win64: Don't use REX prefix for direct tail calls The REX prefix should be used on indirect jmps, but not direct ones. For direct jumps, the unwinder looks at the offset to determine if it's inside the current function. Differential Revision: https://reviews.llvm.org/D24359 llvm-svn: 281003 --- llvm/test/CodeGen/X86/seh-catchpad.ll | 2 +- llvm/test/CodeGen/X86/tail-call-win64.ll | 2 +- llvm/test/CodeGen/X86/win64_sibcall.ll | 2 +- llvm/test/DebugInfo/COFF/register-variables.ll | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'llvm/test') diff --git a/llvm/test/CodeGen/X86/seh-catchpad.ll b/llvm/test/CodeGen/X86/seh-catchpad.ll index d9b4c5c6bcf..4b2a9f9b6d8 100644 --- a/llvm/test/CodeGen/X86/seh-catchpad.ll +++ b/llvm/test/CodeGen/X86/seh-catchpad.ll @@ -173,7 +173,7 @@ entry: ; CHECK: "?filt$0@0@main@@": # @"\01?filt$0@0@main@@" ; CHECK: .seh_proc "?filt$0@0@main@@" ; CHECK: .seh_endprologue -; CHECK: rex64 jmp filt # TAILCALL +; CHECK: jmp filt # TAILCALL ; CHECK: .seh_handlerdata declare i32 @filt() #1 diff --git a/llvm/test/CodeGen/X86/tail-call-win64.ll b/llvm/test/CodeGen/X86/tail-call-win64.ll index fb10d5d2a24..6d230201a7a 100644 --- a/llvm/test/CodeGen/X86/tail-call-win64.ll +++ b/llvm/test/CodeGen/X86/tail-call-win64.ll @@ -22,7 +22,7 @@ define void @tail_jmp_imm() { } ; CHECK-LABEL: tail_jmp_imm: -; CHECK: rex64 jmp tail_tgt +; CHECK: jmp tail_tgt @g_fptr = global void ()* @tail_tgt diff --git a/llvm/test/CodeGen/X86/win64_sibcall.ll b/llvm/test/CodeGen/X86/win64_sibcall.ll index 4001f638c2a..4bba0e1e0ac 100644 --- a/llvm/test/CodeGen/X86/win64_sibcall.ll +++ b/llvm/test/CodeGen/X86/win64_sibcall.ll @@ -21,7 +21,7 @@ entry: ; WIN_X64: xorl %r8d, %r8d ; WIN_X64: popq %rax -; WIN_X64: rex64 jmp C2 # TAILCALL +; WIN_X64: jmp C2 # TAILCALL ; LINUX: xorl %edx, %edx ; LINUX: jmp C2 # TAILCALL diff --git a/llvm/test/DebugInfo/COFF/register-variables.ll b/llvm/test/DebugInfo/COFF/register-variables.ll index 9bb782853a3..5392ea6238e 100644 --- a/llvm/test/DebugInfo/COFF/register-variables.ll +++ b/llvm/test/DebugInfo/COFF/register-variables.ll @@ -54,7 +54,7 @@ ; ASM: addq $32, %rsp ; ASM: popq %rsi ; ASM: [[func_end:\.Ltmp.*]]: -; ASM: rex64 jmp putint # TAILCALL +; ASM: jmp putint # TAILCALL ; ASM: .short 4414 # Record kind: S_LOCAL ; ASM: .asciz "p" -- cgit v1.2.3