Note [GHCi TupleInfo]
This contains the data we need for passing unboxed tuples between bytecode and native code In general we closely follow the native calling convention that GHC uses for unboxed tuples, but we don't use any registers in bytecode. All tuple elements are expanded to use a full register or a full word on the stack. The position of tuple elements that are returned on the stack in the native calling convention is unchanged when returning the same tuple in bytecode. The order of the remaining elements is determined by the register in which they would have been returned, rather than by their position in the tuple in the Haskell source code. This makes jumping between bytecode and native code easier: A map of live registers is enough to convert the tuple. See GHC.StgToByteCode.layoutTuple for more details.
References 0
This Note does not link to any other.
Referenced by 2
- GHC.StgToByteCode call site
- unboxed tuple bytecodes and tuple_BCO GHC.StgToByteCode