fix branches (been broken for a while :/)

This commit is contained in:
Bill Currie 2002-07-17 18:45:17 +00:00
parent 90fa657a5f
commit 8d6c491390
2 changed files with 4 additions and 1 deletions

View file

@ -542,6 +542,7 @@ emit_expr (expr_t *e)
case ex_label: case ex_label:
label = &e->e.label; label = &e->e.label;
label->ofs = pr.code->size; label->ofs = pr.code->size;
relocate_refs (label->refs, label->ofs);
break; break;
case ex_block: case ex_block:
for (e = e->e.block.head; e; e = e->next) for (e = e->e.block.head; e; e = e->next)

View file

@ -140,10 +140,12 @@ add_relocs (qfo_t *qfo)
case rel_op_a_def: case rel_op_a_def:
case rel_op_b_def: case rel_op_b_def:
case rel_op_c_def: case rel_op_c_def:
reloc->ofs += code_base;
break;
case rel_op_a_op: case rel_op_a_op:
case rel_op_b_op: case rel_op_b_op:
case rel_op_c_op: case rel_op_c_op:
reloc->ofs += code_base; // these are relative and fixed up before the .qfo is written
break; break;
case rel_def_op: case rel_def_op:
reloc->ofs += data_base; reloc->ofs += data_base;