diff options
author | Ben Gamari <ben@smart-cactus.org> | 2022-11-22 20:23:19 -0500 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-12-15 03:54:02 -0500 |
commit | 9372329008143104b0ae5e8e792e957090dfa743 (patch) | |
tree | fe0a732c9dd07ec2dfddc3301e5ef1f5a46efbb9 /rts/HeapStackCheck.cmm | |
parent | 86974ef13d983783b930f23977944b96d4512dbe (diff) | |
download | haskell-9372329008143104b0ae5e8e792e957090dfa743.tar.gz |
rts: Ensure that global regs are never passed as fun call args
This is in general unsafe as they may be clobbered if they are mapped to
caller-saved machine registers. See Note [Register parameter passing].
Diffstat (limited to 'rts/HeapStackCheck.cmm')
-rw-r--r-- | rts/HeapStackCheck.cmm | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/rts/HeapStackCheck.cmm b/rts/HeapStackCheck.cmm index 49abbe934b..50b84a023c 100644 --- a/rts/HeapStackCheck.cmm +++ b/rts/HeapStackCheck.cmm @@ -569,7 +569,7 @@ stg_block_takemvar_finally W_ r1, r3; r1 = R1; r3 = R3; - unlockClosure(R3, stg_MVAR_DIRTY_info); + unlockClosure(r3, stg_MVAR_DIRTY_info); R1 = r1; R3 = r3; jump StgReturn [R1]; @@ -597,7 +597,7 @@ stg_block_readmvar_finally W_ r1, r3; r1 = R1; r3 = R3; - unlockClosure(R3, stg_MVAR_DIRTY_info); + unlockClosure(r3, stg_MVAR_DIRTY_info); R1 = r1; R3 = r3; jump StgReturn [R1]; @@ -625,7 +625,7 @@ stg_block_putmvar_finally W_ r1, r3; r1 = R1; r3 = R3; - unlockClosure(R3, stg_MVAR_DIRTY_info); + unlockClosure(r3, stg_MVAR_DIRTY_info); R1 = r1; R3 = r3; jump StgReturn [R1]; |