2011-06-18 25 views
5

调用约定这里是LLVM's doc "langref"文:LLVM对GHC

“CC 10” - GHC约定专门为格拉斯哥Haskell编译(GHC)使用

这调用约定已经实施。它通过寄存器中的所有内容,通过禁用被调用保存寄存器达到极限。这种调用约定不应该被轻率使用,而只能用于特定情况下,例如寄存器的替代品,在执行函数式编程语言时经常使用的性能技术。目前只有X86支持这种约定,并且它具有以下限制:

  • 在X86-32上最多只支持4位类型参数。不支持浮点类型。
  • 在X86-64上最多只支持10位类型参数和6个浮点参数

问:

  1. 不 “寄存器钉住” 装置或指 “在寄存器通过一切”,可能的。

  2. 什么是“4位类型参数”?我刚刚在英特尔的IA手册中搜索,但没有找到任何东西。它是英特尔CPU的一项功能吗?

+2

嗯。我认为这是“最多4个(位型)参数”,而不是“(4位型)参数”我敢打赌,这是指整数值直到机器字大小,尽管我从未听说过任期 – Dirk

+0

@Dirk:我认为你是对的。我应该尽快将我的Lexer升级为英语...... – Nybble

回答