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

10
C11 Atomic Acquire / Release и x86_64 отсутствие согласованности загрузки / хранения?

Я борюсь с разделом 5.1.2.4 стандарта C11, в частности с семантикой Release / Acquire. Я отмечаю, что https://preshing.com/20120913/acquire-and-release-semantics/ (среди прочих) заявляет, что: ... Семантика релиза предотвращает переупорядочение памяти релиз-релиза с любой предшествующей ему...

10
Почему компиляторы настаивают на том, чтобы использовать регистр, сохраненный вызываемым пользователем?

Рассмотрим этот код C: void foo(void); long bar(long x) { foo(); return x; } Когда я компилирую его в GCC 9.3 с помощью -O3или -Os, я получаю это: bar: push r12 mov r12, rdi call foo mov rax, r12 pop r12 ret Выходные данные из clang идентичны, за исключением того, что они выбраны rbxвместо...