summaryrefslogtreecommitdiff
path: root/lcode.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2018-01-18 14:24:31 -0200
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2018-01-18 14:24:31 -0200
commit28f215ecf8b8d987f0bf64f3154b0e2fbc5e5168 (patch)
tree914cb9026d0aaff827d2bf00aed98ec9f71d8e6a /lcode.c
parentd2fb34ac8865b2a7ec944a449d90145739030a98 (diff)
downloadlua-28f215ecf8b8d987f0bf64f3154b0e2fbc5e5168.tar.gz
lua-28f215ecf8b8d987f0bf64f3154b0e2fbc5e5168.tar.bz2
lua-28f215ecf8b8d987f0bf64f3154b0e2fbc5e5168.zip
comments
Diffstat (limited to 'lcode.c')
-rw-r--r--lcode.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/lcode.c b/lcode.c
index ae024da8..e0620791 100644
--- a/lcode.c
+++ b/lcode.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lcode.c,v 2.149 2018/01/09 11:21:41 roberto Exp $ 2** $Id: lcode.c,v 2.149 2018/01/09 11:24:12 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*/
@@ -656,6 +656,7 @@ void luaK_setoneret (FuncState *fs, expdesc *e) {
656 656
657/* 657/*
658** Ensure that expression 'e' is not a variable. 658** Ensure that expression 'e' is not a variable.
659** (Expression still may have jump lists.)
659*/ 660*/
660void luaK_dischargevars (FuncState *fs, expdesc *e) { 661void luaK_dischargevars (FuncState *fs, expdesc *e) {
661 switch (e->k) { 662 switch (e->k) {
@@ -703,6 +704,7 @@ void luaK_dischargevars (FuncState *fs, expdesc *e) {
703/* 704/*
704** Ensures expression value is in register 'reg' (and therefore 705** Ensures expression value is in register 'reg' (and therefore
705** 'e' will become a non-relocatable expression). 706** 'e' will become a non-relocatable expression).
707** (Expression still may have jump lists.)
706*/ 708*/
707static void discharge2reg (FuncState *fs, expdesc *e, int reg) { 709static void discharge2reg (FuncState *fs, expdesc *e, int reg) {
708 luaK_dischargevars(fs, e); 710 luaK_dischargevars(fs, e);
@@ -749,6 +751,7 @@ static void discharge2reg (FuncState *fs, expdesc *e, int reg) {
749 751
750/* 752/*
751** Ensures expression value is in any register. 753** Ensures expression value is in any register.
754** (Expression still may have jump lists.)
752*/ 755*/
753static void discharge2anyreg (FuncState *fs, expdesc *e) { 756static void discharge2anyreg (FuncState *fs, expdesc *e) {
754 if (e->k != VNONRELOC) { /* no fixed register yet? */ 757 if (e->k != VNONRELOC) { /* no fixed register yet? */
@@ -778,8 +781,8 @@ static int need_value (FuncState *fs, int list) {
778 781
779 782
780/* 783/*
781** Ensures final expression result (including results from its jump 784** Ensures final expression result (which includes results from its
782** lists) is in register 'reg'. 785** jump ** lists) is in register 'reg'.
783** If expression has jumps, need to patch these jumps either to 786** If expression has jumps, need to patch these jumps either to
784** its final position or to "load" instructions (for those tests 787** its final position or to "load" instructions (for those tests
785** that do not produce values). 788** that do not produce values).
@@ -809,8 +812,7 @@ static void exp2reg (FuncState *fs, expdesc *e, int reg) {
809 812
810 813
811/* 814/*
812** Ensures final expression result (including results from its jump 815** Ensures final expression result is in next available register.
813** lists) is in next available register.
814*/ 816*/
815void luaK_exp2nextreg (FuncState *fs, expdesc *e) { 817void luaK_exp2nextreg (FuncState *fs, expdesc *e) {
816 luaK_dischargevars(fs, e); 818 luaK_dischargevars(fs, e);
@@ -821,8 +823,8 @@ void luaK_exp2nextreg (FuncState *fs, expdesc *e) {
821 823
822 824
823/* 825/*
824** Ensures final expression result (including results from its jump 826** Ensures final expression result is in some (any) register
825** lists) is in some (any) register and return that register. 827** and return that register.
826*/ 828*/
827int luaK_exp2anyreg (FuncState *fs, expdesc *e) { 829int luaK_exp2anyreg (FuncState *fs, expdesc *e) {
828 luaK_dischargevars(fs, e); 830 luaK_dischargevars(fs, e);
@@ -840,8 +842,8 @@ int luaK_exp2anyreg (FuncState *fs, expdesc *e) {
840 842
841 843
842/* 844/*
843** Ensures final expression result is either in a register or in an 845** Ensures final expression result is either in a register
844** upvalue. 846** or in an upvalue.
845*/ 847*/
846void luaK_exp2anyregup (FuncState *fs, expdesc *e) { 848void luaK_exp2anyregup (FuncState *fs, expdesc *e) {
847 if (e->k != VUPVAL || hasjumps(e)) 849 if (e->k != VUPVAL || hasjumps(e))
@@ -850,8 +852,8 @@ void luaK_exp2anyregup (FuncState *fs, expdesc *e) {
850 852
851 853
852/* 854/*
853** Ensures final expression result is either in a register or it is 855** Ensures final expression result is either in a register
854** a constant. 856** or it is a constant.
855*/ 857*/
856void luaK_exp2val (FuncState *fs, expdesc *e) { 858void luaK_exp2val (FuncState *fs, expdesc *e) {
857 if (hasjumps(e)) 859 if (hasjumps(e))