From: sof Date: Fri, 14 Aug 1998 11:05:27 +0000 (+0000) Subject: [project @ 1998-08-14 11:05:27 by sof] X-Git-Tag: Approx_2487_patches~431 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=c9ef7339ba514f214b99dd5e8fa66ec059125e93;p=ghc-hetmet.git [project @ 1998-08-14 11:05:27 by sof] For completeness, define CALLE{E,R}_SAVES_* for LongRegs --- diff --git a/ghc/includes/MachRegs.lh b/ghc/includes/MachRegs.lh index ccdccd1..9791094 100644 --- a/ghc/includes/MachRegs.lh +++ b/ghc/includes/MachRegs.lh @@ -76,6 +76,7 @@ TagReg Usually won't be in a register, unless we have a R1 (Node), R2 ... R8 must be saved if in a caller-save reg *and* FltReg1 .. n its value survives over the ccall [rare] (the DblReg1 .. n code-generator knows this...) +LngReg1 .. n BaseReg, better choices for caller-saves regs than the StkStub,... other system regs, since they only need to be @@ -216,7 +217,7 @@ t12 $27 NCG_reserved # define REG_R6 6 # define REG_R7 7 # define REG_R8 8 - + # define REG_Flt1 f2 # define REG_Flt2 f3 # define REG_Flt3 f4 @@ -303,6 +304,11 @@ We cater for HP-PA 1.1. #define CALLEE_SAVES_FltReg4 #define CALLEE_SAVES_DblReg1 #define CALLEE_SAVES_DblReg2 +/* ToDo: improve? */ +#if HAVE_LONG_LONG && SIZEOF_LONG < 8 +#define CALLEE_SAVES_LngReg1 +#define CALLEE_SAVES_LngReg2 +#endif #define CALLEE_SAVES_SpA #define CALLEE_SAVES_SuA #define CALLEE_SAVES_SpB @@ -536,6 +542,10 @@ fp2..fp7 & callee-saved: available for STG registers # define CALLEE_SAVES_FltReg4 # define CALLEE_SAVES_DblReg2 #endif +#if HAVE_LONG_LONG && SIZEOF_LONG < 8 +#define CALLEE_SAVES_LngReg1 +#define CALLEE_SAVES_LngReg2 +#endif #define CALLEE_SAVES_Base #define CALLEE_SAVES_SpB #define CALLEE_SAVES_SpA @@ -638,6 +648,10 @@ We can steal some, but we might have to save/restore around ccalls. #define CALLEE_SAVES_FltReg4 #define CALLEE_SAVES_DblReg1 #define CALLEE_SAVES_DblReg2 +#if HAVE_LONG_LONG && SIZEOF_LONG < 8 +#define CALLEE_SAVES_LngReg1 +#define CALLEE_SAVES_LngReg2 +#endif #define CALLEE_SAVES_SpA #define CALLEE_SAVES_SuA #define CALLEE_SAVES_SpB @@ -752,6 +766,10 @@ I think we can do the Whole Business with callee-save registers only! #define CALLEE_SAVES_FltReg4 #define CALLEE_SAVES_DblReg1 #define CALLEE_SAVES_DblReg2 +#if HAVE_LONG_LONG && SIZEOF_LONG < 8 +#define CALLEE_SAVES_LngReg1 +#define CALLEE_SAVES_LngReg2 +#endif #define CALLEE_SAVES_SpA #define CALLEE_SAVES_SuA #define CALLEE_SAVES_SpB @@ -873,6 +891,10 @@ discretion being the better part of valor, we also don't take #define CALLER_SAVES_FltReg4 #define CALLER_SAVES_DblReg1 #define CALLER_SAVES_DblReg2 +#if HAVE_LONG_LONG && SIZEOF_LONG < 8 +#define CALLER_SAVES_LngReg1 +#define CALLER_SAVES_LngReg2 +#endif #define REG_R1 l1 #define REG_R2 l2