Вопросы с тегом «x86-64»

x86-64 - это 64-битное расширение архитектуры Intel x86.


6
Почему GCC генерирует код на 15-20% быстрее, если я оптимизирую размер вместо скорости?
Я впервые заметил в 2009 году, что GCC (по крайней мере, в моих проектах и ​​на моих машинах) имеет тенденцию генерировать заметно более быстрый код, если я оптимизирую для size ( -Os) вместо скорости ( -O2или -O3), и с тех пор я удивляюсь, почему. Мне удалось создать (довольно глупый) код, …


5
Почему GCC использует умножение на странное число при реализации целочисленного деления?
Я читал о div и mulсборочных операциях, и я решил , чтобы увидеть их в действии, написав простую программу в C: Файл деление.c #include <stdlib.h> #include <stdio.h> int main() { size_t i = 9; size_t j = i / 5; printf("%zu\n",j); return 0; } И затем генерирование кода на ассемблере …

4
Почему введение бесполезных инструкций MOV ускоряет сжатый цикл в сборке x86_64?
Задний план: При оптимизации кода на Pascal со встроенным языком ассемблера я заметил ненужную MOVинструкцию и удалил ее. К моему удивлению, удаление ненужных инструкций привело к замедлению работы моей программы . Я обнаружил, что добавление произвольных, бесполезных MOVинструкций еще больше повышает производительность . Эффект нестабилен и изменяется в зависимости от …

4
Каковы соглашения о вызовах для системных вызовов UNIX и Linux на i386 и x86-64
Следующие ссылки объясняют соглашения о системных вызовах x86-32 для UNIX (BSD-версия) и Linux: http://www.int80h.org/bsdasm/#system-calls http://www.freebsd.org/doc/en/books/developers-handbook/x86-system-calls.html Но каковы соглашения о системных вызовах x86-64 в UNIX и Linux?
147 linux  unix  assembly  x86-64  abi 

3
Возможная ошибка GCC при возврате структуры из функции
Я полагаю, что обнаружил ошибку в GCC при реализации PCG PRNG О'Нила. ( Исходный код в проводнике компилятора Годболта ) После умножения oldstateна MULTIPLIER(результат сохраняется в rdi), GCC не добавляет этот результат INCREMENT, перемещая INCREMENTвместо него значение rdx, которое затем используется как возвращаемое значение rand32_ret.state. Минимальный воспроизводимый пример ( Compiler …
133 c  gcc  assembly  x86-64  compiler-bug 

11
Как узнать, скомпилирован ли собственный DLL-файл как x64 или x86?
Я хочу определить, соответствует ли собственная сборка x64 или x86 из приложения с управляемым кодом ( C # ). Я думаю, что это должно быть где-то в заголовке PE, поскольку загрузчик ОС должен знать эту информацию, но я не смог ее найти. Конечно, я предпочитаю делать это в управляемом коде, …
133 c#  .net  winapi  64-bit  x86-64 

4
Как 128-битное целое число i128 в Rust работает в 64-битной системе?
Rust имеет 128-битные целые числа, они обозначаются типом данных i128(и u128для целых чисел без знака): let a: i128 = 170141183460469231731687303715884105727; Как Rust заставляет эти i128значения работать в 64-битной системе; например, как он делает с ними арифметические операции? Поскольку, насколько мне известно, значение не может поместиться в один регистр процессора x86-64, …

3
Почему инструкции x86-64 для 32-битных регистров обнуляют верхнюю часть полного 64-битного регистра?
В x86-64 Tour of Intel Manuals я прочитал Возможно, самым удивительным фактом является то, что такая инструкция, как MOV EAX, EBXавтоматически обнуляет старшие 32 бита RAXрегистра. В документации Intel (3.4.1.1 Регистры общего назначения в 64-битном режиме в ручной базовой архитектуре), цитируемой в том же источнике, говорится: 64-битные операнды генерируют 64-битный …

8
Ориентация как на 32-битную, так и на 64-битную версию с Visual Studio в одном решении / проекте
У меня небольшая дилемма относительно того, как настроить мои сборки визуальной студии для множественного таргетинга. Предыстория: c # .NET v2.0 с вызовом p / в сторонние 32-битные библиотеки DLL, SQL compact v3.5 SP1 с проектом установки. Прямо сейчас целевая платформа установлена ​​на x86, поэтому ее можно запускать в Windows x64. …

4
Почему Windows64 использует другое соглашение о вызовах, чем все другие операционные системы на x86-64?
У AMD есть спецификация ABI, в которой описывается соглашение о вызовах для использования на x86-64. Все операционные системы следуют ему, за исключением Windows, которая имеет собственное соглашение о вызовах x86-64. Зачем? Кто-нибудь знает технические, исторические или политические причины этой разницы, или это чисто синдром NIH? Я понимаю, что разные ОС …

10
Почему x86 уродлив? Почему он считается неполноценным по сравнению с другими? [закрыто]
В его нынешнем виде этот вопрос не подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, повлечет за собой дебаты, аргументы, опросы или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, снова открыть, …

15
System.BadImageFormatException: не удалось загрузить файл или сборку (из installutil.exe)
Я пытаюсь установить службу Windows с помощью InstallUtil.exe и получаю сообщение об ошибке System.BadImageFormatException: не удалось загрузить файл или сборку ' {xxx.exe}' или одну из его зависимостей. Была сделана попытка загрузить программу с неправильным форматом. Что дает? РЕДАКТИРОВАТЬ: (Не OP) Полное сообщение, извлеченное из дубликата, получает больше обращений [для удобства …

11
Вычисления с плавающей запятой и целочисленные на современном оборудовании
Я выполняю некоторую критическую для производительности работу на C ++, и в настоящее время мы используем целочисленные вычисления для задач, которые по своей сути являются плавающими, потому что «они быстрее». Это вызывает множество неприятных проблем и добавляет много надоедливого кода. Теперь я помню, как читал о том, как вычисления с …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.