** Ensures final expression result is in some (any) register ** and return that register. */
| 938 | ** and return that register. |
| 939 | */ |
| 940 | int luaK_exp2anyreg (FuncState *fs, expdesc *e) { |
| 941 | luaK_dischargevars(fs, e); |
| 942 | if (e->k == VNONRELOC) { /* expression already has a register? */ |
| 943 | if (!hasjumps(e)) /* no jumps? */ |
| 944 | return e->u.info; /* result is already in a register */ |
| 945 | if (e->u.info >= luaY_nvarstack(fs)) { /* reg. is not a local? */ |
| 946 | exp2reg(fs, e, e->u.info); /* put final result in it */ |
| 947 | return e->u.info; |
| 948 | } |
| 949 | } |
| 950 | luaK_exp2nextreg(fs, e); /* otherwise, use next available register */ |
| 951 | return e->u.info; |
| 952 | } |
| 953 | |
| 954 | |
| 955 | /* |
no test coverage detected