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 * @(#)Aadd3.c 7.1 (Berkeley) 12/06/90 11*45760Sbostic */ 1229584Ssam 1345699Sbostic #include "align.h" add3(infop)1429584Ssamadd3(infop) process_info *infop; 1529584Ssam /* 1629584Ssam /* Add , 3 operands. 1729584Ssam /* 1829584Ssam /*****************************************/ 1929584Ssam { 2029584Ssam 2129584Ssam register long Register_12; /* Has to be first reg ! */ 2229584Ssam register long data0, data1, result; 2329584Ssam 2429584Ssam data0 = operand(infop,0)->data; 2529584Ssam data1 = operand(infop,1)->data; 2629584Ssam Register_12=psl; 2729584Ssam Set_psl(r12); /* restore the user psl */ 2829584Ssam result = data0 + data1; /* 32 bits of true result */ 2929584Ssam asm (" movpsl r12"); 3029584Ssam New_cc (Register_12); 3129584Ssam write_back (infop,result, operand(infop,2) ); 3229584Ssam } 33