public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/21748] New: gcc doesn't compile my c code (with some inline asm ocde) if compiling with optimization options
@ 2005-05-25 11:45 sunmoon1997 at gmail dot com
2005-05-25 12:51 ` [Bug tree-optimization/21748] " pinskia at gcc dot gnu dot org
2005-05-25 12:56 ` sunmoon1997 at gmail dot com
0 siblings, 2 replies; 3+ messages in thread
From: sunmoon1997 at gmail dot com @ 2005-05-25 11:45 UTC (permalink / raw)
To: gcc-bugs
#include <stdlib.h>
#define mmx_m2r(op, mem, reg) \
__asm__ __volatile__ (#op "\t%0, %%" #reg \
: /* nothing */ \
: "X" (mem))
#define movd_m2r(var, reg) mmx_m2r(movd, var, reg)
int main () {
int a;
int c;
int b;
int d;
b = 100;
c = rand () % 256;
a = 256 - c;
d = (a / 4) + 1;
movd_m2r(b, mm4);
movd_m2r(c, mm5);
movd_m2r(a, mm6);
movd_m2r(d, mm7);
return 0;
}
gcc-4.0.0 desn't compile the above code if compile with option -O[s1-9], and
i got following output.
smspc tmp # gcc -Wall -S -o - testmmx.c -O
.file "testmmx.c"
.text
.globl main
.type main, @function
main:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
andl $-16, %esp
subl $16, %esp
call rand
cltd
shrl $24, %edx
addl %edx, %eax
andl $255, %eax
subl %edx, %eax
movl %eax, %ecx
movl $256, %edx
subl %eax, %edx
#APP
movd $100, %mm4
movd %ecx, %mm5
movd %edx, %mm6
testmmx.c: In function 'main':
testmmx.c:22: error: invalid 'asm': invalid expression as operand
movd +1, %mm7
#NO_APP
movl $0, %eax
leave
ret
.size main, .-main
.ident "GCC: (GNU) 4.0.0-20050522 (Gentoo 4.0.0.20050522)"
.section .note.GNU-stack,"",@progbits
compiling without -O is ok.
smspc tmp # gcc -Wall -S -o - testmmx.c
.file "testmmx.c"
.text
.globl main
.type main, @function
main:
pushl %ebp
movl %esp, %ebp
subl $24, %esp
andl $-16, %esp
movl $0, %eax
addl $15, %eax
addl $15, %eax
shrl $4, %eax
sall $4, %eax
subl %eax, %esp
movl $100, -8(%ebp)
call rand
movl %eax, %edx
movl %edx, %eax
sarl $31, %eax
movl %eax, %ecx
shrl $24, %ecx
leal (%edx,%ecx), %eax
andl $255, %eax
subl %ecx, %eax
movl %eax, -12(%ebp)
movl $256, %eax
subl -12(%ebp), %eax
movl %eax, -16(%ebp)
movl -16(%ebp), %edx
movl %edx, %eax
sarl $31, %eax
shrl $30, %eax
addl %edx, %eax
sarl $2, %eax
incl %eax
movl %eax, -4(%ebp)
#APP
movd -8(%ebp), %mm4
movd -12(%ebp), %mm5
movd -16(%ebp), %mm6
movd -4(%ebp), %mm7
#NO_APP
movl $0, %eax
leave
ret
.size main, .-main
.ident "GCC: (GNU) 4.0.0-20050522 (Gentoo 4.0.0.20050522)"
.section .note.GNU-stack,"",@progbits
some additional info about my system:
Portage 2.0.51.22-r1 (default-linux/x86/2005.0, gcc-4.0.0-20050522,
glibc-2.3.5.20050418-r0, 2.6.12-rc4-skunk1-unicon i686)
=================================================================
System uname: 2.6.12-rc4-skunk1-unicon i686 Intel(R) Celeron(R) CPU 1.70GHz
Gentoo Base System version 1.6.12
dev-lang/python: 2.3.5
sys-apps/sandbox: 1.2.8
sys-devel/autoconf: 2.13, 2.59-r6
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5
sys-devel/binutils: 2.15.97
sys-devel/libtool: 1.5.16
virtual/os-headers: 2.6.11
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O1 -pipe -march=pentium4"
CHOST="i686-pc-linux-gnu"
--
Summary: gcc doesn't compile my c code (with some inline asm
ocde) if compiling with optimization options
Product: gcc
Version: 4.0.1
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sunmoon1997 at gmail dot com
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=21748
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug tree-optimization/21748] gcc doesn't compile my c code (with some inline asm ocde) if compiling with optimization options
2005-05-25 11:45 [Bug tree-optimization/21748] New: gcc doesn't compile my c code (with some inline asm ocde) if compiling with optimization options sunmoon1997 at gmail dot com
@ 2005-05-25 12:51 ` pinskia at gcc dot gnu dot org
2005-05-25 12:56 ` sunmoon1997 at gmail dot com
1 sibling, 0 replies; 3+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-05-25 12:51 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From pinskia at gcc dot gnu dot org 2005-05-25 12:14 -------
X should almost never used. if you are using inline-asm for mmx instruction, please use the mmx
intrinsics instead which are better optimized.
--
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21748
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug tree-optimization/21748] gcc doesn't compile my c code (with some inline asm ocde) if compiling with optimization options
2005-05-25 11:45 [Bug tree-optimization/21748] New: gcc doesn't compile my c code (with some inline asm ocde) if compiling with optimization options sunmoon1997 at gmail dot com
2005-05-25 12:51 ` [Bug tree-optimization/21748] " pinskia at gcc dot gnu dot org
@ 2005-05-25 12:56 ` sunmoon1997 at gmail dot com
1 sibling, 0 replies; 3+ messages in thread
From: sunmoon1997 at gmail dot com @ 2005-05-25 12:56 UTC (permalink / raw)
To: gcc-bugs
------- Additional Comments From sunmoon1997 at gmail dot com 2005-05-25 12:52 -------
thanks for replay
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21748
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2005-05-25 12:52 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-05-25 11:45 [Bug tree-optimization/21748] New: gcc doesn't compile my c code (with some inline asm ocde) if compiling with optimization options sunmoon1997 at gmail dot com
2005-05-25 12:51 ` [Bug tree-optimization/21748] " pinskia at gcc dot gnu dot org
2005-05-25 12:56 ` sunmoon1997 at gmail dot com
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).