GHC.Cmm.CallConv

ghc-9.14.0.20251028: The GHC API

Safe Haskell | None
Language | GHC2021

GHC.Cmm.CallConv

Synopsis

- data ParamLocation
  - = RegisterParam GlobalReg
  - | StackParam ByteOff
- assignArgumentsPos :: Profile -> ByteOff -> Convention -> (a -> CmmType) -> [a] -> (ByteOff, [(a, ParamLocation)])
- assignStack :: Platform -> ByteOff -> (a -> CmmType) -> [a] -> (ByteOff, [(a, ParamLocation)])
- realArgRegsCover :: Platform -> GlobalArgRegs -> [GlobalReg]
- allArgRegsCover :: Platform -> GlobalArgRegs -> [GlobalReg]

# Documentation

data ParamLocation Source #

Constructors

RegisterParam GlobalReg |
StackParam ByteOff |

#### Instances

Instances details

Outputable ParamLocation Source # |
Instance details Defined in GHC.Cmm.CallConv Methods ppr :: ParamLocation -> SDoc Source #

assignArgumentsPos :: Profile -> ByteOff -> Convention -> (a -> CmmType) -> [a] -> (ByteOff, [(a, ParamLocation)]) Source #

Given a list of arguments, and a function that tells their types, return a list showing where each argument is passed

assignStack :: Platform -> ByteOff -> (a -> CmmType) -> [a] -> (ByteOff, [(a, ParamLocation)]) Source #

realArgRegsCover Source #

Arguments

:: Platform |
-> GlobalArgRegs | which kinds of registers do we want to cover?
-> [GlobalReg] |

A set of global registers that cover the machine registers used for argument passing.

See Note [realArgRegsCover].

allArgRegsCover Source #

Arguments

:: Platform |
-> GlobalArgRegs | which kinds of registers do we want to cover?
-> [GlobalReg] |

Like "realArgRegsCover", but always includes the node.

See Note [realArgRegsCover].