Вопросы по теме 'abi'
Как выставить список STL через границу DLL?
У меня есть DLL, которой необходимо получить доступ к данным, хранящимся в контейнерах STL в хост-приложении. Поскольку C++ не имеет стандартного ABI, а я хочу поддерживать разные компиляторы, интерфейс между приложением и DLL в основном должен...
7312 просмотров
schedule
15.03.2024
почему выравнивание структуры данных важно для производительности?
Может ли кто-нибудь дать мне короткое и правдоподобное объяснение того, почему компилятор добавляет отступы к структурам данных, чтобы выровнять его члены? Я знаю, что это сделано для того, чтобы ЦП мог более эффективно обращаться к данным, но я не...
10927 просмотров
schedule
03.05.2024
Запутаться с соглашением о вызовах ABI и аркой
Я путаюсь со всеми этими терминами:
ABI, соглашение о вызовах и аппаратная архитектура.
ABI связан с архитектурой: x86-64 имеет другой ABI, чем i386. Но тогда вы также можете определить свое собственное соглашение о вызовах cdecl...
Итак,...
249 просмотров
schedule
06.06.2023
Передовой опыт и семантика вложенных функций пространства имен и использование extern C
Я создаю библиотеку C++ с интерфейсом C-ABI.
Вот как GCC обрабатывает квалификатор extern "C" в отношении искажения:
namespace x {
extern "C" int monkey(int x) {
return 1;
}
int chimpanzee(int x) {
return 1;
}...
461 просмотров
schedule
07.11.2022
Почему логическое значение имеет размер 1 байт, а не 1 бит?
In C++,
Почему логическое значение имеет размер 1 байт, а не 1 бит?
Почему нет таких типов, как 4-битные или 2-битные целые числа?
Я пропускаю вышеперечисленные вещи при написании эмулятора для процессора.
69034 просмотров
schedule
24.09.2022
Как функции vararg узнают количество аргументов в машинном коде?
Как функции с переменным числом аргументов, такие как printf , могут узнать количество полученных аргументов?
Очевидно, что количество аргументов не передается как (скрытый) параметр (см. пример вызова printf на ассемблере ).
В чем хитрость?
6839 просмотров
schedule
03.07.2022
Совместимость ABI интерфейсов (абстрактных классов) с другими виртуальными изменениями
Остается ли ABI представления класса стабильным, даже если в производном классе внесены другие изменения, в том числе виртуальные?
То есть, скажем, у меня есть интерфейс InterfaceA (абстрактный класс с множеством чистых виртуальных функций) и...
1501 просмотров
schedule
19.10.2023
32-битные указатели с x86-64 ISA: почему бы и нет?
Набор инструкций x86-64 добавляет больше регистров и другие улучшения, помогающие оптимизировать исполняемый код. Однако во многих приложениях увеличенный размер указателя является бременем. Дополнительные неиспользуемые байты в каждом указателе...
1505 просмотров
schedule
25.07.2023
Модуль ядра Linux ABI (x86)
Я ищу официальное определение ABI, используемого для вызовов в модулях ядра на x86. Недавно я заглянул в скомпилированный модуль и с удивлением обнаружил, что:
он использует регистры для передачи первых трех аргументов ( eax , edx и ecx )....
902 просмотров
schedule
24.09.2023
Несколько вопросов о юридических аргументах для printf(%s, )
Я создаю модифицированную реализацию printf и не уверен в ответах на эти вопросы.
Ноль работает как нулевая строка? (Разрешено ли printf("%s", 0) ?)
Я предполагаю, что нет, потому что 0 - это int . Но тогда это вызывает этот вопрос:...
2158 просмотров
schedule
20.08.2022
Как вызвать исключение из C++, которое вызовет обработчики исключений сценариев
Я находил фрагменты этого ответа в Интернете, но не кристально чистое решение.
Вот что я пытаюсь сделать. 1) Создайте простой объект ATL. 2) Добавьте к этому объекту метод, который возвращает BOOL, а не HRESULT. Вызывающий хочет возвращать...
411 просмотров
schedule
04.08.2022
Каковы настоящие требования ELF TLS ABI для каждой архитектуры процессора?
Документ Ульриха Дреппера о локальном хранилище потоков описывает TLS ABI для нескольких различных архитектур ЦП, но Я считаю его недостаточным в качестве основы для реализации TLS по двум причинам:
В нем отсутствует ряд важных арок, таких как...
1116 просмотров
schedule
21.08.2022
где amd64 psABI?
Раньше psABI AMD64 размещался на x86-64.org.
У меня есть копия pdf-файла, и в нем прямо сказано:
Спецификация архитектуры доступна в Интернете по адресу http://www.x86-64.org/documentation .
но http://www.x86-64.org уже давно не...
3117 просмотров
schedule
04.08.2022
В чем разница раздела и сегмента в формате файла ELF
Из вики Executable and Linkable Format :
Сегменты содержат информацию, необходимую для выполнения файла во время выполнения, а разделы содержат важные данные для связывания и перемещения. Любой байт во всем файле может принадлежать не более чем...
33826 просмотров
schedule
04.12.2022
Является ли ABI частью стандарта C?
Мне кажется, что библиотеки C почти никогда не сталкиваются с проблемами смешивания библиотек, скомпилированных разными версиями или (иногда) даже разными компиляторами, и что многие языки, по-видимому, могут взаимодействовать с библиотеками C либо...
426 просмотров
schedule
26.05.2022
Как настроить IBM Worklight Studio для сборки для устройств ARM и MIPS?
Я использую подключаемый модуль Worklight Studio Developer Edition для Eclipse IDE Juno JAVA EE для тестирования создания гибридных приложений, и я пытаюсь создать и развернуть его на устройстве на базе Android MIPS. Устройства и эмуляторы ARM...
860 просмотров
schedule
24.06.2023
Ограничения выравнивания параметров Visual Studio и Windows x64 ABI
С Visual C++ на WIN32 существует давняя проблема с функциями с 4 или более параметрами SSE, например.
__m128i foo4(__m128i m0, __m128i m1, __m128i m2, __m128i m3) {}
выдает ошибку:
align.c(8) : error C2719: 'm3': formal parameter with...
1002 просмотров
schedule
08.09.2022
Как передаются параметры при вызове Printf из 64-битного asm?
Я снова учусь языку ассемблера, и единственная проблема, с которой я столкнулся до сих пор, заключалась в вызовах C. Книга, которая у меня есть, ориентирована на 32-битную, а я работаю на 64-битной. Очевидно, существует большая разница в соглашениях...
6169 просмотров
schedule
22.04.2023
Какие платформы имеют несовместимые ABI для C и C++?
Мне только что стало известно, что в стандарте C++ говорится, что функции C и C++ имеют разные и несовместимые типы, даже если их сигнатуры типов одинаковы (для получения дополнительной информации см. этот вопрос ). Это означает, что технически вам...
587 просмотров
schedule
31.01.2023
передача структур С++ без vtables через границу DLL?
Передача классов через границы DLL — плохая идея из-за неопределенного макета виртуальной таблицы в C++, но что, если я явно задаю соглашение о вызовах и избегаю виртуальных функций и наследования?
Другими словами, могу ли я безопасно передавать...
1981 просмотров
schedule
04.03.2024