-
- Не угадал. Там оптимизация -- без операции с LOC_CONTR получается
два раза подряд AND с одной константой, который оптимизируется до
одного раз. При наличии LOC_CONTR константы разные и есть два AND.
Но common subexpression elimination явно не дорабатывает, потому,
что во втором случае можно объединить два AND в один и выкинуть
STD/LDD. Возможно, автор отключил оптимизацию... - fk0(30.06.2020 10:48)
- Пробовал заменить на PultFlags &=0xE6; в результате та же фигня, один в один. Откуда второй ANDI R16, 0xE7 непонятно - maleon(30.06.2020 11:09)
- Первого ANDI R16, 0xE6 ведь достаточно, откуда и зачем ANDI R16, 0xE7? - maleon(30.06.2020 10:54)
- Не трогал опции maleon(30.06.2020 10:51, картинка)
- Да вроде нет maleon(282 знак., 30.06.2020 10:47)
- Не угадал. Там оптимизация -- без операции с LOC_CONTR получается
два раза подряд AND с одной константой, который оптимизируется до
одного раз. При наличии LOC_CONTR константы разные и есть два AND.
Но common subexpression elimination явно не дорабатывает, потому,
что во втором случае можно объединить два AND в один и выкинуть
STD/LDD. Возможно, автор отключил оптимизацию... - fk0(30.06.2020 10:48)