aboutsummaryrefslogtreecommitdiff
path: root/lcode.c
diff options
context:
space:
mode:
Diffstat (limited to 'lcode.c')
-rw-r--r--lcode.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/lcode.c b/lcode.c
index 96b01e37..bb15a1cd 100644
--- a/lcode.c
+++ b/lcode.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lcode.c,v 1.116 2003/02/27 12:33:07 roberto Exp roberto $ 2** $Id: lcode.c,v 1.117 2003/04/03 13:35:34 roberto Exp roberto $
3** Code generator for Lua 3** Code generator for Lua
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -88,7 +88,7 @@ static int luaK_getjump (FuncState *fs, int pc) {
88 88
89static Instruction *getjumpcontrol (FuncState *fs, int pc) { 89static Instruction *getjumpcontrol (FuncState *fs, int pc) {
90 Instruction *pi = &fs->f->code[pc]; 90 Instruction *pi = &fs->f->code[pc];
91 if (pc >= 1 && testOpMode(GET_OPCODE(*(pi-1)), OpModeT)) 91 if (pc >= 1 && testTMode(GET_OPCODE(*(pi-1))))
92 return pi-1; 92 return pi-1;
93 else 93 else
94 return pi; 94 return pi;
@@ -462,8 +462,7 @@ void luaK_self (FuncState *fs, expdesc *e, expdesc *key) {
462 462
463static void invertjump (FuncState *fs, expdesc *e) { 463static void invertjump (FuncState *fs, expdesc *e) {
464 Instruction *pc = getjumpcontrol(fs, e->info); 464 Instruction *pc = getjumpcontrol(fs, e->info);
465 lua_assert(testOpMode(GET_OPCODE(*pc), OpModeT) && 465 lua_assert(testTMode(GET_OPCODE(*pc)) && GET_OPCODE(*pc) != OP_TEST);
466 GET_OPCODE(*pc) != OP_TEST);
467 SETARG_A(*pc, !(GETARG_A(*pc))); 466 SETARG_A(*pc, !(GETARG_A(*pc)));
468} 467}
469 468
@@ -703,12 +702,15 @@ int luaK_code (FuncState *fs, Instruction i, int line) {
703 702
704int luaK_codeABC (FuncState *fs, OpCode o, int a, int b, int c) { 703int luaK_codeABC (FuncState *fs, OpCode o, int a, int b, int c) {
705 lua_assert(getOpMode(o) == iABC); 704 lua_assert(getOpMode(o) == iABC);
705 lua_assert(getBMode(o) != OpArgN || b == 0);
706 lua_assert(getCMode(o) != OpArgN || c == 0);
706 return luaK_code(fs, CREATE_ABC(o, a, b, c), fs->ls->lastline); 707 return luaK_code(fs, CREATE_ABC(o, a, b, c), fs->ls->lastline);
707} 708}
708 709
709 710
710int luaK_codeABx (FuncState *fs, OpCode o, int a, unsigned int bc) { 711int luaK_codeABx (FuncState *fs, OpCode o, int a, unsigned int bc) {
711 lua_assert(getOpMode(o) == iABx || getOpMode(o) == iAsBx); 712 lua_assert(getOpMode(o) == iABx || getOpMode(o) == iAsBx);
713 lua_assert(getCMode(o) == OpArgN);
712 return luaK_code(fs, CREATE_ABx(o, a, bc), fs->ls->lastline); 714 return luaK_code(fs, CREATE_ABx(o, a, bc), fs->ls->lastline);
713} 715}
714 716