A registerised mips-linux port of GHC

Thiemo Seufer ths at networkno.de
Mon Aug 21 10:18:08 EDT 2006


Hello All,

I currently try to get a ghc port on mips-linux going. I understand
Igloo does the same ATM, and things look promising so far.

However, the port is currently unregisterised, and I would like to
improve it a bit. A registerised port seems to be achievable with
a moderate amount of work. I looked a bit around in the code, and
have now a few questions:

- The example of other ports suggests the useful maximum of general
  purpose registers for GHC is 8. I also presume that unmentioned
  registers aren't touched by haskell code. Is this correct?

- The comments in the source suggest that callee-saved registers are
  preferable, without further explanation. I would expect a mix of
  caller- and callee-saved registers to be potentially better. Any
  advice on this?

- The mips ABI defines 8 (or 9 when including the frame pointer)
  registers as callee-saved, and more than 9 caller-saved temporaries.
  With four registers taken for stack/heap pointers this leaves a
  5/3 split of callee-saved/caller-saved registers, if all my
  assumptions above are ok. Are there other considerations to take
  into account for the register layout?


Thiemo


More information about the Glasgow-haskell-users mailing list