From 4f85f747b06a3be1591b52c1f15ff6588b8e5764 Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Tue, 22 Nov 2022 20:23:19 -0500 Subject: 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]. --- rts/HeapStackCheck.cmm | 6 +++--- 1 file 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]; -- cgit v1.2.1