Оптимизация ветвлений

Тема в разделе "WASM.ASSEMBLER", создана пользователем Sunzer, 19 авг 2011.

  1. Sunzer

    Sunzer Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    256
    В очередной раз перерабатываю схему оптимизации ветвлений, нет более быстрого способа чем обработка методом, снизу вверх?

    В компиляторах, так же?

    Код (Text):
    1. H1 = BEGIN_JMP();
    2. MOV(0x90,1);
    3. H2 = BEGIN_JMP();
    4. MOV(0x90,1);
    5. END_JMP(H1, _JNZ);
    6. END_JMP(H2, _JE);
    Тут инициализируем и записываем код, снизу вверх, иначе просто не возможно, точнее возможно, но будет работать очень медленно.

    Просто не хочется, каждый раз при встрече перехода, перетаскивать код ниже и ниже.

    Код (Text):
    1. label_1:
    2. NOP
    3. JNE label_2
    4. NOP
    5. JNZ label_1
    6. NOP
    7. label_2:
    Тут для записи одного из ветвлений, нужно знать размер другого ветвления, и наоборот.




    Не актуально, семантика теперь полностью другая, исключающая все вышеперечисленные недостатки. :)