Tim*_*ith 17 javascript assembly arm
FJCVTZS是"浮点Javascript转换为有符号定点,向零舍入".Arm v8.3-A芯片及更高版本支持它.这很奇怪,因为你不希望看到JavaScript如此接近裸机.
我可以找到对指令的作用的解释,但不能解释为什么它存在. 这个帖子说"它作为单个指令存在是因为JS缺少一个整数类型意味着某些用例通常需要这种操作,因为没有好的算法原因." 这似乎是合理的,但我想要更详细的理解.
Jos*_*ose 14
这是因为JS对数字使用双精度,但是如果你想用位执行操作,那么任务是不重要的,所以将JS double转换为整数的特定指令使事情更容易.
这个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/hk1477562192868.html
FCVTZS
:http://infocenter.arm.com/help/index.jsp?topic =/com.arm.doc.dui0802a/FCVTZS_float_int.html