|
|
1.1 root 1: #include "../machine/alignment.h"
2: aobleq(infop) process_info *infop;
3: /*
4: /* Add one, branch if less or equal.
5: /* Can't use real HW opcodes since we don't want to branch here.
6: /*
7: /*******************************************/
8: {
9: register long limit, index, new_address, complement;
10:
11: limit = operand(infop,0)->data;
12: index = operand(infop,1)->data;
13: complement = limit + ~index;
14: if ( complement < 0){ carry_0; negative_1;} else{negative_0; carry_1;}
15: if ( complement == 0) zero_1; else zero_0;
16: overflow_0;
17: write_back (infop, index+1, operand(infop,1));
18: new_address = operand(infop,2)->address;
19: if (!negative || zero) pc = new_address;
20: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.