File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / sys / tahoe / trap.s
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:24:19 2019 UTC (7 years ago) by root
Branches: bsd, MAIN
CVS tags: v12b, v121, HEAD
Power 6/32 Unix version 1.2b

.data
.comm	_hand,4
.comm	_user_psl,4
.comm	_nblkdev,4
.comm	_nchrdev,4
.comm	_nswdev,4
.comm	_mpid,4
.comm	_runin,1
.comm	_runout,1
.comm	_runrun,4
.comm	_kmapwnt,1
.comm	_curpri,1
.comm	_maxmem,4
.comm	_physmem,4
.comm	_nswap,4
.comm	_updlock,4
.comm	_rablock,4
.comm	_rasize,4
.comm	_rootdev,2
.comm	_dumpdev,2
.comm	_dumplo,4
.comm	_swapdev,2
.comm	_argdev,2
.comm	_noproc,4
.comm	_panicstr,4
.comm	_wantin,4
.comm	_boothowto,4
.comm	_selwait,4
.comm	_intenable,4
.comm	_clk_enable,4
.comm	_zdmap,136
.comm	_dmmin,4
.comm	_dmmax,4
.comm	_dmtext,4
.comm	_ckey_cache,255
.comm	_dkey_cache,255
.comm	_ckey_cnt,510
.comm	_dkey_cnt,510
.comm	_pidhash,126
.comm	_proc,4
.comm	_procNPROC,4
.comm	_nproc,4
.comm	_qs,256
.comm	_whichqs,4
.comm	_acctbuf,32
.comm	_acctp,4
.comm	_hostid,4
.comm	_hostname,32
.comm	_hostnamelen,4
.comm	_boottime,8
.comm	_time,8
.comm	_tz,8
.comm	_hz,4
.comm	_phz,4
.comm	_tick,4
.comm	_lbolt,4
.comm	_avenrun,24
.comm	_sysent,0
.comm	_nsysent,4
.text
LL0:.align	1
.globl	_trap
.data	1
L123:.ascii	"reserved addressing mode\0"
.text
.data	1
L125:.ascii	"illegal opcode\0"
.text
.data	1
L127:.ascii	"reserved operand\0"
.text
.data	1
L129:.ascii	"breakpoint\0"
.text
.data	1
L131:.ascii	"kernel call\0"
.text
.data	1
L133:.ascii	"arithmetic exception\0"
.text
.data	1
L135:.ascii	"system forced exception\0"
.text
.data	1
L137:.ascii	"limit fault\0"
.text
.data	1
L139:.ascii	"illegal access type\0"
.text
.data	1
L141:.ascii	"trace trap\0"
.text
.data	1
L143:.ascii	"page fault\0"
.text
.data	1
L145:.ascii	"page table fault\0"
.text
.data	1
L147:.ascii	"alignment fault\0"
.text
.data	1
L149:.ascii	"kernel stack not valid\0"
.text
.data	1
L153:.ascii	"System trap (%s), code = %x, pc = %x\12\0"
.text
.data	1
L155:.ascii	"trap\0"
.text
.data	1
L173:.ascii	"ptable fault\0"
.text
.data	1
L184:.ascii	"KSP NOT VALID.\12\0"
.text
.set	L112,0xE00
.data
.text
_trap:.word	L112
subl3	$80,fp,sp
addl3	$24,fp,r11
movl	_u+1580,-64(fp)
movl	_u+1576,-68(fp)
andl3	$16777216,-4(r11),r0
cmpl	r0,$16777216
jneq	L116
orl2	$32,8(fp)
movl	r11,_u+144
L116:movl	8(fp),r0
casel	r0,$7,$40
.align 1
L2000000:
.word	L162-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L175-L2000000
.word	L172-L2000000
.word	L119-L2000000
.word	L183-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L160-L2000000
.word	L160-L2000000
.word	L160-L2000000
.word	L181-L2000000
.word	L119-L2000000
.word	L119-L2000000
.word	L167-L2000000
.word	L162-L2000000
.word	L168-L2000000
.word	L156-L2000000
.word	L181-L2000000
.word	L119-L2000000
.word	L175-L2000000
.word	L172-L2000000
.word	L160-L2000000
.word	L183-L2000000
L119:movl	8(fp),r0
casel	r0,$0,$15
.align 1
L2000001:
.word	L122-L2000001
.word	L124-L2000001
.word	L126-L2000001
.word	L128-L2000001
.word	L120-L2000001
.word	L130-L2000001
.word	L132-L2000001
.word	L134-L2000001
.word	L136-L2000001
.word	L138-L2000001
.word	L140-L2000001
.word	L120-L2000001
.word	L142-L2000001
.word	L144-L2000001
.word	L146-L2000001
.word	L148-L2000001
L120:pushl	16(fp)
pushl	12(fp)
pushl	-72(fp)
pushl	$L153
callf	$20,_printf
pushl	$L155
callf	$8,_panic
L156:movl	$10,r10
L117:pushl	r10
pushl	_u+140
callf	$12,_psignal
L166:movl	_u+140,r9
tstb	19(r9)
jneq	L9998
tstl	20(r9)
jeql	L188
bitl	$16,36(r9)
jneq	L9997
orl3	24(r9),28(r9),r0
mcoml	r0,r0
bitl	r0,20(r9)
jeql	L188
L9997:callf	$4,_issig
tstl	r0
jeql	L188
L9998:callf	$4,_psig
L188:movb	12(r9),13(r9)
tstl	_runrun
jeql	L190
callf	$4,_spl8
pushl	r9
callf	$8,_setrq
incl	_u+1636
callf	$4,_swtch
L190:tstl	_u+2168
jeql	L194
movl	$_u+1576,-80(fp)
subl3	-68(fp),*-80(fp),r0
mull2	$1000,r0
movl	-80(fp),r1
subl3	-64(fp),4(r1),r1
divl2	$1000,r1
addl2	r1,r0
divl3	$1000,_tick,r1
divl2	r1,r0
movl	r0,-76(fp)
tstl	r0
jeql	L194
pushl	r0
pushl	$_u+2156
pushl	-8(r11)
callf	$16,_addupc
L194:movb	13(r9),_curpri
ret
L122:movl	$L123,-72(fp)
jbr	L120
L124:movl	$L125,-72(fp)
jbr	L120
L126:movl	$L127,-72(fp)
jbr	L120
L128:movl	$L129,-72(fp)
jbr	L120
L130:movl	$L131,-72(fp)
jbr	L120
L132:movl	$L133,-72(fp)
jbr	L120
L134:movl	$L135,-72(fp)
jbr	L120
L136:movl	$L137,-72(fp)
jbr	L120
L138:movl	$L139,-72(fp)
jbr	L120
L140:movl	$L141,-72(fp)
jbr	L120
L142:movl	$L143,-72(fp)
jbr	L120
L144:movl	$L145,-72(fp)
jbr	L120
L146:movl	$L147,-72(fp)
jbr	L120
L148:movl	$L149,-72(fp)
jbr	L120
L160:andl3	$-33,8(fp),_u+1440
movl	$4,r10
jbr	L117
L162:andl2	$-257,_u+68
tstl	_user_psl
jeql	L163
andl2	$-257,*_user_psl
L163:movl	_u+140,r0
bitl	$2097152,36(r0)
jeql	L166
tstl	_u+2168
jeql	L166
pushl	$1
pushl	$_u+2156
pushl	16(fp)
callf	$16,_addupc
movl	_u+140,r0
andl2	$-2097153,36(r0)
jbr	L166
L167:movl	12(fp),_u+1440
movl	$8,r10
jbr	L117
L168:pushl	-20(r11)
callf	$8,_grow
tstl	r0
jneq	L166
pushl	12(fp)
callf	$8,_grow
tstl	r0
jneq	L166
movl	$11,r10
jbr	L117
L172:pushl	$L173
callf	$8,_panic
L175:cvtbl	_u+496,r10
pushl	12(fp)
callf	$8,_fastreclaim
tstl	r0
jneq	L177
pushl	$0
pushl	12(fp)
callf	$12,_pagein
L177:cvtlb	r10,_u+496
cmpl	8(fp),$12
jneq	L166
ret
L181:andl2	$-17,-4(r11)
movl	$5,r10
jbr	L117
L183:movl	$9,r10
pushl	$L184
callf	$8,_printf
jbr	L117
.align	1
.globl	_syscall
.data	1
L202:.ascii	"syscall\0"
.text
.set	L197,0xF80
.data
.text
_syscall:.word	L197
subl3	$80,fp,sp
addl3	$24,fp,r11
movl	_u+1580,-64(fp)
movl	_u+1576,-68(fp)
andl3	$16777216,-4(r11),r0
cmpl	r0,$16777216
jeql	L201
pushl	$L202
callf	$8,_panic
L201:movl	r11,_u+144
cmpl	12(fp),$139
jneq	L203
callf	$4,_sigcleanup
jbr	L205
L203:addl3	$4,-24(r11),r10
clrb	_u+496
subl3	$2,16(fp),-72(fp)
cmpl	12(fp),$63
jlequ	L206
decl	-72(fp)
cmpl	12(fp),$127
jlequ	L206
decl	-72(fp)
cmpl	12(fp),$32767
jlequ	L206
subl2	$2,-72(fp)
L206:cmpl	12(fp),_nsysent
jlssu	L9996
movl	$_sysent+504,r0
jbr	L9995
L9996:shll	$3,12(fp),r0
addl2	$_sysent,r0
L9995:movl	r0,r8
cmpl	r8,$_sysent
jneq	L209
pushl	r10
callf	$8,_fuword
movl	r0,r9
addl2	$4,r10
cmpl	12(fp),_nsysent
jlssu	L9994
movl	$_sysent+504,r0
jbr	L9993
L9994:shll	$3,12(fp),r0
addl2	$_sysent,r0
L9993:movl	r0,r8
L209:shll	$2,(r8),r9
jeql	L211
	prober $1,(r10),r9
bnequ	ok
movb	$14,_u+496
jbr	L212
ok:pushl	r9
pushl	$_u+404
pushl	r10
callf	$16,_bcopy
L211:movl	$_u+404,_u+436
movl	_u+404,_u+1884
clrl	_u+500
movl	-80(r11),_u+504
pushl	$_u+440
callf	$8,_setjmp
tstl	r0
jeql	L215
tstb	_u+496
jneq	L217
tstb	_u+508
jneq	L217
movb	$4,_u+496
jbr	L217
L215:clrb	_u+508
calls	$4,*4(r8)
L217:cmpb	_u+508,$1
jneq	L218
movl	-72(fp),16(fp)
jbr	L205
L218:tstb	_u+496
jeql	L220
L212:cvtbl	_u+496,-84(r11)
orl2	$1,-4(r11)
jbr	L205
L220:andl2	$-2,-4(r11)
movl	_u+500,-84(r11)
movl	_u+504,-80(r11)
L205:movl	_u+140,r7
tstb	19(r7)
jneq	L9992
tstl	20(r7)
jeql	L222
bitl	$16,36(r7)
jneq	L9991
orl3	24(r7),28(r7),r0
mcoml	r0,r0
bitl	r0,20(r7)
jeql	L222
L9991:callf	$4,_issig
tstl	r0
jeql	L222
L9992:callf	$4,_psig
L222:movb	12(r7),13(r7)
tstl	_runrun
jeql	L223
callf	$4,_spl8
pushl	r7
callf	$8,_setrq
incl	_u+1636
callf	$4,_swtch
L223:tstl	_u+2168
jeql	L224
movl	$_u+1576,-80(fp)
subl3	-68(fp),*-80(fp),r0
mull2	$1000,r0
movl	-80(fp),r1
subl3	-64(fp),4(r1),r1
divl2	$1000,r1
addl2	r1,r0
divl3	$1000,_tick,r1
divl2	r1,r0
movl	r0,-76(fp)
tstl	r0
jeql	L224
pushl	r0
pushl	$_u+2156
pushl	-8(r11)
callf	$16,_addupc
L224:movb	13(r7),_curpri
ret
.align	1
.globl	_nosys
.set	L227,0x0
.data
.text
_nosys:.word	L227
cmpl	_u+1224,$1
jeql	L9990
cmpl	_u+1224,$3
jneq	L231
L9990:movb	$22,_u+496
L231:pushl	$12
pushl	_u+140
callf	$12,_psignal
ret
.align	1
.globl	_nullsys
.set	L233,0x0
.data
.text
_nullsys:.word	L233
ret
.align	1
.globl	_fpemulate
.data
.align	2
L304:.long	0x00000000 # .float 0
.text
.data
.align	2
L307:.long	0x00000000 # .float 0
.text
.set	L238,0x800
.data
.text
_fpemulate:.word	L238
subl3	$100,fp,sp
addl3	$32,fp,r11
clrl	-64(fp)
movl	r11,_u+144
andl3	$255,20(fp),r0
cmpl	r0,$199
jeql	L265
jgtr	L273
cmpl	r0,$135
jeql	L261
jgtr	L274
cmpl	r0,$119
jeql	L260
jgtr	L275
cmpl	r0,$118
jneq	L256
movl	$_Kcvtlf,-72(fp)
L2000003:movl	$2,-80(fp)
andl2	$-129,-4(r11)
jbr	L256
L2000005:cmpl	r0,$2
jeql	L289
cmpl	r0,$3
jeql	L292
jbr	L279
L2000007:orl2	$2,-4(r11)
bitl	$32,-4(r11)
jeql	L297
L2000009:movl	$1,20(fp)
ret
L260:movl	$_Kcvtld,-76(fp)
L2000011:movl	$3,-80(fp)
orl2	$128,-4(r11)
jbr	L256
L261:movl	$_Kcvtdl,-68(fp)
movl	$1,-80(fp)
movl	8(fp),-84(fp)
jbr	L256
L263:movl	$_Kcvtdf,-72(fp)
jbr	L2000003
L265:movl	$_Kaddd,-76(fp)
L2000013:movl	$3,-80(fp)
jbr	L256
L267:movl	$_Ksubd,-76(fp)
jbr	L2000013
L269:movl	$_Kmuld,-76(fp)
jbr	L2000013
L270:movl	$_Kdivf,-72(fp)
jbr	L2000012
L271:movl	$_Kdivd,-76(fp)
jbr	L2000013
L275:cmpl	r0,$134
jneq	L256
movl	$_Kcvtfl,-68(fp)
movl	$1,-80(fp)
movl	12(fp),-84(fp)
jbr	L256
L274:cmpl	r0,$166
jeql	L263
jgtr	L276
cmpl	r0,$151
jneq	L256
movl	$_Kcvtfd,-76(fp)
jbr	L2000011
L276:cmpl	r0,$198
jneq	L256
movl	$_Kaddf,-72(fp)
jbr	L2000012
L2000015:cmpl	r0,$214
jneq	L256
movl	$_Ksubf,-72(fp)
jbr	L2000012
L2000017:cmpl	r0,$215
jeql	L267
jleq	L2000015
cmpl	r0,$230
jneq	L256
movl	$_Kmulf,-72(fp)
L2000012:movl	$2,-80(fp)
jbr	L256
L273:cmpl	r0,$231
jeql	L269
jleq	L2000017
cmpl	r0,$247
jeql	L271
jgtr	L256
cmpl	r0,$246
jeql	L270
L256:movl	-80(fp),r0
cmpl	r0,$1
jneq	L2000005
subl3	$64,fp,-(sp)
pushl	16(fp)
pushl	12(fp)
pushl	8(fp)
pushl	4(fp)
calls	$24,*-68(fp)
movl	r0,-88(fp)
bitl	$4,-64(fp)
jeql	L282
orl2	$2,-4(r11)
bitl	$32,-4(r11)
jneq	L2000009
clrl	-88(fp)
L282:tstl	-88(fp)
jneq	L284
orl2	$4,-4(r11)
L284:tstl	-88(fp)
jgeq	L285
orl2	$8,-4(r11)
L285:bitl	$256,20(fp)
jeql	L286
cmpl	-84(fp),$12
jleq	L287
L287:subl3	$21,-84(fp),r0
movl	-88(fp),(r11)[r0]
ret
L286:pushl	$4
pushl	-84(fp)
subl3	$88,fp,-(sp)
callf	$16,_copyout
ret
L289:subl3	$64,fp,-(sp)
pushl	16(fp)
pushl	12(fp)
pushl	8(fp)
pushl	4(fp)
calls	$24,*-72(fp)
movl	r0,-92(fp)
tstl	r0
jneq	L290
orl2	$4,-4(r11)
L290:tstl	-92(fp)
jlss	L2000008
jbr	L279
L292:subl3	$64,fp,-(sp)
pushl	16(fp)
pushl	12(fp)
pushl	8(fp)
pushl	4(fp)
calls	$24,*-76(fp)
movl	r1,-96(fp)
movl	r0,-100(fp)
tstl	r0
jneq	L293
tstl	r1
jneq	L293
orl2	$4,-4(r11)
L293:tstl	-100(fp)
jgeq	L279
L2000008:orl2	$8,-4(r11)
L279:bitl	$4,-64(fp)
jneq	L2000007
bitl	$8,-64(fp)
jeql	L297
bitl	$64,-4(r11)
jeql	L297
movl	$2,20(fp)
ret
L297:movl	-80(fp),r0
cmpl	r0,$2
jeql	L302
cmpl	r0,$3
jeql	L305
L300:ret
L302:bitl	$4,-64(fp)
jneq	L9989
bitl	$8,-64(fp)
jeql	L303
L9989:movl	L304,-92(fp)
orl2	$4,-4(r11)
L303:movl	-92(fp),_u+96
jbr	L300
L305:bitl	$4,-64(fp)
jneq	L9988
bitl	$8,-64(fp)
jeql	L306
L9988:clrl	-96(fp)
movl	L307,-100(fp)
orl2	$4,-4(r11)
L306:movl	-96(fp),_u+100
movl	-100(fp),_u+96
jbr	L300


unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.