NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-evbppc/57926: ppc405: lockdebug crash because cpu_index(curcpu()) is invalid (not 0) value.
The following reply was made to PR port-evbppc/57926; it has been noted by GNATS.
From: Kouichi Hashikawa <hashikaw%mail.ru@localhost>
To: gnats-bugs%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost
Cc:
Subject: Re: port-evbppc/57926: ppc405: lockdebug crash because cpu_index(curcpu()) is invalid (not 0) value.
Date: Fri, 10 May 2024 22:08:17 +0900
=EF=BB=BF
cc -E src/external/gpl3/gcc/dist/libgcc/config/rs6000/crtresxgpr.S
(version of gcc)
...
.type _restgpr_29_x,@function; .globl _restgpr_29_x; _restgpr_29_x: .hidden=20=
_restgpr_29_x; lwz 29,-12(11)
.type _restgpr_30_x,@function; .globl _restgpr_30_x; _restgpr_30_x: .hidden=20=
_restgpr_30_x; lwz 30,-8(11)
.type _restgpr_31_x,@function; .globl _restgpr_31_x; _restgpr_31_x: .hidden=20=
_restgpr_31_x; lwz 0,4(11) <---
lwz 31,-4(11) <---
mtlr 0
mr 1,11
blr
...
cc -E src/sys/lib/libkern/arch/powerpc/gprsavrest.S
(version of NetBSD)
.hidden _restgpr_29_x; .text; .align 2; .globl _restgpr_29_x; .type=20
_restgpr_29
_x,@function; _restgpr_29_x:; lwz 29,(-4*(32-29))(11)
.hidden _restgpr_30_x; .text; .align 2; .globl _restgpr_30_x; .type=20
_restgpr_30
_x,@function; _restgpr_30_x:; lwz 30,(-4*(32-30))(11)
.hidden _restgpr_31_x; .text; .align 2; .globl _restgpr_31_x; .type=20
_restgpr_31
_x,@function; _restgpr_31_x:; lwz 31,(-4*(32-31))(11) <---
lwz 0,4(11) <---
mtlr 0
mr 1,11
blr
I change gprsavrest.S's lwz 31,(-4)(11) and lwz 0,4(11), kernel works more=20=
stable.
(I change lwz 0,4(11); mtlr 0; mr 1,11 to comment like gcc's crtresgpr.S,=20=
kernel works more stable...)
I don't understand what's happening...
# but hptide's udma is unstable(bus-master DMA error: missing interrupt),
# pio-4 is almost stable, but stop on heavy load...
Home |
Main Index |
Thread Index |
Old Index