タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

CPUとwebassemblyに関するigrepのブックマーク (1)

  • NaNのビットパターンを使ってWebAssemblyからCPUの命令セットを推測する

    浮動小数点数にはIEEE 754という標準規格がありますが、規格の範囲内であっても僅かに実装による差異が認められています。その一つがNaNのビットパターンです。 WebAssemblyはNaNのビットパターンに関しては実装依存の結果を許容しており、Wasmランタイムは特に深い理由がなければホストCPUの浮動小数点命令をそのまま用いると考えられるため、結果として「WasmからNaNのビットパターンを観測することでホストCPUの命令セットを推測する」ことができます。 ここでは、「x86(_64)」「RISC-V」「その他(Armなど)」の3択で判定することを目指します。 判定コード 判定するコードは以下です: #include <inttypes.h> #include <stdio.h> #include <string.h> float u32_to_f32(uint32_t x) {

    NaNのビットパターンを使ってWebAssemblyからCPUの命令セットを推測する
    igrep
    igrep 2024/09/22
    そういえばComponent Modelの策定時にfloatの受け渡しの時NaN canonicalizationをするかで結構紛糾してましたね
  • 1