内存
公开「有」
文言:客体执行器二号之门:底层模式之豫言所写,解释普通豫言所出之 WasmGC 程序。汉语:客体执行器二号入口(底层模式)。宿主把客体模块放在 0x10000 起的窗口、长度写到 0x408,再调用导出的 启动:解析模块、建立各区、初始化全局与元素与数据、挂载持久文件系统,然后运行测试约定的导出函数(名字在 0x2400,缺省为 _start;参数在 0x2440 起)并打印结果。
文言:内存之上限约二千兆字节(三万二千七百六十七页),任其按需而长;取此而不取四千兆者,使址皆小于二之三十一次方,有号之比较无误。裸机之内核唯供五百一十二页,故页上限依平台而定。汉语:线性内存上限声明为约 2 GiB(32767 页,按需增长),让原生宿主能运行编译器这类大程序(1 GiB 时预编编译器并行编译曾“堆内存不足”);不取 4 GiB,是为了让地址都小于 2^31,执行器里的有符号比较不出错。裸机内核只提供 512 页(降级按裸机上限截断),所以堆用的页上限(决定标记位图大小)按平台取:原生 32767,裸机 512。
数据区
公开「有」
暂无说明。
解析模块
公开化「有」而「有」
暂无说明。
挂载磁盘
公开化「有」而「有」
暂无说明。
装箱返回值
公开化「整数」而化「整数」而「整数」
文言:请求之办:解释循环因请求而退出,入口于此代办,办毕自所存之现场续行。汉语:驱动循环:办请求(加载模块:读实例号写回占位槽;装箱结果:把调用导出的返回值装箱写回占位槽,无结果者补一个装箱的零);处理请求们:解释循环退出后若有请求,就办理、再用 状态_续* 里存的现场重新进入解释循环,直到没有请求(最外层函数真正返回,或续行指令针为零)为止。
办请求
公开化「整数」而化「整数」而「整数」
暂无说明。
处理请求们
公开化「整数」而「整数」
暂无说明。
压测试参数
公开化「整数」而化「整数」而化「整数」而「整数」
暂无说明。
打印结果们
公开化「整数」而化「整数」而化「整数」而「有」
暂无说明。
启动一次
公开化「有」而「有」
文言:启动一次:解析模块、建诸区、初始化、挂载磁盘,行所约之导出函数而印其果;若本任务已被换成新程序(待重启)或为子任务,则不印果。凡以取区域取常驻之区者(底层句柄之表、原生后端之暂存),皆须在初始化堆之前,盖堆起即区域之顶,其后取区域则与堆相叠。汉语:启动一次:完整走一遍启动流程。凡是用 取区域 取常驻缓冲的初始化(底层句柄表、原生后端暂存区)都必须放在 初始化堆 之前:初始化堆 把区域顶设成堆的起点,之后再 取区域 会与堆对象重叠。子任务不打印函数结果;解释循环因待重启退出后,直接返回交给启动循环。
启动循环
公开化「有」而「有」
文言:启动之循环:启动一次毕,若待重启则清状态格而再启动,直至无待重启。汉语:启动循环:每次 启动一次 返回后检查 状态_待重启(新程序长度):非零则做 重启准备(清状态格、写回模块长度)再启动一次;这是子进程“换成新程序”的落脚处。
导出:启动:0:0
公开化「有」而「有」
暂无说明。
浮点指令自检
公开化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而「有」
文言:浮点指令之测:以合成之值栈召 执行浮点 或 浮饱和截断。汉语:Wasm 浮点指令自检:把甲、乙放到测试栈(浮槽_测栈)上,按操作码是一元还是二元决定栈针,调 执行浮点(运算 = 256 + Wasm 操作码,例如 f64.add 0xA0 传 416)或 浮饱和截断(运算 = 512 + 0xFC 子操作码),把结果槽拷到 浮槽_果。陷阱以退出码 125 结束(宿主夹具捕获)。
导出:浮点运算:5:0
公开化「整数」而化「整数」而化「整数」而化「整数」而化「整数」而「有」
文言:软浮点之测:宿主可直召此门以校双精度之算。汉语:软浮点自检入口(Node 夹具随机对照 V8 的双精度用;裸机不用):运算 0 加、1 减、2 乘、3 除(甲、乙为双精度的低高字),4 整数转浮点(甲为 64 位整数),5 浮点转整数(甲为双精度),结果在 浮槽_果(0x2590)起的 8 字节;7 字符串转小数(甲为串址,乙为串长),6 小数转定点六位串(甲为双精度),串在 浮串缓冲,长度在 浮槽_果 低字;运算 ≥ 256:Wasm 浮点指令(256 加操作码,512 加 0xFC 子操作码),见 浮点指令自检。