This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/49360] New: generate wrong logic code
- From: "wuxb45 at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 10 Jun 2011 06:25:24 +0000
- Subject: [Bug c/49360] New: generate wrong logic code
- Auto-submitted: auto-generated
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: unassigned@gcc.gnu.org
ReportedBy: wuxb45@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
***************************************************************