Fix passing arrays to C on ARM.

The last element containing null-termination for strings may end up
inside auto_gc_trigger page, causing a memory fault in foreign code,
which can't be handled. Stuff a 0 into the last element when
allocating arrays.
Abstract stack allocation into ALLOCATION macro on ARM.
Enable :stack-allocatable-fixed-objects on ARM.
Fix allocating nil-vectors on ARM.

The recent change caused overwriting of the length header for
nil-vectors.
Fix sb-qshow on non-threaded builds.

It used an uninitialized buffer.
Make static functions interrupt safe on ARM.

Don't put things onto the control stack before the stack pointer isn't
written back.
Fix PA handling in call_into_x on ARM.

The pseudo-atomic flag was untagged into the wrong side, LSL instead
of LSR.
compiler/arm/call: Fix minimum full-call-frame size.

  * We need to allocate a minimum of two words (up from the one
that we were originally allocating), one for the frame link, and
one for the LRA.  Without allocating this second word, the LRA is
subject to being overwritten during an inconveniently-timed
interrupt.
code/debug-int,runtime/arm-assem.S: Fix undefined-function backtrace.

  * Two things here.  First is that MAKE-LISP-OBJ didn't recognize
undefined_tramp as a valid object.  Easily enough fixed.  Second
is that the undefined_tramp wasn't initializing reg_CODE before
trapping, leaving the debugger looking in the wrong place for the
error trap location.  Also easily enough fixed.

  * Unlike PPC, we always have fully-initialized call frames
constructed on the caller side, so we don't need to do the rest of
the fixups that PPC does.
Handle CSP properly during stack allocation on ARM.

Write the new CSP before using the stack.
compiler/arm/call: Fix source locations in the debugger.

  * It turns out that the debugger is spectacularly picky about
the exact position of noted locations.  To the point where a mere
twelve-octet displacement of the noted location of a function
return will throw off its ability to find source forms.

  * Fix, by noting the location of return locations in
DEFAULT-UNKNOWN-VALUE to before the first instruction emitted.
Enable LOGTEST constant-folding on ARM.

Return :maybe instead of :direct from
COMBINATION-IMPLEMENTATION-STYLE, similarly to what was done in
f21e0f5b908263715ea0d867edb64ceba5a3d668.
Enable stack-allocatable-closures on ARM.
Implement stack-allocatable-vectors on ARM.
Fix allocation of large objects on ARM.

Yet another immediate encoding issue.
Adjust dynamic-extent.impure tests.

Remove all instance of :fails-on ppc, they have been passing for quite
some time already.

Fix :recheck-nested-dx-bug test on non-x86oids, since they can't
dx-allocate unboxed arrays.
Fix loading constants on ARM some more.

Call LOAD-CONSTANT in CALL* and MOVE-WORD-TO-C, which handles >
12-bit offsets.
Fix load-immediate-word.

It was handling large positive constants properly.
Adjust cost of fast-negate on ARM.

Make the fixnum case cheaper than the signed one.
Fix disassembling LDR/STR with register offsets on ARM.