This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
ia32: clearing a 7116 bytes struct inserted as "C.171.8759: .zero 7116 ... memcpy()" with gcc-4.0.2
- From: Etienne Lorrain <etienne_lorrain at yahoo dot fr>
- To: gcc at gcc dot gnu dot org
- Date: Wed, 24 Aug 2005 13:11:43 +0200 (CEST)
- Subject: ia32: clearing a 7116 bytes struct inserted as "C.171.8759: .zero 7116 ... memcpy()" with gcc-4.0.2
Hello,
Investigated again a big increase of size going from GCC-3.4 to 4.x
(gcc (GCC) 4.0.2 20050811 (prerelease)) on my Gujin-v1.2, quickly way
to reproduce:
Download and untar gujin, then build "fs.s" :
url_get http://prdownloads.sourceforge.net/gujin/gujin-1.2.tar.gz?download
tar -xvzf gujin-1.2.tar.gz
cd gujin
make dep fs.s CC=/home/etienne/projet/toolchain/bin/gcc
Then edit fs.s and search the header of function "system_file_load":
.section .rodata
.type C.171.8759, @object
.size C.171.8759, 7116
C.171.8759:
.zero 7116
.section .xcode.system_file_load,"ax",@progbits
.p2align 1,,1
.globl system_file_load
.type system_file_load, @function
system_file_load:
pushl %ebp #
pushl %edi #
pushl %esi #
pushl %ebx #
subl $7488, %esp #, saved_stack.113
movl $0, 24(%esp) #, ax
movl $0, 20(%esp) #, ax
movl $0, 16(%esp) #, ax
movl $0, 12(%esp) #, ax
movl $0, 8(%esp) #, ax
#APP
bound %esp,STATE+48 # STATE.stack_limit
#NO_APP
leal 44(%esp), %edi #, tmp94
movl $C.171.8759, %esi #, tmp95
cld
movl $1779, %ecx #, tmp96
rep
movsl
That is the result of compiling (INIT is an enum of value 0):
unsigned system_file_load (struct desc_str *elem)
{bound_stack();{
z_stream gzlib = { .mode = INIT }; /* everything is null */
unsigned returned;
Thanks,
Etienne.
___________________________________________________________________________
Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger
Téléchargez cette version sur http://fr.messenger.yahoo.com