Соглашение о вызовах LLVM для GHC

Вот текст в документе LLVM "langref" :

"cc 10" - GHC Convention

Это соглашение о вызовах было специально реализовано для использования компилятором Glasgow Haskell (GHC). Он передает все в регистры, доходя до крайностей, чтобы добиться этого, отключив регистры сохранения вызываемого объекта. Это соглашение о вызовах не должно использоваться Однако только для определенных ситуаций, таких как альтернатива методике производительности закрепления регистров , часто используемой при реализации функциональных языков программирования. На данный момент только X86 поддерживает это соглашение и имеет следующие ограничения:

  • На X86 -32 поддерживает только до 4-битных параметров типа . Типы с плавающей запятой не поддерживаются.
  • В X86-64 поддерживает только до 10-битных параметров типа и 6 параметров с плавающей запятой .

Q:

  1. означает «закрепление регистров» или относится в "передает все в регистры", наверно.

  2. что такое "4-битные параметры типа"? Я просто искал в руководстве Intel IA, но ничего не нашел.это особенность процессора Intel?

7
задан Don Stewart 4 May 2012 в 17:00
поделиться