fixes from Nigel Hall
This commit is contained in:
		
							parent
							
								
									1d98b5fd02
								
							
						
					
					
						commit
						9258a2a3e9
					
				
					 3 changed files with 18 additions and 23 deletions
				
			
		|  | @ -9,14 +9,7 @@ | ||||||
| 
 | 
 | ||||||
| !r0 contains descriptor addres | !r0 contains descriptor addres | ||||||
| .gto:	 | .gto:	 | ||||||
| 	addr 0(sp), r7		!first put future localbase in sp | 	lprd	fp,8(r0) | ||||||
| 	subd 8(r0), r7 | 	lprd	sp,4(r0) | ||||||
| 	subd 4, r7 | 	movd	0(r0),tos | ||||||
| 	adjspd r7		!done | 	ret	0 | ||||||
| 	movd -4(sp), r1		!save this memory location |  | ||||||
| 	enter[], 0		!adjust local base |  | ||||||
| 	movd r1, 0(sp)		!restore saved memory location |  | ||||||
| 	addr 0(sp), r7		!adjust stackpointer now |  | ||||||
| 	subd 4(r0), r7 |  | ||||||
| 	adjspd r7 |  | ||||||
| 	jump r0			!adjust programcounter |  | ||||||
|  |  | ||||||
|  | @ -7,12 +7,14 @@ | ||||||
| 
 | 
 | ||||||
| 	.sect .text | 	.sect .text | ||||||
| 
 | 
 | ||||||
|  | ! putchar, for a unix | ||||||
|  | 
 | ||||||
| .putchar: | .putchar: | ||||||
| 	save [r0, r1, r2, r3] | 	enter [],0 | ||||||
| 	movqd 4, r0 | 	movqd	1,tos | ||||||
| 	addr 20(sp), r1 | 	addr	8(fp),tos | ||||||
| 	movqd 1, r2 | 	movqd	1,tos | ||||||
| 	xord r3, r3 | 	bsr	_write | ||||||
| 	svc | 	asjspb	-12 | ||||||
| 	restore[r0,r1,r2,r3] | 	exit	[] | ||||||
| 	ret 1 | 	ret	0 | ||||||
|  |  | ||||||
|  | @ -10,12 +10,11 @@ | ||||||
| .trp:	 | .trp:	 | ||||||
| 	save [r0, r1] | 	save [r0, r1] | ||||||
| 	movd 12(sp), r0		!error number | 	movd 12(sp), r0		!error number | ||||||
|  | 	movd r0,tos | ||||||
| 	cmpd r0, 16 | 	cmpd r0, 16 | ||||||
| 	bge 1f | 	bge 1f | ||||||
| 	sbitd r0, r1 | 	tbitd r0, @.ignmask
 | ||||||
| 	andw @.ignmask, r1
 | 	bfs 3f 			!do not trap | ||||||
| 	beq 1f |  | ||||||
| 	br 3f 			!do not trap |  | ||||||
| 1:				!do trap | 1:				!do trap | ||||||
| 	movd @.trpreg, r1
 | 	movd @.trpreg, r1
 | ||||||
| 	cmpqd 0, r1 | 	cmpqd 0, r1 | ||||||
|  | @ -23,6 +22,7 @@ | ||||||
| 	movqd 0, @.trpreg
 | 	movqd 0, @.trpreg
 | ||||||
| 	jsr r1 | 	jsr r1 | ||||||
| 3: | 3: | ||||||
|  | 	adjspd $-4 | ||||||
| 	restore [r0, r1] | 	restore [r0, r1] | ||||||
| 	ret 4 | 	ret 4 | ||||||
| 2:	 | 2:	 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue