Hlavní problém bude to nt v názvu. Když Apple pro hardwarově akcelerovaný emulátor Rosetta 2 potřeboval v ARM ISA režim zaokrouhlení z x86, tak instrukci pojmenoval jako JavaScript rounding, protože JS chování tehdy převzal podle majoritní (prakticky jediné) architektury.
27. 1. 2024, 14:21 editováno autorem komentáře
Toto ale není pravda.
fjcvtzs a cvttsd2si mají úplně jinou sémantiku. fjcvtzs dělá wrap-around, cvttsd2si dělá truncate, ale není wrap around.
V X86_64 se pro konverzi double -> int32 v JS použije [v]cvttsd2si s 64-bit GP registrem a použije se jen těch 32 spodních bitů, tím se docílí ten wrap-around, ale je to spíš chytrý hack než feature.
Takže, fjcvtzs nemá nic společného s X86.