Chiba Logo CHIBA v0.6.13
CHIBA blog RSS feed
CHIBA / DOCS / LEVEL-1 SPEC

ASM 输入/输出 Tuple 语义

这里集中展示 CHIBA level-1 specification,覆盖 core language、control flow、memory、patterns、IR lowering 与 package system 等实现边界。

The docs surface keeps CHIBA level-1 specification pages browsable inside the site, with direct paths into language, control flow, memory, pattern, and lowering rules.

ASM 输入/输出 Tuple 语义

语法

该条目描述 inline asm 的 tuple 化输入输出接口。

当前 asm 的表面更准确地说是“输入绑定列表 / 输出绑定列表”,而不是我之前写的函数式参数元组调用。

语义

tuple 可用于承载多输入、多输出或混合返回值。

在 level-1 中,asm 的多输入 / 多输出语义与普通 tuple 值语义保持紧密对应:它们都体现固定顺序、固定元数的值形状。

asm 不引入另一套“伪 tuple”;多个输入或输出的顺序与语言层 tuple 顺序一一对应,但 surface 上当前先写成绑定列表,而不是直接暴露成单个 tuple 参数。

Usage

asm (ptr: rdi, idx: rsi) : (rax) => {
	"mov rax, [rdi + rsi*8]"
}

asm (ptr: rdi, idx: rsi, val: rdx) : (rax) => {
	"mov [rdi + rsi*8], rdx"
	"xor eax, eax"
}

注释:这里的输入/输出列表在语言层对应固定顺序的多路值接口;是否在更高层显式投影成 tuple,可以继续由 asm 约束文档细化。

边界

多个输出如何映射回语言层 tuple / 多返回值、以及未来 LIR 是否复用同一抽象,仍需继续细化;但当前 inline asm 的实现事实首先是“绑定列表 + 指令 block”。