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