Объясните, пожалуйста, что такое ABI, EABI в отношении ARM и x86

nikola1956

Читаю Википедию, не могу пока уловить общего смысла, что такое ABI (двоичный интерфейс приложений) и EABI? И какая связь этих сущностей с архитектурой процессоров ARM и x86? И какие вообще бывают сейчас архитектуры? Поделитесь, пожалуйста, кто знает, как ухватить общую идею всех этих штук в их взаимосвязи друг с другом?

vall

почитай что-то кроме википедии

yroslavasako

А есть где-нибудь подробное понятное объяснение и классификация армовских архитектур? А то я помню обсуждения кросскомпиляции под арм в конфе генту, где пытались разобраться в трёх разных типах хардварного ускорения арифметики.

salamander

Ответы на ваши вопросы есть на дебиановской вики. Ну и первоисточник тоже бывает полезно почитать ( http://infocenter.arm.com ).
про EABI
Strictly speaking, both the old and new ARM ABIs are subsets of the ARM EABI specification, but in everyday usage the term "EABI" is used to mean the new one described here and "OABI" or "old-ABI" to mean the old one.
про флоаты
"soft"
Full software floating point - compiler should refuse to generate a real FPU instruction and -mfpu= is ignored.
FPU operations are emulated by the compiler
Function calls are generated to pass FP arguments (float, double) in integer registers (one for float, a pair of registers for double)
"softfp"
Hardware floating point using the soft floating point ABI
To reiterate, function calls are generated to pass FP arguments in integer registers
Compiler can make smart choices about when and if it generates emulated or real FPU instructions depending on chosen FPU type (-mfpu=)
This means soft and softfp code can be intermixed
"hard"
Full hardware floating point.
FP arguments are passed directly in FPU registers
Cannot possibly run without the FPU defined in -mfpu= (or a superset of the FPU defined, where relevant)
FPU instructions could be emulated by the kernel so that FPU-less systems could run with this ABI but as far as we know this does not exist
No function prologue or epilogue requirements for FP arguments, no pipeline stalls, maximum performance (just like in PowerPC and MIPS)
Оставить комментарий
Имя или ник:
Комментарий: