public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/21981] __m64 return value should be returned in %mm0
[not found] <20050609125635.21981.uros@kss-loka.si>
@ 2005-06-09 14:16 ` pinskia at gcc dot gnu dot org
2005-06-09 16:14 ` gcc-bugzilla at gcc dot gnu dot org
` (6 subsequent siblings)
7 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-06-09 14:16 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-06-09 14:16 -------
Confirmed, ICC returns it in %mm0.
Note this is the testcase which I used:
#include <mmintrin.h>
__m64
aaa (__m64 x, __m64 y)
{
__m64 mm1;
mm1 = _mm_add_pi8 (x, y);
return mm1;
}
int main() {
__m64 mm0;
__m64 mm1;
union ttt {
__m64 mm;
char x[8];
} temp;
temp.mm = aaa (mm0, mm1);
printf ("%i\n", temp.x[0]);
return 0;
}
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Ever Confirmed| |1
Keywords| |wrong-code
Last reconfirmed|0000-00-00 00:00:00 |2005-06-09 14:16:35
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21981
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/21981] __m64 return value should be returned in %mm0
[not found] <20050609125635.21981.uros@kss-loka.si>
2005-06-09 14:16 ` [Bug target/21981] __m64 return value should be returned in %mm0 pinskia at gcc dot gnu dot org
@ 2005-06-09 16:14 ` gcc-bugzilla at gcc dot gnu dot org
2005-06-10 12:12 ` uros at kss-loka dot si
` (5 subsequent siblings)
7 siblings, 0 replies; 8+ messages in thread
From: gcc-bugzilla at gcc dot gnu dot org @ 2005-06-09 16:14 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From gcc-bugzilla at gcc dot gnu dot org 2005-06-09 16:11 -------
Subject: New: __m64 return value should be returned in %mm0
Calling convetions for x86 specify that __m64 values should be returned in %mm0
MMX register [1]. Gcc returns __m64 values on stack.
The testcase:
--cut here--
#include <mmintrin.h>
__v8qi
aaa (__v8qi x, __v8qi y)
{
__v8qi mm1;
mm1 = _mm_add_pi8 (x, y);
return mm1;
}
int main() {
__v8qi mm0 = { 1,2,3,4,5,6,7,8 };
__v8qi mm1 = { 11,12,13,14,15,16,17,18 };
union ttt {
__v8qi mm;
char x[8];
} temp;
temp.mm = aaa (mm0, mm1);
printf ("%i\n", temp.x[0]);
return 0;
}
--cut here--
will produce:
aaa:
pushl %ebp
movl %esp, %ebp
movl 8(%ebp), %eax
paddb %mm1, %mm0
movq %mm0, (%eax) <<<<-- %mm0 goes to memory
popl %ebp
ret $4
main:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
andl $-16, %esp
subl $16, %esp
leal -8(%ebp), %eax
movl %eax, (%esp)
movq .LC0, %mm1
movq .LC1, %mm0
call aaa
movsbl -8(%ebp),%eax <<<<-- return value taken from memory
subl $4, %esp
movl %eax, 4(%esp)
movl $.LC2, (%esp)
call printf
xorl %eax, %eax
leave
ret
[1] http://www.agner.org/assem/calling_conventions.pdf
--
Summary: __m64 return value should be returned in %mm0
Product: gcc
Version: 4.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: uros at kss-loka dot si
CC: gcc-bugs at gcc dot gnu dot org
GCC build triplet: i686-pc-linux-gnu
GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21981
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21981
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/21981] __m64 return value should be returned in %mm0
[not found] <20050609125635.21981.uros@kss-loka.si>
2005-06-09 14:16 ` [Bug target/21981] __m64 return value should be returned in %mm0 pinskia at gcc dot gnu dot org
2005-06-09 16:14 ` gcc-bugzilla at gcc dot gnu dot org
@ 2005-06-10 12:12 ` uros at kss-loka dot si
2005-06-10 21:45 ` cvs-commit at gcc dot gnu dot org
` (4 subsequent siblings)
7 siblings, 0 replies; 8+ messages in thread
From: uros at kss-loka dot si @ 2005-06-10 12:12 UTC (permalink / raw)
To: gcc-bugs
--
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |uros at kss-loka dot si
|dot org |
URL| |http://gcc.gnu.org/ml/gcc-
| |patches/2005-
| |06/msg00953.html
Status|NEW |ASSIGNED
Last reconfirmed|2005-06-09 14:16:35 |2005-06-10 12:12:31
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21981
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/21981] __m64 return value should be returned in %mm0
[not found] <20050609125635.21981.uros@kss-loka.si>
` (2 preceding siblings ...)
2005-06-10 12:12 ` uros at kss-loka dot si
@ 2005-06-10 21:45 ` cvs-commit at gcc dot gnu dot org
2005-06-21 12:09 ` uros at kss-loka dot si
` (3 subsequent siblings)
7 siblings, 0 replies; 8+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-06-10 21:45 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From cvs-commit at gcc dot gnu dot org 2005-06-10 21:45 -------
Subject: Bug 21981
CVSROOT: /cvs/gcc
Module name: gcc
Changes by: rth@gcc.gnu.org 2005-06-10 21:45:15
Modified files:
gcc : ChangeLog
gcc/config/i386: i386.c
Log message:
PR target/21981
* config/i386/i386.c (ix86_function_value_regno_p): Return true
for FIRST_MMX_REG if TARGET_MMX.
(ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
wrong comment.
(ix86_struct_value_rtx): Emit warning for MMX ABI violations.
(ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.9122&r2=2.9123
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gcc&r1=1.828&r2=1.829
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21981
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/21981] __m64 return value should be returned in %mm0
[not found] <20050609125635.21981.uros@kss-loka.si>
` (3 preceding siblings ...)
2005-06-10 21:45 ` cvs-commit at gcc dot gnu dot org
@ 2005-06-21 12:09 ` uros at kss-loka dot si
2005-07-27 22:30 ` [Bug target/21981] [4.0 only] " pinskia at gcc dot gnu dot org
` (2 subsequent siblings)
7 siblings, 0 replies; 8+ messages in thread
From: uros at kss-loka dot si @ 2005-06-21 12:09 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From uros at kss-loka dot si 2005-06-21 12:09 -------
Fixed on mailine for 4.1.0, what about branches?
--
What |Removed |Added
----------------------------------------------------------------------------
Known to fail|3.2.3 3.3.3 3.4.0 4.0.0 |3.2.3 3.3.3 3.4.0 4.0.0
|4.1.0 |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21981
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/21981] [4.0 only] __m64 return value should be returned in %mm0
[not found] <20050609125635.21981.uros@kss-loka.si>
` (4 preceding siblings ...)
2005-06-21 12:09 ` uros at kss-loka dot si
@ 2005-07-27 22:30 ` pinskia at gcc dot gnu dot org
2005-09-05 15:25 ` jakub at gcc dot gnu dot org
2005-09-27 16:24 ` mmitchel at gcc dot gnu dot org
7 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-07-27 22:30 UTC (permalink / raw)
To: gcc-bugs
--
What |Removed |Added
----------------------------------------------------------------------------
Summary|__m64 return value should |[4.0 only] __m64 return
|be returned in %mm0 |value should be returned in
| |%mm0
Target Milestone|--- |4.0.2
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21981
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/21981] [4.0 only] __m64 return value should be returned in %mm0
[not found] <20050609125635.21981.uros@kss-loka.si>
` (5 preceding siblings ...)
2005-07-27 22:30 ` [Bug target/21981] [4.0 only] " pinskia at gcc dot gnu dot org
@ 2005-09-05 15:25 ` jakub at gcc dot gnu dot org
2005-09-27 16:24 ` mmitchel at gcc dot gnu dot org
7 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu dot org @ 2005-09-05 15:25 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From jakub at gcc dot gnu dot org 2005-09-05 15:24 -------
I don't think this should go to the branches. It is an ABI change, which
shouldn't IMO happen between x.y.z and x.y.z+1.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21981
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug target/21981] [4.0 only] __m64 return value should be returned in %mm0
[not found] <20050609125635.21981.uros@kss-loka.si>
` (6 preceding siblings ...)
2005-09-05 15:25 ` jakub at gcc dot gnu dot org
@ 2005-09-27 16:24 ` mmitchel at gcc dot gnu dot org
7 siblings, 0 replies; 8+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2005-09-27 16:24 UTC (permalink / raw)
To: gcc-bugs
--
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|4.0.2 |4.0.3
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21981
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2005-09-27 16:24 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20050609125635.21981.uros@kss-loka.si>
2005-06-09 14:16 ` [Bug target/21981] __m64 return value should be returned in %mm0 pinskia at gcc dot gnu dot org
2005-06-09 16:14 ` gcc-bugzilla at gcc dot gnu dot org
2005-06-10 12:12 ` uros at kss-loka dot si
2005-06-10 21:45 ` cvs-commit at gcc dot gnu dot org
2005-06-21 12:09 ` uros at kss-loka dot si
2005-07-27 22:30 ` [Bug target/21981] [4.0 only] " pinskia at gcc dot gnu dot org
2005-09-05 15:25 ` jakub at gcc dot gnu dot org
2005-09-27 16:24 ` mmitchel at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).