MCPcopy Create free account
hub / github.com/Achain-Dev/Achain / discharge2reg

Function discharge2reg

src/Chain/libraries/glua/lcode.cpp:445–485  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

443
444
445static void discharge2reg(FuncState *fs, expdesc *e, int reg) {
446 luaK_dischargevars(fs, e);
447 switch (e->k) {
448 case VNIL: {
449 luaK_nil(fs, reg, 1);
450 break;
451 }
452 case VFALSE: case VTRUE: {
453 luaK_codeABC(fs, OP_LOADBOOL, reg, e->k == VTRUE, 0);
454 break;
455 }
456 case VK: {
457 luaK_codek(fs, reg, e->u.info);
458 break;
459 }
460 case VKFLT: {
461 luaK_codek(fs, reg, luaK_numberK(fs, e->u.nval));
462 break;
463 }
464 case VKINT: {
465 luaK_codek(fs, reg, luaK_intK(fs, e->u.ival));
466 break;
467 }
468 case VRELOCABLE: {
469 Instruction *pc = &getcode(fs, e);
470 SETARG_A(*pc, reg);
471 break;
472 }
473 case VNONRELOC: {
474 if (reg != e->u.info)
475 luaK_codeABC(fs, OP_MOVE, reg, e->u.info, 0);
476 break;
477 }
478 default: {
479 lua_assert(e->k == VVOID || e->k == VJMP);
480 return; /* nothing to do... */
481 }
482 }
483 e->u.info = reg;
484 e->k = VNONRELOC;
485}
486
487
488static void discharge2anyreg(FuncState *fs, expdesc *e) {

Callers 2

discharge2anyregFunction · 0.85
exp2regFunction · 0.85

Calls 6

luaK_dischargevarsFunction · 0.85
luaK_nilFunction · 0.85
luaK_codeABCFunction · 0.85
luaK_codekFunction · 0.85
luaK_numberKFunction · 0.85
luaK_intKFunction · 0.85

Tested by

no test coverage detected