summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorsimonpj@microsoft.com <unknown>2007-04-24 13:30:11 +0000
committersimonpj@microsoft.com <unknown>2007-04-24 13:30:11 +0000
commita01188d12783adf93b1b6c5a08de1dfa0abf55f2 (patch)
tree887677238c3611989983dfedbcb00caddabe9f05 /includes
parentfd1375dd261725eb00969a3017b924369c09835c (diff)
downloadhaskell-a01188d12783adf93b1b6c5a08de1dfa0abf55f2.tar.gz
Make ticky work, at least partly, on 64-bit machines
The ticky StgEntCounter structure was trying to be clever by using a fixed-width 32-bit field for the registeredp value. But the code generators are not up to handling structures packed tightly like this (on a 64-bit architecture); result seg-fault on 64-bit. Really there should be some complaint from the code generators, not simply a seg fault. Anyway I switched to using native words for StgEntCounter fields, and now at least it works.
Diffstat (limited to 'includes')
-rw-r--r--includes/Rts.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/includes/Rts.h b/includes/Rts.h
index 59edc09e83..7375798c62 100644
--- a/includes/Rts.h
+++ b/includes/Rts.h
@@ -270,11 +270,11 @@ extern void stg_exit(int n) GNU_ATTRIBUTE(__noreturn__);
-------------------------------------------------------------------------- */
typedef struct _StgEntCounter {
- /* krc: StgWord32, not StgWord16, in order to match the code
- generator, which doesn't generate anything of that type. */
- StgWord32 registeredp; /* 0 == no, 1 == yes */
- StgWord32 arity; /* arity (static info) */
- StgWord32 stk_args; /* # of args off stack */
+ /* Using StgWord for everything, becuase both the C and asm code
+ generators make trouble if you try to pack things tighter */
+ StgWord registeredp; /* 0 == no, 1 == yes */
+ StgInt arity; /* arity (static info) */
+ StgInt stk_args; /* # of args off stack */
/* (rest of args are in registers) */
char *str; /* name of the thing */
char *arg_kinds; /* info about the args types */