diff --git a/Doc/isa/指令集优化.md b/Doc/isa/指令集优化.md index d15ab52..6dd7e90 100644 --- a/Doc/isa/指令集优化.md +++ b/Doc/isa/指令集优化.md @@ -105,6 +105,7 @@ | 9 | USINT | 1B | 无 | uint8_t | 19..31 | 预留 | | | | - **type 位段红利**:CMP/算术按类型自动语义——无符号类型无符号比较、整数饱和到类型宽度(模板化)、浮点走 IEEE 754(无饱和,溢出→±inf)、读取按宽度+符号/零扩展 +- **DATE/TOD/DT(U13 定案)**:DATE=uint32(天数)、TOD=uint32(当日 ms)、DT=uint64 **{date:32 \| tod:32} 拼接**(高 32 位日期);DT→DATE 取高 32 位、DT→TOD 取低 32 位(CONV/移位展开);v1 无日期运算仅存取/比较 - **浮点表示**:REAL 4B / LREAL 8B,值区 4/8 字节对齐;寄存器 int64 位模式搬运(REAL 低 4 字节),运算时按 type 重解释 - **常量表契约(A2 定案)**:条目 = **8 字节原始值(无 tag)**,按位模式去重; `LOADK rd, const_id`(8B IMM 形态)**用指令 type 位段**解释(读 width 字节、按符号扩展), @@ -277,6 +278,8 @@ V2 的 op 位段仅 6 位(64 个),FB 占 8 个不划算,且 machine.toml - U9 定案:值段 1/2/4/8B 对齐编译器保证 - U10 定案:寄存器/调用约定维持现状、帧按 nregs 动态分配;栈方案 C(预分配栈区 + max_stack@116 编译期算 + 字节/深度双检查);递归 = 链接层环检测编译期报错 - U12 定案:元数据段 v1 0 长度占位(offset_meta=0),schema 延后 +- U13 定案:DATE/TOD/DT 表示(DT={date:32|tod:32} 拼接,转换取高/低 32 位) +- U14 定案:CALL/CAL rd 字段恒 0(按指令编码/指令集清单文档)——**全部 U 项闭合,V2 规格冻结** - A10 定案(B1/B2):1 CAL + fb_id 16 位(查 [[fb]] 表);V1 的 8 个 CAL_* opcode 作废 - B4 定案:领域指令(运动控制/通信)不进指令集,一律 FB 库;无 EXT 服务指令 - B3/B5 说明中待确认:单/双字计数编码(CAL type 位段)、op 位段预算 @@ -334,8 +337,8 @@ V2 的 op 位段仅 6 位(64 个),FB 占 8 个不划算,且 machine.toml | ~~U10~~ | ~~寄存器与调用栈~~ | **已定案**:寄存器 int64 不变;调用约定不变;CALL/RET 全宽复制;帧按 nregs 动态分配(§2.2 表述修正);栈方案 C(预分配 + max_stack@116 + 字节/深度双检查 + 递归编译器报错) | | ~~U11~~ | ~~CAL 编码布局~~ | **已定案**:010 101 分区,操作数区 fb_id16=31..16 + slot32=63..32 | | ~~U12~~ | ~~元数据段占位~~ | **已定案**:v1 定 0 长度占位(offset_meta=0 = 空段,接口预留),字段表 schema 延后(有使用方时再定) | -| U13 | **DATE/TOD/DT 表示**(uint32 天 / uint32 当日ms / uint64) | §2.4 已写 | 确认 / 改 | -| U14 | **CALL/CAL 的 rd 恒 0 约定**成文 | 讨论过未成文 | 确认 / 改 | +| ~~U13~~ | ~~DATE/TOD/DT 表示~~ | **已定案**:DATE=uint32(天数)、TOD=uint32(当日 ms)、DT=uint64 **{date:32 \| tod:32} 拼接**(高 32 位日期,取高/低即转换,比较天然有序);v1 无日期运算(A5);将来转换编译展开 | +| ~~U14~~ | ~~CALL/CAL 的 rd 恒 0~~ | **已定案**:CALL(010 100 区)/ CAL(010 101 区)的 rd 字节恒 0(未使用),按指令编码/指令集清单文档编码 | | ~~U15~~ | ~~无类型指令 type=NONE~~ | **已被 func=0 取代**(func 位段,无类型指令编码 0 不使用) | | ~~U16~~ | ~~off32 相对下一条公式~~ | **已确认**(随 K7 跳转字节化接受) |