开发者社区 问答 正文

CHECK_EXCEPTION宏是如何判断结果是否存在异常的?

CHECK_EXCEPTION宏是如何判断结果是否存在异常的?

展开
收起
萝卜丝丸子 2024-07-22 21:42:16 24 分享 版权
1 条回答
写回答
取消 提交回答
  • CHECK_EXCEPTION宏首先通过MOV_X_I指令在tmp寄存器中设置一个异常标记(如(uint64_t)JS_TAG_EXCEPTION<<56),然后使用CMP_X_X_S_I指令将调用结果(存储在reg寄存器中)与tmp寄存器中的异常标记进行比较。如果结果不相等(NE),则跳转到异常处理代码(通过B_C_L指令实现,跳转的字节数是4 * sizeof(uint32_t),即16字节,这取决于具体的跳转表和指令布局)。如果相等,则不跳转,继续执行后续代码

    2024-07-22 22:36:47
    赞同 展开评论
问答地址: