Hello, It's for the new codegen only (it touches CmmCallConv, whereas the old codegen bypasses the issue entirely by piggy-backing off the return convention for functions.)
Cheers, Edward Excerpts from Simon Peyton-Jones's message of Fri Feb 18 03:29:53 -0500 2011: > Edward > > Does this patch concern the new-codegen-path only? If so I'll commit it. > > If it affects the old (ie currently-relied-on) path, I'd prefer to wait for > Simon M to review, but he's away for until Monday 28th. > > Thank you for all the work you are doing on the codegen. > > Simon > > -----Original Message----- > From: [email protected] [mailto:[email protected]] On > Behalf Of Edward Z. Yang > Sent: 18 February 2011 01:22 > To: [email protected] > Subject: darcs patch: New codegen: GC calling convention must use registers. > > 1 patch for repository http://darcs.haskell.org/ghc: > > Fri Feb 18 01:17:45 GMT 2011 Edward Z. Yang <[email protected]> > * New codegen: GC calling convention must use registers. > > Previously, on register-deficient architectures like x86-32, > the new code generator would emit code for calls to stg_gc_l1, > stg_gc_d1 and stg_gc_f1 that pushed their single argument on > to the stack, while the functions themselves expected the > argument to live in L1, D1 and F1 (respectively). This was > because cmmCall with the GC calling convention allocated real > registers, not virtual registers. > > This patch modifies the code for assigning registers/stack slots > to use the right calling convention for GC and adds an assertion > to ensure it did it properly. _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
