diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2021-02-24 11:14:44 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2021-02-24 11:14:44 -0300 |
commit | 59c88f846d1dcd901a4420651aedf27816618923 (patch) | |
tree | 0e76a066c383cbc99cc2f60b8b4f97c5df45e479 /lparser.c | |
parent | c03c527fd207b4ad8f5a8e0f4f2c176bd227c979 (diff) | |
download | lua-59c88f846d1dcd901a4420651aedf27816618923.tar.gz lua-59c88f846d1dcd901a4420651aedf27816618923.tar.bz2 lua-59c88f846d1dcd901a4420651aedf27816618923.zip |
Broadening the use of branch hints
More uses of macros 'likely'/'unlikely' (renamed to
'l_likely'/'l_unlikely'), both in range (extended to the
libraries) and in scope (extended to hooks, stack growth).
Diffstat (limited to 'lparser.c')
-rw-r--r-- | lparser.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -128,7 +128,7 @@ static void checknext (LexState *ls, int c) { | |||
128 | ** in line 'where' (if that is not the current line). | 128 | ** in line 'where' (if that is not the current line). |
129 | */ | 129 | */ |
130 | static void check_match (LexState *ls, int what, int who, int where) { | 130 | static void check_match (LexState *ls, int what, int who, int where) { |
131 | if (unlikely(!testnext(ls, what))) { | 131 | if (l_unlikely(!testnext(ls, what))) { |
132 | if (where == ls->linenumber) /* all in the same line? */ | 132 | if (where == ls->linenumber) /* all in the same line? */ |
133 | error_expected(ls, what); /* do not need a complex message */ | 133 | error_expected(ls, what); /* do not need a complex message */ |
134 | else { | 134 | else { |
@@ -517,7 +517,7 @@ static void solvegoto (LexState *ls, int g, Labeldesc *label) { | |||
517 | Labellist *gl = &ls->dyd->gt; /* list of goto's */ | 517 | Labellist *gl = &ls->dyd->gt; /* list of goto's */ |
518 | Labeldesc *gt = &gl->arr[g]; /* goto to be resolved */ | 518 | Labeldesc *gt = &gl->arr[g]; /* goto to be resolved */ |
519 | lua_assert(eqstr(gt->name, label->name)); | 519 | lua_assert(eqstr(gt->name, label->name)); |
520 | if (unlikely(gt->nactvar < label->nactvar)) /* enter some scope? */ | 520 | if (l_unlikely(gt->nactvar < label->nactvar)) /* enter some scope? */ |
521 | jumpscopeerror(ls, gt); | 521 | jumpscopeerror(ls, gt); |
522 | luaK_patchlist(ls->fs, gt->pc, label->pc); | 522 | luaK_patchlist(ls->fs, gt->pc, label->pc); |
523 | for (i = g; i < gl->n - 1; i++) /* remove goto from pending list */ | 523 | for (i = g; i < gl->n - 1; i++) /* remove goto from pending list */ |
@@ -1435,7 +1435,7 @@ static void breakstat (LexState *ls) { | |||
1435 | */ | 1435 | */ |
1436 | static void checkrepeated (LexState *ls, TString *name) { | 1436 | static void checkrepeated (LexState *ls, TString *name) { |
1437 | Labeldesc *lb = findlabel(ls, name); | 1437 | Labeldesc *lb = findlabel(ls, name); |
1438 | if (unlikely(lb != NULL)) { /* already defined? */ | 1438 | if (l_unlikely(lb != NULL)) { /* already defined? */ |
1439 | const char *msg = "label '%s' already defined on line %d"; | 1439 | const char *msg = "label '%s' already defined on line %d"; |
1440 | msg = luaO_pushfstring(ls->L, msg, getstr(name), lb->line); | 1440 | msg = luaO_pushfstring(ls->L, msg, getstr(name), lb->line); |
1441 | luaK_semerror(ls, msg); /* error */ | 1441 | luaK_semerror(ls, msg); /* error */ |
@@ -1520,7 +1520,7 @@ static void fixforjump (FuncState *fs, int pc, int dest, int back) { | |||
1520 | int offset = dest - (pc + 1); | 1520 | int offset = dest - (pc + 1); |
1521 | if (back) | 1521 | if (back) |
1522 | offset = -offset; | 1522 | offset = -offset; |
1523 | if (unlikely(offset > MAXARG_Bx)) | 1523 | if (l_unlikely(offset > MAXARG_Bx)) |
1524 | luaX_syntaxerror(fs->ls, "control structure too long"); | 1524 | luaX_syntaxerror(fs->ls, "control structure too long"); |
1525 | SETARG_Bx(*jmp, offset); | 1525 | SETARG_Bx(*jmp, offset); |
1526 | } | 1526 | } |