6. PTO 汇编(PTO-AS)

6.1 范围

本章定义 PTO-AS 作为 PTO 程序文本形态的虚拟 ISA 契约。 规范文法仍以以下文档为准:

  • docs/assembly/PTO-AS_zh.md
  • docs/assembly/PTO-AS.bnf

6.2 核心形式

PTO-AS 采用面向指令的 SSA 风格文本形式。 典型语句形态如下:

%dst = tadd %src0, %src1 : (!pto.tile<...>, !pto.tile<...>) -> !pto.tile<...>;

文本形式在往返工具链下 SHOULD 保持确定性。

6.3 操作数类别

PTO-AS 操作数包括:

  • Tile 操作数
  • 内存/全局操作数
  • 标量/立即数操作数
  • 事件/依赖操作数(如适用)
  • 以属性字典表示的修饰符

每个指令族 MUST 定义必需操作数类别与位置约束。

6.4 属性与修饰符契约

属性 MUST 定义:

  • 名称与类型
  • 合法取值域
  • 默认值策略(如存在)
  • 语义影响
  • 非法值的诊断行为

6.5 结构合法性规则

结构合法的 PTO-AS 程序 MUST 满足:

  • 操作数/结果元数一致
  • 操作契约要求的类型类别兼容
  • 必需属性存在
  • 语句可解析且满足 schema 约束

6.6 诊断契约

PTO-AS 诊断 MUST 满足:

  • 解析与结构错误具备定位信息
  • 对等价输入具备确定性
  • 提供期望约束与实际输入的可执行信息

6.7 兼容与演进

PTO-AS 演进 SHOULD 以增量扩展为主。 破坏性语法变更 MUST 版本化并提供迁移说明。 工具链 MUST 对不支持语法给出确定性拒绝诊断。