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]

Re: Updated ColdFire toolchain sources available on my CVS server


Peter Barada wrote:

WHich compiler generates the sub.l #imm,d(Ax) instruction?  Could you
send me a small testcase witht eh commandline used to generate the
problem?

Thanks!



I used ColdFire GCC compiler from your CVS tree, version 3.4.0.
Attached C source generated error. Sorry for length of attached
code, but I failed when trying to generate code snippet manifesting
the bug (one disappeared when shortening the file).

Note: Sorry for misleading info, but 3.3.3 works well, only
3.4.0 and 3.4.1 generate the bug.



I've patched my gcc-3.4.0 and gcc-3.4.1 trees to fix this. The problem was that the subsi3 pattern allows a label-ref to be subtracced from a general memory operand, something that is illegal for ColdFire, but legal for 68k.

Could you try building gcc-3.4.0/gcc-3.4.1 from my CVS server and
testing them again? If that passes, then I'll submit a patch to mainline.


The compilation passes for now, the subsi3 bug dissapeared.
But when trying compile bigger project (output binary file has about 200kB)
with optimalization enabled (CFLAGS += -O or CFLAGS += -O2),
internal error occured (see attached compiler output report).
Compilation process passes successfully without optimalization enabled.
I am sorry not to attach project *.c and *.h source files, but I have
no permission of author to do it (it is not my project).
I hope compiler output report will be enough to detect the
compilation fail.
                              Greetings, Hanys

/usr/m68k-elf-3.4.1/bin/m68k-elf-gcc -g -O2 -m528x -Wall -I./Include -c -o O/Diagnostika_main.o C/Diagnostika_main.c
In file included from C/Diagnostika_main.c:25:
./Include/main_str.h:98:1: warning: "TRUE" redefined
In file included from ./Include/target.h:14,
                 from C/Diagnostika_main.c:18:
./Include/mcf5xxx.h:24:1: warning: this is the location of the previous definition
In file included from C/Diagnostika_main.c:25:
./Include/main_str.h:99:1: warning: "FALSE" redefined
In file included from ./Include/target.h:14,
                 from C/Diagnostika_main.c:18:
./Include/mcf5xxx.h:19:1: warning: this is the location of the previous definition
In file included from C/Diagnostika_main.c:28:
./Include/flash.h:10:1: warning: "FLASH_SIZE" redefined
In file included from C/Diagnostika_main.c:18:
./Include/target.h:63:1: warning: this is the location of the previous definition
C/Diagnostika_main.c: In function `main':
C/Diagnostika_main.c:113: warning: implicit declaration of function `Init_TimSys'
C/Diagnostika_main.c:131: warning: implicit declaration of function `init_ports_AC'
C/Diagnostika_main.c:149: warning: implicit declaration of function `osciloskop'
C/Diagnostika_main.c:103: warning: unused variable `hwinfo'
C/Diagnostika_main.c:104: warning: unused variable `rx'
C/Diagnostika_main.c:104: warning: unused variable `i'
C/Diagnostika_main.c:105: warning: unused variable `ff'
C/Diagnostika_main.c:106: warning: unused variable `x'
C/Diagnostika_main.c: In function `Generate_menu':
C/Diagnostika_main.c:252: warning: unused variable `adr'
C/Diagnostika_main.c:252: warning: unused variable `pocet'
C/Diagnostika_main.c:254: warning: unused variable `cnt2'
C/Diagnostika_main.c:255: warning: unused variable `p'
C/Diagnostika_main.c: In function `osciloskop':
C/Diagnostika_main.c:725: warning: implicit declaration of function `lcd_set_pixel'
C/Diagnostika_main.c: In function `FAT_get_rec':
C/Diagnostika_main.c:757: warning: comparison is always false due to limited range of data type
C/Diagnostika_main.c: In function `FAT_file_read':
C/Diagnostika_main.c:765: warning: unused variable `i'
C/Diagnostika_main.c:785:2: warning: no newline at end of file
C/Diagnostika_main.c: In function `Generate_menu':
C/Diagnostika_main.c:422: error: insn does not satisfy its constraints:
(insn 184 1571 185 9 C/Diagnostika_main.c:325 (set (mem/s:HI (plus:SI (reg:SI 8 %a0 [77])
                (const_int -2632 [0xfffff5b8])) [4 <variable>.FAT_cnt+0 S2 A16])
        (mem:HI (plus:SI (reg/f:SI 14 %a6)
                (reg:SI 1 %d1)) [57 file_cnt+0 S4 A16])) 29 {*m68k.md:790} (nil)
    (nil))
C/Diagnostika_main.c:422: internal compiler error: in reload_cse_simplify_operands, at postreload.c:378
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make: *** [O/Diagnostika_main.o] Error 1

------
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]