diff options
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/X86/X86CallingConv.td | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86CallingConv.td b/llvm/lib/Target/X86/X86CallingConv.td index 385bd916183..0bda72d9198 100644 --- a/llvm/lib/Target/X86/X86CallingConv.td +++ b/llvm/lib/Target/X86/X86CallingConv.td @@ -321,6 +321,11 @@ def CC_X86_32_FastCall : CallingConv<[ ]>; def CC_X86_32_FastCC : CallingConv<[ + // Handles byval parameters. Note that we can't rely on the delegation + // to CC_X86_32_Common for this because that happens after code that + // handles i32 arguments. + CCIfByVal<CCPassByVal<4, 4>>, + // Promote i8/i16 arguments to i32. CCIfType<[i8, i16], CCPromoteToType<i32>>, |