loongson-community / binutils-gdb

The binutils and gdb source tree for Loongson
GNU General Public License v2.0
5 stars 2 forks source link

[GAS] MIPS: 36 Tests FAIL #4

Open FlyGoat opened 6 years ago

FlyGoat commented 6 years ago
FAIL: MIPS div
FAIL: MIPS eret-1
FAIL: MIPS jal-svr4pic noreorder (mips1)
FAIL: MIPS jal-svr4pic noreorder (r3000)
FAIL: MIPS VR4130 workarounds
FAIL: .set arch=FOO
FAIL: ELF e_flags: nothing special
FAIL: MIPS CP0 register disassembly (numeric)
FAIL: MIPS CP0 register disassembly (r3000)
FAIL: MIPS CP0 register disassembly (r4000)
FAIL: MIPS CP0 register disassembly (r4400)
FAIL: MIPS CP0 register disassembly (mips32)
FAIL: MIPS CP0 register disassembly (mips32r2)
FAIL: MIPS CP0 register disassembly (mips64)
FAIL: MIPS CP0 register disassembly (mips64r2)
FAIL: MIPS CP0 register disassembly (sb1)
FAIL: MIPS CP1 register disassembly (numeric)
FAIL: MIPS CP1 register disassembly (r3000)
FAIL: MIPS CP1 register disassembly (r4000)
FAIL: MIPS CP1 register disassembly (r4400)
FAIL: MIPS CP1 register disassembly (mips32)
FAIL: MIPS CP1 register disassembly (mips32r2)
FAIL: MIPS CP1 register disassembly (mips64)
FAIL: MIPS CP1 register disassembly (mips64r2)
FAIL: MIPS CP1 register disassembly (sb1)
FAIL: gas/mips/pr12915
FAIL: MIPS R5900
FAIL: Full MIPS R5900
FAIL: MIPS R5900 VU0
FAIL: MIPS R5900 Full VU0
FAIL: MIPS local PC-relative relocations 4
FAIL: MIPS local PC-relative relocations 4
FAIL: MIPS local PC-relative relocations 5
FAIL: MIPS local PC-relative relocations 5
FAIL: MIPS local PC-relative relocations 6a
FAIL: MIPS local PC-relative relocations 6b

I'm going to upload detailed log and research on it later.

xiangzhai commented 6 years ago

Manually test:

AS=/opt/gcc-8.1.0/bin/as
OBJDUMP=/opt/gcc-8.1.0/bin/objdump

rm -f *.o

$AS -march=r4000 -mtune=r4000 div.s -o div.o
$OBJDUMP -dr --prefix-addresses -mmips:4000 div.o

The encode might be the same as div.d

div.o:     file format elf64-tradlittlemips

Disassembly of section .text:
0000000000000000 <foo> div  zero,a0,a1
0000000000000004 <foo+0x4> bnez a1,0000000000000010 <foo+0x10>
0000000000000008 <foo+0x8> div  zero,a0,a1
000000000000000c <foo+0xc> break    0x7
0000000000000010 <foo+0x10> li  at,-1
0000000000000014 <foo+0x14> bne a1,at,0000000000000028 <foo+0x28>
0000000000000018 <foo+0x18> lui at,0x8000
000000000000001c <foo+0x1c> bne a0,at,0000000000000028 <foo+0x28>
0000000000000020 <foo+0x20> nop
0000000000000024 <foo+0x24> break   0x6
0000000000000028 <foo+0x28> mflo    a0
000000000000002c <foo+0x2c> bnez    a2,0000000000000038 <foo+0x38>
0000000000000030 <foo+0x30> nop
0000000000000034 <foo+0x34> div zero,a1,a2
0000000000000038 <foo+0x38> break   0x7
000000000000003c <foo+0x3c> li  at,-1
0000000000000040 <foo+0x40> bne a2,at,0000000000000054 <foo+0x54>
0000000000000044 <foo+0x44> lui at,0x8000
0000000000000048 <foo+0x48> bne a1,at,0000000000000054 <foo+0x54>
000000000000004c <foo+0x4c> nop
0000000000000050 <foo+0x50> break   0x6
0000000000000054 <foo+0x54> mflo    a0
0000000000000058 <foo+0x58> move    a0,a0
000000000000005c <foo+0x5c> move    a0,a1
0000000000000060 <foo+0x60> neg a0,a0
0000000000000064 <foo+0x64> neg a0,a1
0000000000000068 <foo+0x68> li  at,2
000000000000006c <foo+0x6c> div zero,a0,at
0000000000000070 <foo+0x70> mflo    a0
0000000000000074 <foo+0x74> li  at,2
0000000000000078 <foo+0x78> nop
000000000000007c <foo+0x7c> div zero,a1,at
0000000000000080 <foo+0x80> mflo    a0
0000000000000084 <foo+0x84> li  at,0x8000
0000000000000088 <foo+0x88> nop
000000000000008c <foo+0x8c> div zero,a0,at
0000000000000090 <foo+0x90> mflo    a0
0000000000000094 <foo+0x94> li  at,0x8000
0000000000000098 <foo+0x98> nop
000000000000009c <foo+0x9c> div zero,a1,at
00000000000000a0 <foo+0xa0> mflo    a0
00000000000000a4 <foo+0xa4> li  at,-32768
00000000000000a8 <foo+0xa8> nop
00000000000000ac <foo+0xac> div zero,a0,at
00000000000000b0 <foo+0xb0> mflo    a0
00000000000000b4 <foo+0xb4> li  at,-32768
00000000000000b8 <foo+0xb8> nop
00000000000000bc <foo+0xbc> div zero,a1,at
00000000000000c0 <foo+0xc0> mflo    a0
00000000000000c4 <foo+0xc4> lui at,0x1
00000000000000c8 <foo+0xc8> nop
00000000000000cc <foo+0xcc> div zero,a0,at
00000000000000d0 <foo+0xd0> mflo    a0
00000000000000d4 <foo+0xd4> lui at,0x1
00000000000000d8 <foo+0xd8> nop
00000000000000dc <foo+0xdc> div zero,a1,at
00000000000000e0 <foo+0xe0> mflo    a0
00000000000000e4 <foo+0xe4> lui at,0x1
00000000000000e8 <foo+0xe8> ori at,at,0xa5a5
00000000000000ec <foo+0xec> div zero,a0,at
00000000000000f0 <foo+0xf0> mflo    a0
00000000000000f4 <foo+0xf4> lui at,0x1
00000000000000f8 <foo+0xf8> ori at,at,0xa5a5
00000000000000fc <foo+0xfc> div zero,a1,at
0000000000000100 <foo+0x100> mflo   a0
    ...
000000000000010c <foo+0x10c> divu   zero,a0,a1
0000000000000110 <foo+0x110> bnez   a1,000000000000011c <foo+0x11c>
0000000000000114 <foo+0x114> divu   zero,a0,a1
0000000000000118 <foo+0x118> break  0x7
000000000000011c <foo+0x11c> mflo   a0
0000000000000120 <foo+0x120> bnez   a2,000000000000012c <foo+0x12c>
0000000000000124 <foo+0x124> nop
0000000000000128 <foo+0x128> divu   zero,a1,a2
000000000000012c <foo+0x12c> break  0x7
0000000000000130 <foo+0x130> mflo   a0
0000000000000134 <foo+0x134> move   a0,a0
0000000000000138 <foo+0x138> bnez   a2,0000000000000144 <foo+0x144>
000000000000013c <foo+0x13c> div    zero,a1,a2
0000000000000140 <foo+0x140> break  0x7
0000000000000144 <foo+0x144> li at,-1
0000000000000148 <foo+0x148> bne    a2,at,000000000000015c <foo+0x15c>
000000000000014c <foo+0x14c> lui    at,0x8000
0000000000000150 <foo+0x150> bne    a1,at,000000000000015c <foo+0x15c>
0000000000000154 <foo+0x154> nop
0000000000000158 <foo+0x158> break  0x6
000000000000015c <foo+0x15c> mfhi   a0
0000000000000160 <foo+0x160> li at,2
0000000000000164 <foo+0x164> nop
0000000000000168 <foo+0x168> divu   zero,a1,at
000000000000016c <foo+0x16c> mfhi   a0
0000000000000170 <foo+0x170> bnez   a2,000000000000017c <foo+0x17c>
0000000000000174 <foo+0x174> nop
0000000000000178 <foo+0x178> ddiv   zero,a1,a2
000000000000017c <foo+0x17c> break  0x7
0000000000000180 <foo+0x180> li at,-1
0000000000000184 <foo+0x184> bne    a2,at,000000000000019c <foo+0x19c>
0000000000000188 <foo+0x188> li at,1
000000000000018c <foo+0x18c> dsll32 at,at,0x1f
0000000000000190 <foo+0x190> bne    a1,at,000000000000019c <foo+0x19c>
0000000000000194 <foo+0x194> nop
0000000000000198 <foo+0x198> break  0x6
000000000000019c <foo+0x19c> mflo   a0
00000000000001a0 <foo+0x1a0> li at,2
00000000000001a4 <foo+0x1a4> nop
00000000000001a8 <foo+0x1a8> ddivu  zero,a1,at
00000000000001ac <foo+0x1ac> mflo   a0
00000000000001b0 <foo+0x1b0> li at,0x8000
00000000000001b4 <foo+0x1b4> nop
00000000000001b8 <foo+0x1b8> ddiv   zero,a1,at
00000000000001bc <foo+0x1bc> mfhi   a0
00000000000001c0 <foo+0x1c0> li at,-32768
00000000000001c4 <foo+0x1c4> nop
00000000000001c8 <foo+0x1c8> ddivu  zero,a1,at
00000000000001cc <foo+0x1cc> mfhi   a0
    ...
FlyGoat commented 6 years ago

Should be fixed.

Request for review.

xiangzhai commented 5 years ago

LGTM