This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug target/21551] [4.0 Regression] bootstrap failed


------- Additional Comments From hjl at lucon dot org  2005-05-15 00:12 -------
This patch

http://gcc.gnu.org/ml/gcc-patches/2005-05/msg01151.html

seems the cause. expmed.c compiled with the after compiler has

        .mii
        nop 0
        (p6) addl r48 = @ltoffx(insn_data#+32768), r1
        ;;
        nop 0
        .mfb
        (p6) ld8.mov r48 = [r48], insn_data#+32768
        .loc 1 638 0
        nop 0
...
        .loc 1 742 0
        .mmi
        ld8 r14 = [r48]
        mov r54 = r38
        mov r55 = r44
        ;;
        .mmi
        adds r14 = 72, r14
        ;;
        ld8 r8 = [r14]
        nop 0
        ;;
        .mmi
        ld8 r14 = [r8], 8
        ;;
        ld8 r1 = [r8]
        mov b6 = r14
        .bbb
        nop 0
        nop 0
        br.call.sptk.many b0 = b6

for

    740       /* If this machine's insv insists on a register,
    741          get VALUE1 into a register.  */
    742       if (! ((*insn_data[(int) CODE_FOR_insv].operand[3].predicate)
    743              (value1, maxmode)))
    744         value1 = force_reg (maxmode, value1)

while the before compiler generates:

        .mmb
        addl r49 = @ltoffx(insn_data#+16384), r1
        .loc 1 630 0
        ld4 r39 = [r37]
        .loc 1 638 0
        nop 0
        .mmb
        cmp.ne p6, p7 = 39, r14
        .loc 1 632 0
        st4 [r37] = r15
        .loc 1 638 0
        (p7) br.cond.dpnt .L1908
        ;;
        .mii
        ld8.mov r49 = [r49], insn_data#+16384
        nop 0
        ;;
...
        .loc 1 742 0
        .mmi
        ld8 r14 = [r49]
        mov r54 = r38
        mov r55 = r44
        ;;
        .mmi
        adds r14 = 72, r14
        ;;
        ld8 r8 = [r14]
        nop 0
        ;;
        .mmi
        ld8 r14 = [r8], 8
        ;;
        ld8 r1 = [r8]
        mov b6 = r14
        .bbb
        nop 0
        nop 0
        br.call.sptk.many b0 = b6

The difference is "insn_data#+32768" vs. "insn_data#+16384".



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21551


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