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

           Summary: generate wrong logic code
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: critical
          Priority: P3
         Component: c
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: wux...@gmail.com


GCC version 4.6.0.

bug description:
gcc : *mipsel* cross compiler
in objdumped files :

=============================================================
bfc0003c:    afc40018     sw    a0,24(s8)
bfc00040:    afc5001c     sw    a1,28(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:5
    int a, b, temp;
    if(num1<num2) /*want n1>n2*/
bfc00044:    8fc30018     lw    v1,24(s8)
bfc00048:    8fc2001c     lw    v0,28(s8)
bfc0004c:    00000000     nop
bfc00050:    0062102a     slt    v0,v1,v0
bfc00054:    1040000a     beqz    v0,bfc00080 <lcm+0x50>
=============================================================
the logic int code was
    if (num1 < num2) {do-sth.}
but in the generated code, it is
    if (! (num1 < num2) {do-sth.}
in line <bfc00054>, the instruction should be "bnez".


*************************************************************
appendix :
*************************************************************
GCC version 4.6.0. with binutils-2.21.1

System type: fedora 15 64bit, x86_64.
build a cross compile for 'mipsel'
config params:
> export PREFIX=/home/wuxb/.mipsgcc0
> export TARGET=mipsel-gnu-linux
> ../gcc-4.6.0/configure --prefix=$PREFIX --target=$TARGET


*************************************************************


*************************************************************
Makefile
*************************************************************
.PHONY : all
SHAREFILES = ../global
CROSS = mipsel-gnu-linux-
CC = $(CROSS)gcc
LD = $(CROSS)ld
AS = $(CROSS)as
OBJCOPY = $(CROSS)objcopy
OBJDUMP = $(CROSS)objdump
INCLUDE = -I$(SHAREFILES)
CFLAGS = -v -save-temps -Wall -g -fno-builtin -fno-pic -mno-abicalls $(INCLUDE)
ASFLAGS = -gstabs -fno-pic -mno-abicalls -D__ASSEMBLY__ $(INCLUDE)
LDFLAGS = -T $(SHAREFILES)/mips.lds
COPYFLAGS = --gap-fill=0xff -O binary
BINELF = bin.elf
BINBIN = bin.bin
GLOBALSOURCES = $(SHAREFILES)/head.S
SOURCES = $(GLOBALSOURCES) mips_1001.c
ALLDEP = Makefile.dep

# .c -> .o, .s -> .o
OBJECTS = $(patsubst %.c, %.o, $(patsubst %.S, %.o, $(SOURCES)))
DEPENDS = $(patsubst %.o, %.d, $(OBJECTS)

all : $(ALLDEP) $(BINBIN)
$(BINBIN) : $(BINELF)
    $(OBJCOPY) $(COPYFLAGS) $^ $@

$(BINELF) : $(OBJECTS)
    $(LD) -o $@ $(LDFLAGS) $^
    $(OBJDUMP) -lDS $@ > $@.txt

%.o : %.c
    $(CC) $(CFLAGS) -c $< -o $@ 

%.o : %.S
    $(CC) $(ASFLAGS) -c $< -o $@

$(ALLDEP) : $(SOURCES)
    $(CC) $(CFLAGS) -MM $^ > $@
sinclude $(ALLDEP)

clean:
    rm -vf $(OBJECTS) $(BINBIN) $(BINELF) $(ALLDEP)
*************************************************************
end
*************************************************************


*************************************************************
file:test_1001.c
*************************************************************
#include <rawapi.h>
long lcm(long num1,long num2)
{
    int a, b, temp;
    if(num1<num2) /*want n1>n2*/
    {
        temp=num1; 
        num1=num2;
        num2=temp; /*swap*/
    }
    a=num1;//big
    b=num2;//small
    while(b!=0) /*gcd*/
    {
        temp=a%b;
        a=b;
        b=temp;
    }
    return num1*num2 / a;
}
long test (long a, long b)
{
    return a+b;
}
int main()
{
    int i, n = 0;
    long a, b, g;
    a = 123;
    b = 321;
    g = lcm(a, b);

    uput(g);
    return 0;
}
*************************************************************
end
*************************************************************



*************************************************************
file:test_1001.i
*************************************************************
# 1 "mips_1001.c"
# 1 "/home/wuxb/workspace/gcc/test_1001//"
# 1 "<built-in>"
# 1 "<命令行>"
# 1 "mips_1001.c"
# 1 "../global/rawapi.h" 1

extern void uput(unsigned int value);
# 2 "mips_1001.c" 2
long lcm(long num1,long num2)
{
    int a, b, temp;
    if(num1<num2)
    {
        temp=num1;
        num1=num2;
        num2=temp;
    }
    a=num1;
    b=num2;
    while(b!=0)
    {
        temp=a%b;
        a=b;
        b=temp;
    }
    return num1*num2 / a;
}
long test (long a, long b)
{
    return a+b;
}
int main()
{
    int i, n = 0;
    long a, b, g;
    a = 123;
    b = 321;
    g = lcm(a, b);

    uput(g);
    return 0;
}
*************************************************************

*************************************************************


*************************************************************
mipsel-gnu-linux-objdump elf file.
*************************************************************

bin.elf:     file format elf32-tradlittlemips


Disassembly of section .text:

bfc00000 <_start>:
../global/head.S:18
    nop
.global uput
uput:
    lui t0, 0xa000
    sw a0, 0x700(t0)
    jr ra
bfc00000:    3c10a000     lui    s0,0xa000
bfc00004:    2610fff0     addiu    s0,s0,-16
bfc00008:    0200e821     move    sp,s0
bfc0000c:    10000055     b    bfc00164 <main>
bfc00010:    00000000     nop
    ...

bfc0001c <uput>:
bfc0001c:    3c08a000     lui    t0,0xa000
bfc00020:    ad040700     sw    a0,1792(t0)
bfc00024:    03e00008     jr    ra
bfc00028:    00000000     nop
bfc0002c:    00000000     nop

bfc00030 <lcm>:
lcm():
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:3
#include <rawapi.h>
long lcm(long num1,long num2)
{
bfc00030:    27bdffe8     addiu    sp,sp,-24
bfc00034:    afbe0014     sw    s8,20(sp)
bfc00038:    03a0f021     move    s8,sp
bfc0003c:    afc40018     sw    a0,24(s8)
bfc00040:    afc5001c     sw    a1,28(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:5
    int a, b, temp;
    if(num1<num2) /*want n1>n2*/
bfc00044:    8fc30018     lw    v1,24(s8)
bfc00048:    8fc2001c     lw    v0,28(s8)
bfc0004c:    00000000     nop
bfc00050:    0062102a     slt    v0,v1,v0
bfc00054:    1040000a     beqz    v0,bfc00080 <lcm+0x50>
bfc00058:    00000000     nop
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:7
    {
        temp=num1; 
bfc0005c:    8fc20018     lw    v0,24(s8)
bfc00060:    00000000     nop
bfc00064:    afc20008     sw    v0,8(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:8
        num1=num2;
bfc00068:    8fc2001c     lw    v0,28(s8)
bfc0006c:    00000000     nop
bfc00070:    afc20018     sw    v0,24(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:9
        num2=temp; /*swap*/
bfc00074:    8fc20008     lw    v0,8(s8)
bfc00078:    00000000     nop
bfc0007c:    afc2001c     sw    v0,28(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:11
    }
    a=num1;//big
bfc00080:    8fc20018     lw    v0,24(s8)
bfc00084:    00000000     nop
bfc00088:    afc20000     sw    v0,0(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:12
    b=num2;//small
bfc0008c:    8fc2001c     lw    v0,28(s8)
bfc00090:    00000000     nop
bfc00094:    afc20004     sw    v0,4(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:13
    while(b!=0) /*gcd*/
bfc00098:    0bf00036     j    bfc000d8 <lcm+0xa8>
bfc0009c:    00000000     nop
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:15
    {
        temp=a%b;
bfc000a0:    8fc30000     lw    v1,0(s8)
bfc000a4:    8fc20004     lw    v0,4(s8)
bfc000a8:    00000000     nop
bfc000ac:    14400002     bnez    v0,bfc000b8 <lcm+0x88>
bfc000b0:    0062001a     div    zero,v1,v0
bfc000b4:    0007000d     break    0x7
bfc000b8:    00001010     mfhi    v0
bfc000bc:    afc20008     sw    v0,8(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:16
        a=b;
bfc000c0:    8fc20004     lw    v0,4(s8)
bfc000c4:    00000000     nop
bfc000c8:    afc20000     sw    v0,0(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:17
        b=temp;
bfc000cc:    8fc20008     lw    v0,8(s8)
bfc000d0:    00000000     nop
bfc000d4:    afc20004     sw    v0,4(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:13
        num1=num2;
        num2=temp; /*swap*/
    }
    a=num1;//big
    b=num2;//small
    while(b!=0) /*gcd*/
bfc000d8:    8fc20004     lw    v0,4(s8)
bfc000dc:    00000000     nop
bfc000e0:    1440ffef     bnez    v0,bfc000a0 <lcm+0x70>
bfc000e4:    00000000     nop
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:19
    {
        temp=a%b;
        a=b;
        b=temp;
    }
    return num1*num2 / a;
bfc000e8:    8fc30018     lw    v1,24(s8)
bfc000ec:    8fc2001c     lw    v0,28(s8)
bfc000f0:    00000000     nop
bfc000f4:    00620018     mult    v1,v0
bfc000f8:    00001812     mflo    v1
bfc000fc:    8fc20000     lw    v0,0(s8)
bfc00100:    00000000     nop
bfc00104:    14400002     bnez    v0,bfc00110 <lcm+0xe0>
bfc00108:    0062001a     div    zero,v1,v0
bfc0010c:    0007000d     break    0x7
bfc00110:    00001810     mfhi    v1
bfc00114:    00001012     mflo    v0
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:20
}
bfc00118:    03c0e821     move    sp,s8
bfc0011c:    8fbe0014     lw    s8,20(sp)
bfc00120:    27bd0018     addiu    sp,sp,24
bfc00124:    03e00008     jr    ra
bfc00128:    00000000     nop

bfc0012c <test>:
test():
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:22
long test (long a, long b)
{
bfc0012c:    27bdfff8     addiu    sp,sp,-8
bfc00130:    afbe0004     sw    s8,4(sp)
bfc00134:    03a0f021     move    s8,sp
bfc00138:    afc40008     sw    a0,8(s8)
bfc0013c:    afc5000c     sw    a1,12(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:23
    return a+b;
bfc00140:    8fc30008     lw    v1,8(s8)
bfc00144:    8fc2000c     lw    v0,12(s8)
bfc00148:    00000000     nop
bfc0014c:    00621021     addu    v0,v1,v0
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:24
}
bfc00150:    03c0e821     move    sp,s8
bfc00154:    8fbe0004     lw    s8,4(sp)
bfc00158:    27bd0008     addiu    sp,sp,8
bfc0015c:    03e00008     jr    ra
bfc00160:    00000000     nop

bfc00164 <main>:
main():
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:26
int main()
{
bfc00164:    27bdffd8     addiu    sp,sp,-40
bfc00168:    afbf0024     sw    ra,36(sp)
bfc0016c:    afbe0020     sw    s8,32(sp)
bfc00170:    03a0f021     move    s8,sp
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:27
    int i, n = 0;
bfc00174:    afc00010     sw    zero,16(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:29
    long a, b, g;
    a = 123;
bfc00178:    2402007b     li    v0,123
bfc0017c:    afc20014     sw    v0,20(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:30
    b = 321;
bfc00180:    24020141     li    v0,321
bfc00184:    afc20018     sw    v0,24(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:31
    g = lcm(a, b);
bfc00188:    8fc40014     lw    a0,20(s8)
bfc0018c:    8fc50018     lw    a1,24(s8)
bfc00190:    0ff0000c     jal    bfc00030 <lcm>
bfc00194:    00000000     nop
bfc00198:    afc2001c     sw    v0,28(s8)
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:33

    uput(g);
bfc0019c:    8fc2001c     lw    v0,28(s8)
bfc001a0:    00000000     nop
bfc001a4:    00402021     move    a0,v0
bfc001a8:    0ff00007     jal    bfc0001c <uput>
bfc001ac:    00000000     nop
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:34
    return 0;
bfc001b0:    00001021     move    v0,zero
/home/wuxb/workspace/gcc/test_1001/mips_1001.c:35
}
bfc001b4:    03c0e821     move    sp,s8
bfc001b8:    8fbf0024     lw    ra,36(sp)
bfc001bc:    8fbe0020     lw    s8,32(sp)
bfc001c0:    27bd0028     addiu    sp,sp,40
bfc001c4:    03e00008     jr    ra
bfc001c8:    00000000     nop
../global/head.S:18
bfc001cc:    00000000     nop

Disassembly of section .reginfo:

bfc001d0 <.reginfo>:
bfc001d0:    a0010110     sb    at,272(zero)
    ...

Disassembly of section .pdr:

00000000 <.pdr>:
   0:    bfc00030     0xbfc00030
   4:    40000000     mfc0    zero,c0_index
   8:    fffffffc     0xfffffffc
    ...
  14:    00000018     mult    zero,zero
  18:    0000001e     0x1e
  1c:    0000001f     0x1f
  20:    bfc0012c     0xbfc0012c
  24:    40000000     mfc0    zero,c0_index
  28:    fffffffc     0xfffffffc
    ...
  34:    00000008     jr    zero
  38:    0000001e     0x1e
  3c:    0000001f     0x1f
  40:    bfc00164     0xbfc00164
  44:    c0000000     lwc0    $0,0(zero)
  48:    fffffffc     0xfffffffc
    ...
  54:    00000028     0x28
  58:    0000001e     0x1e
  5c:    0000001f     0x1f

Disassembly of section .comment:

00000000 <.comment>:
   0:    3a434347     xori    v1,s2,0x4347
   4:    4e472820     c3    0x472820
   8:    34202955     ori    zero,at,0x2955
   c:    302e362e     andi    t6,at,0x362e
    ...

Disassembly of section .gnu.attributes:

00000000 <.gnu.attributes>:
   0:    00000f41     0xf41
   4:    756e6700     jalx    5b99c00 <__bss_end-0x7a466400>
   8:    00070100     sll    zero,a3,0x4
   c:    01040000     0x1040000

Disassembly of section .stab:

00000000 <.stab>:
   0:    00000001     0x1
   4:    000b0000     sll    zero,t3,0x0
   8:    00000022     neg    zero,zero
   c:    00000001     0x1
  10:    00000064     0x64
  14:    bfc00000     0xbfc00000
  18:    00000011     mthi    zero
  1c:    00000084     0x84
  20:    bfc00000     0xbfc00000
  24:    00000000     nop
  28:    00080044     0x80044
  2c:    bfc00000     0xbfc00000
  30:    00000000     nop
  34:    00090044     0x90044
  38:    bfc00004     0xbfc00004
  3c:    00000000     nop
  40:    000a0044     0xa0044
  44:    bfc00008     0xbfc00008
  48:    00000000     nop
  4c:    000b0044     0xb0044
  50:    bfc0000c     0xbfc0000c
  54:    00000000     nop
  58:    000c0044     0xc0044
  5c:    bfc00014     0xbfc00014
  60:    00000000     nop
  64:    000d0044     0xd0044
  68:    bfc00018     0xbfc00018
  6c:    00000000     nop
  70:    00100044     0x100044
  74:    bfc0001c     0xbfc0001c
  78:    00000000     nop
  7c:    00110044     0x110044
  80:    bfc00020     0xbfc00020
  84:    00000000     nop
  88:    00120044     0x120044
  8c:    bfc00024     0xbfc00024

Disassembly of section .stabstr:

00000000 <.stabstr>:
   0:    6d742f00     0x6d742f00
   4:    63632f70     0x63632f70
   8:    6970626e     0x6970626e
   c:    732e4141     0x732e4141
  10:    2f2e2e00     sltiu    t6,t9,11776
  14:    626f6c67     0x626f6c67
  18:    682f6c61     0x682f6c61
  1c:    2e646165     sltiu    a0,s3,24933
  20:    Address 0x0000000000000020 is out of bounds.


Disassembly of section .debug_info:

00000000 <.debug_info>:
   0:    00000118     0x118
   4:    00000002     srl    zero,zero,0x0
   8:    01040000     0x1040000
   c:    0000003d     0x3d
  10:    00002c01     0x2c01
  14:    00000900     sll    at,zero,0x4
  18:    c0003000     lwc0    $0,12288(zero)
  1c:    c001ccbf     lwc0    $1,-13121(zero)
  20:    000000bf     0xbf
  24:    6c010200     0x6c010200
  28:    01006d63     0x1006d63
  2c:    00850102     0x850102
  30:    00300000     0x300000
  34:    012cbfc0     0x12cbfc0
  38:    0000bfc0     sll    s7,zero,0x1f
  3c:    00850000     0x850000
  40:    49030000     0x49030000
  44:    01000000     0x1000000
  48:    00008502     srl    s0,zero,0x14
  4c:    00910200     0x910200
  50:    00004e03     sra    t1,zero,0x18
  54:    85020100     lh    v0,256(t0)
  58:    02000000     0x2000000
  5c:    61040491     0x61040491
  60:    8c040100     lw    a0,256(zero)
  64:    02000000     0x2000000
  68:    62046891     0x62046891
  6c:    8c040100     lw    a0,256(zero)
  70:    02000000     0x2000000
  74:    53056c91     0x53056c91
  78:    01000000     0x1000000
  7c:    00008c04     0x8c04
  80:    70910200     0x70910200
  84:    05040600     0x5040600
  88:    00000000     nop
  8c:    69050407     0x69050407
  90:    0800746e     j    1d1b8 <__bss_end-0x7ffe2e48>
  94:    00005801     0x5801
  98:    01150100     0x1150100
  9c:    00000085     0x85
  a0:    bfc0012c     0xbfc0012c
  a4:    bfc00164     0xbfc00164
  a8:    0000002c     0x2c
  ac:    000000c9     0xc9
  b0:    01006109     0x1006109
  b4:    00008515     0x8515
  b8:    00910200     0x910200
  bc:    01006209     0x1006209
  c0:    00008515     0x8515
  c4:    04910200     bgezal    a0,8c8 <__bss_end-0x7ffff738>
  c8:    38010a00     xori    at,zero,0xa00
  cc:    01000000     0x1000000
  d0:    00008c19     0x8c19
  d4:    c0016400     lwc0    $1,25600(zero)
  d8:    c001ccbf     lwc0    $1,-13121(zero)
  dc:    000058bf     0x58bf
  e0:    00690b00     0x690b00
  e4:    008c1b01     0x8c1b01
  e8:    6e040000     0x6e040000
  ec:    8c1b0100     lw    k1,256(zero)
  f0:    02000000     0x2000000
  f4:    61046891     0x61046891
  f8:    851c0100     lh    gp,256(t0)
  fc:    02000000     0x2000000
 100:    62046c91     0x62046c91
 104:    851c0100     lh    gp,256(t0)
 108:    02000000     0x2000000
 10c:    67047091     0x67047091
 110:    851c0100     lh    gp,256(t0)
 114:    02000000     0x2000000
 118:    00007491     0x7491

Disassembly of section .debug_abbrev:

00000000 <.debug_abbrev>:
   0:    25011101     addiu    at,t0,4353
   4:    030b130e     0x30b130e
   8:    110e1b0e     beq    t0,t6,6c44 <__bss_end-0x7fff93bc>
   c:    10011201     beq    zero,at,4814 <__bss_end-0x7fffb7ec>
  10:    02000006     srlv    zero,zero,s0
  14:    0c3f012e     jal    fc04b8 <__bss_end-0x7f03fb48>
  18:    0b3a0803     j    ce8200c <__bss_end-0x7317dff4>
  1c:    0c270b3b     jal    9c2cec <__bss_end-0x7f63d314>
  20:    01111349     0x1111349
  24:    06400112     bltz    s2,470 <__bss_end-0x7ffffb90>
  28:    00001301     0x1301
  2c:    03000503     0x3000503
  30:    3b0b3a0e     xori    t3,t8,0x3a0e
  34:    0213490b     0x213490b
  38:    0400000a     bltz    zero,64 <__bss_end-0x7fffff9c>
  3c:    08030034     j    c00d0 <__bss_end-0x7ff3ff30>
  40:    0b3b0b3a     j    cec2ce8 <__bss_end-0x7313d318>
  44:    0a021349     j    8084d24 <__bss_end-0x77f7b2dc>
  48:    34050000     li    a1,0x0
  4c:    3a0e0300     xori    t6,s0,0x300
  50:    490b3b0b     0x490b3b0b
  54:    000a0213     0xa0213
  58:    00240600     0x240600
  5c:    0b3e0b0b     j    cf82c2c <__bss_end-0x7307d3d4>
  60:    00000e03     sra    at,zero,0x18
  64:    0b002407     j    c00901c <__bss_end-0x73ff6fe4>
  68:    030b3e0b     0x30b3e0b
  6c:    08000008     j    20 <__bss_end-0x7fffffe0>
  70:    0c3f012e     jal    fc04b8 <__bss_end-0x7f03fb48>
  74:    0b3a0e03     j    ce8380c <__bss_end-0x7317c7f4>
  78:    0c270b3b     jal    9c2cec <__bss_end-0x7f63d314>
  7c:    01111349     0x1111349
  80:    06400112     bltz    s2,4cc <__bss_end-0x7ffffb34>
  84:    00001301     0x1301
  88:    03000509     0x3000509
  8c:    3b0b3a08     xori    t3,t8,0x3a08
  90:    0213490b     0x213490b
  94:    0a00000a     j    8000028 <__bss_end-0x77ffffd8>
  98:    0c3f012e     jal    fc04b8 <__bss_end-0x7f03fb48>
  9c:    0b3a0e03     j    ce8380c <__bss_end-0x7317c7f4>
  a0:    13490b3b     beq    k0,t1,2d90 <__bss_end-0x7fffd270>
  a4:    01120111     0x1120111
  a8:    00000640     sll    zero,zero,0x19
  ac:    0300340b     0x300340b
  b0:    3b0b3a08     xori    t3,t8,0x3a08
  b4:    0013490b     0x13490b
    ...

Disassembly of section .debug_loc:

00000000 <.debug_loc>:
   0:    00000000     nop
   4:    00000004     sllv    zero,zero,zero
   8:    008d0002     0x8d0002
   c:    00000004     sllv    zero,zero,zero
  10:    0000000c     syscall
  14:    188d0002     0x188d0002
  18:    0000000c     syscall
  1c:    000000fc     0xfc
  20:    188e0002     0x188e0002
    ...
  2c:    000000fc     0xfc
  30:    00000100     sll    zero,zero,0x4
  34:    008d0002     0x8d0002
  38:    00000100     sll    zero,zero,0x4
  3c:    00000108     0x108
  40:    088d0002     j    2340008 <__bss_end-0x7dcbfff8>
  44:    00000108     0x108
  48:    00000134     0x134
  4c:    088e0002     j    2380008 <__bss_end-0x7dc7fff8>
  50:    00000000     nop
  54:    00000000     nop
  58:    00000134     0x134
  5c:    00000138     0x138
  60:    008d0002     0x8d0002
  64:    00000138     0x138
  68:    00000144     0x144
  6c:    288d0002     slti    t5,a0,2
  70:    00000144     0x144
  74:    0000019c     0x19c
  78:    288e0002     slti    t6,a0,2
    ...

Disassembly of section .debug_aranges:

00000000 <.debug_aranges>:
   0:    0000001c     0x1c
   4:    00000002     srl    zero,zero,0x0
   8:    00040000     sll    zero,a0,0x0
   c:    00000000     nop
  10:    bfc00030     0xbfc00030
  14:    0000019c     0x19c
    ...

Disassembly of section .debug_line:

00000000 <.debug_line>:
   0:    0000005b     0x5b
   4:    00220002     0x220002
   8:    01010000     0x1010000
   c:    000d0efb     0xd0efb
  10:    01010101     0x1010101
  14:    01000000     0x1000000
  18:    00010000     sll    zero,at,0x0
  1c:    7370696d     0x7370696d
  20:    3030315f     andi    s0,at,0x315f
  24:    00632e31     0x632e31
  28:    00000000     nop
  2c:    30020500     andi    v0,zero,0x500
  30:    14bfc000     bne    a1,ra,ffff0034 <main+0x403efed0>
  34:    76083e08     jalx    820f820 <__bss_end-0x77df07e0>
  38:    bbbcbbbb     swr    gp,-17477(sp)
  3c:    e50884bb     swc1    $f8,-31557(t0)
  40:    040200bb     0x40200bb
  44:    02f8b601     0x2f8b601
  48:    3e081330     0x3e081330
  4c:    08f33d08     j    3ccf420 <__bss_end-0x7c330be0>
  50:    834cf33e     lb    t4,-3266(k0)
  54:    083e0883     j    f8220c <__bss_end-0x7f07ddf4>
  58:    18024b3d     0x18024b3d
  5c:    Address 0x000000000000005c is out of bounds.


Disassembly of section .debug_str:

00000000 <.debug_str>:
   0:    676e6f6c     0x676e6f6c
   4:    746e6920     jalx    1b9a480 <__bss_end-0x7e465b80>
   8:    6f682f00     0x6f682f00
   c:    772f656d     jalx    cbd95b4 <__bss_end-0x73426a4c>
  10:    2f627875     sltiu    v0,k1,30837
  14:    6b726f77     0x6b726f77
  18:    63617073     0x63617073
  1c:    63672f65     0x63672f65
  20:    65742f63     0x65742f63
  24:    315f7473     andi    ra,t2,0x7473
  28:    00313030     0x313030
  2c:    7370696d     0x7370696d
  30:    3030315f     andi    s0,at,0x315f
  34:    00632e31     0x632e31
  38:    6e69616d     0x6e69616d
  3c:    554e4700     0x554e4700
  40:    34204320     ori    zero,at,0x4320
  44:    302e362e     andi    t6,at,0x362e
  48:    6d756e00     0x6d756e00
  4c:    756e0031     jalx    5b800c4 <__bss_end-0x7a47ff3c>
  50:    7400326d     jalx    c9b4 <__bss_end-0x7fff364c>
  54:    00706d65     0x706d65
  58:    74736574     jalx    1cd95d0 <__bss_end-0x7e326a30>
  5c:    Address 0x000000000000005c is out of bounds.


Disassembly of section .debug_frame:

00000000 <.debug_frame>:
   0:    0000000c     syscall
   4:    ffffffff     0xffffffff
   8:    7c010001     0x7c010001
   c:    001d0d1f     0x1d0d1f
  10:    00000014     0x14
  14:    00000000     nop
  18:    bfc00030     0xbfc00030
  1c:    000000fc     0xfc
  20:    48180e44     0x48180e44
  24:    1e0d019e     0x1e0d019e
  28:    00000014     0x14
  2c:    00000000     nop
  30:    bfc0012c     0xbfc0012c
  34:    00000038     0x38
  38:    48080e44     0x48080e44
  3c:    1e0d019e     0x1e0d019e
  40:    00000018     mult    zero,zero
  44:    00000000     nop
  48:    bfc00164     0xbfc00164
  4c:    00000068     0x68
  50:    4c280e44     0x4c280e44
  54:    019f029e     0x19f029e
  58:    00001e0d     break    0x0,0x78




***********************************************************
command line output on 'make':
***********************************************************

mipsel-gnu-linux-gcc -v -save-temps -Wall -g -fno-builtin -fno-pic
-mno-abicalls -I../global -MM ../global/head.S mips_1001.c > Makefile.dep
使用内建 specs。
COLLECT_GCC=mipsel-gnu-linux-gcc
COLLECT_LTO_WRAPPER=/home/wuxb/.gccmips0/libexec/gcc/mipsel-gnu-linux/4.6.0/lto-wrapper
目标:mipsel-gnu-linux
配置为:../gcc-4.6.0/configure --prefix=/home/wuxb/.gccmips0
--target=mipsel-gnu-linux
线程模型:posix
gcc 版本 4.6.0 (GCC) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-g' '-fno-builtin' '-fno-pic'
'-mno-abicalls' '-I' '../global' '-MM' '-mllsc' '-mno-synci' '-mno-shared'
 /home/wuxb/.gccmips0/libexec/gcc/mipsel-gnu-linux/4.6.0/cc1 -E -lang-asm
-quiet -v -I ../global -MM ../global/head.S -mno-abicalls -mllsc -mno-synci
-mno-shared -Wall -fno-builtin -fno-pic -g -fworking-directory -fpch-preprocess
-fno-directives-only
忽略不存在的目录“/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/../../../../mipsel-gnu-linux/sys-include”
忽略不存在的目录“/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/../../../../mipsel-gnu-linux/include”
#include "..." 搜索从这里开始:
#include <...> 搜索从这里开始:
 ../global
 /home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/include
 /home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/include-fixed
搜索列表结束。
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-g' '-fno-builtin' '-fno-pic'
'-mno-abicalls' '-I' '../global' '-MM' '-mllsc' '-mno-synci' '-mno-shared'
 /home/wuxb/.gccmips0/libexec/gcc/mipsel-gnu-linux/4.6.0/cc1 -E -quiet -v -I
../global -MM mips_1001.c -mno-abicalls -mllsc -mno-synci -mno-shared -Wall
-fno-builtin -fno-pic -g -fworking-directory -fpch-preprocess
忽略不存在的目录“/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/../../../../mipsel-gnu-linux/sys-include”
忽略不存在的目录“/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/../../../../mipsel-gnu-linux/include”
#include "..." 搜索从这里开始:
#include <...> 搜索从这里开始:
 ../global
 /home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/include
 /home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/include-fixed
搜索列表结束。
COMPILER_PATH=/home/wuxb/.gccmips0/libexec/gcc/mipsel-gnu-linux/4.6.0/:/home/wuxb/.gccmips0/libexec/gcc/mipsel-gnu-linux/4.6.0/:/home/wuxb/.gccmips0/libexec/gcc/mipsel-gnu-linux/:/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/:/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/:/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/../../../../mipsel-gnu-linux/bin/
LIBRARY_PATH=/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/:/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/../../../../mipsel-gnu-linux/lib/
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-g' '-fno-builtin' '-fno-pic'
'-mno-abicalls' '-I' '../global' '-MM' '-mllsc' '-mno-synci' '-mno-shared'
mipsel-gnu-linux-gcc -gstabs -fno-pic -mno-abicalls -D__ASSEMBLY__ -I../global
-c ../global/head.S -o ../global/head.o
mipsel-gnu-linux-gcc -v -save-temps -Wall -g -fno-builtin -fno-pic
-mno-abicalls -I../global -c mips_1001.c -o mips_1001.o 
使用内建 specs。
COLLECT_GCC=mipsel-gnu-linux-gcc
COLLECT_LTO_WRAPPER=/home/wuxb/.gccmips0/libexec/gcc/mipsel-gnu-linux/4.6.0/lto-wrapper
目标:mipsel-gnu-linux
配置为:../gcc-4.6.0/configure --prefix=/home/wuxb/.gccmips0
--target=mipsel-gnu-linux
线程模型:posix
gcc 版本 4.6.0 (GCC) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-g' '-fno-builtin' '-fno-pic'
'-mno-abicalls' '-I' '../global' '-c' '-o' 'mips_1001.o' '-mllsc' '-mno-synci'
'-mno-shared'
 /home/wuxb/.gccmips0/libexec/gcc/mipsel-gnu-linux/4.6.0/cc1 -E -quiet -v -I
../global mips_1001.c -mno-abicalls -mllsc -mno-synci -mno-shared -Wall
-fno-builtin -fno-pic -g -fworking-directory -fpch-preprocess -o mips_1001.i
忽略不存在的目录“/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/../../../../mipsel-gnu-linux/sys-include”
忽略不存在的目录“/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/../../../../mipsel-gnu-linux/include”
#include "..." 搜索从这里开始:
#include <...> 搜索从这里开始:
 ../global
 /home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/include
 /home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/include-fixed
搜索列表结束。
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-g' '-fno-builtin' '-fno-pic'
'-mno-abicalls' '-I' '../global' '-c' '-o' 'mips_1001.o' '-mllsc' '-mno-synci'
'-mno-shared'
 /home/wuxb/.gccmips0/libexec/gcc/mipsel-gnu-linux/4.6.0/cc1 -fpreprocessed
mips_1001.i -quiet -dumpbase mips_1001.c -mno-abicalls -mllsc -mno-synci
-mno-shared -auxbase-strip mips_1001.o -g -Wall -version -fno-builtin -fno-pic
-o mips_1001.s
GNU C (GCC) 版本 4.6.0 (mipsel-gnu-linux)
    由 GNU C 版本 4.6.0 20110509 (Red Hat 4.6.0-7) 编译,GMP 版本 4.3.2,MPFR 版本
3.0.0,MPC 版本 0.8.3-dev
GGC 准则:--param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C (GCC) 版本 4.6.0 (mipsel-gnu-linux)
    由 GNU C 版本 4.6.0 20110509 (Red Hat 4.6.0-7) 编译,GMP 版本 4.3.2,MPFR 版本
3.0.0,MPC 版本 0.8.3-dev
GGC 准则:--param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 5256e0f86ee50f82fff2cd17000398ba
mips_1001.c: 在函数‘main’中:
mips_1001.c:27:12: 警告:未使用的变量‘n’ [-Wunused-variable]
mips_1001.c:27:9: 警告:未使用的变量‘i’ [-Wunused-variable]
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-g' '-fno-builtin' '-fno-pic'
'-mno-abicalls' '-I' '../global' '-c' '-o' 'mips_1001.o' '-mllsc' '-mno-synci'
'-mno-shared'

/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/../../../../mipsel-gnu-linux/bin/as
-EL -g -no-mdebug -mabi=32 -mno-shared -o mips_1001.o mips_1001.s
COMPILER_PATH=/home/wuxb/.gccmips0/libexec/gcc/mipsel-gnu-linux/4.6.0/:/home/wuxb/.gccmips0/libexec/gcc/mipsel-gnu-linux/4.6.0/:/home/wuxb/.gccmips0/libexec/gcc/mipsel-gnu-linux/:/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/:/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/:/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/../../../../mipsel-gnu-linux/bin/
LIBRARY_PATH=/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/:/home/wuxb/.gccmips0/lib/gcc/mipsel-gnu-linux/4.6.0/../../../../mipsel-gnu-linux/lib/
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-Wall' '-g' '-fno-builtin' '-fno-pic'
'-mno-abicalls' '-I' '../global' '-c' '-o' 'mips_1001.o' '-mllsc' '-mno-synci'
'-mno-shared'
mipsel-gnu-linux-ld -o bin.elf -T ../global/mips.lds ../global/head.o
mips_1001.o
mipsel-gnu-linux-objdump -lDS bin.elf > bin.elf.txt
mipsel-gnu-linux-objcopy --gap-fill=0xff -O binary bin.elf bin.bin

***************************************************************
end
***************************************************************

Reply via email to