[解決済み] ARMチップにはなぜJavascriptを名前に含む命令(FJCVTZS)があるのですか?
質問内容
FJCVTZS は "浮動小数点Javascriptを符号付き固定小数点に変換し、ゼロに向けて丸める。 Arm v8.3-Aチップ以降でサポートされています。 ベアメタルに近いところでJavaScriptが見られるとは思わないので、これは奇妙なことです。
この命令が何をするのかの説明は見つかりますが、なぜ存在するのかの説明はありません。 このスレッド というのは、JSには整数型がないため、特定のユースケースでこの操作がアルゴリズム的に正当な理由なく頻繁に必要になるからです。 それはもっともなことですが、私はより詳細な理解が欲しいです。
どのように解決するのですか?
JSでは倍精度の数値を使っていますが、ビットを使った演算を行う場合、その作業は自明ではないので、JSの倍精度を整数に変換する特定の命令があれば、より簡単に行えます。
このARMのリンクがとてもよく説明しています。 https://community.arm.com/processors/b/blog/posts/armv8-a-architecture-2016-additions
fuzさんのコメントについて補足すると、以下のような違いがあります。
FCVTZS
と
FJCVTZS
(いずれも浮動小数点からint型に変換)はオーバーフローした場合の話です。
FJCVTZS
の値はオーバーフローすることなく、0x80000000となります。さらに
FJCVTZS
は、変換がどのように行われたか(すなわち、不正確)を示すために、例外を生成することができます。
FJCVTZS
:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0801g/hko1477562192868.html
FCVTZS
:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0802a/FCVTZS_float_int.html
関連
-
Vueのイベント処理とイベントモディファイアの解説
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでメールアドレスを検証するのに最適な方法は何ですか?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] JavaScriptで要素のクラスを変更するにはどうすればよいですか?
-
[解決済み] JavaScriptで2つの日付を比較する
-
[解決済み】JavaScript版sleep()とは?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSクロスドメインソリューション リアクト構成 リバースプロキシ
-
親子コンポーネント通信を解決する3つのVueスロット
-
WeChatアプレット用ユニアプリによるグローバルシェアリング
-
jQueryのコピーオブジェクトの説明
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み】React Nativeアプリをターミナルから実行するとエラーが発生する(iOS)
-
[解決済み] TypeError: $.ajax(...) is not a function?
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
JavaScriptのStringに関する共通メソッド
-
jq は html ページとデータを動的に分割する。