ARM SIMD instruction -- ucvtf

UCVTF:

Unsigned fixed-point Convert to Floating-point (vector). This instruction converts each element in a vector from fixed-point to floating-point using the rounding mode that is specified by the FPCR, and writes the result to the SIMD&FP destination register。

无符号定点转换为浮点(向量)。此指令使用FPCR指定的舍入模式将向量中的每个元素从定点转换为浮点,并将结果写入SIMD&FP目标寄存器。

unsigned long long proc_stt_jf = 0;

402230: 9102c3e4 add x4, sp, #0xb0 // x4=&proc_stt_jf=sp+0xb0 --> sp+176

...

402888: fd405be8 ldr d8, sp, #176 // d8=proc_stt_jf

...

402934: f94023e0 ldr x0, sp, #64 // x0=buf

402938: d2800001 mov x1, #0x0 // #0

40293c: 97fffc49 bl 401a60 <strtod@plt> // d0=strtod(buf, 0)

402940: 7e61d901 ucvtf d1, d8 // d1=proc_stt_jf

=> 0x0000000000402934: e0 23 40 f9 ldr x0, sp, #64

(gdb) n

0x0000000000402938 in ?? ()

=> 0x0000000000402938: 01 00 80 d2 mov x1, #0x0 // #0

(gdb)

0x000000000040293c in ?? ()

=> 0x000000000040293c: 49 fc ff 97 bl 0x401a60 <strtod@plt>

(gdb)

0x0000000000402940 in ?? ()

=> 0x0000000000402940: 01 d9 61 7e ucvtf d1, d8

(gdb) p/f $d8

9 = {f = 0, u = 0, s = 0} (gdb) p/f d1
$10 = {f = 2.2250738585072014e-308, u = 2.2250738585072014e-308, s = 2.2250738585072014e-308}

(gdb) n

0x0000000000402944 in ?? ()

=> 0x0000000000402944: 21 18 69 1e fdiv d1, d1, d9
(gdb) p/f d1 11 = {f = 0, u = 0, s = 0}

(gdb) p/f $d8

$12 = {f = 0, u = 0, s = 0}

相关推荐
水饺编程19 小时前
第2章:Linux 基础,制作【.tar.xz】压缩包文件
linux·c语言·汇编
小向是个Der3 天前
嵌入式进阶——编译与链接
汇编·单片机·学习·编译原理·交叉编译
二十七日秋3 天前
算法刷题笔记「Day 1|四道 OJ 入门题里的深坑」
c语言·汇编·数据结构·c++·笔记·python·算法
银河麒麟操作系统3 天前
两案例入选全球计算联盟年度产业应用案例汇编
大数据·汇编·人工智能
abc light3 天前
ARM 裸机开发(2)——ARM 汇编与启动代码
汇编·arm开发
soso19684 天前
Modbus协议开发实战指南
汇编
水饺编程5 天前
第2章:Linux 基础,解压缩【.tar.gz】压缩包
linux·c语言·汇编
水饺编程6 天前
第2章:Linux 基础,exit 命令
linux·c语言·汇编
水饺编程6 天前
第2章:Linux 基础,删除用户
linux·c语言·汇编
水饺编程8 天前
第2章:Linux 基础,切换用户
linux·c语言·汇编