printing: commit some refactors (probably broken)

This commit is contained in:
Michael McLoughlin
2018-12-11 00:18:22 -08:00
parent 4dc909a81e
commit c882e52510
21 changed files with 398 additions and 222 deletions

10
examples/add/add.s Normal file
View File

@@ -0,0 +1,10 @@
#include "textflag.h"
// func Add(x uint64, y uint64) uint64
TEXT ·Add(SB),0,$0-24
MOVQ x(FP), CX
MOVQ y+8(FP), AX
ADDQ CX, AX
MOVQ CX, ret+16(FP)
RET

12
examples/add/add_test.go Normal file
View File

@@ -0,0 +1,12 @@
package add
import (
"testing"
"testing/quick"
)
//go:generate go run asm.go -out add.s -stubs stub.go
func TestAdd(t *testing.T) {
quick.CheckEqual(Add, func(x, y uint64) uint64 { return x + y }, nil)
}

View File

@@ -1,3 +1,5 @@
// +build ignore
package main
import (
@@ -5,11 +7,11 @@ import (
)
func main() {
TEXT("add", "func(x, y uint64) uint64")
TEXT("Add", "func(x, y uint64) uint64")
x := Load(Param("x"), GP64v())
y := Load(Param("y"), GP64v())
ADDQ(x, y)
Store(x, ReturnIndex(0))
RET()
EOF()
Generate()
}

3
examples/add/stub.go Normal file
View File

@@ -0,0 +1,3 @@
package add
func Add(x uint64, y uint64) uint64