問題タブ [x87]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-c++ - Visual C++ x86 ABI: VC++ はどのように値を返しますか?
では 1/2/4 バイトの整数が返されeax
、 では 8 バイトの整数が返されることはわかっていeax:edx
ます。
ところで、cdecl/stdcall で 4/8/16バイトの浮動小数点値(おそらくlong double
16 バイトだったと記憶しています..)はどのように返されるのでしょうか?
@MatteoItalia のおかげで、VC++long double
が 8 バイトであることを知りました。では、どうすれば 16 バイトの浮動小数点を使用できるでしょうか。
(「8 バイトだけを使用してください」とは言わないでください。本当に必要なのです。)
うーん、10バイトの浮動小数点でいいのかな…
math - x86 での三角関数命令のエラーは何ですか?
x86 プロセッサでの三角関数命令の誤差範囲に関する情報はどこにありますかfsincos
?
macos - flds 命令が Mac OSX で失敗する
flds
命令は値を register に格納する必要がありますst0
。コードがない共有ライブラリをデバッグしています。場合によっては、flds
命令が に影響を与えないことがありますst0
。以下はgdb
、動作した場合と失敗した場合の出力です。壊れたケースでは、fstat
レジスタは 0x2061 ではなく 0x2261 です。0x200 フラグは何を示していますか?
作業バージョン:
壊れたバージョン:
assembly - x87 スタックの配列インデックスにアクセスする
アセンブリ構文に問題があります。私の課題では、一連のパラメーターを x87 浮動小数点レジスターに渡す必要があります。これらのパラメーターの 1 つは double であり、この double を配列として使用することになっています。
fldl 4(%esp)を使用してスタックにロードしましたが、配列要素にアクセスするタスクがあります。x86 で整数配列を操作する構文は理解していますが、x87 スタック上にある配列のインデックスにアクセスする方法がわかりません。
私の浮動小数点スタックにはこれしかないので、%st(0)にあることがわかっています。
visual-c++ - 異なる cl.exe コンパイラ オプションを使用した場合の異なる結果
デスクトップにVS2013 Expressを使用して、Windows 7 64ビットを使用しています。
デフォルトとしてコンパイル (SSE を使用)
x87 のみを使用してコンパイルします。
以下のようなテストコード
FPU を削除する場合は、手動で初期化することに注意してください。結果が変わる!
を削除した後finit
、デフォルトでコンパイル
x87 のみを使用してコンパイルする
だから私の質問は:
について
@@1
、なぜ違うのですか?バグですか?について
@@3
、値が変更された理由は?
c++ - Webkit の実行中に pow() の計算が間違っているのはなぜですか?
浮動小数点計算が行われる GUI スレッドがある Qt C++ アプリケーションがあります。QWebView
また、いくつかのビデオを含むフラッシュ プレーヤーがある場所で も開きます。
QWebView を閉じると、新しい次の浮動小数点演算が妨げられることは明らかです。したがってpow(double, double)
、明確ではあるが正しくない値を返します。
あるケースでは1000
、正しい値よりも多くの値を返しました。別の時間は 1 を返しました。#inf
引数で使用した場合pow(10.0, 2.0)
。
これはさまざまなコンピューターでテストされており、特定の CPU に固有のものではないことに言及する必要があります。
Webkit でコプロセッサに問題がある場所を特定する方法と、それを防ぐ方法について何か提案はありますか?
サンプル (x64 のみ)
環境: Qt 4.7.4、C++、HTML、flowplayer
cpp
html
以下は、ソース付きの完全に機能するプログラムです: 15MB をダウンロード
c++ - GNU C++ コンパイラでのインライン アセンブリ
次のインライン アセンブル コードがシステムで機能しません。そのコードの問題は何ですか?
asm
代わりに使用すると__asm__
、正常に動作します。