2018-12-27 15:44:52 -08:00
|
|
|
// Code generated by command: go run asm.go -out geohash.s -stubs stub.go. DO NOT EDIT.
|
|
|
|
|
|
|
|
|
|
#include "textflag.h"
|
|
|
|
|
|
|
|
|
|
// func EncodeInt(lat float64, lng float64) uint64
|
2020-01-19 16:45:09 -08:00
|
|
|
// Requires: BMI2, SSE2
|
2019-01-06 20:04:51 -08:00
|
|
|
TEXT ·EncodeInt(SB), NOSPLIT, $0-24
|
2019-01-13 11:59:14 -08:00
|
|
|
MOVSD lat+0(FP), X0
|
2019-01-10 21:21:41 -08:00
|
|
|
MOVSD lng+8(FP), X1
|
2019-01-13 11:59:14 -08:00
|
|
|
MULSD reciprocal180<>+0(SB), X0
|
|
|
|
|
ADDSD onepointfive<>+0(SB), X0
|
|
|
|
|
MULSD reciprocal360<>+0(SB), X1
|
|
|
|
|
ADDSD onepointfive<>+0(SB), X1
|
2019-01-10 21:21:41 -08:00
|
|
|
MOVQ X0, CX
|
|
|
|
|
SHRQ $0x14, CX
|
|
|
|
|
MOVQ X1, AX
|
|
|
|
|
SHRQ $0x14, AX
|
2019-01-13 11:59:14 -08:00
|
|
|
PDEPQ mask<>+0(SB), CX, CX
|
|
|
|
|
PDEPQ mask<>+0(SB), AX, AX
|
2019-01-10 21:21:41 -08:00
|
|
|
SHLQ $0x01, AX
|
|
|
|
|
XORQ AX, CX
|
|
|
|
|
MOVQ CX, ret+16(FP)
|
2018-12-27 15:44:52 -08:00
|
|
|
RET
|
|
|
|
|
|
2019-01-13 11:59:14 -08:00
|
|
|
DATA reciprocal180<>+0(SB)/8, $(0.005555555555555556)
|
2018-12-31 19:04:14 -08:00
|
|
|
GLOBL reciprocal180<>(SB), RODATA|NOPTR, $8
|
2018-12-27 15:44:52 -08:00
|
|
|
|
2019-01-13 11:59:14 -08:00
|
|
|
DATA onepointfive<>+0(SB)/8, $(1.5)
|
2018-12-31 19:04:14 -08:00
|
|
|
GLOBL onepointfive<>(SB), RODATA|NOPTR, $8
|
2018-12-27 15:44:52 -08:00
|
|
|
|
2019-01-13 11:59:14 -08:00
|
|
|
DATA reciprocal360<>+0(SB)/8, $(0.002777777777777778)
|
2018-12-31 19:04:14 -08:00
|
|
|
GLOBL reciprocal360<>(SB), RODATA|NOPTR, $8
|
2018-12-27 15:44:52 -08:00
|
|
|
|
2019-01-13 11:59:14 -08:00
|
|
|
DATA mask<>+0(SB)/8, $0x5555555555555555
|
2018-12-31 19:04:14 -08:00
|
|
|
GLOBL mask<>(SB), RODATA|NOPTR, $8
|