diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_parse.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/lj_parse.c b/src/lj_parse.c index 8a6eeec6..d93ed990 100644 --- a/src/lj_parse.c +++ b/src/lj_parse.c | |||
@@ -61,12 +61,12 @@ typedef struct ExpDesc { | |||
61 | } ExpDesc; | 61 | } ExpDesc; |
62 | 62 | ||
63 | /* Macros for expressions. */ | 63 | /* Macros for expressions. */ |
64 | #define expr_hasnojump(e) ((e)->t != (e)->f) | 64 | #define expr_hasjump(e) ((e)->t != (e)->f) |
65 | 65 | ||
66 | #define expr_isk(e) ((e)->k <= VKLAST) | 66 | #define expr_isk(e) ((e)->k <= VKLAST) |
67 | #define expr_isk_nojump(e) (expr_isk(e) && !expr_hasnojump(e)) | 67 | #define expr_isk_nojump(e) (expr_isk(e) && !expr_hasjump(e)) |
68 | #define expr_isnumk(e) ((e)->k == VKNUM) | 68 | #define expr_isnumk(e) ((e)->k == VKNUM) |
69 | #define expr_isnumk_nojump(e) (expr_isnumk(e) && !expr_hasnojump(e)) | 69 | #define expr_isnumk_nojump(e) (expr_isnumk(e) && !expr_hasjump(e)) |
70 | #define expr_isstrk(e) ((e)->k == VKSTR) | 70 | #define expr_isstrk(e) ((e)->k == VKSTR) |
71 | 71 | ||
72 | #define expr_numV(e) check_exp(expr_isnumk((e)), numV(&(e)->u.nval)) | 72 | #define expr_numV(e) check_exp(expr_isnumk((e)), numV(&(e)->u.nval)) |
@@ -500,7 +500,7 @@ static void expr_toreg(FuncState *fs, ExpDesc *e, BCReg reg) | |||
500 | expr_toreg_nobranch(fs, e, reg); | 500 | expr_toreg_nobranch(fs, e, reg); |
501 | if (e->k == VJMP) | 501 | if (e->k == VJMP) |
502 | jmp_append(fs, &e->t, e->u.s.info); /* Add it to the true jump list. */ | 502 | jmp_append(fs, &e->t, e->u.s.info); /* Add it to the true jump list. */ |
503 | if (expr_hasnojump(e)) { /* Discharge expression with branches. */ | 503 | if (expr_hasjump(e)) { /* Discharge expression with branches. */ |
504 | BCPos jend, jfalse = NO_JMP, jtrue = NO_JMP; | 504 | BCPos jend, jfalse = NO_JMP, jtrue = NO_JMP; |
505 | if (jmp_novalue(fs, e->t) || jmp_novalue(fs, e->f)) { | 505 | if (jmp_novalue(fs, e->t) || jmp_novalue(fs, e->f)) { |
506 | BCPos jval = (e->k == VJMP) ? NO_JMP : bcemit_jmp(fs); | 506 | BCPos jval = (e->k == VJMP) ? NO_JMP : bcemit_jmp(fs); |
@@ -533,7 +533,7 @@ static BCReg expr_toanyreg(FuncState *fs, ExpDesc *e) | |||
533 | { | 533 | { |
534 | expr_discharge(fs, e); | 534 | expr_discharge(fs, e); |
535 | if (e->k == VNONRELOC) { | 535 | if (e->k == VNONRELOC) { |
536 | if (!expr_hasnojump(e)) return e->u.s.info; /* Already in a register. */ | 536 | if (!expr_hasjump(e)) return e->u.s.info; /* Already in a register. */ |
537 | if (e->u.s.info >= fs->nactvar) { | 537 | if (e->u.s.info >= fs->nactvar) { |
538 | expr_toreg(fs, e, e->u.s.info); /* Discharge to temp. register. */ | 538 | expr_toreg(fs, e, e->u.s.info); /* Discharge to temp. register. */ |
539 | return e->u.s.info; | 539 | return e->u.s.info; |
@@ -546,7 +546,7 @@ static BCReg expr_toanyreg(FuncState *fs, ExpDesc *e) | |||
546 | /* Partially discharge expression to a value. */ | 546 | /* Partially discharge expression to a value. */ |
547 | static void expr_toval(FuncState *fs, ExpDesc *e) | 547 | static void expr_toval(FuncState *fs, ExpDesc *e) |
548 | { | 548 | { |
549 | if (expr_hasnojump(e)) | 549 | if (expr_hasjump(e)) |
550 | expr_toanyreg(fs, e); | 550 | expr_toanyreg(fs, e); |
551 | else | 551 | else |
552 | expr_discharge(fs, e); | 552 | expr_discharge(fs, e); |
@@ -671,7 +671,7 @@ static void bcemit_branch_t(FuncState *fs, ExpDesc *e) | |||
671 | pc = NO_JMP; /* Never jump. */ | 671 | pc = NO_JMP; /* Never jump. */ |
672 | else if (e->k == VJMP) | 672 | else if (e->k == VJMP) |
673 | invertcond(fs, e), pc = e->u.s.info; | 673 | invertcond(fs, e), pc = e->u.s.info; |
674 | else if (e->k == VKFALSE && !expr_hasnojump(e)) | 674 | else if (e->k == VKFALSE && !expr_hasjump(e)) |
675 | pc = bcemit_jmp(fs); /* Always jump. */ | 675 | pc = bcemit_jmp(fs); /* Always jump. */ |
676 | else | 676 | else |
677 | pc = bcemit_branch(fs, e, 0); | 677 | pc = bcemit_branch(fs, e, 0); |
@@ -689,7 +689,7 @@ static void bcemit_branch_f(FuncState *fs, ExpDesc *e) | |||
689 | pc = NO_JMP; /* Never jump. */ | 689 | pc = NO_JMP; /* Never jump. */ |
690 | else if (e->k == VJMP) | 690 | else if (e->k == VJMP) |
691 | pc = e->u.s.info; | 691 | pc = e->u.s.info; |
692 | else if (e->k == VKTRUE && !expr_hasnojump(e)) | 692 | else if (e->k == VKTRUE && !expr_hasjump(e)) |
693 | pc = bcemit_jmp(fs); /* Always jump. */ | 693 | pc = bcemit_jmp(fs); /* Always jump. */ |
694 | else | 694 | else |
695 | pc = bcemit_branch(fs, e, 1); | 695 | pc = bcemit_branch(fs, e, 1); |