mkuper added inline comments. ================ Comment at: lib/CodeGen/TargetInfo.cpp:857 @@ -854,3 +856,3 @@ IsWin32StructABI(Win32StructABI), - IsSoftFloatABI(SoftFloatABI), + IsSoftFloatABI(SoftFloatABI), IsMCUABI(MCUABI), DefaultNumRegisterParameters(NumRegisterParameters) {} ---------------- rnk wrote: > Rather than taking this as a parameter, how about initializing IsMCUABI with > `getTarget().getTriple().isEnvironmentIAMCU()`? Then you can drop a level of > parameters. Sure, will do.
================ Comment at: test/CodeGen/x86_32-arguments-iamcu.c:1 @@ +1,2 @@ +// RUN: %clang_cc1 -w -triple i386-pc-elfiamcu -mfloat-abi soft -emit-llvm -o - %s | FileCheck %s + ---------------- DavidKreitzer wrote: > Good test! > > I think it would be a good idea to add a varargs function & verify that the > args do not get marked inreg. They do get marked inreg, actually. The varargs handling for -mregparm - and that means for IAMCU as well - happens on the CG level. ``` def CC_X86_32_C : CallingConv<[ ... // The first 3 integer arguments, if marked 'inreg' and if the call is not // a vararg call, are passed in integer registers. **CCIfNotVarArg**<CCIfInReg<CCIfType<[i32], CCAssignToReg<[EAX, EDX, ECX]>>>>, ... ]>; ``` (Yes, this is incredibly ugly. We should probably fix that in a separate patch.) http://reviews.llvm.org/D13978 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits