|
|
1.1 ! root 1: /* Adivl2.c 1.1 86/07/20 */ ! 2: ! 3: #include "../tahoealign/align.h" ! 4: divl2(infop) process_info *infop; ! 5: /* ! 6: /* Arithmetic division, 2 operands. ! 7: /* ! 8: /**************************************/ ! 9: { ! 10: register long Register_12; /* Has to be first reg ! */ ! 11: register long divident, divisor, result; ! 12: ! 13: divisor = operand(infop,0)->data; ! 14: divident = operand(infop,1)->data; ! 15: if (divisor == 0) { ! 16: exception (infop, ARITHMETIC, 2); ! 17: } else { ! 18: Register_12=psl; ! 19: Set_psl(r12); /* restore the user psl */ ! 20: result = divident / divisor; ! 21: asm (" movpsl r12"); ! 22: New_cc (Register_12); ! 23: } ! 24: write_back (infop,result, operand(infop,1)); ! 25: } ! 26: ! 27:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.