こじんてきめも for 2.4 pre1

2.4pre1…まだぜんぜん作ってないですサーセン
とりあえず CHANGES だけちろっと見た。2.3.7 からの変更点を configure のオプション的見地から眺めてみるとこんな感じでしょうか。

  • --enable-vmx で VMX サポート有効。一部の仕様は(まだ)サポートしていない。
  • --enable-configurable-msr で MSR レジスタサポート有効。設定例は .bochsrc と msrs.def 参照。
  • --enable-movbe で Atom の MOVBE 命令サポート。
  • --enable-1g-pages でロングモードで 1G バイトのページサイズサポート。
  • --enable-long-phy-address で 32 ビット超の物理アドレス空間サポート。ただし、4G バイト以下の RAM を搭載した状態しかエミュレートできない。(たぶん 32 ビットホスト環境では無意味)
  • --enable-debugger-gui で内蔵 GUI デバッガ有効。
  • --disable-a20pin で A20 のハードウェアマスク機能無効化。すこしスピードアップするかも。
    …えーとこれはよーするに、メモリアドレス算出時の & 演算がひとつ減る。具体的に変わるのはソース中だと bochs.h 内のマクロだけ。
    #if BX_SUPPORT_A20
    # define A20ADDR(x) )((bx_phy_address)(x) & bx_pc_system.a20_mask)
    #else
    # define A20ADDR(x) ((bx_phy_address)(x))(
    #endif
    リアルモード(DOS とか)での動作が重要な場合、--disable-a20 を指定してはいけない。
  • --enable-guest2host-tlb オプション廃止(というか常に enable)。
  • --enable-icache オプション廃止(というか常に enable)。

2.4 で追加された分だけでもこんぐらい。configure --help するとほかにもいっぱいオプション指定が出てきますが、明示的に指定しないと有効にならないオプションが実はけっこうあったりするのでメンドくさい。