diff options
Diffstat (limited to 'llvm/lib/Target/SystemZ/SystemZCallingConv.td')
| -rw-r--r-- | llvm/lib/Target/SystemZ/SystemZCallingConv.td | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZCallingConv.td b/llvm/lib/Target/SystemZ/SystemZCallingConv.td index 136d3d254721..99bb697ce201 100644 --- a/llvm/lib/Target/SystemZ/SystemZCallingConv.td +++ b/llvm/lib/Target/SystemZ/SystemZCallingConv.td @@ -12,8 +12,8 @@ class CCIfExtend<CCAction A> : CCIf<"ArgFlags.isSExt() || ArgFlags.isZExt()", A>; class CCIfSubtarget<string F, CCAction A> - : CCIf<!strconcat("static_cast<const SystemZSubtarget&>" - "(State.getMachineFunction().getSubtarget()).", F), + : CCIf<!strconcat("State.getMachineFunction()." + "getSubtarget<SystemZSubtarget>().", F), A>; // Match if this specific argument is a fixed (i.e. named) argument. @@ -226,6 +226,8 @@ def CC_SystemZ_XPLINK64 : CallingConv<[ // Although we assign the f32 vararg to be bitcast, it will first be promoted // to an f64 within convertValVTToLocVT(). CCIfType<[f32, f64], CCIfNotFixed<CCBitConvertToType<i64>>>, + // Pointers are always passed in full 64-bit registers. + CCIfPtr<CCCustom<"CC_XPLINK64_Pointer">>, // long double, can only be passed in GPR2 and GPR3, if available, // hence R2Q CCIfType<[f128], CCIfNotFixed<CCCustom<"CC_XPLINK64_Allocate128BitVararg">>>, |
