|
|
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.