От ПСАБИ x86-64:
9.1 C ++
Для C ++ ABI мы будем использовать IA-64 C ++ ABI и соответственно создавать его экземпляры.
Текущий проект этого ABI доступен по адресу:
Почему бы не разработать свой собственный ABI?
Потому что «Itanium» C ++ ABI разработан как универсальный или, по крайней мере, обобщаемый. квотирование вступление:
В общем, этот документ написан как общая спецификация, которая может использоваться реализациями C ++ на различных архитектурах. Тем не менее, он содержит специфичный для процессора материал для 64-разрядной ABI Itanium, идентифицированный как таковой. В тех случаях, когда описывается структура структурированных данных, мы обычно принимаем размеры элементов Itanium psABI. Реализация 32-разрядного ABI обычно просто изменяет размеры элементов соответствующим образом (то есть указатели и длинные целые становятся 32-разрядными), но иногда для компактности требуется изменение порядка, и мы отмечаем более существенные изменения.
Фраза «создать соответствующий экземпляр» относится к адаптациям, необходимым для корректировки предположений о Itanium psABI для использования с x86-64 psABI.
Других решений пока нет …