以下ARM asm:
vmov.f64 d16, #0
Run Code Online (Sandbox Code Playgroud)
失败,出现以下错误:
/tmp/ccZD4Iex.s:121: Error: immediate out of range -- `vmov.f64 d16,#0'
Run Code Online (Sandbox Code Playgroud)
使用arm-none-linux-gnueabi-g ++编译(Sourcery CodeBench Lite 2012.03-57)4.6.3
如何将d16寄存器 - 双清零,以便将其用于双精度VFP指令?
VMOV只能接受一组有限的浮点时间,而且,令人惊讶的是,0不是其中之一:
任何数字都可以表示为+/- n*2 -r,其中n和r是整数,16 <= n <= 31,0 <= r <= 7.
您可以执行BitBank建议的操作,或使用整数移动,这也将使寄存器清零.
vmov.i64 d16, #0
Run Code Online (Sandbox Code Playgroud)