Я действительно хочу использовать арифметику с плавающей запятой в модуле ядра Linux, просто для этого. Я не хочу ничего делать, просто используйте триггерные инструкции x87 и/или инструкцию sqrt, а затем присвойте результат переменной. Вот и все. До сих пор я пытался:Несоответствие типа операнда в встроенной сборке x87 в модуле ядра Linux
float sqroot(float arg){
float returnValue;
asm(
"fld %1\n"
"fsqrt\n"
"fst %0"
:"=r"(returnValue)
: "r"(arg)
);
return returnValue;
}
Это с треском проваливается и дает следующее сообщение об ошибке:
Error: operand type mismatch for `fld'
Error: operand type mismatch for `fst'
Любые и вся помощь будет оценена.
Whaaaaaat? Это не рекомендательный вопрос, у него просто плохой титул. Голосование для повторного открытия. – immibis
Заголовок был изменен, чтобы более точно соответствовать содержанию вопроса и не представлял собой простую рекомендацию для учебника. –
Согласен. Это законный вопрос. –