Mercurial > hg-old > index.cgi
diff lwlink/readfiles.c @ 204:048ebb85f6ef
Added 8 bit external references for base page addressing mode
author | lost |
---|---|
date | Sun, 29 Mar 2009 14:52:28 +0000 |
parents | 6ebb93b409ba |
children | 42df94f30d82 |
line wrap: on
line diff
--- a/lwlink/readfiles.c Sun Mar 22 22:11:12 2009 +0000 +++ b/lwlink/readfiles.c Sun Mar 29 14:52:28 2009 +0000 @@ -266,6 +266,7 @@ s -> incompletes = rp; rp -> offset = 0; rp -> expr = lw_expr_stack_create(); + rp -> flags = RELOC_NORM; // parse the expression while (CURBYTE()) @@ -274,6 +275,12 @@ NEXTBYTE(); switch (tt) { + case 0xFF: + // a flag specifier + tt = CURBYTE(); + rp -> flags = tt; + term = NULL; + case 0x01: // 16 bit integer tt = CURBYTE() << 8; @@ -312,8 +319,11 @@ fprintf(stderr, "%s (%s): bad relocation expression\n", fn -> filename, s -> name); exit(1); } - lw_expr_stack_push(rp -> expr, term); - lw_expr_term_free(term); + if (term) + { + lw_expr_stack_push(rp -> expr, term); + lw_expr_term_free(term); + } } // skip the NUL NEXTBYTE();