This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
> > >I've found a bug in the gcc build on > >http://www.davehylands.com/avi/index.htm that I've been trying. This isn't > >just an inconvenience thing, but a matter of incorrectly generated code when > >the -fomit-frame-pointer flag is on. I normally have that flag on, since > >gdb does not need the frame pointer for debugging, and without it the > >compiler saves a few instructions and cycles, and has another free register > >to use. But with it enabled, the compiler produces incorrect code (example > >below) - it reads function parameters from the wrong place, and it uses > >incorrect addresses for local variables. I notice (from > >http://www.davehylands.com/avi/compile_instructions_for_gcc.htm ) that this > >build has a patch called gcc-3.3.1-coldfire-frame.patch.txt (available from > >Avi's site) - I don't know if this is a standard or commonly used patch, but > >it seems to provide the "interrupt" attribute (which is essential for my > >program - I am running bare-bones without an OS on one of our own cards, and > >I much prefer the "interrupt" attribute to writing assembly wrappers). I > >don't know if the patch is related to the problem or not. > > Check out the patches at: > http://www.develer.com/uclinux/uclinux-elf-tools.html > > One of which is gcc-3.3.1-coldfire-reload.patch which contains a small > patch to gcc/reload1.c which isn't acceptable to the GCC maintainers > since it makes an assumption about how instructions like: > > move.l 4(%sp),-(%sp) > > update %sp, before or after the access to 4(%sp). This patch has been > found to fix problems using -fomit-frame-pointer on ColdFire. You'd > best pick up the *complete* gcc-3.3.1 patch set... > > Good Luck! > Thanks for the information. I've been meaning to do a build myself for a while now, and the uclinux site looks like a convenient place to get the patches and information. Is it worth trying 3.4 rather than 3.3.1 ? From my testing and brief benchtesting, it looks like the back-end of 3.3.1 is pretty much the same as for my old 2.95 version (a few things were slightly faster, and bitfield manipulation seemed to be a bit slower) on the cpu32. The front-end optomisations (such as moving blocks of code around, and inline functions even if they were defined later in the code, with -O3 turned on) have definitely improved. As far as I can tell, changes in 3.4 are going to be more on improving the speed of the compiler itself rather than changes at the back-end - is that correct? Also, I am going to have to get gcc going for the MPC56x in the very near future. I know there are some windows binaries available from Macraigor, but are there any good pages with build instructions and necessary patches like there are for the cpu32/coldfire ? Thanks, David ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |