|
|
1.1 root 1: /* Adivl3.c 1.1 86/07/20 */
2:
3: #include "../tahoealign/align.h"
4: divl3(infop) process_info *infop;
5: /*
6: /* Arithmetic division, 3 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,2));
25: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.