mirror of
https://github.com/golang/go.git
synced 2025-10-21 12:03:19 +00:00
26 lines
506 B
Go
26 lines
506 B
Go
![]() |
// asmcheck
|
||
|
|
||
|
package codegen
|
||
|
|
||
|
import "math"
|
||
|
|
||
|
func rot32(x uint32) uint32 {
|
||
|
var a uint32
|
||
|
a += x<<7 | x>>25 // amd64:"ROLL.*[$]7" arm:"MOVW.*@>25"
|
||
|
a += x<<8 + x>>24 // amd64:`ROLL.*\$8` arm:"MOVW.*@>24"
|
||
|
a += x<<9 ^ x>>23 // amd64:"ROLL.*\\$9" arm:"MOVW.*@>23"
|
||
|
return a
|
||
|
}
|
||
|
|
||
|
func rot64(x uint64) uint64 {
|
||
|
var a uint64
|
||
|
a += x<<7 | x>>57 // amd64:"ROL"
|
||
|
a += x<<8 + x>>56 // amd64:"ROL"
|
||
|
a += x<<9 ^ x>>55 // amd64:"ROL"
|
||
|
return a
|
||
|
}
|
||
|
|
||
|
func copysign(a, b float64) float64 {
|
||
|
return math.Copysign(a, b)
|
||
|
}
|