LEFT | RIGHT |
(no file at all) | |
1 // Inferno utils/8l/obj.c | 1 // Inferno utils/8l/obj.c |
2 // http://code.google.com/p/inferno-os/source/browse/utils/8l/obj.c | 2 // http://code.google.com/p/inferno-os/source/browse/utils/8l/obj.c |
3 // | 3 // |
4 // Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. | 4 // Copyright © 1994-1999 Lucent Technologies Inc. All rights reserved. |
5 // Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net) | 5 // Portions Copyright © 1995-1997 C H Forsyth (forsyth@terzarima.net) |
6 // Portions Copyright © 1997-1999 Vita Nuova Limited | 6 // Portions Copyright © 1997-1999 Vita Nuova Limited |
7 // Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuov
a.com) | 7 // Portions Copyright © 2000-2007 Vita Nuova Holdings Limited (www.vitanuov
a.com) |
8 // Portions Copyright © 2004,2006 Bruce Ellis | 8 // Portions Copyright © 2004,2006 Bruce Ellis |
9 // Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net) | 9 // Portions Copyright © 2005-2007 C H Forsyth (forsyth@terzarima.net) |
10 // Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others | 10 // Revisions Copyright © 2000-2007 Lucent Technologies Inc. and others |
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
600 savedata(s, p, pn); | 600 savedata(s, p, pn); |
601 unmal(p, sizeof *p); | 601 unmal(p, sizeof *p); |
602 goto loop; | 602 goto loop; |
603 | 603 |
604 case AGOK: | 604 case AGOK: |
605 diag("%s: GOK opcode in %s", pn, TNAME); | 605 diag("%s: GOK opcode in %s", pn, TNAME); |
606 pc++; | 606 pc++; |
607 goto loop; | 607 goto loop; |
608 | 608 |
609 case ALOCALS: | 609 case ALOCALS: |
| 610 if(skip) |
| 611 goto casdef; |
610 cursym->locals = p->to.offset; | 612 cursym->locals = p->to.offset; |
611 pc++; | 613 pc++; |
612 goto loop; | 614 goto loop; |
613 | 615 |
614 case ATYPE: | 616 case ATYPE: |
| 617 if(skip) |
| 618 goto casdef; |
615 pc++; | 619 pc++; |
616 goto loop; | 620 goto loop; |
617 | 621 |
618 case ATEXT: | 622 case ATEXT: |
619 s = p->from.sym; | 623 s = p->from.sym; |
620 if(s->text != nil) { | 624 if(s->text != nil) { |
621 if(p->from.scale & DUPOK) { | 625 if(p->from.scale & DUPOK) { |
622 skip = 1; | 626 skip = 1; |
623 goto casdef; | 627 goto casdef; |
624 } | 628 } |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
773 appendp(Prog *q) | 777 appendp(Prog *q) |
774 { | 778 { |
775 Prog *p; | 779 Prog *p; |
776 | 780 |
777 p = prg(); | 781 p = prg(); |
778 p->link = q->link; | 782 p->link = q->link; |
779 q->link = p; | 783 q->link = p; |
780 p->line = q->line; | 784 p->line = q->line; |
781 return p; | 785 return p; |
782 } | 786 } |
LEFT | RIGHT |