[PATCH v2 1/2] Fix function argument and return value locations

Hannes Domani ssbssa@yahoo.de
Mon Oct 5 12:32:14 GMT 2020


 Am Montag, 5. Oktober 2020, 03:50:20 MESZ hat Simon Marchi <simark@simark.ca> Folgendes geschrieben:

> On 2020-05-29 11:07 a.m., Hannes Domani via Gdb-patches wrote:
> > Fixes these testsuite fails on Windows:
> > FAIL: gdb.base/callfuncs.exp: p t_float_complex_values(fc1, fc2)
> > FAIL: gdb.base/callfuncs.exp: p t_float_complex_many_args(fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4)
> > FAIL: gdb.base/callfuncs.exp: noproto: p t_float_complex_values(fc1, fc2)
> > FAIL: gdb.base/callfuncs.exp: noproto: p t_float_complex_many_args(fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4, fc1, fc2, fc3, fc4)
> > FAIL: gdb.base/call-sc.exp: p/c fun(); call call-sc-tld
> > FAIL: gdb.base/call-sc.exp: advance to fun for return; return call-sc-tld
> > FAIL: gdb.base/call-sc.exp: zed L for return; return call-sc-tld
> > FAIL: gdb.base/call-sc.exp: return foo; return call-sc-tld
> > FAIL: gdb.base/call-sc.exp: return foo; synchronize pc to main() for 'call-sc-tld'
> > FAIL: gdb.base/call-sc.exp: return foo; synchronize pc to main() for 'call-sc-tld'
> > FAIL: gdb.base/call-sc.exp: advance to fun for finish; return call-sc-tld
> > FAIL: gdb.base/call-sc.exp: zed L for finish; return call-sc-tld
> > FAIL: gdb.base/call-sc.exp: finish foo; return call-sc-tld (the program is no longer running)
> > FAIL: gdb.base/call-sc.exp: value foo finished; return call-sc-tld
> >
> > For function arguments (callfuncs.exp), only TYPE_CODE_COMPLEX was
> > missing in the types passed via integer registers.
> >
> > For return values, there were a lot more issues:
> > - TYPE_CODE_DECFLOAT is NOT returned via XMM0.
> > - long double is NOT returned via XMM0.
> > - but __int128 IS returned via XMM0.
> > - the comments for TYPE_CODE_FLT state that __m128, __m128i and __m128d are
> >  returned by XMM0, and this is correct, but it doesn't actually check for
> >  them, because they are TYPE_CODE_ARRAY with TYPE_VECTOR
> >
> > So I had to add TYPE_CODE_DECFLOAT to the arguments passed via XMM register,
> > but I had to remove it from the values returned via XMM0 register.
>
>
> I won't pretend I cross-checked all of this with the ABI documentation,
> but that looks good to me.  If you say the tests now pass, that gives me
> enough confidence, so please go ahead and merge.

Pushed, thanks.


Hannes


More information about the Gdb-patches mailing list