xref: /csrg-svn/sys/tahoe/align/Amovob.c (revision 29617)
1*29617Ssam /*	Amovob.c	1.1	86/07/20	*/
2*29617Ssam 
3*29617Ssam #include "../tahoealign/align.h"
4*29617Ssam movob_op(infop)
5*29617Ssam process_info *infop;
6*29617Ssam /*
7*29617Ssam /*	Move output byte
8*29617Ssam /*
9*29617Ssam /****************************************/
10*29617Ssam {
11*29617Ssam 	register	long	Register_12;	/* Has to be first reg ! */
12*29617Ssam 	register	long	Register_11;
13*29617Ssam 	register	long	Register_10;
14*29617Ssam 	register	long	code;
15*29617Ssam 
16*29617Ssam 
17*29617Ssam 	Register_12 = operand(infop,0)->data;
18*29617Ssam 	Register_11 = operand(infop,1)->address;
19*29617Ssam 	code = writeable(infop, Register_11, 1);
20*29617Ssam 	if ( code == TRUE ) {
21*29617Ssam 		Register_10=psl;
22*29617Ssam 		Set_psl(r10);	/* restore the user psl */
23*29617Ssam 		asm ("	movob	r12,(r11)");
24*29617Ssam 		asm ("	movpsl	r12");
25*29617Ssam 		New_cc (Register_12);
26*29617Ssam 	} else exception (infop, ILL_ACCESS, Register_11, code);
27*29617Ssam }
28