This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]