Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

50 lines (38 sloc) 0.726 kb
#include "stackmach.h"
double
i_op_run(int codes[], size_t code_size, double parms[], size_t parm_size) {
double stack[100];
double *sp = stack;
while (code_size) {
switch (*codes++) {
case bcAdd:
sp[-2] += sp[-1];
--sp;
break;
case bcSubtract:
sp[-2] -= sp[-1];
--sp;
break;
case bcDiv:
sp[-2] /= sp[-1];
--sp;
break;
case bcMult:
sp[-2] *= sp[-1];
--sp;
break;
case bcParm:
*sp++ = parms[*codes++];
--code_size;
break;
case bcSin:
sp[-1] = sin(sp[-1]);
break;
case bcCos:
sp[-1] = cos(sp[-1]);
break;
}
--code_size;
}
return sp[-1];
}
Jump to Line
Something went wrong with that request. Please try again.