Сообщение Re[5]: Memory barrier не могу понять что это от 06.04.2023 12:35
Изменено 06.04.2023 13:00 Философ
Re[5]: Memory barrier не могу понять что это
Здравствуйте, okman, Вы писали:
O>sfence/lfence/mfence — это малость для другого. В машинный код для x86/x64 практически всегда вставляется инструкция типа xchg, xadd или что-то подобное.
Интересно, откуда инфа? Можно какие-нибудь доказательства, типа вот такой ссылки, ну или вот такой, или дизасм получающегося кода, или объяснение того, что именно будет делать функция типа
Я ОООчень бы хотел узнать, почему вы так думаете, откуда вы это взяли и где тут логика.
ЗЫ: прежде чем отвечать сходите по приведённым ссылкам.
O>sfence/lfence/mfence — это малость для другого. В машинный код для x86/x64 практически всегда вставляется инструкция типа xchg, xadd или что-то подобное.
Интересно, откуда инфа? Можно какие-нибудь доказательства, типа вот такой ссылки, ну или вот такой, или дизасм получающегося кода, или объяснение того, что именно будет делать функция типа
void Foo(){
Thread.MemoryBarrier();
}
Я ОООчень бы хотел узнать, почему вы так думаете, откуда вы это взяли и где тут логика.
ЗЫ: прежде чем отвечать сходите по приведённым ссылкам.
Re[5]: Memory barrier не могу понять что это
Здравствуйте, okman, Вы писали:
O>sfence/lfence/mfence — это малость для другого. В машинный код для x86/x64 практически всегда вставляется инструкция типа xchg, xadd или что-то подобное.
Интересно, откуда инфа? Можно какие-нибудь доказательства, типа вот такой ссылки, ну или вот такой, или дизасм получающегося кода, или объяснение того, что именно будет делать функция типа
Я ОООчень бы хотел узнать, почему вы так думаете, откуда вы это взяли и где тут логика.
ЗЫ: прежде чем отвечать сходите по приведённым ссылкам.
UPD: по своей же ссылке увидел
Т.е. если платформа не AMD64 будет действительно xchg. Но логики я тут всё равно не вижу.
И да, где теперь найти X86 но не X86_64?
O>sfence/lfence/mfence — это малость для другого. В машинный код для x86/x64 практически всегда вставляется инструкция типа xchg, xadd или что-то подобное.
Интересно, откуда инфа? Можно какие-нибудь доказательства, типа вот такой ссылки, ну или вот такой, или дизасм получающегося кода, или объяснение того, что именно будет делать функция типа
void Foo(){
Thread.MemoryBarrier();
}
Я ОООчень бы хотел узнать, почему вы так думаете, откуда вы это взяли и где тут логика.
ЗЫ: прежде чем отвечать сходите по приведённым ссылкам.
UPD: по своей же ссылке увидел
#elif defined(HOST_X86)
#define YieldProcessor() __asm { rep nop }
#define MemoryBarrier() MemoryBarrierImpl()
__forceinline void MemoryBarrierImpl()
{
int32_t Barrier;
__asm {
xchg Barrier, eax
}
}
Т.е. если платформа не AMD64 будет действительно xchg. Но логики я тут всё равно не вижу.
И да, где теперь найти X86 но не X86_64?