X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FPrimOps.cmm;h=1cc9544e068128c37ae418fc8a2d1eb85b7ddc00;hb=d108044bef62f6a0d579c92ced5e8188f72edc2d;hp=3c7dbdd0cc77cc967d06cba3c2d85794341e4082;hpb=971c88597b0972053975c9c99aa51764ab75b143;p=ghc-hetmet.git diff --git a/rts/PrimOps.cmm b/rts/PrimOps.cmm index 3c7dbdd..1cc9544 100644 --- a/rts/PrimOps.cmm +++ b/rts/PrimOps.cmm @@ -109,6 +109,11 @@ stg_newAlignedPinnedByteArrayzh n = R1; alignment = R2; + /* we always supply at least word-aligned memory, so there's no + need to allow extra space for alignment if the requirement is less + than a word. This also prevents mischief with alignment == 0. */ + if (alignment <= SIZEOF_W) { alignment = 1; } + bytes = n; /* payload_words is what we will tell the profiler we had to allocate */