From: Simon Marlow Date: Fri, 28 Nov 2008 10:50:46 +0000 (+0000) Subject: Remove the packing I added recently to the Capability structure X-Git-Tag: 2009-03-13~387 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=022ee7c728822c4dd5be226f75e44557b4a3d9a1 Remove the packing I added recently to the Capability structure The problem is that the packing caused some unaligned loads, which lead to bus errors on Sparc (and reduced performance elsewhere, presumably). --- diff --git a/rts/Capability.h b/rts/Capability.h index 478b0f1..b6f6440 100644 --- a/rts/Capability.h +++ b/rts/Capability.h @@ -32,11 +32,7 @@ struct Capability_ { // code. During STG execution, the BaseReg register always points // to the StgRegTable of the current Capability (&cap->r). StgFunTable f; - StgRegTable r GNU_ATTRIBUTE(packed); - // packed eliminates any padding between f and r. Not strictly - // necessary, but it means the negative offsets for accessing - // the fields of f when we are in STG code are as small as - // possible. + StgRegTable r; nat no; // capability number.