[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[netbsd,09282] Re: crashme on 68040 or hp300
- To: netbsd@xxxxxxxxxxxxx
- Subject: [netbsd,09282] Re: crashme on 68040 or hp300
- From: Izumi Tsutsui <tsutsui@xxxxxxxxxxxxxxx>
- Date: Wed, 29 Mar 2006 00:36:45 +0900
- Cc: tsutsui@xxxxxxxxxxxxxxx
- In-reply-to: <200603281028.k2SAS3ia014921@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
<200603281028.k2SAS3ia014921@xxxxxxxxxxxxxxxxxxxxxxxxxxx>の記事において
itohy@xxxxxxxxxxさんは書きました。
> 命令ワードの上位 4bit が f な命令は、
> コプロセッサ(68030)または内蔵FPU(68040)で処理されて、
> 処理できないものは F-line trap (vector #11) になります。
>
> ここ(locore.s::fpfline)で、
> 030 (FPEなし)は直ちに illegal instruction の処理、
> 040 は fpsp を呼びます。
>
> といわけで fpsp が怪しいと思うのですがどうでしょうか。
お返事ありがとうございます。
とりあえず options FPSP をはずしたカーネルで試してみたり
vector.s で fpfline に飛ばずにいきなり illinst に飛ばすように
してみたりしたのですが、いずれも同じように固まってしまいました。
(そのとき cc(1)他の通常プログラムは illegal instruction で落ちる)
なので、どうも handler に飛ぶ前に何かおかしくなってる感じです。
実は先の program の (*bomb)() を呼ぶ前の printf() をはずすと
今度は固まらずに segmentation fault したり bus error になったり
やっぱり固まったりする一方で、この printf() の代わりに
m68k_sync_icache(bomb, BUSSIZE) を呼ぶとやっぱり 100% 固まるので、
cache まわりかなあという気もします。
が、それだけではなくて飛び先の命令の種類にも関係する感じなので、
実はいろいろと条件が複雑だったりする? うーん。
---
Izumi Tsutsui