Troubles reloading QImode in Coldfire

Peter Barada pbarada@mail.wm.sps.mot.com
Tue Nov 6 02:16:00 GMT 2001


I'm in the midst of adding in the latest coldfire extensions to
2.95.3, and I had some code the generated an internal compiler error
when I tried using the ColdFire extensions.  I went back to a bone
stock 2.95.3 for comparison and got the following error when cc1 is
invoked with: 

/home/pbarada/src/obj/gcc-2.95.3/gcc/cc1 /tmp/lossy.c -quiet -dumpbase lossy.c -m5200 -malign-int -g -O3 -Os -Wall -Wno-format -version -fno-strength-reduce -fno-strength-reduce -o /tmp/lossy.s 

/tmp/lossy.c: In function `LossyErrDifCmpr':
/tmp/lossy.c:185: internal error--insn does not satisfy its constraints:

(insn 840 431 432 (set (reg:QI 8 %a0)
        (mem/s/u:QI (plus:SI (reg:SI 8 %a0)
                (reg:SI 2 %d2)) 0)) 55 {movstrictqi-1} (nil)
    (nil))

I can understand why the instuction doesn't satisfy its constraints,
its illegal to execute a 'movb' where the destination is an address register.

If I remove the -malign-int, or the -Os the error goes away.

Can anyone explain to me the best way to determine why the compiler is
trying to us an address register in QImode when none of the contraints
allow it, or any other clues how to go about finding and fixing this?

Thanx in advance,

-- 
Peter Barada                                   Peter.Barada@motorola.com
Wizard                                         781-852-2768 (direct)
WaveMark Solutions(wholly owned by Motorola)   781-270-0193 (fax)

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com



More information about the crossgcc mailing list