From: Simon Marlow Date: Wed, 2 Feb 2011 11:44:17 +0000 (+0000) Subject: do a bit of by-hand CSE X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=26f4bfc82f2b2359259578e9c54d476fc2de650f;p=ghc-hetmet.git do a bit of by-hand CSE --- diff --git a/rts/PrimOps.cmm b/rts/PrimOps.cmm index 4f6c252..8c5c14f 100644 --- a/rts/PrimOps.cmm +++ b/rts/PrimOps.cmm @@ -1133,13 +1133,17 @@ stg_newMVarzh } -#define PerformTake(stack, value) \ - W_[StgStack_sp(stack) + WDS(1)] = value; \ - W_[StgStack_sp(stack) + WDS(0)] = stg_gc_unpt_r1_info; - -#define PerformPut(stack,lval) \ - StgStack_sp(stack) = StgStack_sp(stack) + WDS(3); \ - lval = W_[StgStack_sp(stack) - WDS(1)]; +#define PerformTake(stack, value) \ + W_ sp; \ + sp = StgStack_sp(stack); \ + W_[sp + WDS(1)] = value; \ + W_[sp + WDS(0)] = stg_gc_unpt_r1_info; + +#define PerformPut(stack,lval) \ + W_ sp; \ + sp = StgStack_sp(stack) + WDS(3); \ + StgStack_sp(stack) = sp; \ + lval = W_[sp - WDS(1)]; stg_takeMVarzh {