Результаты поиска по запросу "c"
_mm_testc_ps и _mm_testc_pd vs _mm_testc_si128
Как вы знаете, первые два относятся к спецификациям AVX, а вторая - к SSE4.1. Оба набора встроенных функций могут использоваться для проверки на равенство 2 векторов с плавающей точкой. Мой конкретный вариант использования: _mm_cmpeq_ps ...
На каких платформах целочисленное деление на ноль вызывает исключение с плавающей запятой?
В другом вопросе кто-то задавался вопросом, почему они получают «ошибку с плавающей запятой», хотя на самом деле в их программе на C ++ целочисленное деление на ноль. Вокруг этого возникла дискуссия, в которой некоторые утверждали, что ...
Блокирует манипулирование памятью с помощью встроенной сборки
Я новичок в низкоуровневых вещах, поэтому совершенно не понимаю, с какими проблемами вы можете столкнуться там, и я даже не уверен, правильно ли я понимаю термин «атомарный». Прямо сейчас я пытаюсь сделать простые атомарные блокировки вокруг ...
Возможно ли, что `fileno (stdout)! = 1` в системе POSIX?
Можетstdout дескриптор файла отличается от1 (STDOUT_FILENO [http://pubs.opengroup.org/onlinepubs/9699919799/functions/stdin.html]) при условииstdout не должен быть изменяемым lvalue [https://stackoverflow.com/a/586416/4279]? Например, ...
Самый быстрый способ умножения массива int64_t?
Я хочу векторизовать умножение двух выровненных массивов памяти. Я не нашел способа умножить 64 * 64 бит в AVX / AVX2, поэтому я просто развернул петлю и загрузил / сохранил AVX2. Есть ли более быстрый способ сделать это? Заметка Я не хочу ...
Используете LEA для значений, которые не являются адресами / указателями?
Я пытался понять, как работает инструкция вычисления адреса, особенно сleaq команда. Тогда я запутываюсь, когда вижу примеры использованияleaq делать арифметические вычисления. Например, следующий код C, long m12(long x) { return x*12; } В ...
Получает ли статический или динамический доступ к памяти быстрее?
Есть два способа размещения глобального массива в C: статическ char data[65536]; Динамически char *data; … data = (char*)malloc(65536); /* or whatever size */ Вопрос в том, какой метод лучше работает? И на сколько? Как вы понимаете, первый ...
C без знака долго, долго и imulq
Как кто-то новичок в сборке, я использую gcc для реверс-инжиниринга. Но теперь я столкнулся с какой-то забавной проблемой: я пытаюсь умножить два 64-битных целых числа на x86-64. C-код выглядит следующим образом: unsigned long long val(unsigned ...
Как получить доступ к структуре / переменным C из встроенного asm?
Рассмотрите следующий код: int bn_div(bn_t *bn1, bn_t *bn2, bn_t *bnr) { uint32 q, m; /* Division Result */ uint32 i; /* Loop Counter */ uint32 j; /* Loop Counter */ /* Check Input */ if (bn1 == NULL) return(EFAULT); if (bn1->dat == NULL) ...
ожет ли MOV x86 быть «бесплатным»? Почему я не могу воспроизвести это вообще?
Я продолжаю видеть, как люди утверждают, что инструкция MOV может быть бесплатной в x86 из-за переименования регистров. Для жизни я не могу проверить это ни в одном тестовом случае. Каждый тестовый пример, который я пробую, разоблачает это. ...