File Coverage

stackmach.c
Criterion Covered Total %
statement 0 32 0.0
branch 0 2 0.0
condition n/a
subroutine n/a
pod n/a
total 0 34 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 0           case bcAdd:
11 0           sp[-2] += sp[-1];
12 0           --sp;
13 0           break;
14              
15 0           case bcSubtract:
16 0           sp[-2] -= sp[-1];
17 0           --sp;
18 0           break;
19              
20 0           case bcDiv:
21 0           sp[-2] /= sp[-1];
22 0           --sp;
23 0           break;
24              
25 0           case bcMult:
26 0           sp[-2] *= sp[-1];
27 0           --sp;
28 0           break;
29              
30 0           case bcParm:
31 0           *sp++ = parms[*codes++];
32 0           --code_size;
33 0           break;
34              
35 0           case bcSin:
36 0           sp[-1] = sin(sp[-1]);
37 0           break;
38            
39 0           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