Skip to content

Commit 8a3948c

Browse files
authored
Merge pull request #95 from viluon/feature/annotate-loadbools
Annotate LOADBOOLs
2 parents 3e9f52c + 5cd169e commit 8a3948c

File tree

4 files changed

+19
-12
lines changed

4 files changed

+19
-12
lines changed

src/main/java/org/squiddev/cobalt/Print.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,13 @@ public static void printOpcode(StringBuilder out, Prototype f, int pc, boolean e
151151
out.append("\t; ");
152152
printConstant(out, f, bx);
153153
}
154+
case OP_LOADBOOL -> {
155+
out.append("\t; ");
156+
out.append(b != 0 ? "true" : "false");
157+
if (c != 0) {
158+
out.append(", to ").append(pc + 3);
159+
}
160+
}
154161
case OP_GETUPVAL, OP_SETUPVAL -> {
155162
out.append("\t; ");
156163
printUpvalueName(out, f, b);

src/test/resources/bytecode-compiler/listing/goto-close-1.lc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
7 [12] GETTABUP 1 0 -1 ; _ENV "assert"
1111
8 [12] EQ 1 0 -2 ; - true
1212
9 [12] JMP 0 1 ; to 11
13-
10 [12] LOADBOOL 2 0 1
14-
11 [12] LOADBOOL 2 1 0
13+
10 [12] LOADBOOL 2 0 1 ; false, to 12
14+
11 [12] LOADBOOL 2 1 0 ; true
1515
12 [12] CALL 1 2 1
1616
13 [12] RETURN 0 1
1717
constants (2) for goto-close-1.lua:0:

src/test/resources/bytecode-compiler/listing/goto-if-1.lc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11

22
%main <goto-if-1.lua:0,0> (15 instructions, 60 bytes at goto-if-1.lua:0)
33
0 param, 4 slots, 1 upvalues, 2 locals, 1 constants, 0 functions
4-
1 [1] LOADBOOL 0 1 0
5-
2 [2] LOADBOOL 1 0 0
6-
3 [3] LOADBOOL 2 1 0
4+
1 [1] LOADBOOL 0 1 0 ; true
5+
2 [2] LOADBOOL 1 0 0 ; false
6+
3 [3] LOADBOOL 2 1 0 ; true
77
4 [3] TEST 2 1
88
5 [3] JMP 0 2 ; to 8
99
6 [4] JMP 0 5 ; to 12
10-
7 [6] LOADBOOL 1 1 0
10+
7 [6] LOADBOOL 1 1 0 ; true
1111
8 [8] TEST 0 0
1212
9 [8] JMP 0 2 ; to 12
13-
10 [9] LOADBOOL 0 0 0
13+
10 [9] LOADBOOL 0 0 0 ; false
1414
11 [9] JMP 0 -5 ; to 7
1515
12 [13] GETTABUP 2 0 -1 ; _ENV "assert"
1616
13 [13] MOVE 3 1

src/test/resources/bytecode-compiler/listing/goto-nil.lc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
3 [4] GETTABUP 2 0 -1 ; _ENV "assert"
77
4 [4] EQ 1 1 -2 ; - nil
88
5 [4] JMP 0 1 ; to 7
9-
6 [4] LOADBOOL 3 0 1
10-
7 [4] LOADBOOL 3 1 0
9+
6 [4] LOADBOOL 3 0 1 ; false, to 8
10+
7 [4] LOADBOOL 3 1 0 ; true
1111
8 [4] CALL 2 2 1
12-
9 [5] LOADBOOL 1 1 0
12+
9 [5] LOADBOOL 1 1 0 ; true
1313
10 [6] EQ 0 0 -2 ; - nil
1414
11 [6] JMP 0 3 ; to 15
1515
12 [7] LOADK 0 -3 ; 1
@@ -21,8 +21,8 @@
2121
18 [12] JMP 0 2 ; to 21
2222
19 [12] EQ 1 1 -5 ; - true
2323
20 [12] JMP 0 1 ; to 22
24-
21 [12] LOADBOOL 3 0 1
25-
22 [12] LOADBOOL 3 1 0
24+
21 [12] LOADBOOL 3 0 1 ; false, to 23
25+
22 [12] LOADBOOL 3 1 0 ; true
2626
23 [12] CALL 2 2 1
2727
24 [12] RETURN 0 1
2828
constants (5) for goto-nil.lua:0:

0 commit comments

Comments
 (0)