File Coverage

stackmach.c
Criterion Covered Total %
statement 0 25 0.0
branch 0 2 0.0
condition n/a
subroutine n/a
pod n/a
total 0 27 0.0


line stmt bran cond sub pod time code
1             #include "stackmach.h"
2              
3             double
4 0           i_op_run(int codes[], size_t code_size, double parms[], size_t parm_size) {
5             double stack[100];
6 0           double *sp = stack;
7              
8 0 0         while (code_size) {
9 0           switch (*codes++) {
10             case bcAdd:
11 0           sp[-2] += sp[-1];
12 0           --sp;
13 0           break;
14              
15             case bcSubtract:
16 0           sp[-2] -= sp[-1];
17 0           --sp;
18 0           break;
19              
20             case bcDiv:
21 0           sp[-2] /= sp[-1];
22 0           --sp;
23 0           break;
24              
25             case bcMult:
26 0           sp[-2] *= sp[-1];
27 0           --sp;
28 0           break;
29              
30             case bcParm:
31 0           *sp++ = parms[*codes++];
32 0           --code_size;
33 0           break;
34              
35             case bcSin:
36 0           sp[-1] = sin(sp[-1]);
37 0           break;
38            
39             case bcCos:
40 0           sp[-1] = cos(sp[-1]);
41 0           break;
42            
43             }
44 0           --code_size;
45             }
46            
47 0           return sp[-1];
48             }
49