From 9fdce342ee41c788a1dfe76fc81707367f2e7675 Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Thu, 9 Sep 2010 11:08:05 +0000 Subject: [PATCH] newAlignedPinnedByteArray#: avoid allocating an extra word sometimes --- rts/PrimOps.cmm | 5 +++++ 1 file changed, 5 insertions(+) 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 */ -- 1.7.10.4