../3rdparty/pcre/sljit/sljitNativeX86_common.c

Switch to Source codePreprocessed file
LineSource CodeCoverage
1static __attribute__((unused)) const char* sljit_get_platform_name() -
2{ -
3 return "x86" " 64bit (" "little endian + " "unaligned)";
never executed: return "x86" " 64bit (" "little endian + " "unaligned)";
0
4} -
5static const sljit_ub reg_map[11 + 4] = { -
6 0, 0, 6, 1, 8, 11, 3, 15, 14, 13, 12, 4, 2, 7, 9 -
7}; -
8 -
9static const sljit_ub reg_lmap[11 + 4] = { -
10 0, 0, 6, 1, 0, 3, 3, 7, 6, 5, 4, 4, 2, 7, 1 -
11}; -
12typedef unsigned int sljit_uhw; -
13typedef int sljit_hw; -
14static sljit_ub get_jump_code(int type) -
15{ -
16 switch (type) { -
17 case 0: -
18 case 14: -
19 return 0x84;
executed: return 0x84;
Execution Count:70
70
20 -
21 case 1: -
22 case 15: -
23 return 0x85;
executed: return 0x85;
Execution Count:78
78
24 -
25 case 2: -
26 case 16: -
27 return 0x82;
executed: return 0x82;
Execution Count:54
54
28 -
29 case 3: -
30 case 17: -
31 return 0x83;
executed: return 0x83;
Execution Count:26
26
32 -
33 case 4: -
34 case 18: -
35 return 0x87;
executed: return 0x87;
Execution Count:23
23
36 -
37 case 5: -
38 case 19: -
39 return 0x86;
executed: return 0x86;
Execution Count:14
14
40 -
41 case 6: -
42 return 0x8c;
never executed: return 0x8c;
0
43 -
44 case 7: -
45 return 0x8d;
never executed: return 0x8d;
0
46 -
47 case 8: -
48 return 0x8f;
never executed: return 0x8f;
0
49 -
50 case 9: -
51 return 0x8e;
never executed: return 0x8e;
0
52 -
53 case 10: -
54 case 12: -
55 return 0x80;
never executed: return 0x80;
0
56 -
57 case 11: -
58 case 13: -
59 return 0x81;
never executed: return 0x81;
0
60 -
61 case 20: -
62 return 0x8a;
never executed: return 0x8a;
0
63 -
64 case 21: -
65 return 0x8b;
never executed: return 0x8b;
0
66 } -
67 return 0;
never executed: return 0;
0
68} -
69 -
70static sljit_ub* generate_far_jump_code(struct sljit_jump *jump, sljit_ub *code_ptr, int type); -
71 -
72 -
73static sljit_ub* generate_fixed_jump(sljit_ub *code_ptr, sljit_w addr, int type); -
74 -
75 -
76static sljit_ub* generate_near_jump_code(struct sljit_jump *jump, sljit_ub *code_ptr, sljit_ub *code, int type) -
77{ -
78 int short_jump; -
79 sljit_uw label_addr; -
80 -
81 if (jump->flags & 0x1)
evaluated: jump->flags & 0x1
TRUEFALSE
yes
Evaluation Count:401
yes
Evaluation Count:15
15-401
82 label_addr = (sljit_uw)(code + jump->u.label->size);
executed: label_addr = (sljit_uw)(code + jump->u.label->size);
Execution Count:401
401
83 else -
84 label_addr = jump->u.target;
executed: label_addr = jump->u.target;
Execution Count:15
15
85 short_jump = (sljit_w)(label_addr - (jump->addr + 2)) >= -128 && (sljit_w)(label_addr - (jump->addr + 2)) <= 127;
evaluated: (sljit_w)(label_addr - (jump->addr + 2)) >= -128
TRUEFALSE
yes
Evaluation Count:313
yes
Evaluation Count:103
evaluated: (sljit_w)(label_addr - (jump->addr + 2)) <= 127
TRUEFALSE
yes
Evaluation Count:137
yes
Evaluation Count:176
103-313
86 -
87 -
88 if ((sljit_w)(label_addr - (jump->addr + 1)) > 0x7fffffffll || (sljit_w)(label_addr - (jump->addr + 1)) < -0x80000000ll)
partially evaluated: (sljit_w)(label_addr - (jump->addr + 1)) > 0x7fffffffll
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:416
partially evaluated: (sljit_w)(label_addr - (jump->addr + 1)) < -0x80000000ll
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:416
0-416
89 return generate_far_jump_code(jump, code_ptr, type);
never executed: return generate_far_jump_code(jump, code_ptr, type);
0
90 -
91 -
92 if (type == 22) {
evaluated: type == 22
TRUEFALSE
yes
Evaluation Count:113
yes
Evaluation Count:303
113-303
93 if (short_jump)
evaluated: short_jump
TRUEFALSE
yes
Evaluation Count:52
yes
Evaluation Count:61
52-61
94 *code_ptr++ = 0xeb;
executed: *code_ptr++ = 0xeb;
Execution Count:52
52
95 else -
96 *code_ptr++ = 0xe9;
executed: *code_ptr++ = 0xe9;
Execution Count:61
61
97 jump->addr++; -
98 }
executed: }
Execution Count:113
113
99 else if (type >= 23) {
evaluated: type >= 23
TRUEFALSE
yes
Evaluation Count:38
yes
Evaluation Count:265
38-265
100 short_jump = 0; -
101 *code_ptr++ = 0xe8; -
102 jump->addr++; -
103 }
executed: }
Execution Count:38
38
104 else if (short_jump) {
evaluated: short_jump
TRUEFALSE
yes
Evaluation Count:85
yes
Evaluation Count:180
85-180
105 *code_ptr++ = get_jump_code(type) - 0x10; -
106 jump->addr++; -
107 }
executed: }
Execution Count:85
85
108 else { -
109 *code_ptr++ = 0x0f; -
110 *code_ptr++ = get_jump_code(type); -
111 jump->addr += 2; -
112 }
executed: }
Execution Count:180
180
113 -
114 if (short_jump) {
evaluated: short_jump
TRUEFALSE
yes
Evaluation Count:137
yes
Evaluation Count:279
137-279
115 jump->flags |= 0x4; -
116 code_ptr += sizeof(sljit_b); -
117 } else {
executed: }
Execution Count:137
137
118 jump->flags |= 0x8; -
119 -
120 -
121 -
122 code_ptr += sizeof(sljit_hw); -
123 -
124 }
executed: }
Execution Count:279
279
125 -
126 return code_ptr;
executed: return code_ptr;
Execution Count:416
416
127} -
128 -
129static __attribute__((unused)) void* sljit_generate_code(struct sljit_compiler *compiler) -
130{ -
131 struct sljit_memory_fragment *buf; -
132 sljit_ub *code; -
133 sljit_ub *code_ptr; -
134 sljit_ub *buf_ptr; -
135 sljit_ub *buf_end; -
136 sljit_ub len; -
137 -
138 struct sljit_label *label; -
139 struct sljit_jump *jump; -
140 struct sljit_const *const_; -
141 -
142 do { if (__builtin_expect((compiler->error), 0)) return ((void *)0); } while (0);
partially evaluated: __builtin_expect((compiler->error), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never executed: return ((void *)0);
executed: }
Execution Count:15
0-15
143 check_sljit_generate_code(compiler); -
144 reverse_buf(compiler); -
145 -
146 -
147 code = (sljit_ub*)sljit_malloc_exec(compiler->size); -
148 do { if (__builtin_expect((!(code)), 0)) { compiler->error = 3; return ((void *)0); } } while (0);
partially evaluated: __builtin_expect((!(code)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never executed: return ((void *)0);
executed: }
Execution Count:15
0-15
149 buf = compiler->buf; -
150 -
151 code_ptr = code; -
152 label = compiler->labels; -
153 jump = compiler->jumps; -
154 const_ = compiler->consts; -
155 do { -
156 buf_ptr = buf->memory; -
157 buf_end = buf_ptr + buf->used_size; -
158 do { -
159 len = *buf_ptr++; -
160 if (len > 0) {
evaluated: len > 0
TRUEFALSE
yes
Evaluation Count:1667
yes
Evaluation Count:687
687-1667
161 -
162 memmove(code_ptr, buf_ptr, len); -
163 code_ptr += len; -
164 buf_ptr += len; -
165 }
executed: }
Execution Count:1667
1667
166 else { -
167 if (*buf_ptr >= 4) {
evaluated: *buf_ptr >= 4
TRUEFALSE
yes
Evaluation Count:416
yes
Evaluation Count:271
271-416
168 jump->addr = (sljit_uw)code_ptr; -
169 if (!(jump->flags & 0x1000))
partially evaluated: !(jump->flags & 0x1000)
TRUEFALSE
yes
Evaluation Count:416
no
Evaluation Count:0
0-416
170 code_ptr = generate_near_jump_code(jump, code_ptr, code, *buf_ptr - 4);
executed: code_ptr = generate_near_jump_code(jump, code_ptr, code, *buf_ptr - 4);
Execution Count:416
416
171 else -
172 code_ptr = generate_far_jump_code(jump, code_ptr, *buf_ptr - 4);
never executed: code_ptr = generate_far_jump_code(jump, code_ptr, *buf_ptr - 4);
0
173 jump = jump->next; -
174 }
executed: }
Execution Count:416
416
175 else if (*buf_ptr == 0) {
partially evaluated: *buf_ptr == 0
TRUEFALSE
yes
Evaluation Count:271
no
Evaluation Count:0
0-271
176 label->addr = (sljit_uw)code_ptr; -
177 label->size = code_ptr - code; -
178 label = label->next; -
179 }
executed: }
Execution Count:271
271
180 else if (*buf_ptr == 1) {
never evaluated: *buf_ptr == 1
0
181 const_->addr = ((sljit_uw)code_ptr) - sizeof(sljit_w); -
182 const_ = const_->next; -
183 }
never executed: }
0
184 else { -
185 -
186 -
187 -
188 -
189 -
190 -
191 -
192 code_ptr = generate_fixed_jump(code_ptr, *(sljit_w*)(buf_ptr + 1), *buf_ptr); -
193 buf_ptr += sizeof(sljit_w); -
194 -
195 }
never executed: }
0
196 buf_ptr++; -
197 }
executed: }
Execution Count:687
687
198 } while (buf_ptr < buf_end);
evaluated: buf_ptr < buf_end
TRUEFALSE
yes
Evaluation Count:2339
yes
Evaluation Count:15
15-2339
199 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
executed: }
Execution Count:15
0-15
200 buf = buf->next; -
201 } while (buf);
partially evaluated: buf
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
executed: }
Execution Count:15
0-15
202 -
203 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
executed: }
Execution Count:15
0-15
204 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
executed: }
Execution Count:15
0-15
205 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
executed: }
Execution Count:15
0-15
206 -
207 jump = compiler->jumps; -
208 while (jump) {
evaluated: jump
TRUEFALSE
yes
Evaluation Count:416
yes
Evaluation Count:15
15-416
209 if (jump->flags & 0x4) {
evaluated: jump->flags & 0x4
TRUEFALSE
yes
Evaluation Count:137
yes
Evaluation Count:279
137-279
210 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:137
executed: }
Execution Count:137
0-137
211 *(sljit_ub*)jump->addr = (sljit_ub)(jump->u.label->addr - (jump->addr + sizeof(sljit_b))); -
212 } else if (jump->flags & 0x8) {
partially evaluated: jump->flags & 0x8
TRUEFALSE
yes
Evaluation Count:279
no
Evaluation Count:0
executed: }
Execution Count:137
0-279
213 if (jump->flags & 0x1) {
evaluated: jump->flags & 0x1
TRUEFALSE
yes
Evaluation Count:264
yes
Evaluation Count:15
15-264
214 -
215 -
216 -
217 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:264
executed: }
Execution Count:264
0-264
218 *(sljit_hw*)jump->addr = (sljit_hw)(jump->u.label->addr - (jump->addr + sizeof(sljit_hw))); -
219 -
220 }
executed: }
Execution Count:264
264
221 else { -
222 -
223 -
224 -
225 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
executed: }
Execution Count:15
0-15
226 *(sljit_hw*)jump->addr = (sljit_hw)(jump->u.target - (jump->addr + sizeof(sljit_hw))); -
227 -
228 }
executed: }
Execution Count:15
15
229 } -
230 -
231 else if (jump->flags & 0x10)
never evaluated: jump->flags & 0x10
0
232 *(sljit_w*)jump->addr = jump->u.label->addr;
never executed: *(sljit_w*)jump->addr = jump->u.label->addr;
0
233 -
234 -
235 jump = jump->next; -
236 }
executed: }
Execution Count:416
416
237 -
238 -
239 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
executed: }
Execution Count:15
0-15
240 compiler->error = 1; -
241 compiler->executable_size = compiler->size; -
242 return (void*)code;
executed: return (void*)code;
Execution Count:15
15
243} -
244 -
245 -
246 -
247 -
248 -
249static int emit_cum_binary(struct sljit_compiler *compiler, -
250 sljit_ub op_rm, sljit_ub op_mr, sljit_ub op_imm, sljit_ub op_eax_imm, -
251 int dst, sljit_w dstw, -
252 int src1, sljit_w src1w, -
253 int src2, sljit_w src2w); -
254 -
255static int emit_non_cum_binary(struct sljit_compiler *compiler, -
256 sljit_ub op_rm, sljit_ub op_mr, sljit_ub op_imm, sljit_ub op_eax_imm, -
257 int dst, sljit_w dstw, -
258 int src1, sljit_w src1w, -
259 int src2, sljit_w src2w); -
260 -
261static int emit_mov(struct sljit_compiler *compiler, -
262 int dst, sljit_w dstw, -
263 int src, sljit_w srcw); -
264 -
265static __inline int emit_save_flags(struct sljit_compiler *compiler) -
266{ -
267 sljit_ub *buf; -
268 -
269 -
270 -
271 -
272 -
273 -
274 -
275 buf = (sljit_ub*)ensure_buf(compiler, 1 + 6); -
276 do { if (__builtin_expect((!buf), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!buf), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
277 (*buf++ = (6), compiler->size += (6)); -
278 *buf++ = 0x9c; -
279 *buf++ = 0x48; -
280 -
281 *buf++ = 0x8d; -
282 *buf++ = 0x64; -
283 *buf++ = 0x24; -
284 *buf++ = sizeof(sljit_w); -
285 compiler->flags_saved = 1; -
286 return 0;
never executed: return 0;
0
287} -
288 -
289static __inline int emit_restore_flags(struct sljit_compiler *compiler, int keep_flags) -
290{ -
291 sljit_ub *buf; -
292 -
293 -
294 -
295 -
296 -
297 -
298 buf = (sljit_ub*)ensure_buf(compiler, 1 + 6); -
299 do { if (__builtin_expect((!buf), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!buf), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
300 (*buf++ = (6), compiler->size += (6)); -
301 *buf++ = 0x48; -
302 -
303 *buf++ = 0x8d; -
304 *buf++ = 0x64; -
305 *buf++ = 0x24; -
306 *buf++ = (sljit_ub)-(int)sizeof(sljit_w); -
307 *buf++ = 0x9d; -
308 compiler->flags_saved = keep_flags; -
309 return 0;
never executed: return 0;
0
310} -
311 -
312 -
313static int emit_mov(struct sljit_compiler *compiler, -
314 int dst, sljit_w dstw, -
315 int src, sljit_w srcw) -
316{ -
317 sljit_ub* code; -
318 -
319 if (dst == 0) {
partially evaluated: dst == 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:634
0-634
320 -
321 if (src & 0x100) {
never evaluated: src & 0x100
0
322 code = emit_x86_instruction(compiler, 1, (11 + 1), 0, src, srcw); -
323 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
324 *code = 0x8b; -
325 }
never executed: }
0
326 return 0;
never executed: return 0;
0
327 } -
328 if (src >= 1 && src <= (11 + 1)) {
partially evaluated: src >= 1
TRUEFALSE
yes
Evaluation Count:634
no
Evaluation Count:0
evaluated: src <= (11 + 1)
TRUEFALSE
yes
Evaluation Count:228
yes
Evaluation Count:406
0-634
329 code = emit_x86_instruction(compiler, 1, src, 0, dst, dstw); -
330 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:228
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:228
never executed: return compiler->error;
executed: }
Execution Count:228
0-228
331 *code = 0x89; -
332 return 0;
executed: return 0;
Execution Count:228
228
333 } -
334 if (src & 0x200) {
evaluated: src & 0x200
TRUEFALSE
yes
Evaluation Count:80
yes
Evaluation Count:326
80-326
335 if (dst >= 1 && dst <= (11 + 1)) {
partially evaluated: dst >= 1
TRUEFALSE
yes
Evaluation Count:80
no
Evaluation Count:0
evaluated: dst <= (11 + 1)
TRUEFALSE
yes
Evaluation Count:69
yes
Evaluation Count:11
0-80
336 -
337 -
338 -
339 if (!compiler->mode32) {
partially evaluated: !compiler->mode32
TRUEFALSE
yes
Evaluation Count:69
no
Evaluation Count:0
0-69
340 if (((srcw) > 0x7fffffffll || (srcw) < -0x80000000ll))
partially evaluated: (srcw) > 0x7fffffffll
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:69
partially evaluated: (srcw) < -0x80000000ll
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:69
0-69
341 return emit_load_imm64(compiler, dst, srcw);
never executed: return emit_load_imm64(compiler, dst, srcw);
0
342 }
executed: }
Execution Count:69
69
343 else -
344 return emit_do_imm32(compiler, (reg_map[dst] >= 8) ? 0x41 : 0, 0xb8 + reg_lmap[dst], srcw);
never executed: return emit_do_imm32(compiler, (reg_map[dst] >= 8) ? 0x41 : 0, 0xb8 + reg_lmap[dst], srcw);
0
345 -
346 } -
347 -
348 if (!compiler->mode32 && ((srcw) > 0x7fffffffll || (srcw) < -0x80000000ll)) {
partially evaluated: !compiler->mode32
TRUEFALSE
yes
Evaluation Count:80
no
Evaluation Count:0
partially evaluated: (srcw) > 0x7fffffffll
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:80
partially evaluated: (srcw) < -0x80000000ll
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:80
0-80
349 do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), srcw)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), srcw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
350 code = emit_x86_instruction(compiler, 1, (11 + 2), 0, dst, dstw); -
351 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
352 *code = 0x89; -
353 return 0;
never executed: return 0;
0
354 } -
355 -
356 code = emit_x86_instruction(compiler, 1, 0x200, srcw, dst, dstw); -
357 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:80
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:80
never executed: return compiler->error;
executed: }
Execution Count:80
0-80
358 *code = 0xc7; -
359 return 0;
executed: return 0;
Execution Count:80
80
360 } -
361 if (dst >= 1 && dst <= (11 + 1)) {
partially evaluated: dst >= 1
TRUEFALSE
yes
Evaluation Count:326
no
Evaluation Count:0
evaluated: dst <= (11 + 1)
TRUEFALSE
yes
Evaluation Count:311
yes
Evaluation Count:15
0-326
362 code = emit_x86_instruction(compiler, 1, dst, 0, src, srcw); -
363 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:311
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:311
never executed: return compiler->error;
executed: }
Execution Count:311
0-311
364 *code = 0x8b; -
365 return 0;
executed: return 0;
Execution Count:311
311
366 } -
367 -
368 -
369 code = emit_x86_instruction(compiler, 1, (11 + 1), 0, src, srcw); -
370 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never executed: return compiler->error;
executed: }
Execution Count:15
0-15
371 *code = 0x8b; -
372 code = emit_x86_instruction(compiler, 1, (11 + 1), 0, dst, dstw); -
373 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never executed: return compiler->error;
executed: }
Execution Count:15
0-15
374 *code = 0x89; -
375 return 0;
executed: return 0;
Execution Count:15
15
376} -
377 -
378 -
379 -
380 -
381static __attribute__((unused)) int sljit_emit_op0(struct sljit_compiler *compiler, int op) -
382{ -
383 sljit_ub *buf; -
384 -
385 int size; -
386 -
387 -
388 do { if (__builtin_expect((compiler->error), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((compiler->error), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
389 check_sljit_emit_op0(compiler, op); -
390 -
391 switch (((op) & ~(0x100 | 0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000 | 0x4000))) { -
392 case 0: -
393 buf = (sljit_ub*)ensure_buf(compiler, 1 + 1); -
394 do { if (__builtin_expect((!buf), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!buf), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
395 (*buf++ = (1), compiler->size += (1)); -
396 *buf = 0xcc; -
397 break;
never executed: break;
0
398 case 1: -
399 buf = (sljit_ub*)ensure_buf(compiler, 1 + 1); -
400 do { if (__builtin_expect((!buf), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!buf), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
401 (*buf++ = (1), compiler->size += (1)); -
402 *buf = 0x90; -
403 break;
never executed: break;
0
404 case 2: -
405 case 3: -
406 case 4: -
407 case 5: -
408 compiler->flags_saved = 0; -
409 do { } while (0);
never evaluated: 0
never executed: }
0
410 -
411 -
412 -
413 -
414 -
415 compiler->mode32 = op & 0x100; -
416 -
417 -
418 op = ((op) & ~(0x100 | 0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000 | 0x4000)); -
419 if (op == 4) {
never evaluated: op == 4
0
420 -
421 -
422 -
423 -
424 buf = emit_x86_instruction(compiler, 1, (11 + 1), 0, (11 + 1), 0); -
425 -
426 do { if (__builtin_expect((!buf), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!buf), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
427 *buf = 0x33; -
428 }
never executed: }
0
429 -
430 if (op == 5) {
never evaluated: op == 5
0
431 if (compiler->mode32) {
never evaluated: compiler->mode32
0
432 buf = (sljit_ub*)ensure_buf(compiler, 1 + 1); -
433 do { if (__builtin_expect((!buf), 0)) return compiler->error; } while (0);
never executed: }
never evaluated: __builtin_expect((!buf), 0)
never evaluated: 0
never executed: return compiler->error;
0
434 (*buf++ = (1), compiler->size += (1)); -
435 *buf = 0x99; -
436 } else {
never executed: }
0
437 buf = (sljit_ub*)ensure_buf(compiler, 1 + 2); -
438 do { if (__builtin_expect((!buf), 0)) return compiler->error; } while (0);
never executed: return compiler->error;
never executed: }
never evaluated: __builtin_expect((!buf), 0)
never evaluated: 0
0
439 (*buf++ = (2), compiler->size += (2)); -
440 *buf++ = 0x48; -
441 *buf = 0x99; -
442 }
never executed: }
0
443 -
444 } -
445 size = (!compiler->mode32) ? 3 : 2;
never evaluated: (!compiler->mode32)
0
446 -
447 buf = (sljit_ub*)ensure_buf(compiler, 1 + size); -
448 do { if (__builtin_expect((!buf), 0)) return compiler->error; } while (0);
never executed: return compiler->error;
never executed: }
never evaluated: __builtin_expect((!buf), 0)
never evaluated: 0
0
449 (*buf++ = (size), compiler->size += (size)); -
450 if (!compiler->mode32)
never evaluated: !compiler->mode32
0
451 *buf++ = 0x48;
never executed: *buf++ = 0x48;
0
452 *buf++ = 0xf7; -
453 *buf = 0xc0 | reg_map[2]; -
454 -
455 -
456 switch (op) { -
457 case 2: -
458 *buf |= 4 << 3; -
459 break;
never executed: break;
0
460 case 3: -
461 *buf |= 5 << 3; -
462 break;
never executed: break;
0
463 case 4: -
464 *buf |= 6 << 3; -
465 break;
never executed: break;
0
466 case 5: -
467 *buf |= 7 << 3; -
468 break;
never executed: break;
0
469 } -
470 -
471 do { if (__builtin_expect((emit_mov(compiler, 2, 0, (11 + 1), 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, 2, 0, (11 + 1), 0)), 0)
never executed: return compiler->error;
never executed: }
never evaluated: 0
0
472 -
473 break;
never executed: break;
0
474 } -
475 -
476 return 0;
never executed: return 0;
0
477} -
478static int emit_mov_byte(struct sljit_compiler *compiler, int sign, -
479 int dst, sljit_w dstw, -
480 int src, sljit_w srcw) -
481{ -
482 sljit_ub* code; -
483 int dst_r; -
484 -
485 -
486 -
487 -
488 -
489 compiler->mode32 = 0; -
490 -
491 -
492 if (dst == 0 && !(src & 0x100))
partially evaluated: dst == 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:32
never evaluated: !(src & 0x100)
0-32
493 return 0;
never executed: return 0;
0
494 -
495 if (src & 0x200) {
partially evaluated: src & 0x200
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:32
0-32
496 if (dst >= 1 && dst <= (11 + 1)) {
never evaluated: dst >= 1
never evaluated: dst <= (11 + 1)
0
497 -
498 -
499 -
500 return emit_load_imm64(compiler, dst, srcw);
never executed: return emit_load_imm64(compiler, dst, srcw);
0
501 -
502 } -
503 code = emit_x86_instruction(compiler, 1 | 0x0100 | 0x0080, 0x200, srcw, dst, dstw); -
504 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never executed: return compiler->error;
never executed: }
never evaluated: 0
0
505 *code = 0xc6; -
506 return 0;
never executed: return 0;
0
507 } -
508 -
509 dst_r = (dst >= 1 && dst <= (11 + 1)) ? dst : (11 + 1);
partially evaluated: dst >= 1
TRUEFALSE
yes
Evaluation Count:32
no
Evaluation Count:0
partially evaluated: dst <= (11 + 1)
TRUEFALSE
yes
Evaluation Count:32
no
Evaluation Count:0
0-32
510 -
511 if ((dst & 0x100) && src >= 1 && src <= 11) {
partially evaluated: (dst & 0x100)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:32
never evaluated: src >= 1
never evaluated: src <= 11
0-32
512 -
513 -
514 -
515 -
516 -
517 -
518 -
519 dst_r = src; -
520 -
521 }
never executed: }
0
522 else { -
523 -
524 code = emit_x86_instruction(compiler, 2, dst_r, 0, src, srcw); -
525 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:32
never executed: return compiler->error;
executed: }
Execution Count:32
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:32
0-32
526 *code++ = 0x0f; -
527 *code = sign ? 0xbe : 0xb6;
partially evaluated: sign
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:32
0-32
528 }
executed: }
Execution Count:32
32
529 -
530 if (dst & 0x100) {
partially evaluated: dst & 0x100
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:32
0-32
531 code = emit_x86_instruction(compiler, 1 | 0x0040 | 0x0080, dst_r, 0, dst, dstw); -
532 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never executed: return compiler->error;
never executed: }
never evaluated: 0
0
533 *code = 0x88; -
534 -
535 }
never executed: }
0
536 -
537 return 0;
executed: return 0;
Execution Count:32
32
538} -
539 -
540static int emit_mov_half(struct sljit_compiler *compiler, int sign, -
541 int dst, sljit_w dstw, -
542 int src, sljit_w srcw) -
543{ -
544 sljit_ub* code; -
545 int dst_r; -
546 -
547 -
548 compiler->mode32 = 0; -
549 -
550 -
551 if (dst == 0 && !(src & 0x100))
partially evaluated: dst == 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:70
never evaluated: !(src & 0x100)
0-70
552 return 0;
never executed: return 0;
0
553 -
554 if (src & 0x200) {
partially evaluated: src & 0x200
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:70
0-70
555 if (dst >= 1 && dst <= (11 + 1)) {
never evaluated: dst >= 1
never evaluated: dst <= (11 + 1)
0
556 -
557 -
558 -
559 return emit_load_imm64(compiler, dst, srcw);
never executed: return emit_load_imm64(compiler, dst, srcw);
0
560 -
561 } -
562 code = emit_x86_instruction(compiler, 1 | 0x0200 | 0x0080 | 0x0400, 0x200, srcw, dst, dstw); -
563 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never executed: return compiler->error;
never executed: }
never evaluated: 0
0
564 *code = 0xc7; -
565 return 0;
never executed: return 0;
0
566 } -
567 -
568 dst_r = (dst >= 1 && dst <= (11 + 1)) ? dst : (11 + 1);
partially evaluated: dst >= 1
TRUEFALSE
yes
Evaluation Count:70
no
Evaluation Count:0
partially evaluated: dst <= (11 + 1)
TRUEFALSE
yes
Evaluation Count:70
no
Evaluation Count:0
0-70
569 -
570 if ((dst & 0x100) && (src >= 1 && src <= 11))
partially evaluated: (dst & 0x100)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:70
never evaluated: src >= 1
never evaluated: src <= 11
0-70
571 dst_r = src;
never executed: dst_r = src;
0
572 else { -
573 code = emit_x86_instruction(compiler, 2, dst_r, 0, src, srcw); -
574 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:70
never executed: return compiler->error;
executed: }
Execution Count:70
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:70
0-70
575 *code++ = 0x0f; -
576 *code = sign ? 0xbf : 0xb7;
partially evaluated: sign
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:70
0-70
577 }
executed: }
Execution Count:70
70
578 -
579 if (dst & 0x100) {
partially evaluated: dst & 0x100
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:70
0-70
580 code = emit_x86_instruction(compiler, 1 | 0x0080 | 0x0400, dst_r, 0, dst, dstw); -
581 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never executed: return compiler->error;
never executed: }
never evaluated: 0
0
582 *code = 0x89; -
583 }
never executed: }
0
584 -
585 return 0;
executed: return 0;
Execution Count:70
70
586} -
587 -
588static int emit_unary(struct sljit_compiler *compiler, int un_index, -
589 int dst, sljit_w dstw, -
590 int src, sljit_w srcw) -
591{ -
592 sljit_ub* code; -
593 -
594 if (dst == 0) {
never evaluated: dst == 0
0
595 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src, srcw)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src, srcw)), 0)
never executed: return compiler->error;
never executed: }
never evaluated: 0
0
596 code = emit_x86_instruction(compiler, 1, 0, 0, (11 + 1), 0); -
597 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never executed: return compiler->error;
never executed: }
never evaluated: 0
0
598 *code++ = 0xf7; -
599 *code |= (un_index) << 3; -
600 return 0;
never executed: return 0;
0
601 } -
602 if (dst == src && dstw == srcw) {
never evaluated: dst == src
never evaluated: dstw == srcw
0
603 -
604 code = emit_x86_instruction(compiler, 1, 0, 0, dst, dstw); -
605 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
606 *code++ = 0xf7; -
607 *code |= (un_index) << 3; -
608 return 0;
never executed: return 0;
0
609 } -
610 if (dst >= 1 && dst <= 11) {
never evaluated: dst >= 1
never evaluated: dst <= 11
0
611 do { if (__builtin_expect((emit_mov(compiler, dst, 0, src, srcw)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst, 0, src, srcw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
612 code = emit_x86_instruction(compiler, 1, 0, 0, dst, dstw); -
613 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
614 *code++ = 0xf7; -
615 *code |= (un_index) << 3; -
616 return 0;
never executed: return 0;
0
617 } -
618 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src, srcw)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src, srcw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
619 code = emit_x86_instruction(compiler, 1, 0, 0, (11 + 1), 0); -
620 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
621 *code++ = 0xf7; -
622 *code |= (un_index) << 3; -
623 do { if (__builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
624 return 0;
never executed: return 0;
0
625} -
626 -
627static int emit_not_with_flags(struct sljit_compiler *compiler, -
628 int dst, sljit_w dstw, -
629 int src, sljit_w srcw) -
630{ -
631 sljit_ub* code; -
632 -
633 if (dst == 0) {
never evaluated: dst == 0
0
634 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src, srcw)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src, srcw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
635 code = emit_x86_instruction(compiler, 1, 0, 0, (11 + 1), 0); -
636 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
637 *code++ = 0xf7; -
638 *code |= 0x2 << 3; -
639 code = emit_x86_instruction(compiler, 1, (11 + 1), 0, (11 + 1), 0); -
640 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
641 *code = 0x0b; -
642 return 0;
never executed: return 0;
0
643 } -
644 if (dst >= 1 && dst <= 11) {
never evaluated: dst >= 1
never evaluated: dst <= 11
0
645 do { if (__builtin_expect((emit_mov(compiler, dst, 0, src, srcw)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst, 0, src, srcw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
646 code = emit_x86_instruction(compiler, 1, 0, 0, dst, dstw); -
647 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
648 *code++ = 0xf7; -
649 *code |= 0x2 << 3; -
650 code = emit_x86_instruction(compiler, 1, dst, 0, dst, 0); -
651 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
652 *code = 0x0b; -
653 return 0;
never executed: return 0;
0
654 } -
655 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src, srcw)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src, srcw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
656 code = emit_x86_instruction(compiler, 1, 0, 0, (11 + 1), 0); -
657 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
658 *code++ = 0xf7; -
659 *code |= 0x2 << 3; -
660 code = emit_x86_instruction(compiler, 1, (11 + 1), 0, (11 + 1), 0); -
661 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
662 *code = 0x0b; -
663 do { if (__builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
664 return 0;
never executed: return 0;
0
665} -
666 -
667static int emit_clz(struct sljit_compiler *compiler, int op, -
668 int dst, sljit_w dstw, -
669 int src, sljit_w srcw) -
670{ -
671 sljit_ub* code; -
672 int dst_r; -
673 -
674 (void)op; -
675 if (__builtin_expect((dst == 0), 0)) {
never evaluated: __builtin_expect((dst == 0), 0)
0
676 -
677 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src, srcw)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src, srcw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
678 code = emit_x86_instruction(compiler, 1, 0, 0, (11 + 1), 0); -
679 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
680 *code++ = 0xf7; -
681 *code |= 0x2 << 3; -
682 -
683 -
684 -
685 code = emit_x86_instruction(compiler, 1 | 0x0020, 0x200, !(op & 0x100) ? 63 : 31, (11 + 1), 0); -
686 -
687 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
688 *code |= 0x5 << 3; -
689 return 0;
never executed: return 0;
0
690 } -
691 -
692 if (__builtin_expect((src & 0x200), 0)) {
never evaluated: __builtin_expect((src & 0x200), 0)
0
693 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src, srcw)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src, srcw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
694 src = (11 + 1); -
695 srcw = 0; -
696 }
never executed: }
0
697 -
698 code = emit_x86_instruction(compiler, 2, (11 + 1), 0, src, srcw); -
699 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
700 *code++ = 0x0f; -
701 *code = 0xbd; -
702 dst_r = (dst >= 1 && dst <= (11 + 1)) ? dst : (11 + 2);
never evaluated: dst >= 1
never evaluated: dst <= (11 + 1)
0
703 compiler->mode32 = 0; -
704 do { if (__builtin_expect((emit_mov(compiler, dst_r, 0, 0x200, !(op & 0x100) ? 64 + 63 : 32 + 31)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst_r, 0, 0x200, !(op & 0x100) ? 64 + 63 : 32 + 31)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
705 compiler->mode32 = op & 0x100; -
706 -
707 -
708 code = emit_x86_instruction(compiler, 2, dst_r, 0, (11 + 1), 0); -
709 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
710 *code++ = 0x0f; -
711 *code = 0x45; -
712 -
713 -
714 -
715 -
716 code = emit_x86_instruction(compiler, 1 | 0x0010, 0x200, !(op & 0x100) ? 63 : 31, dst_r, 0); -
717 -
718 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
719 *(code + 1) |= 0x6 << 3; -
720 if (dst & 0x100)
never evaluated: dst & 0x100
0
721 do { if (__builtin_expect((emit_mov(compiler, dst, dstw, (11 + 2), 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst, dstw, (11 + 2), 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
722 -
723 return 0;
never executed: return 0;
0
724} -
725 -
726static __attribute__((unused)) int sljit_emit_op1(struct sljit_compiler *compiler, int op, -
727 int dst, sljit_w dstw, -
728 int src, sljit_w srcw) -
729{ -
730 sljit_ub* code; -
731 int update = 0; -
732 -
733 -
734 -
735 -
736 -
737 -
738 -
739 do { if (__builtin_expect((compiler->error), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((compiler->error), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:720
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:720
never executed: return compiler->error;
executed: }
Execution Count:720
0-720
740 check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw); -
741 -
742 -
743 compiler->mode32 = op & 0x100; -
744 -
745 ; -
746 ; -
747 -
748 if (((op) & ~(0x100 | 0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000 | 0x4000)) >= 6 && ((op) & ~(0x100 | 0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000 | 0x4000)) <= 19) {
partially evaluated: ((op) & ~(0x100 | 0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000 | 0x4000)) >= 6
TRUEFALSE
yes
Evaluation Count:720
no
Evaluation Count:0
partially evaluated: ((op) & ~(0x100 | 0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000 | 0x4000)) <= 19
TRUEFALSE
yes
Evaluation Count:720
no
Evaluation Count:0
0-720
749 op = ((op) & ~(0x100 | 0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000 | 0x4000)); -
750 -
751 compiler->mode32 = 0; -
752 -
753 -
754 do { } while (0);
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:720
executed: }
Execution Count:720
0-720
755 if (op >= 13) {
evaluated: op >= 13
TRUEFALSE
yes
Evaluation Count:15
yes
Evaluation Count:705
15-705
756 update = 1; -
757 op -= 7; -
758 }
executed: }
Execution Count:15
15
759 -
760 if (src & 0x200) {
evaluated: src & 0x200
TRUEFALSE
yes
Evaluation Count:80
yes
Evaluation Count:640
80-640
761 switch (op) { -
762 case 7: -
763 srcw = (unsigned char)srcw; -
764 break;
never executed: break;
0
765 case 8: -
766 srcw = (signed char)srcw; -
767 break;
never executed: break;
0
768 case 9: -
769 srcw = (unsigned short)srcw; -
770 break;
never executed: break;
0
771 case 10: -
772 srcw = (signed short)srcw; -
773 break;
never executed: break;
0
774 -
775 case 11: -
776 srcw = (unsigned int)srcw; -
777 break;
never executed: break;
0
778 case 12: -
779 srcw = (signed int)srcw; -
780 break;
never executed: break;
0
781 -
782 } -
783 -
784 -
785 -
786 -
787 }
executed: }
Execution Count:80
80
788 -
789 if (__builtin_expect((update), 0) && (src & 0x100) && !0 && (src & 0xf) && (srcw != 0 || (src & 0xf0) != 0)) {
evaluated: __builtin_expect((update), 0)
TRUEFALSE
yes
Evaluation Count:15
yes
Evaluation Count:705
partially evaluated: (src & 0x100)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never evaluated: !0
never evaluated: (src & 0xf)
never evaluated: srcw != 0
never evaluated: (src & 0xf0) != 0
0-705
790 code = emit_x86_instruction(compiler, 1, src & 0xf, 0, src, srcw); -
791 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
792 *code = 0x8d; -
793 src &= 0x100 | 0xf; -
794 srcw = 0; -
795 }
never executed: }
0
796 switch (op) { -
797 case 6: -
798 -
799 -
800 -
801 -
802 do { if (__builtin_expect((emit_mov(compiler, dst, dstw, src, srcw)), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((emit_mov(compiler, dst, dstw, src, srcw)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:573
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:573
never executed: return compiler->error;
executed: }
Execution Count:573
0-573
803 break;
executed: break;
Execution Count:573
573
804 case 7: -
805 do { if (__builtin_expect((emit_mov_byte(compiler, 0, dst, dstw, src, (src & 0x200) ? (unsigned char)srcw : srcw)), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((emit_mov_byte(compiler, 0, dst, dstw, src, (src & 0x200) ? (unsigned char)srcw : srcw)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:32
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:32
never executed: return compiler->error;
executed: }
Execution Count:32
0-32
806 break;
executed: break;
Execution Count:32
32
807 case 8: -
808 do { if (__builtin_expect((emit_mov_byte(compiler, 1, dst, dstw, src, (src & 0x200) ? (signed char)srcw : srcw)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_mov_byte(compiler, 1, dst, dstw, src, (src & 0x200) ? (signed char)srcw : srcw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
809 break;
never executed: break;
0
810 case 9: -
811 do { if (__builtin_expect((emit_mov_half(compiler, 0, dst, dstw, src, (src & 0x200) ? (unsigned short)srcw : srcw)), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((emit_mov_half(compiler, 0, dst, dstw, src, (src & 0x200) ? (unsigned short)srcw : srcw)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:70
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:70
never executed: return compiler->error;
executed: }
Execution Count:70
0-70
812 break;
executed: break;
Execution Count:70
70
813 case 10: -
814 do { if (__builtin_expect((emit_mov_half(compiler, 1, dst, dstw, src, (src & 0x200) ? (signed short)srcw : srcw)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_mov_half(compiler, 1, dst, dstw, src, (src & 0x200) ? (signed short)srcw : srcw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
815 break;
never executed: break;
0
816 -
817 case 11: -
818 do { if (__builtin_expect((emit_mov_int(compiler, 0, dst, dstw, src, (src & 0x200) ? (unsigned int)srcw : srcw)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_mov_int(compiler, 0, dst, dstw, src, (src & 0x200) ? (unsigned int)srcw : srcw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
819 break;
never executed: break;
0
820 case 12: -
821 do { if (__builtin_expect((emit_mov_int(compiler, 1, dst, dstw, src, (src & 0x200) ? (signed int)srcw : srcw)), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((emit_mov_int(compiler, 1, dst, dstw, src, (src & 0x200) ? (signed int)srcw : srcw)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:45
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:45
never executed: return compiler->error;
executed: }
Execution Count:45
0-45
822 break;
executed: break;
Execution Count:45
45
823 -
824 } -
825 -
826 -
827 -
828 -
829 -
830 -
831 if (__builtin_expect((update), 0) && (dst & 0x100) && (dst & 0xf) && (dstw != 0 || (dst & 0xf0) != 0)) {
evaluated: __builtin_expect((update), 0)
TRUEFALSE
yes
Evaluation Count:15
yes
Evaluation Count:705
partially evaluated: (dst & 0x100)
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
partially evaluated: (dst & 0xf)
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
partially evaluated: dstw != 0
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
never evaluated: (dst & 0xf0) != 0
0-705
832 code = emit_x86_instruction(compiler, 1, dst & 0xf, 0, dst, dstw); -
833 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never executed: return compiler->error;
executed: }
Execution Count:15
0-15
834 *code = 0x8d; -
835 }
executed: }
Execution Count:15
15
836 return 0;
executed: return 0;
Execution Count:720
720
837 } -
838 -
839 if (__builtin_expect((((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000))), 0))
never evaluated: __builtin_expect((((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000))), 0)
0
840 compiler->flags_saved = 0;
never executed: compiler->flags_saved = 0;
0
841 -
842 switch (((op) & ~(0x100 | 0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000 | 0x4000))) { -
843 case 20: -
844 if (__builtin_expect((op & 0x0200), 0))
never evaluated: __builtin_expect((op & 0x0200), 0)
0
845 return emit_not_with_flags(compiler, dst, dstw, src, srcw);
never executed: return emit_not_with_flags(compiler, dst, dstw, src, srcw);
0
846 return emit_unary(compiler, 0x2, dst, dstw, src, srcw);
never executed: return emit_unary(compiler, 0x2, dst, dstw, src, srcw);
0
847 -
848 case 21: -
849 if (__builtin_expect((op & 0x4000), 0) && !compiler->flags_saved)
never evaluated: __builtin_expect((op & 0x4000), 0)
never evaluated: !compiler->flags_saved
0
850 do { if (__builtin_expect((emit_save_flags(compiler)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_save_flags(compiler)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
851 return emit_unary(compiler, 0x3, dst, dstw, src, srcw);
never executed: return emit_unary(compiler, 0x3, dst, dstw, src, srcw);
0
852 -
853 case 22: -
854 if (__builtin_expect((op & 0x4000), 0) && !compiler->flags_saved)
never evaluated: __builtin_expect((op & 0x4000), 0)
never evaluated: !compiler->flags_saved
0
855 do { if (__builtin_expect((emit_save_flags(compiler)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_save_flags(compiler)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
856 return emit_clz(compiler, op, dst, dstw, src, srcw);
never executed: return emit_clz(compiler, op, dst, dstw, src, srcw);
0
857 } -
858 -
859 return 0;
never executed: return 0;
0
860 -
861 -
862 -
863 -
864} -
865static int emit_cum_binary(struct sljit_compiler *compiler, -
866 sljit_ub op_rm, sljit_ub op_mr, sljit_ub op_imm, sljit_ub op_eax_imm, -
867 int dst, sljit_w dstw, -
868 int src1, sljit_w src1w, -
869 int src2, sljit_w src2w) -
870{ -
871 sljit_ub* code; -
872 -
873 if (dst == 0) {
evaluated: dst == 0
TRUEFALSE
yes
Evaluation Count:1
yes
Evaluation Count:193
1-193
874 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)) return compiler->error; } while (0);;
partially evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never executed: return compiler->error;
executed: }
Execution Count:1
0-1
875 if (src2 & 0x200) {
partially evaluated: src2 & 0x200
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
0-1
876 if (((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll) || compiler->mode32) { code = emit_x86_instruction(compiler, 1 | 0x0010, 0x200, src2w, (11 + 1), 0); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *(code + 1) |= (op_imm); } else { do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)) return compiler->error; } while (0); code = emit_x86_instruction(compiler, 1, (11 + 2), 0, (11 + 1), 0); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *code = (op_mr); };
never evaluated: __builtin_expect((!code), 0)
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never evaluated: 0
never evaluated: 0
never evaluated: (src2w) <= 0x7fffffffll
never evaluated: (src2w) >= -0x80000000ll
never evaluated: compiler->mode32
never executed: return compiler->error;
never executed: }
never executed: }
never executed: return compiler->error;
never executed: }
never executed: return compiler->error;
never executed: }
never executed: }
0
877 } -
878 else { -
879 code = emit_x86_instruction(compiler, 1, (11 + 1), 0, src2, src2w); -
880 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:1
never executed: return compiler->error;
executed: }
Execution Count:1
0-1
881 *code = op_rm; -
882 }
executed: }
Execution Count:1
1
883 return 0;
executed: return 0;
Execution Count:1
1
884 } -
885 -
886 if (dst == src1 && dstw == src1w) {
evaluated: dst == src1
TRUEFALSE
yes
Evaluation Count:178
yes
Evaluation Count:15
partially evaluated: dstw == src1w
TRUEFALSE
yes
Evaluation Count:178
no
Evaluation Count:0
0-178
887 if (src2 & 0x200) {
evaluated: src2 & 0x200
TRUEFALSE
yes
Evaluation Count:144
yes
Evaluation Count:34
34-144
888 -
889 if ((dst == 1) && (src2w > 127 || src2w < -128) && (compiler->mode32 || ((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll))) {
evaluated: (dst == 1)
TRUEFALSE
yes
Evaluation Count:50
yes
Evaluation Count:94
evaluated: src2w > 127
TRUEFALSE
yes
Evaluation Count:47
yes
Evaluation Count:3
partially evaluated: src2w < -128
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:3
partially evaluated: compiler->mode32
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:47
partially evaluated: (src2w) <= 0x7fffffffll
TRUEFALSE
yes
Evaluation Count:47
no
Evaluation Count:0
partially evaluated: (src2w) >= -0x80000000ll
TRUEFALSE
yes
Evaluation Count:47
no
Evaluation Count:0
0-94
890 -
891 -
892 -
893 do { if (__builtin_expect((emit_do_imm32(compiler, (!compiler->mode32) ? 0x48 : 0, (op_eax_imm), src2w)), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((emit_do_imm32(compiler, (!compiler->mode32) ? 0x48 : 0, (op_eax_imm), src2w)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:47
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:47
never executed: return compiler->error;
executed: }
Execution Count:47
0-47
894 }
executed: }
Execution Count:47
47
895 else { -
896 if (((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll) || compiler->mode32) { code = emit_x86_instruction(compiler, 1 | 0x0010, 0x200, src2w, dst, dstw); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *(code + 1) |= (op_imm); } else { do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)) return compiler->error; } while (0); code = emit_x86_instruction(compiler, 1, (11 + 2), 0, dst, dstw); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *code = (op_mr); };
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:97
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)
never evaluated: __builtin_expect((!code), 0)
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:97
never evaluated: 0
never evaluated: 0
partially evaluated: (src2w) <= 0x7fffffffll
TRUEFALSE
yes
Evaluation Count:97
no
Evaluation Count:0
partially evaluated: (src2w) >= -0x80000000ll
TRUEFALSE
yes
Evaluation Count:97
no
Evaluation Count:0
never evaluated: compiler->mode32
never executed: return compiler->error;
executed: }
Execution Count:97
executed: }
Execution Count:97
never executed: return compiler->error;
never executed: }
never executed: return compiler->error;
never executed: }
never executed: }
0-97
897 } -
898 } -
899 else if (dst >= 1 && dst <= 11) {
partially evaluated: dst >= 1
TRUEFALSE
yes
Evaluation Count:34
no
Evaluation Count:0
partially evaluated: dst <= 11
TRUEFALSE
yes
Evaluation Count:34
no
Evaluation Count:0
0-34
900 code = emit_x86_instruction(compiler, 1, dst, dstw, src2, src2w); -
901 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:34
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:34
never executed: return compiler->error;
executed: }
Execution Count:34
0-34
902 *code = op_rm; -
903 }
executed: }
Execution Count:34
34
904 else if (src2 >= 1 && src2 <= (11 + 1)) {
never evaluated: src2 >= 1
never evaluated: src2 <= (11 + 1)
0
905 -
906 code = emit_x86_instruction(compiler, 1, src2, src2w, dst, dstw); -
907 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
908 *code = op_mr; -
909 }
never executed: }
0
910 else { -
911 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src2, src2w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src2, src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
912 code = emit_x86_instruction(compiler, 1, (11 + 1), 0, dst, dstw); -
913 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
914 *code = op_mr; -
915 }
never executed: }
0
916 return 0;
executed: return 0;
Execution Count:178
178
917 } -
918 -
919 -
920 if (dst == src2 && dstw == src2w) {
partially evaluated: dst == src2
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never evaluated: dstw == src2w
0-15
921 if (src1 & 0x200) {
never evaluated: src1 & 0x200
0
922 -
923 if ((dst == 1) && (src1w > 127 || src1w < -128) && (compiler->mode32 || ((src1w) <= 0x7fffffffll && (src1w) >= -0x80000000ll))) {
never evaluated: (dst == 1)
never evaluated: src1w > 127
never evaluated: src1w < -128
never evaluated: compiler->mode32
never evaluated: (src1w) <= 0x7fffffffll
never evaluated: (src1w) >= -0x80000000ll
0
924 -
925 -
926 -
927 do { if (__builtin_expect((emit_do_imm32(compiler, (!compiler->mode32) ? 0x48 : 0, (op_eax_imm), src1w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_do_imm32(compiler, (!compiler->mode32) ? 0x48 : 0, (op_eax_imm), src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
928 }
never executed: }
0
929 else { -
930 if (((src1w) <= 0x7fffffffll && (src1w) >= -0x80000000ll) || compiler->mode32) { code = emit_x86_instruction(compiler, 1 | 0x0010, 0x200, src1w, dst, dstw); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *(code + 1) |= (op_imm); } else { do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), src1w)), 0)) return compiler->error; } while (0); code = emit_x86_instruction(compiler, 1, (11 + 2), 0, dst, dstw); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *code = (op_mr); };
never evaluated: __builtin_expect((!code), 0)
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), src1w)), 0)
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never evaluated: 0
never evaluated: 0
never evaluated: (src1w) <= 0x7fffffffll
never evaluated: (src1w) >= -0x80000000ll
never evaluated: compiler->mode32
never executed: return compiler->error;
never executed: }
never executed: }
never executed: return compiler->error;
never executed: }
never executed: return compiler->error;
never executed: }
never executed: }
0
931 } -
932 } -
933 else if (dst >= 1 && dst <= 11) {
never evaluated: dst >= 1
never evaluated: dst <= 11
0
934 code = emit_x86_instruction(compiler, 1, dst, dstw, src1, src1w); -
935 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
936 *code = op_rm; -
937 }
never executed: }
0
938 else if (src1 >= 1 && src1 <= 11) {
never evaluated: src1 >= 1
never evaluated: src1 <= 11
0
939 code = emit_x86_instruction(compiler, 1, src1, src1w, dst, dstw); -
940 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
941 *code = op_mr; -
942 }
never executed: }
0
943 else { -
944 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
945 code = emit_x86_instruction(compiler, 1, (11 + 1), 0, dst, dstw); -
946 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
947 *code = op_mr; -
948 }
never executed: }
0
949 return 0;
never executed: return 0;
0
950 } -
951 -
952 -
953 if (dst >= 1 && dst <= 11) {
partially evaluated: dst >= 1
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
partially evaluated: dst <= 11
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
954 do { if (__builtin_expect((emit_mov(compiler, dst, 0, src1, src1w)), 0)) return compiler->error; } while (0);;
partially evaluated: __builtin_expect((emit_mov(compiler, dst, 0, src1, src1w)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never executed: return compiler->error;
executed: }
Execution Count:15
0-15
955 if (src2 & 0x200) {
partially evaluated: src2 & 0x200
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
956 if (((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll) || compiler->mode32) { code = emit_x86_instruction(compiler, 1 | 0x0010, 0x200, src2w, dst, 0); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *(code + 1) |= (op_imm); } else { do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)) return compiler->error; } while (0); code = emit_x86_instruction(compiler, 1, (11 + 2), 0, dst, 0); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *code = (op_mr); };
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)
never evaluated: __builtin_expect((!code), 0)
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never evaluated: 0
never evaluated: 0
partially evaluated: (src2w) <= 0x7fffffffll
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
partially evaluated: (src2w) >= -0x80000000ll
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
never evaluated: compiler->mode32
never executed: return compiler->error;
executed: }
Execution Count:15
executed: }
Execution Count:15
never executed: return compiler->error;
never executed: }
never executed: return compiler->error;
never executed: }
never executed: }
0-15
957 } -
958 else { -
959 code = emit_x86_instruction(compiler, 1, dst, 0, src2, src2w); -
960 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
961 *code = op_rm; -
962 }
never executed: }
0
963 } -
964 else { -
965 -
966 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
967 if (src2 & 0x200) {
never evaluated: src2 & 0x200
0
968 if (((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll) || compiler->mode32) { code = emit_x86_instruction(compiler, 1 | 0x0010, 0x200, src2w, (11 + 1), 0); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *(code + 1) |= (op_imm); } else { do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)) return compiler->error; } while (0); code = emit_x86_instruction(compiler, 1, (11 + 2), 0, (11 + 1), 0); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *code = (op_mr); };
never evaluated: __builtin_expect((!code), 0)
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never evaluated: 0
never evaluated: 0
never evaluated: (src2w) <= 0x7fffffffll
never evaluated: (src2w) >= -0x80000000ll
never evaluated: compiler->mode32
never executed: return compiler->error;
never executed: }
never executed: }
never executed: return compiler->error;
never executed: }
never executed: return compiler->error;
never executed: }
never executed: }
0
969 } -
970 else { -
971 code = emit_x86_instruction(compiler, 1, (11 + 1), 0, src2, src2w); -
972 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
973 *code = op_rm; -
974 }
never executed: }
0
975 do { if (__builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
976 }
never executed: }
0
977 -
978 return 0;
executed: return 0;
Execution Count:15
15
979} -
980 -
981static int emit_non_cum_binary(struct sljit_compiler *compiler, -
982 sljit_ub op_rm, sljit_ub op_mr, sljit_ub op_imm, sljit_ub op_eax_imm, -
983 int dst, sljit_w dstw, -
984 int src1, sljit_w src1w, -
985 int src2, sljit_w src2w) -
986{ -
987 sljit_ub* code; -
988 -
989 if (dst == 0) {
partially evaluated: dst == 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:113
0-113
990 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
991 if (src2 & 0x200) {
never evaluated: src2 & 0x200
0
992 if (((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll) || compiler->mode32) { code = emit_x86_instruction(compiler, 1 | 0x0010, 0x200, src2w, (11 + 1), 0); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *(code + 1) |= (op_imm); } else { do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)) return compiler->error; } while (0); code = emit_x86_instruction(compiler, 1, (11 + 2), 0, (11 + 1), 0); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *code = (op_mr); };
never evaluated: __builtin_expect((!code), 0)
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never evaluated: 0
never evaluated: 0
never evaluated: (src2w) <= 0x7fffffffll
never evaluated: (src2w) >= -0x80000000ll
never evaluated: compiler->mode32
never executed: return compiler->error;
never executed: }
never executed: }
never executed: return compiler->error;
never executed: }
never executed: return compiler->error;
never executed: }
never executed: }
0
993 } -
994 else { -
995 code = emit_x86_instruction(compiler, 1, (11 + 1), 0, src2, src2w); -
996 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
997 *code = op_rm; -
998 }
never executed: }
0
999 return 0;
never executed: return 0;
0
1000 } -
1001 -
1002 if (dst == src1 && dstw == src1w) {
evaluated: dst == src1
TRUEFALSE
yes
Evaluation Count:68
yes
Evaluation Count:45
partially evaluated: dstw == src1w
TRUEFALSE
yes
Evaluation Count:68
no
Evaluation Count:0
0-68
1003 if (src2 & 0x200) {
evaluated: src2 & 0x200
TRUEFALSE
yes
Evaluation Count:53
yes
Evaluation Count:15
15-53
1004 -
1005 if ((dst == 1) && (src2w > 127 || src2w < -128) && (compiler->mode32 || ((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll))) {
partially evaluated: (dst == 1)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:53
never evaluated: src2w > 127
never evaluated: src2w < -128
never evaluated: compiler->mode32
never evaluated: (src2w) <= 0x7fffffffll
never evaluated: (src2w) >= -0x80000000ll
0-53
1006 -
1007 -
1008 -
1009 do { if (__builtin_expect((emit_do_imm32(compiler, (!compiler->mode32) ? 0x48 : 0, (op_eax_imm), src2w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_do_imm32(compiler, (!compiler->mode32) ? 0x48 : 0, (op_eax_imm), src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1010 }
never executed: }
0
1011 else { -
1012 if (((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll) || compiler->mode32) { code = emit_x86_instruction(compiler, 1 | 0x0010, 0x200, src2w, dst, dstw); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *(code + 1) |= (op_imm); } else { do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)) return compiler->error; } while (0); code = emit_x86_instruction(compiler, 1, (11 + 2), 0, dst, dstw); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *code = (op_mr); };
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:53
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)
never evaluated: __builtin_expect((!code), 0)
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:53
never evaluated: 0
never evaluated: 0
partially evaluated: (src2w) <= 0x7fffffffll
TRUEFALSE
yes
Evaluation Count:53
no
Evaluation Count:0
partially evaluated: (src2w) >= -0x80000000ll
TRUEFALSE
yes
Evaluation Count:53
no
Evaluation Count:0
never evaluated: compiler->mode32
never executed: return compiler->error;
executed: }
Execution Count:53
executed: }
Execution Count:53
never executed: return compiler->error;
never executed: }
never executed: return compiler->error;
never executed: }
never executed: }
0-53
1013 } -
1014 } -
1015 else if (dst >= 1 && dst <= 11) {
partially evaluated: dst >= 1
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
partially evaluated: dst <= 11
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
1016 code = emit_x86_instruction(compiler, 1, dst, dstw, src2, src2w); -
1017 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never executed: return compiler->error;
executed: }
Execution Count:15
0-15
1018 *code = op_rm; -
1019 }
executed: }
Execution Count:15
15
1020 else if (src2 >= 1 && src2 <= 11) {
never evaluated: src2 >= 1
never evaluated: src2 <= 11
0
1021 code = emit_x86_instruction(compiler, 1, src2, src2w, dst, dstw); -
1022 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1023 *code = op_mr; -
1024 }
never executed: }
0
1025 else { -
1026 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src2, src2w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src2, src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1027 code = emit_x86_instruction(compiler, 1, (11 + 1), 0, dst, dstw); -
1028 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1029 *code = op_mr; -
1030 }
never executed: }
0
1031 return 0;
executed: return 0;
Execution Count:68
68
1032 } -
1033 -
1034 -
1035 if ((dst >= 1 && dst <= 11) && dst != src2) {
partially evaluated: dst >= 1
TRUEFALSE
yes
Evaluation Count:45
no
Evaluation Count:0
partially evaluated: dst <= 11
TRUEFALSE
yes
Evaluation Count:45
no
Evaluation Count:0
partially evaluated: dst != src2
TRUEFALSE
yes
Evaluation Count:45
no
Evaluation Count:0
0-45
1036 do { if (__builtin_expect((emit_mov(compiler, dst, 0, src1, src1w)), 0)) return compiler->error; } while (0);;
partially evaluated: __builtin_expect((emit_mov(compiler, dst, 0, src1, src1w)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:45
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:45
never executed: return compiler->error;
executed: }
Execution Count:45
0-45
1037 if (src2 & 0x200) {
evaluated: src2 & 0x200
TRUEFALSE
yes
Evaluation Count:30
yes
Evaluation Count:15
15-30
1038 if (((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll) || compiler->mode32) { code = emit_x86_instruction(compiler, 1 | 0x0010, 0x200, src2w, dst, 0); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *(code + 1) |= (op_imm); } else { do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)) return compiler->error; } while (0); code = emit_x86_instruction(compiler, 1, (11 + 2), 0, dst, 0); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *code = (op_mr); };
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:30
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)
never evaluated: __builtin_expect((!code), 0)
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:30
never evaluated: 0
never evaluated: 0
partially evaluated: (src2w) <= 0x7fffffffll
TRUEFALSE
yes
Evaluation Count:30
no
Evaluation Count:0
partially evaluated: (src2w) >= -0x80000000ll
TRUEFALSE
yes
Evaluation Count:30
no
Evaluation Count:0
never evaluated: compiler->mode32
never executed: return compiler->error;
executed: }
Execution Count:30
executed: }
Execution Count:30
never executed: return compiler->error;
never executed: }
never executed: return compiler->error;
never executed: }
never executed: }
0-30
1039 } -
1040 else { -
1041 code = emit_x86_instruction(compiler, 1, dst, 0, src2, src2w); -
1042 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never executed: return compiler->error;
executed: }
Execution Count:15
0-15
1043 *code = op_rm; -
1044 }
executed: }
Execution Count:15
15
1045 } -
1046 else { -
1047 -
1048 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1049 if (src2 & 0x200) {
never evaluated: src2 & 0x200
0
1050 if (((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll) || compiler->mode32) { code = emit_x86_instruction(compiler, 1 | 0x0010, 0x200, src2w, (11 + 1), 0); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *(code + 1) |= (op_imm); } else { do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)) return compiler->error; } while (0); code = emit_x86_instruction(compiler, 1, (11 + 2), 0, (11 + 1), 0); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *code = (op_mr); };
never evaluated: __builtin_expect((!code), 0)
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never evaluated: 0
never evaluated: 0
never evaluated: (src2w) <= 0x7fffffffll
never evaluated: (src2w) >= -0x80000000ll
never evaluated: compiler->mode32
never executed: return compiler->error;
never executed: }
never executed: }
never executed: return compiler->error;
never executed: }
never executed: return compiler->error;
never executed: }
never executed: }
0
1051 } -
1052 else { -
1053 code = emit_x86_instruction(compiler, 1, (11 + 1), 0, src2, src2w); -
1054 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1055 *code = op_rm; -
1056 }
never executed: }
0
1057 do { if (__builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1058 }
never executed: }
0
1059 -
1060 return 0;
executed: return 0;
Execution Count:45
45
1061} -
1062 -
1063static int emit_mul(struct sljit_compiler *compiler, -
1064 int dst, sljit_w dstw, -
1065 int src1, sljit_w src1w, -
1066 int src2, sljit_w src2w) -
1067{ -
1068 sljit_ub* code; -
1069 int dst_r; -
1070 -
1071 dst_r = (dst >= 1 && dst <= 11) ? dst : (11 + 1);
never evaluated: dst >= 1
never evaluated: dst <= 11
0
1072 -
1073 -
1074 if (dst_r == src1 && !(src2 & 0x200)) {
never evaluated: dst_r == src1
never evaluated: !(src2 & 0x200)
0
1075 code = emit_x86_instruction(compiler, 2, dst_r, 0, src2, src2w); -
1076 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1077 *code++ = 0x0f; -
1078 *code = 0xaf; -
1079 }
never executed: }
0
1080 else if (dst_r == src2 && !(src1 & 0x200)) {
never evaluated: dst_r == src2
never evaluated: !(src1 & 0x200)
0
1081 code = emit_x86_instruction(compiler, 2, dst_r, 0, src1, src1w); -
1082 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1083 *code++ = 0x0f; -
1084 *code = 0xaf; -
1085 }
never executed: }
0
1086 else if (src1 & 0x200) {
never evaluated: src1 & 0x200
0
1087 if (src2 & 0x200) {
never evaluated: src2 & 0x200
0
1088 do { if (__builtin_expect((emit_mov(compiler, dst_r, 0, 0x200, src2w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst_r, 0, 0x200, src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1089 src2 = dst_r; -
1090 src2w = 0; -
1091 }
never executed: }
0
1092 -
1093 if (src1w <= 127 && src1w >= -128) {
never evaluated: src1w <= 127
never evaluated: src1w >= -128
0
1094 code = emit_x86_instruction(compiler, 1, dst_r, 0, src2, src2w); -
1095 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1096 *code = 0x6b; -
1097 code = (sljit_ub*)ensure_buf(compiler, 1 + 1); -
1098 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1099 (*code++ = (1), compiler->size += (1)); -
1100 *code = (sljit_b)src1w; -
1101 }
never executed: }
0
1102 else if (((src1w) <= 0x7fffffffll && (src1w) >= -0x80000000ll)) {
never evaluated: (src1w) <= 0x7fffffffll
never evaluated: (src1w) >= -0x80000000ll
0
1103 code = emit_x86_instruction(compiler, 1, dst_r, 0, src2, src2w); -
1104 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1105 *code = 0x69; -
1106 code = (sljit_ub*)ensure_buf(compiler, 1 + 4); -
1107 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1108 (*code++ = (4), compiler->size += (4)); -
1109 *(sljit_hw*)code = (sljit_hw)src1w; -
1110 }
never executed: }
0
1111 else { -
1112 do { if (__builtin_expect((emit_mov(compiler, (11 + 2), 0, 0x200, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 2), 0, 0x200, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1113 if (dst_r != src2)
never evaluated: dst_r != src2
0
1114 do { if (__builtin_expect((emit_mov(compiler, dst_r, 0, src2, src2w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst_r, 0, src2, src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1115 code = emit_x86_instruction(compiler, 2, dst_r, 0, (11 + 2), 0); -
1116 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1117 *code++ = 0x0f; -
1118 *code = 0xaf; -
1119 }
never executed: }
0
1120 -
1121 } -
1122 else if (src2 & 0x200) {
never evaluated: src2 & 0x200
0
1123 -
1124 -
1125 if (src2w <= 127 && src2w >= -128) {
never evaluated: src2w <= 127
never evaluated: src2w >= -128
0
1126 code = emit_x86_instruction(compiler, 1, dst_r, 0, src1, src1w); -
1127 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1128 *code = 0x6b; -
1129 code = (sljit_ub*)ensure_buf(compiler, 1 + 1); -
1130 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1131 (*code++ = (1), compiler->size += (1)); -
1132 *code = (sljit_b)src2w; -
1133 }
never executed: }
0
1134 else if (((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll)) {
never evaluated: (src2w) <= 0x7fffffffll
never evaluated: (src2w) >= -0x80000000ll
0
1135 code = emit_x86_instruction(compiler, 1, dst_r, 0, src1, src1w); -
1136 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1137 *code = 0x69; -
1138 code = (sljit_ub*)ensure_buf(compiler, 1 + 4); -
1139 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1140 (*code++ = (4), compiler->size += (4)); -
1141 *(sljit_hw*)code = (sljit_hw)src2w; -
1142 }
never executed: }
0
1143 else { -
1144 do { if (__builtin_expect((emit_mov(compiler, (11 + 2), 0, 0x200, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 2), 0, 0x200, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1145 if (dst_r != src1)
never evaluated: dst_r != src1
0
1146 do { if (__builtin_expect((emit_mov(compiler, dst_r, 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst_r, 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1147 code = emit_x86_instruction(compiler, 2, dst_r, 0, (11 + 2), 0); -
1148 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1149 *code++ = 0x0f; -
1150 *code = 0xaf; -
1151 }
never executed: }
0
1152 -
1153 } -
1154 else { -
1155 -
1156 if ((((src2) & 0x100) && (((src2) & 0xf) == dst_r || (((src2) >> 4) & 0xf) == dst_r)))
never evaluated: ((src2) & 0x100)
never evaluated: ((src2) & 0xf) == dst_r
never evaluated: (((src2) >> 4) & 0xf) == dst_r
0
1157 dst_r = (11 + 1);
never executed: dst_r = (11 + 1);
0
1158 do { if (__builtin_expect((emit_mov(compiler, dst_r, 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst_r, 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1159 code = emit_x86_instruction(compiler, 2, dst_r, 0, src2, src2w); -
1160 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1161 *code++ = 0x0f; -
1162 *code = 0xaf; -
1163 }
never executed: }
0
1164 -
1165 if (dst_r == (11 + 1))
never evaluated: dst_r == (11 + 1)
0
1166 do { if (__builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1167 -
1168 return 0;
never executed: return 0;
0
1169} -
1170 -
1171static int emit_lea_binary(struct sljit_compiler *compiler, -
1172 int dst, sljit_w dstw, -
1173 int src1, sljit_w src1w, -
1174 int src2, sljit_w src2w) -
1175{ -
1176 sljit_ub* code; -
1177 int dst_r, done = 0; -
1178 -
1179 -
1180 if (dst == src1 && dstw == src1w)
evaluated: dst == src1
TRUEFALSE
yes
Evaluation Count:150
yes
Evaluation Count:60
partially evaluated: dstw == src1w
TRUEFALSE
yes
Evaluation Count:150
no
Evaluation Count:0
0-150
1181 return 4;
executed: return 4;
Execution Count:150
150
1182 if (dst == src2 && dstw == src2w)
partially evaluated: dst == src2
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:60
never evaluated: dstw == src2w
0-60
1183 return 4;
never executed: return 4;
0
1184 -
1185 dst_r = (dst >= 1 && dst <= 11) ? dst : (11 + 1);
partially evaluated: dst >= 1
TRUEFALSE
yes
Evaluation Count:60
no
Evaluation Count:0
partially evaluated: dst <= 11
TRUEFALSE
yes
Evaluation Count:60
no
Evaluation Count:0
0-60
1186 -
1187 if (src1 >= 1 && src1 <= 11) {
partially evaluated: src1 >= 1
TRUEFALSE
yes
Evaluation Count:60
no
Evaluation Count:0
evaluated: src1 <= 11
TRUEFALSE
yes
Evaluation Count:15
yes
Evaluation Count:45
0-60
1188 if (src2 >= 1 && src2 <= 11) {
partially evaluated: src2 >= 1
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
partially evaluated: src2 <= 11
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
1189 -
1190 if (src1 != 11 || src2 != 11) {
never evaluated: src1 != 11
never evaluated: src2 != 11
0
1191 code = emit_x86_instruction(compiler, 1, dst_r, 0, (0x100 | (src1) | ((src2) << 4)), 0); -
1192 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1193 *code = 0x8d; -
1194 done = 1; -
1195 }
never executed: }
0
1196 }
never executed: }
0
1197 -
1198 if ((src2 & 0x200) && (compiler->mode32 || ((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll))) {
partially evaluated: (src2 & 0x200)
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
partially evaluated: compiler->mode32
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: (src2w) <= 0x7fffffffll
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
partially evaluated: (src2w) >= -0x80000000ll
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
1199 code = emit_x86_instruction(compiler, 1, dst_r, 0, (0x100 | (src1)), (int)src2w); -
1200 -
1201 -
1202 -
1203 -
1204 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never executed: return compiler->error;
executed: }
Execution Count:15
0-15
1205 *code = 0x8d; -
1206 done = 1; -
1207 }
executed: }
Execution Count:15
15
1208 }
executed: }
Execution Count:15
15
1209 else if (src2 >= 1 && src2 <= 11) {
partially evaluated: src2 >= 1
TRUEFALSE
yes
Evaluation Count:45
no
Evaluation Count:0
partially evaluated: src2 <= 11
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:45
0-45
1210 -
1211 if ((src1 & 0x200) && (compiler->mode32 || ((src1w) <= 0x7fffffffll && (src1w) >= -0x80000000ll))) {
never evaluated: (src1 & 0x200)
never evaluated: compiler->mode32
never evaluated: (src1w) <= 0x7fffffffll
never evaluated: (src1w) >= -0x80000000ll
0
1212 code = emit_x86_instruction(compiler, 1, dst_r, 0, (0x100 | (src2)), (int)src1w); -
1213 -
1214 -
1215 -
1216 -
1217 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1218 *code = 0x8d; -
1219 done = 1; -
1220 }
never executed: }
0
1221 }
never executed: }
0
1222 -
1223 if (done) {
evaluated: done
TRUEFALSE
yes
Evaluation Count:15
yes
Evaluation Count:45
15-45
1224 if (dst_r == (11 + 1))
partially evaluated: dst_r == (11 + 1)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
1225 return emit_mov(compiler, dst, dstw, (11 + 1), 0);
never executed: return emit_mov(compiler, dst, dstw, (11 + 1), 0);
0
1226 return 0;
executed: return 0;
Execution Count:15
15
1227 } -
1228 return 4;
executed: return 4;
Execution Count:45
45
1229} -
1230 -
1231static int emit_cmp_binary(struct sljit_compiler *compiler, -
1232 int src1, sljit_w src1w, -
1233 int src2, sljit_w src2w) -
1234{ -
1235 sljit_ub* code; -
1236 -
1237 -
1238 if (src1 == 1 && (src2 & 0x200) && (src2w > 127 || src2w < -128) && (compiler->mode32 || ((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll))) {
evaluated: src1 == 1
TRUEFALSE
yes
Evaluation Count:128
yes
Evaluation Count:154
partially evaluated: (src2 & 0x200)
TRUEFALSE
yes
Evaluation Count:128
no
Evaluation Count:0
evaluated: src2w > 127
TRUEFALSE
yes
Evaluation Count:75
yes
Evaluation Count:53
partially evaluated: src2w < -128
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:53
partially evaluated: compiler->mode32
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:75
partially evaluated: (src2w) <= 0x7fffffffll
TRUEFALSE
yes
Evaluation Count:75
no
Evaluation Count:0
partially evaluated: (src2w) >= -0x80000000ll
TRUEFALSE
yes
Evaluation Count:75
no
Evaluation Count:0
0-154
1239 -
1240 -
1241 -
1242 do { if (__builtin_expect((emit_do_imm32(compiler, (!compiler->mode32) ? 0x48 : 0, (0x3d), src2w)), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((emit_do_imm32(compiler, (!compiler->mode32) ? 0x48 : 0, (0x3d), src2w)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:75
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:75
never executed: return compiler->error;
executed: }
Execution Count:75
0-75
1243 return 0;
executed: return 0;
Execution Count:75
75
1244 } -
1245 -
1246 if (src1 >= 1 && src1 <= 11) {
partially evaluated: src1 >= 1
TRUEFALSE
yes
Evaluation Count:207
no
Evaluation Count:0
evaluated: src1 <= 11
TRUEFALSE
yes
Evaluation Count:199
yes
Evaluation Count:8
0-207
1247 if (src2 & 0x200) {
evaluated: src2 & 0x200
TRUEFALSE
yes
Evaluation Count:100
yes
Evaluation Count:99
99-100
1248 if (((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll) || compiler->mode32) { code = emit_x86_instruction(compiler, 1 | 0x0010, 0x200, src2w, src1, 0); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *(code + 1) |= (0x7 << 3); } else { do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)) return compiler->error; } while (0); code = emit_x86_instruction(compiler, 1, (11 + 2), 0, src1, 0); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *code = (0x39); };
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:100
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)
never evaluated: __builtin_expect((!code), 0)
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:100
never evaluated: 0
never evaluated: 0
partially evaluated: (src2w) <= 0x7fffffffll
TRUEFALSE
yes
Evaluation Count:100
no
Evaluation Count:0
partially evaluated: (src2w) >= -0x80000000ll
TRUEFALSE
yes
Evaluation Count:100
no
Evaluation Count:0
never evaluated: compiler->mode32
never executed: return compiler->error;
executed: }
Execution Count:100
executed: }
Execution Count:100
never executed: return compiler->error;
never executed: }
never executed: return compiler->error;
never executed: }
never executed: }
0-100
1249 } -
1250 else { -
1251 code = emit_x86_instruction(compiler, 1, src1, 0, src2, src2w); -
1252 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:99
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:99
never executed: return compiler->error;
executed: }
Execution Count:99
0-99
1253 *code = 0x3b; -
1254 }
executed: }
Execution Count:99
99
1255 return 0;
executed: return 0;
Execution Count:199
199
1256 } -
1257 -
1258 if (src2 >= 1 && src2 <= 11 && !(src1 & 0x200)) {
partially evaluated: src2 >= 1
TRUEFALSE
yes
Evaluation Count:8
no
Evaluation Count:0
partially evaluated: src2 <= 11
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
never evaluated: !(src1 & 0x200)
0-8
1259 code = emit_x86_instruction(compiler, 1, src2, 0, src1, src1w); -
1260 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1261 *code = 0x39; -
1262 return 0;
never executed: return 0;
0
1263 } -
1264 -
1265 if (src2 & 0x200) {
partially evaluated: src2 & 0x200
TRUEFALSE
yes
Evaluation Count:8
no
Evaluation Count:0
0-8
1266 if (src1 & 0x200) {
partially evaluated: src1 & 0x200
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
0-8
1267 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1268 src1 = (11 + 1); -
1269 src1w = 0; -
1270 }
never executed: }
0
1271 if (((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll) || compiler->mode32) { code = emit_x86_instruction(compiler, 1 | 0x0010, 0x200, src2w, src1, src1w); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *(code + 1) |= (0x7 << 3); } else { do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)) return compiler->error; } while (0); code = emit_x86_instruction(compiler, 1, (11 + 2), 0, src1, src1w); do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0); *code = (0x39); };
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)
never evaluated: __builtin_expect((!code), 0)
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:8
never evaluated: 0
never evaluated: 0
partially evaluated: (src2w) <= 0x7fffffffll
TRUEFALSE
yes
Evaluation Count:8
no
Evaluation Count:0
partially evaluated: (src2w) >= -0x80000000ll
TRUEFALSE
yes
Evaluation Count:8
no
Evaluation Count:0
never evaluated: compiler->mode32
never executed: return compiler->error;
executed: }
Execution Count:8
executed: }
Execution Count:8
never executed: return compiler->error;
never executed: }
never executed: return compiler->error;
never executed: }
never executed: }
0-8
1272 } -
1273 else { -
1274 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1275 code = emit_x86_instruction(compiler, 1, (11 + 1), 0, src2, src2w); -
1276 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1277 *code = 0x3b; -
1278 }
never executed: }
0
1279 return 0;
executed: return 0;
Execution Count:8
8
1280} -
1281 -
1282static int emit_test_binary(struct sljit_compiler *compiler, -
1283 int src1, sljit_w src1w, -
1284 int src2, sljit_w src2w) -
1285{ -
1286 sljit_ub* code; -
1287 -
1288 -
1289 if (src1 == 1 && (src2 & 0x200) && (src2w > 127 || src2w < -128) && (compiler->mode32 || ((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll))) {
never evaluated: src1 == 1
never evaluated: (src2 & 0x200)
never evaluated: src2w > 127
never evaluated: src2w < -128
never evaluated: compiler->mode32
never evaluated: (src2w) <= 0x7fffffffll
never evaluated: (src2w) >= -0x80000000ll
0
1290 -
1291 -
1292 -
1293 do { if (__builtin_expect((emit_do_imm32(compiler, (!compiler->mode32) ? 0x48 : 0, (0xa9), src2w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_do_imm32(compiler, (!compiler->mode32) ? 0x48 : 0, (0xa9), src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1294 return 0;
never executed: return 0;
0
1295 } -
1296 -
1297 -
1298 if (src2 == 1 && (src2 & 0x200) && (src1w > 127 || src1w < -128) && (compiler->mode32 || ((src1w) <= 0x7fffffffll && (src1w) >= -0x80000000ll))) {
never evaluated: src2 == 1
never evaluated: (src2 & 0x200)
never evaluated: src1w > 127
never evaluated: src1w < -128
never evaluated: compiler->mode32
never evaluated: (src1w) <= 0x7fffffffll
never evaluated: (src1w) >= -0x80000000ll
0
1299 -
1300 -
1301 -
1302 do { if (__builtin_expect((emit_do_imm32(compiler, (!compiler->mode32) ? 0x48 : 0, (0xa9), src1w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_do_imm32(compiler, (!compiler->mode32) ? 0x48 : 0, (0xa9), src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1303 return 0;
never executed: return 0;
0
1304 } -
1305 -
1306 if (src1 >= 1 && src1 <= 11) {
never evaluated: src1 >= 1
never evaluated: src1 <= 11
0
1307 if (src2 & 0x200) {
never evaluated: src2 & 0x200
0
1308 -
1309 if (((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll) || compiler->mode32) {
never evaluated: (src2w) <= 0x7fffffffll
never evaluated: (src2w) >= -0x80000000ll
never evaluated: compiler->mode32
0
1310 code = emit_x86_instruction(compiler, 1, 0x200, src2w, src1, 0); -
1311 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1312 *code = 0xf7; -
1313 }
never executed: }
0
1314 else { -
1315 do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1316 code = emit_x86_instruction(compiler, 1, (11 + 2), 0, src1, 0); -
1317 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1318 *code = 0x85; -
1319 }
never executed: }
0
1320 -
1321 -
1322 -
1323 -
1324 -
1325 } -
1326 else { -
1327 code = emit_x86_instruction(compiler, 1, src1, 0, src2, src2w); -
1328 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1329 *code = 0x85; -
1330 }
never executed: }
0
1331 return 0;
never executed: return 0;
0
1332 } -
1333 -
1334 if (src2 >= 1 && src2 <= 11) {
never evaluated: src2 >= 1
never evaluated: src2 <= 11
0
1335 if (src1 & 0x200) {
never evaluated: src1 & 0x200
0
1336 -
1337 if (((src1w) <= 0x7fffffffll && (src1w) >= -0x80000000ll) || compiler->mode32) {
never evaluated: (src1w) <= 0x7fffffffll
never evaluated: (src1w) >= -0x80000000ll
never evaluated: compiler->mode32
0
1338 code = emit_x86_instruction(compiler, 1, 0x200, src1w, src2, 0); -
1339 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1340 *code = 0xf7; -
1341 }
never executed: }
0
1342 else { -
1343 do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), src1w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1344 code = emit_x86_instruction(compiler, 1, (11 + 2), 0, src2, 0); -
1345 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1346 *code = 0x85; -
1347 }
never executed: }
0
1348 -
1349 -
1350 -
1351 -
1352 -
1353 } -
1354 else { -
1355 code = emit_x86_instruction(compiler, 1, src2, 0, src1, src1w); -
1356 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1357 *code = 0x85; -
1358 }
never executed: }
0
1359 return 0;
never executed: return 0;
0
1360 } -
1361 -
1362 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1363 if (src2 & 0x200) {
never evaluated: src2 & 0x200
0
1364 -
1365 if (((src2w) <= 0x7fffffffll && (src2w) >= -0x80000000ll) || compiler->mode32) {
never evaluated: (src2w) <= 0x7fffffffll
never evaluated: (src2w) >= -0x80000000ll
never evaluated: compiler->mode32
0
1366 code = emit_x86_instruction(compiler, 1, 0x200, src2w, (11 + 1), 0); -
1367 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1368 *code = 0xf7; -
1369 }
never executed: }
0
1370 else { -
1371 do { if (__builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_load_imm64(compiler, (11 + 2), src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1372 code = emit_x86_instruction(compiler, 1, (11 + 2), 0, (11 + 1), 0); -
1373 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1374 *code = 0x85; -
1375 }
never executed: }
0
1376 -
1377 -
1378 -
1379 -
1380 -
1381 } -
1382 else { -
1383 code = emit_x86_instruction(compiler, 1, (11 + 1), 0, src2, src2w); -
1384 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1385 *code = 0x85; -
1386 }
never executed: }
0
1387 return 0;
never executed: return 0;
0
1388} -
1389 -
1390static int emit_shift(struct sljit_compiler *compiler, -
1391 sljit_ub mode, -
1392 int dst, sljit_w dstw, -
1393 int src1, sljit_w src1w, -
1394 int src2, sljit_w src2w) -
1395{ -
1396 sljit_ub* code; -
1397 -
1398 if ((src2 & 0x200) || (src2 == 3)) {
partially evaluated: (src2 & 0x200)
TRUEFALSE
yes
Evaluation Count:63
no
Evaluation Count:0
never evaluated: (src2 == 3)
0-63
1399 if (dst == src1 && dstw == src1w) {
partially evaluated: dst == src1
TRUEFALSE
yes
Evaluation Count:63
no
Evaluation Count:0
partially evaluated: dstw == src1w
TRUEFALSE
yes
Evaluation Count:63
no
Evaluation Count:0
0-63
1400 code = emit_x86_instruction(compiler, 1 | 0x0020, src2, src2w, dst, dstw); -
1401 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!code), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:63
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:63
never executed: return compiler->error;
executed: }
Execution Count:63
0-63
1402 *code |= mode; -
1403 return 0;
executed: return 0;
Execution Count:63
63
1404 } -
1405 if (dst == 0) {
never evaluated: dst == 0
0
1406 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1407 code = emit_x86_instruction(compiler, 1 | 0x0020, src2, src2w, (11 + 1), 0); -
1408 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1409 *code |= mode; -
1410 return 0;
never executed: return 0;
0
1411 } -
1412 if (dst == 3 && src2 == 3) {
never evaluated: dst == 3
never evaluated: src2 == 3
0
1413 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1414 code = emit_x86_instruction(compiler, 1 | 0x0020, 3, 0, (11 + 1), 0); -
1415 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1416 *code |= mode; -
1417 do { if (__builtin_expect((emit_mov(compiler, 3, 0, (11 + 1), 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, 3, 0, (11 + 1), 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1418 return 0;
never executed: return 0;
0
1419 } -
1420 if (dst >= 1 && dst <= 11) {
never evaluated: dst >= 1
never evaluated: dst <= 11
0
1421 do { if (__builtin_expect((emit_mov(compiler, dst, 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst, 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1422 code = emit_x86_instruction(compiler, 1 | 0x0020, src2, src2w, dst, 0); -
1423 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1424 *code |= mode; -
1425 return 0;
never executed: return 0;
0
1426 } -
1427 -
1428 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1429 code = emit_x86_instruction(compiler, 1 | 0x0020, src2, src2w, (11 + 1), 0); -
1430 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1431 *code |= mode; -
1432 do { if (__builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1433 return 0;
never executed: return 0;
0
1434 } -
1435 -
1436 if (dst == 3) {
never evaluated: dst == 3
0
1437 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1438 do { if (__builtin_expect((emit_mov(compiler, 3, 0, src2, src2w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, 3, 0, src2, src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1439 code = emit_x86_instruction(compiler, 1 | 0x0020, 3, 0, (11 + 1), 0); -
1440 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1441 *code |= mode; -
1442 do { if (__builtin_expect((emit_mov(compiler, 3, 0, (11 + 1), 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, 3, 0, (11 + 1), 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1443 }
never executed: }
0
1444 else if (dst >= 1 && dst <= 11 && dst != src2 && !(((src2) & 0x100) && (((src2) & 0xf) == dst || (((src2) >> 4) & 0xf) == dst))) {
never evaluated: dst >= 1
never evaluated: dst <= 11
never evaluated: dst != src2
never evaluated: ((src2) & 0x100)
never evaluated: ((src2) & 0xf) == dst
never evaluated: (((src2) >> 4) & 0xf) == dst
0
1445 if (src1 != dst)
never evaluated: src1 != dst
0
1446 do { if (__builtin_expect((emit_mov(compiler, dst, 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst, 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1447 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, 3, 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, 3, 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1448 do { if (__builtin_expect((emit_mov(compiler, 3, 0, src2, src2w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, 3, 0, src2, src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1449 code = emit_x86_instruction(compiler, 1 | 0x0020, 3, 0, dst, 0); -
1450 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1451 *code |= mode; -
1452 do { if (__builtin_expect((emit_mov(compiler, 3, 0, (11 + 1), 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, 3, 0, (11 + 1), 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1453 }
never executed: }
0
1454 else { -
1455 -
1456 -
1457 do { if (__builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 1), 0, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1458 -
1459 do { if (__builtin_expect((emit_mov(compiler, (11 + 2), 0, 3, 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, (11 + 2), 0, 3, 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1460 -
1461 -
1462 -
1463 -
1464 do { if (__builtin_expect((emit_mov(compiler, 3, 0, src2, src2w)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, 3, 0, src2, src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1465 code = emit_x86_instruction(compiler, 1 | 0x0020, 3, 0, (11 + 1), 0); -
1466 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1467 *code |= mode; -
1468 -
1469 do { if (__builtin_expect((emit_mov(compiler, 3, 0, (11 + 2), 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, 3, 0, (11 + 2), 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1470 -
1471 -
1472 -
1473 -
1474 do { if (__builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1475 }
never executed: }
0
1476 -
1477 return 0;
never executed: return 0;
0
1478} -
1479 -
1480static int emit_shift_with_flags(struct sljit_compiler *compiler, -
1481 sljit_ub mode, int set_flags, -
1482 int dst, sljit_w dstw, -
1483 int src1, sljit_w src1w, -
1484 int src2, sljit_w src2w) -
1485{ -
1486 -
1487 if (src2 & 0x200) {
partially evaluated: src2 & 0x200
TRUEFALSE
yes
Evaluation Count:63
no
Evaluation Count:0
0-63
1488 -
1489 if ((src2w & 0x3f) != 0 || (compiler->mode32 && (src2w & 0x1f) != 0))
partially evaluated: (src2w & 0x3f) != 0
TRUEFALSE
yes
Evaluation Count:63
no
Evaluation Count:0
never evaluated: compiler->mode32
never evaluated: (src2w & 0x1f) != 0
0-63
1490 return emit_shift(compiler, mode, dst, dstw, src1, src1w, src2, src2w);
executed: return emit_shift(compiler, mode, dst, dstw, src1, src1w, src2, src2w);
Execution Count:63
63
1491 -
1492 -
1493 -
1494 -
1495 if (!set_flags)
never evaluated: !set_flags
0
1496 return emit_mov(compiler, dst, dstw, src1, src1w);
never executed: return emit_mov(compiler, dst, dstw, src1, src1w);
0
1497 -
1498 return emit_cum_binary(compiler, 0x0b, 0x09, 0x1 << 3, 0x0d, 0
1499 dst, dstw, src1, src1w, 0x200, 0);
never executed: return emit_cum_binary(compiler, 0x0b, 0x09, 0x1 << 3, 0x0d, dst, dstw, src1, src1w, 0x200, 0);
0
1500 } -
1501 -
1502 if (!set_flags)
never evaluated: !set_flags
0
1503 return emit_shift(compiler, mode, dst, dstw, src1, src1w, src2, src2w);
never executed: return emit_shift(compiler, mode, dst, dstw, src1, src1w, src2, src2w);
0
1504 -
1505 if (!(dst >= 1 && dst <= 11))
never evaluated: dst >= 1
never evaluated: dst <= 11
0
1506 do { if (__builtin_expect((emit_cmp_binary(compiler, src1, src1w, 0x200, 0)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_cmp_binary(compiler, src1, src1w, 0x200, 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1507 -
1508 do { if (__builtin_expect((emit_shift(compiler,mode, dst, dstw, src1, src1w, src2, src2w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_shift(compiler,mode, dst, dstw, src1, src1w, src2, src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1509 -
1510 if (dst >= 1 && dst <= 11)
never evaluated: dst >= 1
never evaluated: dst <= 11
0
1511 return emit_cmp_binary(compiler, dst, dstw, 0x200, 0);
never executed: return emit_cmp_binary(compiler, dst, dstw, 0x200, 0);
0
1512 return 0;
never executed: return 0;
0
1513} -
1514 -
1515static __attribute__((unused)) int sljit_emit_op2(struct sljit_compiler *compiler, int op, -
1516 int dst, sljit_w dstw, -
1517 int src1, sljit_w src1w, -
1518 int src2, sljit_w src2w) -
1519{ -
1520 do { if (__builtin_expect((compiler->error), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((compiler->error), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:667
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:667
never executed: return compiler->error;
executed: }
Execution Count:667
0-667
1521 check_sljit_emit_op2(compiler, op, dst, dstw, src1, src1w, src2, src2w); -
1522 -
1523 -
1524 compiler->mode32 = op & 0x100; -
1525 -
1526 ; -
1527 ; -
1528 ; -
1529 -
1530 if (((op) & ~(0x100 | 0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000 | 0x4000)) >= 27) {
evaluated: ((op) & ~(0x100 | 0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000 | 0x4000)) >= 27
TRUEFALSE
yes
Evaluation Count:122
yes
Evaluation Count:545
122-545
1531 if (__builtin_expect((((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000))), 0))
evaluated: __builtin_expect((((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000))), 0)
TRUEFALSE
yes
Evaluation Count:3
yes
Evaluation Count:119
3-119
1532 compiler->flags_saved = 0;
executed: compiler->flags_saved = 0;
Execution Count:3
3
1533 else if (__builtin_expect((op & 0x4000), 0) && !compiler->flags_saved)
partially evaluated: __builtin_expect((op & 0x4000), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:119
never evaluated: !compiler->flags_saved
0-119
1534 do { if (__builtin_expect((emit_save_flags(compiler)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_save_flags(compiler)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1535 } -
1536 -
1537 switch (((op) & ~(0x100 | 0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000 | 0x4000))) { -
1538 case 23: -
1539 if (!((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000))) {
partially evaluated: !((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000))
TRUEFALSE
yes
Evaluation Count:150
no
Evaluation Count:0
0-150
1540 if (emit_lea_binary(compiler, dst, dstw, src1, src1w, src2, src2w) != 4)
evaluated: emit_lea_binary(compiler, dst, dstw, src1, src1w, src2, src2w) != 4
TRUEFALSE
yes
Evaluation Count:15
yes
Evaluation Count:135
15-135
1541 return compiler->error;
executed: return compiler->error;
Execution Count:15
15
1542 }
executed: }
Execution Count:135
135
1543 else -
1544 compiler->flags_saved = 0;
never executed: compiler->flags_saved = 0;
0
1545 if (__builtin_expect((op & 0x4000), 0) && !compiler->flags_saved)
partially evaluated: __builtin_expect((op & 0x4000), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:135
never evaluated: !compiler->flags_saved
0-135
1546 do { if (__builtin_expect((emit_save_flags(compiler)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_save_flags(compiler)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1547 return emit_cum_binary(compiler, 0x03, 0x01, 0x0 << 3, 0x05, 135
1548 dst, dstw, src1, src1w, src2, src2w);
executed: return emit_cum_binary(compiler, 0x03, 0x01, 0x0 << 3, 0x05, dst, dstw, src1, src1w, src2, src2w);
Execution Count:135
135
1549 case 24: -
1550 if (__builtin_expect((compiler->flags_saved), 0))
never evaluated: __builtin_expect((compiler->flags_saved), 0)
0
1551 do { if (__builtin_expect((emit_restore_flags(compiler, 1)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_restore_flags(compiler, 1)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1552 else if (__builtin_expect((op & 0x4000), 0))
never evaluated: __builtin_expect((op & 0x4000), 0)
0
1553 do { if (__builtin_expect((emit_save_flags(compiler)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_save_flags(compiler)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1554 if (__builtin_expect((((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000))), 0))
never evaluated: __builtin_expect((((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000))), 0)
0
1555 compiler->flags_saved = 0;
never executed: compiler->flags_saved = 0;
0
1556 return emit_cum_binary(compiler, 0x13, 0x11, 0x2 << 3, 0x15, 0
1557 dst, dstw, src1, src1w, src2, src2w);
never executed: return emit_cum_binary(compiler, 0x13, 0x11, 0x2 << 3, 0x15, dst, dstw, src1, src1w, src2, src2w);
0
1558 case 25: -
1559 if (!((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000))) {
evaluated: !((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000))
TRUEFALSE
yes
Evaluation Count:90
yes
Evaluation Count:305
90-305
1560 if ((src2 & 0x200) && emit_lea_binary(compiler, dst, dstw, src1, src1w, 0x200, -src2w) != 4)
evaluated: (src2 & 0x200)
TRUEFALSE
yes
Evaluation Count:60
yes
Evaluation Count:30
partially evaluated: emit_lea_binary(compiler, dst, dstw, src1, src1w, 0x200, -src2w) != 4
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:60
0-60
1561 return compiler->error;
never executed: return compiler->error;
0
1562 }
executed: }
Execution Count:90
90
1563 else -
1564 compiler->flags_saved = 0;
executed: compiler->flags_saved = 0;
Execution Count:305
305
1565 if (__builtin_expect((op & 0x4000), 0) && !compiler->flags_saved)
partially evaluated: __builtin_expect((op & 0x4000), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:395
never evaluated: !compiler->flags_saved
0-395
1566 do { if (__builtin_expect((emit_save_flags(compiler)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_save_flags(compiler)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1567 if (dst == 0)
evaluated: dst == 0
TRUEFALSE
yes
Evaluation Count:282
yes
Evaluation Count:113
113-282
1568 return emit_cmp_binary(compiler, src1, src1w, src2, src2w);
executed: return emit_cmp_binary(compiler, src1, src1w, src2, src2w);
Execution Count:282
282
1569 return emit_non_cum_binary(compiler, 0x2b, 0x29, 0x5 << 3, 0x2d, 113
1570 dst, dstw, src1, src1w, src2, src2w);
executed: return emit_non_cum_binary(compiler, 0x2b, 0x29, 0x5 << 3, 0x2d, dst, dstw, src1, src1w, src2, src2w);
Execution Count:113
113
1571 case 26: -
1572 if (__builtin_expect((compiler->flags_saved), 0))
never evaluated: __builtin_expect((compiler->flags_saved), 0)
0
1573 do { if (__builtin_expect((emit_restore_flags(compiler, 1)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_restore_flags(compiler, 1)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1574 else if (__builtin_expect((op & 0x4000), 0))
never evaluated: __builtin_expect((op & 0x4000), 0)
0
1575 do { if (__builtin_expect((emit_save_flags(compiler)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_save_flags(compiler)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1576 if (__builtin_expect((((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000))), 0))
never evaluated: __builtin_expect((((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000))), 0)
0
1577 compiler->flags_saved = 0;
never executed: compiler->flags_saved = 0;
0
1578 return emit_non_cum_binary(compiler, 0x1b, 0x19, 0x3 << 3, 0x1d, 0
1579 dst, dstw, src1, src1w, src2, src2w);
never executed: return emit_non_cum_binary(compiler, 0x1b, 0x19, 0x3 << 3, 0x1d, dst, dstw, src1, src1w, src2, src2w);
0
1580 case 27: -
1581 return emit_mul(compiler, dst, dstw, src1, src1w, src2, src2w);
never executed: return emit_mul(compiler, dst, dstw, src1, src1w, src2, src2w);
0
1582 case 28: -
1583 if (dst == 0)
partially evaluated: dst == 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:49
0-49
1584 return emit_test_binary(compiler, src1, src1w, src2, src2w);
never executed: return emit_test_binary(compiler, src1, src1w, src2, src2w);
0
1585 return emit_cum_binary(compiler, 0x23, 0x21, 0x4 << 3, 0x25, 49
1586 dst, dstw, src1, src1w, src2, src2w);
executed: return emit_cum_binary(compiler, 0x23, 0x21, 0x4 << 3, 0x25, dst, dstw, src1, src1w, src2, src2w);
Execution Count:49
49
1587 case 29: -
1588 return emit_cum_binary(compiler, 0x0b, 0x09, 0x1 << 3, 0x0d, 9
1589 dst, dstw, src1, src1w, src2, src2w);
executed: return emit_cum_binary(compiler, 0x0b, 0x09, 0x1 << 3, 0x0d, dst, dstw, src1, src1w, src2, src2w);
Execution Count:9
9
1590 case 30: -
1591 return emit_cum_binary(compiler, 0x33, 0x31, 0x6 << 3, 0x35, 1
1592 dst, dstw, src1, src1w, src2, src2w);
executed: return emit_cum_binary(compiler, 0x33, 0x31, 0x6 << 3, 0x35, dst, dstw, src1, src1w, src2, src2w);
Execution Count:1
1
1593 case 31: -
1594 return emit_shift_with_flags(compiler, 0x4 << 3, ((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000)), 46
1595 dst, dstw, src1, src1w, src2, src2w);
executed: return emit_shift_with_flags(compiler, 0x4 << 3, ((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000)), dst, dstw, src1, src1w, src2, src2w);
Execution Count:46
46
1596 case 32: -
1597 return emit_shift_with_flags(compiler, 0x5 << 3, ((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000)), 2
1598 dst, dstw, src1, src1w, src2, src2w);
executed: return emit_shift_with_flags(compiler, 0x5 << 3, ((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000)), dst, dstw, src1, src1w, src2, src2w);
Execution Count:2
2
1599 case 33: -
1600 return emit_shift_with_flags(compiler, 0x7 << 3, ((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000)), 15
1601 dst, dstw, src1, src1w, src2, src2w);
executed: return emit_shift_with_flags(compiler, 0x7 << 3, ((op) & (0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000)), dst, dstw, src1, src1w, src2, src2w);
Execution Count:15
15
1602 } -
1603 -
1604 return 0;
never executed: return 0;
0
1605} -
1606 -
1607static __attribute__((unused)) int sljit_get_register_index(int reg) -
1608{ -
1609 check_sljit_get_register_index(reg); -
1610 -
1611 -
1612 -
1613 -
1614 -
1615 return reg_map[reg];
never executed: return reg_map[reg];
0
1616} -
1617 -
1618static __attribute__((unused)) int sljit_emit_op_custom(struct sljit_compiler *compiler, -
1619 void *instruction, int size) -
1620{ -
1621 sljit_ub *buf; -
1622 -
1623 do { if (__builtin_expect((compiler->error), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((compiler->error), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1624 check_sljit_emit_op_custom(compiler, instruction, size); -
1625 do { } while (0);
never evaluated: 0
never executed: }
0
1626 -
1627 buf = (sljit_ub*)ensure_buf(compiler, 1 + size); -
1628 do { if (__builtin_expect((!buf), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!buf), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1629 (*buf++ = (size), compiler->size += (size)); -
1630 memmove(buf, instruction, size); -
1631 return 0;
never executed: return 0;
0
1632} -
1633static sljit_i sse2_data[3 + 4 + 4]; -
1634static sljit_i *sse2_buffer; -
1635 -
1636static void init_compiler() -
1637{ -
1638 -
1639 -
1640 -
1641 -
1642 sse2_buffer = (sljit_i*)(((sljit_uw)sse2_data + 15) & ~0xf); -
1643 sse2_buffer[0] = 0; -
1644 sse2_buffer[1] = 0x80000000; -
1645 sse2_buffer[4] = 0xffffffff; -
1646 sse2_buffer[5] = 0x7fffffff; -
1647}
executed: }
Execution Count:2
2
1648 -
1649 -
1650 -
1651static __attribute__((unused)) int sljit_is_fpu_available(void) -
1652{ -
1653 -
1654 return 1;
never executed: return 1;
0
1655} -
1656 -
1657 -
1658 -
1659static int emit_sse2(struct sljit_compiler *compiler, sljit_ub opcode, -
1660 int xmm1, int xmm2, sljit_w xmm2w) -
1661{ -
1662 sljit_ub *buf; -
1663 -
1664 buf = emit_x86_instruction(compiler, 2 | 0x0800 | 0x1000, xmm1, 0, xmm2, xmm2w); -
1665 do { if (__builtin_expect((!buf), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!buf), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1666 *buf++ = 0x0f; -
1667 *buf = opcode; -
1668 return 0;
never executed: return 0;
0
1669} -
1670 -
1671static int emit_sse2_logic(struct sljit_compiler *compiler, sljit_ub opcode, -
1672 int xmm1, int xmm2, sljit_w xmm2w) -
1673{ -
1674 sljit_ub *buf; -
1675 -
1676 buf = emit_x86_instruction(compiler, 2 | 0x0400 | 0x1000, xmm1, 0, xmm2, xmm2w); -
1677 do { if (__builtin_expect((!buf), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!buf), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1678 *buf++ = 0x0f; -
1679 *buf = opcode; -
1680 return 0;
never executed: return 0;
0
1681} -
1682 -
1683static __inline int emit_sse2_load(struct sljit_compiler *compiler, -
1684 int dst, int src, sljit_w srcw) -
1685{ -
1686 return emit_sse2(compiler, 0x10, dst, src, srcw);
never executed: return emit_sse2(compiler, 0x10, dst, src, srcw);
0
1687} -
1688 -
1689static __inline int emit_sse2_store(struct sljit_compiler *compiler, -
1690 int dst, sljit_w dstw, int src) -
1691{ -
1692 return emit_sse2(compiler, 0x11, src, dst, dstw);
never executed: return emit_sse2(compiler, 0x11, src, dst, dstw);
0
1693} -
1694 -
1695 -
1696static __attribute__((unused)) int sljit_emit_fop1(struct sljit_compiler *compiler, int op, -
1697 -
1698 -
1699 -
1700 int dst, sljit_w dstw, -
1701 int src, sljit_w srcw) -
1702{ -
1703 int dst_r; -
1704 -
1705 do { if (__builtin_expect((compiler->error), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((compiler->error), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1706 check_sljit_emit_fop1(compiler, op, dst, dstw, src, srcw); -
1707 -
1708 -
1709 compiler->mode32 = 1; -
1710 -
1711 -
1712 if (((op) & ~(0x100 | 0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000 | 0x4000)) == 34) {
never evaluated: ((op) & ~(0x100 | 0x0200 | 0x0400 | 0x0800 | 0x1000 | 0x2000 | 0x4000)) == 34
0
1713 compiler->flags_saved = 0; -
1714 if (dst >= 1 && dst <= 4)
never evaluated: dst >= 1
never evaluated: dst <= 4
0
1715 dst_r = dst;
never executed: dst_r = dst;
0
1716 else { -
1717 dst_r = (4 + 1); -
1718 do { if (__builtin_expect((emit_sse2_load(compiler, dst_r, dst, dstw)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_sse2_load(compiler, dst_r, dst, dstw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1719 }
never executed: }
0
1720 return emit_sse2_logic(compiler, 0x2e, dst_r, src, srcw);
never executed: return emit_sse2_logic(compiler, 0x2e, dst_r, src, srcw);
0
1721 } -
1722 -
1723 if (op == 35) {
never evaluated: op == 35
0
1724 if (dst >= 1 && dst <= 4)
never evaluated: dst >= 1
never evaluated: dst <= 4
0
1725 return emit_sse2_load(compiler, dst, src, srcw);
never executed: return emit_sse2_load(compiler, dst, src, srcw);
0
1726 if (src >= 1 && src <= 4)
never evaluated: src >= 1
never evaluated: src <= 4
0
1727 return emit_sse2_store(compiler, dst, dstw, src);
never executed: return emit_sse2_store(compiler, dst, dstw, src);
0
1728 do { if (__builtin_expect((emit_sse2_load(compiler, (4 + 1), src, srcw)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_sse2_load(compiler, (4 + 1), src, srcw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1729 return emit_sse2_store(compiler, dst, dstw, (4 + 1));
never executed: return emit_sse2_store(compiler, dst, dstw, (4 + 1));
0
1730 } -
1731 -
1732 if (dst >= 1 && dst <= 4) {
never evaluated: dst >= 1
never evaluated: dst <= 4
0
1733 dst_r = dst; -
1734 if (dst != src)
never evaluated: dst != src
0
1735 do { if (__builtin_expect((emit_sse2_load(compiler, dst_r, src, srcw)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_sse2_load(compiler, dst_r, src, srcw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1736 }
never executed: }
0
1737 else { -
1738 dst_r = (4 + 1); -
1739 do { if (__builtin_expect((emit_sse2_load(compiler, dst_r, src, srcw)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_sse2_load(compiler, dst_r, src, srcw)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1740 }
never executed: }
0
1741 -
1742 switch (op) { -
1743 case 36: -
1744 do { if (__builtin_expect((emit_sse2_logic(compiler, 0x57, dst_r, (0x100), (sljit_w)sse2_buffer)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_sse2_logic(compiler, 0x57, dst_r, (0x100), (sljit_w)sse2_buffer)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1745 break;
never executed: break;
0
1746 -
1747 case 37: -
1748 do { if (__builtin_expect((emit_sse2_logic(compiler, 0x54, dst_r, (0x100), (sljit_w)(sse2_buffer + 4))), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_sse2_logic(compiler, 0x54, dst_r, (0x100), (sljit_w)(sse2_buffer + 4))), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1749 break;
never executed: break;
0
1750 } -
1751 -
1752 if (dst_r == (4 + 1))
never evaluated: dst_r == (4 + 1)
0
1753 return emit_sse2_store(compiler, dst, dstw, (4 + 1));
never executed: return emit_sse2_store(compiler, dst, dstw, (4 + 1));
0
1754 return 0;
never executed: return 0;
0
1755} -
1756 -
1757 -
1758static __attribute__((unused)) int sljit_emit_fop2(struct sljit_compiler *compiler, int op, -
1759 -
1760 -
1761 -
1762 int dst, sljit_w dstw, -
1763 int src1, sljit_w src1w, -
1764 int src2, sljit_w src2w) -
1765{ -
1766 int dst_r; -
1767 -
1768 do { if (__builtin_expect((compiler->error), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((compiler->error), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1769 check_sljit_emit_fop2(compiler, op, dst, dstw, src1, src1w, src2, src2w); -
1770 -
1771 -
1772 compiler->mode32 = 1; -
1773 -
1774 -
1775 if (dst >= 1 && dst <= 4) {
never evaluated: dst >= 1
never evaluated: dst <= 4
0
1776 dst_r = dst; -
1777 if (dst == src1)
never evaluated: dst == src1
0
1778 ;
never executed: ;
0
1779 else if (dst == src2 && (op == 38 || op == 40)) {
never evaluated: dst == src2
never evaluated: op == 38
never evaluated: op == 40
0
1780 -
1781 src2 = src1; -
1782 src2w = src1w; -
1783 }
never executed: }
0
1784 else if (dst != src2)
never evaluated: dst != src2
0
1785 do { if (__builtin_expect((emit_sse2_load(compiler, dst_r, src1, src1w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_sse2_load(compiler, dst_r, src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1786 else { -
1787 dst_r = (4 + 1); -
1788 do { if (__builtin_expect((emit_sse2_load(compiler, (4 + 1), src1, src1w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_sse2_load(compiler, (4 + 1), src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1789 }
never executed: }
0
1790 } -
1791 else { -
1792 dst_r = (4 + 1); -
1793 do { if (__builtin_expect((emit_sse2_load(compiler, (4 + 1), src1, src1w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_sse2_load(compiler, (4 + 1), src1, src1w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1794 }
never executed: }
0
1795 -
1796 switch (op) { -
1797 case 38: -
1798 do { if (__builtin_expect((emit_sse2(compiler, 0x58, dst_r, src2, src2w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_sse2(compiler, 0x58, dst_r, src2, src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1799 break;
never executed: break;
0
1800 -
1801 case 39: -
1802 do { if (__builtin_expect((emit_sse2(compiler, 0x5c, dst_r, src2, src2w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_sse2(compiler, 0x5c, dst_r, src2, src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1803 break;
never executed: break;
0
1804 -
1805 case 40: -
1806 do { if (__builtin_expect((emit_sse2(compiler, 0x59, dst_r, src2, src2w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_sse2(compiler, 0x59, dst_r, src2, src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1807 break;
never executed: break;
0
1808 -
1809 case 41: -
1810 do { if (__builtin_expect((emit_sse2(compiler, 0x5e, dst_r, src2, src2w)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_sse2(compiler, 0x5e, dst_r, src2, src2w)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1811 break;
never executed: break;
0
1812 } -
1813 -
1814 if (dst_r == (4 + 1))
never evaluated: dst_r == (4 + 1)
0
1815 return emit_sse2_store(compiler, dst, dstw, (4 + 1));
never executed: return emit_sse2_store(compiler, dst, dstw, (4 + 1));
0
1816 return 0;
never executed: return 0;
0
1817} -
1818static __attribute__((unused)) struct sljit_label* sljit_emit_label(struct sljit_compiler *compiler) -
1819{ -
1820 sljit_ub *buf; -
1821 struct sljit_label *label; -
1822 -
1823 do { if (__builtin_expect((compiler->error), 0)) return ((void *)0); } while (0);
partially evaluated: __builtin_expect((compiler->error), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:340
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:340
never executed: return ((void *)0);
executed: }
Execution Count:340
0-340
1824 check_sljit_emit_label(compiler); -
1825 -
1826 -
1827 -
1828 if (__builtin_expect((compiler->flags_saved), 0))
partially evaluated: __builtin_expect((compiler->flags_saved), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:340
0-340
1829 do { if (__builtin_expect((emit_restore_flags(compiler, 0)), 0)) return ((void *)0); } while (0);
never evaluated: __builtin_expect((emit_restore_flags(compiler, 0)), 0)
never evaluated: 0
never executed: return ((void *)0);
never executed: }
0
1830 -
1831 if (compiler->last_label && compiler->last_label->size == compiler->size)
evaluated: compiler->last_label
TRUEFALSE
yes
Evaluation Count:325
yes
Evaluation Count:15
evaluated: compiler->last_label->size == compiler->size
TRUEFALSE
yes
Evaluation Count:69
yes
Evaluation Count:256
15-325
1832 return compiler->last_label;
executed: return compiler->last_label;
Execution Count:69
69
1833 -
1834 label = (struct sljit_label*)ensure_abuf(compiler, sizeof(struct sljit_label)); -
1835 do { if (__builtin_expect((!label), 0)) return ((void *)0); } while (0);
partially evaluated: __builtin_expect((!label), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:271
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:271
never executed: return ((void *)0);
executed: }
Execution Count:271
0-271
1836 set_label(label, compiler); -
1837 -
1838 buf = (sljit_ub*)ensure_buf(compiler, 2); -
1839 do { if (__builtin_expect((!buf), 0)) return ((void *)0); } while (0);
partially evaluated: __builtin_expect((!buf), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:271
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:271
never executed: return ((void *)0);
executed: }
Execution Count:271
0-271
1840 -
1841 *buf++ = 0; -
1842 *buf++ = 0; -
1843 -
1844 return label;
executed: return label;
Execution Count:271
271
1845} -
1846 -
1847static __attribute__((unused)) struct sljit_jump* sljit_emit_jump(struct sljit_compiler *compiler, int type) -
1848{ -
1849 sljit_ub *buf; -
1850 struct sljit_jump *jump; -
1851 -
1852 do { if (__builtin_expect((compiler->error), 0)) return ((void *)0); } while (0);
partially evaluated: __builtin_expect((compiler->error), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:401
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:401
never executed: return ((void *)0);
executed: }
Execution Count:401
0-401
1853 check_sljit_emit_jump(compiler, type); -
1854 -
1855 if (__builtin_expect((compiler->flags_saved), 0)) {
partially evaluated: __builtin_expect((compiler->flags_saved), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:401
0-401
1856 if ((type & 0xff) <= 22)
never evaluated: (type & 0xff) <= 22
0
1857 do { if (__builtin_expect((emit_restore_flags(compiler, 0)), 0)) return ((void *)0); } while (0);
never evaluated: __builtin_expect((emit_restore_flags(compiler, 0)), 0)
never evaluated: 0
never executed: return ((void *)0);
never executed: }
0
1858 compiler->flags_saved = 0; -
1859 }
never executed: }
0
1860 -
1861 jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); -
1862 do { if (__builtin_expect((!(jump)), 0)) { compiler->error = 2; return ((void *)0); } } while (0);
partially evaluated: __builtin_expect((!(jump)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:401
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:401
never executed: return ((void *)0);
executed: }
Execution Count:401
0-401
1863 set_jump(jump, compiler, type & 0x1000); -
1864 type &= 0xff; -
1865 -
1866 if (type >= 25)
partially evaluated: type >= 25
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:401
0-401
1867 do { if (__builtin_expect((call_with_args(compiler, type)), 0)) return ((void *)0); } while (0);
never evaluated: __builtin_expect((call_with_args(compiler, type)), 0)
never evaluated: 0
never executed: return ((void *)0);
never executed: }
0
1868 -
1869 -
1870 -
1871 -
1872 -
1873 compiler->size += (type >= 22) ? (10 + 3) : (2 + 10 + 3);
evaluated: (type >= 22)
TRUEFALSE
yes
Evaluation Count:136
yes
Evaluation Count:265
136-265
1874 -
1875 -
1876 buf = (sljit_ub*)ensure_buf(compiler, 2); -
1877 do { if (__builtin_expect((!(buf)), 0)) { compiler->error = 2; return ((void *)0); } } while (0);
partially evaluated: __builtin_expect((!(buf)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:401
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:401
never executed: return ((void *)0);
executed: }
Execution Count:401
0-401
1878 -
1879 *buf++ = 0; -
1880 *buf++ = type + 4; -
1881 return jump;
executed: return jump;
Execution Count:401
401
1882} -
1883 -
1884static __attribute__((unused)) int sljit_emit_ijump(struct sljit_compiler *compiler, int type, int src, sljit_w srcw) -
1885{ -
1886 sljit_ub *code; -
1887 struct sljit_jump *jump; -
1888 -
1889 do { if (__builtin_expect((compiler->error), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((compiler->error), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never executed: return compiler->error;
executed: }
Execution Count:15
0-15
1890 check_sljit_emit_ijump(compiler, type, src, srcw); -
1891 -
1892 ; -
1893 if (__builtin_expect((compiler->flags_saved), 0)) {
partially evaluated: __builtin_expect((compiler->flags_saved), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
0-15
1894 if (type <= 22)
never evaluated: type <= 22
0
1895 do { if (__builtin_expect((emit_restore_flags(compiler, 0)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_restore_flags(compiler, 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1896 compiler->flags_saved = 0; -
1897 }
never executed: }
0
1898 -
1899 if (type >= 25) {
partially evaluated: type >= 25
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
1900 do { if (__builtin_expect((call_with_args(compiler, type)), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((call_with_args(compiler, type)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never executed: return compiler->error;
executed: }
Execution Count:15
0-15
1901 }
executed: }
Execution Count:15
15
1902 -
1903 if (src == 0x200) {
partially evaluated: src == 0x200
TRUEFALSE
yes
Evaluation Count:15
no
Evaluation Count:0
0-15
1904 jump = (struct sljit_jump*)ensure_abuf(compiler, sizeof(struct sljit_jump)); -
1905 do { if (__builtin_expect((!(jump)), 0)) { compiler->error = 2; return 2; } } while (0);
partially evaluated: __builtin_expect((!(jump)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never executed: return 2;
executed: }
Execution Count:15
0-15
1906 set_jump(jump, compiler, 0x2); -
1907 jump->u.target = srcw; -
1908 -
1909 -
1910 -
1911 -
1912 -
1913 compiler->size += 10 + 3; -
1914 -
1915 -
1916 code = (sljit_ub*)ensure_buf(compiler, 2); -
1917 do { if (__builtin_expect((!(code)), 0)) { compiler->error = 2; return 2; } } while (0);
partially evaluated: __builtin_expect((!(code)), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:15
never executed: return 2;
executed: }
Execution Count:15
0-15
1918 -
1919 *code++ = 0; -
1920 *code++ = type + 4; -
1921 }
executed: }
Execution Count:15
15
1922 else { -
1923 -
1924 -
1925 compiler->mode32 = 1; -
1926 -
1927 code = emit_x86_instruction(compiler, 1, 0, 0, src, srcw); -
1928 do { if (__builtin_expect((!code), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((!code), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1929 *code++ = 0xff; -
1930 *code |= (type >= 23) ? (2 << 3) : (4 << 3);
never evaluated: (type >= 23)
0
1931 }
never executed: }
0
1932 return 0;
executed: return 0;
Execution Count:15
15
1933} -
1934 -
1935static __attribute__((unused)) int sljit_emit_cond_value(struct sljit_compiler *compiler, int op, int dst, sljit_w dstw, int type) -
1936{ -
1937 sljit_ub *buf; -
1938 sljit_ub cond_set = 0; -
1939 -
1940 int reg; -
1941 -
1942 -
1943 do { if (__builtin_expect((compiler->error), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((compiler->error), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:43
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:43
never executed: return compiler->error;
executed: }
Execution Count:43
0-43
1944 check_sljit_emit_cond_value(compiler, op, dst, dstw, type); -
1945 -
1946 if (dst == 0)
partially evaluated: dst == 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:43
0-43
1947 return 0;
never executed: return 0;
0
1948 -
1949 ; -
1950 if (__builtin_expect((compiler->flags_saved), 0))
partially evaluated: __builtin_expect((compiler->flags_saved), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:43
0-43
1951 do { if (__builtin_expect((emit_restore_flags(compiler, 0)), 0)) return compiler->error; } while (0);
never evaluated: __builtin_expect((emit_restore_flags(compiler, 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
1952 -
1953 switch (type) { -
1954 case 0: -
1955 case 14: -
1956 cond_set = 0x94; -
1957 break;
executed: break;
Execution Count:41
41
1958 -
1959 case 1: -
1960 case 15: -
1961 cond_set = 0x95; -
1962 break;
never executed: break;
0
1963 -
1964 case 2: -
1965 case 16: -
1966 cond_set = 0x92; -
1967 break;
never executed: break;
0
1968 -
1969 case 3: -
1970 case 17: -
1971 cond_set = 0x93; -
1972 break;
executed: break;
Execution Count:2
2
1973 -
1974 case 4: -
1975 case 18: -
1976 cond_set = 0x97; -
1977 break;
never executed: break;
0
1978 -
1979 case 5: -
1980 case 19: -
1981 cond_set = 0x96; -
1982 break;
never executed: break;
0
1983 -
1984 case 6: -
1985 cond_set = 0x9c; -
1986 break;
never executed: break;
0
1987 -
1988 case 7: -
1989 cond_set = 0x9d; -
1990 break;
never executed: break;
0
1991 -
1992 case 8: -
1993 cond_set = 0x9f; -
1994 break;
never executed: break;
0
1995 -
1996 case 9: -
1997 cond_set = 0x9e; -
1998 break;
never executed: break;
0
1999 -
2000 case 10: -
2001 case 12: -
2002 cond_set = 0x90; -
2003 break;
never executed: break;
0
2004 -
2005 case 11: -
2006 case 13: -
2007 cond_set = 0x91; -
2008 break;
never executed: break;
0
2009 -
2010 case 20: -
2011 cond_set = 0x9a; -
2012 break;
never executed: break;
0
2013 -
2014 case 21: -
2015 cond_set = 0x9b; -
2016 break;
never executed: break;
0
2017 } -
2018 -
2019 -
2020 reg = (op == 6 && dst >= 1 && dst <= 11) ? dst : (11 + 1);
evaluated: op == 6
TRUEFALSE
yes
Evaluation Count:41
yes
Evaluation Count:2
partially evaluated: dst >= 1
TRUEFALSE
yes
Evaluation Count:41
no
Evaluation Count:0
partially evaluated: dst <= 11
TRUEFALSE
yes
Evaluation Count:41
no
Evaluation Count:0
0-41
2021 -
2022 buf = (sljit_ub*)ensure_buf(compiler, 1 + 4 + 4); -
2023 do { if (__builtin_expect((!buf), 0)) return compiler->error; } while (0);
partially evaluated: __builtin_expect((!buf), 0)
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:43
partially evaluated: 0
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:43
never executed: return compiler->error;
executed: }
Execution Count:43
0-43
2024 (*buf++ = (4 + 4), compiler->size += (4 + 4)); -
2025 -
2026 *buf++ = (reg_map[reg] <= 7) ? 0x40 : 0x41;
partially evaluated: (reg_map[reg] <= 7)
TRUEFALSE
yes
Evaluation Count:43
no
Evaluation Count:0
0-43
2027 *buf++ = 0x0f; -
2028 *buf++ = cond_set; -
2029 *buf++ = 0xC0 | reg_lmap[reg]; -
2030 *buf++ = 0x48 | (reg_map[reg] <= 7 ? 0 : (0x41 | 0x44)); -
2031 *buf++ = 0x0f; -
2032 *buf++ = 0xb6; -
2033 *buf = 0xC0 | (reg_lmap[reg] << 3) | reg_lmap[reg]; -
2034 -
2035 if (reg == (11 + 1)) {
evaluated: reg == (11 + 1)
TRUEFALSE
yes
Evaluation Count:2
yes
Evaluation Count:41
2-41
2036 if (op == 6) {
partially evaluated: op == 6
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:2
0-2
2037 compiler->mode32 = 0; -
2038 do { if (__builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)) return compiler->error; } while (0);;
never evaluated: __builtin_expect((emit_mov(compiler, dst, dstw, (11 + 1), 0)), 0)
never evaluated: 0
never executed: return compiler->error;
never executed: }
0
2039 }
never executed: }
0
2040 else { -
2041 -
2042 -
2043 -
2044 return sljit_emit_op2(compiler, op, dst, dstw, dst, dstw, (11 + 1), 0);
executed: return sljit_emit_op2(compiler, op, dst, dstw, dst, dstw, (11 + 1), 0);
Execution Count:2
2
2045 } -
2046 } -
2047 return 0;
executed: return 0;
Execution Count:41
41
2048} -
2049 -
2050static __attribute__((unused)) struct sljit_const* sljit_emit_const(struct sljit_compiler *compiler, int dst, sljit_w dstw, sljit_w init_value) -
2051{ -
2052 sljit_ub *buf; -
2053 struct sljit_const *const_; -
2054 -
2055 int reg; -
2056 -
2057 -
2058 do { if (__builtin_expect((compiler->error), 0)) return ((void *)0); } while (0);
never evaluated: __builtin_expect((compiler->error), 0)
never evaluated: 0
never executed: return ((void *)0);
never executed: }
0
2059 check_sljit_emit_const(compiler, dst, dstw, init_value); -
2060 -
2061 ; -
2062 -
2063 const_ = (struct sljit_const*)ensure_abuf(compiler, sizeof(struct sljit_const)); -
2064 do { if (__builtin_expect((!const_), 0)) return ((void *)0); } while (0);
never evaluated: __builtin_expect((!const_), 0)
never evaluated: 0
never executed: return ((void *)0);
never executed: }
0
2065 set_const(const_, compiler); -
2066 -
2067 -
2068 compiler->mode32 = 0; -
2069 reg = (dst >= 1 && dst <= 11) ? dst : (11 + 1);
never evaluated: dst >= 1
never evaluated: dst <= 11
0
2070 -
2071 if (emit_load_imm64(compiler, reg, init_value))
never evaluated: emit_load_imm64(compiler, reg, init_value)
0
2072 return ((void *)0);
never executed: return ((void *)0);
0
2073 buf = (sljit_ub*)ensure_buf(compiler, 2); -
2074 do { if (__builtin_expect((!buf), 0)) return ((void *)0); } while (0);
never evaluated: __builtin_expect((!buf), 0)
never evaluated: 0
never executed: return ((void *)0);
never executed: }
0
2075 -
2076 *buf++ = 0; -
2077 *buf++ = 1; -
2078 -
2079 -
2080 if (reg == (11 + 1) && dst != 0)
never evaluated: reg == (11 + 1)
never evaluated: dst != 0
0
2081 if (emit_mov(compiler, dst, dstw, (11 + 1), 0))
never evaluated: emit_mov(compiler, dst, dstw, (11 + 1), 0)
0
2082 return ((void *)0);
never executed: return ((void *)0);
0
2083 -
2084 -
2085 return const_;
never executed: return const_;
0
2086} -
2087 -
2088static __attribute__((unused)) void sljit_set_jump_addr(sljit_uw addr, sljit_uw new_addr) -
2089{ -
2090 -
2091 -
2092 -
2093 *(sljit_uw*)addr = new_addr; -
2094 -
2095}
never executed: }
0
2096 -
2097static __attribute__((unused)) void sljit_set_const(sljit_uw addr, sljit_w new_constant) -
2098{ -
2099 *(sljit_w*)addr = new_constant; -
2100}
never executed: }
0
2101 -
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial