tree db0fbef7625dfc5f44ca804ff654a713bb9f2e1b
parent b35f2c18a022f3f2f06869c306a788d9ff361348
author Matt Delco <delco@chromium.org> 1581577505 -0800
committer Treehugger Robot <treehugger-gerrit@google.com> 1581602505 +0000

Avoid bextr in dump_constants

When dump_constants is compiled for newer AMD processors it can end up using a
bextr instruction that may not be present on other makes/models of processors.

The act of calling std::cout on a numeric type ends up in
num_put<,>::do_put() which does:

const unsigned __nbuf = (numeric_limits<unsigned long>::digits / 3)
                          + ((numeric_limits<unsigned long>::digits % 3) != 0)
                          + ((__iob.flags() & ios_base::showbase) != 0) + 1;

ios_base::showbase is 0x0200, so the bit test against showbase results
in:

bextr  $0x109,0x8(%rdx),%r12d

which says to extract 1 bit from bit offset 9.  A workaround is to
use to_string() to avoid passing numeric types to cout. This alternative
is straightforward and the implementation is simpler (to_string() does
not have formatting nor locale options), though it doesn't prevent
the problem from occurring again in the future (e.g., when the source or
compiler changes).

Bug: None
Test: `make tests`. Ran dump_constants on arm32, arm64, and x64 in
CrOS build environment.

Change-Id: Ic16574141f6c935bff958e5d1f27c81994a993ab
