1*29606Ssam /* Aediv.c 1.1 86/07/20 */ 2*29606Ssam 3*29606Ssam #include "../tahoealign/align.h" 4*29606Ssam int zzz1,zzz2,zzz3,zzz4,zzz5; 5*29606Ssam ediv(infop) process_info *infop; 6*29606Ssam /* 7*29606Ssam /* Extended precision division. 8*29606Ssam /* 9*29606Ssam /***************************************/ 10*29606Ssam { 11*29606Ssam register long Register_12; /* Has to be the first reg !! */ 12*29606Ssam register long Register_11; /* remainder */ 13*29606Ssam register long Register_10; /* quotient */ 14*29606Ssam register long Register_9; /* divident least */ 15*29606Ssam register long Register_8; /* divident most */ 16*29606Ssam register long Register_7; /* divisor */ 17*29606Ssam 18*29606Ssam Register_7 = operand(infop, 0)->data; 19*29606Ssam Register_8 = operand(infop, 1)->data; 20*29606Ssam Register_9 = operand(infop, 1)->data2; 21*29606Ssam Register_12=psl; 22*29606Ssam Set_psl(r12); /* restore the user psl */ 23*29606Ssam asm (" ediv r7,r8,r10,r11"); 24*29606Ssam asm (" movpsl r12"); 25*29606Ssam New_cc (Register_12); 26*29606Ssam write_back (infop, Register_10, operand(infop, 2)); 27*29606Ssam write_back (infop, Register_11, operand(infop, 3)); 28*29606Ssam } 29