diff options
Diffstat (limited to 'src/cmd/8c/swt.c')
| -rw-r--r-- | src/cmd/8c/swt.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/cmd/8c/swt.c b/src/cmd/8c/swt.c index 13e9a51e3..6d693337a 100644 --- a/src/cmd/8c/swt.c +++ b/src/cmd/8c/swt.c @@ -328,7 +328,10 @@ outcode(void) return; } Binit(&b, f, OWRITE); - Bseek(&b, 0L, 2); + + Bprint(&b, "%s\n", thestring); + Bprint(&b, "!\n"); + outhist(&b); for(sym=0; sym<NSYM; sym++) { h[sym].sym = S; @@ -530,6 +533,9 @@ zaddr(Biobuf *b, Adr *a, int s) case D_SCONST: t |= T_SCONST; break; + case D_CONST2: + t |= T_OFFSET|T_OFFSET2; + break; } Bputc(b, t); @@ -544,6 +550,13 @@ zaddr(Biobuf *b, Adr *a, int s) Bputc(b, l>>16); Bputc(b, l>>24); } + if(t & T_OFFSET2) { /* implies offset2 */ + l = a->offset2; + Bputc(b, l); + Bputc(b, l>>8); + Bputc(b, l>>16); + Bputc(b, l>>24); + } if(t & T_SYM) /* implies sym */ Bputc(b, s); if(t & T_FCONST) { |
