mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-22 10:33:23 +00:00
Target/X86: Never use the redzone for Win64 ABI functions.
Summary: Until now, we did this (among other things) based on whether or not the target was Windows. This is clearly wrong, not just for Win64 ABI functions on non-Windows, but for System V ABI functions on Windows, too. In this change, we make this decision based on the ABI the calling convention specifies instead. Reviewers: rnk Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7953 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@230793 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e03aac601f
commit
dc64962c86
@ -581,7 +581,7 @@ void X86FrameLowering::emitPrologue(MachineFunction &MF) const {
|
||||
bool Is64Bit = STI.is64Bit();
|
||||
// standard x86_64 and NaCl use 64-bit frame/stack pointers, x32 - 32-bit.
|
||||
const bool Uses64BitFramePtr = STI.isTarget64BitLP64() || STI.isTargetNaCl64();
|
||||
bool IsWin64 = STI.isTargetWin64();
|
||||
bool IsWin64 = STI.isCallingConvWin64(Fn->getCallingConv());
|
||||
// Not necessarily synonymous with IsWin64.
|
||||
bool IsWinEH = MF.getTarget().getMCAsmInfo()->usesWindowsCFI();
|
||||
bool NeedsWinEH = IsWinEH && Fn->needsUnwindTableEntry();
|
||||
|
@ -1,7 +1,8 @@
|
||||
; RUN: llc -mtriple=x86_64-mingw32 < %s | FileCheck %s
|
||||
; RUN: llc -mtriple=x86_64-linux < %s | FileCheck %s
|
||||
; CHECK-NOT: -{{[1-9][0-9]*}}(%rsp)
|
||||
|
||||
define x86_fp80 @a(i64 %x) nounwind readnone {
|
||||
define x86_64_win64cc x86_fp80 @a(i64 %x) nounwind readnone {
|
||||
entry:
|
||||
%conv = sitofp i64 %x to x86_fp80 ; <x86_fp80> [#uses=1]
|
||||
ret x86_fp80 %conv
|
||||
|
Loading…
x
Reference in New Issue
Block a user