Repository navigation
Conversation
Contributor
|
当前字节码架构设计以偏嵌入式平台执行方向,受限资源环境下扩展理论上限无任何实际意义。故修改方向建议改为特殊功能限制产出对应字节码,pc 平台上改为扩展指令专属执行器实现 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
单函数寄存器帧原先受 8 位指令操作数限制,参数、出站窗口和存活值合计超过 255 槽就会编译失败。本改动增加按需使用的 16 位操作数,将帧槽数上限提升到 65535(R0–R65534);小寄存器指令继续使用原有 4/8 字节编码,宽指令增加一个 4 字节扩展字。
同步更新编译器、C# 编解码、调试行号映射、C VM 的 computed-goto/switch 两种派发及返回寄存器保存。ECX1/ECM1 format 和 ABI 修订号升为 2,旧镜像需重编译,执行字节码的原生宿主/固件需更新 VM;参数个数上限仍为 254,设备可执行的帧大小继续由实际内存容量决定。
验证:Release 全解决方案构建通过;全量回归只发现两项旧版本镜像兼容契约需要同步,调整后相关 193 项测试全部通过。新增覆盖 1024 个存活值、65535 槽边界、宽返回寄存器、混合宽度跳转、容器和模块缓存往返、非法扩展字、设备帧内存不足。两种 C VM 派发均使用 Clang 实际构建并执行,dotnet format --verify-no-changes 通过。
以草稿提交,供维护者审查字节码格式和兼容性变更。