LLVM的GHC调用约定

| 这是LLVM的文档“ langref \”中的文本:   \“ cc 10 \”-GHC公约      该调用约定已专门为格拉斯哥Haskell编译器(GHC)使用而实现。它通过寄存器中的所有内容,通过禁用被调用者保存寄存器来达到极限。不应轻易使用此调用约定,而应仅在特定情况下使用该调用约定,例如在实现功能编程语言时经常使用的寄存器锁定性能技术的替代方法。目前,只有X86支持此约定,并且具有以下限制:         在X86-32上仅支持最多4位类型的参数。不支持浮点类型。   在X86-64上,最多仅支持10位类型参数和6个浮点参数。    问: “寄存器固定”是否意味着或指代“将所有内容传递给寄存器”。 什么是“ 4位类型参数”?我只是在英特尔的IA手册中进行了搜索,但没有找到任何东西。它具有Intel CPU的功能吗?     
已邀请:
         \“寄存器固定\”似乎是指将特定的东西分配给特定的硬件寄存器;请参阅这些GHC LLVM后端说明的“注册固定”部分和链接的讨论。 Dirk是正确的-您可以在定义这些约定的LLVM tblgen代码中清楚地看到它(查找
CC_X86_64_GHC
CC_X86_32_GHC
)。     

要回复问题请先登录注册