1 /* Aaoblss.c 1.1 86/07/20 */ 2 3 #include "../tahoealign/align.h" 4 aoblss(infop) process_info *infop; 5 /* 6 /* Add one, branch if less than. 7 /* Can't use real HW opcode, don't want to branch out of here ! 8 /* 9 /*******************************************/ 10 { 11 register long limit, index, new_address, complement; 12 13 limit = operand(infop,0)->data; 14 index = operand(infop,1)->data; 15 complement = limit + ~index; 16 if ( complement < 0){ carry_0; negative_1;}else{carry_1; negative_0;} 17 if ( complement == 0) zero_1; else zero_0; 18 overflow_0; 19 write_back (infop,index+1, operand(infop,1)); 20 new_address = operand(infop,2)->address; 21 if (!negative && !zero) pc = new_address; 22 } 23