Вопросы по теме 'abi'

Как выставить список STL через границу DLL?
У меня есть DLL, которой необходимо получить доступ к данным, хранящимся в контейнерах STL в хост-приложении. Поскольку C++ не имеет стандартного ABI, а я хочу поддерживать разные компиляторы, интерфейс между приложением и DLL в основном должен...
7312 просмотров
schedule 15.03.2024

почему выравнивание структуры данных важно для производительности?
Может ли кто-нибудь дать мне короткое и правдоподобное объяснение того, почему компилятор добавляет отступы к структурам данных, чтобы выровнять его члены? Я знаю, что это сделано для того, чтобы ЦП мог более эффективно обращаться к данным, но я не...
10927 просмотров

Запутаться с соглашением о вызовах 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 просмотров

Совместимость 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 просмотров
c abi
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 просмотров

Какие платформы имеют несовместимые ABI для C и C++?
Мне только что стало известно, что в стандарте C++ говорится, что функции C и C++ имеют разные и несовместимые типы, даже если их сигнатуры типов одинаковы (для получения дополнительной информации см. этот вопрос ). Это означает, что технически вам...
587 просмотров
schedule 31.01.2023

передача структур С++ без vtables через границу DLL?
Передача классов через границы DLL — плохая идея из-за неопределенного макета виртуальной таблицы в C++, но что, если я явно задаю соглашение о вызовах и избегаю виртуальных функций и наследования? Другими словами, могу ли я безопасно передавать...
1981 просмотров
schedule 04.03.2024