build: add attributes argument to TEXT

Brings the TEXT() function signature closer to how the directive works
in assembly.

Also update almost all examples to use NOSPLIT.

Closes #11
This commit is contained in:
Michael McLoughlin
2019-01-06 20:04:51 -08:00
parent 76db5bb03f
commit 304c7425d2
25 changed files with 105 additions and 72 deletions

View File

@@ -7,19 +7,19 @@ import (
)
func main() {
TEXT("Real", "func(z complex128) float64")
TEXT("Real", NOSPLIT, "func(z complex128) float64")
Doc("Real returns the real part of z.")
r := Load(Param("z").Real(), XMM())
Store(r, ReturnIndex(0))
RET()
TEXT("Imag", "func(z complex128) float64")
TEXT("Imag", NOSPLIT, "func(z complex128) float64")
Doc("Imag returns the imaginary part of z.")
i := Load(Param("z").Imag(), XMM())
Store(i, ReturnIndex(0))
RET()
TEXT("Norm", "func(z complex128) float64")
TEXT("Norm", NOSPLIT, "func(z complex128) float64")
Doc("Norm returns the complex norm of z.")
r = Load(Param("z").Real(), XMM())
i = Load(Param("z").Imag(), XMM())

View File

@@ -1,19 +1,21 @@
// Code generated by command: go run asm.go -out complex.s -stubs stub.go. DO NOT EDIT.
#include "textflag.h"
// func Real(z complex128) float64
TEXT ·Real(SB), $0-24
TEXT ·Real(SB), NOSPLIT, $0-24
MOVSD z_real(FP), X0
MOVSD X0, ret+16(FP)
RET
// func Imag(z complex128) float64
TEXT ·Imag(SB), $0-24
TEXT ·Imag(SB), NOSPLIT, $0-24
MOVSD z_imag+8(FP), X0
MOVSD X0, ret+16(FP)
RET
// func Norm(z complex128) float64
TEXT ·Norm(SB), $0-24
TEXT ·Norm(SB), NOSPLIT, $0-24
MOVSD z_real(FP), X0
MOVSD z_imag+8(FP), X1
MULSD X0, X0