This is a series of patches for adding support for the Branch History Rolling Buffer (BHRB) facility. This was added to the Power ISA starting with version 2.07. Changes were subsequently made in version 3.1 to limit BHRB recording to instructions run in problem state only and to add a control bit to disable recording (MMCRA[BHRBRD]).
Version 3 of this series disables branch recording on P8 and P9 due to a drop in performance caused by recording branches outside of problem state. Glenn Miles (4): target/ppc: Add new hflags to support BHRB target/ppc: Add recording of taken branches to BHRB target/ppc: Add clrbhrb and mfbhrbe instructions target/ppc: Add migration support for BHRB target/ppc/cpu.h | 24 ++++++ target/ppc/cpu_init.c | 39 +++++++++- target/ppc/helper.h | 5 ++ target/ppc/helper_regs.c | 35 +++++++++ target/ppc/insn32.decode | 8 ++ target/ppc/machine.c | 23 +++++- target/ppc/misc_helper.c | 46 +++++++++++ target/ppc/power8-pmu-regs.c.inc | 5 ++ target/ppc/power8-pmu.c | 48 +++++++++++- target/ppc/power8-pmu.h | 11 ++- target/ppc/spr_common.h | 1 + target/ppc/translate.c | 101 +++++++++++++++++++++++-- target/ppc/translate/bhrb-impl.c.inc | 43 +++++++++++ target/ppc/translate/branch-impl.c.inc | 2 +- 14 files changed, 374 insertions(+), 17 deletions(-) create mode 100644 target/ppc/translate/bhrb-impl.c.inc -- 2.31.1