X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2Fstg%2FMachRegs.h;h=6b1d31986bdd75c3d6d754434e9d0b2d85738b38;hb=2d4d636af091b8da27466b5cf90011395a9c2f66;hp=d6075326db47eb88b3970ccb79d14f460076dfca;hpb=a2a67cd520b9841114d69a87a423dabcb3b4368e;p=ghc-hetmet.git diff --git a/includes/stg/MachRegs.h b/includes/stg/MachRegs.h index d607532..6b1d319 100644 --- a/includes/stg/MachRegs.h +++ b/includes/stg/MachRegs.h @@ -1,10 +1,15 @@ /* ----------------------------------------------------------------------------- * - * (c) The GHC Team, 1998-1999 + * (c) The GHC Team, 1998-2009 * * Registers used in STG code. Might or might not correspond to * actual machine registers. * + * Do not #include this file directly: #include "Rts.h" instead. + * + * To understand the structure of the RTS headers, see the wiki: + * http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes + * * ---------------------------------------------------------------------------*/ #ifndef MACHREGS_H @@ -62,6 +67,11 @@ Caller-saves regs have to be saved around C-calls made from STG land, so this file defines CALLER_SAVES_ for each that is designated caller-saves in that machine's C calling convention. + + As it stands, the only registers that are ever marked caller saves + are the RX, FX, DX and USER registers; as a result, if you + decide to caller save a system register (e.g. SP, HP, etc), note that + this code path is completely untested! -- EZY -------------------------------------------------------------------------- */ /* -----------------------------------------------------------------------------