msvc + switch

Тема в разделе "LANGS.C", создана пользователем ASMatic, 26 дек 2011.

  1. ASMatic

    ASMatic New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2010
    Сообщения:
    233
    Код (Text):
    1. jmp     ds:off_40B180[eax*4] ; switch jump
    возможно както от такого избавится, т.е. дабы не генерила таблицу адресов?
    *м.б. какаято прагма есть. а то елсеифы не особо то и решение (не так красиво смотрятся в коде)
     
  2. sn0w

    sn0w Active Member

    Публикаций:
    0
    Регистрация:
    27 фев 2010
    Сообщения:
    958
    если меток больше 4х то будет генерица жамптабло, видимо для того чтобы сэкономить на лонг джампах. а избавится теоретически можно если переписать компилятор.

    пысы на openRCE гдето чел какраз патчил компилер (но вроде жсс) для генерации промежуточного мусора, статья познавательная но линка у меня не сохранилось
     
  3. ASMatic

    ASMatic New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2010
    Сообщения:
    233
    воопщем так и думал, но на всякий поинтересоватся хотел, вдруг какойто вид оптимизации можно вырубить и будем мне щастье)

    но патчить компиль - я лучше на елсеифы перепишу)
     
  4. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    У GCC есть -fno-jump-tables, у Intel C++ тоже опция есть, в MS Visual C++ аналогичной опции вроди нету.