diff options
author | Ian Lynagh <igloo@earth.li> | 2011-11-06 18:11:56 +0000 |
---|---|---|
committer | Ian Lynagh <igloo@earth.li> | 2011-11-06 18:11:56 +0000 |
commit | d535ef006d85dbdb7cda2b09c5bc35cb80108909 (patch) | |
tree | 6cf735f8392afea90b442eccc78b868cec4aab01 /includes | |
parent | ab9e7e37baa71576f9dd8aaff07d10a330e5625d (diff) | |
download | haskell-d535ef006d85dbdb7cda2b09c5bc35cb80108909.tar.gz |
Allow the use of R9 and R10 in primops; fixes trac #5423
Diffstat (limited to 'includes')
-rw-r--r-- | includes/rts/Constants.h | 2 | ||||
-rw-r--r-- | includes/stg/MachRegs.h | 6 | ||||
-rw-r--r-- | includes/stg/Regs.h | 6 |
3 files changed, 12 insertions, 2 deletions
diff --git a/includes/rts/Constants.h b/includes/rts/Constants.h index a4114ab999..e6e4a51080 100644 --- a/includes/rts/Constants.h +++ b/includes/rts/Constants.h @@ -80,7 +80,7 @@ *real* machine registers, and not just offsets in the Register Table. -------------------------------------------------------------------------- */ -#define MAX_VANILLA_REG 8 +#define MAX_VANILLA_REG 10 #define MAX_FLOAT_REG 4 #define MAX_DOUBLE_REG 2 #define MAX_LONG_REG 1 diff --git a/includes/stg/MachRegs.h b/includes/stg/MachRegs.h index 64b32e864a..b8b0212bc5 100644 --- a/includes/stg/MachRegs.h +++ b/includes/stg/MachRegs.h @@ -778,7 +778,11 @@ */ #ifndef MAX_REAL_VANILLA_REG -# if defined(REG_R8) +# if defined(REG_R10) +# define MAX_REAL_VANILLA_REG 10 +# elif defined(REG_R9) +# define MAX_REAL_VANILLA_REG 9 +# elif defined(REG_R8) # define MAX_REAL_VANILLA_REG 8 # elif defined(REG_R7) # define MAX_REAL_VANILLA_REG 7 diff --git a/includes/stg/Regs.h b/includes/stg/Regs.h index e50b431d14..1d0c00c491 100644 --- a/includes/stg/Regs.h +++ b/includes/stg/Regs.h @@ -141,6 +141,8 @@ typedef struct StgRegTable_ { #define SAVE_R6 (BaseReg->rR6) #define SAVE_R7 (BaseReg->rR7) #define SAVE_R8 (BaseReg->rR8) +#define SAVE_R9 (BaseReg->rR9) +#define SAVE_R10 (BaseReg->rR10) #define SAVE_F1 (BaseReg->rF1) #define SAVE_F2 (BaseReg->rF2) @@ -611,6 +613,8 @@ GLOBAL_REG_DECL(bdescr *,HpAlloc,REG_HpAlloc) CALLER_SAVE_R6 \ CALLER_SAVE_R7 \ CALLER_SAVE_R8 \ + CALLER_SAVE_R9 \ + CALLER_SAVE_R10 \ CALLER_SAVE_F1 \ CALLER_SAVE_F2 \ CALLER_SAVE_F3 \ @@ -638,6 +642,8 @@ GLOBAL_REG_DECL(bdescr *,HpAlloc,REG_HpAlloc) CALLER_RESTORE_R6 \ CALLER_RESTORE_R7 \ CALLER_RESTORE_R8 \ + CALLER_RESTORE_R9 \ + CALLER_RESTORE_R10 \ CALLER_RESTORE_F1 \ CALLER_RESTORE_F2 \ CALLER_RESTORE_F3 \ |