Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Соглашение Fast call - C++

26.04.2014, 08:50. Просмотров 190. Ответов 1
Метки нет (Все метки)

Аргументы значений с плавающей запятой и двойной точностью передаются в XMM0 – XMM3 (до 4) с помощью гнезда целых чисел (RCX, RDX, R8 и R9), которое обычно и используется, в то время как гнездо кардинальных чисел отклоняется (см. пример) и наоборот.
,
Floating-point and double-precision arguments are passed in XMM0 – XMM3 (up to 4) with the integer slot (RCX, RDX, R8, and R9) that would normally be used for that cardinal slot being ignored (see example) and vice versa.
. Как это вообще понять?
__m128 types, arrays and strings are never passed by immediate value but rather a pointer is passed to memory allocated by the caller. Structs/unions of size 8, 16, 32, or 64 bits and __m64 are passed as if they were integers of the same size. Structs/unions other than these sizes are passed as a pointer to memory allocated by the caller. For these aggregate types passed as a pointer (including __m128), the caller-allocated temporary memory will be 16-byte aligned.
Что такое __m128 и __m64?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2014, 08:50     Соглашение Fast call
Посмотрите здесь:

C++ Оператор delete(ошибка) - free(): invalid next size (fast): 0x098f7008 ***
Call of nonfunction C++
C++ Call of nonfunction
C++ Abiguous call to overloaded function
Ошибка E2314 Call of nonfunction C++
exceptions (no matching function for call to .) C++
Шаблоны no match for call to C++
C++ Как зовут соглашение о вызовах для функции main консольного Window x 64 приложения?
C++ Ошибка: no matching function for call to
Лицензионное соглашение для программы C++
C++ Call to undefined function
No matching function to call to C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1603 / 995 / 118
Регистрация: 27.09.2009
Сообщений: 1,918
Завершенные тесты: 1
26.04.2014, 09:22     Соглашение Fast call #2
Цитата Сообщение от taras atavin Посмотреть сообщение
Как это вообще понять?
Насколько я понимаю, достаточно просто. Если первый параметр целый, он передаётся в регистре RCX, а регистр XMM0 игнорируется. Если он вещественный, то передаётся в XMM0, а RCX игнорируется. Аналогично с тремя следующими, они передаются в соответствующих регистрах. Остальное, как я понимаю, уже размещается в памяти, на стеке.
Цитата Сообщение от taras atavin Посмотреть сообщение
Что такое __m128 и __m64?
Типы данных, используемые SIMD-расширениями процессора (SSE и далее).
Yandex
Объявления
26.04.2014, 09:22     Соглашение Fast call
Ответ Создать тему
Опции темы

Текущее время: 03:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru