1*45760Sbostic /*- 2*45760Sbostic * Copyright (c) 1986 The Regents of the University of California. 3*45760Sbostic * All rights reserved. 4*45760Sbostic * 5*45760Sbostic * This code is derived from software contributed to Berkeley by 6*45760Sbostic * Computer Consoles Inc. 7*45760Sbostic * 8*45760Sbostic * %sccs.include.redist.c% 9*45760Sbostic * 10*45760Sbostic * @(#)Amull3.c 7.1 (Berkeley) 12/06/90 11*45760Sbostic */ 1229621Ssam 1345699Sbostic #include "align.h" mull3(infop)1429621Ssammull3(infop) process_info *infop; 1529621Ssam /* 1629621Ssam /* Multiply longwords, 3 operands. 1729621Ssam /* 1829621Ssam /*****************************************/ 1929621Ssam { 2029621Ssam register long Register_12; /* Has to be first reg ! */ 2129621Ssam register long result, data0, data1; 2229621Ssam 2329621Ssam data0 = operand(infop,0)->data; 2429621Ssam data1 = operand(infop,1)->data; 2529621Ssam Register_12=psl; 2629621Ssam Set_psl(r12); /* restore the user psl */ 2729621Ssam result = data0 * data1; 2829621Ssam asm (" movpsl r12"); 2929621Ssam New_cc (Register_12); 3029621Ssam write_back (infop,result, operand(infop,2) ); 3129621Ssam } 32