| 108 | def __init__(self): self.instructions, self.labels, self.pos = [], {}, 0 |
| 109 | def label(self, name): self.labels[name] = self.pos |
| 110 | def emit(self, inst, target=None): |
| 111 | self.instructions.append(inst) |
| 112 | inst._target, inst._pos = target, self.pos |
| 113 | self.pos += inst.size() |
| 114 | return inst |
| 115 | def waitcnt(self, lgkm=None, vm=None): |
| 116 | # Wait for memory operations. lgkm=N waits until N lgkm ops remain, vm=N waits until N vmem ops remain. |
| 117 | vmcnt, lgkmcnt, expcnt = vm if vm is not None else 63, lgkm if lgkm is not None else 63, 7 |