asar coverage - build #


src/asar/
Coverage:
low: ≥ 0%
medium: ≥ 75.0%
high: ≥ 90.0%
Lines:
179 of 194, 0 excluded
92.3%
Functions:
6 of 7, 0 excluded
85.7%
Branches:
911 of 1532, 0 excluded
59.5%

arch-superfx.cpp
Line Branch Exec Source
1 #include "asar.h"
2 #include "errors.h"
3 #include "assembleblock.h"
4 #include "asar_math.h"
5
6 #include "arch-shared.h"
7
8 #define write1 write1_pick
9
10 void asinit_superfx()
11 {
12 }
13
14 12 void asend_superfx()
15 {
16 12 }
17
18 534 static int64_t getnum_ck(const char* math)
19 {
20
2/2
✓ Branch 2 → 3 taken 178 times.
✓ Branch 2 → 5 taken 356 times.
534 return pass == 2 ? getnum(math) : 0;
21 }
22
23 1284 static void range(int min, int mid, int max)
24 {
25
2/4
✓ Branch 2 → 3 taken 1284 times.
✗ Branch 2 → 4 not taken.
✗ Branch 3 → 4 not taken.
✓ Branch 3 → 5 taken 1284 times.
1284 if (mid<min || mid>max) asar_throw_error(0, error_type_block, error_id_superfx_invalid_register, min, max);
26 1284 }
27
28 enum reg_t {
29 reg_parr,
30 reg_r,
31 reg_hash,
32 };
33 10332 static bool getreg(const char * par, int * reg, reg_t type)
34 {
35 int ret;
36 10332 *reg=-1;
37
6/6
✓ Branch 2 → 3 taken 3444 times.
✓ Branch 2 → 5 taken 6888 times.
✓ Branch 3 → 4 taken 2736 times.
✓ Branch 3 → 5 taken 708 times.
✓ Branch 6 → 7 taken 2736 times.
✓ Branch 6 → 8 taken 7596 times.
10332 if (type==reg_parr && *par++!='(') return false;
38
6/6
✓ Branch 8 → 9 taken 708 times.
✓ Branch 8 → 12 taken 6888 times.
✓ Branch 10 → 11 taken 396 times.
✓ Branch 10 → 12 taken 312 times.
✓ Branch 13 → 14 taken 396 times.
✓ Branch 13 → 15 taken 7200 times.
7596 if (type==reg_parr && to_lower(*par++)!='r') return false;
39
6/6
✓ Branch 15 → 16 taken 4080 times.
✓ Branch 15 → 19 taken 3120 times.
✓ Branch 17 → 18 taken 1860 times.
✓ Branch 17 → 19 taken 2220 times.
✓ Branch 20 → 21 taken 1860 times.
✓ Branch 20 → 22 taken 5340 times.
7200 if (type==reg_r && to_lower(*par++)!='r') return false;
40
6/6
✓ Branch 22 → 23 taken 2808 times.
✓ Branch 22 → 25 taken 2532 times.
✓ Branch 23 → 24 taken 1944 times.
✓ Branch 23 → 25 taken 864 times.
✓ Branch 26 → 27 taken 1944 times.
✓ Branch 26 → 28 taken 3396 times.
5340 if (type==reg_hash && *par++!='#') return false;
41
1/2
✗ Branch 29 → 30 not taken.
✓ Branch 29 → 31 taken 3396 times.
3396 if (!is_digit(par[0])) return false;
42
2/2
✓ Branch 32 → 33 taken 1200 times.
✓ Branch 32 → 37 taken 2196 times.
3396 if (is_digit(par[1]))
43 {
44
2/4
✓ Branch 33 → 34 taken 1200 times.
✗ Branch 33 → 35 not taken.
✗ Branch 34 → 35 not taken.
✓ Branch 34 → 36 taken 1200 times.
1200 if (par[0]!='1' || par[1]>'5') return false;
45 1200 ret=par[1]-'0'+10;
46 1200 par+=2;
47 }
48 else
49 {
50 2196 ret=par[0]-'0';
51 2196 par+=1;
52 }
53
4/6
✓ Branch 38 → 39 taken 312 times.
✓ Branch 38 → 41 taken 3084 times.
✗ Branch 39 → 40 not taken.
✓ Branch 39 → 41 taken 312 times.
✗ Branch 42 → 43 not taken.
✓ Branch 42 → 44 taken 3396 times.
3396 if (type==reg_parr && *par++!=')') return false;
54
1/2
✗ Branch 44 → 45 not taken.
✓ Branch 44 → 46 taken 3396 times.
3396 if (*par) return false;
55 3396 *reg=ret;
56 3396 return true;
57 }
58
59 //for LMS and SMS short addressing forms, check range & evenness
60 192 static bool check_short_addr(int num) {
61
4/7
✓ Branch 2 → 3 taken 192 times.
✗ Branch 2 → 5 not taken.
✓ Branch 3 → 4 taken 192 times.
✗ Branch 3 → 5 not taken.
✗ Branch 4 → 5 not taken.
✓ Branch 4 → 10 taken 96 times.
✓ Branch 4 → 12 taken 96 times.
192 if (num % 2 > 0 || num < 0 || num > 0x1FE) {
62 asar_throw_error(0, error_type_block, error_id_superfx_invalid_short_address, hex((unsigned int)num).data());
63 return false;
64 }
65 192 return true;
66 }
67
68 3654 bool asblock_superfx(char** word, int numwords)
69 {
70 #define is(test) (!stricmp(word[0], test))
71 3654 char * par= nullptr;
72
2/2
✓ Branch 2 → 3 taken 3444 times.
✓ Branch 2 → 4 taken 210 times.
3654 if (word[1]) par= duplicate_string(word[1]);
73 3654 autoptr<char*> parptr=par;
74 if(0);
75
4/7
✓ Branch 5 → 6 taken 1827 times.
✗ Branch 5 → 527 not taken.
✓ Branch 6 → 7 taken 1827 times.
✓ Branch 6 → 8 taken 1827 times.
✗ Branch 6 → 451 not taken.
✗ Branch 7 → 8 not taken.
✓ Branch 7 → 9 taken 1827 times.
3654 else if (assemblemapper(word, numwords)) return true;
76
4/4
✓ Branch 8 → 9 taken 105 times.
✓ Branch 8 → 147 taken 1722 times.
✓ Branch 9 → 10 taken 105 times.
✓ Branch 9 → 116 taken 1722 times.
3654 else if (numwords==1)
77 {
78 #define op(from, to) if (is(from)) { write1(to); return true; }
79 #define op3d(from, to) if (is(from)) { write1(0x3D); write1(to); return true; }
80 #define op3e(from, to) if (is(from)) { write1(0x3E); write1(to); return true; }
81 #define op3f(from, to) if (is(from)) { write1(0x3F); write1(to); return true; }
82
4/7
✓ Branch 9 → 10 taken 105 times.
✗ Branch 9 → 527 not taken.
✓ Branch 10 → 11 taken 6 times.
✓ Branch 10 → 13 taken 204 times.
✓ Branch 11 → 12 taken 6 times.
✗ Branch 11 → 451 not taken.
✗ Branch 11 → 527 not taken.
210 op("STOP", 0x00);
83
5/8
✓ Branch 13 → 14 taken 114 times.
✓ Branch 13 → 16 taken 90 times.
✗ Branch 13 → 527 not taken.
✓ Branch 14 → 15 taken 24 times.
✓ Branch 14 → 17 taken 90 times.
✗ Branch 14 → 451 not taken.
✓ Branch 15 → 16 taken 12 times.
✗ Branch 15 → 527 not taken.
204 op("NOP", 0x01);
84
6/9
✓ Branch 16 → 17 taken 3 times.
✓ Branch 16 → 19 taken 87 times.
✓ Branch 17 → 18 taken 93 times.
✗ Branch 17 → 451 not taken.
✗ Branch 17 → 527 not taken.
✓ Branch 18 → 19 taken 3 times.
✓ Branch 18 → 21 taken 87 times.
✓ Branch 19 → 20 taken 3 times.
✗ Branch 19 → 527 not taken.
180 op("CACHE", 0x02);
85
7/10
✓ Branch 19 → 20 taken 3 times.
✓ Branch 19 → 22 taken 84 times.
✓ Branch 20 → 21 taken 3 times.
✗ Branch 20 → 451 not taken.
✓ Branch 21 → 22 taken 87 times.
✗ Branch 21 → 527 not taken.
✓ Branch 22 → 23 taken 3 times.
✓ Branch 22 → 25 taken 84 times.
✓ Branch 23 → 24 taken 3 times.
✗ Branch 23 → 527 not taken.
174 op("LSR", 0x03);
86
7/10
✓ Branch 22 → 23 taken 3 times.
✓ Branch 22 → 25 taken 81 times.
✓ Branch 23 → 24 taken 3 times.
✗ Branch 23 → 451 not taken.
✓ Branch 25 → 26 taken 84 times.
✗ Branch 25 → 527 not taken.
✓ Branch 26 → 27 taken 3 times.
✓ Branch 26 → 29 taken 81 times.
✓ Branch 27 → 28 taken 3 times.
✗ Branch 27 → 527 not taken.
168 op("ROL", 0x04);
87
7/10
✓ Branch 25 → 26 taken 3 times.
✓ Branch 25 → 28 taken 78 times.
✓ Branch 26 → 27 taken 3 times.
✗ Branch 26 → 451 not taken.
✓ Branch 29 → 30 taken 81 times.
✗ Branch 29 → 527 not taken.
✓ Branch 30 → 31 taken 3 times.
✓ Branch 30 → 33 taken 78 times.
✓ Branch 31 → 32 taken 3 times.
✗ Branch 31 → 527 not taken.
162 op("LOOP", 0x3C);
88
7/10
✓ Branch 28 → 29 taken 3 times.
✓ Branch 28 → 31 taken 75 times.
✓ Branch 29 → 30 taken 3 times.
✗ Branch 29 → 451 not taken.
✓ Branch 33 → 34 taken 78 times.
✗ Branch 33 → 527 not taken.
✓ Branch 34 → 35 taken 3 times.
✓ Branch 34 → 37 taken 75 times.
✓ Branch 35 → 36 taken 3 times.
✗ Branch 35 → 527 not taken.
156 op("ALT1", 0x3D);
89
7/10
✓ Branch 31 → 32 taken 3 times.
✓ Branch 31 → 34 taken 72 times.
✓ Branch 32 → 33 taken 3 times.
✗ Branch 32 → 451 not taken.
✓ Branch 37 → 38 taken 75 times.
✗ Branch 37 → 527 not taken.
✓ Branch 38 → 39 taken 3 times.
✓ Branch 38 → 41 taken 72 times.
✓ Branch 39 → 40 taken 3 times.
✗ Branch 39 → 527 not taken.
150 op("ALT2", 0x3E);
90
7/10
✓ Branch 34 → 35 taken 3 times.
✓ Branch 34 → 37 taken 69 times.
✓ Branch 35 → 36 taken 3 times.
✗ Branch 35 → 451 not taken.
✓ Branch 41 → 42 taken 72 times.
✗ Branch 41 → 527 not taken.
✓ Branch 42 → 43 taken 3 times.
✓ Branch 42 → 45 taken 69 times.
✓ Branch 43 → 44 taken 3 times.
✗ Branch 43 → 527 not taken.
144 op("ALT3", 0x3F);
91
7/10
✓ Branch 37 → 38 taken 3 times.
✓ Branch 37 → 40 taken 66 times.
✓ Branch 38 → 39 taken 3 times.
✗ Branch 38 → 451 not taken.
✓ Branch 45 → 46 taken 69 times.
✗ Branch 45 → 527 not taken.
✓ Branch 46 → 47 taken 3 times.
✓ Branch 46 → 49 taken 66 times.
✓ Branch 47 → 48 taken 3 times.
✗ Branch 47 → 527 not taken.
138 op("PLOT", 0x4C);
92
7/10
✓ Branch 40 → 41 taken 3 times.
✓ Branch 40 → 43 taken 63 times.
✓ Branch 41 → 42 taken 3 times.
✗ Branch 41 → 451 not taken.
✓ Branch 49 → 50 taken 66 times.
✗ Branch 49 → 527 not taken.
✓ Branch 50 → 51 taken 3 times.
✓ Branch 50 → 53 taken 63 times.
✓ Branch 51 → 52 taken 3 times.
✗ Branch 51 → 527 not taken.
132 op("SWAP", 0x4D);
93
7/10
✓ Branch 43 → 44 taken 3 times.
✓ Branch 43 → 46 taken 60 times.
✓ Branch 44 → 45 taken 3 times.
✗ Branch 44 → 451 not taken.
✓ Branch 53 → 54 taken 63 times.
✗ Branch 53 → 527 not taken.
✓ Branch 54 → 55 taken 3 times.
✓ Branch 54 → 57 taken 60 times.
✓ Branch 55 → 56 taken 3 times.
✗ Branch 55 → 527 not taken.
126 op("COLOR", 0x4E);
94
7/10
✓ Branch 46 → 47 taken 3 times.
✓ Branch 46 → 49 taken 57 times.
✓ Branch 47 → 48 taken 3 times.
✗ Branch 47 → 451 not taken.
✓ Branch 57 → 58 taken 60 times.
✗ Branch 57 → 527 not taken.
✓ Branch 58 → 59 taken 3 times.
✓ Branch 58 → 61 taken 57 times.
✓ Branch 59 → 60 taken 3 times.
✗ Branch 59 → 527 not taken.
120 op("NOT", 0x4F);
95
7/10
✓ Branch 49 → 50 taken 3 times.
✓ Branch 49 → 52 taken 54 times.
✓ Branch 50 → 51 taken 3 times.
✗ Branch 50 → 451 not taken.
✓ Branch 61 → 62 taken 57 times.
✗ Branch 61 → 527 not taken.
✓ Branch 62 → 63 taken 3 times.
✓ Branch 62 → 65 taken 54 times.
✓ Branch 63 → 64 taken 3 times.
✗ Branch 63 → 527 not taken.
114 op("MERGE", 0x70);
96
7/10
✓ Branch 52 → 53 taken 3 times.
✓ Branch 52 → 55 taken 51 times.
✓ Branch 53 → 54 taken 3 times.
✗ Branch 53 → 451 not taken.
✓ Branch 65 → 66 taken 54 times.
✗ Branch 65 → 527 not taken.
✓ Branch 66 → 67 taken 3 times.
✓ Branch 66 → 69 taken 51 times.
✓ Branch 67 → 68 taken 3 times.
✗ Branch 67 → 527 not taken.
108 op("SBK", 0x90);
97
7/10
✓ Branch 55 → 56 taken 3 times.
✓ Branch 55 → 58 taken 48 times.
✓ Branch 56 → 57 taken 3 times.
✗ Branch 56 → 451 not taken.
✓ Branch 69 → 70 taken 51 times.
✗ Branch 69 → 527 not taken.
✓ Branch 70 → 71 taken 3 times.
✓ Branch 70 → 73 taken 48 times.
✓ Branch 71 → 72 taken 3 times.
✗ Branch 71 → 527 not taken.
102 op("SEX", 0x95);
98
7/10
✓ Branch 58 → 59 taken 3 times.
✓ Branch 58 → 61 taken 45 times.
✓ Branch 59 → 60 taken 3 times.
✗ Branch 59 → 451 not taken.
✓ Branch 73 → 74 taken 48 times.
✗ Branch 73 → 527 not taken.
✓ Branch 74 → 75 taken 3 times.
✓ Branch 74 → 77 taken 45 times.
✓ Branch 75 → 76 taken 3 times.
✗ Branch 75 → 527 not taken.
96 op("ASR", 0x96);
99
7/10
✓ Branch 61 → 62 taken 3 times.
✓ Branch 61 → 64 taken 42 times.
✓ Branch 62 → 63 taken 3 times.
✗ Branch 62 → 451 not taken.
✓ Branch 77 → 78 taken 45 times.
✗ Branch 77 → 527 not taken.
✓ Branch 78 → 79 taken 3 times.
✓ Branch 78 → 81 taken 42 times.
✓ Branch 79 → 80 taken 3 times.
✗ Branch 79 → 527 not taken.
90 op("ROR", 0x97);
100
7/10
✓ Branch 64 → 65 taken 3 times.
✓ Branch 64 → 67 taken 39 times.
✓ Branch 65 → 66 taken 3 times.
✗ Branch 65 → 451 not taken.
✓ Branch 81 → 82 taken 42 times.
✗ Branch 81 → 527 not taken.
✓ Branch 82 → 83 taken 3 times.
✓ Branch 82 → 85 taken 39 times.
✓ Branch 83 → 84 taken 3 times.
✗ Branch 83 → 527 not taken.
84 op("LOB", 0x9E);
101
7/10
✓ Branch 67 → 68 taken 3 times.
✓ Branch 67 → 70 taken 36 times.
✓ Branch 68 → 69 taken 3 times.
✗ Branch 68 → 451 not taken.
✓ Branch 85 → 86 taken 39 times.
✗ Branch 85 → 527 not taken.
✓ Branch 86 → 87 taken 3 times.
✓ Branch 86 → 89 taken 36 times.
✓ Branch 87 → 88 taken 3 times.
✗ Branch 87 → 527 not taken.
78 op("FMULT", 0x9F);
102
7/10
✓ Branch 70 → 71 taken 3 times.
✓ Branch 70 → 73 taken 33 times.
✓ Branch 71 → 72 taken 3 times.
✗ Branch 71 → 451 not taken.
✓ Branch 89 → 90 taken 36 times.
✗ Branch 89 → 527 not taken.
✓ Branch 90 → 91 taken 3 times.
✓ Branch 90 → 93 taken 33 times.
✓ Branch 91 → 92 taken 3 times.
✗ Branch 91 → 527 not taken.
72 op("HIB", 0xC0);
103
7/10
✓ Branch 73 → 74 taken 3 times.
✓ Branch 73 → 76 taken 30 times.
✓ Branch 74 → 75 taken 3 times.
✗ Branch 74 → 451 not taken.
✓ Branch 93 → 94 taken 33 times.
✗ Branch 93 → 527 not taken.
✓ Branch 94 → 95 taken 3 times.
✓ Branch 94 → 97 taken 30 times.
✓ Branch 95 → 96 taken 3 times.
✗ Branch 95 → 527 not taken.
66 op("GETC", 0xDF);
104
7/10
✓ Branch 76 → 77 taken 3 times.
✓ Branch 76 → 79 taken 27 times.
✓ Branch 77 → 78 taken 3 times.
✗ Branch 77 → 451 not taken.
✓ Branch 97 → 98 taken 30 times.
✗ Branch 97 → 527 not taken.
✓ Branch 98 → 99 taken 3 times.
✓ Branch 98 → 101 taken 27 times.
✓ Branch 99 → 100 taken 3 times.
✗ Branch 99 → 527 not taken.
60 op("GETB", 0xEF);
105
9/14
✓ Branch 79 → 80 taken 3 times.
✓ Branch 79 → 83 taken 24 times.
✓ Branch 80 → 81 taken 3 times.
✗ Branch 80 → 451 not taken.
✓ Branch 81 → 82 taken 3 times.
✗ Branch 81 → 451 not taken.
✓ Branch 101 → 102 taken 27 times.
✗ Branch 101 → 527 not taken.
✓ Branch 102 → 103 taken 3 times.
✓ Branch 102 → 106 taken 24 times.
✓ Branch 103 → 104 taken 3 times.
✗ Branch 103 → 527 not taken.
✓ Branch 104 → 105 taken 3 times.
✗ Branch 104 → 527 not taken.
54 op3d("RPIX", 0x4C);
106
9/14
✓ Branch 83 → 84 taken 3 times.
✓ Branch 83 → 87 taken 21 times.
✓ Branch 84 → 85 taken 3 times.
✗ Branch 84 → 451 not taken.
✓ Branch 85 → 86 taken 3 times.
✗ Branch 85 → 451 not taken.
✓ Branch 106 → 107 taken 24 times.
✗ Branch 106 → 527 not taken.
✓ Branch 107 → 108 taken 3 times.
✓ Branch 107 → 111 taken 21 times.
✓ Branch 108 → 109 taken 3 times.
✗ Branch 108 → 527 not taken.
✓ Branch 109 → 110 taken 3 times.
✗ Branch 109 → 527 not taken.
48 op3d("CMODE", 0x4E);
107
9/14
✓ Branch 87 → 88 taken 3 times.
✓ Branch 87 → 91 taken 18 times.
✓ Branch 88 → 89 taken 3 times.
✗ Branch 88 → 451 not taken.
✓ Branch 89 → 90 taken 3 times.
✗ Branch 89 → 451 not taken.
✓ Branch 111 → 112 taken 21 times.
✗ Branch 111 → 527 not taken.
✓ Branch 112 → 113 taken 3 times.
✓ Branch 112 → 116 taken 18 times.
✓ Branch 113 → 114 taken 3 times.
✗ Branch 113 → 527 not taken.
✓ Branch 114 → 115 taken 3 times.
✗ Branch 114 → 527 not taken.
42 op3d("DIV2", 0x96);
108
9/14
✓ Branch 91 → 92 taken 3 times.
✓ Branch 91 → 95 taken 15 times.
✓ Branch 92 → 93 taken 3 times.
✗ Branch 92 → 451 not taken.
✓ Branch 93 → 94 taken 3 times.
✗ Branch 93 → 451 not taken.
✓ Branch 116 → 117 taken 18 times.
✗ Branch 116 → 527 not taken.
✓ Branch 117 → 118 taken 3 times.
✓ Branch 117 → 121 taken 15 times.
✓ Branch 118 → 119 taken 3 times.
✗ Branch 118 → 527 not taken.
✓ Branch 119 → 120 taken 3 times.
✗ Branch 119 → 527 not taken.
36 op3d("LMULT", 0x9F);
109
9/14
✓ Branch 95 → 96 taken 3 times.
✓ Branch 95 → 99 taken 12 times.
✓ Branch 96 → 97 taken 3 times.
✗ Branch 96 → 451 not taken.
✓ Branch 97 → 98 taken 3 times.
✗ Branch 97 → 451 not taken.
✓ Branch 121 → 122 taken 15 times.
✗ Branch 121 → 527 not taken.
✓ Branch 122 → 123 taken 3 times.
✓ Branch 122 → 126 taken 12 times.
✓ Branch 123 → 124 taken 3 times.
✗ Branch 123 → 527 not taken.
✓ Branch 124 → 125 taken 3 times.
✗ Branch 124 → 527 not taken.
30 op3d("GETBH", 0xEF);
110
9/14
✓ Branch 99 → 100 taken 3 times.
✓ Branch 99 → 103 taken 9 times.
✓ Branch 100 → 101 taken 3 times.
✗ Branch 100 → 451 not taken.
✓ Branch 101 → 102 taken 3 times.
✗ Branch 101 → 451 not taken.
✓ Branch 126 → 127 taken 12 times.
✗ Branch 126 → 527 not taken.
✓ Branch 127 → 128 taken 3 times.
✓ Branch 127 → 131 taken 9 times.
✓ Branch 128 → 129 taken 3 times.
✗ Branch 128 → 527 not taken.
✓ Branch 129 → 130 taken 3 times.
✗ Branch 129 → 527 not taken.
24 op3e("RAMB", 0xDF);
111
9/14
✓ Branch 103 → 104 taken 3 times.
✓ Branch 103 → 107 taken 6 times.
✓ Branch 104 → 105 taken 3 times.
✗ Branch 104 → 451 not taken.
✓ Branch 105 → 106 taken 3 times.
✗ Branch 105 → 451 not taken.
✓ Branch 131 → 132 taken 9 times.
✗ Branch 131 → 527 not taken.
✓ Branch 132 → 133 taken 3 times.
✓ Branch 132 → 136 taken 6 times.
✓ Branch 133 → 134 taken 3 times.
✗ Branch 133 → 527 not taken.
✓ Branch 134 → 135 taken 3 times.
✗ Branch 134 → 527 not taken.
18 op3e("GETBL", 0xEF);
112
9/14
✓ Branch 107 → 108 taken 3 times.
✓ Branch 107 → 111 taken 3 times.
✓ Branch 108 → 109 taken 3 times.
✗ Branch 108 → 451 not taken.
✓ Branch 109 → 110 taken 3 times.
✗ Branch 109 → 451 not taken.
✓ Branch 136 → 137 taken 6 times.
✗ Branch 136 → 527 not taken.
✓ Branch 137 → 138 taken 3 times.
✓ Branch 137 → 141 taken 3 times.
✓ Branch 138 → 139 taken 3 times.
✗ Branch 138 → 527 not taken.
✓ Branch 139 → 140 taken 3 times.
✗ Branch 139 → 527 not taken.
12 op3f("ROMB", 0xDF);
113
7/14
✓ Branch 111 → 112 taken 3 times.
✗ Branch 111 → 115 not taken.
✓ Branch 112 → 113 taken 3 times.
✗ Branch 112 → 451 not taken.
✓ Branch 113 → 114 taken 3 times.
✗ Branch 113 → 451 not taken.
✓ Branch 141 → 142 taken 3 times.
✗ Branch 141 → 527 not taken.
✓ Branch 142 → 143 taken 3 times.
✗ Branch 142 → 146 not taken.
✓ Branch 143 → 144 taken 3 times.
✗ Branch 143 → 527 not taken.
✓ Branch 144 → 145 taken 3 times.
✗ Branch 144 → 527 not taken.
6 op3f("GETBS", 0xEF);
114 #undef op
115 #undef op3d
116 #undef op3e
117 #undef op3f
118 return false;
119 }
120
2/4
✓ Branch 116 → 117 taken 1722 times.
✗ Branch 116 → 427 not taken.
✓ Branch 147 → 148 taken 1722 times.
✗ Branch 147 → 511 not taken.
3444 else if (numwords==2)
121 {
122
2/4
✓ Branch 118 → 119 taken 1722 times.
✗ Branch 118 → 446 not taken.
✓ Branch 148 → 149 taken 1722 times.
✗ Branch 148 → 526 not taken.
3444 string tmp=par;
123 1722 int numwordsinner;
124 3444 autoptr<char*> parcpy= duplicate_string(par);
125
2/4
✓ Branch 125 → 126 taken 1722 times.
✗ Branch 125 → 442 not taken.
✓ Branch 152 → 153 taken 1722 times.
✗ Branch 152 → 522 not taken.
3444 autoptr<char**> arg=qpsplit(parcpy, ",", &numwordsinner);
126 3444 bool ret=false;
127 #define ok() ret=true
128 #define op(op) if (is(op)) ok()
129 #define w3d(val) ,write1(0x3D) w(val)
130 #define w3e(val) ,write1(0x3E) w(val)
131 #define w3f(val) ,write1(0x3F) w(val)
132
4/4
✓ Branch 127 → 128 taken 1404 times.
✓ Branch 127 → 275 taken 318 times.
✓ Branch 154 → 155 taken 1404 times.
✓ Branch 154 → 343 taken 318 times.
3444 if (numwordsinner ==1)
133 {
134 #define w(val) ,write1((unsigned int)(val+reg))
135 #define reg_range(min, max) ,range(min, reg, max)
136 1404 int reg;
137
4/4
✓ Branch 130 → 131 taken 786 times.
✓ Branch 130 → 182 taken 618 times.
✓ Branch 156 → 157 taken 786 times.
✓ Branch 156 → 226 taken 618 times.
2808 if (getreg(par, &reg, reg_r))
138 {
139
7/10
✓ Branch 131 → 132 taken 48 times.
✓ Branch 131 → 133 taken 738 times.
✓ Branch 132 → 133 taken 48 times.
✗ Branch 132 → 435 not taken.
✓ Branch 157 → 158 taken 786 times.
✗ Branch 157 → 518 not taken.
✓ Branch 158 → 159 taken 48 times.
✓ Branch 158 → 160 taken 738 times.
✓ Branch 159 → 160 taken 48 times.
✗ Branch 159 → 518 not taken.
1572 op("TO") w(0x10);
140
7/10
✓ Branch 133 → 134 taken 48 times.
✓ Branch 133 → 135 taken 738 times.
✓ Branch 134 → 135 taken 48 times.
✗ Branch 134 → 435 not taken.
✓ Branch 160 → 161 taken 786 times.
✗ Branch 160 → 518 not taken.
✓ Branch 161 → 162 taken 48 times.
✓ Branch 161 → 163 taken 738 times.
✓ Branch 162 → 163 taken 48 times.
✗ Branch 162 → 518 not taken.
1572 op("WITH") w(0x20);
141
7/10
✓ Branch 135 → 136 taken 48 times.
✓ Branch 135 → 137 taken 738 times.
✓ Branch 136 → 137 taken 48 times.
✗ Branch 136 → 435 not taken.
✓ Branch 163 → 164 taken 786 times.
✗ Branch 163 → 518 not taken.
✓ Branch 164 → 165 taken 48 times.
✓ Branch 164 → 166 taken 738 times.
✓ Branch 165 → 166 taken 48 times.
✗ Branch 165 → 518 not taken.
1572 op("ADD") w(0x50);
142
7/10
✓ Branch 137 → 138 taken 48 times.
✓ Branch 137 → 139 taken 738 times.
✓ Branch 138 → 139 taken 48 times.
✗ Branch 138 → 435 not taken.
✓ Branch 166 → 167 taken 786 times.
✗ Branch 166 → 518 not taken.
✓ Branch 167 → 168 taken 48 times.
✓ Branch 167 → 169 taken 738 times.
✓ Branch 168 → 169 taken 48 times.
✗ Branch 168 → 518 not taken.
1572 op("SUB") w(0x60);
143
9/14
✓ Branch 139 → 140 taken 45 times.
✓ Branch 139 → 142 taken 741 times.
✓ Branch 140 → 141 taken 45 times.
✗ Branch 140 → 435 not taken.
✓ Branch 141 → 142 taken 45 times.
✗ Branch 141 → 435 not taken.
✓ Branch 169 → 170 taken 786 times.
✗ Branch 169 → 518 not taken.
✓ Branch 170 → 171 taken 45 times.
✓ Branch 170 → 173 taken 741 times.
✓ Branch 171 → 172 taken 45 times.
✗ Branch 171 → 518 not taken.
✓ Branch 172 → 173 taken 45 times.
✗ Branch 172 → 518 not taken.
1572 op("AND") reg_range(1, 15) w(0x70);
144
7/10
✓ Branch 142 → 143 taken 48 times.
✓ Branch 142 → 144 taken 738 times.
✓ Branch 143 → 144 taken 48 times.
✗ Branch 143 → 435 not taken.
✓ Branch 173 → 174 taken 786 times.
✗ Branch 173 → 518 not taken.
✓ Branch 174 → 175 taken 48 times.
✓ Branch 174 → 176 taken 738 times.
✓ Branch 175 → 176 taken 48 times.
✗ Branch 175 → 518 not taken.
1572 op("MULT") w(0x80);
145
9/14
✓ Branch 144 → 145 taken 18 times.
✓ Branch 144 → 147 taken 768 times.
✓ Branch 145 → 146 taken 18 times.
✗ Branch 145 → 435 not taken.
✓ Branch 146 → 147 taken 18 times.
✗ Branch 146 → 435 not taken.
✓ Branch 176 → 177 taken 786 times.
✗ Branch 176 → 518 not taken.
✓ Branch 177 → 178 taken 18 times.
✓ Branch 177 → 180 taken 768 times.
✓ Branch 178 → 179 taken 18 times.
✗ Branch 178 → 518 not taken.
✓ Branch 179 → 180 taken 18 times.
✗ Branch 179 → 518 not taken.
1572 op("JMP") reg_range(8, 13) w(0x90);
146
7/10
✓ Branch 147 → 148 taken 48 times.
✓ Branch 147 → 149 taken 738 times.
✓ Branch 148 → 149 taken 48 times.
✗ Branch 148 → 435 not taken.
✓ Branch 180 → 181 taken 786 times.
✗ Branch 180 → 518 not taken.
✓ Branch 181 → 182 taken 48 times.
✓ Branch 181 → 183 taken 738 times.
✓ Branch 182 → 183 taken 48 times.
✗ Branch 182 → 518 not taken.
1572 op("FROM") w(0xB0);
147
9/14
✓ Branch 149 → 150 taken 45 times.
✓ Branch 149 → 152 taken 741 times.
✓ Branch 150 → 151 taken 45 times.
✗ Branch 150 → 435 not taken.
✓ Branch 151 → 152 taken 45 times.
✗ Branch 151 → 435 not taken.
✓ Branch 183 → 184 taken 786 times.
✗ Branch 183 → 518 not taken.
✓ Branch 184 → 185 taken 45 times.
✓ Branch 184 → 187 taken 741 times.
✓ Branch 185 → 186 taken 45 times.
✗ Branch 185 → 518 not taken.
✓ Branch 186 → 187 taken 45 times.
✗ Branch 186 → 518 not taken.
1572 op("OR") reg_range(1, 15) w(0xC0);
148
9/14
✓ Branch 152 → 153 taken 45 times.
✓ Branch 152 → 155 taken 741 times.
✓ Branch 153 → 154 taken 45 times.
✗ Branch 153 → 435 not taken.
✓ Branch 154 → 155 taken 45 times.
✗ Branch 154 → 435 not taken.
✓ Branch 187 → 188 taken 786 times.
✗ Branch 187 → 518 not taken.
✓ Branch 188 → 189 taken 45 times.
✓ Branch 188 → 191 taken 741 times.
✓ Branch 189 → 190 taken 45 times.
✗ Branch 189 → 518 not taken.
✓ Branch 190 → 191 taken 45 times.
✗ Branch 190 → 518 not taken.
1572 op("INC") reg_range(0, 14) w(0xD0);
149
9/14
✓ Branch 155 → 156 taken 45 times.
✓ Branch 155 → 158 taken 741 times.
✓ Branch 156 → 157 taken 45 times.
✗ Branch 156 → 435 not taken.
✓ Branch 157 → 158 taken 45 times.
✗ Branch 157 → 435 not taken.
✓ Branch 191 → 192 taken 786 times.
✗ Branch 191 → 518 not taken.
✓ Branch 192 → 193 taken 45 times.
✓ Branch 192 → 195 taken 741 times.
✓ Branch 193 → 194 taken 45 times.
✗ Branch 193 → 518 not taken.
✓ Branch 194 → 195 taken 45 times.
✗ Branch 194 → 518 not taken.
1572 op("DEC") reg_range(0, 14) w(0xE0);
150
151
9/14
✓ Branch 158 → 159 taken 48 times.
✓ Branch 158 → 161 taken 738 times.
✓ Branch 159 → 160 taken 48 times.
✗ Branch 159 → 435 not taken.
✓ Branch 160 → 161 taken 48 times.
✗ Branch 160 → 435 not taken.
✓ Branch 195 → 196 taken 786 times.
✗ Branch 195 → 518 not taken.
✓ Branch 196 → 197 taken 48 times.
✓ Branch 196 → 199 taken 738 times.
✓ Branch 197 → 198 taken 48 times.
✗ Branch 197 → 518 not taken.
✓ Branch 198 → 199 taken 48 times.
✗ Branch 198 → 518 not taken.
1572 op("ADC") w3d(0x50);
152
9/14
✓ Branch 161 → 162 taken 48 times.
✓ Branch 161 → 164 taken 738 times.
✓ Branch 162 → 163 taken 48 times.
✗ Branch 162 → 435 not taken.
✓ Branch 163 → 164 taken 48 times.
✗ Branch 163 → 435 not taken.
✓ Branch 199 → 200 taken 786 times.
✗ Branch 199 → 518 not taken.
✓ Branch 200 → 201 taken 48 times.
✓ Branch 200 → 203 taken 738 times.
✓ Branch 201 → 202 taken 48 times.
✗ Branch 201 → 518 not taken.
✓ Branch 202 → 203 taken 48 times.
✗ Branch 202 → 518 not taken.
1572 op("SBC") w3d(0x60);
153
11/18
✓ Branch 164 → 165 taken 45 times.
✓ Branch 164 → 168 taken 741 times.
✓ Branch 165 → 166 taken 45 times.
✗ Branch 165 → 435 not taken.
✓ Branch 166 → 167 taken 45 times.
✗ Branch 166 → 435 not taken.
✓ Branch 167 → 168 taken 45 times.
✗ Branch 167 → 435 not taken.
✓ Branch 203 → 204 taken 786 times.
✗ Branch 203 → 518 not taken.
✓ Branch 204 → 205 taken 45 times.
✓ Branch 204 → 208 taken 741 times.
✓ Branch 205 → 206 taken 45 times.
✗ Branch 205 → 518 not taken.
✓ Branch 206 → 207 taken 45 times.
✗ Branch 206 → 518 not taken.
✓ Branch 207 → 208 taken 45 times.
✗ Branch 207 → 518 not taken.
1572 op("BIC") reg_range(1, 15) w3d(0x70);
154
9/14
✓ Branch 168 → 169 taken 48 times.
✓ Branch 168 → 171 taken 738 times.
✓ Branch 169 → 170 taken 48 times.
✗ Branch 169 → 435 not taken.
✓ Branch 170 → 171 taken 48 times.
✗ Branch 170 → 435 not taken.
✓ Branch 208 → 209 taken 786 times.
✗ Branch 208 → 518 not taken.
✓ Branch 209 → 210 taken 48 times.
✓ Branch 209 → 212 taken 738 times.
✓ Branch 210 → 211 taken 48 times.
✗ Branch 210 → 518 not taken.
✓ Branch 211 → 212 taken 48 times.
✗ Branch 211 → 518 not taken.
1572 op("UMULT") w3d(0x80);
155
11/18
✓ Branch 171 → 172 taken 18 times.
✓ Branch 171 → 175 taken 768 times.
✓ Branch 172 → 173 taken 18 times.
✗ Branch 172 → 435 not taken.
✓ Branch 173 → 174 taken 18 times.
✗ Branch 173 → 435 not taken.
✓ Branch 174 → 175 taken 18 times.
✗ Branch 174 → 435 not taken.
✓ Branch 212 → 213 taken 786 times.
✗ Branch 212 → 518 not taken.
✓ Branch 213 → 214 taken 18 times.
✓ Branch 213 → 217 taken 768 times.
✓ Branch 214 → 215 taken 18 times.
✗ Branch 214 → 518 not taken.
✓ Branch 215 → 216 taken 18 times.
✗ Branch 215 → 518 not taken.
✓ Branch 216 → 217 taken 18 times.
✗ Branch 216 → 518 not taken.
1572 op("LJMP") reg_range(8, 13) w3d(0x90);
156
11/18
✓ Branch 175 → 176 taken 45 times.
✓ Branch 175 → 179 taken 741 times.
✓ Branch 176 → 177 taken 45 times.
✗ Branch 176 → 435 not taken.
✓ Branch 177 → 178 taken 45 times.
✗ Branch 177 → 435 not taken.
✓ Branch 178 → 179 taken 45 times.
✗ Branch 178 → 435 not taken.
✓ Branch 217 → 218 taken 786 times.
✗ Branch 217 → 518 not taken.
✓ Branch 218 → 219 taken 45 times.
✓ Branch 218 → 222 taken 741 times.
✓ Branch 219 → 220 taken 45 times.
✗ Branch 219 → 518 not taken.
✓ Branch 220 → 221 taken 45 times.
✗ Branch 220 → 518 not taken.
✓ Branch 221 → 222 taken 45 times.
✗ Branch 221 → 518 not taken.
1572 op("XOR") reg_range(1, 15) w3d(0xC0);
157
158
9/14
✓ Branch 179 → 180 taken 48 times.
✓ Branch 179 → 182 taken 738 times.
✓ Branch 180 → 181 taken 48 times.
✗ Branch 180 → 435 not taken.
✓ Branch 181 → 182 taken 48 times.
✗ Branch 181 → 435 not taken.
✓ Branch 222 → 223 taken 786 times.
✗ Branch 222 → 518 not taken.
✓ Branch 223 → 224 taken 48 times.
✓ Branch 223 → 226 taken 738 times.
✓ Branch 224 → 225 taken 48 times.
✗ Branch 224 → 518 not taken.
✓ Branch 225 → 226 taken 48 times.
✗ Branch 225 → 518 not taken.
1572 op("CMP") w3f(0x60);
159 }
160
4/4
✓ Branch 183 → 184 taken 432 times.
✓ Branch 183 → 218 taken 972 times.
✓ Branch 227 → 228 taken 432 times.
✓ Branch 227 → 272 taken 972 times.
2808 if (getreg(par, &reg, reg_hash))
161 {
162
9/14
✓ Branch 184 → 185 taken 12 times.
✓ Branch 184 → 187 taken 420 times.
✓ Branch 185 → 186 taken 12 times.
✗ Branch 185 → 435 not taken.
✓ Branch 186 → 187 taken 12 times.
✗ Branch 186 → 435 not taken.
✓ Branch 228 → 229 taken 432 times.
✗ Branch 228 → 518 not taken.
✓ Branch 229 → 230 taken 12 times.
✓ Branch 229 → 232 taken 420 times.
✓ Branch 230 → 231 taken 12 times.
✗ Branch 230 → 518 not taken.
✓ Branch 231 → 232 taken 12 times.
✗ Branch 231 → 518 not taken.
864 op("LINK") reg_range(1, 4) w(0x90);
163
164
9/14
✓ Branch 187 → 188 taken 48 times.
✓ Branch 187 → 190 taken 384 times.
✓ Branch 188 → 189 taken 48 times.
✗ Branch 188 → 435 not taken.
✓ Branch 189 → 190 taken 48 times.
✗ Branch 189 → 435 not taken.
✓ Branch 232 → 233 taken 432 times.
✗ Branch 232 → 518 not taken.
✓ Branch 233 → 234 taken 48 times.
✓ Branch 233 → 236 taken 384 times.
✓ Branch 234 → 235 taken 48 times.
✗ Branch 234 → 518 not taken.
✓ Branch 235 → 236 taken 48 times.
✗ Branch 235 → 518 not taken.
864 op("ADD") w3e(0x50);
165
9/14
✓ Branch 190 → 191 taken 48 times.
✓ Branch 190 → 193 taken 384 times.
✓ Branch 191 → 192 taken 48 times.
✗ Branch 191 → 435 not taken.
✓ Branch 192 → 193 taken 48 times.
✗ Branch 192 → 435 not taken.
✓ Branch 236 → 237 taken 432 times.
✗ Branch 236 → 518 not taken.
✓ Branch 237 → 238 taken 48 times.
✓ Branch 237 → 240 taken 384 times.
✓ Branch 238 → 239 taken 48 times.
✗ Branch 238 → 518 not taken.
✓ Branch 239 → 240 taken 48 times.
✗ Branch 239 → 518 not taken.
864 op("SUB") w3e(0x60);
166
11/18
✓ Branch 193 → 194 taken 45 times.
✓ Branch 193 → 197 taken 387 times.
✓ Branch 194 → 195 taken 45 times.
✗ Branch 194 → 435 not taken.
✓ Branch 195 → 196 taken 45 times.
✗ Branch 195 → 435 not taken.
✓ Branch 196 → 197 taken 45 times.
✗ Branch 196 → 435 not taken.
✓ Branch 240 → 241 taken 432 times.
✗ Branch 240 → 518 not taken.
✓ Branch 241 → 242 taken 45 times.
✓ Branch 241 → 245 taken 387 times.
✓ Branch 242 → 243 taken 45 times.
✗ Branch 242 → 518 not taken.
✓ Branch 243 → 244 taken 45 times.
✗ Branch 243 → 518 not taken.
✓ Branch 244 → 245 taken 45 times.
✗ Branch 244 → 518 not taken.
864 op("AND") reg_range(1, 15) w3e(0x70);
167
9/14
✓ Branch 197 → 198 taken 48 times.
✓ Branch 197 → 200 taken 384 times.
✓ Branch 198 → 199 taken 48 times.
✗ Branch 198 → 435 not taken.
✓ Branch 199 → 200 taken 48 times.
✗ Branch 199 → 435 not taken.
✓ Branch 245 → 246 taken 432 times.
✗ Branch 245 → 518 not taken.
✓ Branch 246 → 247 taken 48 times.
✓ Branch 246 → 249 taken 384 times.
✓ Branch 247 → 248 taken 48 times.
✗ Branch 247 → 518 not taken.
✓ Branch 248 → 249 taken 48 times.
✗ Branch 248 → 518 not taken.
864 op("MULT") w3e(0x80);
168
11/18
✓ Branch 200 → 201 taken 45 times.
✓ Branch 200 → 204 taken 387 times.
✓ Branch 201 → 202 taken 45 times.
✗ Branch 201 → 435 not taken.
✓ Branch 202 → 203 taken 45 times.
✗ Branch 202 → 435 not taken.
✓ Branch 203 → 204 taken 45 times.
✗ Branch 203 → 435 not taken.
✓ Branch 249 → 250 taken 432 times.
✗ Branch 249 → 518 not taken.
✓ Branch 250 → 251 taken 45 times.
✓ Branch 250 → 254 taken 387 times.
✓ Branch 251 → 252 taken 45 times.
✗ Branch 251 → 518 not taken.
✓ Branch 252 → 253 taken 45 times.
✗ Branch 252 → 518 not taken.
✓ Branch 253 → 254 taken 45 times.
✗ Branch 253 → 518 not taken.
864 op("OR") reg_range(1, 15) w3e(0xC0);
169
170
9/14
✓ Branch 204 → 205 taken 48 times.
✓ Branch 204 → 207 taken 384 times.
✓ Branch 205 → 206 taken 48 times.
✗ Branch 205 → 435 not taken.
✓ Branch 206 → 207 taken 48 times.
✗ Branch 206 → 435 not taken.
✓ Branch 254 → 255 taken 432 times.
✗ Branch 254 → 518 not taken.
✓ Branch 255 → 256 taken 48 times.
✓ Branch 255 → 258 taken 384 times.
✓ Branch 256 → 257 taken 48 times.
✗ Branch 256 → 518 not taken.
✓ Branch 257 → 258 taken 48 times.
✗ Branch 257 → 518 not taken.
864 op("ADC") w3f(0x50);
171
11/18
✓ Branch 207 → 208 taken 45 times.
✓ Branch 207 → 211 taken 387 times.
✓ Branch 208 → 209 taken 45 times.
✗ Branch 208 → 435 not taken.
✓ Branch 209 → 210 taken 45 times.
✗ Branch 209 → 435 not taken.
✓ Branch 210 → 211 taken 45 times.
✗ Branch 210 → 435 not taken.
✓ Branch 258 → 259 taken 432 times.
✗ Branch 258 → 518 not taken.
✓ Branch 259 → 260 taken 45 times.
✓ Branch 259 → 263 taken 387 times.
✓ Branch 260 → 261 taken 45 times.
✗ Branch 260 → 518 not taken.
✓ Branch 261 → 262 taken 45 times.
✗ Branch 261 → 518 not taken.
✓ Branch 262 → 263 taken 45 times.
✗ Branch 262 → 518 not taken.
864 op("BIC") reg_range(1, 15) w3f(0x70);
172
9/14
✓ Branch 211 → 212 taken 48 times.
✓ Branch 211 → 214 taken 384 times.
✓ Branch 212 → 213 taken 48 times.
✗ Branch 212 → 435 not taken.
✓ Branch 213 → 214 taken 48 times.
✗ Branch 213 → 435 not taken.
✓ Branch 263 → 264 taken 432 times.
✗ Branch 263 → 518 not taken.
✓ Branch 264 → 265 taken 48 times.
✓ Branch 264 → 267 taken 384 times.
✓ Branch 265 → 266 taken 48 times.
✗ Branch 265 → 518 not taken.
✓ Branch 266 → 267 taken 48 times.
✗ Branch 266 → 518 not taken.
864 op("UMULT") w3f(0x80);
173
11/18
✓ Branch 214 → 215 taken 45 times.
✓ Branch 214 → 218 taken 387 times.
✓ Branch 215 → 216 taken 45 times.
✗ Branch 215 → 435 not taken.
✓ Branch 216 → 217 taken 45 times.
✗ Branch 216 → 435 not taken.
✓ Branch 217 → 218 taken 45 times.
✗ Branch 217 → 435 not taken.
✓ Branch 267 → 268 taken 432 times.
✗ Branch 267 → 518 not taken.
✓ Branch 268 → 269 taken 45 times.
✓ Branch 268 → 272 taken 387 times.
✓ Branch 269 → 270 taken 45 times.
✗ Branch 269 → 518 not taken.
✓ Branch 270 → 271 taken 45 times.
✗ Branch 270 → 518 not taken.
✓ Branch 271 → 272 taken 45 times.
✗ Branch 271 → 518 not taken.
864 op("XOR") reg_range(1, 15) w3f(0xC0);
174 }
175
4/4
✓ Branch 219 → 220 taken 144 times.
✓ Branch 219 → 234 taken 1260 times.
✓ Branch 273 → 274 taken 144 times.
✓ Branch 273 → 292 taken 1260 times.
2808 if (getreg(par, &reg, reg_parr))
176 {
177
9/14
✓ Branch 220 → 221 taken 36 times.
✓ Branch 220 → 223 taken 108 times.
✓ Branch 221 → 222 taken 36 times.
✗ Branch 221 → 435 not taken.
✓ Branch 222 → 223 taken 36 times.
✗ Branch 222 → 435 not taken.
✓ Branch 274 → 275 taken 144 times.
✗ Branch 274 → 518 not taken.
✓ Branch 275 → 276 taken 36 times.
✓ Branch 275 → 278 taken 108 times.
✓ Branch 276 → 277 taken 36 times.
✗ Branch 276 → 518 not taken.
✓ Branch 277 → 278 taken 36 times.
✗ Branch 277 → 518 not taken.
288 op("STW") reg_range(0, 11) w(0x30);
178
9/14
✓ Branch 223 → 224 taken 36 times.
✓ Branch 223 → 226 taken 108 times.
✓ Branch 224 → 225 taken 36 times.
✗ Branch 224 → 435 not taken.
✓ Branch 225 → 226 taken 36 times.
✗ Branch 225 → 435 not taken.
✓ Branch 278 → 279 taken 144 times.
✗ Branch 278 → 518 not taken.
✓ Branch 279 → 280 taken 36 times.
✓ Branch 279 → 282 taken 108 times.
✓ Branch 280 → 281 taken 36 times.
✗ Branch 280 → 518 not taken.
✓ Branch 281 → 282 taken 36 times.
✗ Branch 281 → 518 not taken.
288 op("LDW") reg_range(0, 11) w(0x40);
179
11/18
✓ Branch 226 → 227 taken 36 times.
✓ Branch 226 → 230 taken 108 times.
✓ Branch 227 → 228 taken 36 times.
✗ Branch 227 → 435 not taken.
✓ Branch 228 → 229 taken 36 times.
✗ Branch 228 → 435 not taken.
✓ Branch 229 → 230 taken 36 times.
✗ Branch 229 → 435 not taken.
✓ Branch 282 → 283 taken 144 times.
✗ Branch 282 → 518 not taken.
✓ Branch 283 → 284 taken 36 times.
✓ Branch 283 → 287 taken 108 times.
✓ Branch 284 → 285 taken 36 times.
✗ Branch 284 → 518 not taken.
✓ Branch 285 → 286 taken 36 times.
✗ Branch 285 → 518 not taken.
✓ Branch 286 → 287 taken 36 times.
✗ Branch 286 → 518 not taken.
288 op("STB") reg_range(0, 11) w3d(0x30);
180
11/18
✓ Branch 230 → 231 taken 36 times.
✓ Branch 230 → 234 taken 108 times.
✓ Branch 231 → 232 taken 36 times.
✗ Branch 231 → 435 not taken.
✓ Branch 232 → 233 taken 36 times.
✗ Branch 232 → 435 not taken.
✓ Branch 233 → 234 taken 36 times.
✗ Branch 233 → 435 not taken.
✓ Branch 287 → 288 taken 144 times.
✗ Branch 287 → 518 not taken.
✓ Branch 288 → 289 taken 36 times.
✓ Branch 288 → 292 taken 108 times.
✓ Branch 289 → 290 taken 36 times.
✗ Branch 289 → 518 not taken.
✓ Branch 290 → 291 taken 36 times.
✗ Branch 290 → 518 not taken.
✓ Branch 291 → 292 taken 36 times.
✗ Branch 291 → 518 not taken.
288 op("LDB") reg_range(0, 11) w3d(0x40);
181 }
182 #undef w
183 #undef reg_range
184 2808 int byte=-1;
185 #define br(name, val) if (is(name)) byte=val;
186
5/6
✓ Branch 234 → 235 taken 3 times.
✓ Branch 234 → 236 taken 1401 times.
✓ Branch 292 → 293 taken 1404 times.
✗ Branch 292 → 518 not taken.
✓ Branch 293 → 294 taken 3 times.
✓ Branch 293 → 295 taken 1401 times.
2808 br("BRA", 0x05);
187
5/6
✓ Branch 236 → 237 taken 3 times.
✓ Branch 236 → 238 taken 1401 times.
✓ Branch 295 → 296 taken 1404 times.
✗ Branch 295 → 518 not taken.
✓ Branch 296 → 297 taken 3 times.
✓ Branch 296 → 298 taken 1401 times.
2808 br("BGE", 0x06);
188
5/6
✓ Branch 238 → 239 taken 3 times.
✓ Branch 238 → 240 taken 1401 times.
✓ Branch 298 → 299 taken 1404 times.
✗ Branch 298 → 518 not taken.
✓ Branch 299 → 300 taken 3 times.
✓ Branch 299 → 301 taken 1401 times.
2808 br("BLT", 0x07);
189
5/6
✓ Branch 240 → 241 taken 3 times.
✓ Branch 240 → 242 taken 1401 times.
✓ Branch 301 → 302 taken 1404 times.
✗ Branch 301 → 518 not taken.
✓ Branch 302 → 303 taken 3 times.
✓ Branch 302 → 304 taken 1401 times.
2808 br("BNE", 0x08);
190
5/6
✓ Branch 242 → 243 taken 3 times.
✓ Branch 242 → 244 taken 1401 times.
✓ Branch 304 → 305 taken 1404 times.
✗ Branch 304 → 518 not taken.
✓ Branch 305 → 306 taken 3 times.
✓ Branch 305 → 307 taken 1401 times.
2808 br("BEQ", 0x09);
191
5/6
✓ Branch 244 → 245 taken 3 times.
✓ Branch 244 → 246 taken 1401 times.
✓ Branch 307 → 308 taken 1404 times.
✗ Branch 307 → 518 not taken.
✓ Branch 308 → 309 taken 3 times.
✓ Branch 308 → 310 taken 1401 times.
2808 br("BPL", 0x0A);
192
5/6
✓ Branch 246 → 247 taken 3 times.
✓ Branch 246 → 248 taken 1401 times.
✓ Branch 310 → 311 taken 1404 times.
✗ Branch 310 → 518 not taken.
✓ Branch 311 → 312 taken 3 times.
✓ Branch 311 → 313 taken 1401 times.
2808 br("BMI", 0x0B);
193
5/6
✓ Branch 248 → 249 taken 3 times.
✓ Branch 248 → 250 taken 1401 times.
✓ Branch 313 → 314 taken 1404 times.
✗ Branch 313 → 518 not taken.
✓ Branch 314 → 315 taken 3 times.
✓ Branch 314 → 316 taken 1401 times.
2808 br("BCC", 0x0C);
194
5/6
✓ Branch 250 → 251 taken 3 times.
✓ Branch 250 → 252 taken 1401 times.
✓ Branch 316 → 317 taken 1404 times.
✗ Branch 316 → 518 not taken.
✓ Branch 317 → 318 taken 3 times.
✓ Branch 317 → 319 taken 1401 times.
2808 br("BCS", 0x0D);
195
5/6
✓ Branch 252 → 253 taken 3 times.
✓ Branch 252 → 254 taken 1401 times.
✓ Branch 319 → 320 taken 1404 times.
✗ Branch 319 → 518 not taken.
✓ Branch 320 → 321 taken 3 times.
✓ Branch 320 → 322 taken 1401 times.
2808 br("BVC", 0x0E);
196
5/6
✓ Branch 254 → 255 taken 3 times.
✓ Branch 254 → 256 taken 1401 times.
✓ Branch 322 → 323 taken 1404 times.
✗ Branch 322 → 518 not taken.
✓ Branch 323 → 324 taken 3 times.
✓ Branch 323 → 325 taken 1401 times.
2808 br("BVS", 0x0F);
197 #undef br
198
4/4
✓ Branch 256 → 257 taken 33 times.
✓ Branch 256 → 274 taken 1371 times.
✓ Branch 325 → 326 taken 33 times.
✓ Branch 325 → 342 taken 1371 times.
2808 if (byte!=-1)
199 {
200 66 ret=true;
201
2/4
✓ Branch 257 → 258 taken 33 times.
✗ Branch 257 → 435 not taken.
✓ Branch 326 → 327 taken 33 times.
✗ Branch 326 → 518 not taken.
66 int len=getlen(par);
202
2/4
✓ Branch 258 → 259 taken 33 times.
✗ Branch 258 → 435 not taken.
✓ Branch 327 → 328 taken 33 times.
✗ Branch 327 → 518 not taken.
66 unsigned int num=getnum_ck(par);
203
2/4
✗ Branch 259 → 260 not taken.
✓ Branch 259 → 262 taken 33 times.
✗ Branch 328 → 329 not taken.
✓ Branch 328 → 331 taken 33 times.
66 if (len==1)
204 {
205 write1((unsigned int)byte); write1(num);
206 }
207 else
208 {
209
2/4
✓ Branch 262 → 263 taken 33 times.
✗ Branch 262 → 435 not taken.
✓ Branch 331 → 332 taken 33 times.
✗ Branch 331 → 518 not taken.
66 int pos=(int)getnum_ck(par)-((snespos&0xFFFFFF)+2);
210
4/8
✓ Branch 263 → 264 taken 33 times.
✗ Branch 263 → 435 not taken.
✓ Branch 264 → 265 taken 33 times.
✗ Branch 264 → 435 not taken.
✓ Branch 332 → 333 taken 33 times.
✗ Branch 332 → 518 not taken.
✓ Branch 333 → 334 taken 33 times.
✗ Branch 333 → 518 not taken.
66 write1((unsigned int)byte); write1((unsigned int)pos);
211
8/12
✓ Branch 265 → 266 taken 11 times.
✓ Branch 265 → 274 taken 22 times.
✓ Branch 266 → 267 taken 11 times.
✗ Branch 266 → 268 not taken.
✗ Branch 267 → 268 not taken.
✓ Branch 267 → 274 taken 11 times.
✓ Branch 334 → 335 taken 11 times.
✓ Branch 334 → 342 taken 22 times.
✓ Branch 335 → 336 taken 11 times.
✗ Branch 335 → 337 not taken.
✗ Branch 336 → 337 not taken.
✓ Branch 336 → 342 taken 11 times.
66 if (pass==2 && (pos<-128 || pos>127))
212 {
213 asar_throw_error(2, error_type_block, error_id_relative_branch_out_of_bounds, dec(pos).data());
214 }
215 }
216 }
217 }
218
4/4
✓ Branch 275 → 276 taken 318 times.
✓ Branch 275 → 419 taken 1404 times.
✓ Branch 343 → 344 taken 318 times.
✓ Branch 343 → 506 taken 1404 times.
3444 if (numwordsinner==2)
219 {
220 #define w(val) ,write1((unsigned int)(val))
221 636 int reg1; bool isreg1=getreg(arg[0], &reg1, reg_r);
222 636 int reg2; bool isreg2=getreg(arg[1], &reg2, reg_r);
223
4/4
✓ Branch 282 → 283 taken 213 times.
✓ Branch 282 → 366 taken 105 times.
✓ Branch 348 → 349 taken 213 times.
✓ Branch 348 → 447 taken 105 times.
636 if (isreg1)
224 {
225
4/4
✓ Branch 283 → 284 taken 6 times.
✓ Branch 283 → 290 taken 207 times.
✓ Branch 349 → 350 taken 6 times.
✓ Branch 349 → 358 taken 207 times.
426 if (isreg2)
226 {
227
9/14
✓ Branch 284 → 285 taken 3 times.
✓ Branch 284 → 287 taken 3 times.
✓ Branch 285 → 286 taken 3 times.
✗ Branch 285 → 437 not taken.
✓ Branch 286 → 287 taken 3 times.
✗ Branch 286 → 437 not taken.
✓ Branch 350 → 351 taken 6 times.
✗ Branch 350 → 519 not taken.
✓ Branch 351 → 352 taken 3 times.
✓ Branch 351 → 354 taken 3 times.
✓ Branch 352 → 353 taken 3 times.
✗ Branch 352 → 519 not taken.
✓ Branch 353 → 354 taken 3 times.
✗ Branch 353 → 519 not taken.
12 op("MOVE") w(0x20+reg2) w(0x10+reg1);
228
9/14
✓ Branch 287 → 288 taken 3 times.
✓ Branch 287 → 290 taken 3 times.
✓ Branch 288 → 289 taken 3 times.
✗ Branch 288 → 437 not taken.
✓ Branch 289 → 290 taken 3 times.
✗ Branch 289 → 437 not taken.
✓ Branch 354 → 355 taken 6 times.
✗ Branch 354 → 519 not taken.
✓ Branch 355 → 356 taken 3 times.
✓ Branch 355 → 358 taken 3 times.
✓ Branch 356 → 357 taken 3 times.
✗ Branch 356 → 519 not taken.
✓ Branch 357 → 358 taken 3 times.
✗ Branch 357 → 519 not taken.
12 op("MOVES") w(0x20+reg1) w(0xB0+reg2);
229 }
230
4/4
✓ Branch 291 → 292 taken 99 times.
✓ Branch 291 → 312 taken 114 times.
✓ Branch 359 → 360 taken 99 times.
✓ Branch 359 → 384 taken 114 times.
426 if (arg[1][0]=='#')
231 {
232
2/4
✓ Branch 293 → 294 taken 99 times.
✗ Branch 293 → 437 not taken.
✓ Branch 361 → 362 taken 99 times.
✗ Branch 361 → 519 not taken.
198 unsigned int num=getnum_ck(arg[1]+1);
233 198 num&=0xFFFF;
234
9/14
✓ Branch 294 → 295 taken 48 times.
✓ Branch 294 → 297 taken 51 times.
✓ Branch 295 → 296 taken 48 times.
✗ Branch 295 → 437 not taken.
✓ Branch 296 → 297 taken 48 times.
✗ Branch 296 → 437 not taken.
✓ Branch 362 → 363 taken 99 times.
✗ Branch 362 → 519 not taken.
✓ Branch 363 → 364 taken 48 times.
✓ Branch 363 → 366 taken 51 times.
✓ Branch 364 → 365 taken 48 times.
✗ Branch 364 → 519 not taken.
✓ Branch 365 → 366 taken 48 times.
✗ Branch 365 → 519 not taken.
198 op("IBT") w(0xA0+reg1) w(num);
235
11/18
✓ Branch 297 → 298 taken 48 times.
✓ Branch 297 → 301 taken 51 times.
✓ Branch 298 → 299 taken 48 times.
✗ Branch 298 → 437 not taken.
✓ Branch 299 → 300 taken 48 times.
✗ Branch 299 → 437 not taken.
✓ Branch 300 → 301 taken 48 times.
✗ Branch 300 → 437 not taken.
✓ Branch 366 → 367 taken 99 times.
✗ Branch 366 → 519 not taken.
✓ Branch 367 → 368 taken 48 times.
✓ Branch 367 → 371 taken 51 times.
✓ Branch 368 → 369 taken 48 times.
✗ Branch 368 → 519 not taken.
✓ Branch 369 → 370 taken 48 times.
✗ Branch 369 → 519 not taken.
✓ Branch 370 → 371 taken 48 times.
✗ Branch 370 → 519 not taken.
198 op("IWT") w(0xF0+reg1) w(num) w(num>>8);
236
2/8
✗ Branch 301 → 302 not taken.
✓ Branch 301 → 303 taken 99 times.
✗ Branch 302 → 303 not taken.
✗ Branch 302 → 307 not taken.
✗ Branch 371 → 372 not taken.
✓ Branch 371 → 373 taken 99 times.
✗ Branch 372 → 373 not taken.
✗ Branch 372 → 378 not taken.
198 if (num<0x80 || num>=0xFF80)
237 {
238
9/14
✓ Branch 303 → 304 taken 3 times.
✓ Branch 303 → 306 taken 96 times.
✓ Branch 304 → 305 taken 3 times.
✗ Branch 304 → 437 not taken.
✓ Branch 305 → 306 taken 3 times.
✗ Branch 305 → 437 not taken.
✓ Branch 373 → 374 taken 99 times.
✗ Branch 373 → 519 not taken.
✓ Branch 374 → 375 taken 3 times.
✓ Branch 374 → 377 taken 96 times.
✓ Branch 375 → 376 taken 3 times.
✗ Branch 375 → 519 not taken.
✓ Branch 376 → 377 taken 3 times.
✗ Branch 376 → 519 not taken.
198 op("MOVE") w(0xA0+reg1) w(num);
239 }
240 else
241 {
242 op("MOVE") w(0xF0+reg1) w(num) w(num>>8);
243 }
244 }
245
4/4
✓ Branch 314 → 315 taken 6 times.
✓ Branch 314 → 328 taken 207 times.
✓ Branch 386 → 387 taken 6 times.
✓ Branch 386 → 404 taken 207 times.
426 if (getreg(arg[1], &reg2, reg_parr))
246 {
247
2/4
✓ Branch 315 → 316 taken 6 times.
✗ Branch 315 → 321 not taken.
✓ Branch 387 → 388 taken 6 times.
✗ Branch 387 → 395 not taken.
12 if (reg1==0)
248 {
249
9/14
✓ Branch 316 → 317 taken 3 times.
✓ Branch 316 → 319 taken 3 times.
✓ Branch 317 → 318 taken 3 times.
✗ Branch 317 → 437 not taken.
✓ Branch 318 → 319 taken 3 times.
✗ Branch 318 → 437 not taken.
✓ Branch 388 → 389 taken 6 times.
✗ Branch 388 → 519 not taken.
✓ Branch 389 → 390 taken 3 times.
✓ Branch 389 → 392 taken 3 times.
✓ Branch 390 → 391 taken 3 times.
✗ Branch 390 → 519 not taken.
✓ Branch 391 → 392 taken 3 times.
✗ Branch 391 → 519 not taken.
12 op("MOVEB") w(0x3D) w(0x40+reg2);
250
7/10
✓ Branch 319 → 320 taken 3 times.
✓ Branch 319 → 360 taken 3 times.
✓ Branch 320 → 360 taken 3 times.
✗ Branch 320 → 437 not taken.
✓ Branch 392 → 393 taken 6 times.
✗ Branch 392 → 519 not taken.
✓ Branch 393 → 394 taken 3 times.
✓ Branch 393 → 440 taken 3 times.
✓ Branch 394 → 440 taken 3 times.
✗ Branch 394 → 519 not taken.
12 op("MOVEW") w(0x40+reg2);
251 }
252 else
253 {
254 op("MOVEB") w(0x10+reg1) w(0x3D) w(0x40+reg2);
255 op("MOVEW") w(0x10+reg1) w(0x40+reg2);
256 }
257 }
258
4/4
✓ Branch 329 → 330 taken 99 times.
✓ Branch 329 → 360 taken 108 times.
✓ Branch 405 → 406 taken 99 times.
✓ Branch 405 → 440 taken 108 times.
414 else if (arg[1][0]=='(')
259 {
260 198 char * endpar=strchr(arg[1], ')');
261
4/8
✓ Branch 331 → 332 taken 99 times.
✗ Branch 331 → 333 not taken.
✗ Branch 332 → 333 not taken.
✓ Branch 332 → 334 taken 99 times.
✓ Branch 407 → 408 taken 99 times.
✗ Branch 407 → 409 not taken.
✗ Branch 408 → 409 not taken.
✓ Branch 408 → 410 taken 99 times.
198 if (!endpar || endpar[1]) return false;
262
2/4
✓ Branch 335 → 336 taken 99 times.
✗ Branch 335 → 437 not taken.
✓ Branch 411 → 412 taken 99 times.
✗ Branch 411 → 519 not taken.
198 unsigned int num=getnum_ck(arg[1]);
263
13/22
✓ Branch 336 → 337 taken 48 times.
✓ Branch 336 → 341 taken 51 times.
✓ Branch 337 → 338 taken 48 times.
✗ Branch 337 → 437 not taken.
✓ Branch 338 → 339 taken 48 times.
✗ Branch 338 → 437 not taken.
✓ Branch 339 → 340 taken 48 times.
✗ Branch 339 → 437 not taken.
✓ Branch 340 → 341 taken 48 times.
✗ Branch 340 → 437 not taken.
✓ Branch 412 → 413 taken 99 times.
✗ Branch 412 → 519 not taken.
✓ Branch 413 → 414 taken 48 times.
✓ Branch 413 → 418 taken 51 times.
✓ Branch 414 → 415 taken 48 times.
✗ Branch 414 → 519 not taken.
✓ Branch 415 → 416 taken 48 times.
✗ Branch 415 → 519 not taken.
✓ Branch 416 → 417 taken 48 times.
✗ Branch 416 → 519 not taken.
✓ Branch 417 → 418 taken 48 times.
✗ Branch 417 → 519 not taken.
198 op("LM") w(0x3D) w(0xF0+reg1) w(num) w(num>>8);
264
265
5/6
✓ Branch 341 → 342 taken 48 times.
✓ Branch 341 → 347 taken 51 times.
✓ Branch 418 → 419 taken 99 times.
✗ Branch 418 → 519 not taken.
✓ Branch 419 → 420 taken 48 times.
✓ Branch 419 → 425 taken 51 times.
198 if (is("LMS")) {
266 96 ok();
267
4/8
✓ Branch 342 → 343 taken 48 times.
✗ Branch 342 → 437 not taken.
✓ Branch 343 → 344 taken 48 times.
✗ Branch 343 → 347 not taken.
✓ Branch 420 → 421 taken 48 times.
✗ Branch 420 → 519 not taken.
✓ Branch 421 → 422 taken 48 times.
✗ Branch 421 → 425 not taken.
96 if (check_short_addr((int)num))
268 {
269
6/12
✓ Branch 344 → 345 taken 48 times.
✗ Branch 344 → 437 not taken.
✓ Branch 345 → 346 taken 48 times.
✗ Branch 345 → 437 not taken.
✓ Branch 346 → 347 taken 48 times.
✗ Branch 346 → 437 not taken.
✓ Branch 422 → 423 taken 48 times.
✗ Branch 422 → 519 not taken.
✓ Branch 423 → 424 taken 48 times.
✗ Branch 423 → 519 not taken.
✓ Branch 424 → 425 taken 48 times.
✗ Branch 424 → 519 not taken.
96 ok() w(0x3D) w(0xA0+reg1) w(num>>1);
270 }
271 }
272
273
4/8
✓ Branch 347 → 348 taken 99 times.
✗ Branch 347 → 349 not taken.
✗ Branch 348 → 349 not taken.
✓ Branch 348 → 355 taken 99 times.
✓ Branch 425 → 426 taken 99 times.
✗ Branch 425 → 427 not taken.
✗ Branch 426 → 427 not taken.
✓ Branch 426 → 434 taken 99 times.
198 if (num&1 || num>=0x200)
274 {
275 op("MOVE") w(0x3D) w(0xF0+reg1) w(num) w(num>>8);
276 }
277 else
278 {
279
11/18
✓ Branch 355 → 356 taken 3 times.
✓ Branch 355 → 359 taken 96 times.
✓ Branch 356 → 357 taken 3 times.
✗ Branch 356 → 437 not taken.
✓ Branch 357 → 358 taken 3 times.
✗ Branch 357 → 437 not taken.
✓ Branch 358 → 359 taken 3 times.
✗ Branch 358 → 437 not taken.
✓ Branch 434 → 435 taken 99 times.
✗ Branch 434 → 519 not taken.
✓ Branch 435 → 436 taken 3 times.
✓ Branch 435 → 439 taken 96 times.
✓ Branch 436 → 437 taken 3 times.
✗ Branch 436 → 519 not taken.
✓ Branch 437 → 438 taken 3 times.
✗ Branch 437 → 519 not taken.
✓ Branch 438 → 439 taken 3 times.
✗ Branch 438 → 519 not taken.
198 op("MOVE") w(0x3D) w(0xA0+reg1) w(num);
280 }
281 }
282
5/6
✓ Branch 360 → 361 taken 3 times.
✓ Branch 360 → 415 taken 210 times.
✓ Branch 440 → 441 taken 213 times.
✗ Branch 440 → 519 not taken.
✓ Branch 441 → 442 taken 3 times.
✓ Branch 441 → 504 taken 210 times.
426 if (is("LEA"))
283 {
284
2/4
✓ Branch 362 → 363 taken 3 times.
✗ Branch 362 → 437 not taken.
✓ Branch 443 → 444 taken 3 times.
✗ Branch 443 → 519 not taken.
6 unsigned int num=getnum_ck(arg[1]);
285
6/12
✓ Branch 363 → 364 taken 3 times.
✗ Branch 363 → 437 not taken.
✓ Branch 364 → 365 taken 3 times.
✗ Branch 364 → 437 not taken.
✓ Branch 365 → 415 taken 3 times.
✗ Branch 365 → 437 not taken.
✓ Branch 444 → 445 taken 3 times.
✗ Branch 444 → 519 not taken.
✓ Branch 445 → 446 taken 3 times.
✗ Branch 445 → 519 not taken.
✓ Branch 446 → 504 taken 3 times.
✗ Branch 446 → 519 not taken.
6 ok() w(0xF0+reg1) w(num) w(num>>8);
286 }
287 }
288
2/4
✓ Branch 366 → 367 taken 105 times.
✗ Branch 366 → 415 not taken.
✓ Branch 447 → 448 taken 105 times.
✗ Branch 447 → 504 not taken.
210 else if (isreg2)
289 {
290
4/4
✓ Branch 369 → 370 taken 6 times.
✓ Branch 369 → 383 taken 99 times.
✓ Branch 450 → 451 taken 6 times.
✓ Branch 450 → 468 taken 99 times.
210 if (getreg(arg[0], &reg1, reg_parr))
291 {
292
2/4
✓ Branch 370 → 371 taken 6 times.
✗ Branch 370 → 376 not taken.
✓ Branch 451 → 452 taken 6 times.
✗ Branch 451 → 459 not taken.
12 if (reg1==0)
293 {
294
9/14
✓ Branch 371 → 372 taken 3 times.
✓ Branch 371 → 374 taken 3 times.
✓ Branch 372 → 373 taken 3 times.
✗ Branch 372 → 437 not taken.
✓ Branch 373 → 374 taken 3 times.
✗ Branch 373 → 437 not taken.
✓ Branch 452 → 453 taken 6 times.
✗ Branch 452 → 519 not taken.
✓ Branch 453 → 454 taken 3 times.
✓ Branch 453 → 456 taken 3 times.
✓ Branch 454 → 455 taken 3 times.
✗ Branch 454 → 519 not taken.
✓ Branch 455 → 456 taken 3 times.
✗ Branch 455 → 519 not taken.
12 op("MOVEB") w(0x3D) w(0x30+reg2);
295
7/10
✓ Branch 374 → 375 taken 3 times.
✓ Branch 374 → 415 taken 3 times.
✓ Branch 375 → 415 taken 3 times.
✗ Branch 375 → 437 not taken.
✓ Branch 456 → 457 taken 6 times.
✗ Branch 456 → 519 not taken.
✓ Branch 457 → 458 taken 3 times.
✓ Branch 457 → 504 taken 3 times.
✓ Branch 458 → 504 taken 3 times.
✗ Branch 458 → 519 not taken.
12 op("MOVEW") w(0x30+reg2);
296 }
297 else
298 {
299 op("MOVEB") w(0xB0+reg1) w(0x3D) w(0x30+reg2);
300 op("MOVEW") w(0xB0+reg1) w(0x30+reg2);
301 }
302 }
303
2/4
✓ Branch 384 → 385 taken 99 times.
✗ Branch 384 → 415 not taken.
✓ Branch 469 → 470 taken 99 times.
✗ Branch 469 → 504 not taken.
198 else if (arg[0][0]=='(')
304 {
305 198 char * endpar=strchr(arg[0], ')');
306
4/8
✓ Branch 386 → 387 taken 99 times.
✗ Branch 386 → 388 not taken.
✗ Branch 387 → 388 not taken.
✓ Branch 387 → 389 taken 99 times.
✓ Branch 471 → 472 taken 99 times.
✗ Branch 471 → 473 not taken.
✗ Branch 472 → 473 not taken.
✓ Branch 472 → 474 taken 99 times.
198 if (!endpar || endpar[1]) return false;
307
2/4
✓ Branch 390 → 391 taken 99 times.
✗ Branch 390 → 437 not taken.
✓ Branch 475 → 476 taken 99 times.
✗ Branch 475 → 519 not taken.
198 unsigned int num=getnum(arg[0]);
308
13/22
✓ Branch 391 → 392 taken 48 times.
✓ Branch 391 → 396 taken 51 times.
✓ Branch 392 → 393 taken 48 times.
✗ Branch 392 → 437 not taken.
✓ Branch 393 → 394 taken 48 times.
✗ Branch 393 → 437 not taken.
✓ Branch 394 → 395 taken 48 times.
✗ Branch 394 → 437 not taken.
✓ Branch 395 → 396 taken 48 times.
✗ Branch 395 → 437 not taken.
✓ Branch 476 → 477 taken 99 times.
✗ Branch 476 → 519 not taken.
✓ Branch 477 → 478 taken 48 times.
✓ Branch 477 → 482 taken 51 times.
✓ Branch 478 → 479 taken 48 times.
✗ Branch 478 → 519 not taken.
✓ Branch 479 → 480 taken 48 times.
✗ Branch 479 → 519 not taken.
✓ Branch 480 → 481 taken 48 times.
✗ Branch 480 → 519 not taken.
✓ Branch 481 → 482 taken 48 times.
✗ Branch 481 → 519 not taken.
198 op("SM") w(0x3E) w(0xF0+reg2) w(num) w(num>>8);
309
310
5/6
✓ Branch 396 → 397 taken 48 times.
✓ Branch 396 → 402 taken 51 times.
✓ Branch 482 → 483 taken 99 times.
✗ Branch 482 → 519 not taken.
✓ Branch 483 → 484 taken 48 times.
✓ Branch 483 → 489 taken 51 times.
198 if (is("SMS"))
311 {
312 96 ok();
313
4/8
✓ Branch 397 → 398 taken 48 times.
✗ Branch 397 → 437 not taken.
✓ Branch 398 → 399 taken 48 times.
✗ Branch 398 → 402 not taken.
✓ Branch 484 → 485 taken 48 times.
✗ Branch 484 → 519 not taken.
✓ Branch 485 → 486 taken 48 times.
✗ Branch 485 → 489 not taken.
96 if (check_short_addr((int)num))
314 {
315
6/12
✓ Branch 399 → 400 taken 48 times.
✗ Branch 399 → 437 not taken.
✓ Branch 400 → 401 taken 48 times.
✗ Branch 400 → 437 not taken.
✓ Branch 401 → 402 taken 48 times.
✗ Branch 401 → 437 not taken.
✓ Branch 486 → 487 taken 48 times.
✗ Branch 486 → 519 not taken.
✓ Branch 487 → 488 taken 48 times.
✗ Branch 487 → 519 not taken.
✓ Branch 488 → 489 taken 48 times.
✗ Branch 488 → 519 not taken.
96 ok() w(0x3E) w(0xA0+reg2) w(num>>1);
316 }
317 }
318
319
4/8
✓ Branch 402 → 403 taken 99 times.
✗ Branch 402 → 404 not taken.
✗ Branch 403 → 404 not taken.
✓ Branch 403 → 410 taken 99 times.
✓ Branch 489 → 490 taken 99 times.
✗ Branch 489 → 491 not taken.
✗ Branch 490 → 491 not taken.
✓ Branch 490 → 498 taken 99 times.
198 if (num&1 || num>=0x200)
320 {
321 op("MOVE") w(0x3E) w(0xF0+reg2) w(num) w(num>>8);
322 }
323 else
324 {
325
11/18
✓ Branch 410 → 411 taken 3 times.
✓ Branch 410 → 414 taken 96 times.
✓ Branch 411 → 412 taken 3 times.
✗ Branch 411 → 437 not taken.
✓ Branch 412 → 413 taken 3 times.
✗ Branch 412 → 437 not taken.
✓ Branch 413 → 414 taken 3 times.
✗ Branch 413 → 437 not taken.
✓ Branch 498 → 499 taken 99 times.
✗ Branch 498 → 519 not taken.
✓ Branch 499 → 500 taken 3 times.
✓ Branch 499 → 503 taken 96 times.
✓ Branch 500 → 501 taken 3 times.
✗ Branch 500 → 519 not taken.
✓ Branch 501 → 502 taken 3 times.
✗ Branch 501 → 519 not taken.
✓ Branch 502 → 503 taken 3 times.
✗ Branch 502 → 519 not taken.
198 op("MOVE") w(0x3E) w(0xA0+reg2) w(num);
326 }
327 }
328 }
329 }
330 #undef ok
331 #undef op
332 #undef w3d
333 #undef w3e
334 #undef w3f
335 3444 return ret;
336 3444 }
337 return false;
338 3654 }
339