豫豫言文档API ATLAS
入口包说明.html
62 模块1862 名称
← 全部模块

模块 / 62

预编接口。豫

预编接口。豫

26公开名称

状态_预编异常

公开
「整数」

文言:预编之接口:客体之 WasmGC 函数预编为整数之函数,并入执行器而同降为机器码;彼等以此诸导出之函数为运行时(名以“预编_”冠之)。值皆居值栈(与解释同布:每槽八字节,引用与三十二位整数居低字),故保守之回收如常见之。预编之函数形如(帧)→无:参数与局部自帧起,操作数其上;调用者置参数于栈顶,被调者之帧即其起处,毕则诸结果自帧起。复杂之指令径呼解释器之处理函数,携其立即数于模块中之址。汉语:预编(路二乙档的第一版)接口:客体 WasmGC 模块的每个函数被转译成一个整数 Wasm 函数,并入执行器模块后一起降级为机器码;转译出的代码把这里这些导出函数(名字以“预编_”开头)当作运行时。所有值都放在值栈上(布局与解释器相同:每槽 8 字节,引用与 32 位整数在低字、高字为零),所以保守回收照常能看到它们。转译函数的形状是(帧)→ 无:参数与局部变量从帧起依次存放,操作数栈在其上;调用者把参数放在栈顶,被调用者的帧就从这些参数处开始,返回时各结果从帧起存放。结构、数组、类型转换、宽整数、浮点、访存、表与杂项指令直接调用解释器的处理函数,并把该指令立即数在模块字节中的地址传给它们。异常用标志传播:抛出时记下载荷并置 状态_预编异常,转译代码在每次调用之后检查它。预编派发 与 预编可用 的函数体在这里只是占位,转译器会换成真正的派发(按函数号调用转译函数)与常量 1。 文言:异常之标:非零则有异常正在传播。汉语:预编异常标志:非零表示有异常正在向外传播(载荷在 状态_例外载荷,个数与标签在 状态_例外数、状态_例外标签)。

导出:预编派发

公开
化「整数」而化「整数」而「有」

文言:占位:转译器换其体。汉语:占位函数:转译器把函数体换成真正的派发与常量 1。

导出:预编可用

公开
化「有」而「整数」

暂无说明。

导出:预编_调用导入

公开
化「整数」而化「整数」而「整数」

暂无说明。

导出:预编_GC

公开
化「整数」而化「整数」而化「整数」而「整数」

暂无说明。

导出:预编_宽浮

公开
化「整数」而化「整数」而「整数」

暂无说明。

导出:预编_访存

公开
化「整数」而化「整数」而化「整数」而「整数」

暂无说明。

导出:预编_杂项

公开
化「整数」而化「整数」而化「整数」而「整数」

暂无说明。

导出:预编_间接

公开
化「整数」而化「整数」而化「整数」而「整数」

文言:间接之调:自表取函数号而验其签名。汉语:间接调用的目标:从表里按栈顶的元素号取函数号并检查签名(新栈 指向该元素号所在的槽)。

导出:预编_表取

公开
化「整数」而化「整数」而「整数」

暂无说明。

导出:预编_表设

公开
化「整数」而化「整数」而「整数」

暂无说明。

导出:预编_致命

公开
化「整数」而「有」

文言:陷阱:一二八不可达,一二九空引用,一二四间接之调不合,一三五转换失败,一二七越界。汉语:致命陷阱:128 unreachable、129 空引用、124 空函数引用、135 类型转换失败、127 数组索引越界,其余为一般陷阱。

导出:预编_栈溢出

公开
化「有」而「有」

暂无说明。

导出:预编_i32除

公开
化「整数」而化「整数」而化「整数」而「整数」

暂无说明。

导出:预编_一元

公开
化「整数」而化「整数」而「整数」

文言:一元之术:一〇三前导零,一〇四尾随零,一〇五一计数。汉语:i32 一元运算:0x67 clz、0x68 ctz、0x69 popcnt。

导出:预编_属于

公开
化「整数」而化「整数」而化「整数」而「整数」

文言:引用属于某堆类型否,为 br_on_cast 与 ref.test 之用。汉语:引用是否属于某堆类型(br_on_cast 系列用):可空为 1 时 null 也算属于。

导出:预编_客页数

公开
化「有」而「整数」

暂无说明。

导出:预编_客增长

公开
化「整数」而「有」

暂无说明。

导出:预编_抛出

公开
化「整数」而化「整数」而「有」

文言:抛:自栈顶取载荷,记标签与个数,置异常之标。汉语:throw:从栈顶取该标签的参数个数个载荷槽拷进 状态_例外载荷,记下标签与个数,置 状态_预编异常。

导出:预编_再抛

公开
化「整数」而「有」

文言:再抛:自栈顶之异常对象取载荷。汉语:throw_ref:从栈顶的异常对象取出标签与载荷,置 状态_预编异常。

导出:预编_例外标签

公开
化「有」而「整数」

暂无说明。

导出:预编_取载荷

公开
化「整数」而「整数」

文言:捕:载荷拷至目址,清异常之标,返个数。汉语:catch:把载荷拷到目标地址,清除 状态_预编异常,返回个数。

导出:预编_例外引用

公开
化「整数」而「有」

文言:捕之引用:以载荷造异常之对象,书于栈针处。汉语:catch_ref / catch_all_ref:用当前载荷造异常对象(exnref),写到 栈针 处的槽,清除 状态_预编异常。分配前把 栈针 之后一槽记为回收的栈顶。

导出:预编_清异常

公开
化「有」而「有」

暂无说明。

预编运行函数

公开
化「整数」而化「整数」而「整数」

文言:以预编之码行一函数:帧即参数之起;毕而验异常。汉语:用预编代码运行一个函数(取代解释执行):参数已压在值栈上,帧 = 栈针 − 8×参数个数;调用派发后若仍有异常在传播,按未捕获异常以 137 退出;返回结果之后的新栈针。

运行或预编

公开
化「整数」而化「整数」而「整数」

文言:择途:有预编之码则行之,否则解释之。汉语:有预编代码就用它运行,否则解释执行。