Files
avo/examples/data/asm.go
Michael McLoughlin 34ac353c14 all: remove +build tags (#377)
Commit 759be3dad9 bumped our Go
requirement to 1.18 which allows us to drop support for old-style
`+build` tags. This change runs `go fix ./...` to remove them, and
updates some remaining code generators that produced `+build` lines.
2023-03-05 20:30:01 -08:00

35 lines
662 B
Go

//go:build ignore
package main
import (
"math"
. "github.com/mmcloughlin/avo/build"
. "github.com/mmcloughlin/avo/operand"
)
func main() {
bytes := GLOBL("bytes", RODATA|NOPTR)
DATA(0, U64(0x0011223344556677))
DATA(8, String("strconst"))
DATA(16, F32(math.Pi))
DATA(24, F64(math.Pi))
DATA(32, U32(0x00112233))
DATA(36, U16(0x4455))
DATA(38, U8(0x66))
DATA(39, U8(0x77))
TEXT("DataAt", NOSPLIT, "func(i int) byte")
Doc("DataAt returns byte i in the 'bytes' global data section.")
i := Load(Param("i"), GP64())
ptr := Mem{Base: GP64()}
LEAQ(bytes, ptr.Base)
b := GP8()
MOVB(ptr.Idx(i, 1), b)
Store(b, ReturnIndex(0))
RET()
Generate()
}