46 Star 102 Fork 756

OpenHarmony/arkcompiler_ets_frontend

 / 详情

16 bits ic slot number trunc after overflow and 8 bits length inconsistant

已完成
缺陷
创建于  
2024-06-27 11:18

16 位 ic slot 超过 0xffff 后会重新开始计数,且是被截断的。

期望行为:16 位 ic slot 超过 0xffff 应该被设置成 0xff

用例: 运行下面的 js 代码,生成用例

const fs = require("fs");

let classContent = "class A {\n";

for (let i = 0; i <= 40000; i++) {
    classContent += `    a${i} = ${i};\n`;
}

classContent += "}\n";

fs.writeFile("t.ts", classContent, (err) => {
    if (err) throw err;
    console.log("t.ts 文件已生成");
});

输入图片说明

8 位的 ic slot 长度规范不统一

如果方法里 ic slot 最大 index 为 0xff,长度返回可能是 0xff,也可能是 0xfe
而小于和大于 0xff,返回的是 max_index + 1

期望行为:长度返回 0x100
用例:可以用上面的代码把生成的 t.ts 改成 t.js

8 位 ic slot +1 溢出问题

期望行为:如果当前字节码需要 2 个 slot,并且 slot_index + 1 == 0xff,那么 slot_index 也应该是 0xff

用例:ets_runtime/test/aottest/definefieldbyname2/definefieldbyname2.js

这个问题好像被修复了?

评论 (1)

Lasting 创建了缺陷 10个月前
openharmony_ci 添加了
 
waiting_for_assign
标签
10个月前
Lasting 修改了描述 10个月前
Lasting 修改了描述 10个月前
Lasting 修改了描述 10个月前
李晨帅 通过合并 Pull Request !8580: Fix IC Slot任务状态待办的 修改为已完成 8个月前

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
7387629 openharmony ci 1656582662 1751133 lastingman 1693451857
1
https://gitee.com/openharmony/arkcompiler_ets_frontend.git
git@gitee.com:openharmony/arkcompiler_ets_frontend.git
openharmony
arkcompiler_ets_frontend
arkcompiler_ets_frontend

搜索帮助