string = opt->tabstring;
p1 = tree->tr1;
if (p1->op==FCON && p1->value>0) {
- printf(".area data\nL%d:%o;%o;%o;%o\n.area text\n", p1->value, p1->fvalue);
+ printf(".area data\nL%d:.dw %d,%d,%d,%d\n.area text\n", p1->value, p1->fvalue);
p1->value = -p1->value;
}
p2 = 0;
if (opdope[tree->op]&BINARY) {
p2 = tree->tr2;
if (p2->op==FCON && p2->value>0) {
- printf(".area data\nL%d:%o;%o;%o;%o\n.area text\n", p2->value, p2->fvalue);
+ printf(".area data\nL%d:.dw %d,%d,%d,%d\n.area text\n", p2->value, p2->fvalue);
p2->value = -p2->value;
}
}
* Mask used in field assignments
*/
case 'Z':
- printf("#%o", tree->mask);
+ printf("#%d", tree->mask);
goto loop;
/*
} else {
if (retval!=0)
printf("mov r%d,r0\n", retval);
- printf("mov #%o,r1\n", size);
+ printf("mov #%d,r1\n", size);
printf("L%d:mov -(r0),-(sp)\ndec\tr1\njne\tL%d\n", isn, isn);
isn++;
}
tree = atree;
type = atype;
if (type==CHAR) {
- printf(".byte ");
+ printf(".db ");
if (tree->type&XTYPE)
goto illinit;
type = INT;
}
+ else
+ printf(".dw ");
if (type&XTYPE)
type = INT;
switch (type) {
tree->value = lval;
}
if (tree->op == CON)
- printf("%o\n", tree->value);
+ printf("%d\n", tree->value);
else if (tree->op==AMPER) {
pname(tree->tr1, 0);
putchar('\n');
goto illinit;
if (type==FLOAT) {
sfval = fval;
- printf("%o; %o\n", sfval);
+ printf("%d,%d\n", sfval);
} else
- printf("%o; %o; %o; %o\n", fval);
+ printf("%d,%d,%d,%d\n", fval);
return;
case LONG:
lval = tree->lvalue;
else
goto illinit;
- printf("%o; %o\n", lval);
+ printf("%d,%d\n", lval);
return;
}
illinit:
switch(p->op) {
case LCON:
- printf("#%o", flag>10? p->lvalue.intx[1]:p->lvalue.intx[0]);
+ printf("#%d", flag>10? p->lvalue.intx[1]:p->lvalue.intx[0]);
return;
case SFCON:
*/
char dirsw[] {"\
-cmp r0,#%o\n\
+cmp r0,#%d\n\
jhi L%d\n\
asl r0\n\
jmp *L%d(r0)\n\
char hashsw[] {"\
mov r0,r1\n\
clr r0\n\
-div #%o,r0\n\
+div #%d,r0\n\
asl r1\n\
jmp *L%d(r1)\n\
.area data\n\
/* direct switch */
if (range>0 && range <= 3*ncase) {
if (fp->swval)
- printf("sub #%o,r0\n", fp->swval);
+ printf("sub #%d,r0\n", fp->swval);
printf(dirsw, range, deflab, isn, isn);
isn++;
for (i=fp->swval; ; i++) {
if (v==0)
printf("tst r0\n");
else
- printf("cmp r0,#%o\n", v);
+ printf("cmp r0,#%d\n", v);
printf("jeq L%d\n", l);
}
printf("cmp (sp)+,(sp)+\n");
return;
}
- printf("add #%o,sp\n", a);
+ printf("add #%d,sp\n", a);
}
error(s, p1, p2, p3, p4, p5, p6)
n = -n;
sign = '-';
}
- printf("%c%o", sign, n);
+ printf("%c%d", sign, n);
}
/*
switch(op =& 0377) {
case SINIT:
- printf("%o\n", geti());
+ printf("%d\n", geti());
break;
case EOFC:
case BDATA:
if (geti() == 1) {
- printf(".byte ");
+ printf(".db ");
for (;;) {
- printf("%o", geti());
+ printf("%d", geti());
if (geti() != 1)
break;
printf(",");
case SYMDEF:
outname(s);
- printf(".globl%s%.8s\n", s[0]?" ":"", s);
+ if (s[0])
+ printf(".globl %.8s\n", s);
sfuncr.nloc = 0;
break;
case CSPACE:
t = outname(s);
- printf(".comm %.8s,%o\n", t, geti());
+ printf(".comm %.8s,%d\n", t, geti());
break;
case SSPACE:
- printf(".=.+%o\n", (t=geti()));
+ printf(".=.+%d\n", (t=geti()));
totspace += (unsigned)t;
break;
if (t==2)
printf("tst -(sp)\n");
else if (t != 0)
- printf("sub #%o,sp\n", t);
+ printf("sub #%d,sp\n", t);
break;
case PROFIL:
case ANAME:
t = outname(s);
- printf(";~%s=%o\n", t+1, geti());
+ printf(";~%s=%d\n", t+1, geti());
break;
case RNAME:
np = getblk(sizeof(*xnp));
np->type = geti();
outname(np->name);
+ printf(".globl %.8s\n", np->name);
} else {
np = getblk(sizeof(*np));
np->type = geti();
if (tp->op==RFORCE) { /* function return */
if (sfuncr.nloc==0) {
sfuncr.nloc = isn++;
- printf(".area bss\nL%d:.=.+%o\n.area text\n", sfuncr.nloc, nwords*sizeof(int));
+ printf(".area bss\nL%d:.=.+%d\n.area text\n", sfuncr.nloc, nwords*sizeof(int));
}
atp->tr1 = tnode(ASSIGN, STRUCT, &sfuncr, tp->tr1);
strasg(atp);
}
if (nreg<=1)
printf("mov r2,-(sp)\n");
- printf("mov #%o,r2\n", nwords);
+ printf("mov #%d,r2\n", nwords);
printf("L%d:mov (r1)+,(r0)+\ndec\tr2\njne\tL%d\n", isn, isn);
isn++;
if (nreg<=1)
fi
export APOUT_ROOT=`pwd`/../../..
export PATH=`pwd`/../../../bin:`pwd`
-./compall
+#./compall
+
+echo "=== getgrgid.c ==="; cc -c -O /usr/src/libc/stdio/getgrgid.c
+echo "=== getgrnam.c ==="; cc -c -O /usr/src/libc/stdio/getgrnam.c
+echo "=== getgrent.c ==="; cc -c -O /usr/src/libc/stdio/getgrent.c
+echo "=== getpass.c ==="; cc -c -O /usr/src/libc/stdio/getpass.c
+echo "=== getpwnam.c ==="; cc -c -O /usr/src/libc/stdio/getpwnam.c
+echo "=== getpwuid.c ==="; cc -c -O /usr/src/libc/stdio/getpwuid.c
+echo "=== getpwent.c ==="; cc -c -O /usr/src/libc/stdio/getpwent.c
+echo "=== fgetc.c ==="; cc -c -O /usr/src/libc/stdio/fgetc.c
+echo "=== fputc.c ==="; cc -c -O /usr/src/libc/stdio/fputc.c
+echo "=== getchar.c ==="; cc -c -O /usr/src/libc/stdio/getchar.c
+echo "=== putchar.c ==="; cc -c -O /usr/src/libc/stdio/putchar.c
+echo "=== popen.c ==="; cc -c -O /usr/src/libc/stdio/popen.c
+echo "=== freopen.c ==="; cc -c -O /usr/src/libc/stdio/freopen.c
+echo "=== fgets.c ==="; cc -c -O /usr/src/libc/stdio/fgets.c
+echo "=== fputs.c ==="; cc -c -O /usr/src/libc/stdio/fputs.c
+echo "=== getpw.c ==="; cc -c -O /usr/src/libc/stdio/getpw.c
+echo "=== fseek.c ==="; cc -c -O /usr/src/libc/stdio/fseek.c
+echo "=== ftell.c ==="; cc -c -O /usr/src/libc/stdio/ftell.c
+echo "=== rew.c ==="; cc -c -O /usr/src/libc/stdio/rew.c
+echo "=== rdwr.c ==="; cc -c -O /usr/src/libc/stdio/rdwr.c
+echo "=== system.c ==="; cc -c -O /usr/src/libc/stdio/system.c
+echo "=== fopen.c ==="; cc -c -O /usr/src/libc/stdio/fopen.c
+echo "=== fdopen.c ==="; cc -c -O /usr/src/libc/stdio/fdopen.c
+echo "=== scanf.c ==="; cc -c -O /usr/src/libc/stdio/scanf.c
+echo "=== doscan.c ==="; cc -c -O /usr/src/libc/stdio/doscan.c
+echo "=== fprintf.c ==="; cc -c -O /usr/src/libc/stdio/fprintf.c
+echo "=== gets.c ==="; cc -c -O /usr/src/libc/stdio/gets.c
+echo "=== getw.c ==="; cc -c -O /usr/src/libc/stdio/getw.c
+echo "=== printf.c ==="; cc -c -O /usr/src/libc/stdio/printf.c
+echo "=== puts.c ==="; cc -c -O /usr/src/libc/stdio/puts.c
+echo "=== putw.c ==="; cc -c -O /usr/src/libc/stdio/putw.c
+echo "=== sprintf.c ==="; cc -c -O /usr/src/libc/stdio/sprintf.c
+echo "=== ungetc.c ==="; cc -c -O /usr/src/libc/stdio/ungetc.c
+echo "=== filbuf.c ==="; cc -c -O /usr/src/libc/stdio/filbuf.c
+echo "=== setbuf.c ==="; cc -c -O /usr/src/libc/stdio/setbuf.c
+echo "=== fltpr.s ==="; cc -c /usr/src/libc/stdio/fltpr.s
+echo "=== doprnt.s ==="; cc -c /usr/src/libc/stdio/doprnt.s
+echo "=== gcvt.c ==="; cc -c -O /usr/src/libc/stdio/gcvt.c
+echo "=== ffltpr.s ==="; cc -c /usr/src/libc/stdio/ffltpr.s
+echo "=== strout.c ==="; cc -c -O /usr/src/libc/stdio/strout.c
+echo "=== flsbuf.c ==="; cc -c -O /usr/src/libc/stdio/flsbuf.c
+echo "=== endopen.c ==="; cc -c -O /usr/src/libc/stdio/endopen.c
+echo "=== findiop.c ==="; cc -c -O /usr/src/libc/stdio/findiop.c
+echo "=== clrerr.c ==="; cc -c -O /usr/src/libc/stdio/clrerr.c
+echo "=== data.c ==="; cc -c -O /usr/src/libc/stdio/data.c
+echo "=== cuexit.s ==="; cc -c /usr/src/libc/gen/cuexit.s
+echo "=== execvp.c ==="; cc -c -O /usr/src/libc/gen/execvp.c
+echo "=== getenv.c ==="; cc -c -O /usr/src/libc/gen/getenv.c
+echo "=== getlogin.c ==="; cc -c -O /usr/src/libc/gen/getlogin.c
+echo "=== perror.c ==="; cc -c -O /usr/src/libc/gen/perror.c
+echo "=== sleep.c ==="; cc -c -O /usr/src/libc/gen/sleep.c
+echo "=== timezone.c ==="; cc -c -O /usr/src/libc/gen/timezone.c
+echo "=== ttyslot.c ==="; cc -c -O /usr/src/libc/gen/ttyslot.c
+echo "=== ttyname.c ==="; cc -c -O /usr/src/libc/gen/ttyname.c
+echo "=== abort.s ==="; cc -c /usr/src/libc/gen/abort.s
+echo "=== abs.c ==="; cc -c -O /usr/src/libc/gen/abs.c
+echo "=== atof.c ==="; cc -c -O /usr/src/libc/gen/atof.c
+echo "=== atoi.c ==="; cc -c -O /usr/src/libc/gen/atoi.c
+echo "=== atol.c ==="; cc -c -O /usr/src/libc/gen/atol.c
+echo "=== crypt.c ==="; cc -c -O /usr/src/libc/gen/crypt.c
+echo "=== ctime.c ==="; cc -c -O /usr/src/libc/gen/ctime.c
+echo "=== calloc.c ==="; cc -c -O /usr/src/libc/gen/calloc.c
+echo "=== malloc.c ==="; cc -c -O /usr/src/libc/gen/malloc.c
+echo "=== ecvt.c ==="; cc -c -O /usr/src/libc/gen/ecvt.c
+echo "=== errlst.c ==="; cc -c -O /usr/src/libc/gen/errlst.c
+echo "=== fakcu.s ==="; cc -c /usr/src/libc/gen/fakcu.s
+echo "=== fakfp.s ==="; cc -c /usr/src/libc/gen/fakfp.s
+echo "=== frexp11.s ==="; cc -c /usr/src/libc/gen/frexp11.s
+echo "=== isatty.c ==="; cc -c -O /usr/src/libc/gen/isatty.c
+echo "=== l3.c ==="; cc -c -O /usr/src/libc/gen/l3.c
+echo "=== ldexp11.s ==="; cc -c /usr/src/libc/gen/ldexp11.s
+echo "=== ldfps.s ==="; cc -c /usr/src/libc/gen/ldfps.s
+echo "=== mktemp.c ==="; cc -c -O /usr/src/libc/gen/mktemp.c
+echo "=== modf11.s ==="; cc -c /usr/src/libc/gen/modf11.s
+echo "=== mpx.c ==="; cc -c -O /usr/src/libc/gen/mpx.c
+echo "=== mon.c ==="; cc -c -O /usr/src/libc/gen/mon.c
+echo "=== nlist.c ==="; cc -c -O /usr/src/libc/gen/nlist.c
+echo "=== qsort.c ==="; cc -c -O /usr/src/libc/gen/qsort.c
+echo "=== rand.c ==="; cc -c -O /usr/src/libc/gen/rand.c
+echo "=== setjmp.s ==="; cc -c /usr/src/libc/gen/setjmp.s
+echo "=== stty.c ==="; cc -c -O /usr/src/libc/gen/stty.c
+echo "=== swab.c ==="; cc -c -O /usr/src/libc/gen/swab.c
+echo "=== tell.c ==="; cc -c -O /usr/src/libc/gen/tell.c
+echo "=== ctype_.c ==="; cc -c -O /usr/src/libc/gen/ctype_.c
+echo "=== index.c ==="; cc -c -O /usr/src/libc/gen/index.c
+echo "=== rindex.c ==="; cc -c -O /usr/src/libc/gen/rindex.c
+echo "=== strcat.c ==="; cc -c -O /usr/src/libc/gen/strcat.c
+echo "=== strncat.c ==="; cc -c -O /usr/src/libc/gen/strncat.c
+echo "=== strcmp.c ==="; cc -c -O /usr/src/libc/gen/strcmp.c
+echo "=== strncmp.c ==="; cc -c -O /usr/src/libc/gen/strncmp.c
+echo "=== strcpy.c ==="; cc -c -O /usr/src/libc/gen/strcpy.c
+echo "=== strncpy.c ==="; cc -c -O /usr/src/libc/gen/strncpy.c
+echo "=== strlen.c ==="; cc -c -O /usr/src/libc/gen/strlen.c
+echo "=== access.s ==="; cc -c /usr/src/libc/sys/access.s
+echo "=== acct.s ==="; cc -c /usr/src/libc/sys/acct.s
+echo "=== alarm.s ==="; cc -c /usr/src/libc/sys/alarm.s
+echo "=== chdir.s ==="; cc -c /usr/src/libc/sys/chdir.s
+echo "=== chroot.s ==="; cc -c /usr/src/libc/sys/chroot.s
+echo "=== chmod.s ==="; cc -c /usr/src/libc/sys/chmod.s
+echo "=== chown.s ==="; cc -c /usr/src/libc/sys/chown.s
+echo "=== close.s ==="; cc -c /usr/src/libc/sys/close.s
+echo "=== creat.s ==="; cc -c /usr/src/libc/sys/creat.s
+echo "=== dup.s ==="; cc -c /usr/src/libc/sys/dup.s
+echo "=== execl.s ==="; cc -c /usr/src/libc/sys/execl.s
+echo "=== execle.s ==="; cc -c /usr/src/libc/sys/execle.s
+echo "=== execv.s ==="; cc -c /usr/src/libc/sys/execv.s
+echo "=== execve.s ==="; cc -c /usr/src/libc/sys/execve.s
+echo "=== exit.s ==="; cc -c /usr/src/libc/sys/exit.s
+echo "=== fork.s ==="; cc -c /usr/src/libc/sys/fork.s
+echo "=== fstat.s ==="; cc -c /usr/src/libc/sys/fstat.s
+echo "=== getgid.s ==="; cc -c /usr/src/libc/sys/getgid.s
+echo "=== getpid.s ==="; cc -c /usr/src/libc/sys/getpid.s
+echo "=== getuid.s ==="; cc -c /usr/src/libc/sys/getuid.s
+echo "=== ioctl.s ==="; cc -c /usr/src/libc/sys/ioctl.s
+echo "=== kill.s ==="; cc -c /usr/src/libc/sys/kill.s
+echo "=== link.s ==="; cc -c /usr/src/libc/sys/link.s
+echo "=== lock.s ==="; cc -c /usr/src/libc/sys/lock.s
+echo "=== lseek.s ==="; cc -c /usr/src/libc/sys/lseek.s
+echo "=== mknod.s ==="; cc -c /usr/src/libc/sys/mknod.s
+echo "=== mount.s ==="; cc -c /usr/src/libc/sys/mount.s
+echo "=== mpxcall.s ==="; cc -c /usr/src/libc/sys/mpxcall.s
+echo "=== nice.s ==="; cc -c /usr/src/libc/sys/nice.s
+echo "=== open.s ==="; cc -c /usr/src/libc/sys/open.s
+echo "=== pause.s ==="; cc -c /usr/src/libc/sys/pause.s
+echo "=== phys.s ==="; cc -c /usr/src/libc/sys/phys.s
+echo "=== pipe.s ==="; cc -c /usr/src/libc/sys/pipe.s
+echo "=== profil.s ==="; cc -c /usr/src/libc/sys/profil.s
+echo "=== ptrace.s ==="; cc -c /usr/src/libc/sys/ptrace.s
+echo "=== read.s ==="; cc -c /usr/src/libc/sys/read.s
+echo "=== sbrk.s ==="; cc -c /usr/src/libc/sys/sbrk.s
+echo "=== setgid.s ==="; cc -c /usr/src/libc/sys/setgid.s
+echo "=== setuid.s ==="; cc -c /usr/src/libc/sys/setuid.s
+echo "=== signal.s ==="; cc -c /usr/src/libc/sys/signal.s
+echo "=== stat.s ==="; cc -c /usr/src/libc/sys/stat.s
+echo "=== stime.s ==="; cc -c /usr/src/libc/sys/stime.s
+echo "=== sync.s ==="; cc -c /usr/src/libc/sys/sync.s
+echo "=== time.s ==="; cc -c /usr/src/libc/sys/time.s
+echo "=== times.s ==="; cc -c /usr/src/libc/sys/times.s
+echo "=== umask.s ==="; cc -c /usr/src/libc/sys/umask.s
+echo "=== umount.s ==="; cc -c /usr/src/libc/sys/umount.s
+echo "=== unlink.s ==="; cc -c /usr/src/libc/sys/unlink.s
+echo "=== utime.s ==="; cc -c /usr/src/libc/sys/utime.s
+echo "=== wait.s ==="; cc -c /usr/src/libc/sys/wait.s
+echo "=== write.s ==="; cc -c /usr/src/libc/sys/write.s
+echo "=== aldiv.s ==="; cc -c /usr/src/libc/crt/aldiv.s
+echo "=== almul.s ==="; cc -c /usr/src/libc/crt/almul.s
+echo "=== alrem.s ==="; cc -c /usr/src/libc/crt/alrem.s
+echo "=== cerror.s ==="; cc -c /usr/src/libc/crt/cerror.s
+echo "=== ldiv.s ==="; cc -c /usr/src/libc/crt/ldiv.s
+echo "=== lmul.s ==="; cc -c /usr/src/libc/crt/lmul.s
+echo "=== lrem.s ==="; cc -c /usr/src/libc/crt/lrem.s
+echo "=== mcount.s ==="; cc -c /usr/src/libc/crt/mcount.s
+echo "=== csv.s ==="; cc -c /usr/src/libc/crt/csv.s
+
./mklib