GCC 3.0.3 Prelease problem on --target=m68k-elf
Peter Barada
pbarada@mail.wm.sps.mot.com
Thu Dec 13 17:12:00 GMT 2001
gcc-3.0.3-20011213 builds with the following config.status:
#!/bin/sh
# This file was generated automatically by configure. Do not edit.
# This directory was configured as follows:
/home/pbarada/work/cvs-wavemark/cross-linux-tools/gcc-3.0.3-20011213/configure --with-gcc-version-trigger=/home/pbarada/work/cvs-wavemark/cross-linux-tools/gcc-3.0.3-20011213/gcc/version.c --host=i686-pc-linux-gnu --target=m68k-elf --prefix=/tmp/crap5 --enable-languages=c --with-local-prefix=/tmp/crap5/m68k-elf --without-headers --with-newlib --disable-shared --norecursion
#
Unfortunately it doesn't produce correct code for -m5200 due to the
"r" constraint in the following pattern in gcc/config/m68k/m68k.md:
;; Jump to variable address from dispatch table of relative addresses.
(define_insn ""
[(set (pc)
(plus:SI (pc)
(sign_extend:SI (match_operand:HI 0 "register_operand" "r"))))
(use (label_ref (match_operand 1 "" "")))]
""
On Coldfire the ext.l instruction can only extend data registers, not
address registers, so either the constraint needs to be changed to
"d", or another pettern needs to be created for TARGET_5200 with a "d"
constraint, and this needs a condition of !TARGET_5200.
--
Peter Barada Peter.Barada@motorola.com
Wizard 781-852-2768 (direct)
WaveMark Solutions(wholly owned by Motorola) 781-270-0193 (fax)
More information about the Gcc
mailing list