This is the mail archive of the gcc-help@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]

Jump table alignment (2.95.2 versus 3.2.3)


Further to my previous message, the plot thickens.  The 'jump tables'
which have changed their alignment between 2.95.2 and 3.2.3 appear
not to be present in any of the source modules output from gcc, but
are present in the .exe file created by the linker.  Perhaps they are
part of some Windows-specific code introduced by the -mwindows option.
If it helps pin this down, here are hex dumps of the relevant parts
of the executables (just the first few table entries):

Built using MinGW 2.92.2 on a Windows 95 platform:

010E00  00 01 00 00 00 E8 8E FF-FF FF C9 C3 FF 25 3C 44
010E10  41 00 90 90 FF 25 44 44-41 00 90 90 FF 25 78 44
010E20  41 00 90 90 FF 25 64 44-41 00 90 90 FF 25 40 44
010E30  41 00 90 90 FF 25 60 44-41 00 90 90 FF 25 7C 44

Built using MinGW 3.2.3 on a Windows XP platform:

010B00  FF 25 24 54 41 00 90 90-00 00 00 00 00 00 00 00
010B10  FF 25 30 54 41 00 90 90-00 00 00 00 00 00 00 00
010B20  FF 25 2C 54 41 00 90 90-00 00 00 00 00 00 00 00
010B30  FF 25 28 54 41 00 90 90-00 00 00 00 00 00 00 00

It's those extra blocks of eight 00s which are causing the increase
in the file size.  What are these tables doing, and why has the
alignment changed ?  Maybe I should be addressing this question to
the MinGW people.

Richard.
http://www.rtrussell.co.uk/


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