| 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_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_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_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], ®1, reg_r); |
| 222 |
|
636 |
int reg2; bool isreg2=getreg(arg[1], ®2, 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], ®2, 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], ®1, 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 |
|
|
|