Problem in locate_and_pad_parm
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Thu Oct 19 03:52:00 GMT 2000
> - if the padding and mode of the type is such that a copy into a
> register would put it into the wrong part of the register.
This is the point that MUST_PASS_IN_STACK gets wrong for some targets.
Yes, I understand that, but I guess I'm not being clear. I'm talking in
term of the *meaning* of macros, not a particular set of values that
happen to work.
MUST_PASS_IN_STACK was defined to encode those cases that GCC did not know
how to do properly. If it "got it wrong" on some targets, it's because it
didn't know how to do it properly. So we compromised and had the ABI
be violated in this case by putting the parameter in memory.
If ports change this definition to not have this condition, it must be
that GCC no longer has the limitation that it can't do the above. Is
that correct?
If not, then I don't see how it can work now. If so, then the definition
of MUST_PASS_IN_STACK is wrong because it no longer must pass in stack
in that situation.
Which is the case?
More information about the Gcc
mailing list