summaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
authorDenys Vlasenko2018-12-11 19:29:35 +0100
committerDenys Vlasenko2018-12-11 19:33:09 +0100
commit09d8df84ee908b940a31822c3480f36f817e4f09 (patch)
tree0d0f74ee0ad31cea2f31090161ac22b457650f00 /init
parent7f4daa4f5842b26c5f3e233819e583573eeebaf6 (diff)
downloadbusybox-09d8df84ee908b940a31822c3480f36f817e4f09.zip
busybox-09d8df84ee908b940a31822c3480f36f817e4f09.tar.gz
bc: do not use "(cond ? f1 : f2)(params)" idiom, it messes up static function optimizations
With direct calls, GCC no longer thinks that we take addresses of the functions, and can use "more optimal" internal ABI for _all_ calls to these functions, not only at this callsite. On i486, regparm is used, and: function old new delta zbc_num_inv 56 57 +1 zbc_num_k 852 851 -1 zbc_program_modexp 558 556 -2 zbc_num_d 541 539 -2 bc_num_ulong2num 59 57 -2 zbc_program_num 840 836 -4 bc_num_zero 11 7 -4 bc_num_one 28 24 -4 bc_program_exec 3928 3918 -10 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/8 up/down: 1/-29) Total: -28 bytes text data bss dec hex filename 982237 485 7296 990018 f1b42 busybox_old 982209 485 7296 989990 f1b26 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'init')
0 files changed, 0 insertions, 0 deletions