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 * @(#)Asub2.c 7.1 (Berkeley) 12/06/90 11*45760Sbostic */ 1229637Ssam 1345699Sbostic #include "align.h" sub2(infop)1429637Ssamsub2(infop) process_info *infop; 1529637Ssam /* 1629637Ssam /* Subtract , 2 operands. 1729637Ssam /* 1829637Ssam /*****************************************/ 1929637Ssam { 2029637Ssam 2129637Ssam register long Register_12; /* Has to be first reg ! */ 2229637Ssam register long data0, data1, result; 2329637Ssam 2429637Ssam data0 = operand(infop,0)->data; 2529637Ssam data1 = operand(infop,1)->data; 2629637Ssam Register_12=psl; 2729637Ssam Set_psl(r12); /* restore the user psl */ 2829637Ssam result = data1 - data0; /* 32 bits of true result */ 2929637Ssam asm (" movpsl r12"); 3029637Ssam New_cc (Register_12); 3129637Ssam write_back (infop,result, operand(infop,1) ); 3229637Ssam } 33