Ok, I've got a patch that fixes this segfault.  In the process I looked
at all patches to Cg* modules after Nov 2009 and looked for changes that
weren't applied to the new codegen.  I skipped the LLVM patch, but picked
up the rest of the blackhole changes.  There are, however, two hunks that
I am not 100% sure how to translate.

    hunk ./compiler/codeGen/CgClosure.lhs 477
    -         stmtC (CmmStore (CmmReg nodeReg) bh_info)
    +         stmtsC [
    +              CmmStore (cmmOffsetW (CmmReg nodeReg) fixedHdrSize)
    +                       (CmmReg (CmmGlobal CurrentTSO)),
    +              CmmCall (CmmPrim MO_WriteBarrier) [] [] CmmUnsafe 
CmmMayReturn,
    +             CmmStore (CmmReg nodeReg) bh_info
    +            ]

(the new code uses emits and a different format)

    hunk ./compiler/codeGen/CgStackery.lhs 20
    -       pushUpdateFrame, emitPushUpdateFrame,
    +       pushUpdateFrame, pushBHUpdateFrame, emitPushUpdateFrame,

A new pushBHUpdateFrame function was added, but I'm not sure how to translate
this because the new codegenerator only reads out the offset from
the FCode monad and there's no label to speak of.

Edward

_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to