X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fcmm%2FCmmCallConv.hs;h=7c70736629a0c76b7ff731b2070bd60a884686bb;hp=b7e528b78a00e11afdf041b8799271656f272346;hb=e239aa2329416a2822fcc03c4ed486c7d28739e1;hpb=f9d5c95fb4b4989ce4da8005793d3730452a33a9 diff --git a/compiler/cmm/CmmCallConv.hs b/compiler/cmm/CmmCallConv.hs index b7e528b..7c70736 100644 --- a/compiler/cmm/CmmCallConv.hs +++ b/compiler/cmm/CmmCallConv.hs @@ -56,19 +56,21 @@ assignArgumentsPos conv isCall arg_ty reps = map cvt assignments where -- The calling conventions (CgCallConv.hs) are complicated, to say the least regs = if isCall then case (reps, conv) of - (_, Native) -> getRegsWithoutNode + (_, NativeCall) -> getRegsWithoutNode (_, GC ) -> getRegsWithNode - (_, PrimOp) -> allRegs + (_, PrimOpCall) -> allRegs (_, Slow ) -> noRegs - (_, _ ) -> getRegsWithoutNode + _ -> panic "Unknown calling convention" else case (reps, conv) of ([_], _) -> allRegs - (_, Native) -> getRegsWithNode + (_, NativeCall) -> getRegsWithNode + (_, NativeReturn) -> getRegsWithNode (_, GC ) -> getRegsWithNode - (_, PrimOp) -> getRegsWithNode + (_, PrimOpCall) -> getRegsWithNode + (_, PrimOpReturn) -> getRegsWithNode (_, Slow ) -> noRegs - (_, _ ) -> getRegsWithNode + _ -> pprPanic "Unknown calling convention" (ppr conv) (sizes, assignments) = unzip $ assignArguments' reps (sum sizes) regs assignArguments' [] _ _ = [] assignArguments' (r:rs) offset avails =