[gnu.gcc.bug] Ooops. More on passing args in regs

dlong@sequoya.ucsd.edu (11/25/88)

I'm sorry that my last message had a carbon copy of itself at the
bottom.  Anyway, I found out that the fix I claimed to have for sparc
does not work.  Here is a simpler program to try if your machine
passes some args in registers.  Change ARG_REGS to the number of
words passed in registers.  On a sun4, it does not print "5 6".

--------------------------cut----------------

#define ARG_REGS 6

struct regs {
    int x[ARG_REGS-1];
};

struct straddle {
    int x, y;
};

int vss(struct regs, struct straddle);
/*       0     -         5|6 */
/*            regs        | stack */

main()
{
    struct regs r;
    struct straddle s;

    s.x = 5;
    s.y = 6;
    vss(r, s);
}

int vss(struct regs r, struct straddle s)
{
    printf("%d %d\n", s.x, s.y);
}
----------------------------
Dean Long
dlong%midgard@ucscc.ucsc.edu