Вот это сдвигом того что после bgt — в начало, а того что до — в конец, и заменой bgt на ble преобразуется в цикл без безусловного перехода. Сам безусловный переход отправляется делать вхождение в середину цикла (команды ldr/cmp, которые мы переставили в конец). Итого при ровно том же самом размере получаем выигрыш в быстродействии. Претензия именно к этому.
Я неоднократно заявлял, что в настоящее время компилятор создает ассемблерный код ничуть не хуже программиста (правда, речь шла о ARM системе команд)
А вот не соглашусь. С того же годболта: godbolt.org/z/wBK0is. Зачем в 1ой функции cmp r3,#0? Зачем во 2ой функции внутри цикла постоянно(!) выполняются условный и безусловный переходы когда это очевидным способом сокращается до одного условного перехода в цикле, а вход в цикл идёт в его середину?
Ну всё же если у вас столько нагара что степень сжатия увеличилась от обычных 9..10 до дизельных 14-15, то это как минимум будет жёсткая и постоянная детонация.
Если вы под 'дизелингом' имеете в виду неглохнущие и дергающиеся при выключении зажигания карбюраторные моторы, то тут дело примерно вот в чём (пишу по памяти, термины скорее всего неправильные):
1. смесь продолжает подаваться, но обороты падают (заодно и давление на впуске растёт). Следовательно, сильно возрастает время нахождения смеси в сжатом-нагретом состоянии
2. В смеси идут специфические реакции пред-окисления (или как-то так), еще помню умные слова про пероксидные соединения. Это не горение, но какое-то тепло выделяется всё же.
3. за счёт этого двигатель несколько подпинывается с совсем уж низких оборотов, эффект пропадает, вращение опять замедляется и так в цикле.
Тогда покажите пример, когда в бензиновом двигателе смесь загорается сама, без калильного и искрового зажигания.
Как контр-пример (не совсем в тему, т.к. в нём нет бензина) приведу метано-дизели, которые сначала добавляют в воздух метан, потом эту смесь сжимают в обычном дизеле c обычной степенью сжатия, потом добавляют запальную (всего лишь!) порцию солярки, которая радостно загорается и поджигает смесь воздуха с метаном.
Вы знаете чем детонация отличается от зажигания от сжатия? Детонация — это когда у нас полный цилиндр горючей смеси и мы ее резко сжимаем. И, в какой-то момент, может случиться детонация и весь объем смеси внезапно воспламенится.
Это не детонация, это калильное зажигание.
Детонация — это когда процесс нормального сгорания, инициированный разрядом свечи, переходит во 'взрывное'.
Такое требование по широте диапазона регулирования ракетных двигателей было заложено впервые в мире». Общепринятая практика — использовать диапазон регулирования двигателя от 50% до 100% номинальной мощности.
Мне почему-то казалось, что в армах начиная с armv4 всё ок с бинарной совместимостью, если не брать во внимание fpu конечно же :)
Совместимость в userland между 32 и 64 битами — это как я понимаю заключается в том, что в одном и том же режиме процессора могут работать как 32битные exe, так и 64битные (если рассматривать ось с защитой памяти)? Всё равно же 2 комплекта либ надо иметь и 2 комплекта вызовов ядра?
Я вот кстати нашёл время ознакомиться с теми 'open-source' спецификациями на mips. И почему-то мне показалось, что бардака в mips сильно больше, чем в arm. Чего стоит только пачка убранных команд в release 6. А это — слом бинарной совместимости, и в лучшем случае, старые софты на новом железе будут тормозить (в худшем — не работать). Заглянул мимоходом в mips ABI (по ссылкам из гугла) — и там тоже бардак (мне так показалось). В этом смысле показателен пример всеми нелюбимого x86, который до сих пор блюдёт бинарную совместимость покрмере для userland'а. И в этом сильная сторона risc-v, когда они предлагают, по сути, начать с чистого листа. Правда, у меня есть подозрение, что они сначала наклепают кучу несовместимых и закрытых расширений системы команд, а потом всё вернётся в обычный бардак :)
Кого обманул VW? Все тесты он прошёл, а как определять выбросы 'вредных' веществ не на тестах (и какие они вообще должны быть не на тестах) вроде никакой стандарт не описывает.
Синтез 2-3 часа — это далеко не самые навороченные проекты, хех. Ну и еще некоторые тулзы (на букву Q) иногда немного давятся от количества ядер и не используют их все, так что самые-самые топовые компы не всегда спасают :)
Как знатока багов системдэ, спрошу вас да и просто всех кто знает: как сделать надёжный маунт NFS-директории по вайфаю (который коннектится после логина в иксы)? Раньше в убунтах проблем как-то не было, сейчас что ни пиши в /etc/fstab, какие опции по доке на mount ни давай, всё равно после логина и подъёма вафли шара недоступна некоторое время — минуты. Иногда приходится ручками делать sudo mount. Могу ошибаться, утверждая что вафля поднимается после логина а не сразу (минт 19).
А мне upstart вполне зашёл, нет того бардака c init.d, rcX.d, писать стартовые скрипты просто и работают они надёжно. В sysvinit приходилось мучаться с эклектичным синтаксисом баша и велосипедами на простые действия. Но между сисвинит и системгэ я выбираю первое :)
subs r3,r3,#1 уже выставил флаг нуля, нафиг его ещё раз генерировать при помощи cmp r3,#0? Претензия к этому.
.L8:
ldr r3, [sp, #4]
cmp r3, r2
bgt .L6
ldr r3, [sp, #4]
adds r3, r3, #1
str r3, [sp, #4]
b .L8
Вот это сдвигом того что после bgt — в начало, а того что до — в конец, и заменой bgt на ble преобразуется в цикл без безусловного перехода. Сам безусловный переход отправляется делать вхождение в середину цикла (команды ldr/cmp, которые мы переставили в конец). Итого при ровно том же самом размере получаем выигрыш в быстродействии. Претензия именно к этому.
А вот не соглашусь. С того же годболта: godbolt.org/z/wBK0is. Зачем в 1ой функции cmp r3,#0? Зачем во 2ой функции внутри цикла постоянно(!) выполняются условный и безусловный переходы когда это очевидным способом сокращается до одного условного перехода в цикле, а вход в цикл идёт в его середину?
Если вы под 'дизелингом' имеете в виду неглохнущие и дергающиеся при выключении зажигания карбюраторные моторы, то тут дело примерно вот в чём (пишу по памяти, термины скорее всего неправильные):
1. смесь продолжает подаваться, но обороты падают (заодно и давление на впуске растёт). Следовательно, сильно возрастает время нахождения смеси в сжатом-нагретом состоянии
2. В смеси идут специфические реакции пред-окисления (или как-то так), еще помню умные слова про пероксидные соединения. Это не горение, но какое-то тепло выделяется всё же.
3. за счёт этого двигатель несколько подпинывается с совсем уж низких оборотов, эффект пропадает, вращение опять замедляется и так в цикле.
Как контр-пример (не совсем в тему, т.к. в нём нет бензина) приведу метано-дизели, которые сначала добавляют в воздух метан, потом эту смесь сжимают в обычном дизеле c обычной степенью сжатия, потом добавляют запальную (всего лишь!) порцию солярки, которая радостно загорается и поджигает смесь воздуха с метаном.
Это не детонация, это калильное зажигание.
Детонация — это когда процесс нормального сгорания, инициированный разрядом свечи, переходит во 'взрывное'.
Щето? Поверхностный гуглёж даёт вот это www.researchgate.net/publication/269125192_Summary_of_Deep_Throttling_Rocket_Engines_with_Emphasis_on_Apollo_LMDE (статью качать на sci-hub'е по DOI), где на 3 странице табличка.
Совместимость в userland между 32 и 64 битами — это как я понимаю заключается в том, что в одном и том же режиме процессора могут работать как 32битные exe, так и 64битные (если рассматривать ось с защитой памяти)? Всё равно же 2 комплекта либ надо иметь и 2 комплекта вызовов ядра?
Инструкции по регистрации на сайте imgtec от YuriPanchul похоже протухли — по ссылкам выкидывает на главную страницу. Из-за чего весь сыр-бор?