fun update_pipe(var inst1 : InstInfo1) { val ready = inst1.ready?cvt(ulong); val ii = 0; while(ii < 2) { val funit = inst1.reserve[ii]; if(ii < pipe.resources?length) { var funits = pipe.resources[+ii]; funits = funits | funit; } else pipe.resources?push_back(funit); val delay = 0; if(funit == 0x20 ) delay = cache_load(address)?static(); else if(funit == 0x40 ) delay = cache_store(address)?static(); val jj = 0; while(jj < delay) { ii = ii + 1; if(ready > 0) ready = ready + 1; if(ii < pipe.resources?length) { var funits = pipe.resources[+ii]; funits = funits | funit; } else pipe.resources?push_back(funit); jj = jj + 1; } ii = ii + 1; } if(ready > 0) { ii = 0; while(ii < destQ?length) { pipe.instructions?push_back(struct { ready = ready?cvt(uchar), dest = destQ[+ii] }); ii = ii + 1; } } }