github.com/flyinox/gosm@v0.0.0-20171117061539-16768cb62077/src/cmd/dist/vfp_arm.s (about)

     1  // Copyright 2015 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // +build gc,arm
     6  
     7  #include "textflag.h"
     8  
     9  // try to run "vmov.f64 d0, d0" instruction
    10  TEXT ·useVFPv1(SB),NOSPLIT,$0
    11  	WORD $0xeeb00b40	// vmov.f64 d0, d0
    12  	RET
    13  
    14  // try to run VFPv3-only "vmov.f64 d0, #112" instruction
    15  TEXT ·useVFPv3(SB),NOSPLIT,$0
    16  	WORD $0xeeb70b00	// vmov.f64 d0, #112
    17  	RET
    18  
    19  // try to run ARMv6K (or above) "ldrexd" instruction
    20  TEXT ·useARMv6K(SB),NOSPLIT,$32
    21  	MOVW R13, R2
    22  	BIC  $15, R13
    23  	WORD $0xe1bd0f9f	// ldrexd r0, r1, [sp]
    24  	WORD $0xf57ff01f	// clrex
    25  	MOVW R2, R13
    26  	RET