ARM PSEUDO-ATOMIC fixes.
commiteddf49be5aee76e1feae3e5aa3696f0c307dc068
authorAlastair Bridgewater <nyef@kana.lisphacker.com>
Sun, 28 Oct 2012 14:13:21 +0000 (28 10:13 -0400)
committerAlastair Bridgewater <nyef@kana.lisphacker.com>
Sat, 10 May 2014 19:08:39 +0000 (10 15:08 -0400)
tree608e6e5da8072bcbb4e59e66be86a1f57da460e6
parent593fd1dcb8b29bf04febcfbc1865d4eafabc9d99
ARM PSEUDO-ATOMIC fixes.

  * At several points in PSEUDO-ATOMIC I neglected to unquote the
various inputs to the macro, leading to build failures when the
macro was used.

  * The static symbols used for PSEUDO-ATOMIC were not being
initialized, remaining unbound by default, leading to the runtime
thinking that the system is in P-A until the end of the first P-A
block...  And then executing a syscall (the number of which is
(ASH UNBOUND-MARKER-WIDETAG (- N-FIXNUM-TAG-BITS)), and that I've
never bothered to look up) which clobbers at least R0 and possibly
other registers.  Fixed, by initializing both to NIL during
startup if *PSEUDO-ATOMIC-INTERRUPTED* is a static symbol.
src/compiler/arm/macros.lisp
src/runtime/thread.c