diff options
| author | Simon Peyton Jones <simonpj@microsoft.com> | 2012-09-28 15:53:45 +0100 |
|---|---|---|
| committer | Simon Peyton Jones <simonpj@microsoft.com> | 2012-09-28 15:53:45 +0100 |
| commit | 6e3e64aeda1add215ffccca87931a60e4f8b53e5 (patch) | |
| tree | a8cc5dd835ed86fb02f746969cf0cb376942f6b2 /compiler/codeGen/StgCmmLayout.hs | |
| parent | 9a058b173a6e12296ac302a6ccd22d9c8f0a09d0 (diff) | |
| parent | 42cb30bd2c00705da598cc8d4170b41fb5693166 (diff) | |
| download | haskell-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.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 } |
