This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


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

alignment of common blocks



For performance reasons, we would like to be able to control the
alignment of common blocks (.comm name,size). We'd probably like to
be able to control the alignment of local common blocks (.lcomm name,size)
as well.

It seems that the cygwin32 stuff aligns common blocks on (at most) 4-byte
boundaries. Looking at the gas source, .lcomm stuff is aligned on at most
8-byte boundaries based on the size of the common, which is at least
reasonable (although it would be nice to control).

Many assemblers accept a third argument to .comm . On linux, I think gas
accepts:
	.comm	stuff,400,8

saying 'stuff is 400 bytes long, and align it on an 8-byte boundary'.

Does anyone have any idea if the vanilla cygwin32 toolkit has a way
to align .comm blocks (even brute force option to the linker)? Otherwise,
I guess it is time to hack source code. And, any info on .lcomm.

Finally, another question -- what is the default alignment of the stack?

This is all important to get good performance on double precision stuff
on pentium, pentium pro, and later, as well as to allow users control
based on cache line size.

Regards,

Larry Meadows
lfm@pgroup.com
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


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