パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Microsoft が Itanium 向け開発終了を宣言」記事へのコメント

  • x64版Windowsで64bitコード←→32bitコード間の呼び出しができない(thunkがない)のは、Itanium版Windowsの仕様に合わせたから。
    そのせいで64bitコードと32bitコードをシームレスに実行できるAMD64のメリットがWindowsにおいては全く生かされていない。

    言わばItaniumの負の遺産。
    後方互換性にこだわるMicrosoftのことだから、128bit版Windowsが出るまでこの仕様に悩まされそうorz

    • Re: (スコア:1, すばらしい洞察)

      by Anonymous Coward
      デタラメを言ってるように見えます。

      もう少し具体的に説明してくれませんか? あるいは、外部のソースを。
      • by Anonymous Coward

        なんで誰でも分かってる様な調べりゃすぐ出てくる既出なことを説明せにゃならんのだね
        それをすることで我々にどんなメリットがありますか?

        #しかも、あなたは多分説明しても分からないレベルでしょうに

        • Re: (スコア:1, 興味深い)

          by Anonymous Coward
          デタラメを言う人ほど説明を嫌がって逃げますね。

          AMD64なら32bitと64bitのコードがシームレスに実行できるといっても、現実的には64bitModeとCompatibilityModeの切り換えは必要なので、同一OSインスタンス上で32bitのプロセスと64bitのプロセスが同居できるという意味です。
          (64bitModeのまま従来の32bitのコードを実行できるといっても、CPUが命令をデコードして実行できるだけであって、プログラマが望むような動作をするわけではありません。)

          64bitのEXEから32bitのDLLを呼び出せない、32bitのEXEから64bitのDLLを呼び出せないという仕様は当然です。Win32APIのDLLならExportしているプロシージャの引数の仕様が明らかですからthunkを作ることができてWOW64がそうしていますが、しかし、サードパーティのDLLのためのthunkはマイクロソフトには作れません。サードパーティがthunkを提供するなら64bit版のDLLをビルドして提供したほうがいいでしょう。
          • by Anonymous Coward
            微妙に間違っているゾ

            AMD64のモード切り換えはセグメントで自動的に行われるので「シームレス」。これはIA64のようにモード遷移のための命令が必要ないことを指している。

            Win32ではプロセスにフラットなメモリ空間が提供されるが、仮想アドレスが重複しないように複数のセグメントが配置されている。ユーザーのコードがセグメント切り換えを意識しないだけで、CPUが自動的にセグメントを切り換えている。したがって、AMD64では同一プロセス内に64bit Modeで走らせるコードセグメントとCompatibility Modeで走らせるコードセグメントを混在させることが可能。

            しかし、そ
            • by Anonymous Coward on 2010年04月08日 16時36分 (#1745665)

              そもそも64bitだというだけで、AMD64版がItanium版の系譜だと思いこんでる人が異常なんじゃないかと。
              #全然別のアーキテクチャだし64bit版WindowsはむしろIA32ベースじゃないのかと言いたい

              親コメント
              • by Anonymous Coward
                OS内部はともかくとして、ユーザーに見せている部分はIA64版とAMD64版は(ほぼ)同じです。
                IA64版で整備したものがAMD64版でも踏襲されています。

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

処理中...