data

package
v0.6.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 7, 2024 License: BSD-3-Clause Imports: 0 Imported by: 0

README

data

Constructing data sections in avo.

A data section is declared with the GLOBL function, and values are specified with DATA. The size of the data section will grow as values are added to it.

	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))

The GLOBL function returns a reference which may be used in assembly code. The following function indexes into the data section just created.

	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()

Documentation

Overview

Package data shows how to define DATA sections in avo.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DataAt

func DataAt(i int) byte

DataAt returns byte i in the 'bytes' global data section.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL