Push a subset of STG registers onto the stack, specified by the bitmap
Sometimes, a "live" subset of the STG registers needs to be saved on
the stack, for example when storing an unboxed tuple to be used in the
GHCi bytecode interpreter.
The "live registers" bitmap corresponds to the list of registers given
by
allArgRegsCover, with the least significant bit indicating
liveness of the first register in the list.
Each register is saved to a stack slot of one or more machine words,
even if the register size itself is smaller.
The resulting Cmm code looks like this, with a line for each real or
virtual register used for returning tuples:
... if((mask & 2) != 0) { Sp_adj(-1); Sp(0) = R2; } if((mask &
1) != 0) { Sp_adj(-1); Sp(0) = R1; }
See Note [GHCi and native call registers]