operand: include '+0' in named symbol references
Intended to address an asmdecl error. [amd64] Butterfly: use of unnamed argument 0(FP); offset 0 is x0+0(FP) Updates #24
This commit is contained in:
@@ -43,7 +43,7 @@ This produces [`add.s`](add.s) as follows:
|
||||
|
||||
// func Add(x uint64, y uint64) uint64
|
||||
TEXT ·Add(SB), NOSPLIT, $0-24
|
||||
MOVQ x(FP), AX
|
||||
MOVQ x+0(FP), AX
|
||||
MOVQ y+8(FP), CX
|
||||
ADDQ AX, CX
|
||||
MOVQ CX, ret+16(FP)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
// func Add(x uint64, y uint64) uint64
|
||||
TEXT ·Add(SB), NOSPLIT, $0-24
|
||||
MOVQ x(FP), AX
|
||||
MOVQ x+0(FP), AX
|
||||
MOVQ y+8(FP), CX
|
||||
ADDQ AX, CX
|
||||
MOVQ CX, ret+16(FP)
|
||||
|
||||
@@ -34,7 +34,7 @@ TEXT ·ArrayThree(SB), NOSPLIT, $0-64
|
||||
|
||||
// func FieldByte(s Struct) byte
|
||||
TEXT ·FieldByte(SB), NOSPLIT, $0-177
|
||||
MOVB s_Byte(FP), AL
|
||||
MOVB s_Byte+0(FP), AL
|
||||
MOVB AL, ret+176(FP)
|
||||
RET
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ Generated assembly:
|
||||
```s
|
||||
// func Norm(z complex128) float64
|
||||
TEXT ·Norm(SB), NOSPLIT, $0-24
|
||||
MOVSD z_real(FP), X0
|
||||
MOVSD z_real+0(FP), X0
|
||||
MOVSD z_imag+8(FP), X1
|
||||
MULSD X0, X0
|
||||
MULSD X1, X1
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
// func Real(z complex128) float64
|
||||
TEXT ·Real(SB), NOSPLIT, $0-24
|
||||
MOVSD z_real(FP), X0
|
||||
MOVSD z_real+0(FP), X0
|
||||
MOVSD X0, ret+16(FP)
|
||||
RET
|
||||
|
||||
@@ -16,7 +16,7 @@ TEXT ·Imag(SB), NOSPLIT, $0-24
|
||||
|
||||
// func Norm(z complex128) float64
|
||||
TEXT ·Norm(SB), NOSPLIT, $0-24
|
||||
MOVSD z_real(FP), X0
|
||||
MOVSD z_real+0(FP), X0
|
||||
MOVSD z_imag+8(FP), X1
|
||||
MULSD X0, X0
|
||||
MULSD X1, X1
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
#include "textflag.h"
|
||||
|
||||
DATA bytes<>(SB)/8, $0x0011223344556677
|
||||
DATA bytes<>+0(SB)/8, $0x0011223344556677
|
||||
DATA bytes<>+8(SB)/8, $"strconst"
|
||||
DATA bytes<>+16(SB)/4, $(3.1415927)
|
||||
DATA bytes<>+24(SB)/8, $(3.141592653589793)
|
||||
@@ -14,8 +14,8 @@ GLOBL bytes<>(SB), RODATA|NOPTR, $40
|
||||
|
||||
// func DataAt(i int) byte
|
||||
TEXT ·DataAt(SB), NOSPLIT, $0-9
|
||||
MOVQ i(FP), AX
|
||||
LEAQ bytes<>(SB), CX
|
||||
MOVQ i+0(FP), AX
|
||||
LEAQ bytes<>+0(SB), CX
|
||||
MOVB (CX)(AX*1), AL
|
||||
MOVB AL, ret+8(FP)
|
||||
RET
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
// func Dot(x []float32, y []float32) float32
|
||||
TEXT ·Dot(SB), NOSPLIT, $0-52
|
||||
MOVQ x_base(FP), AX
|
||||
MOVQ x_base+0(FP), AX
|
||||
MOVQ y_base+24(FP), CX
|
||||
MOVQ x_len+8(FP), DX
|
||||
VXORPS Y0, Y0, Y0
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
// func Hash64(data []byte) uint64
|
||||
TEXT ·Hash64(SB), NOSPLIT, $0-32
|
||||
MOVQ data_base(FP), CX
|
||||
MOVQ data_base+0(FP), CX
|
||||
MOVQ data_len+8(FP), BX
|
||||
MOVQ $0xcbf29ce484222325, AX
|
||||
MOVQ $0x00000100000001b3, BP
|
||||
|
||||
@@ -4,31 +4,31 @@
|
||||
|
||||
// func EncodeInt(lat float64, lng float64) uint64
|
||||
TEXT ·EncodeInt(SB), NOSPLIT, $0-24
|
||||
MOVSD lat(FP), X0
|
||||
MOVSD lat+0(FP), X0
|
||||
MOVSD lng+8(FP), X1
|
||||
MULSD reciprocal180<>(SB), X0
|
||||
ADDSD onepointfive<>(SB), X0
|
||||
MULSD reciprocal360<>(SB), X1
|
||||
ADDSD onepointfive<>(SB), X1
|
||||
MULSD reciprocal180<>+0(SB), X0
|
||||
ADDSD onepointfive<>+0(SB), X0
|
||||
MULSD reciprocal360<>+0(SB), X1
|
||||
ADDSD onepointfive<>+0(SB), X1
|
||||
MOVQ X0, CX
|
||||
SHRQ $0x14, CX
|
||||
MOVQ X1, AX
|
||||
SHRQ $0x14, AX
|
||||
PDEPQ mask<>(SB), CX, CX
|
||||
PDEPQ mask<>(SB), AX, AX
|
||||
PDEPQ mask<>+0(SB), CX, CX
|
||||
PDEPQ mask<>+0(SB), AX, AX
|
||||
SHLQ $0x01, AX
|
||||
XORQ AX, CX
|
||||
MOVQ CX, ret+16(FP)
|
||||
RET
|
||||
|
||||
DATA reciprocal180<>(SB)/8, $(0.005555555555555556)
|
||||
DATA reciprocal180<>+0(SB)/8, $(0.005555555555555556)
|
||||
GLOBL reciprocal180<>(SB), RODATA|NOPTR, $8
|
||||
|
||||
DATA onepointfive<>(SB)/8, $(1.5)
|
||||
DATA onepointfive<>+0(SB)/8, $(1.5)
|
||||
GLOBL onepointfive<>(SB), RODATA|NOPTR, $8
|
||||
|
||||
DATA reciprocal360<>(SB)/8, $(0.002777777777777778)
|
||||
DATA reciprocal360<>+0(SB)/8, $(0.002777777777777778)
|
||||
GLOBL reciprocal360<>(SB), RODATA|NOPTR, $8
|
||||
|
||||
DATA mask<>(SB)/8, $0x5555555555555555
|
||||
DATA mask<>+0(SB)/8, $0x5555555555555555
|
||||
GLOBL mask<>(SB), RODATA|NOPTR, $8
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
// func Interval(start uint64, size uint64) (uint64, uint64)
|
||||
TEXT ·Interval(SB), NOSPLIT, $0-32
|
||||
MOVQ start(FP), AX
|
||||
MOVQ start+0(FP), AX
|
||||
MOVQ size+8(FP), CX
|
||||
ADDQ AX, CX
|
||||
MOVQ AX, ret+16(FP)
|
||||
@@ -13,7 +13,7 @@ TEXT ·Interval(SB), NOSPLIT, $0-32
|
||||
|
||||
// func Butterfly(x0 float64, x1 float64) (y0 float64, y1 float64)
|
||||
TEXT ·Butterfly(SB), NOSPLIT, $0-32
|
||||
MOVSD x0(FP), X0
|
||||
MOVSD x0+0(FP), X0
|
||||
MOVSD x1+8(FP), X1
|
||||
MOVSD X0, X2
|
||||
ADDSD X1, X2
|
||||
@@ -25,7 +25,7 @@ TEXT ·Butterfly(SB), NOSPLIT, $0-32
|
||||
|
||||
// func Septuple(byte) [7]byte
|
||||
TEXT ·Septuple(SB), NOSPLIT, $0-15
|
||||
MOVB arg(FP), AL
|
||||
MOVB arg+0(FP), AL
|
||||
MOVB AL, ret_0+8(FP)
|
||||
MOVB AL, ret_1+9(FP)
|
||||
MOVB AL, ret_2+10(FP)
|
||||
@@ -37,18 +37,18 @@ TEXT ·Septuple(SB), NOSPLIT, $0-15
|
||||
|
||||
// func CriticalLine(t float64) complex128
|
||||
TEXT ·CriticalLine(SB), NOSPLIT, $0-24
|
||||
MOVSD t(FP), X0
|
||||
MOVSD half<>(SB), X1
|
||||
MOVSD t+0(FP), X0
|
||||
MOVSD half<>+0(SB), X1
|
||||
MOVSD X1, ret_real+8(FP)
|
||||
MOVSD X0, ret_imag+16(FP)
|
||||
RET
|
||||
|
||||
DATA half<>(SB)/8, $(0.5)
|
||||
DATA half<>+0(SB)/8, $(0.5)
|
||||
GLOBL half<>(SB), RODATA|NOPTR, $8
|
||||
|
||||
// func NewStruct(w uint16, p [2]float64, q uint64) Struct
|
||||
TEXT ·NewStruct(SB), NOSPLIT, $0-64
|
||||
MOVW w(FP), AX
|
||||
MOVW w+0(FP), AX
|
||||
MOVSD p_0+8(FP), X0
|
||||
MOVSD p_1+16(FP), X1
|
||||
MOVQ q+24(FP), CX
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
// func block(h *[5]uint32, m []byte)
|
||||
TEXT ·block(SB), $64-32
|
||||
MOVQ h(FP), AX
|
||||
MOVQ h+0(FP), AX
|
||||
MOVQ m_base+8(FP), CX
|
||||
|
||||
// Load initial hash.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
// func Hash(state *State, key []byte) uint64
|
||||
TEXT ·Hash(SB), NOSPLIT, $0-40
|
||||
MOVQ state(FP), AX
|
||||
MOVQ state+0(FP), AX
|
||||
MOVQ key_base+8(FP), CX
|
||||
MOVQ key_len+16(FP), DX
|
||||
MOVQ (AX), BX
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
// func Sum(xs []uint64) uint64
|
||||
TEXT ·Sum(SB), NOSPLIT, $0-32
|
||||
MOVQ xs_base(FP), AX
|
||||
MOVQ xs_base+0(FP), AX
|
||||
MOVQ xs_len+8(FP), CX
|
||||
|
||||
// Initialize sum register to zero.
|
||||
|
||||
Reference in New Issue
Block a user