タイトル | : Win95マシンで不正な命令 |
記事No | : 234 |
投稿日 | : 2002/03/02(Sat) 13:14 |
投稿者 | : もと |
よその掲示板で話題になったんですが、Pentium3が載った Win95マシンにおいて Mingw-gccでコンパイルしたgogo.dllを 使用すると不正な命令の例外が発生するようです。
ちょっと調べてみたのですが、Win95ではSSEサポートされていな いのに setPIII_round()が呼び出され、そこで例外となっている みたいです。
エラー時の情報 --------------- WINGOGO が無効な命令を実行しました。 モジュール : GOGO.DLL、アドレス : 019f:10021926 Registers: EAX=00009f80 CS=019f EIP=10021926 EFLGS=00010202 EBX=ffffffff SS=01a7 ESP=007af48c EBP=007af4ac ECX=007afd80 DS=01a7 ESI=00000000 FS=67b7 EDX=00000000 ES=01a7 EDI=1003bcb0 GS=0000 Bytes at CS:EIP: 0f ae 14 24 58 c3 90 90 90 90 90 90 90 90 90 90 Stack dump: 00009f80 10021996 00000004 10021a40 ffffffff 10021965 bff74277 1003bcb0 007af4cc 1000bc27 0043a348 bff76e28 ffffffff 00407639 10000000 004357d0
dllコンパイル時のMap(該当部分のみ) -------------------- .text 0x100214c0 0x120 dllinst.o 0x10021500 DllMain@12 .text 0x100215e0 0xb0 thread.o 0x100215e0 gogo_create_thread 0x10021630 gogo_get_cpu_count *fill* 0x10021690 0x10 .text 0x100216a0 0x92 clka.o 0x100216a0 clkbegin 0x100216e0 clkput 0x100216c0 clkend *fill* 0x10021732 0xe .text 0x10021740 0x20f cpua.o 0x10021920 setPIII_round 0x10021740 haveUNITa 0x10021940 maskFPU_exception 0x100218e0 haveFPU *fill* 0x1002194f 0x1 .text 0x10021950 0x120 cpu.o 0x100219c0 initCPU 0x10021950 haveUNIT 0x100219d0 setupUNIT *fill* 0x10021a70 0x10
|