1.0.41.23: ppc: Calling-convention fixes for LRA handling during return.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Sat, 7 Aug 2010 15:19:29 +0000 (15:19 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Sat, 7 Aug 2010 15:19:29 +0000 (15:19 +0000)
commit8974d768a634343d958de35e9ce90cec235590a3
tree734f151bc7b966ab775e4710a2e2df7cb9a8ac67
parent34b6835722544ff2b49b11e2c7e085ac9fb0e3d7
1.0.41.23: ppc: Calling-convention fixes for LRA handling during return.

  * For GC purposes, seven times never clobber reg_CODE while still
within a component.

  * During return processing, store the LRA in reg_LRA instead of
reg_CODE (see previous point).

  * During fun end breakpoint processing, use reg_LRA instead of
reg_CODE to store the LRA object on ppc.

  * The upshot of this is that, during returns, the program counter
and link register can always be found within the body of reg_CODE
or reg_LRA, no matter which side of the blr instruction we check,
thus always allowing the GC to correctly update them.
src/assembly/ppc/assem-rtns.lisp
src/assembly/ppc/support.lisp
src/compiler/ppc/call.lisp
src/compiler/ppc/macros.lisp
src/compiler/ppc/vm.lisp
src/runtime/breakpoint.c
src/runtime/ppc-assem.S
version.lisp-expr