X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=tools%2Ftranslate.c;h=1ae5c27e76e115e5b10cf2959c3bd9fa7b9c591b;hb=ee554c95296119b6b8d82856fbb09ffb8c9dc419;hp=3a35a5df227705bb8e9d276975189b1ec4dd4357;hpb=193c11bf19ed55fc1af7a849383ad6912f08ad0a;p=ia32rtools.git diff --git a/tools/translate.c b/tools/translate.c index 3a35a5d..1ae5c27 100644 --- a/tools/translate.c +++ b/tools/translate.c @@ -3942,8 +3942,10 @@ static void resolve_branches_parse_calls(int opcnt) && IS(po->operand[0].name, g_labels[l])) { if (l == i + 1 && po->op == OP_JMP) { - // yet another alignment type.. - po->flags |= OPF_RMD|OPF_DONE; + // yet another alignment type... + po->flags |= OPF_RMD | OPF_DONE; + po->flags &= ~OPF_JMP; + po->op = OP_NOP; break; } add_label_ref(&g_label_refs[l], i); @@ -9723,16 +9725,18 @@ parse_words: continue; goto parse_words; // lame } - if (IS_START(p, "; sctproto:")) { - sctproto = strdup(p + 11); - } else if (IS_START(p, "; sctend")) { end = 1; if (!pending_endp) break; } + else if (g_skip_func) + /* ignore remaining attrs */; + else if (IS_START(p, "; sctproto:")) { + sctproto = strdup(p + 11); + } else if (IS_START(p, "; sctskip_start")) { - if (in_func && !g_skip_func) { + if (in_func) { if (!skip_code) { ops[pi].op = OPP_ABORT; ops[pi].asmln = asmln;