[Coco] 6309's FSWI

Darren A mechacoco at gmail.com
Fri May 3 18:35:26 EDT 2013


What is the benefit of using this over JSR/PULS?  In native mode, two
EXG instructions along with the PSHS and PULS in the subroutine would
take 18+ cycles.  An extended JSR along with a PSHS and a PULS
(including PC) would take 17+ cycles.

If there are no registers to preserve then the EXG method would save 1
cycle over a JSR/RTS in native mode, but would be 3 cycles slower in
emulation mode.

Darren


On Fri, May 3, 2013 at 11:16 AM, tim lindner <tlindner at macmess.org> wrote:
> I was thinking today about the 6309's V register. I decided you could use
> it to make a "Fast Software Interrupt" instruction.
>
> So the idea is you have a subroutine that will be called often, but you
> don't want to inline. You would put the address of the subroutine in V and
> EXG V,PC to call it.
>
> The routine would stack any registers it uses, perform the function, the
> unstack the registers and then EXG V,PC to return to the main program. You
> would save one additional register stacking because you wouldn't use V for
> any other purpose.
>
> You could also achieve something like self-modifying code by changing the V
> register to point to alternative subroutines.
>
> --
> tim lindner
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco



More information about the Coco mailing list