EVXR64                                                          29-NOV-1994 09:53:02    MACRO-64 V1.1-087                   Page   1
                                                                28-NOV-1994 21:51:55    SYS$SYSDEVICE:[EVERHART.JT]EVXR64.M64;9

					      1 	.title	evxr64
					      2 ; do REI. One parameter given, namely the PSL desired.
					      3 ; Expected to be called from kernel
					      4 ;
					      5 ; Uses a nonstandard call internally to get the address on the
					      6 ; stack right. Assumes the Alpha Architecture manual desc. of
					      7 ; what PAL REI code does is accurate.
            0000000000000001 0000	      8 evax=1
            0000000000000001 0000	      9 alpha=1
            0000000000000001 0000	     10 bigpage=1
            0000000000000020 0000	     11 addressbits=32
                             0000	     12 	.library "sys$library:lib.mlb"
                             0000	     13 	driver_code
                         00000000  1			.PSECT	$$$115_LINKAGE,5,PIC,CON,REL,LCL,NOSHR,NOEXE,RD,WRT
                         00000000  1			.PSECT  $$$115_DRIVER,5,NOWRT,EXE,PIC
                             0000	     29 evxr64::
                    43DF0412 0000	     30 	addq	sp,r31,r18	;to check initial sp
                    43C8153E 0004	     31 	subq	sp,#64,sp	;need 8 cells
                    B61E0038 0008	     32 	stq	r16,56(sp)	;save user's psl
                    B45E0000 000C	     33 	stq	r2,00(sp)
                    B47E0008 0010	     34 	stq	r3,08(sp)
                    B49E0010 0014	     35 	stq	r4,16(sp)
                    B4BE0018 0018	     36 	stq	r5,24(sp)
                    B4DE0020 001C	     37 	stq	r6,32(sp)
                    B4FE0028 0020	     38 	stq	r7,40(sp)	;preserve r2-r7
                             0024	     39 ;48(sp) needs to be the return pc
					     40 	.begin_exact
                    D2200000 0024	     41 	bsr	r17,1$		;address of 1$ instruction to r17
                    00000086 0028	     42 1$:	imb
                    42229411 002C	     43 	addq	r17,#<2$-1$>,r17	;get address of 2$
                    B63E0030 0030	     44 	stq	r17,48(sp)
                    00000086 0034	     45 	imb		; pal code rei doesn't do barrier so do here
                    00000092 0038	     46 	rei	;via palcode
                             003C	     47 2$:	; should get here with caller's psl
                    00000086 003C	     48 	imb
                    47FF041F 0040	     49 	bis	r31,r31,r31	;ensure we can break somewhere
					     50 	.end_exact
                    6BFA0000 0044	     51 	jmp	r31,(r26)	; return to caller.
                             0048	     52 	.end

EVXR64                          Machine Code Listing            29-NOV-1994 09:53:02    MACRO-64 V1.1-087                   Page   2
                                $$$115_DRIVER                   28-NOV-1994 21:51:55    SYS$SYSDEVICE:[EVERHART.JT]EVXR64.M64;9

				.PSECT	$$$115_DRIVER, 5, PIC, CON, REL, LCL,-
					NOSHR, EXE, RD, NOWRT
	     0000	EVXR64::
43DF0412     0000		ADDQ	SP, R31, R18				; SP, R31, R18				    ; 000030
43C8153E     0004		SUBQ	SP, 64, SP				; SP, 64, SP				    ; 000031
B61E0038     0008		STQ	R16, 56(SP)				; R16, 56(SP)				    ; 000032
B45E0000     000C		STQ	R2, (SP)				; R2, (SP)				    ; 000033
B47E0008     0010		STQ	R3, 8(SP)				; R3, 8(SP)				    ; 000034
B49E0010     0014		STQ	R4, 16(SP)				; R4, 16(SP)				    ; 000035
B4BE0018     0018		STQ	R5, 24(SP)				; R5, 24(SP)				    ; 000036
B4DE0020     001C		STQ	R6, 32(SP)				; R6, 32(SP)				    ; 000037
B4FE0028     0020		STQ	R7, 40(SP)				; R7, 40(SP)				    ; 000038
D2200000     0024		BSR	R17, 1$					; R17, 1$				    ; 000041
	     0028	1$:
00000086     0028		IMB						; 					    ; 000042
42229411     002C		ADDQ	R17, 20, R17				; R17, 20, R17				    ; 000043
B63E0030     0030		STQ	R17, 48(SP)				; R17, 48(SP)				    ; 000044
00000086     0034		IMB						; 					    ; 000045
00000092     0038		REI						; 					    ; 000046
	     003C	2$:
00000086     003C		IMB						; 					    ; 000048
47FF041F     0040		BIS	R31, R31, R31				; R31, R31, R31				    ; 000049
6BFA0000     0044		JMP	R31, R26				; R31, R26				    ; 000051

Routine Size: 72 bytes,    Routine Base: $$$115_DRIVER + 0000



Total lines assembled:        273


Command: MACRO/ALPHA/LIST/SHOW=BINARY/MACH EVXR64
