自学内容网 自学内容网

Mono里运行C#脚本31—mono_arch_create_generic_trampoline

前面已经分析调用创建跳板代码的函数,由于跳板代码是不同CPU架构不一样,所以需要根据不同CPU架构来编写代码。在这里主要分析AMD64架构的跳板代码,如果你需要其它架构的代码,请自己去github上去查看。

guchar*
mono_arch_create_generic_trampoline (MonoTrampolineType tramp_type, MonoTrampInfo **info, gboolean aot)
{
const char *tramp_name;
guint8 *buf, *code, *tramp, *br [2], *r11_save_code, *after_r11_save_code, *br_ex_check;
int i, lmf_offset, offset, res_offset, arg_offset, rax_offset, tramp_offset, ctx_offset, saved_regs_offset;
int r11_save_offset, saved_fpregs_offset, rbp_offset, framesize, orig_rsp_to_rbp_offset, cfa_offset;
gboolean has_caller;
GSList *unwind_ops = NULL;
MonoJumpInfo *ji = NULL;
const int kMaxCodeSize = 630;

if (tramp_type ==

原文地址:https://blog.csdn.net/caimouse/article/details/145241094

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!