summaryrefslogtreecommitdiff
path: root/rts/sm/GCThread.h
diff options
context:
space:
mode:
authorSimon Marlow <simonmarhaskell@gmail.com>2008-04-16 23:24:33 +0000
committerSimon Marlow <simonmarhaskell@gmail.com>2008-04-16 23:24:33 +0000
commite686d8dc6cd67c35132059d0718d1501f0af1e67 (patch)
tree525f4fa72f168300f63a27c3e322dedb7ed8a9aa /rts/sm/GCThread.h
parenta370654a872838c43e63bdd6cc279c0ee9913cdf (diff)
downloadhaskell-e686d8dc6cd67c35132059d0718d1501f0af1e67.tar.gz
pad step_workspace to 64 bytes, to speed up access to gct->steps[]
Diffstat (limited to 'rts/sm/GCThread.h')
-rw-r--r--rts/sm/GCThread.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/rts/sm/GCThread.h b/rts/sm/GCThread.h
index 8d171ae3ee..338cca749d 100644
--- a/rts/sm/GCThread.h
+++ b/rts/sm/GCThread.h
@@ -95,7 +95,11 @@ typedef struct step_workspace_ {
bdescr * part_list;
unsigned int n_part_blocks; // count of above
-} step_workspace;
+ StgWord pad[5];
+
+} step_workspace ATTRIBUTE_ALIGNED(64);
+// align so that computing gct->steps[n] is a shift, not a multiply
+// fails if the size is <64, which is why we need the pad above
/* ----------------------------------------------------------------------------
GC thread object