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