1 /*- 2 * Copyright (c) 1986 The Regents of the University of California. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Computer Consoles Inc. 7 * 8 * %sccs.include.redist.c% 9 * 10 * @(#)Aediv.c 7.1 (Berkeley) 12/06/90 11 */ 12 13 #include "align.h" 14 int zzz1,zzz2,zzz3,zzz4,zzz5; 15 ediv(infop) process_info *infop; 16 /* 17 /* Extended precision division. 18 /* 19 /***************************************/ 20 { 21 register long Register_12; /* Has to be the first reg !! */ 22 register long Register_11; /* remainder */ 23 register long Register_10; /* quotient */ 24 register long Register_9; /* divident least */ 25 register long Register_8; /* divident most */ 26 register long Register_7; /* divisor */ 27 28 Register_7 = operand(infop, 0)->data; 29 Register_8 = operand(infop, 1)->data; 30 Register_9 = operand(infop, 1)->data2; 31 Register_12=psl; 32 Set_psl(r12); /* restore the user psl */ 33 asm (" ediv r7,r8,r10,r11"); 34 asm (" movpsl r12"); 35 New_cc (Register_12); 36 write_back (infop, Register_10, operand(infop, 2)); 37 write_back (infop, Register_11, operand(infop, 3)); 38 } 39