github.com/usbarmory/tamago@v0.0.0-20240508072735-8612bbe1e454/arm/vfp.s (about)

     1  // ARM processor support
     2  // https://github.com/usbarmory/tamago
     3  //
     4  // Copyright (c) WithSecure Corporation
     5  // https://foundry.withsecure.com
     6  //
     7  // Use of this source code is governed by the license
     8  // that can be found in the LICENSE file.
     9  
    10  #include "go_asm.h"
    11  
    12  // func vfp_enable()
    13  TEXT ·vfp_enable(SB),$0
    14  	MRC	15, 0, R1, C1, C0, 2
    15  	ORR	$(0xf << 20), R1, R1	// enable CP10 and CP11 access
    16  	MCR	15, 0, R1, C1, C0, 2
    17  
    18  	MOVW	$0, R1
    19  	MCR	15, 0, R1, C7, C5, 4	// CP15ISB
    20  
    21  	MOVW	$(1<<const_FPEXC_EN), R3
    22  	WORD	$0xeee83a10		// vmsr fpexc, r3
    23  
    24  	RET