Subject: Re: Bug in divide & remainder
To: Trevor Blackwell <tlb@eecs.harvard.edu>
From: Chris G Demetriou <Chris_G_Demetriou@BALVENIE.PDL.CS.CMU.EDU>
List: port-alpha
Date: 08/13/1995 15:55:29
> It may be that divide and remainder (which use a nonstandard calling
> convention: t10 / t11 -> t12) are supposed to preserve t10 and t11. 
> 
> At least, that's what gcc thinks, from looking at the output code -
> the OSF1 Assembly Language Programmer's Guide isn't very clear.

you appear to be right, on both counts:
	(1) the ALPG isn't clear at all, and
	(2) looking at the OSF/1 compiler/assembler's generated code
		for the div and rem instructions (and looking
		at a disassembly of the div and rem instructions
		themselves), it looks like t10 and t11 should
		be preserved.

DOH!  You can tell how i figured out the interface of _these_ puppies.
8-)


one slight problem in the diff:

>   LEAF(NAME, 0)                                 /* XXX */
> !       lda     sp, -56(sp)
>         stq     BIT, 0(sp)

i'm 98% sure that there's something somewhere that says:

	Thou Shalt Make Frames a Multiple of 16 Bytes.


I'll double-check when i get in to my office.


chris