aboutsummaryrefslogtreecommitdiff
path: root/lvm.c
diff options
context:
space:
mode:
Diffstat (limited to 'lvm.c')
-rw-r--r--lvm.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/lvm.c b/lvm.c
index 64df3762..5cadb252 100644
--- a/lvm.c
+++ b/lvm.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lvm.c,v 1.182 2001/06/08 19:00:57 roberto Exp roberto $ 2** $Id: lvm.c,v 1.183 2001/06/08 19:20:02 roberto Exp roberto $
3** Lua virtual machine 3** Lua virtual machine
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -488,37 +488,37 @@ StkId luaV_execute (lua_State *L, const Closure *cl, StkId base) {
488 } 488 }
489 case OP_TESTEQ: { 489 case OP_TESTEQ: {
490 lua_assert(GET_OPCODE(*pc) == OP_CJMP); 490 lua_assert(GET_OPCODE(*pc) == OP_CJMP);
491 if (luaO_equalObj(RB(i), RKC(i))) dojump(pc, *pc); 491 if (luaO_equalObj(ra, RKC(i))) dojump(pc, *pc);
492 pc++; 492 pc++;
493 break; 493 break;
494 } 494 }
495 case OP_TESTNE: { 495 case OP_TESTNE: {
496 lua_assert(GET_OPCODE(*pc) == OP_CJMP); 496 lua_assert(GET_OPCODE(*pc) == OP_CJMP);
497 if (!luaO_equalObj(RB(i), RKC(i))) dojump(pc, *pc); 497 if (!luaO_equalObj(ra, RKC(i))) dojump(pc, *pc);
498 pc++; 498 pc++;
499 break; 499 break;
500 } 500 }
501 case OP_TESTLT: { 501 case OP_TESTLT: {
502 lua_assert(GET_OPCODE(*pc) == OP_CJMP); 502 lua_assert(GET_OPCODE(*pc) == OP_CJMP);
503 if (luaV_lessthan(L, RB(i), RKC(i))) dojump(pc, *pc); 503 if (luaV_lessthan(L, ra, RKC(i))) dojump(pc, *pc);
504 pc++; 504 pc++;
505 break; 505 break;
506 } 506 }
507 case OP_TESTLE: { /* b <= c === !(c<b) */ 507 case OP_TESTLE: { /* b <= c === !(c<b) */
508 lua_assert(GET_OPCODE(*pc) == OP_CJMP); 508 lua_assert(GET_OPCODE(*pc) == OP_CJMP);
509 if (!luaV_lessthan(L, RKC(i), RB(i))) dojump(pc, *pc); 509 if (!luaV_lessthan(L, RKC(i), ra)) dojump(pc, *pc);
510 pc++; 510 pc++;
511 break; 511 break;
512 } 512 }
513 case OP_TESTGT: { /* b > c === (c<b) */ 513 case OP_TESTGT: { /* b > c === (c<b) */
514 lua_assert(GET_OPCODE(*pc) == OP_CJMP); 514 lua_assert(GET_OPCODE(*pc) == OP_CJMP);
515 if (luaV_lessthan(L, RKC(i), RB(i))) dojump(pc, *pc); 515 if (luaV_lessthan(L, RKC(i), ra)) dojump(pc, *pc);
516 pc++; 516 pc++;
517 break; 517 break;
518 } 518 }
519 case OP_TESTGE: { /* b >= c === !(b<c) */ 519 case OP_TESTGE: { /* b >= c === !(b<c) */
520 lua_assert(GET_OPCODE(*pc) == OP_CJMP); 520 lua_assert(GET_OPCODE(*pc) == OP_CJMP);
521 if (!luaV_lessthan(L, RB(i), RKC(i))) dojump(pc, *pc); 521 if (!luaV_lessthan(L, ra, RKC(i))) dojump(pc, *pc);
522 pc++; 522 pc++;
523 break; 523 break;
524 } 524 }
@@ -550,11 +550,11 @@ StkId luaV_execute (lua_State *L, const Closure *cl, StkId base) {
550 int c; 550 int c;
551 int b = GETARG_B(i); 551 int b = GETARG_B(i);
552 if (b != NO_REG) 552 if (b != NO_REG)
553 L->top = base+b; 553 L->top = ra+b+1;
554 luaD_call(L, ra); 554 luaD_call(L, ra);
555 c = GETARG_C(i); 555 c = GETARG_C(i);
556 if (c != NO_REG) { 556 if (c != NO_REG) {
557 while (L->top < base+c) setnilvalue(L->top++); 557 while (L->top < ra+c) setnilvalue(L->top++);
558 L->top = base + tf->maxstacksize; 558 L->top = base + tf->maxstacksize;
559 } 559 }
560 break; 560 break;
@@ -562,7 +562,7 @@ StkId luaV_execute (lua_State *L, const Closure *cl, StkId base) {
562 case OP_RETURN: { 562 case OP_RETURN: {
563 int b = GETARG_B(i); 563 int b = GETARG_B(i);
564 if (b != NO_REG) 564 if (b != NO_REG)
565 L->top = base+b; 565 L->top = ra+b;
566 return ra; 566 return ra;
567 } 567 }
568 case OP_FORPREP: { 568 case OP_FORPREP: {
@@ -578,10 +578,10 @@ StkId luaV_execute (lua_State *L, const Closure *cl, StkId base) {
578 /* go through */ 578 /* go through */
579 } 579 }
580 case OP_FORLOOP: { 580 case OP_FORLOOP: {
581 if (ttype(ra) != LUA_TNUMBER)
582 luaD_error(L, l_s("`for' index must be a number"));
583 runtime_check(L, ttype(ra+1) == LUA_TNUMBER && 581 runtime_check(L, ttype(ra+1) == LUA_TNUMBER &&
584 ttype(ra+2) == LUA_TNUMBER); 582 ttype(ra+2) == LUA_TNUMBER);
583 if (ttype(ra) != LUA_TNUMBER)
584 luaD_error(L, l_s("`for' index must be a number"));
585 nvalue(ra) += nvalue(ra+2); /* increment index */ 585 nvalue(ra) += nvalue(ra+2); /* increment index */
586 if (nvalue(ra+2) > 0 ? 586 if (nvalue(ra+2) > 0 ?
587 nvalue(ra) <= nvalue(ra+1) : 587 nvalue(ra) <= nvalue(ra+1) :