Почему x86-64 использует IA-64 C ++ ABI? - PullRequest
0 голосов
/ 23 ноября 2018

С x86-64 psABI :

9.1 C ++

Для C ++ ABI мы будем использовать IA-64 C ++ ABI и соответственно создавать его экземпляры,Текущий проект этого ABI доступен по адресу:

http://mentorembedded.github.io/cxx-abi/

Почему бы не спроектировать свой собственный ABI?

1 Ответ

0 голосов
/ 23 ноября 2018

Потому что «Itanium» C ++ ABI разработан как универсальный или, по крайней мере, обобщаемый.Цитируя введение :

В общем, этот документ написан как общая спецификация, которая может быть использована реализациями C ++ на различных архитектурах.Тем не менее, он содержит специфичный для процессора материал для 64-разрядной ABI Itanium, идентифицированный как таковой.В тех случаях, когда описывается структура структурированных данных, мы обычно принимаем размеры элементов Itanium psABI.Реализация 32-разрядного ABI обычно просто изменяет размеры элементов соответствующим образом (т. Е. Указатели и длинные целые становятся 32-разрядными), но иногда для компактности требуется изменение порядка, и мы отмечаем более существенные изменения.

Фраза «создать соответствующий экземпляр» относится к адаптациям, необходимым для корректировки предположений Itanium psABI для использования с x86-64 psABI.

...