SCVTF
Signed 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目标寄存器。
FPCR : Floating-point Control Register,浮点数控制寄存器。
402880: fd242be8 str d8, [sp, #18512] // [sp+0x4850]=d8
402884: 52800040 mov w0, #0x2 // #2
402888: fd405be8 ldr d8, [sp, #176] // d8=proc_stt_jf
40288c: fd242fe9 str d9, [sp, #18520] // [sp+0x4858]=d9
402890: 97fffd5c bl 401e00 <sysconf@plt> // sysconf(2)
402894: 9e620009 scvtf d9, x0
double sc_clk_tck = sysconf(_SC_CLK_TCK);
=> 0x0000000000402880: e8 2b 24 fd str d8, [sp, #18512]
(gdb) n
0x0000000000402884 in ?? ()
=> 0x0000000000402884: 40 00 80 52 mov w0, #0x2 // #2
(gdb) n
0x0000000000402888 in ?? ()
=> 0x0000000000402888: e8 5b 40 fd ldr d8, [sp, #176]
(gdb)
0x000000000040288c in ?? ()
=> 0x000000000040288c: e9 2f 24 fd str d9, [sp, #18520]
(gdb)
0x0000000000402890 in ?? ()
=> 0x0000000000402890: 5c fd ff 97 bl 0x401e00 <sysconf@plt>
(gdb)
0x0000000000402894 in ?? ()
=> 0x0000000000402894: 09 00 62 9e scvtf d9, x0
(gdb) p $d9
$3 = {f = 0, u = 0, s = 0}
(gdb) p $x0
$4 = 100
(gdb) n
0x0000000000402898 in ?? ()
=> 0x0000000000402898: 38 21 60 1e fcmpe d9, #0.0
(gdb) p $d9
$5 = {f = 100, u = 4636737291354636288, s = 4636737291354636288}
d x f 三种形式打印
(gdb) p/d $d9
$6 = {f = 100, u = 4636737291354636288, s = 4636737291354636288}
(gdb) p/x $d9
$7 = {f = 0x64, u = 0x4059000000000000, s = 0x4059000000000000}
(gdb) p/f $d9
$8 = {f = 100, u = 100, s = 100}