changes needed to switch to ATS2/Postiats compiler
make it possible to override start.o
cleaner asm_cpu_pointer macro which avoids trashing r1
implement IRQ status table per-cpu

also, syscall to fetch its address
and, set r12_usr to irq status table when re-entering program entry
implement IRQ handling for EHCI using restartable, reentrant entry stub technique

half of problem, now to figure out how to return to the saved context
introduce a means of returning to previous program point

IRQ state = 3 essentially, but there is a strange bug which crops up after a while
introduce a means of returning to previous program point

IRQ state = 3 essentially, followed by returning to entry stub.
Fixed bug by making debuglog() reentrant.
intr_init should happen after vmm_init to allow use of VMM when creating interrupt status table
improve register dump during data abort debug logging
add debugging function smp_dump_coherency_processors
improve register dump of prefetch abort too
fix array overflow when (size>>3 == 0)
writeback is not allowed during STM (User registers) instruction

for whatever arcane reason, so easy workaround is to explicitly subtract
put more of IRQ handling into entry stub, generalize code a bit
_kernel_saved_context variable allows direct control transfer from IRQ handler back to normal context

also cleaned up process.c a bit
stow single-reader/writer version of new notation
fix various type annotations
Merge remote branch 'origin/irq_system' into irq_system

Conflicts:
	progs/ehci/ehci.cats
	progs/ehci/ehci_start.S
clean up stray rstep reference
bring multislot impl up to speed for now, add a test case for it using ehci and new program: test