AT
Size: a a a
AT
LA
break
? Вопрос в том, что чтобы куда-то прыгнуть, нужно знать basic block. Поэтому инструкции циклов я сделал так, что инициализируются сначала пустые инструкции с basic block'ами, сохраняется в статическую переменную текущая, и таким образом break
имеет доступ сразу к нужному bb. Однако, внезапно, оказалось, что вложенные инструкции при этом превращаются в кашу. Если бы bb генерировались во время самой компиляции, такой проблемы не было бы, однако была бы с брейком. Ходить по bb, конечно, можно, и мне кажется, последний bb функции в данном случае всегда будет нужным, однако такое впечатление, что я вообще сделал что-то не то и может есть как это обычно делается? Да и continue
так, пожалуй, не сделаешьAK
break
? Вопрос в том, что чтобы куда-то прыгнуть, нужно знать basic block. Поэтому инструкции циклов я сделал так, что инициализируются сначала пустые инструкции с basic block'ами, сохраняется в статическую переменную текущая, и таким образом break
имеет доступ сразу к нужному bb. Однако, внезапно, оказалось, что вложенные инструкции при этом превращаются в кашу. Если бы bb генерировались во время самой компиляции, такой проблемы не было бы, однако была бы с брейком. Ходить по bb, конечно, можно, и мне кажется, последний bb функции в данном случае всегда будет нужным, однако такое впечатление, что я вообще сделал что-то не то и может есть как это обычно делается? Да и continue
так, пожалуй, не сделаешьLA
continue
это так, у меня его нет. Что имеется в виду под заглушками? Потому что как-то получается, что это не может быть что-то кроме bb, ведь я не могу вставить bb до уже сгенерированного ранее. Ну или я не освоил технологию(использую LLVM API). Ну а если это bb, то получается то же, что я описал вышеAK
AK
s
K
LA
LA
AT
nop nop
nop nop nop
LA
S
S
S
S
eax = eax ^ eax
<=> eax = 0
S
AS
K
AS