Pergunta

What's the difference between ARM VFP instructions starting with V and with F?

Why doesn't the ARM Information Center list the F instructions in the assembly reference anymore?

Most of them directly map to each other (for example, vcvtr.s32.f32 and ftosis), so why do they both exist?

For example, these functions do the same (flooring float->int conversion):

vmrs %r1, fpscr
bic %r0, %r1, #0xc00000
orr %r0, %r0, #0x800000
vmsr fpscr, %r0
vcvtr.s32.f32 %s2, %s2
vmov %r0, %s2
vmsr fpscr, %r1

mrs %r1, fpscr
bic %r0, %r1, #0xc00000
orr %r0, %r0, #0x800000
msr fpscr, %r0
ftosis %s2, %s2
fmrs %r0, %s2
msr fpscr, %r1
Foi útil?

Solução

The Fxxx names are the “Pre-UAL” (Unified Assembly Language) names, and they are deprecated. The Vxxx names are the UAL names, and are what you should be using for new code.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top