TypeCallsite is laid out like so: JSScript *script; jsbytecode *pc; /* Whether this is a 'NEW' call. */ bool isNew; /* Types of each argument to the call. */ TypeSet **argumentTypes; unsigned argumentCount; /* Types of the this variable. */ TypeSet *thisTypes; /* Type set receiving the return value of this call. */ TypeSet *returnTypes; which, on 64-bit hosts, introduces padding after 'isNew' and 'argumentCount'. TypeCompartment (which has many more members and comments, so I'm not going to quote it here) has similar problems and can even be slimmed down on 32-bit hosts as well. Patch coming up.
Created attachment 615794 [details] [diff] [review] patch The changes for TypeCallsite are trivial. The changes for TypeCompartment are a little more complex, as I was attempting to keep the /* Constraint solving worklist structures */ block together, while packing the booleans together for maximum effect.