[Bug target/41017] regparm=3 passes structures inconsistently

2009-08-17 Thread hjl dot tools at gmail dot com
--- Comment #10 from hjl dot tools at gmail dot com 2009-08-18 04:49 --- (In reply to comment #3) > Btw, the documentation claims regparm only affects integral parameters. > Agreed, -regparm=N should only apply to integer parameters. I will take a look when I find time. BTW, -regparm

[Bug target/41017] regparm=3 passes structures inconsistently

2009-08-11 Thread mikulas at artax dot karlin dot mff dot cuni dot cz
--- Comment #9 from mikulas at artax dot karlin dot mff dot cuni dot cz 2009-08-11 20:40 --- The Basic rule implemented in both patches is: when you have aggregate type, you MUST NOT look at mode to infer parameter or return method. It is unreliable. -- http://gcc.gnu.org/bugzilla/

[Bug target/41017] regparm=3 passes structures inconsistently

2009-08-11 Thread mikulas at artax dot karlin dot mff dot cuni dot cz
--- Comment #8 from mikulas at artax dot karlin dot mff dot cuni dot cz 2009-08-11 20:38 --- Created an attachment (id=18341) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18341&action=view) A patch for -freg-struct-return Another patch that makes -freg-struct-return consistent.

[Bug target/41017] regparm=3 passes structures inconsistently

2009-08-10 Thread mikulas at artax dot karlin dot mff dot cuni dot cz
--- Comment #7 from mikulas at artax dot karlin dot mff dot cuni dot cz 2009-08-10 19:36 --- Worse, try to return these structures with -freg-struct-return and it also follows this inconsistent pattern, some are returned in EAX:EDX, some are returned in ST(0). It is even inconsistent b

[Bug target/41017] regparm=3 passes structures inconsistently

2009-08-10 Thread ubizjak at gmail dot com
--- Comment #6 from ubizjak at gmail dot com 2009-08-10 08:06 --- Adding H.J. to CC. -- ubizjak at gmail dot com changed: What|Removed |Added CC|

[Bug target/41017] regparm=3 passes structures inconsistently

2009-08-10 Thread ubizjak at gmail dot com
--- Comment #5 from ubizjak at gmail dot com 2009-08-10 08:05 --- (In reply to comment #4) > If you want to change it to be consistent with the documentation (not with > existing implementation) and pass structures always on stack, I wouldn't > object > against it. Just don't change it

[Bug target/41017] regparm=3 passes structures inconsistently

2009-08-09 Thread mikulas at artax dot karlin dot mff dot cuni dot cz
--- Comment #4 from mikulas at artax dot karlin dot mff dot cuni dot cz 2009-08-09 21:16 --- Regparm changed between gcc 3.x -> 4.x (I remember it too painfully, I had to rewrite some assembler files). In 3.x, all arguments were incrementing register count, even if they were on stack, i

[Bug target/41017] regparm=3 passes structures inconsistently

2009-08-09 Thread rguenth at gcc dot gnu dot org
--- Comment #3 from rguenth at gcc dot gnu dot org 2009-08-09 19:13 --- Btw, the documentation claims regparm only affects integral parameters. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41017

[Bug target/41017] regparm=3 passes structures inconsistently

2009-08-09 Thread rguenth at gcc dot gnu dot org
--- Comment #2 from rguenth at gcc dot gnu dot org 2009-08-09 19:10 --- Can you check if regparm(3) behavior ever changed during the gcc releases? > Hardly anyone deliberately designed it this way. Gcc internals are exposed to > the ABI! well, regparm(n) is certainly out of the psABI a

[Bug target/41017] regparm=3 passes structures inconsistently

2009-08-09 Thread mikulas at artax dot karlin dot mff dot cuni dot cz
--- Comment #1 from mikulas at artax dot karlin dot mff dot cuni dot cz 2009-08-09 18:40 --- Created an attachment (id=18331) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=18331&action=view) a proposed patch. Fixed bug 41013 as well. Change it so that all the aggregate types take