/lib/as2 can't be built shared or split +FIX
Steven M. Schultz
sms at wlv.imsd.contel.com
Thu Dec 28 08:04:48 AEST 1989
Subject: /lib/as2 can't be built shared or split +FIX
Index: bin/as/as2?.s 2.10BSD
Description:
The second phase of the assembler (/lib/as2) can not be built
either sharedtext (-n) or split-I/D (-i) due to intermixing
of data and text, missing .text/.data directives, use of
a subroutine calling convention which places arguments inline
with text (jsr r5,xxx;arg rather than mov arg,-(sp);jsr pc,xxx),
reusing text space as an I/O bufffer, ad nauseum.
Building /lib/as2 either -n or -i allows the system to cache the
text, speeding loading on subsequent use.
Repeat-By:
Attempt to build /lib/as2 with either -n or -i set into SEPFLAGS,
observe the resulting mess.
Fix:
Apply the patches below. There is one patch for as13.s, the earlier
posting which fixed /bin/as missed a "jsr r5," call.
Also, the I/O buffers have been increased from 512 to 1024 so as
to match the filesystem block size.
Happy New Year!
diff -c as.old/Makefile as/Makefile
*** as.old/Makefile Wed Dec 13 16:42:56 1989
--- as/Makefile Sun Dec 24 02:06:24 1989
***************
*** 16,22 ****
as2: ${AS2SRC}
${AS} ${ASFLAGS} -o as2.o as2?.s
! ld -o $@ as2.o -lc
install:
install -s as ${DESTDIR}/bin
--- 16,22 ----
as2: ${AS2SRC}
${AS} ${ASFLAGS} -o as2.o as2?.s
! ld ${SEPFLAG} -o $@ as2.o -lc
install:
install -s as ${DESTDIR}/bin
diff -c as.old/as13.s as/as13.s
*** as.old/as13.s Wed Dec 13 16:43:11 1989
--- as/as13.s Sun Dec 24 19:27:40 1989
***************
*** 42,48 ****
1:
bitb $37,(r4)
beq 1f
! jsr r5,error; 'm
1:
bisb dot-2,(r4)
mov dot,2(r4)
--- 42,49 ----
1:
bitb $37,(r4)
beq 1f
! mov $'m,r5
! jsr pc,error
1:
bisb dot-2,(r4)
mov dot,2(r4)
diff -c as.old/as21.s as/as21.s
*** as.old/as21.s Sun Feb 8 14:26:13 1987
--- as/as21.s Wed Dec 27 12:35:36 1989
***************
*** 31,37 ****
/ read in symbol table
! mov $usymtab,r1
1:
jsr pc,getw
bvs 1f
--- 31,37 ----
/ read in symbol table
! mov usymtab,r1
1:
jsr pc,getw
bvs 1f
***************
*** 101,107 ****
tst (sp)+ / sys close
mov (sp)+,r1
! jsr r5,ofile; a.tmp1
mov r0,fin
clr ibufc
jsr pc,setup
--- 101,108 ----
tst (sp)+ / sys close
mov (sp)+,r1
! mov a.tmp1,-(sp)
! jsr pc,ofile
mov r0,fin
clr ibufc
jsr pc,setup
***************
*** 141,147 ****
sbc r0
mov r0,datseek
mov r3,datseek+2 / txtsiz+20
! mov $usymtab,r1
1:
jsr pc,doreloc
add $4,r1
--- 142,148 ----
sbc r0
mov r0,datseek
mov r3,datseek+2 / txtsiz+20
! mov usymtab,r1
1:
jsr pc,doreloc
add $4,r1
***************
*** 149,163 ****
blo 1b
clr r0
clr r1
! jsr r5,oset; txtp
mov trelseek,r0
mov trelseek+2,r1
! jsr r5,oset; relp
mov $8.,r2
mov $txtmagic,r1
1:
mov (r1)+,r0
! jsr r5,putw; txtp
dec r2
bne 1b
jsr pc,assem
--- 150,167 ----
blo 1b
clr r0
clr r1
! mov $txtp,-(sp)
! jsr pc,oset
mov trelseek,r0
mov trelseek+2,r1
! mov $relp,-(sp)
! jsr pc,oset
mov $8.,r2
mov $txtmagic,r1
1:
mov (r1)+,r0
! mov $txtp,-(sp)
! jsr pc,putw
dec r2
bne 1b
jsr pc,assem
***************
*** 164,171 ****
/polish off text and relocation
! jsr r5,flush; txtp
! jsr r5,flush; relp
/ append full symbol table
--- 168,177 ----
/polish off text and relocation
! mov $txtp,-(sp)
! jsr pc,flush
! mov $relp,-(sp)
! jsr pc,flush
/ append full symbol table
***************
*** 182,212 ****
clr ibufc
mov symseek,r0
mov symseek+2,r1
! jsr r5,oset; txtp
! mov $usymtab,r1
1:
jsr pc,getw
bvs 1f
mov r4,r0
! jsr r5,putw; txtp
jsr pc,getw
mov r4,r0
! jsr r5,putw; txtp
jsr pc,getw
mov r4,r0
! jsr r5,putw; txtp
jsr pc,getw
mov r4,r0
! jsr r5,putw; txtp
mov (r1)+,r0
! jsr r5,putw; txtp
mov (r1)+,r0
! jsr r5,putw; txtp
jsr pc,getw
jsr pc,getw
br 1b
1:
! jsr r5,flush; txtp
jmp aexit
saexit:
--- 188,226 ----
clr ibufc
mov symseek,r0
mov symseek+2,r1
! mov $txtp,-(sp)
! jsr pc,oset
! mov usymtab,r1
1:
jsr pc,getw
bvs 1f
mov r4,r0
! mov $txtp,-(sp)
! jsr pc,putw
jsr pc,getw
mov r4,r0
! mov $txtp,-(sp)
! jsr pc,putw
jsr pc,getw
mov r4,r0
! mov $txtp,-(sp)
! jsr pc,putw
jsr pc,getw
mov r4,r0
! mov $txtp,-(sp)
! jsr pc,putw
mov (r1)+,r0
! mov $txtp,-(sp)
! jsr pc,putw
mov (r1)+,r0
! mov $txtp,-(sp)
! jsr pc,putw
jsr pc,getw
jsr pc,getw
br 1b
1:
! mov $txtp,-(sp)
! jsr pc,flush
jmp aexit
saexit:
***************
*** 246,262 ****
jsr pc,__exit / _exit(errflg ? 2 : 0)
/ sys exit
filerr:
! mov *(r5),r5
! tst -(sp) / write(1, r5, strlen(r5))
! mov r5,-(sp)
mov $1,-(sp)
- clr r0
1:
! tstb (r5)+
! beq 2f
! inc r0
! br 1b
! 2:
mov r0,4(sp)
jsr pc,_write
add $6,sp
--- 260,274 ----
jsr pc,__exit / _exit(errflg ? 2 : 0)
/ sys exit
filerr:
! mov 2(sp),r0 / filename string. no need to clean
! tst -(sp) / stack, this routine goes to saexit.
! mov r0,-(sp)
mov $1,-(sp)
1:
! tstb (r0)+
! bne 1b
! sub 2(sp),r0
! dec r0
mov r0,4(sp)
jsr pc,_write
add $6,sp
***************
*** 297,303 ****
jsr pc,_brk / sys indir; 9f
tst (sp)+ / .data
.data /9: sys sbreak; 0: end
! 0: end / .text
.text
1:
mov (sp)+,r1
--- 309,315 ----
jsr pc,_brk / sys indir; 9f
tst (sp)+ / .data
.data /9: sys sbreak; 0: end
! 0: _end / .text
.text
1:
mov (sp)+,r1
***************
*** 321,336 ****
ofile:
mov r1,-(sp) / protect r1 from library
! clr -(sp) / open(*(r5), O_RDONLY, 0)
! clr -(sp) / mov *(r5),0f
! mov *(r5),-(sp) / sys indir; 9f
! jsr pc,_open / .data
! add $6,sp /9: sys open; 0:..; 0
! mov (sp)+,r1 / .text
! tst r0 / bes 1f
bmi 1f
!
! tst (r5)+
! rts r5
1:
jmp filerr
--- 333,347 ----
ofile:
mov r1,-(sp) / protect r1 from library
! clr -(sp) / open(r0, O_RDONLY, 0)
! clr -(sp)
! mov 10(sp),-(sp)
! jsr pc,_open
! add $6,sp
! mov (sp)+,r1
! tst r0
bmi 1f
! mov (sp)+,(sp)
! rts pc
1:
jmp filerr
diff -c as.old/as22.s as/as22.s
*** as.old/as22.s Sun Feb 8 14:26:13 1987
--- as/as22.s Sun Dec 24 16:53:18 1989
***************
*** 20,26 ****
/ external references
mov $666,outmod / make nonexecutable
mov xsymbol,r3
! sub $usymtab,r3
asl r3
bis $4,r3 / external relocation
br 3f
--- 20,26 ----
/ external references
mov $666,outmod / make nonexecutable
mov xsymbol,r3
! sub usymtab,r3
asl r3
bis $4,r3 / external relocation
br 3f
***************
*** 33,39 ****
cmp r3,$34
bne 7f
6:
! jsr r5,error; 'r
7:
mov $1,r3 / make absolute
4:
--- 33,40 ----
cmp r3,$34
bne 7f
6:
! mov $'r,-(sp)
! jsr pc,error
7:
mov $1,r3 / make absolute
4:
***************
*** 57,68 ****
asl r3
bis (sp)+,r3
mov r2,r0
! jsr r5,putw; txtp
mov tseekp,r0
add $2,2(r0)
adc (r0)
mov r3,r0
! jsr r5,putw; relp
mov rseekp,r0
add $2,2(r0)
adc (r0)
--- 58,71 ----
asl r3
bis (sp)+,r3
mov r2,r0
! mov $txtp,-(sp)
! jsr pc,putw
mov tseekp,r0
add $2,2(r0)
adc (r0)
mov r3,r0
! mov $relp,-(sp)
! jsr pc,putw
mov rseekp,r0
add $2,2(r0)
adc (r0)
***************
*** 69,81 ****
8:
rts pc
1:
! jsr r5,error; 'o
clr r3
jsr pc,outb
rts pc
9:
! jsr r5,error; 'x
rts pc
outb:
--- 72,86 ----
8:
rts pc
1:
! mov $'o,-(sp)
! jsr pc,error
clr r3
jsr pc,outb
rts pc
9:
! mov $'x,-(sp)
! jsr pc,error
rts pc
outb:
***************
*** 83,89 ****
beq 9b
cmp r3,$1
blos 1f
! jsr r5,error; 'r
1:
tstb passno
beq 2f
--- 88,95 ----
beq 9b
cmp r3,$1
blos 1f
! mov $'r,-(sp)
! jsr pc,error
1:
tstb passno
beq 2f
***************
*** 90,98 ****
mov r2,r0
bit $1,dot
bne 1f
! jsr r5,putw; txtp
clr r0
! jsr r5,putw; relp
mov tseekp,r0
add $2,2(r0)
adc (r0)
--- 96,106 ----
mov r2,r0
bit $1,dot
bne 1f
! mov $txtp,-(sp)
! jsr pc,putw
clr r0
! mov $relp,-(sp)
! jsr pc,putw
mov tseekp,r0
add $2,2(r0)
adc (r0)
***************
*** 130,137 ****
jsr pc,_write
add $6,sp
! mov (r5)+,r0
! movb r0,0f
mov line,r3
mov $0f+6,r0
mov $4,r1
--- 138,144 ----
jsr pc,_write
add $6,sp
! movb 12(sp),0f
mov line,r3
mov $0f+6,r0
mov $4,r1
***************
*** 153,172 ****
mov (sp)+,r1
mov (sp)+,r2
mov (sp)+,r3
! rts r5
.data
0: <f xxxx\n>
.even
.text
-
- betwen:
- cmp r0,(r5)+
- blt 1f
- cmp (r5)+,r0
- blt 2f
- 1:
- tst (r5)+
- 2:
- rts r5
-
--- 160,169 ----
mov (sp)+,r1
mov (sp)+,r2
mov (sp)+,r3
! mov (sp)+,(sp)
! rts pc
.data
0: <f xxxx\n>
.even
.text
diff -c as.old/as23.s as/as23.s
*** as.old/as23.s Sun Feb 8 14:26:13 1987
--- as/as23.s Sun Dec 24 02:04:13 1989
***************
*** 33,39 ****
movb dotrel,r0
asl r0
cmp dot,txtsiz-4(r0)
! blos ealoop
mov dot,txtsiz-4(r0)
eal1:
jmp ealoop
--- 33,41 ----
movb dotrel,r0
asl r0
cmp dot,txtsiz-4(r0)
! bhi 8f
! jmp ealoop
! 8:
mov dot,txtsiz-4(r0)
eal1:
jmp ealoop
***************
*** 43,49 ****
bhis 1f
cmp r4,$2
beq 3f
! jsr r5,error; 'x
br assem
1:
tstb passno
--- 45,52 ----
bhis 1f
cmp r4,$2
beq 3f
! mov $'x,-(sp)
! jsr pc,error
br assem
1:
tstb passno
***************
*** 56,62 ****
cmp r0,$34
ble 5f
6:
! jsr r5,error; 'm
5:
bic $37,(r4)
bis dotrel,(r4)
--- 59,66 ----
cmp r0,$34
ble 5f
6:
! mov $'m,-(sp)
! jsr pc,error
5:
bic $37,(r4)
bis dotrel,(r4)
***************
*** 67,73 ****
2:
cmp dot,2(r4)
beq assem
! jsr r5,error; 'p
br assem
3:
mov numval,r4
--- 71,78 ----
2:
cmp dot,2(r4)
beq assem
! mov $'p,-(sp)
! jsr pc,error
br assem
3:
mov numval,r4
***************
*** 107,118 ****
tst (sp)+
br dotmax
2:
! jsr r5,error; '.
br ealoop
1:
cmp r3,$40
bne 1f
! jsr r5,error; 'r
1:
bic $37,(r1)
bic $!37,r3
--- 112,125 ----
tst (sp)+
br dotmax
2:
! mov $'.,-(sp)
! jsr pc,error
br ealoop
1:
cmp r3,$40
bne 1f
! mov $'r,-(sp)
! jsr pc,error
1:
bic $37,(r1)
bic $!37,r3
***************
*** 162,165 ****
mov r1,nxtfb(r4)
asr r4
rts pc
-
--- 169,171 ----
diff -c as.old/as24.s as/as24.s
*** as.old/as24.s Sun Feb 8 14:26:13 1987
--- as/as24.s Sun Dec 24 18:01:10 1989
***************
*** 6,30 ****
oset:
mov r2,-(sp)
mov r3,-(sp)
! mov (r5)+,r3
mov r1,r2
! bic $!777,r1
add r3,r1
add $8,r1
mov r1,(r3)+ / next slot
mov r3,r1
! add $1006,r1
mov r1,(r3)+ / buf max
mov r0,(r3)+
mov r2,(r3)+ / seek addr
mov (sp)+,r3
mov (sp)+,r2
! rts r5
putw:
mov r1,-(sp)
mov r2,-(sp)
! mov (r5)+,r2
mov (r2)+,r1 / slot
cmp r1,(r2) / buf max
bhis 1f
--- 6,31 ----
oset:
mov r2,-(sp)
mov r3,-(sp)
! mov 6(sp),r3
mov r1,r2
! bic $!1777,r1
add r3,r1
add $8,r1
mov r1,(r3)+ / next slot
mov r3,r1
! add $2006,r1
mov r1,(r3)+ / buf max
mov r0,(r3)+
mov r2,(r3)+ / seek addr
mov (sp)+,r3
mov (sp)+,r2
! mov (sp)+,(sp)
! rts pc
putw:
mov r1,-(sp)
mov r2,-(sp)
! mov 6(sp),r2
mov (r2)+,r1 / slot
cmp r1,(r2) / buf max
bhis 1f
***************
*** 34,40 ****
1:
tst (r2)+
mov r0,-(sp)
! jsr r5,flush1
mov (sp)+,r0
mov r0,*(r2)+
add $2,-(r2)
--- 35,41 ----
1:
tst (r2)+
mov r0,-(sp)
! jsr pc,flush1
mov (sp)+,r0
mov r0,*(r2)+
add $2,-(r2)
***************
*** 41,50 ****
2:
mov (sp)+,r2
mov (sp)+,r1
! rts r5
flush:
! mov (r5)+,r2
cmp (r2)+,(r2)+
flush1:
--- 42,53 ----
2:
mov (sp)+,r2
mov (sp)+,r1
! mov (sp)+,(sp)
! rts pc
flush:
! mov 2(sp),r2
! mov (sp)+,(sp)
cmp (r2)+,(r2)+
flush1:
***************
*** 51,57 ****
clr -(sp) / lseek(fout, (r2)L+, L_SET)
mov 2(r2),-(sp) / mov (r2)+,0f
mov (r2)+,-(sp) / mov (r2)+,r1
! tst (r2)+ / mov r1,0f+2 / seek address
mov fout,-(sp) / mov fout,r0
jsr pc,_lseek / sys indir; 9f
add $8.,sp / .data
--- 54,60 ----
clr -(sp) / lseek(fout, (r2)L+, L_SET)
mov 2(r2),-(sp) / mov (r2)+,0f
mov (r2)+,-(sp) / mov (r2)+,r1
! tst (r2)+ / mov r1,0f+2
mov fout,-(sp) / mov fout,r0
jsr pc,_lseek / sys indir; 9f
add $8.,sp / .data
***************
*** 58,68 ****
/9: sys lseek; 0:..; ..; 0
/ .text
cmp -(sp),-(sp) / write(fout, <buf>, <len>)
! bic $!777,r1
add r2,r1 / write address
mov r1,-(sp) / { <buf> }
mov r2,r0
! bis $777,-(r2)
add $1,(r2) / new seek addr
adc -(r2)
cmp -(r2),-(r2)
--- 61,71 ----
/9: sys lseek; 0:..; ..; 0
/ .text
cmp -(sp),-(sp) / write(fout, <buf>, <len>)
! bic $!1777,r1
add r2,r1 / write address
mov r1,-(sp) / { <buf> }
mov r2,r0
! bis $1777,-(r2)
add $1,(r2) / new seek addr
adc -(r2)
cmp -(r2),-(r2)
***************
*** 78,86 ****
mov (sp)+,r1
tst r0
jmi wrterr
- rts r5
-
wrterr:
mov $8f-9f,-(sp) / write(1, ERRMSG, strlen(ERRMSG))
mov $9f,-(sp) / mov $1,r0
--- 81,88 ----
mov (sp)+,r1
tst r0
jmi wrterr
+ rts pc
wrterr:
mov $8f-9f,-(sp) / write(1, ERRMSG, strlen(ERRMSG))
mov $9f,-(sp) / mov $1,r0
***************
*** 104,110 ****
blo 1f
cmp r4,$4000
blo 2f
! add $usymtab-4000,r4
rts pc
2:
add $symtab-1000,r4
--- 106,113 ----
blo 1f
cmp r4,$4000
blo 2f
! add usymtab,r4
! sub $4000,r4
rts pc
2:
add $symtab-1000,r4
***************
*** 121,129 ****
bgt 1f
mov r1,-(sp) / protect r1 from library
! mov $512.,-(sp) / read(fin, inbuf, 512)
mov $inbuf,-(sp) / movb fin,r0
! mov fin,-(sp) / sys read; inbuf; 512.
jsr pc,_read / bes 3f
add $6,sp
mov (sp)+,r1
--- 124,132 ----
bgt 1f
mov r1,-(sp) / protect r1 from library
! mov $1024.,-(sp) / read(fin, inbuf, 1024)
mov $inbuf,-(sp) / movb fin,r0
! mov fin,-(sp) / sys read; inbuf; 1024.
jsr pc,_read / bes 3f
add $6,sp
mov (sp)+,r1
diff -c as.old/as26.s as/as26.s
*** as.old/as26.s Sun Feb 8 14:26:14 1987
--- as/as26.s Sun Dec 24 02:41:14 1989
***************
*** 5,12 ****
opline:
mov r4,r0
! jsr r5,betwen; 0; 177
! br 2f
cmp r4,$5
beq opeof
cmp r4,$'<
--- 5,13 ----
opline:
mov r4,r0
! bmi 2f
! cmp r0,$177
! bgt 2f
cmp r4,$5
beq opeof
cmp r4,$'<
***************
*** 26,33 ****
beq xpr
cmp r0,$34 / est data
beq xpr
! jsr r5,betwen; 5; 36
! br xpr
mov 2(r4),-(sp)
mov r0,-(sp)
jsr pc,readop
--- 27,36 ----
beq xpr
cmp r0,$34 / est data
beq xpr
! cmp r0,$5
! blt xpr
! cmp r0,$36
! bgt xpr
mov 2(r4),-(sp)
mov r0,-(sp)
jsr pc,readop
***************
*** 37,43 ****
clr swapf
mov $-1,rlimit
jmp *1f-10.(r0)
!
1:
opl5
opl6
--- 40,46 ----
clr swapf
mov $-1,rlimit
jmp *1f-10.(r0)
! .data
1:
opl5
opl6
***************
*** 65,70 ****
--- 68,74 ----
xxpr
opl35
opl36
+ .text
opeof:
mov $1,line
***************
*** 115,121 ****
asr (sp)
cmp (sp),rlimit
blo 1f
! jsr r5,error; 'x
1:
bis (sp)+,r2
bis (sp)+,r2
--- 119,126 ----
asr (sp)
cmp (sp),rlimit
blo 1f
! mov $'x,-(sp)
! jsr pc,error
1:
bis (sp)+,r2
bis (sp)+,r2
***************
*** 203,210 ****
sub dot,r2
neg r2
mov r2,r0
! jsr r5,betwen; -2; 175
! br 2f
add $4,r2
br 1f
--- 208,217 ----
sub dot,r2
neg r2
mov r2,r0
! cmp r0,$-2
! blt 2f
! cmp r0,$175
! bgt 2f
add $4,r2
br 1f
***************
*** 216,223 ****
dobranch:
sub dot,r2
mov r2,r0
! jsr r5,betwen; -254.; 256.
! br 2f
1:
bit $1,r2
bne 2f
--- 223,232 ----
dobranch:
sub dot,r2
mov r2,r0
! cmp r0,$-254.
! blt 2f
! cmp r0,$256.
! bgt 2f
1:
bit $1,r2
bne 2f
***************
*** 232,238 ****
jsr pc,outw
rts pc
2:
! jsr r5,error; 'b
clr r2
br 3b
--- 241,248 ----
jsr pc,outw
rts pc
2:
! mov $'b,-(sp)
! jsr pc,error
clr r2
br 3b
***************
*** 309,315 ****
tst (sp)+
rts pc
-
/.globl
opl23:
cmp r4,$200
--- 319,324 ----
***************
*** 336,343 ****
mov dot,savdot-4(r1)
tstb passno
beq 1f
! jsr r5,flush; txtp
! jsr r5,flush; relp
mov (sp),r2
asl r2
add $txtseek-[4*25],r2
--- 345,354 ----
mov dot,savdot-4(r1)
tstb passno
beq 1f
! mov $txtp,-(sp)
! jsr pc,flush
! mov $relp,-(sp)
! jsr pc,flush
mov (sp),r2
asl r2
add $txtseek-[4*25],r2
***************
*** 344,355 ****
mov r2,tseekp
mov (r2),r0
mov 2(r2),r1
! jsr r5,oset; txtp
add $trelseek-txtseek,r2
mov (r2),r0
mov 2(r2),r1
mov r2,rseekp
! jsr r5,oset; relp
1:
mov (sp)+,r0
mov savdot-[2*25](r0),dot
--- 355,368 ----
mov r2,tseekp
mov (r2),r0
mov 2(r2),r1
! mov $txtp,-(sp)
! jsr pc,oset
add $trelseek-txtseek,r2
mov (r2),r0
mov 2(r2),r1
mov r2,rseekp
! mov $relp,-(sp)
! jsr pc,oset
1:
mov (sp)+,r0
mov savdot-[2*25](r0),dot
***************
*** 478,484 ****
astar:
tst (sp)
beq 1f
! jsr r5,error; '*
1:
mov $10,(sp)
jsr pc,readop
--- 491,498 ----
astar:
tst (sp)
beq 1f
! mov $'*,-(sp)
! jsr pc,error
1:
mov $10,(sp)
jsr pc,readop
***************
*** 485,491 ****
jmp 4b
errora:
! jsr r5,error; 'a
rts pc
checkreg:
--- 499,506 ----
jmp 4b
errora:
! mov $'a,-(sp)
! jsr pc,error
rts pc
checkreg:
***************
*** 504,516 ****
rts pc
errore:
! jsr r5,error; 'e
rts pc
checkrp:
cmp r4,$')
beq 1f
! jsr r5,error; ')
rts pc
1:
jsr pc,readop
--- 519,533 ----
rts pc
errore:
! mov $'e,-(sp)
! jsr pc,error
rts pc
checkrp:
cmp r4,$')
beq 1f
! mov $'),-(sp)
! jsr pc,error
rts pc
1:
jsr pc,readop
***************
*** 529,537 ****
ble 1f
sub brdelt,r0
1:
! jsr r5,betwen; -254.; 256.
! br 1f
! br 2f
1:
mov r1,-(sp)
bic $!7,(sp)
--- 546,555 ----
ble 1f
sub brdelt,r0
1:
! cmp r0,$-254.
! blt 1f
! cmp r0,$256.
! ble 2f
1:
mov r1,-(sp)
bic $!7,(sp)
diff -c as.old/as27.s as/as27.s
*** as.old/as27.s Sun Feb 8 14:26:14 1987
--- as/as27.s Sun Dec 24 21:29:19 1989
***************
*** 15,29 ****
jsr pc,readop
1:
mov r4,r0
! jsr r5,betwen; 0; 177
! br .+4
! br 7f
movb (r4),r0
tst r0
bne 1f
tstb passno
beq 1f
! jsr r5,error; 'u
1:
tst overlaid
beq 0f
--- 15,31 ----
jsr pc,readop
1:
mov r4,r0
! blt 6f
! cmp r0,$177
! ble 7f
! 6:
movb (r4),r0
tst r0
bne 1f
tstb passno
beq 1f
! mov $'u,-(sp)
! jsr pc,error
1:
tst overlaid
beq 0f
***************
*** 67,73 ****
rts pc
1:
jmp *(r1)
!
esw1:
'+; binop
'-; binop
--- 69,75 ----
rts pc
1:
jmp *(r1)
! .data
esw1:
'+; binop
'-; binop
***************
*** 84,90 ****
2; exnum1
'!; binop
200; 0
!
binop:
cmpb (sp),$'+
beq 1f
--- 86,92 ----
2; exnum1
'!; binop
200; 0
! .text
binop:
cmpb (sp),$'+
beq 1f
***************
*** 111,117 ****
jsr pc,expres1
cmp r4,$']
beq 1f
! jsr r5,error; ']
1:
mov r3,r0
mov r2,r1
--- 113,120 ----
jsr pc,expres1
cmp r4,$']
beq 1f
! mov $'],-(sp)
! jsr pc,error
1:
mov r3,r0
mov r2,r1
***************
*** 128,134 ****
br eoprnd
1:
jmp *(r5)
!
exsw2:
'+; exadd
'-; exsub
--- 131,137 ----
br eoprnd
1:
jmp *(r5)
! .data
exsw2:
'+; exadd
'-; exsub
***************
*** 142,148 ****
'^; excmbin
'!; exnot
200; 0
!
excmbin:
mov r0,r3
br eoprnd
--- 145,151 ----
'^; excmbin
'!; exnot
200; 0
! .text
excmbin:
mov r0,r3
br eoprnd
***************
*** 154,165 ****
clc
ror r2
exlsh:
! jsr r5,combin; relte2
als r1,r2
br eoprnd
exmod:
! jsr r5,combin; relte2
mov r3,r0
mov r2,r3
clr r2
--- 157,170 ----
clc
ror r2
exlsh:
! mov $relte2,r5
! jsr pc,combin
als r1,r2
br eoprnd
exmod:
! mov $relte2,r5
! jsr pc,combin
mov r3,r0
mov r2,r3
clr r2
***************
*** 169,202 ****
br eoprnd
exadd:
! jsr r5,combin; reltp2
add r1,r2
br eoprnd
exsub:
! jsr r5,combin; reltm2
sub r1,r2
br eoprnd
exand:
! jsr r5,combin; relte2
com r1
bic r1,r2
br eoprnd
exor:
! jsr r5,combin; relte2
bis r1,r2
br eoprnd
exmul:
! jsr r5,combin; relte2
mpy r2,r1
mov r1,r2
br eoprnd
exdiv:
! jsr r5,combin; relte2
mov r3,r0
mov r2,r3
clr r2
--- 174,213 ----
br eoprnd
exadd:
! mov $reltp2,r5
! jsr pc,combin
add r1,r2
br eoprnd
exsub:
! mov $reltm2,r5
! jsr pc,combin
sub r1,r2
br eoprnd
exand:
! mov $relte2,r5
! jsr pc,combin
com r1
bic r1,r2
br eoprnd
exor:
! mov $relte2,r5
! jsr pc,combin
bis r1,r2
br eoprnd
exmul:
! mov $relte2,r5
! jsr pc,combin
mpy r2,r1
mov r1,r2
br eoprnd
exdiv:
! mov $relte2,r5
! jsr pc,combin
mov r3,r0
mov r2,r3
clr r2
***************
*** 205,211 ****
br eoprnd
exnot:
! jsr r5,combin; relte2
com r1
add r1,r2
br eoprnd
--- 216,223 ----
br eoprnd
exnot:
! mov $relte2,r5
! jsr pc,combin
com r1
add r1,r2
br eoprnd
***************
*** 230,236 ****
1:
tst r0
beq 1f
! cmp (r5)+,$reltm2
bne 2f
cmp r0,r3
bne 2f
--- 242,248 ----
1:
tst r0
beq 1f
! cmp r5,$reltm2
bne 2f
cmp r0,r3
bne 2f
***************
*** 237,247 ****
mov $1,r3
br 2f
1:
- tst (r5)+
clr r3
2:
bis (sp)+,r3
! rts r5
combin1:
mov r1,-(sp)
clr maxtyp
--- 249,258 ----
mov $1,r3
br 2f
1:
clr r3
2:
bis (sp)+,r3
! rts pc
combin1:
mov r1,-(sp)
clr maxtyp
***************
*** 250,267 ****
mpy $6,r1
mov r3,r0
jsr pc,maprel
! add (r5)+,r0
add r1,r0
movb (r0),r3
bpl 1f
cmp r3,$-1
beq 2f
! jsr r5,error; 'r
2:
mov maxtyp,r3
1:
mov (sp)+,r1
! rts r5
maprel:
cmp r0,$40
--- 261,279 ----
mpy $6,r1
mov r3,r0
jsr pc,maprel
! add r5,r0
add r1,r0
movb (r0),r3
bpl 1f
cmp r3,$-1
beq 2f
! mov $'r,-(sp)
! jsr pc,error
2:
mov maxtyp,r3
1:
mov (sp)+,r1
! rts pc
maprel:
cmp r0,$40
***************
*** 279,285 ****
mov $1,r0
1:
rts pc
!
X = -2
M = -1
reltp2:
--- 291,297 ----
mov $1,r0
1:
rts pc
! .data
X = -2
M = -1
reltp2:
***************
*** 305,308 ****
.byte 0, X, X, X, X, X
.byte 0, X, X, X, X, X
.byte 0, X, X, X, X, X
!
--- 317,320 ----
.byte 0, X, X, X, X, X
.byte 0, X, X, X, X, X
.byte 0, X, X, X, X, X
! .text
diff -c as.old/as28.s as/as28.s
*** as.old/as28.s Sun Feb 8 14:26:14 1987
--- as/as28.s Sun Dec 24 15:13:11 1989
***************
*** 2,12 ****
/
/ as8 -- PDP-11 assembler pass 2
!
qnl: <?\n>
a.out: <a.out\0>
.even
- .data
a.outp: a.out
a.tmp1: 0
--- 2,11 ----
/
/ as8 -- PDP-11 assembler pass 2
! .data
qnl: <?\n>
a.out: <a.out\0>
.even
a.outp: a.out
a.tmp1: 0
***************
*** 67,79 ****
maxtyp: .=.+2
relfil: .=.+2
ibufp: .=.+2
! txtp: .=.+8+512.
! relp: .=.+8+512.
swapf: .=.+2
rlimit: .=.+2
passno: .=.+2
endtable:.=.+2
! usymtab:.=.+20.
! end:
!
.text
--- 66,78 ----
maxtyp: .=.+2
relfil: .=.+2
ibufp: .=.+2
! txtp: .=.+8+1024.
! relp: .=.+8+1024.
swapf: .=.+2
rlimit: .=.+2
passno: .=.+2
endtable:.=.+2
! inbuf: .=.+1024.
! .data
! usymtab: _end
.text
diff -c as.old/as29.s as/as29.s
*** as.old/as29.s Tue Aug 22 17:12:29 1989
--- as/as29.s Sun Dec 24 15:06:33 1989
***************
*** 229,234 ****
--- 229,235 ----
27;000000 /.bss
32;000000 /.comm
+ .text
start:
mov (sp)+,r0
tst (sp)+
***************
*** 263,273 ****
mov r1,a.tmp1
mov (sp)+,a.tmp2
mov (sp)+,a.tmp3
! jsr r5,ofile; a.tmp1
mov r0,txtfil
! jsr r5,ofile; a.tmp2
mov r0,fbfil
! jsr r5,ofile; a.tmp3
mov r0,symf
mov r0,fin
--- 264,277 ----
mov r1,a.tmp1
mov (sp)+,a.tmp2
mov (sp)+,a.tmp3
! mov a.tmp1,-(sp)
! jsr pc,ofile
mov r0,txtfil
! mov a.tmp2,-(sp)
! jsr pc,ofile
mov r0,fbfil
! mov a.tmp3,-(sp)
! jsr pc,ofile
mov r0,symf
mov r0,fin
***************
*** 279,292 ****
mov (sp)+,r1
tst r0
jpl 1f
!
! jsr r5,filerr; a.outp
1:
mov r0,fout
jmp go
!
a.outp1: a.out
!
! / overlaid buffer
! inbuf = start
! . = inbuf+512.
--- 283,293 ----
mov (sp)+,r1
tst r0
jpl 1f
! mov a.outp,-(sp)
! jsr pc,filerr
1:
mov r0,fout
jmp go
! .data
a.outp1: a.out
! .text
More information about the Comp.bugs.2bsd
mailing list