(top int, save *int, reg *int, inc int)
| 201 | } |
| 202 | |
| 203 | func (cd *codeStore) PropagateKMV(top int, save *int, reg *int, inc int) { |
| 204 | lastinst := cd.Last() |
| 205 | if opGetArgA(lastinst) >= top { |
| 206 | switch opGetOpCode(lastinst) { |
| 207 | case OP_LOADK: |
| 208 | cindex := opGetArgBx(lastinst) |
| 209 | if cindex <= opMaxIndexRk { |
| 210 | cd.Pop() |
| 211 | *save = opRkAsk(cindex) |
| 212 | return |
| 213 | } |
| 214 | case OP_MOVE: |
| 215 | cd.Pop() |
| 216 | *save = opGetArgB(lastinst) |
| 217 | return |
| 218 | } |
| 219 | } |
| 220 | *save = *reg |
| 221 | *reg = *reg + inc |
| 222 | } |
| 223 | |
| 224 | func (cd *codeStore) PropagateMV(top int, save *int, reg *int, inc int) { |
| 225 | lastinst := cd.Last() |
no test coverage detected