как установить код, который генерирует компилятор c ++

0

Можно ли изменить код, созданный компилятором в exe файле?

Я пытаюсь изменить выходной код компилятора следующим образом:

Код, который я пишу в файле cpp:

a++;

И компилятор сгенерирует следующий код:

INC [a]

Как я могу изменить его на это:

ADD [a],1

Я хочу, чтобы компилятор выполнял это каждый раз, когда компилятор компилирует этот оператор, и поэтому оператор asm не работает. Также я хочу изменить его только на одной платформе.

Я уверен, что компилятор генерирует код на основе шаблона, так как я могу его изменить (если можно)?

  • 1
    Даже если оптимизация отключена, скорее всего, большинство компиляторов выберут INC вместо ADD 1 . Есть ли конкретная причина, по которой вы хотите, чтобы ваш компилятор предпочел последний последнему?
  • 0
    Какой компилятор? Если на каком-то процессоре add быстрее, чем inc, может потребоваться настроить компилятор на этот процессор.
Показать ещё 8 комментариев
Теги:

1 ответ

2

Просто используйте встроенную сборку. Например, в GCC:

#ifdef PLATFORM_X86
    __asm__ ( "addl $1, %0" : "=r"(a) : : "memory" );
#else
    a++;
#endif
  • 0
    Но если я хочу, чтобы моя программа могла работать на каждой машине, которая не будет работать. Мне нужно будет также написать asm в каждом месте кода.
  • 0
    @ user13342203 Тогда просто используйте #ifdef !

Ещё вопросы

Сообщество Overcoder
Наверх
Меню