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



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.


Is there anyway to run C/Diagnostika_main.c throught the preprocess
(using -E) and then trime out everything except the fucntion that ends
at line 422, and any variable/type defintions used in the function?

From the ouptut I see that someone has decided that it can mix mode5
source addressing with mode6 destination addression, something that is
illegal on ColdFire.  I need to be able to debug why that insn was
constructed.

I have been successful in manifesting the bug in simple piece of code.
I do not know, if it is the same problem mentioned above,
but I hope it is.
Snippet of code as well as compiler output attached.

Greetings, Hanys

char *bug(void)
{
	unsigned int i;
	char *x;
	static char ser[20];

	for(i=0;i<9;i++)
	    ser[i] = x[i] + i + 20;
}
[root@honza C]/usr/m68k-elf-3.4.1/bin/m68k-elf-gcc -g -O -m528x -Wall -c -o ./bug2.o ./bug2.c
./bug2.c: In function `bug':
./bug2.c:10: warning: control reaches end of non-void function
./bug2.c:5: warning: 'x' might be used uninitialized in this function
./bug2.c:10: error: insn does not satisfy its constraints:
(insn 63 19 21 1 ./bug2.c:9 (set (reg:QI 11 %a3)
        (mem:QI (plus:SI (reg/v/f:SI 10 %a2 [orig:32 x ] [32])
                (reg/v:SI 0 %d0 [orig:31 i ] [31])) [0 S1 A8])) 33 {*m68k.md:826} (nil)
    (nil))
./bug2.c:10: 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.

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