
This commit includes updates that affects the build, testing, and deployment of Tile38. - The root level build.sh has been broken up into multiple scripts and placed in the "scripts" directory. - The vendor directory has been updated to follow the Go modules rules, thus `make` should work on isolated environments. Also some vendored packages may have been updated to a later version, if needed. - The Makefile has been updated to allow for making single binaries such as `make tile38-server`. There is some scaffolding during the build process, so from now on all binaries should be made using make. For example, to run a development version of the tile38-cli binary, do this: make tile38-cli && ./tile38-cli not this: go run cmd/tile38-cli/main.go - Travis.CI docker push script has been updated to address a change to Docker's JSON repo meta output, which in turn fixes a bug where new Tile38 versions were not being properly pushed to Docker
57 lines
925 B
ArmAsm
57 lines
925 B
ArmAsm
// +build amd64,go1.6
|
|
|
|
#include "textflag.h"
|
|
|
|
// func cpuid(eaxArg, ecxArg uint32) (eax, ebx, ecx, edx uint32)
|
|
TEXT ·cpuid(SB), NOSPLIT, $0-24
|
|
MOVL eaxArg+0(FP), AX
|
|
MOVL ecxArg+4(FP), CX
|
|
CPUID
|
|
MOVL AX, eax+8(FP)
|
|
MOVL BX, ebx+12(FP)
|
|
MOVL CX, ecx+16(FP)
|
|
MOVL DX, edx+20(FP)
|
|
RET
|
|
|
|
// func EncodeInt(lat, lng float64) uint64
|
|
TEXT ·EncodeInt(SB), NOSPLIT, $0
|
|
CMPB ·useAsm(SB), $1
|
|
JNE fallback
|
|
|
|
#define LATF X0
|
|
#define LATI R8
|
|
#define LNGF X1
|
|
#define LNGI R9
|
|
#define TEMP R10
|
|
#define GHSH R11
|
|
#define MASK BX
|
|
|
|
MOVSD lat+0(FP), LATF
|
|
MOVSD lng+8(FP), LNGF
|
|
|
|
MOVQ $0x5555555555555555, MASK
|
|
|
|
MULSD $(0.005555555555555556), LATF
|
|
ADDSD $(1.5), LATF
|
|
|
|
MULSD $(0.002777777777777778), LNGF
|
|
ADDSD $(1.5), LNGF
|
|
|
|
MOVQ LNGF, LNGI
|
|
SHRQ $20, LNGI
|
|
|
|
MOVQ LATF, LATI
|
|
SHRQ $20, LATI
|
|
PDEPQ MASK, LATI, GHSH
|
|
|
|
PDEPQ MASK, LNGI, TEMP
|
|
|
|
SHLQ $1, TEMP
|
|
XORQ TEMP, GHSH
|
|
|
|
MOVQ GHSH, ret+16(FP)
|
|
RET
|
|
|
|
fallback:
|
|
JMP ·encodeInt(SB)
|