{assembly,compiler}/arm/array: Fix allocation padding calculation.
commitfd256fc8cf741a0d5bd5b7a761d7a03ada0b69ed
authorAlastair Bridgewater <nyef@kana.lisphacker.com>
Wed, 16 Apr 2014 16:47:51 +0000 (16 12:47 -0400)
committerAlastair Bridgewater <nyef@kana.lisphacker.com>
Sat, 10 May 2014 19:12:19 +0000 (10 15:12 -0400)
tree3af9dc3952b6ba4eac325589e2b3b6e27c71ad53
parent63441cef2d51011742e11b67b34444587a0d00b9
{assembly,compiler}/arm/array: Fix allocation padding calculation.

  * All allocations must preserve the double-word alignment on the
allocation pointer, which means that they must be a multiple of
two words in length.

  * These two cases were adding an extra word and then using BIC
in order to clear the low bits of the length, which is the usual
method for rounding up to some boundary.  However, they were using
(1- N-LOWTAG-BITS), which would be 2 and not simply LOWTAG-MASK,
which is 7.  Needless to say, alignment was not being maintained.

  * Fix, by using the correct parameters to BIC.
src/assembly/arm/array.lisp
src/compiler/arm/array.lisp