Problem with the stack on m68k

Aklilu Noah
Wed May 17 11:55:00 GMT 2000

On Wed, 17 May 2000, Art Berggreen wrote:

> Is your called function popping the passed arguments off the stack?
> In the standard C calling interface, it is the caller's responsibility
> to clean arguments off the stack.  If your subroutine doesn't return the
> stack pointer where the calling function expects, things will break.
> Art

Probably best explained if I past in my assembly routine

#include "asm.h"

	.title "rotate.S for gizmo"

/* Function specifer */

	.global	SYM(rotateright)


/* Load input variables from stack */
	move.l	(sp)+,a0
	move.l	(sp)+,d0
	move.l	(sp)+,d1

/* Rotate value and save in d0 */	
	ror.l	d1,d0

/* Return to call function */
	move.l a0,-(sp)

The calling convention I am assuming is the one described in the gnupro
manual (on cygnus's site).  The one that I was used to was pushing
the result onto the stack and then the return address.  If I am
wrong in assuming this.  

Noah Aklilu
"Integrity is something you do when no one is looking"

Want more information?  See the CrossGCC FAQ,
Want to unsubscribe? Send a note to

More information about the crossgcc mailing list