view fib.s68 @ 1430:747c779fc137

Avoid generating an instruction that would require a REX prefix when a7 is used as a byte-wide source operand in 32-bit builds. Fixes a fatal error in Dragon's Fury when entering the option menu in a 32-bit build
author Michael Pavone <pavone@retrodev.com>
date Fri, 11 Aug 2017 18:43:48 -0700
parents f664eeb55cb4
children 2455662378ed f7fe240a7da6
line wrap: on
line source

    dc.l $0, start
start:
	moveq #36, d0
	bsr fib
	illegal
fib:
	cmp.l #2, d0
	blt base
	subq.l #1, d0
	move.l d0, -(a7)
	bsr fib
	move.l (a7), d1
	exg d0, d1
	move.l d1, (a7)
	subq.l #1, d0
	bsr fib
	move.l (a7)+, d1
	add.l d1, d0
	rts
base:
	moveq #1, d0
	rts