CVTPI2PD
将包装的字组转换为 打包双精度浮点值
stableVMJITAOTinstruction
编码
| 操作码 | 指令 | Op/En | 64 位 | 兼容/传统 | 说明 |
|---|---|---|---|---|---|
66 0F 2A /r | CVTPI2PD xmm, mm/m641 | RM | 有效 | 有效 | 从mm/mem64转换为xmm中的两个打包双精度浮点值,将两个已包装的签名双字整数转换为两个打包双精度浮点值. |
操作数编码
每个模式对应上表 Op/En 列的一个取值,说明各操作数按书写顺序分别编码在指令的哪个字段,以及指令对它是读、是写还是两者兼有。
RM
modrm.regescrituraModRM 字节的 reg 字段(第 5-3 位)modrm.rmlecturaModRM 字节的 r/m 字段(第 2-0 位);当 mod 字段要求时,还包括 SIB 字节和位移
实测开销
正在从 arch-data 加载实测数据...
说明
将源操作数(第二个操作数)中两个已装入的签名双字整数转换为目标操作数(第一个操作数)中的两个打包双精度浮点值.
源操作数可以是MMX技术寄存器或64位内存位置. 目标操作数是一个XMM登记册. 此外,根据操作数配置:
- 对于 操作数 xmm, mm: 指令导致从 x87 FPU 到 MMX 技术操作的过渡(即
,x87 FPU 顶端-栈指针 设置为 0,x87 FPU 标记词设置为全部 0s [有效]). 如果执行此指令时有一个 x87 FPU 浮点 例外待决,则在 CVTPI2PD 指令执行前处理该例外.
- 对于 操作数 xmm, m64: 指令不会导致向 MMX 技术的过渡, 并且不取
x87 FPU exceptions.
在64位模式中,使用REX.R前缀允许此指令访问额外的注册(XMM8-XMM15).
行动
DEST[63:0] := Convert_Integer_To_Double_Precision_Floating_Point(SRC[31:0]);
DEST[127:64] := Convert_Integer_To_Double_Precision_Floating_Point(SRC[63:32]);Intel C/C++ 内在编译器
CVTPI2PD __m128d _mm_cvtpi32_pd(__m64 a);SIMD 浮点 例外
None.
其他例外
见Intel(R)64和IA-32架构软件开发者手册第3B卷第25.25.3节"SIMD在MMX注册上操作的遗产指令的例外条件".