1*45759Sbostic /*- 2*45759Sbostic * Copyright (c) 1986 The Regents of the University of California. 3*45759Sbostic * All rights reserved. 4*45759Sbostic * 5*45759Sbostic * This code is derived from software contributed to Berkeley by 6*45759Sbostic * Computer Consoles Inc. 7*45759Sbostic * 8*45759Sbostic * %sccs.include.redist.c% 9*45759Sbostic * 10*45759Sbostic * @(#)Aadd2.c 7.1 (Berkeley) 12/06/90 11*45759Sbostic */ 1229583Ssam 1345699Sbostic #include "align.h" add2(infop)1429583Ssamadd2(infop) process_info *infop; 1529583Ssam /* 1629583Ssam /* Add , 2 operands. 1729583Ssam /* 1829583Ssam /*****************************************/ 1929583Ssam { 2029583Ssam register long Register_12; /* Has to be first reg ! */ 2129583Ssam register long data0, data1, result; 2229583Ssam 2329583Ssam data0 = operand(infop,0)->data; 2429583Ssam data1 = operand(infop,1)->data; 2529583Ssam Register_12=psl; 2629583Ssam Set_psl(r12); /* restore the user psl */ 2729583Ssam result = data0 + data1; /* 32 bits of true result */ 2829583Ssam asm (" movpsl r12"); 2929583Ssam New_cc (Register_12); 3029583Ssam write_back (infop,result, operand(infop,1) ); 3129583Ssam } 32