【发布时间】:2011-03-15 03:57:09
【问题描述】:
我在 Windows 下使用 LLVM,只是想通过构建一些示例程序来更好地理解它。目前,我正在研究 HowToUseJIT。我注意到,当我运行 64 位时,我得到一个入口点,其中包含一些看起来非常疯狂的代码。它将rsi、rdi和xmm6-xmm15保存在堆栈上;然后设置 rax 和 rcx;然后在最终调用调用链中的下一个函数之前恢复所有先前保存的值。
这样做有充分的理由吗?或者这是否表明 Windows x64 上的 LLVM 还没有为黄金时段做好准备?
编辑:这是 LLVM 2.8。我刚刚下载了当前在 2.9 分支上的内容,但没有显示相同的行为。
【问题讨论】: