GCC porting problem help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



    We have a problem while using a gcc cross-compiler for  our processor to compile one of our uClinux applications like mp3player. We used gcc 2.95.3 version to port. The ported one is throwing an error .

This is the error report:-
 
make[3]: Entering directory `/home/new/driver_testing/uClinux-dist/user/mp3play/mpegdec_lib'
nisa-elf-gcc -DCONFIG_FRIO -O0 -g -Dlinux -D__linux__ -Dunix -D__uClinux__ -DEMBED -I/home/new/driver_testing/uClinux-dist/lib/uClibc/include -I/home/new/driver_testing/uClinux-dist/lib/libm -I/home/new/driver_testing/uClinux-dist -fno-builtin -nostartfiles -I/home/new/driver_testing/uClinux-dist/linux-2.4.x/include -Impegdec_lib -DMPEGAUD_INT -Irc4 -DMPEGAUD_INT -DSPLIT_TABLE -DUSE_IMDCT_TABLE -g -O1 -c -o mpeg3dec.o mpeg3dec.c
mpeg3dec.c: In function `MPEG3_dequantize_samples':
mpeg3dec.c:864: internal error--insn does not satisfy its constraints:
(insn 719 1800 1806 (set (reg:SI 9 P1)
         (plus:SI (mult:SI (reg:SI 1 R1)
                 (const_int 4 [0x4]))
             (reg:SI 9 P1))) 53 {umulhisi3-4} (insn_list 716 (insn_list 708 (nil)))
     (nil))
make[3]: *** [mpeg3dec.o] Error 1


Our analysis on the problem is as follows:
 
    An instruction of the type "p1 = R1*4 + p1" is being used here. The operation between data registers and pointer registers are not allowed in our target. Why is it happening here ? How the wrong class of registers are allocated here?

    This problem is vanished when we use no optimization. But if we use  optimization -O1 it is coming.

    So Could anyone help me out? 
 
The .md file is attached along with this mail.
 
Thx in advance
Ashwani.

Attachment: nisa.md
Description: audio/md


[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux