@@ -1198,48 +1198,48 @@ void FuncState::intCode(int reg, lua_Integer i) {
11981198 codek (reg, intK (i));
11991199}
12001200
1201- void FuncState::dischargevars (expdesc& e ) {
1202- switch (e .getKind ()) {
1201+ void FuncState::dischargevars (expdesc& expr ) {
1202+ switch (expr .getKind ()) {
12031203 case VCONST: {
1204- const2exp (const2val (e ), e );
1204+ const2exp (const2val (expr ), expr );
12051205 break ;
12061206 }
12071207 case VLOCAL: { /* already in a register */
1208- int temp = e .getLocalRegister ();
1209- e .setInfo (temp); /* (can't do a direct assignment; values overlap) */
1210- e .setKind (VNONRELOC); /* becomes a non-relocatable value */
1208+ int temp = expr .getLocalRegister ();
1209+ expr .setInfo (temp); /* (can't do a direct assignment; values overlap) */
1210+ expr .setKind (VNONRELOC); /* becomes a non-relocatable value */
12111211 break ;
12121212 }
12131213 case VUPVAL: { /* move value to some (pending) register */
1214- e .setInfo (codeABC (OP_GETUPVAL, 0 , e .getInfo (), 0 ));
1215- e .setKind (VRELOC);
1214+ expr .setInfo (codeABC (OP_GETUPVAL, 0 , expr .getInfo (), 0 ));
1215+ expr .setKind (VRELOC);
12161216 break ;
12171217 }
12181218 case VINDEXUP: {
1219- e .setInfo (codeABC (OP_GETTABUP, 0 , e .getIndexedTableReg (), e .getIndexedKeyIndex ()));
1220- e .setKind (VRELOC);
1219+ expr .setInfo (codeABC (OP_GETTABUP, 0 , expr .getIndexedTableReg (), expr .getIndexedKeyIndex ()));
1220+ expr .setKind (VRELOC);
12211221 break ;
12221222 }
12231223 case VINDEXI: {
1224- freeRegister (e .getIndexedTableReg ());
1225- e .setInfo (codeABC (OP_GETI, 0 , e .getIndexedTableReg (), e .getIndexedKeyIndex ()));
1226- e .setKind (VRELOC);
1224+ freeRegister (expr .getIndexedTableReg ());
1225+ expr .setInfo (codeABC (OP_GETI, 0 , expr .getIndexedTableReg (), expr .getIndexedKeyIndex ()));
1226+ expr .setKind (VRELOC);
12271227 break ;
12281228 }
12291229 case VINDEXSTR: {
1230- freeRegister (e .getIndexedTableReg ());
1231- e .setInfo (codeABC (OP_GETFIELD, 0 , e .getIndexedTableReg (), e .getIndexedKeyIndex ()));
1232- e .setKind (VRELOC);
1230+ freeRegister (expr .getIndexedTableReg ());
1231+ expr .setInfo (codeABC (OP_GETFIELD, 0 , expr .getIndexedTableReg (), expr .getIndexedKeyIndex ()));
1232+ expr .setKind (VRELOC);
12331233 break ;
12341234 }
12351235 case VINDEXED: {
1236- freeRegisters (e .getIndexedTableReg (), e .getIndexedKeyIndex ());
1237- e .setInfo (codeABC (OP_GETTABLE, 0 , e .getIndexedTableReg (), e .getIndexedKeyIndex ()));
1238- e .setKind (VRELOC);
1236+ freeRegisters (expr .getIndexedTableReg (), expr .getIndexedKeyIndex ());
1237+ expr .setInfo (codeABC (OP_GETTABLE, 0 , expr .getIndexedTableReg (), expr .getIndexedKeyIndex ()));
1238+ expr .setKind (VRELOC);
12391239 break ;
12401240 }
12411241 case VVARARG: case VCALL: {
1242- setoneret (e );
1242+ setoneret (expr );
12431243 break ;
12441244 }
12451245 default : break ; /* there is one value available (somewhere) */
@@ -1282,26 +1282,26 @@ void FuncState::exp2val(expdesc& expr) {
12821282 dischargevars (expr);
12831283}
12841284
1285- void FuncState::self (expdesc& e , expdesc& key ) {
1286- exp2anyreg (e ); /* result available via e .getInfo() */
1287- int ereg = e .getInfo (); /* register where 'e' (the receiver) was placed */
1288- freeExpression (e );
1289- int base = getFirstFreeRegister ();
1290- e .setInfo (base ); /* base register for op_self */
1291- e .setKind (VNONRELOC); /* self expression has a fixed register */
1285+ void FuncState::self (expdesc& receiver , expdesc& methodKey ) {
1286+ exp2anyreg (receiver ); /* result available via receiver .getInfo() */
1287+ int receiverReg = receiver .getInfo (); /* register where 'receiver' was placed */
1288+ freeExpression (receiver );
1289+ int baseRegister = getFirstFreeRegister ();
1290+ receiver .setInfo (baseRegister ); /* base register for op_self */
1291+ receiver .setKind (VNONRELOC); /* self expression has a fixed register */
12921292 reserveregs (2 ); /* method and 'self' produced by op_self */
1293- lua_assert (key .getKind () == VKSTR);
1293+ lua_assert (methodKey .getKind () == VKSTR);
12941294 /* is method name a short string in a valid K index? */
1295- if (strisshr (key .getStringValue ()) && exp2K (key )) {
1295+ if (strisshr (methodKey .getStringValue ()) && exp2K (methodKey )) {
12961296 /* can use 'self' opcode */
1297- codeABCk (OP_SELF, base, ereg, key .getInfo (), 0 );
1297+ codeABCk (OP_SELF, baseRegister, receiverReg, methodKey .getInfo (), 0 );
12981298 }
12991299 else { /* cannot use 'self' opcode; use move+gettable */
1300- exp2anyreg (key ); /* put method name in a register - result via key .getInfo() */
1301- codeABC (OP_MOVE, base + 1 , ereg , 0 ); /* copy self to base+1 */
1302- codeABC (OP_GETTABLE, base, ereg, key .getInfo ()); /* get method */
1300+ exp2anyreg (methodKey ); /* put method name in a register - result via methodKey .getInfo() */
1301+ codeABC (OP_MOVE, baseRegister + 1 , receiverReg , 0 ); /* copy self to base+1 */
1302+ codeABC (OP_GETTABLE, baseRegister, receiverReg, methodKey .getInfo ()); /* get method */
13031303 }
1304- freeExpression (key );
1304+ freeExpression (methodKey );
13051305}
13061306
13071307void FuncState::indexed (expdesc& t, expdesc& k) {
@@ -1337,49 +1337,49 @@ void FuncState::indexed(expdesc& t, expdesc& k) {
13371337 t.setIndexedReadOnly (0 ); /* by default, not read-only */
13381338}
13391339
1340- void FuncState::goiftrue (expdesc& e ) {
1341- dischargevars (e );
1342- int pcpos ; /* pc of new jump */
1343- switch (e .getKind ()) {
1340+ void FuncState::goiftrue (expdesc& expr ) {
1341+ dischargevars (expr );
1342+ int jumpPosition ; /* pc of new jump */
1343+ switch (expr .getKind ()) {
13441344 case VJMP: { /* condition? */
1345- negatecondition (e ); /* jump when it is false */
1346- pcpos = e .getInfo (); /* save jump position */
1345+ negatecondition (expr ); /* jump when it is false */
1346+ jumpPosition = expr .getInfo (); /* save jump position */
13471347 break ;
13481348 }
13491349 case VK: case VKFLT: case VKINT: case VKSTR: case VTRUE: {
1350- pcpos = NO_JUMP; /* always true; do nothing */
1350+ jumpPosition = NO_JUMP; /* always true; do nothing */
13511351 break ;
13521352 }
13531353 default : {
1354- pcpos = jumponcond (e , 0 ); /* jump when false */
1354+ jumpPosition = jumponcond (expr , 0 ); /* jump when false */
13551355 break ;
13561356 }
13571357 }
1358- concat (e .getFalseListRef (), pcpos ); /* insert new jump in false list */
1359- patchtohere (e .getTrueList ()); /* true list jumps to here (to go through) */
1360- e .setTrueList (NO_JUMP);
1358+ concat (expr .getFalseListRef (), jumpPosition ); /* insert new jump in false list */
1359+ patchtohere (expr .getTrueList ()); /* true list jumps to here (to go through) */
1360+ expr .setTrueList (NO_JUMP);
13611361}
13621362
1363- void FuncState::goiffalse (expdesc& e ) {
1364- dischargevars (e );
1365- int pcpos ; /* pc of new jump */
1366- switch (e .getKind ()) {
1363+ void FuncState::goiffalse (expdesc& expr ) {
1364+ dischargevars (expr );
1365+ int jumpPosition ; /* pc of new jump */
1366+ switch (expr .getKind ()) {
13671367 case VJMP: {
1368- pcpos = e .getInfo (); /* already jump if true */
1368+ jumpPosition = expr .getInfo (); /* already jump if true */
13691369 break ;
13701370 }
13711371 case VNIL: case VFALSE: {
1372- pcpos = NO_JUMP; /* always false; do nothing */
1372+ jumpPosition = NO_JUMP; /* always false; do nothing */
13731373 break ;
13741374 }
13751375 default : {
1376- pcpos = jumponcond (e , 1 ); /* jump if true */
1376+ jumpPosition = jumponcond (expr , 1 ); /* jump if true */
13771377 break ;
13781378 }
13791379 }
1380- concat (e .getTrueListRef (), pcpos ); /* insert new jump in 't' list */
1381- patchtohere (e .getFalseList ()); /* false list jumps to here (to go through) */
1382- e .setFalseList (NO_JUMP);
1380+ concat (expr .getTrueListRef (), jumpPosition ); /* insert new jump in 't' list */
1381+ patchtohere (expr .getFalseList ()); /* false list jumps to here (to go through) */
1382+ expr .setFalseList (NO_JUMP);
13831383}
13841384
13851385void FuncState::storevar (expdesc& var, expdesc& ex) {
@@ -1415,29 +1415,29 @@ void FuncState::storevar(expdesc& var, expdesc& ex) {
14151415 freeExpression (ex);
14161416}
14171417
1418- void FuncState::setreturns (expdesc& e , int nresults ) {
1419- Instruction *instr = &getinstruction (this , e );
1420- luaY_checklimit (this , nresults + 1 , MAXARG_C, " multiple results" );
1421- if (e .getKind () == VCALL) /* expression is an open function call? */
1422- SETARG_C (*instr, static_cast <unsigned int >(nresults + 1 ));
1418+ void FuncState::setreturns (expdesc& expr , int resultCount ) {
1419+ Instruction *instr = &getinstruction (this , expr );
1420+ luaY_checklimit (this , resultCount + 1 , MAXARG_C, " multiple results" );
1421+ if (expr .getKind () == VCALL) /* expression is an open function call? */
1422+ SETARG_C (*instr, static_cast <unsigned int >(resultCount + 1 ));
14231423 else {
1424- lua_assert (e .getKind () == VVARARG);
1425- SETARG_C (*instr, static_cast <unsigned int >(nresults + 1 ));
1424+ lua_assert (expr .getKind () == VVARARG);
1425+ SETARG_C (*instr, static_cast <unsigned int >(resultCount + 1 ));
14261426 SETARG_A (*instr, static_cast <unsigned int >(getFirstFreeRegister ()));
14271427 reserveregs (1 );
14281428 }
14291429}
14301430
1431- void FuncState::setoneret (expdesc& e ) {
1432- if (e .getKind () == VCALL) { /* expression is an open function call? */
1431+ void FuncState::setoneret (expdesc& expr ) {
1432+ if (expr .getKind () == VCALL) { /* expression is an open function call? */
14331433 /* already returns 1 value */
1434- lua_assert (InstructionView (getinstruction (this , e )).c () == 2 );
1435- e .setKind (VNONRELOC); /* result has fixed position */
1436- e .setInfo (InstructionView (getinstruction (this , e )).a ());
1434+ lua_assert (InstructionView (getinstruction (this , expr )).c () == 2 );
1435+ expr .setKind (VNONRELOC); /* result has fixed position */
1436+ expr .setInfo (InstructionView (getinstruction (this , expr )).a ());
14371437 }
1438- else if (e .getKind () == VVARARG) {
1439- SETARG_C (getinstruction (this , e ), 2 );
1440- e .setKind (VRELOC); /* can relocate its simple result */
1438+ else if (expr .getKind () == VVARARG) {
1439+ SETARG_C (getinstruction (this , expr ), 2 );
1440+ expr .setKind (VRELOC); /* can relocate its simple result */
14411441 }
14421442}
14431443
@@ -1484,22 +1484,22 @@ int FuncState::getlabel() {
14841484 return getPC ();
14851485}
14861486
1487- void FuncState::prefix (UnOpr op , expdesc& e , int line) {
1488- expdesc ef ;
1489- ef .setKind (VKINT);
1490- ef .setIntValue (0 );
1491- ef .setFalseList (NO_JUMP);
1492- ef .setTrueList (NO_JUMP);
1493- dischargevars (e );
1494- switch (op ) {
1495- case UnOpr::OPR_MINUS: case UnOpr::OPR_BNOT: /* use 'ef ' as fake 2nd operand */
1496- if (constfolding (cast_int (op ) + LUA_OPUNM, e, ef ))
1487+ void FuncState::prefix (UnOpr operation , expdesc& expr , int line) {
1488+ expdesc fakeOperand ;
1489+ fakeOperand .setKind (VKINT);
1490+ fakeOperand .setIntValue (0 );
1491+ fakeOperand .setFalseList (NO_JUMP);
1492+ fakeOperand .setTrueList (NO_JUMP);
1493+ dischargevars (expr );
1494+ switch (operation ) {
1495+ case UnOpr::OPR_MINUS: case UnOpr::OPR_BNOT: /* use 'fakeOperand ' as fake 2nd operand */
1496+ if (constfolding (cast_int (operation ) + LUA_OPUNM, expr, fakeOperand ))
14971497 break ;
14981498 /* else */ /* FALLTHROUGH */
14991499 case UnOpr::OPR_LEN:
1500- codeunexpval (unopr2op (op ), e , line);
1500+ codeunexpval (unopr2op (operation ), expr , line);
15011501 break ;
1502- case UnOpr::OPR_NOT: codenot (e ); break ;
1502+ case UnOpr::OPR_NOT: codenot (expr ); break ;
15031503 default : lua_assert (0 );
15041504 }
15051505}
0 commit comments