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;
ediv(infop)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