diff options
Diffstat (limited to 'llvm/lib/Target/X86/X86CallingConv.td')
-rw-r--r-- | llvm/lib/Target/X86/X86CallingConv.td | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86CallingConv.td b/llvm/lib/Target/X86/X86CallingConv.td index 5b51a1e8e0b..f40a42ee9b9 100644 --- a/llvm/lib/Target/X86/X86CallingConv.td +++ b/llvm/lib/Target/X86/X86CallingConv.td @@ -485,6 +485,15 @@ def CC_X86_32_ThisCall_Win : CallingConv<[ CCDelegateTo<CC_X86_32_ThisCall_Common> ]>; +def CC_X86_CDeclMethod : CallingConv<[ + // Promote i8/i16 arguments to i32. + CCIfType<[i8, i16], CCPromoteToType<i32>>, + + CCCustom<"CC_X86_CDeclMethod_SRet">, + + CCDelegateTo<CC_X86_32_Common> +]>; + def CC_X86_32_ThisCall : CallingConv<[ CCIfSubtarget<"isTargetCygMing()", CCDelegateTo<CC_X86_32_ThisCall_Mingw>>, CCDelegateTo<CC_X86_32_ThisCall_Win> @@ -574,6 +583,7 @@ def CC_Intel_OCL_BI : CallingConv<[ def CC_X86_32 : CallingConv<[ CCIfCC<"CallingConv::X86_FastCall", CCDelegateTo<CC_X86_32_FastCall>>, CCIfCC<"CallingConv::X86_ThisCall", CCDelegateTo<CC_X86_32_ThisCall>>, + CCIfCC<"CallingConv::X86_CDeclMethod", CCDelegateTo<CC_X86_CDeclMethod>>, CCIfCC<"CallingConv::Fast", CCDelegateTo<CC_X86_32_FastCC>>, CCIfCC<"CallingConv::GHC", CCDelegateTo<CC_X86_32_GHC>>, CCIfCC<"CallingConv::HiPE", CCDelegateTo<CC_X86_32_HiPE>>, |