printing: commit some refactors (probably broken)
This commit is contained in:
10
examples/add/add.s
Normal file
10
examples/add/add.s
Normal 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
12
examples/add/add_test.go
Normal 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)
|
||||
}
|
||||
@@ -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
3
examples/add/stub.go
Normal file
@@ -0,0 +1,3 @@
|
||||
package add
|
||||
|
||||
func Add(x uint64, y uint64) uint64
|
||||
Reference in New Issue
Block a user