xref: /csrg-svn/sys/tahoe/align/Amovob.c (revision 45699)
1*45699Sbostic /*	Amovob.c	1.2	90/12/04	*/
229617Ssam 
3*45699Sbostic #include "align.h"
429617Ssam movob_op(infop)
529617Ssam process_info *infop;
629617Ssam /*
729617Ssam /*	Move output byte
829617Ssam /*
929617Ssam /****************************************/
1029617Ssam {
1129617Ssam 	register	long	Register_12;	/* Has to be first reg ! */
1229617Ssam 	register	long	Register_11;
1329617Ssam 	register	long	Register_10;
1429617Ssam 	register	long	code;
1529617Ssam 
1629617Ssam 
1729617Ssam 	Register_12 = operand(infop,0)->data;
1829617Ssam 	Register_11 = operand(infop,1)->address;
1929617Ssam 	code = writeable(infop, Register_11, 1);
2029617Ssam 	if ( code == TRUE ) {
2129617Ssam 		Register_10=psl;
2229617Ssam 		Set_psl(r10);	/* restore the user psl */
2329617Ssam 		asm ("	movob	r12,(r11)");
2429617Ssam 		asm ("	movpsl	r12");
2529617Ssam 		New_cc (Register_12);
2629617Ssam 	} else exception (infop, ILL_ACCESS, Register_11, code);
2729617Ssam }
28