summaryrefslogtreecommitdiff
path: root/compiler/codeGen/StgCmmLayout.hs
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2012-09-28 15:53:45 +0100
committerSimon Peyton Jones <simonpj@microsoft.com>2012-09-28 15:53:45 +0100
commit6e3e64aeda1add215ffccca87931a60e4f8b53e5 (patch)
treea8cc5dd835ed86fb02f746969cf0cb376942f6b2 /compiler/codeGen/StgCmmLayout.hs
parent9a058b173a6e12296ac302a6ccd22d9c8f0a09d0 (diff)
parent42cb30bd2c00705da598cc8d4170b41fb5693166 (diff)
downloadhaskell-6e3e64aeda1add215ffccca87931a60e4f8b53e5.tar.gz
Merge remote-tracking branch 'origin/master' into tc-untouchables
Diffstat (limited to 'compiler/codeGen/StgCmmLayout.hs')
-rw-r--r--compiler/codeGen/StgCmmLayout.hs7
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/codeGen/StgCmmLayout.hs b/compiler/codeGen/StgCmmLayout.hs
index 69a0d1a0cf..75d8d1c38f 100644
--- a/compiler/codeGen/StgCmmLayout.hs
+++ b/compiler/codeGen/StgCmmLayout.hs
@@ -61,6 +61,7 @@ import Util
import Data.List
import Outputable
import FastString
+import Control.Monad
------------------------------------------------------------------------
-- Call and return sequences
@@ -84,9 +85,11 @@ emitReturn results
; case sequel of
Return _ ->
do { adjustHpBackwards
- ; emit (mkReturnSimple dflags results updfr_off) }
+ ; let e = CmmLoad (CmmStackSlot Old updfr_off) (gcWord dflags)
+ ; emit (mkReturn dflags (entryCode dflags e) results updfr_off)
+ }
AssignTo regs adjust ->
- do { if adjust then adjustHpBackwards else return ()
+ do { when adjust adjustHpBackwards
; emitMultiAssign regs results }
; return AssignedDirectly
}