summaryrefslogtreecommitdiff
path: root/src/cmd/8c/swt.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/8c/swt.c')
-rw-r--r--src/cmd/8c/swt.c15
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) {