1*29637Ssam /* Asub2.c 1.1 86/07/20 */ 2*29637Ssam 3*29637Ssam #include "../tahoealign/align.h" 4*29637Ssam sub2(infop) process_info *infop; 5*29637Ssam /* 6*29637Ssam /* Subtract , 2 operands. 7*29637Ssam /* 8*29637Ssam /*****************************************/ 9*29637Ssam { 10*29637Ssam 11*29637Ssam register long Register_12; /* Has to be first reg ! */ 12*29637Ssam register long data0, data1, result; 13*29637Ssam 14*29637Ssam data0 = operand(infop,0)->data; 15*29637Ssam data1 = operand(infop,1)->data; 16*29637Ssam Register_12=psl; 17*29637Ssam Set_psl(r12); /* restore the user psl */ 18*29637Ssam result = data1 - data0; /* 32 bits of true result */ 19*29637Ssam asm (" movpsl r12"); 20*29637Ssam New_cc (Register_12); 21*29637Ssam write_back (infop,result, operand(infop,1) ); 22*29637Ssam } 23