Subject: mips: kernel compiled with binutils 2.9.1 on r4000, other mips3?
To: None <port-pmax@netbsd.org, port-mips@netbsd.org>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: tech-toolchain
Date: 03/03/1999 02:37:22
hi all,
Every kernel I've tried to build with binutils 2.9.1 gas has died on
my 5000/150 (r4000). The code produced by gas for the assembler
pseudo-op "divu" changed from binutils 2.8.1 to 2.9.1.
Given the input
divu $4,$4,$2
mfhi $6
The `old' gas produces
test-frag:
0: 0082001b divu $zero,$a0,$v0
4: 14400002 bnez $v0,10 <test_frag+10>
8: 00000000 nop
c: 0007000d break 0x7
10: 00002012 mflo $a0
14: 00003010 mfhi $a2
While the `improved' code emits
test-frag:
0: 14400002 bnez $v0,c <test_frag+c>
4: 0082001b divu $zero,$a0,$v0
8: 0007000d break 0x7
c: 00002012 mflo $a0
10: 00003010 mfhi $a2
which looks valid, and seems to work in userlevel code (the
most-recent pmax snapshot on the FTP server was built using 2.9.1),
but appears to leave 0 in $a2 on my r4000.
Can anyone else report success for kernels on a 5000/50, 5000/150, or
other r4000 for built with binutils 2.9.1?