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 } 23