summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2011-11-06 18:11:56 +0000
committerIan Lynagh <igloo@earth.li>2011-11-06 18:11:56 +0000
commitd535ef006d85dbdb7cda2b09c5bc35cb80108909 (patch)
tree6cf735f8392afea90b442eccc78b868cec4aab01 /includes
parentab9e7e37baa71576f9dd8aaff07d10a330e5625d (diff)
downloadhaskell-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.h2
-rw-r--r--includes/stg/MachRegs.h6
-rw-r--r--includes/stg/Regs.h6
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 \