Lines Matching refs:bmachine

39 struct bmachine {  struct
52 static struct bmachine bmachine; argument
225 bmachine.extended_regs = extended_registers; in init_bmachine()
226 bmachine.reg_array_size = bmachine.extended_regs ? in init_bmachine()
229 bmachine.reg = calloc(bmachine.reg_array_size, in init_bmachine()
230 sizeof(bmachine.reg[0])); in init_bmachine()
231 if (bmachine.reg == NULL) in init_bmachine()
239 stack_init(&bmachine.stack); in init_bmachine()
241 for (i = 0; i < bmachine.reg_array_size; i++) in init_bmachine()
242 stack_init(&bmachine.reg[i]); in init_bmachine()
244 bmachine.readstack_sz = READSTACK_SIZE; in init_bmachine()
245 bmachine.readstack = calloc(sizeof(struct source), in init_bmachine()
246 bmachine.readstack_sz); in init_bmachine()
247 if (bmachine.readstack == NULL) in init_bmachine()
249 bmachine.obase = bmachine.ibase = 10; in init_bmachine()
255 return bmachine.scale; in bmachine_scale()
263 bmachine.readsp = 0; in reset_bmachine()
264 bmachine.readstack[0] = *src; in reset_bmachine()
270 struct source *src = &bmachine.readstack[bmachine.readsp]; in readch()
278 struct source *src = &bmachine.readstack[bmachine.readsp]; in unreadch()
286 struct source *src = &bmachine.readstack[bmachine.readsp]; in readline()
294 struct source *src = &bmachine.readstack[bmachine.readsp]; in src_free()
432 stack_pushnumber(&bmachine.stack, n); in push_number()
439 stack_pushstring(&bmachine.stack, string); in push_string()
446 stack_push(&bmachine.stack, v); in push()
453 return (stack_tos(&bmachine.stack)); in tos()
460 return (stack_pop(&bmachine.stack)); in pop()
467 return (stack_popnumber(&bmachine.stack)); in pop_number()
474 return (stack_popstring(&bmachine.stack)); in pop_string()
481 stack_clear(&bmachine.stack); in clear_stack()
488 stack_print(stdout, &bmachine.stack, "", bmachine.obase); in print_stack()
497 print_value(stdout, value, "", bmachine.obase); in print_tos()
509 print_value(stderr, value, "", bmachine.obase); in print_err()
545 print_value(stdout, value, "", bmachine.obase); in pop_printn()
555 stack_dup(&bmachine.stack); in dup()
562 stack_swap(&bmachine.stack); in swap()
579 bn_check(BN_set_word(n->number, bmachine.scale)); in get_scale()
596 bmachine.scale = (u_int)scale; in set_scale()
610 bn_check(BN_set_word(n->number, bmachine.obase)); in get_obase()
624 bmachine.obase = (u_int)base; in set_obase()
637 bn_check(BN_set_word(n->number, bmachine.ibase)); in get_ibase()
651 bmachine.ibase = (u_int)base; in set_ibase()
665 i = stack_size(&bmachine.stack); in stackdepth()
783 if (idx == 0xff && bmachine.extended_regs) { in readreg()
792 if (idx < 0 || (unsigned)idx >= bmachine.reg_array_size) { in readreg()
809 v = stack_tos(&bmachine.reg[idx]); in load()
831 stack_set_tos(&bmachine.reg[idx], val); in store()
844 stack = &bmachine.reg[idx]; in load_stack()
868 stack_push(&bmachine.reg[idx], value); in store_stack()
893 stack = &bmachine.reg[reg]; in load_array()
934 stack = &bmachine.reg[reg]; in store_array()
945 push_string(read_string(&bmachine.readstack[bmachine.readsp])); in push_line()
1032 if (rscale > bmachine.scale && rscale > ascale && rscale > bscale) in bmul_number()
1051 bmul_number(r, a, b, bmachine.scale); in bmul()
1072 r = div_number(b, a, bmachine.scale); in bdiv()
1137 quotient->scale = bmachine.scale; in bdivmod()
1160 frac = div_number(remainder, a, bmachine.scale); in bdivmod()
1161 normalize(rdiv, bmachine.scale); in bdivmod()
1210 rscale = bmachine.scale; in bexp()
1217 m = max(a->scale, bmachine.scale); in bexp()
1313 scale = max(bmachine.scale, n->scale); in bsqrt()
1539 v = stack_tos(&bmachine.reg[idx]); in compare()
1569 if (bmachine.readsp < 2) in quit()
1572 bmachine.readsp--; in quit()
1574 bmachine.readsp--; in quit()
1590 else if (bmachine.readsp < i) in quitN()
1595 bmachine.readsp--; in quitN()
1612 else if (i > 0 && bmachine.readsp < i) in skipN()
1617 bmachine.readsp--; in skipN()
1650 free(read_string(&bmachine.readstack[bmachine.readsp])); in skip_until_mark()
1679 push_number(readnumber(&bmachine.readstack[bmachine.readsp], in parse_number()
1680 bmachine.ibase, bmachine.scale)); in parse_number()
1686 int ch = bmachine.readstack[bmachine.readsp].lastchar; in unknown()
1695 if (bmachine.readsp > 0) { in eval_string()
1700 src_setstring(&bmachine.readstack[bmachine.readsp], p); in eval_string()
1705 if (bmachine.readsp == bmachine.readstack_sz - 1) { in eval_string()
1706 size_t newsz = bmachine.readstack_sz * 2; in eval_string()
1708 stack = reallocarray(bmachine.readstack, newsz, in eval_string()
1712 bmachine.readstack_sz = newsz; in eval_string()
1713 bmachine.readstack = stack; in eval_string()
1715 src_setstring(&bmachine.readstack[++bmachine.readsp], p); in eval_string()
1749 if (bmachine.readsp == 0) in eval()
1752 bmachine.readsp--; in eval()
1757 stack_print(stderr, &bmachine.stack, "* ", in eval()
1758 bmachine.obase); in eval()
1759 fprintf(stderr, "%zd =>\n", bmachine.readsp); in eval()
1768 stack_print(stderr, &bmachine.stack, "* ", in eval()
1769 bmachine.obase); in eval()
1770 fprintf(stderr, "%zd ==\n", bmachine.readsp); in eval()