diff --git a/lib/Target/Mips/MipsCallingConv.td b/lib/Target/Mips/MipsCallingConv.td index c05e82d5b57..034a8d16ca3 100644 --- a/lib/Target/Mips/MipsCallingConv.td +++ b/lib/Target/Mips/MipsCallingConv.td @@ -30,7 +30,13 @@ def CC_MipsO32 : CallingConv<[ def RetCC_MipsO32 : CallingConv<[ // i32 are returned in registers V0, V1 - CCIfType<[i32], CCAssignToReg<[V0, V1]>> + CCIfType<[i32], CCAssignToReg<[V0, V1]>>, + + // f32 are returned in registers F0, F1 + CCIfType<[f32], CCAssignToReg<[F0, F1]>>, + + // f64 are returned in register D0 + CCIfType<[f64], CCIfSubtarget<"isNotSingleFloat()", CCAssignToReg<[D0]>>> ]>; //===----------------------------------------------------------------------===//