Denys Vlasenko [Sat, 22 Dec 2018 20:52:30 +0000 (21:52 +0100)]
bc: avoid having to twiddle b->neg in zbc_num_p()
function old new delta
zbc_num_ulong_abs - 70 +70
zbc_num_p 424 413 -11
zbc_num_ulong 81 21 -60
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 70/-71) Total: -1 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 22 Dec 2018 20:45:18 +0000 (21:45 +0100)]
bc: do not disallow powers to N.0000 degree - it's even shorter code
function old new delta
zbc_num_p 440 424 -16
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 22 Dec 2018 20:37:46 +0000 (21:37 +0100)]
bc: shrink zbc_num_ulong()
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 22 Dec 2018 18:23:46 +0000 (19:23 +0100)]
bc: make long-running dc drop data it does not need (when it can)
function old new delta
zbc_vm_process 765 824 +59
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 22 Dec 2018 17:24:19 +0000 (18:24 +0100)]
bc: unbreak "z function" macro machinery
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 22 Dec 2018 17:04:08 +0000 (18:04 +0100)]
dc: unbreak interactive mode - was trying to get next tokens instead of executing
function old new delta
zbc_program_read - 268 +268
zdc_program_printStream - 146 +146
zbc_program_exec 4046 4182 +136
zdc_program_execStr 472 512 +40
zdc_parse_exprs_until_eof - 26 +26
zbc_vm_process 740 765 +25
zbc_lex_next 2225 2240 +15
zdc_parse_expr 569 535 -34
zbc_program_pushArray 147 - -147
zdc_program_asciify 370 - -370
------------------------------------------------------------------------------
(add/remove: 3/2 grow/shrink: 4/1 up/down: 656/-551) Total: 105 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 22 Dec 2018 15:40:38 +0000 (16:40 +0100)]
bc: move zbc_lex_next() out of zdc_parse_string() and zdc_parse_mem()
function old new delta
zdc_parse_mem 99 93 -6
zdc_parse_expr 586 569 -17
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-23) Total: -23 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 22 Dec 2018 13:18:47 +0000 (14:18 +0100)]
bc: shorten sanity-check code
function old new delta
zbc_vm_process 745 740 -5
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 22 Dec 2018 05:00:25 +0000 (06:00 +0100)]
bc: fold single-callsite functions into callers, commonalize code
function old new delta
zbc_vm_process 699 745 +46
zbc_parse_stmt_possibly_auto 1689 1682 -7
bc_parse_reset 113 - -113
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/1 up/down: 46/-120) Total: -74 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 22 Dec 2018 02:38:52 +0000 (03:38 +0100)]
bc: zcommon_parse_expr() has only one user, fold it in
function old new delta
zbc_program_exec 4021 4046 +25
zdc_parse_expr 589 586 -3
zcommon_parse_expr 28 - -28
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/1 up/down: 25/-31) Total: -6 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 22 Dec 2018 01:30:18 +0000 (02:30 +0100)]
bc: zcommon_parse_expr() lost its flags argument
function old new delta
zcommon_parse_expr - 28 +28
zdc_program_execStr 474 472 -2
zbc_program_exec 4023 4021 -2
common_parse_expr 29 - -29
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/2 up/down: 28/-33) Total: -5 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 22 Dec 2018 01:23:08 +0000 (02:23 +0100)]
bc: stop using BC_PARSE_NOCALL in dc code
function old new delta
zdc_program_execStr 465 474 +9
zbc_vm_process 701 699 -2
common_parse_expr 32 29 -3
zdc_parse_expr 615 586 -29
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/3 up/down: 9/-34) Total: -25 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 22 Dec 2018 00:34:10 +0000 (01:34 +0100)]
bc: unbreak read(), remove checks for nested read()
function old new delta
zbc_parse_pushSTR - 65 +65
common_parse_expr - 32 +32
bc_error_nested_read_call 10 - -10
bc_parse_expr_empty_ok 1977 1963 -14
zdc_parse_expr 635 615 -20
zcommon_parse_expr 32 - -32
zbc_program_exec 4064 4023 -41
bc_parse_pushSTR 65 - -65
------------------------------------------------------------------------------
(add/remove: 2/3 grow/shrink: 0/3 up/down: 97/-182) Total: -85 bytes
text data bss dec hex filename
981661 485 7296 989442 f1902 busybox_old
981540 485 7296 989321 f1889 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 21 Dec 2018 22:13:48 +0000 (23:13 +0100)]
bc: code shrink
function old new delta
bc_result_pop_and_push - 73 +73
zbc_program_exec 4068 4064 -4
bc_program_binOpRetire 46 32 -14
zdc_program_assignStr 146 126 -20
zdc_program_asciify 395 370 -25
bc_program_retire 35 7 -28
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/5 up/down: 73/-91) Total: -18 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 21 Dec 2018 22:01:26 +0000 (23:01 +0100)]
bc: rename BcInstPtr::idx and ::len
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 21 Dec 2018 21:43:53 +0000 (22:43 +0100)]
bc: remove unnecessary initializations
function old new delta
zdc_program_asciify 403 395 -8
zbc_program_print 691 683 -8
zbc_program_exec 4079 4068 -11
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-27) Total: -27 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 21 Dec 2018 21:36:04 +0000 (22:36 +0100)]
bc: use non-allocated BcNum's where appropriate
function old new delta
zbc_num_printNum 540 543 +3
zdc_program_asciify 407 403 -4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 3/-4) Total: -1 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 21 Dec 2018 21:16:17 +0000 (22:16 +0100)]
bc: optimize bc_vec_push() usage
function old new delta
bc_parse_pushNUM 87 80 -7
zbc_parse_stmt_possibly_auto 1697 1689 -8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-15) Total: -15 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 21 Dec 2018 19:29:34 +0000 (20:29 +0100)]
bc: fix for() to not leave data on stack
function old new delta
zbc_parse_stmt_possibly_auto 1665 1697 +32
zbc_vm_process 672 701 +29
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 61/0) Total: 61 bytes
text data bss dec hex filename
981656 485 7296 989437 f18fd busybox_old
981748 485 7296 989529 f1959 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 21 Dec 2018 15:22:26 +0000 (16:22 +0100)]
bc: fix infinite state growth for "yes 1 | bc" case
function old new delta
zbc_vm_process 585 672 +87
bc_func_init 50 86 +36
zbc_program_num 990 1022 +32
bc_program_str 17 47 +30
bc_program_current_func - 22 +22
bc_parse_pushNUM 66 87 +21
bc_func_free 27 43 +16
zbc_num_binary 145 147 +2
bc_program_reset 64 61 -3
bc_parse_pushSTR 73 65 -8
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 7/2 up/down: 246/-11) Total: 235 bytes
text data bss dec hex filename
981393 485 7296 989174 f17f6 busybox_old
981656 485 7296 989437 f18fd busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 20 Dec 2018 23:39:02 +0000 (00:39 +0100)]
bc: fix comment
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 20 Dec 2018 23:35:22 +0000 (00:35 +0100)]
bc: for(;;) fix from upstream
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 20 Dec 2018 23:10:26 +0000 (00:10 +0100)]
bc: shrink bc_program_add_fn()
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 20 Dec 2018 19:34:09 +0000 (20:34 +0100)]
bc: "dc only" config does not need G.prog.fn_map
function old new delta
bc_program_add_fn - 43 +43
bc_vm_init 655 675 +20
bc_program_addFunc 138 118 -20
zdc_parse_expr 658 635 -23
zdc_program_asciify 447 407 -40
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/3 up/down: 63/-83) Total: -20 bytes
text data bss dec hex filename
984739 489 7312 992540 f251c busybox_old
984712 489 7312 992513 f2501 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 20 Dec 2018 15:48:50 +0000 (16:48 +0100)]
bc: fix keyword matching to not think "ifz" is the "if" keyword
function old new delta
zbc_lex_next 2224 2225 +1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Thu, 20 Dec 2018 15:24:18 +0000 (16:24 +0100)]
bc: shrink "dc only" code by dropping unused structure members
function old new delta
zbc_program_num 979 981 +2
zbc_program_pushArray 147 145 -2
bc_program_pushVar 198 196 -2
bc_program_func 17 15 -2
dc_num_printChar 24 21 -3
bc_program_retire 35 32 -3
bc_program_binOpRetire 46 43 -3
zdc_program_printStream 153 148 -5
zbc_program_prep 91 86 -5
zbc_program_copyToVar 300 295 -5
zdc_program_modexp 721 715 -6
zbc_program_binOpPrep 311 305 -6
bc_program_addFunc 138 132 -6
bc_num_printNewline 51 45 -6
bc_num_printHex 67 61 -6
bc_num_printDigits 137 131 -6
zdc_program_assignStr 146 137 -9
bc_program_reset 64 55 -9
bc_func_free 27 5 -22
bc_parse_free 38 8 -30
bc_parse_create 92 47 -45
bc_func_init 50 5 -45
dc_main 691 645 -46
zdc_program_execStr 496 442 -54
zbc_program_print 677 623 -54
zbc_vm_process 204 137 -67
zbc_program_exec 4132 4057 -75
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/26 up/down: 2/-522) Total: -520 bytes
text data bss dec hex filename
969767 485 7296 977548 eea8c busybox_old
969210 485 7296 976991 ee85f busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 19:05:50 +0000 (20:05 +0100)]
bc: shorten bc_program_addFunc()
function old new delta
bc_func_init - 50 +50
bc_program_addFunc 201 138 -63
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/1 up/down: 50/-63) Total: -13 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 18:43:03 +0000 (19:43 +0100)]
bc: fix "dc only" and "bc only" configs
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 18:35:40 +0000 (19:35 +0100)]
bc: rename dc-specific functions, simplify zdc_program_execStr() a bit
function old new delta
zbc_program_execStr 496 - -496
zdc_program_execStr - 491 +491
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 18:10:40 +0000 (19:10 +0100)]
bc: rename zbc_parse_string->bc_parse_pushSTR, do not emit next opcode in it
function old new delta
bc_parse_pushSTR - 73 +73
zbc_parse_stmt_possibly_auto 1638 1640 +2
zbc_parse_string 89 - -89
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 1/0 up/down: 75/-89) Total: -14 bytes
text data bss dec hex filename
981377 485 7296 989158 f17e6 busybox_old
981363 485 7296 989144 f17d8 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 17:09:31 +0000 (18:09 +0100)]
bc: avoid bc_vec_item() calls in bc_vm_run()
function old new delta
bc_vm_run 124 112 -12
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 16:59:30 +0000 (17:59 +0100)]
bc: avoid bc_vec_item() calls in bc_array_copy()
function old new delta
zbc_program_copyToVar 311 300 -11
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 16:55:23 +0000 (17:55 +0100)]
bc: avoid successive bc_vec_item(&func->autos, i)
function old new delta
zbc_func_insert 97 100 +3
zbc_program_call 353 354 +1
zbc_program_exec 4085 4078 -7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 4/-7) Total: -3 bytes
text data bss dec hex filename
981403 485 7296 989184 f1800 busybox_old
981400 485 7296 989181 f17fd busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 16:15:04 +0000 (17:15 +0100)]
bc: remove unnecessary union use
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 16:09:01 +0000 (17:09 +0100)]
bc: "unsigned_n > 0" is shorter code than "unsigned_n >= 1"
function old new delta
zbc_program_print 680 677 -3
zbc_program_exec 4089 4085 -4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-7) Total: -7 bytes
text data bss dec hex filename
981404 485 7296 989185 f1801 busybox_old
981397 485 7296 989178 f17fa busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 14:13:14 +0000 (15:13 +0100)]
bc: open-code bc_parse_updateFunc() macro
This clearly shows one place which would need changing
for nested funcdefs to work.
function old new delta
bc_parse_reset 106 110 +4
zbc_vm_process 586 585 -1
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 4/-1) Total: 3 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 13:57:23 +0000 (14:57 +0100)]
bc: make bc_program_addFunc() return new idx, untangle &p->fidx interaction
In:
bc_program_addFunc(name, idx);
p->func = bc_program_func(p->fidx);
in some cases p->fidx was updated by _first_ statement - because passed idx
was pointing at it. This was very obscure.
function old new delta
zdc_parse_expr 653 658 +5
bc_program_addFunc 204 201 -3
zbc_vm_process 594 586 -8
bc_vm_init 663 655 -8
zbc_parse_name 482 472 -10
bc_parse_addFunc 25 - -25
zbc_program_asciify 473 447 -26
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/5 up/down: 5/-80) Total: -75 bytes
text data bss dec hex filename
981482 485 7296 989263 f184f busybox_old
981401 485 7296 989182 f17fe busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 13:02:59 +0000 (14:02 +0100)]
bc: "reload stack only after insts" change missed a few places
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 12:55:53 +0000 (13:55 +0100)]
bc: rename a few functions
function old new delta
bc_map_find_ge - 71 +71
bc_map_find_exact - 50 +50
bc_map_index 50 - -50
bc_map_find 71 - -71
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 0/0 up/down: 121/-121) Total: 0 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 12:19:44 +0000 (13:19 +0100)]
bc: remove redundant strdup+free in zbc_parse_call()
function old new delta
zbc_parse_name 527 482 -45
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-45) Total: -45 bytes
text data bss dec hex filename
981541 485 7296 989322 f188a busybox_old
981486 485 7296 989267 f1853 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 11:47:45 +0000 (12:47 +0100)]
bc: delete G.prog.strmb for real
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 19 Dec 2018 11:35:27 +0000 (12:35 +0100)]
bc: in execution loop, reload stack only after insts which can change it
Only these functions affect G.prog.exestack:
zbc_program_read
zbc_program_call
zbc_program_return
zbc_program_nquit
zbc_program_execStr
function old new delta
zbc_program_exec 3995 4093 +98
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 98/0) Total: 98 bytes
text data bss dec hex filename
981364 485 7296 989145 f17d9 busybox_old
981462 485 7296 989243 f183b busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 19:10:48 +0000 (20:10 +0100)]
bc: simplify bc_array_expand()
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 18:20:04 +0000 (19:20 +0100)]
bc: code shrink
function old new delta
zbc_program_print 684 680 -4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-4) Total: -4 bytes
text data bss dec hex filename
981368 485 7296 989149 f17dd busybox_old
981364 485 7296 989145 f17d9 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 18:17:11 +0000 (19:17 +0100)]
bc: code shrink
function old new delta
bc_program_name 67 63 -4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-4) Total: -4 bytes
text data bss dec hex filename
981372 485 7296 989153 f17e1 busybox_old
981368 485 7296 989149 f17dd busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 16:14:34 +0000 (17:14 +0100)]
bc: shrink bc_program_pushVar()
function old new delta
bc_program_pushVar 203 198 -5
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 16:00:35 +0000 (17:00 +0100)]
bc: get rid of G.prog.ob, G.prog.strmb
function old new delta
zbc_num_printNum 489 540 +51
zbc_program_asciify 426 473 +47
zbc_program_print 686 684 -2
zbc_program_exec 4008 3995 -13
zbc_program_assign 474 440 -34
bc_vm_init 739 663 -76
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/4 up/down: 98/-125) Total: -27 bytes
text data bss dec hex filename
981404 485 7296 989185 f1801 busybox_old
981377 485 7296 989158 f17e6 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 15:32:25 +0000 (16:32 +0100)]
bc: do not show -i in --help, it's a NOP (for now)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 15:24:07 +0000 (16:24 +0100)]
bc: style edit, no code changes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 14:49:42 +0000 (15:49 +0100)]
bc: shrink bc_program_index()
function old new delta
bc_program_index 66 47 -19
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-19) Total: -19 bytes
text data bss dec hex filename
981418 485 7296 989199 f180f busybox_old
981399 485 7296 989180 f17fc busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 13:37:16 +0000 (14:37 +0100)]
bc: fix "echo -n '#foo' | bc" not eating last 'o'
function old new delta
zdc_parse_expr 656 653 -3
bc_lex_lineComment 39 36 -3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-6) Total: -6 bytes
text data bss dec hex filename
981424 485 7296 989205 f1815 busybox_old
981418 485 7296 989199 f180f busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 13:11:35 +0000 (14:11 +0100)]
bc: shrink zdc_parse_expr()
function old new delta
zdc_parse_expr 656 653 -3
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 13:03:20 +0000 (14:03 +0100)]
bc: optimize zbc_lex_string()
function old new delta
zbc_lex_next 2359 2353 -6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 12:48:37 +0000 (13:48 +0100)]
bc: shrink zdc_lex_string()
This actually fixes a rather obscure bug. This was failing to find
end of the string:
$ echo -n '[foo]' | dc
dc: string end could not be found
function old new delta
zbc_lex_next 2230 2141 -89
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-89) Total: -89 bytes
text data bss dec hex filename
981461 485 7296 989242 f183a busybox_old
981372 485 7296 989153 f17e1 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 12:22:23 +0000 (13:22 +0100)]
bc: another for() loop simplified
function old new delta
zbc_program_print 688 686 -2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 12:15:55 +0000 (13:15 +0100)]
bc: simplify another for() loop
function old new delta
zbc_num_d 563 557 -6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 11:55:40 +0000 (12:55 +0100)]
bc: rewrite more for() loops
function old new delta
bc_program_name 75 67 -8
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 11:43:21 +0000 (12:43 +0100)]
bc: rewrite another for() loop
function old new delta
zbc_num_d 570 563 -7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 11:23:16 +0000 (12:23 +0100)]
bc: replace signed division / 10 by unsigned
function old new delta
zbc_num_a 443 441 -2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 17 Dec 2018 23:39:24 +0000 (00:39 +0100)]
bc: rewrite bc_num_compare() to be readable
function old new delta
bc_num_compare 59 51 -8
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 17 Dec 2018 20:14:05 +0000 (21:14 +0100)]
bc: fold zbc_num_stream() into its single caller
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 17 Dec 2018 20:05:09 +0000 (21:05 +0100)]
bc: get rid of BcNum BcProgram::ib,hexb
function old new delta
zbc_program_num 907 943 +36
zbc_program_assign 485 474 -11
bc_vm_init 757 739 -18
bc_num_ten 30 - -30
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/2 up/down: 36/-59) Total: -23 bytes
text data bss dec hex filename
981532 485 7296 989313 f1881 busybox_old
981509 485 7296 989290 f186a busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 02:16:48 +0000 (03:16 +0100)]
bc: fixes to bugs found while testing 64-bit build
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Tue, 18 Dec 2018 01:23:53 +0000 (02:23 +0100)]
bc: fixed from 64-bit compile
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 17 Dec 2018 17:07:18 +0000 (18:07 +0100)]
udhcpc: check that 4-byte options are indeed 4-byte, closes 11506
function old new delta
udhcp_get_option32 - 27 +27
udhcp_get_option 231 248 +17
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/0 up/down: 44/0) Total: 44 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 17 Dec 2018 15:54:37 +0000 (16:54 +0100)]
bc: remove "error after expression parsing" check
It is misplaced: caller knows better what can or cannot follow the expression.
Sometimes even caller's caller: "if (1) return a+b else..." -
parser of "return" does not know that "else" after it is valid,
parser of stmt does not know it either, - only parser of
"if" knows it!
The removed code balked on e.g. "{ print 1 }" statement.
This does not break any valid programs, but starts accepting some
invalid ones, e.g. "print 1 print 2" would work.
function old new delta
zcommon_parse_expr 40 32 -8
zbc_parse_name 509 494 -15
zbc_parse_stmt_possibly_auto 1678 1638 -40
bc_parse_expr_empty_ok 2025 1977 -48
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-111) Total: -111 bytes
text data bss dec hex filename
981599 485 7296 989380 f18c4 busybox_old
981488 485 7296 989269 f1855 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 17 Dec 2018 10:58:20 +0000 (11:58 +0100)]
bc: tighten up input NUL handling
function old new delta
static.dc_lex_tokens - 90 +90
bc_error_bad_character 17 31 +14
static.dc_lex_regs - 13 +13
bc_read_line 406 410 +4
bc_program_index 64 66 +2
dc_lex_regs 13 - -13
zdc_parse_expr 671 656 -15
zbc_lex_next 2318 2230 -88
dc_lex_tokens 91 - -91
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 3/2 up/down: 123/-207) Total: -84 bytes
text data bss dec hex filename
981667 485 7296 989448 f1908 busybox_old
981599 485 7296 989380 f18c4 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 17 Dec 2018 10:02:26 +0000 (11:02 +0100)]
bc: simplify zdc_parse_string()
function old new delta
bc_program_index 64 66 +2
zdc_parse_expr 671 656 -15
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 2/-15) Total: -13 bytes
text data bss dec hex filename
981667 485 7296 989448 f1908 busybox_old
981655 485 7296 989436 f18fc busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 17 Dec 2018 09:42:31 +0000 (10:42 +0100)]
bc: use common strings
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 17 Dec 2018 09:34:02 +0000 (10:34 +0100)]
bc: tidy up "z-function" macro machinery
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 17 Dec 2018 08:51:43 +0000 (09:51 +0100)]
bc: parse file arguments piecemeal (do not read entire file)
function old new delta
bc_read_line 336 406 +70
zbc_vm_execute_FILE - 67 +67
zbc_lex_next 2309 2318 +9
zbc_program_exec 4002 4008 +6
bc_program_index 66 64 -2
bc_vm_run 139 124 -15
zbc_vm_file 208 32 -176
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/3 up/down: 152/-193) Total: -41 bytes
text data bss dec hex filename
981736 485 7296 989517 f194d busybox_old
981667 485 7296 989448 f1908 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 17 Dec 2018 00:22:53 +0000 (01:22 +0100)]
bc: move fflush to the _actual_ execution loop
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 23:15:35 +0000 (00:15 +0100)]
bc: fix typo: defone -> define
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 23:07:48 +0000 (00:07 +0100)]
bc: factor out common code
function old new delta
zbc_parse_stmt_allow_NLINE_before - 59 +59
bc_parse_pushJUMP_ZERO - 27 +27
bc_parse_pushJUMP - 27 +27
rewrite_label_to_current - 19 +19
zbc_vm_process 594 599 +5
zbc_lex_next_and_skip_NLINE 22 - -22
zbc_parse_stmt_fail_if_bare_NLINE 28 - -28
zbc_parse_stmt_possibly_auto 1909 1678 -231
------------------------------------------------------------------------------
(add/remove: 4/2 grow/shrink: 1/1 up/down: 137/-281) Total: -144 bytes
text data bss dec hex filename
981879 485 7296 989660 f19dc busybox_old
981755 485 7296 989536 f1960 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 22:35:04 +0000 (23:35 +0100)]
bc: remove use of "BcInstPtr ip" object from loop parsing
function old new delta
zbc_parse_stmt_possibly_auto 1964 1909 -55
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-55) Total: -55 bytes
text data bss dec hex filename
981934 485 7296 989715 f1a13 busybox_old
981879 485 7296 989660 f19dc busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 22:24:25 +0000 (23:24 +0100)]
bc: store only index in p->exits, it's the only thing used there
function old new delta
zbc_parse_stmt_possibly_auto 1967 1964 -3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-3) Total: -3 bytes
text data bss dec hex filename
981937 485 7296 989718 f1a16 busybox_old
981934 485 7296 989715 f1a13 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 22:18:28 +0000 (23:18 +0100)]
bc: p->exits.func is never zero, do not check for that
function old new delta
zbc_parse_stmt_possibly_auto 1978 1967 -11
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-11) Total: -11 bytes
text data bss dec hex filename
981948 485 7296 989729 f1a21 busybox_old
981937 485 7296 989718 f1a16 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 22:02:22 +0000 (23:02 +0100)]
bc: remove redundant JUMP generation when parsing 'while'
function old new delta
zbc_parse_stmt_possibly_auto 2065 2025 -40
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-40) Total: -40 bytes
text data bss dec hex filename
982035 485 7296 989816 f1a78 busybox_old
981995 485 7296 989776 f1a50 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 21:44:51 +0000 (22:44 +0100)]
bc: simplify use of "ip" in loop parsing functions
function old new delta
zbc_parse_stmt_possibly_auto 2106 2065 -41
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-41) Total: -41 bytes
text data bss dec hex filename
982076 485 7296 989857 f1aa1 busybox_old
982035 485 7296 989816 f1a78 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 20:46:11 +0000 (21:46 +0100)]
bc: shring bc_lib[]
function old new delta
bc_lib 1586 1584 -2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 20:40:54 +0000 (21:40 +0100)]
bc: shrink zbc_parse_if() a bit more
function old new delta
zbc_parse_stmt_possibly_auto 2180 2106 -74
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-74) Total: -74 bytes
text data bss dec hex filename
982152 485 7296 989933 f1aed busybox_old
982078 485 7296 989859 f1aa3 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 20:29:08 +0000 (21:29 +0100)]
bc: stop using p->exits when parsing if()
function old new delta
zbc_parse_stmt_possibly_auto 2180 2138 -42
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 20:21:27 +0000 (21:21 +0100)]
bc: preparation to stop using p->exits when parsing if()
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 20:08:30 +0000 (21:08 +0100)]
bc: fix "print 1,2,3" parsing
function old new delta
zbc_parse_stmt_possibly_auto 2245 2180 -65
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-65) Total: -65 bytes
text data bss dec hex filename
982237 485 7296 990018 f1b42 busybox_old
982152 485 7296 989933 f1aed busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 19:46:15 +0000 (20:46 +0100)]
bc: disallow empty statement as function body
$ bc
define z() <cr>
<cr>
bc: no statement after 'define'
function old new delta
zbc_parse_stmt_possibly_auto 2239 2245 +6
zbc_vm_process 589 594 +5
zbc_parse_stmt_fail_if_bare_NLINE 25 28 +3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 14/0) Total: 14 bytes
text data bss dec hex filename
982216 485 7296 989997 f1b2d busybox_old
982237 485 7296 990018 f1b42 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 19:41:32 +0000 (20:41 +0100)]
bc: allow only one <newline> between if() and stmt
Attempt to have more than one causes this error message:
$ bc -q
if (1)<cr>
<cr>
bc: no statement after 'if'
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 19:32:58 +0000 (20:32 +0100)]
bc: simplify bc_parse_pushName(), do not free name in it - avoids one strdup
function old new delta
zbc_parse_name 511 509 -2
zdc_parse_register 50 43 -7
bc_parse_pushName 61 39 -22
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-31) Total: -31 bytes
text data bss dec hex filename
982183 485 7296 989964 f1b0c busybox_old
982152 485 7296 989933 f1aed busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 18:47:40 +0000 (19:47 +0100)]
bc: simplify zbc_parse_break_or_continue(), logic is the same
function old new delta
zbc_parse_stmt_possibly_auto 2259 2224 -35
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-35) Total: -35 bytes
text data bss dec hex filename
982218 485 7296 989999 f1b2f busybox_old
982183 485 7296 989964 f1b0c busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 18:21:57 +0000 (19:21 +0100)]
bc: fold zbc_parse_else() into its only caller
While at it, allow newline between "else" and its body
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 18:10:38 +0000 (19:10 +0100)]
bc: fold bc_parse_noElse() into its only caller
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 17:43:51 +0000 (18:43 +0100)]
bc: delete unused (write-only) BcParse::nbraces member
function old new delta
zbc_lex_next 2296 2309 +13
bc_parse_expr_empty_ok 2021 2025 +4
bc_vm_init 760 757 -3
bc_num_printNewline 54 51 -3
zbc_num_divmod 156 150 -6
bc_parse_reset 113 106 -7
zbc_lex_number 200 192 -8
bc_parse_number 83 66 -17
zdc_parse_expr 707 671 -36
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/7 up/down: 17/-80) Total: -63 bytes
text data bss dec hex filename
982275 485 7296 990056 f1b68 busybox_old
982212 485 7296 989993 f1b29 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 16:30:35 +0000 (17:30 +0100)]
bc: fixes for multi-line if/while/for
function old new delta
zbc_vm_process 561 589 +28
zbc_lex_next_and_skip_NLINE - 22 +22
zbc_parse_stmt_possibly_auto 2232 2253 +21
zbc_lex_skip_if_at_NLINE - 14 +14
zbc_lex_number 192 200 +8
zbc_num_divmod 150 156 +6
bc_vm_run 134 139 +5
bc_vm_init 757 760 +3
bc_num_printNewline 51 54 +3
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 7/0 up/down: 110/0) Total: 110 bytes
text data bss dec hex filename
982138 485 7296 989919 f1adf busybox_old
982275 485 7296 990056 f1b68 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 16:06:07 +0000 (17:06 +0100)]
bc: fix handling of 'return' not in functions, and 'define f()<newline>{...}'
function old new delta
zbc_vm_process 561 597 +36
zbc_parse_stmt_possibly_auto 2232 2253 +21
zbc_lex_number 192 200 +8
zbc_num_divmod 150 156 +6
bc_vm_run 134 139 +5
bc_vm_init 757 760 +3
bc_num_printNewline 51 54 +3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 7/0 up/down: 82/0) Total: 82 bytes
text data bss dec hex filename
982138 485 7296 989919 f1adf busybox_old
982247 485 7296 990028 f1b4c busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 16 Dec 2018 15:03:03 +0000 (16:03 +0100)]
bc: partially rewrite parser, tests pass, ^C might be broken now
The entire control construct (if/while/for/funcdef) or {} block is
"eaten" by the corresponding parsing function, instead of maintaining
special "block flag stack" with magic bits in it, and returning to main
input loop after every inner statement (every input line, essentially).
This required moving line input deep into lexer - now zbc_lex_next()
triggers more reading when needed.
"block flag stack" is gone.
Correctness of ^C handling wasn't checked, might need fixing now.
if/else syntax is changed to match GNU bc: "else" can not be on
the next line (the rationale is that "if (1) 2" statement in interactive
mode should execute and print 2 instead of waiting for possible
"else ..." line).
This change fixes the following examples:
if (1) if (1) 1 else 2 else 3
if (0) 1 else if (1) 2
define w() { auto z; return 1; }
function old new delta
zbc_parse_stmt_possibly_auto - 2232 +2232
zbc_vm_process 89 561 +472
zbc_lex_next 1982 2296 +314
bc_vm_init 749 757 +8
bc_parse_expr_empty_ok 2016 2021 +5
bc_num_printNewline 54 51 -3
zbc_program_read 289 280 -9
bc_parse_free 47 38 -9
bc_parse_reset 126 113 -13
bc_parse_create 108 92 -16
bc_parse_push_block_flag 47 - -47
bc_parse_noElse 48 - -48
zbc_parse_text_init 113 59 -54
zbc_parse_body 121 - -121
zbc_parse_else 125 - -125
zbc_parse_endBody 254 - -254
bc_vm_run 421 134 -287
zbc_parse_auto 290 - -290
zcommon_parse 476 - -476
zbc_parse_stmt 1682 7 -1675
------------------------------------------------------------------------------
(add/remove: 1/7 grow/shrink: 4/8 up/down: 3031/-3427) Total: -396 bytes
text data bss dec hex filename
982586 485 7296 990367 f1c9f busybox_old
982138 485 7296 989919 f1adf busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 15 Dec 2018 19:06:59 +0000 (20:06 +0100)]
bc: lexer debugging, added some failing test cases
function old new delta
bc_parse_push_block_flag - 47 +47
zbc_parse_body 107 121 +14
zbc_num_divmod 156 150 -6
zbc_lex_number 200 192 -8
zbc_parse_endBody 264 254 -10
bc_parse_startBody 47 - -47
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 1/3 up/down: 61/-71) Total: -10 bytes
text data bss dec hex filename
982596 485 7296 990377 f1ca9 busybox_old
982586 485 7296 990367 f1c9f busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 15 Dec 2018 14:07:14 +0000 (15:07 +0100)]
bc: simplify BC_INST_JUMP[_ZERO] handling
function old new delta
zbc_program_exec 4063 4050 -13
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 14 Dec 2018 23:39:17 +0000 (00:39 +0100)]
bc: rewrite "block flag stack" using simple realloc'ed byte array
Each access to current top flag took a function call + fetch of three data items
+ multiplication and some additions + and then following the resulting pointer.
After the change, it is: fetch pointer value + one byte access via this pointer.
function old new delta
bc_parse_startBody 45 49 +4
bc_parse_free 46 47 +1
zbc_parse_auto 188 185 -3
bc_parse_push 14 11 -3
bc_vm_run 398 394 -4
zbc_vm_process 63 58 -5
zdc_parse_expr 638 632 -6
zbc_parse_body 101 95 -6
bc_parse_addFunc 31 25 -6
bc_parse_noElse 56 48 -8
zcommon_parse 341 331 -10
zbc_parse_else 134 123 -11
bc_parse_create 124 108 -16
zbc_parse_text_init 123 104 -19
zbc_parse_endBody 292 252 -40
zbc_parse_stmt 1479 1420 -59
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/14 up/down: 5/-196) Total: -191 bytes
text data bss dec hex filename
979880 485 7296 987661 f120d busybox_old
979689 485 7296 987470 f114e busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 14 Dec 2018 22:41:33 +0000 (23:41 +0100)]
bc: drop zbc_parse_endBody() bool parameter, move its code to caller which uses it
function old new delta
zbc_parse_stmt 1456 1479 +23
zbc_parse_body 103 101 -2
zbc_parse_endBody 326 292 -34
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 23/-36) Total: -13 bytes
text data bss dec hex filename
979893 485 7296 987674 f121a busybox_old
979880 485 7296 987661 f120d busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 14 Dec 2018 22:32:51 +0000 (23:32 +0100)]
bc: shorten one message, make defines more readable
text data bss dec hex filename
979916 485 7296 987697 f1231 busybox_old
979893 485 7296 987674 f121a busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 14 Dec 2018 22:12:48 +0000 (23:12 +0100)]
bc: pull zbc_lex_next() call out of zbc_parse_operator() into one caller that uses it
function old new delta
bc_parse_operator - 144 +144
bc_parse_expr_empty_ok 1788 1792 +4
zbc_parse_operator 170 - -170
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 1/0 up/down: 148/-170) Total: -22 bytes
text data bss dec hex filename
979938 485 7296 987719 f1247 busybox_old
979916 485 7296 987697 f1231 busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>