x86: avoid i386_dis_printf()'s staging area for a fair part of output
authorJan Beulich <jbeulich@suse.com>
Mon, 12 Sep 2022 06:19:55 +0000 (08:19 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 12 Sep 2022 06:19:55 +0000 (08:19 +0200)
commitac3fe48fd61a92d03c66152038df4fc184bf5fcd
treecacfe8961769d228a2002e0b602c60277f3e608f
parentecb915b4de7569027ad78bd3e24873bb92cb8e32
x86: avoid i386_dis_printf()'s staging area for a fair part of output

While PR binutils/29483 has now been addressed differently, this
originally proposed change still has its merits: Avoiding vsnprintf()
for typically far more than half of the overall output results in a 2-3%
performance gain in my testing (with debug builds of objdump, libbfd,
and libopcodes).

With that part of output no longer using staging_area[], the array also
doesn't need to be quite as large anymore (the largest presently used
size is 27, from "64-bit address is disabled").

While limiting the scope of "res" it became apparent that
- no caller cares about the function's return value,
- the comment about the return value was wrong,
- a particular positive return value would have been meaningless to the
  caller.
Therefore convert the function to return "void" at the same time.
opcodes/i386-dis.c