diff options
Diffstat (limited to 'compiler/codeGen/StgCmmLayout.hs')
| -rw-r--r-- | compiler/codeGen/StgCmmLayout.hs | 7 | 
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         }  | 
