为什么ARM芯片在名称(FJCVTZS)中有Javascript指令? [英] Why do ARM chips have an instruction with Javascript in the name (FJCVTZS)?

查看:232
本文介绍了为什么ARM芯片在名称(FJCVTZS)中有Javascript指令?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

FJCVTZS 是浮点Javascript转换为签名定点,向零舍入。 Arm v8.3-A芯片及更高版本支持它。这很奇怪,因为你不希望看到JavaScript如此接近裸机。

FJCVTZS is "Floating-point Javascript Convert to Signed fixed-point, rounding toward Zero". It is supported in Arm v8.3-A chips and later. Which is odd, because you don't expect to see JavaScript so close to the bare metal.

我可以找到指令的解释,但不是为什么它存在。 此主题说它作为单个指令存在是因为JS缺少整数类型意味着某些用途由于没有良好的算法原因,案件经常需要这种操作。这是合理的,但我想要更详细的理解。

I can find explanations of what the instruction does, but not why it exists. This thread says "it exists as a single instruction is because JS's lack of an integer type means certain use cases need this operation obscenely often for no good algorithmic reason.". That's plausible but I would like a more detailed understanding.

推荐答案

这是因为JS对数字使用双精度,但如果你想要用位执行操作,任务是不平凡的,所以将JS double转换为整数的特定指令使事情变得更容易。

It is because JS uses double precision for the numbers, but if you want to perform operations with bits, the task is nontrivial, so a specific instruction to convert JS double into integer makes the thing easier.

这个arm链接解释得非常好: https://community.arm.com/处理器/ b /博客/帖子/ armv8-a-architecture-2016-addeds

This arm link explains it very well: https://community.arm.com/processors/b/blog/posts/armv8-a-architecture-2016-additions

为了添加关于fuz评论的更多信息,区别 FCVTZS FJCVTZS (两者都将浮点转换为int)是溢出时的情况, FJCVTZS 值将为0x80000000而不是溢出。此外, FJCVTZS 可以生成异常以指示转换的方式(即不准确)。

In order to add more information regarding fuz's comment, the differences between FCVTZS and FJCVTZS (both of them convert floating point to int) are that in case of overflow, FJCVTZS value will be 0x80000000 instead of overflowing. Furthermore, FJCVTZS can generate an exception in order to indicate how the conversion was (i.e. inexact).

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

这篇关于为什么ARM芯片在名称(FJCVTZS)中有Javascript指令?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆