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]

Troubles reloading QImode in Coldfire



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


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