|
|
1.1 root 1: /* Acasel.c 1.1 86/07/20 */
2:
3: #include "../tahoealign/align.h"
4: casel(infop) process_info *infop;
5: /*
6: /* Case (longword).
7: /* Can't use real HW opcode, don't want to branch out !
8: /*
9: /***********************************/
10: {
11: register long selector, base;
12: register unsigned temporary, limit;
13:
14: selector = operand(infop,0)->data;
15: base = operand(infop,1)->data;
16: limit = operand(infop,2)->data;
17: if (pc & 1) pc += 1; /* Displacements are aligned ! */
18: temporary = selector - base;
19: if (temporary <= limit)
20: pc = pc + get_word (infop, (char *)(pc + 2*temporary) );
21: else pc = pc + limit*2 + 2;
22: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.