Свързани въпроси 'abi'

Как да демонтирам C++ име в clang (или gcc)?
Опитвам се да напиша бърз и мръсен деманглер за clang. Намерих част от код , който използва abi::__cxa_demangle , но не мога да разбера коя заглавка изисква. Очевидният избор е ABI.h , но: demangle.cpp:2:10: fatal error: 'ABI.h' file not...
5097 изгледи
schedule 12.10.2022

Visual C++ x86 ABI: как VC++ връща стойност?
Знам, че 1/2/4-байтови цели числа се връщат в eax , а 8-байтови цели числа се връщат в eax:edx . Между другото, как се връщат 4/8/16-байтови стойности с плаваща запетая (Може би си спомням, че long double може да е 16 байта..) в...
169 изгледи
schedule 18.11.2023

указател към va_list в amd64 ABI
Имам притеснения относно различни функции под Linux amd64 (x86_64). Моят пример компилира и работи добре на linux i386 (ia32), но когато е създаден за linux amd64, GCC създава такива грешки: stdarg.c: In function ‘vtest’: stdarg.c:21:5:...
1653 изгледи
schedule 13.12.2023

Могат ли вградените пространства от имена да се използват за поддържане на обратна съвместимост в споделена библиотека?
Обосновката за вградените пространства от имена на C++ е едновременно изходен код и двоична съвместимост (вижте статията на Herb Sutter, свързана в N2535 ), но не успях да намеря добри примери за запазване двоична съвместимост за съществуващи...
473 изгледи
schedule 16.11.2022

Как Enum разпределя памет на C?
Опитвам се да работя с език C и Assembly (intelx8086). Аз също използвам един клас, който е внедрен от мой приятел. Има typedef enum data_10 {a=0,b=7,c=10,} data_10_type; Искам да работя с този клас побитово (известен още като...
9547 изгледи
schedule 02.03.2024

Как да инструктирам компилатора да генерира псевдоним за виртуална функция?
Вижте този въпрос за предистория. По принцип имам следната дефиниция на клас class MyClass { virtual int foo4(double, int); }; Има ли начин да инструктирам компилатора да генерира два символа, които биха се разрешили на foo4 ?...
475 изгледи
schedule 27.03.2024

Какъв е форматът на структурата x86_64 va_list?
Някой има ли справка за представянето на va_list в x86_64 ABI (този, който се използва в Linux)? Опитвам се да отстраня грешки в някакъв код, където стекът или аргументите изглеждат повредени и наистина би помогнало да разбера какво трябва да...
16930 изгледи
schedule 07.05.2024

Конвенция за повикване от ARM към C, NEON се регистрира за запазване
Има подобна публикация , която обхваща обикновените регистри. Ами регистрите NEON. Доколкото си спомням, или горната половина, или долната половина на регистрите трябва да бъдат запазени при извиквания на функции. Никъде не мога да намеря тази...
5638 изгледи
schedule 22.05.2024