bx lr
ASM_PFX(ArmEnableVFP):
- # Enable VFP registers
+ # Read CPACR (Coprocessor Access Control Register)
mrc p15, 0, r0, c1, c0, 2
- orr r0, r0, #0x00f00000 @ Enable VPF access (V* instructions)
+ # Enable VPF access (Full Access to CP10, CP11) (V* instructions)
+ orr r0, r0, #0x00f00000
+ # Write back CPACR (Coprocessor Access Control Register)
mcr p15, 0, r0, c1, c0, 2
- mov r0, #0x40000000 @ Set EN bit in FPEXC
- mcr p10,#0x7,r0,c8,c0,#0 @ msr FPEXC,r0 in ARM assembly
+ # Set EN bit in FPEXC. The Advanced SIMD and VFP extensions are enabled and operate normally.
+ mov r0, #0x40000000
+ mcr p10,#0x7,r0,c8,c0,#0
bx lr
ASM_PFX(ArmCallWFI):
bx lr
ArmEnableVFP
- // Enable VFP registers
+ // Read CPACR (Coprocessor Access Control Register)
mrc p15, 0, r0, c1, c0, 2
- orr r0, r0, #0x00f00000 // Enable VPF access (V* instructions)
+ // Enable VPF access (Full Access to CP10, CP11) (V* instructions)
+ orr r0, r0, #0x00f00000
+ // Write back CPACR (Coprocessor Access Control Register)
mcr p15, 0, r0, c1, c0, 2
- mov r0, #0x40000000 // Set EN bit in FPEXC
- mcr p10,#0x7,r0,c8,c0,#0 // msr FPEXC,r0 in ARM assembly
+ // Set EN bit in FPEXC. The Advanced SIMD and VFP extensions are enabled and operate normally.
+ mov r0, #0x40000000
+ mcr p10,#0x7,r0,c8,c0,#0
bx lr
ArmCallWFI