Переместить данные из регистра общего назначения в XMM

У меня есть некоторая функция Delphi с 64-битным ассемблерным кодом. Этот код ASM вызывает некоторую функцию. Я должен получить параметр из общего регистра, это нормально, но когда я пытаюсь переместить этот параметр в XMM (потому что параметр может быть значением с плавающей запятой), я получаю ошибку

POP RCX (я получил параметр из стека)

MOVQ XMM0, [RCX] // ошибка здесь

Согласно существующей логике, параметры функции находятся в стеке. Нет проблем с использованием POP. Но я не знаю тип параметра: если это число с плавающей точкой, я должен указать его в XMM0-XMM4. У меня вопрос: горячо ли делать это правильно? Используете какую-нибудь функцию преобразования? Я думаю, что нет никакой обработки исключений в ассемблере, чтобы пропустить исключение.

0 ответов

Другие вопросы по тегам