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