Я вперше помітив у 2009 році, що GCC (принаймні, на моїх проектах і на моїх машинах) має тенденцію генерувати помітно швидший код, якщо я оптимізую розмір ( -Os) замість швидкості ( -O2або -O3), і з тих пір мені цікаво чому. Мені вдалося створити (досить нерозумний) код, який показує цю дивовижну …
У мене є довільний перелік .NET-збірок. Мені потрібно програмно перевірити, чи була створена кожна DLL для x86 (на відміну від x64 чи будь-якого процесора). Чи можливо це?
Я читав про 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; } А потім генерувати код мови збірки за …
Фон: Оптимізуючи деякий код Pascal із вбудованою мовою збірки, я помітив непотрібну MOVінструкцію та видалив її. На мій подив, видалення непотрібної інструкції призвело до уповільнення моєї програми . Я виявив, що додавання довільних, марних MOVінструкцій ще більше підвищує продуктивність . Ефект є нестабільним, і зміни ґрунтуються на порядку виконання: ті …
Наступні посилання пояснюють умови використання системних викликів 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?
Я вважаю, що знайшов помилку в GCC під час впровадження програми PCG PRNG O'Neill. ( Початковий код у Провіднику компілятора Godbolt ) Після множення oldstateна MULTIPLIER(результат, збережений у rdi), GCC не додає цього результату INCREMENT, INCREMENTзамість цього, movabs'ing в rdx, який потім використовується як повернене значення rand32_ret.state Мінімальний приклад відтворення …
Я хочу визначити, чи відповідає власна збірка як x64 або x86 з керованої програми коду ( C # ). Я думаю, що він повинен бути десь у заголовку PE, оскільки завантажувач ОС повинен знати цю інформацію, але я не зміг її знайти. Звичайно, я вважаю за краще це робити в …
Іржа має 128-бітні цілі числа, вони позначаються типом даних i128(і u128для непідписаних вкладишів): let a: i128 = 170141183460469231731687303715884105727; Як Rust змушує ці i128значення працювати в 64-бітній системі; наприклад, як це робить арифметику на них? Оскільки, наскільки я знаю, значення не може вміститися в одному реєстрі процесора x86-64, чи компілятор якось …
У x86-64 екскурсії по посібниках Intel я читав Мабуть, найдивовижніший факт полягає в тому, що така інструкція, як MOV EAX, EBXавтоматично нулює верхні 32 біти RAXрегістру. Документація Intel (3.4.1.1 регістри загального призначення в 64-бітному режимі в посібнику з базової архітектури), цитована в тому ж джерелі, говорить нам: 64-бітні операнди генерують …
У мене є невелика дилема щодо того, як налаштувати мої візуальні студії для багатоцільового націлювання. Передумови: c # .NET v2.0 з p / викликом в сторонні 32-бітні DLL, SQL compact v3.5 SP1, з проектом Setup. Зараз цільова платформа встановлена на x86, тому її можна запустити на Windows x64. Компанія третьої …
AMD має специфікацію ABI, яка описує конвенцію про виклики для використання на x86-64. Усі ОС дотримуються цього, за винятком Windows, яка має власну умову викликів x86-64. Чому? Хтось знає технічні, історичні чи політичні причини цієї різниці, чи це суто питання НІХсиндрому? Я розумію, що різні ОС можуть мати різні потреби …
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …
Я намагаюся встановити службу Windows за допомогою InstallUtil.exe і отримую повідомлення про помилку System.BadImageFormatException: Не вдалося завантажити файл або збірку ' {xxx.exe}' або одну з її залежностей. Була зроблена спроба завантажити програму з неправильним форматом. Що дає? EDIT: (Not by OP) Повне повідомлення, вилучене з дублювання, отримує більше показів [для …
Я роблю деяку критичну роботу на C ++, і зараз ми використовуємо цілі обчислення для проблем, які за своєю суттю є плаваючою точкою, оскільки "це швидше". Це викликає цілу масу роздратованих проблем і додає багато дратівливого коду. Тепер я пам'ятаю, як читав про те, як обчислення з плаваючою точкою були …