* [Qemu-devel] [PULL 00/43] Add hppa-softmmu
@ 2018-01-22 3:41 Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 01/43] target/hppa: Skeleton support for hppa-softmmu Richard Henderson
` (46 more replies)
0 siblings, 47 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
This has some improvements to the patch set posted on Dec 28.
* Change cpu init as requested by Igor Mammedov.
* Add SMP support
* Add firmware image
* Implement qemu-specific pause and system reset insns.
r~
The following changes since commit b384cd95eb9c6f73ad84ed1bb0717a26e29cc78f:
Merge remote-tracking branch 'remotes/ehabkost/tags/machine-next-pull-request' into staging (2018-01-19 16:35:25 +0000)
are available in the Git repository at:
git://github.com/rth7680/qemu.git tags/pull-hppa-20180121
for you to fetch changes up to 350e2a714ac8db559b255f9e8fe91c574f45df53:
hw/hppa: Add MAINTAINERS entry (2018-01-21 14:05:03 -0800)
----------------------------------------------------------------
Add hppa-softmmu
----------------------------------------------------------------
Helge Deller (5):
target/hppa: Skeleton support for hppa-softmmu
target/hppa: Implement halt and reset instructions
target/hppa: Fix comment
target/hppa: Implement LDSID for system mode
hw/hppa: Implement DINO system board
Richard Henderson (38):
target/hppa: Define the rest of the PSW
target/hppa: Disable gateway page emulation for system mode
target/hppa: Define hardware exception types
target/hppa: Split address size from register size
target/hppa: Implement mmu_idx from IA privilege level
target/hppa: Implement the system mask instructions
target/hppa: Add space registers
target/hppa: Add control registers
target/hppa: Adjust insn mask for mfctl,w
target/hppa: Implement rfi
target/hppa: Fill in hppa_cpu_do_interrupt/hppa_cpu_exec_interrupt
target/hppa: Implement unaligned access trap
target/hppa: Use space registers in data operations
target/hppa: Avoid privilege level decrease during branches
target/hppa: Implement IASQ
target/hppa: Implement tlb_fill
target/hppa: Implement external interrupts
target/hppa: Implement the interval timer
target/hppa: Log unimplemented instructions
target/hppa: Implement I*TLBA and I*TLBP insns
target/hppa: Implement P*TLB and P*TLBE insns
target/hppa: Implement LDWA
target/hppa: Implement LPA
target/hppa: Implement LCI
target/hppa: Implement SYNCDMA insn
target/hppa: Optimize for flat addressing space
target/hppa: Add system registers to gdbstub
target/hppa: Add migration for the cpu
target/hppa: Implement B,GATE insn
target/hppa: Only use EXCP_DTLB_MISS
qom: Add MMU_DEBUG_LOAD
target/hppa: Use MMU_DEBUG_LOAD when reloading for CR[IIR]
target/hppa: Increase number of temp regs
target/hppa: Implement a pause instruction
target/hppa: Implement STWA
target/hppa: Enable MTTCG
pc-bios: Add hppa-firmware.img and git submodule
hw/hppa: Add MAINTAINERS entry
Makefile | 3 +-
Makefile.objs | 1 +
hw/hppa/hppa_hardware.h | 65 ++
hw/hppa/hppa_sys.h | 24 +
include/qom/cpu.h | 3 +-
include/sysemu/arch_init.h | 1 +
linux-user/hppa/target_cpu.h | 2 +-
target/hppa/cpu.h | 282 +++++-
target/hppa/helper.h | 44 +-
arch_init.c | 2 +
hw/hppa/dino.c | 519 ++++++++++
hw/hppa/machine.c | 282 ++++++
hw/hppa/pci.c | 90 ++
linux-user/main.c | 28 +-
linux-user/signal.c | 4 +-
target/hppa/cpu.c | 54 +-
target/hppa/gdbstub.c | 187 +++-
target/hppa/helper.c | 120 +--
target/hppa/int_helper.c | 263 +++++
target/hppa/machine.c | 181 ++++
target/hppa/mem_helper.c | 340 +++++++
target/hppa/op_helper.c | 132 ++-
target/hppa/translate.c | 2061 ++++++++++++++++++++++++++++----------
.gitmodules | 3 +
MAINTAINERS | 1 +
configure | 1 +
default-configs/hppa-softmmu.mak | 14 +
hw/hppa/Makefile.objs | 1 +
hw/hppa/trace-events | 4 +
pc-bios/hppa-firmware.img | Bin 0 -> 461352 bytes
roms/seabios-hppa | 1 +
target/hppa/Makefile.objs | 4 +-
32 files changed, 4028 insertions(+), 689 deletions(-)
create mode 100644 hw/hppa/hppa_hardware.h
create mode 100644 hw/hppa/hppa_sys.h
create mode 100644 hw/hppa/dino.c
create mode 100644 hw/hppa/machine.c
create mode 100644 hw/hppa/pci.c
create mode 100644 target/hppa/int_helper.c
create mode 100644 target/hppa/machine.c
create mode 100644 target/hppa/mem_helper.c
create mode 100644 default-configs/hppa-softmmu.mak
create mode 100644 hw/hppa/Makefile.objs
create mode 100644 hw/hppa/trace-events
create mode 100755 pc-bios/hppa-firmware.img
create mode 160000 roms/seabios-hppa
^ permalink raw reply [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 01/43] target/hppa: Skeleton support for hppa-softmmu
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 02/43] target/hppa: Define the rest of the PSW Richard Henderson
` (45 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Helge Deller
From: Helge Deller <deller@gmx.de>
With the addition of default-configs/hppa-softmmu.mak, this
will compile. It is not enabled with this patch, however.
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
include/sysemu/arch_init.h | 1 +
target/hppa/cpu.h | 1 +
arch_init.c | 2 ++
hw/hppa/machine.c | 39 +++++++++++++++++++++++++++++++++
target/hppa/cpu.c | 5 +++++
target/hppa/helper.c | 10 ---------
target/hppa/mem_helper.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++
target/hppa/op_helper.c | 13 +++++++++--
hw/hppa/Makefile.objs | 1 +
target/hppa/Makefile.objs | 2 +-
10 files changed, 115 insertions(+), 13 deletions(-)
create mode 100644 hw/hppa/machine.c
create mode 100644 target/hppa/mem_helper.c
create mode 100644 hw/hppa/Makefile.objs
diff --git a/include/sysemu/arch_init.h b/include/sysemu/arch_init.h
index 8751c468ed..f999bfd3be 100644
--- a/include/sysemu/arch_init.h
+++ b/include/sysemu/arch_init.h
@@ -24,6 +24,7 @@ enum {
QEMU_ARCH_MOXIE = (1 << 15),
QEMU_ARCH_TRICORE = (1 << 16),
QEMU_ARCH_NIOS2 = (1 << 17),
+ QEMU_ARCH_HPPA = (1 << 18),
};
extern const uint32_t arch_type;
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index 8d14077763..7fad92144c 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -133,6 +133,7 @@ void cpu_hppa_loaded_fr0(CPUHPPAState *env);
int cpu_hppa_signal_handler(int host_signum, void *pinfo, void *puc);
int hppa_cpu_handle_mmu_fault(CPUState *cpu, vaddr address, int rw, int midx);
+hwaddr hppa_cpu_get_phys_page_debug(CPUState *cs, vaddr addr);
int hppa_cpu_gdb_read_register(CPUState *cpu, uint8_t *buf, int reg);
int hppa_cpu_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg);
void hppa_cpu_do_interrupt(CPUState *cpu);
diff --git a/arch_init.c b/arch_init.c
index a0b8ed6167..4c36f2b076 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -53,6 +53,8 @@ int graphic_depth = 32;
#define QEMU_ARCH QEMU_ARCH_CRIS
#elif defined(TARGET_I386)
#define QEMU_ARCH QEMU_ARCH_I386
+#elif defined(TARGET_HPPA)
+#define QEMU_ARCH QEMU_ARCH_HPPA
#elif defined(TARGET_M68K)
#define QEMU_ARCH QEMU_ARCH_M68K
#elif defined(TARGET_LM32)
diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
new file mode 100644
index 0000000000..4625e591ea
--- /dev/null
+++ b/hw/hppa/machine.c
@@ -0,0 +1,39 @@
+/*
+ * QEMU HPPA hardware system emulator.
+ * Copyright 2017 Helge Deller <deller@gmx.de>
+ *
+ */
+
+#include "qemu/osdep.h"
+#include "qemu-common.h"
+#include "cpu.h"
+#include "hw/hw.h"
+#include "elf.h"
+#include "hw/loader.h"
+#include "hw/boards.h"
+#include "qemu/error-report.h"
+#include "sysemu/sysemu.h"
+#include "hw/timer/mc146818rtc.h"
+#include "hw/ide.h"
+#include "hw/timer/i8254.h"
+#include "hw/char/serial.h"
+#include "qemu/cutils.h"
+#include "qapi/error.h"
+
+
+static void machine_hppa_init(MachineState *machine)
+{
+}
+
+static void machine_hppa_machine_init(MachineClass *mc)
+{
+ mc->desc = "HPPA generic machine";
+ mc->init = machine_hppa_init;
+ mc->block_default_type = IF_SCSI;
+ mc->max_cpus = 1;
+ mc->is_default = 1;
+ mc->default_ram_size = 2048UL*1024*1024; // 2GB
+ mc->default_boot_order = "cd";
+}
+
+DEFINE_MACHINE("hppa", machine_hppa_machine_init)
diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
index 9e7b0d4ccb..f6d92de972 100644
--- a/target/hppa/cpu.c
+++ b/target/hppa/cpu.c
@@ -132,7 +132,12 @@ static void hppa_cpu_class_init(ObjectClass *oc, void *data)
cc->synchronize_from_tb = hppa_cpu_synchronize_from_tb;
cc->gdb_read_register = hppa_cpu_gdb_read_register;
cc->gdb_write_register = hppa_cpu_gdb_write_register;
+#ifdef CONFIG_USER_ONLY
cc->handle_mmu_fault = hppa_cpu_handle_mmu_fault;
+#else
+ cc->get_phys_page_debug = hppa_cpu_get_phys_page_debug;
+#endif
+
cc->disas_set_info = hppa_cpu_disas_set_info;
cc->tcg_initialize = hppa_translate_init;
diff --git a/target/hppa/helper.c b/target/hppa/helper.c
index ba04a9a52b..d6d6f06cb0 100644
--- a/target/hppa/helper.c
+++ b/target/hppa/helper.c
@@ -65,16 +65,6 @@ void cpu_hppa_put_psw(CPUHPPAState *env, target_ulong psw)
env->psw_cb = cb;
}
-int hppa_cpu_handle_mmu_fault(CPUState *cs, vaddr address,
- int rw, int mmu_idx)
-{
- HPPACPU *cpu = HPPA_CPU(cs);
-
- cs->exception_index = EXCP_SIGSEGV;
- cpu->env.ior = address;
- return 1;
-}
-
void hppa_cpu_do_interrupt(CPUState *cs)
{
HPPACPU *cpu = HPPA_CPU(cs);
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
new file mode 100644
index 0000000000..e0802bc935
--- /dev/null
+++ b/target/hppa/mem_helper.c
@@ -0,0 +1,54 @@
+/*
+ * HPPA memory access helper routines
+ *
+ * Copyright (c) 2017 Helge Deller
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "qemu/osdep.h"
+#include "cpu.h"
+#include "exec/exec-all.h"
+#include "exec/helper-proto.h"
+#include "qom/cpu.h"
+
+#ifdef CONFIG_USER_ONLY
+int hppa_cpu_handle_mmu_fault(CPUState *cs, vaddr address,
+ int rw, int mmu_idx)
+{
+ HPPACPU *cpu = HPPA_CPU(cs);
+
+ cs->exception_index = EXCP_SIGSEGV;
+ cpu->env.ior = address;
+ return 1;
+}
+#else
+hwaddr hppa_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
+{
+ /* Stub */
+ return addr;
+}
+
+void tlb_fill(CPUState *cs, target_ulong addr, MMUAccessType type,
+ int mmu_idx, uintptr_t retaddr)
+{
+ /* Stub */
+ int prot = PAGE_READ | PAGE_WRITE | PAGE_EXEC;
+ hwaddr phys = addr;
+
+ /* Success! Store the translation into the QEMU TLB. */
+ tlb_set_page(cs, addr & TARGET_PAGE_MASK, phys & TARGET_PAGE_MASK,
+ prot, mmu_idx, TARGET_PAGE_SIZE);
+}
+#endif /* CONFIG_USER_ONLY */
diff --git a/target/hppa/op_helper.c b/target/hppa/op_helper.c
index 3104404e8d..9c7603588f 100644
--- a/target/hppa/op_helper.c
+++ b/target/hppa/op_helper.c
@@ -58,9 +58,9 @@ void HELPER(tcond)(CPUHPPAState *env, target_ulong cond)
static void atomic_store_3(CPUHPPAState *env, target_ulong addr, uint32_t val,
uint32_t mask, uintptr_t ra)
{
+#ifdef CONFIG_USER_ONLY
uint32_t old, new, cmp;
-#ifdef CONFIG_USER_ONLY
uint32_t *haddr = g2h(addr - 1);
old = *haddr;
while (1) {
@@ -72,7 +72,8 @@ static void atomic_store_3(CPUHPPAState *env, target_ulong addr, uint32_t val,
old = cmp;
}
#else
-#error "Not implemented."
+ /* FIXME -- we can do better. */
+ cpu_loop_exit_atomic(ENV_GET_CPU(env), ra);
#endif
}
@@ -158,12 +159,20 @@ void HELPER(stby_e_parallel)(CPUHPPAState *env, target_ulong addr,
target_ulong HELPER(probe_r)(target_ulong addr)
{
+#ifdef CONFIG_USER_ONLY
return page_check_range(addr, 1, PAGE_READ);
+#else
+ return 1; /* FIXME */
+#endif
}
target_ulong HELPER(probe_w)(target_ulong addr)
{
+#ifdef CONFIG_USER_ONLY
return page_check_range(addr, 1, PAGE_WRITE);
+#else
+ return 1; /* FIXME */
+#endif
}
void HELPER(loaded_fr0)(CPUHPPAState *env)
diff --git a/hw/hppa/Makefile.objs b/hw/hppa/Makefile.objs
new file mode 100644
index 0000000000..46b2ae18de
--- /dev/null
+++ b/hw/hppa/Makefile.objs
@@ -0,0 +1 @@
+obj-y += machine.o
diff --git a/target/hppa/Makefile.objs b/target/hppa/Makefile.objs
index 263446fa0b..d89285307b 100644
--- a/target/hppa/Makefile.objs
+++ b/target/hppa/Makefile.objs
@@ -1 +1 @@
-obj-y += translate.o helper.o cpu.o op_helper.o gdbstub.o
+obj-y += translate.o helper.o cpu.o op_helper.o gdbstub.o mem_helper.o
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 02/43] target/hppa: Define the rest of the PSW
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 01/43] target/hppa: Skeleton support for hppa-softmmu Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 03/43] target/hppa: Disable gateway page emulation for system mode Richard Henderson
` (44 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
We don't actually do anything with most of the bits yet,
but at least they have names and we have somewhere to
store them.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 47 ++++++++++++++++++++++++++++++++++++++++++++++
target/hppa/helper.c | 53 ++++++++++++++++++++++++++++++++++++++--------------
2 files changed, 86 insertions(+), 14 deletions(-)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index 7fad92144c..ea7e495408 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -46,6 +46,52 @@
#define EXCP_SIGILL 4
#define EXCP_SIGFPE 5
+/* Taken from Linux kernel: arch/parisc/include/asm/psw.h */
+#define PSW_I 0x00000001
+#define PSW_D 0x00000002
+#define PSW_P 0x00000004
+#define PSW_Q 0x00000008
+#define PSW_R 0x00000010
+#define PSW_F 0x00000020
+#define PSW_G 0x00000040 /* PA1.x only */
+#define PSW_O 0x00000080 /* PA2.0 only */
+#define PSW_CB 0x0000ff00
+#define PSW_M 0x00010000
+#define PSW_V 0x00020000
+#define PSW_C 0x00040000
+#define PSW_B 0x00080000
+#define PSW_X 0x00100000
+#define PSW_N 0x00200000
+#define PSW_L 0x00400000
+#define PSW_H 0x00800000
+#define PSW_T 0x01000000
+#define PSW_S 0x02000000
+#define PSW_E 0x04000000
+#ifdef TARGET_HPPA64
+#define PSW_W 0x08000000 /* PA2.0 only */
+#else
+#define PSW_W 0
+#endif
+#define PSW_Z 0x40000000 /* PA1.x only */
+#define PSW_Y 0x80000000 /* PA1.x only */
+
+#define PSW_SM (PSW_W | PSW_E | PSW_O | PSW_G | PSW_F \
+ | PSW_R | PSW_Q | PSW_P | PSW_D | PSW_I)
+
+/* ssm/rsm instructions number PSW_W and PSW_E differently */
+#define PSW_SM_I PSW_I /* Enable External Interrupts */
+#define PSW_SM_D PSW_D
+#define PSW_SM_P PSW_P
+#define PSW_SM_Q PSW_Q /* Enable Interrupt State Collection */
+#define PSW_SM_R PSW_R /* Enable Recover Counter Trap */
+#ifdef TARGET_HPPA64
+#define PSW_SM_E 0x100
+#define PSW_SM_W 0x200 /* PA2.0 only : Enable Wide Mode */
+#else
+#define PSW_SM_E 0
+#define PSW_SM_W 0
+#endif
+
typedef struct CPUHPPAState CPUHPPAState;
struct CPUHPPAState {
@@ -56,6 +102,7 @@ struct CPUHPPAState {
target_ulong cr26;
target_ulong cr27;
+ target_long psw; /* All psw bits except the following: */
target_ulong psw_n; /* boolean */
target_long psw_v; /* in most significant bit */
diff --git a/target/hppa/helper.c b/target/hppa/helper.c
index d6d6f06cb0..4231ef3bff 100644
--- a/target/hppa/helper.c
+++ b/target/hppa/helper.c
@@ -39,10 +39,11 @@ target_ulong cpu_hppa_get_psw(CPUHPPAState *env)
/* .........................bcdefgh */
psw |= (psw >> 12) & 0xf;
psw |= env->psw_cb_msb << 7;
- psw <<= 8;
+ psw = (psw & 0xff) << 8;
- psw |= env->psw_n << 21;
- psw |= (env->psw_v < 0) << 17;
+ psw |= env->psw_n * PSW_N;
+ psw |= (env->psw_v < 0) * PSW_V;
+ psw |= env->psw;
return psw;
}
@@ -51,8 +52,9 @@ void cpu_hppa_put_psw(CPUHPPAState *env, target_ulong psw)
{
target_ulong cb = 0;
- env->psw_n = (psw >> 21) & 1;
- env->psw_v = -((psw >> 17) & 1);
+ env->psw = psw & ~(PSW_N | PSW_V | PSW_CB);
+ env->psw_n = (psw / PSW_N) & 1;
+ env->psw_v = -((psw / PSW_V) & 1);
env->psw_cb_msb = (psw >> 15) & 1;
cb |= ((psw >> 14) & 1) << 28;
@@ -106,22 +108,45 @@ void hppa_cpu_dump_state(CPUState *cs, FILE *f,
{
HPPACPU *cpu = HPPA_CPU(cs);
CPUHPPAState *env = &cpu->env;
+ target_ulong psw = cpu_hppa_get_psw(env);
+ target_ulong psw_cb;
+ char psw_c[20];
int i;
- cpu_fprintf(f, "IA_F " TARGET_FMT_lx
- " IA_B " TARGET_FMT_lx
- " PSW " TARGET_FMT_lx
- " [N:" TARGET_FMT_ld " V:%d"
- " CB:" TARGET_FMT_lx "]\n ",
- env->iaoq_f, env->iaoq_b, cpu_hppa_get_psw(env),
- env->psw_n, env->psw_v < 0,
- ((env->psw_cb >> 4) & 0x01111111) | (env->psw_cb_msb << 28));
- for (i = 1; i < 32; i++) {
+ cpu_fprintf(f, "IA_F " TARGET_FMT_lx " IA_B " TARGET_FMT_lx "\n",
+ env->iaoq_f, env->iaoq_b);
+
+ psw_c[0] = (psw & PSW_W ? 'W' : '-');
+ psw_c[1] = (psw & PSW_E ? 'E' : '-');
+ psw_c[2] = (psw & PSW_S ? 'S' : '-');
+ psw_c[3] = (psw & PSW_T ? 'T' : '-');
+ psw_c[4] = (psw & PSW_H ? 'H' : '-');
+ psw_c[5] = (psw & PSW_L ? 'L' : '-');
+ psw_c[6] = (psw & PSW_N ? 'N' : '-');
+ psw_c[7] = (psw & PSW_X ? 'X' : '-');
+ psw_c[8] = (psw & PSW_B ? 'B' : '-');
+ psw_c[9] = (psw & PSW_C ? 'C' : '-');
+ psw_c[10] = (psw & PSW_V ? 'V' : '-');
+ psw_c[11] = (psw & PSW_M ? 'M' : '-');
+ psw_c[12] = (psw & PSW_F ? 'F' : '-');
+ psw_c[13] = (psw & PSW_R ? 'R' : '-');
+ psw_c[14] = (psw & PSW_Q ? 'Q' : '-');
+ psw_c[15] = (psw & PSW_P ? 'P' : '-');
+ psw_c[16] = (psw & PSW_D ? 'D' : '-');
+ psw_c[17] = (psw & PSW_I ? 'I' : '-');
+ psw_c[18] = '\0';
+ psw_cb = ((env->psw_cb >> 4) & 0x01111111) | (env->psw_cb_msb << 28);
+
+ cpu_fprintf(f, "PSW " TARGET_FMT_lx " CB " TARGET_FMT_lx " %s\n",
+ psw, psw_cb, psw_c);
+
+ for (i = 0; i < 32; i++) {
cpu_fprintf(f, "GR%02d " TARGET_FMT_lx " ", i, env->gr[i]);
if ((i % 4) == 3) {
cpu_fprintf(f, "\n");
}
}
+ cpu_fprintf(f, "\n");
/* ??? FR */
}
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 03/43] target/hppa: Disable gateway page emulation for system mode
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 01/43] target/hppa: Skeleton support for hppa-softmmu Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 02/43] target/hppa: Define the rest of the PSW Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 04/43] target/hppa: Define hardware exception types Richard Henderson
` (43 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/translate.c | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 31d9a2a31b..8e357cc60c 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -1543,6 +1543,7 @@ static DisasJumpType do_ibranch(DisasContext *ctx, TCGv dest,
return DISAS_NEXT;
}
+#ifdef CONFIG_USER_ONLY
/* On Linux, page zero is normally marked execute only + gateway.
Therefore normal read or write is supposed to fail, but specific
offsets have kernel code mapped to raise permissions to implement
@@ -1600,6 +1601,7 @@ static DisasJumpType do_page_zero(DisasContext *ctx)
return DISAS_NORETURN;
}
}
+#endif
static DisasJumpType trans_nop(DisasContext *ctx, uint32_t insn,
const DisasInsn *di)
@@ -3787,10 +3789,13 @@ static void hppa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
int i, n;
/* Execute one insn. */
+#ifdef CONFIG_USER_ONLY
if (ctx->iaoq_f < TARGET_PAGE_SIZE) {
ret = do_page_zero(ctx);
assert(ret != DISAS_NEXT);
- } else {
+ } else
+#endif
+ {
/* Always fetch the insn, even if nullified, so that we check
the page permissions for execute. */
uint32_t insn = cpu_ldl_code(env, ctx->iaoq_f);
@@ -3885,25 +3890,27 @@ static void hppa_tr_tb_stop(DisasContextBase *dcbase, CPUState *cs)
static void hppa_tr_disas_log(const DisasContextBase *dcbase, CPUState *cs)
{
TranslationBlock *tb = dcbase->tb;
+ target_ulong pc = tb->pc;
- switch (tb->pc) {
+#ifdef CONFIG_USER_ONLY
+ switch (pc) {
case 0x00:
qemu_log("IN:\n0x00000000: (null)\n");
- break;
+ return;
case 0xb0:
qemu_log("IN:\n0x000000b0: light-weight-syscall\n");
- break;
+ return;
case 0xe0:
qemu_log("IN:\n0x000000e0: set-thread-pointer-syscall\n");
- break;
+ return;
case 0x100:
qemu_log("IN:\n0x00000100: syscall\n");
- break;
- default:
- qemu_log("IN: %s\n", lookup_symbol(tb->pc));
- log_target_disas(cs, tb->pc, tb->size);
- break;
+ return;
}
+#endif
+
+ qemu_log("IN: %s\n", lookup_symbol(pc));
+ log_target_disas(cs, pc, tb->size);
}
static const TranslatorOps hppa_tr_ops = {
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 04/43] target/hppa: Define hardware exception types
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (2 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 03/43] target/hppa: Disable gateway page emulation for system mode Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 05/43] target/hppa: Split address size from register size Richard Henderson
` (42 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 39 +++++++++++++++++++++++++++----
linux-user/main.c | 26 ++++++++++++++++++---
target/hppa/helper.c | 61 ++++++++++++++++++++++++++++++++++--------------
target/hppa/mem_helper.c | 4 +++-
target/hppa/op_helper.c | 6 ++---
target/hppa/translate.c | 8 +++----
6 files changed, 111 insertions(+), 33 deletions(-)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index ea7e495408..d84af91860 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -40,11 +40,40 @@
#define MMU_USER_IDX 0
#define TARGET_INSN_START_EXTRA_WORDS 1
-#define EXCP_SYSCALL 1
-#define EXCP_SYSCALL_LWS 2
-#define EXCP_SIGSEGV 3
-#define EXCP_SIGILL 4
-#define EXCP_SIGFPE 5
+/* Hardware exceptions, interupts, faults, and traps. */
+#define EXCP_HPMC 1 /* high priority machine check */
+#define EXCP_POWER_FAIL 2
+#define EXCP_RC 3 /* recovery counter */
+#define EXCP_EXT_INTERRUPT 4 /* external interrupt */
+#define EXCP_LPMC 5 /* low priority machine check */
+#define EXCP_ITLB_MISS 6 /* itlb miss / instruction page fault */
+#define EXCP_IMP 7 /* instruction memory protection trap */
+#define EXCP_ILL 8 /* illegal instruction trap */
+#define EXCP_BREAK 9 /* break instruction */
+#define EXCP_PRIV_OPR 10 /* privileged operation trap */
+#define EXCP_PRIV_REG 11 /* privileged register trap */
+#define EXCP_OVERFLOW 12 /* signed overflow trap */
+#define EXCP_COND 13 /* trap-on-condition */
+#define EXCP_ASSIST 14 /* assist exception trap */
+#define EXCP_DTLB_MISS 15 /* dtlb miss / data page fault */
+#define EXCP_NA_ITLB_MISS 16 /* non-access itlb miss */
+#define EXCP_NA_DTLB_MISS 17 /* non-access dtlb miss */
+#define EXCP_DMP 18 /* data memory protection trap */
+#define EXCP_DMB 19 /* data memory break trap */
+#define EXCP_TLB_DIRTY 20 /* tlb dirty bit trap */
+#define EXCP_PAGE_REF 21 /* page reference trap */
+#define EXCP_ASSIST_EMU 22 /* assist emulation trap */
+#define EXCP_HPT 23 /* high-privilege transfer trap */
+#define EXCP_LPT 24 /* low-privilege transfer trap */
+#define EXCP_TB 25 /* taken branch trap */
+#define EXCP_DMAR 26 /* data memory access rights trap */
+#define EXCP_DMPI 27 /* data memory protection id trap */
+#define EXCP_UNALIGN 28 /* unaligned data reference trap */
+#define EXCP_PER_INTERRUPT 29 /* performance monitor interrupt */
+
+/* Exceptions for linux-user emulation. */
+#define EXCP_SYSCALL 30
+#define EXCP_SYSCALL_LWS 31
/* Taken from Linux kernel: arch/parisc/include/asm/psw.h */
#define PSW_I 0x00000001
diff --git a/linux-user/main.c b/linux-user/main.c
index 450eb3ce65..42f4c66ce6 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -3768,21 +3768,41 @@ void cpu_loop(CPUHPPAState *env)
env->iaoq_f = env->gr[31];
env->iaoq_b = env->gr[31] + 4;
break;
- case EXCP_SIGSEGV:
+ case EXCP_ITLB_MISS:
+ case EXCP_DTLB_MISS:
+ case EXCP_NA_ITLB_MISS:
+ case EXCP_NA_DTLB_MISS:
+ case EXCP_IMP:
+ case EXCP_DMP:
+ case EXCP_DMB:
+ case EXCP_PAGE_REF:
+ case EXCP_DMAR:
+ case EXCP_DMPI:
info.si_signo = TARGET_SIGSEGV;
info.si_errno = 0;
info.si_code = TARGET_SEGV_ACCERR;
info._sifields._sigfault._addr = env->ior;
queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info);
break;
- case EXCP_SIGILL:
+ case EXCP_UNALIGN:
+ info.si_signo = TARGET_SIGBUS;
+ info.si_errno = 0;
+ info.si_code = 0;
+ info._sifields._sigfault._addr = env->ior;
+ queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info);
+ break;
+ case EXCP_ILL:
+ case EXCP_PRIV_OPR:
+ case EXCP_PRIV_REG:
info.si_signo = TARGET_SIGILL;
info.si_errno = 0;
info.si_code = TARGET_ILL_ILLOPN;
info._sifields._sigfault._addr = env->iaoq_f;
queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info);
break;
- case EXCP_SIGFPE:
+ case EXCP_OVERFLOW:
+ case EXCP_COND:
+ case EXCP_ASSIST:
info.si_signo = TARGET_SIGFPE;
info.si_errno = 0;
info.si_code = 0;
diff --git a/target/hppa/helper.c b/target/hppa/helper.c
index 4231ef3bff..6439179a0e 100644
--- a/target/hppa/helper.c
+++ b/target/hppa/helper.c
@@ -74,25 +74,52 @@ void hppa_cpu_do_interrupt(CPUState *cs)
int i = cs->exception_index;
if (qemu_loglevel_mask(CPU_LOG_INT)) {
+ static const char * const names[] = {
+ [EXCP_HPMC] = "high priority machine check",
+ [EXCP_POWER_FAIL] = "power fail interrupt",
+ [EXCP_RC] = "recovery counter trap",
+ [EXCP_EXT_INTERRUPT] = "external interrupt",
+ [EXCP_LPMC] = "low priority machine check",
+ [EXCP_ITLB_MISS] = "instruction tlb miss fault",
+ [EXCP_IMP] = "instruction memory protection trap",
+ [EXCP_ILL] = "illegal instruction trap",
+ [EXCP_BREAK] = "break instruction trap",
+ [EXCP_PRIV_OPR] = "privileged operation trap",
+ [EXCP_PRIV_REG] = "privileged register trap",
+ [EXCP_OVERFLOW] = "overflow trap",
+ [EXCP_COND] = "conditional trap",
+ [EXCP_ASSIST] = "assist exception trap",
+ [EXCP_DTLB_MISS] = "data tlb miss fault",
+ [EXCP_NA_ITLB_MISS] = "non-access instruction tlb miss",
+ [EXCP_NA_DTLB_MISS] = "non-access data tlb miss",
+ [EXCP_DMP] = "data memory protection trap",
+ [EXCP_DMB] = "data memory break trap",
+ [EXCP_TLB_DIRTY] = "tlb dirty bit trap",
+ [EXCP_PAGE_REF] = "page reference trap",
+ [EXCP_ASSIST_EMU] = "assist emulation trap",
+ [EXCP_HPT] = "high-privilege transfer trap",
+ [EXCP_LPT] = "low-privilege transfer trap",
+ [EXCP_TB] = "taken branch trap",
+ [EXCP_DMAR] = "data memory access rights trap",
+ [EXCP_DMPI] = "data memory protection id trap",
+ [EXCP_UNALIGN] = "unaligned data reference trap",
+ [EXCP_PER_INTERRUPT] = "performance monitor interrupt",
+ [EXCP_SYSCALL] = "syscall",
+ [EXCP_SYSCALL_LWS] = "syscall-lws",
+ };
static int count;
- const char *name = "<unknown>";
-
- switch (i) {
- case EXCP_SYSCALL:
- name = "syscall";
- break;
- case EXCP_SIGSEGV:
- name = "sigsegv";
- break;
- case EXCP_SIGILL:
- name = "sigill";
- break;
- case EXCP_SIGFPE:
- name = "sigfpe";
- break;
+ const char *name = NULL;
+
+ if (i >= 0 && i < ARRAY_SIZE(names)) {
+ name = names[i];
+ }
+ if (name) {
+ qemu_log("INT %6d: %s ia_f=" TARGET_FMT_lx "\n",
+ ++count, name, env->iaoq_f);
+ } else {
+ qemu_log("INT %6d: unknown %d ia_f=" TARGET_FMT_lx "\n",
+ ++count, i, env->iaoq_f);
}
- qemu_log("INT %6d: %s ia_f=" TARGET_FMT_lx "\n",
- ++count, name, env->iaoq_f);
}
cs->exception_index = -1;
}
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
index e0802bc935..2901f3e29c 100644
--- a/target/hppa/mem_helper.c
+++ b/target/hppa/mem_helper.c
@@ -29,7 +29,9 @@ int hppa_cpu_handle_mmu_fault(CPUState *cs, vaddr address,
{
HPPACPU *cpu = HPPA_CPU(cs);
- cs->exception_index = EXCP_SIGSEGV;
+ /* ??? Test between data page fault and data memory protection trap,
+ which would affect si_code. */
+ cs->exception_index = EXCP_DMP;
cpu->env.ior = address;
return 1;
}
diff --git a/target/hppa/op_helper.c b/target/hppa/op_helper.c
index 9c7603588f..d6b86834c1 100644
--- a/target/hppa/op_helper.c
+++ b/target/hppa/op_helper.c
@@ -44,14 +44,14 @@ static void QEMU_NORETURN dynexcp(CPUHPPAState *env, int excp, uintptr_t ra)
void HELPER(tsv)(CPUHPPAState *env, target_ulong cond)
{
if (unlikely((target_long)cond < 0)) {
- dynexcp(env, EXCP_SIGFPE, GETPC());
+ dynexcp(env, EXCP_OVERFLOW, GETPC());
}
}
void HELPER(tcond)(CPUHPPAState *env, target_ulong cond)
{
if (unlikely(cond)) {
- dynexcp(env, EXCP_SIGFPE, GETPC());
+ dynexcp(env, EXCP_COND, GETPC());
}
}
@@ -235,7 +235,7 @@ static void update_fr0_op(CPUHPPAState *env, uintptr_t ra)
env->fr[0] = (uint64_t)shadow << 32;
if (hard_exp & shadow) {
- dynexcp(env, EXCP_SIGFPE, ra);
+ dynexcp(env, EXCP_ASSIST, ra);
}
}
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 8e357cc60c..8d85ed9df3 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -462,7 +462,7 @@ static DisasJumpType gen_excp(DisasContext *ctx, int exception)
static DisasJumpType gen_illegal(DisasContext *ctx)
{
nullify_over(ctx);
- return nullify_end(ctx, gen_excp(ctx, EXCP_SIGILL));
+ return nullify_end(ctx, gen_excp(ctx, EXCP_ILL));
}
static bool use_goto_tb(DisasContext *ctx, target_ulong dest)
@@ -1578,7 +1578,7 @@ static DisasJumpType do_page_zero(DisasContext *ctx)
switch (ctx->iaoq_f) {
case 0x00: /* Null pointer call */
- gen_excp_1(EXCP_SIGSEGV);
+ gen_excp_1(EXCP_IMP);
return DISAS_NORETURN;
case 0xb0: /* LWS */
@@ -1597,7 +1597,7 @@ static DisasJumpType do_page_zero(DisasContext *ctx)
default:
do_sigill:
- gen_excp_1(EXCP_SIGILL);
+ gen_excp_1(EXCP_ILL);
return DISAS_NORETURN;
}
}
@@ -1614,7 +1614,7 @@ static DisasJumpType trans_break(DisasContext *ctx, uint32_t insn,
const DisasInsn *di)
{
nullify_over(ctx);
- return nullify_end(ctx, gen_excp(ctx, EXCP_DEBUG));
+ return nullify_end(ctx, gen_excp(ctx, EXCP_BREAK));
}
static DisasJumpType trans_sync(DisasContext *ctx, uint32_t insn,
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 05/43] target/hppa: Split address size from register size
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (3 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 04/43] target/hppa: Define hardware exception types Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 06/43] target/hppa: Implement mmu_idx from IA privilege level Richard Henderson
` (41 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
For system mode, we will need 64-bit virtual addresses even when
we have 32-bit register sizes. Since the rest of QEMU equates
TARGET_LONG_BITS with the address size, redefine everything
related to register size in terms of a new TARGET_REGISTER_BITS.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 48 ++-
target/hppa/helper.h | 26 +-
target/hppa/gdbstub.c | 19 +-
target/hppa/helper.c | 18 +-
target/hppa/op_helper.c | 22 +-
target/hppa/translate.c | 947 ++++++++++++++++++++++++++++++------------------
6 files changed, 669 insertions(+), 411 deletions(-)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index d84af91860..1524ef91b6 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -23,10 +23,10 @@
#include "qemu-common.h"
#include "cpu-qom.h"
-/* We only support hppa-linux-user at present, so 32-bit only. */
-#define TARGET_LONG_BITS 32
-#define TARGET_PHYS_ADDR_SPACE_BITS 32
-#define TARGET_VIRT_ADDR_SPACE_BITS 32
+#define TARGET_LONG_BITS 32
+#define TARGET_VIRT_ADDR_SPACE_BITS 32
+#define TARGET_REGISTER_BITS 32
+#define TARGET_PHYS_ADDR_SPACE_BITS 32
#define CPUArchState struct CPUHPPAState
@@ -123,17 +123,29 @@
typedef struct CPUHPPAState CPUHPPAState;
+#if TARGET_REGISTER_BITS == 32
+typedef uint32_t target_ureg;
+typedef int32_t target_sreg;
+#define TREG_FMT_lx "%08"PRIx32
+#define TREG_FMT_ld "%"PRId32
+#else
+typedef uint64_t target_ureg;
+typedef int64_t target_sreg;
+#define TREG_FMT_lx "%016"PRIx64
+#define TREG_FMT_ld "%"PRId64
+#endif
+
struct CPUHPPAState {
- target_ulong gr[32];
+ target_ureg gr[32];
uint64_t fr[32];
- target_ulong sar;
- target_ulong cr26;
- target_ulong cr27;
+ target_ureg sar;
+ target_ureg cr26;
+ target_ureg cr27;
- target_long psw; /* All psw bits except the following: */
- target_ulong psw_n; /* boolean */
- target_long psw_v; /* in most significant bit */
+ target_ureg psw; /* All psw bits except the following: */
+ target_ureg psw_n; /* boolean */
+ target_sreg psw_v; /* in most significant bit */
/* Splitting the carry-borrow field into the MSB and "the rest", allows
* for "the rest" to be deleted when it is unused, but the MSB is in use.
@@ -142,13 +154,13 @@ struct CPUHPPAState {
* host has the appropriate add-with-carry insn to compute the msb).
* Therefore the carry bits are stored as: cb_msb : cb & 0x11111110.
*/
- target_ulong psw_cb; /* in least significant bit of next nibble */
- target_ulong psw_cb_msb; /* boolean */
+ target_ureg psw_cb; /* in least significant bit of next nibble */
+ target_ureg psw_cb_msb; /* boolean */
- target_ulong iaoq_f; /* front */
- target_ulong iaoq_b; /* back, aka next instruction */
+ target_ureg iaoq_f; /* front */
+ target_ureg iaoq_b; /* back, aka next instruction */
- target_ulong ior; /* interrupt offset register */
+ target_ureg ior; /* interrupt offset register */
uint32_t fr0_shadow; /* flags, c, ca/cq, rm, d, enables */
float_status fp_status;
@@ -201,8 +213,8 @@ static inline void cpu_get_tb_cpu_state(CPUHPPAState *env, target_ulong *pc,
*pflags = env->psw_n;
}
-target_ulong cpu_hppa_get_psw(CPUHPPAState *env);
-void cpu_hppa_put_psw(CPUHPPAState *env, target_ulong);
+target_ureg cpu_hppa_get_psw(CPUHPPAState *env);
+void cpu_hppa_put_psw(CPUHPPAState *env, target_ureg);
void cpu_hppa_loaded_fr0(CPUHPPAState *env);
#define cpu_signal_handler cpu_hppa_signal_handler
diff --git a/target/hppa/helper.h b/target/hppa/helper.h
index 0a6b900555..c720de523b 100644
--- a/target/hppa/helper.h
+++ b/target/hppa/helper.h
@@ -1,14 +1,24 @@
+#if TARGET_REGISTER_BITS == 64
+# define dh_alias_tr i64
+# define dh_is_64bit_tr 1
+#else
+# define dh_alias_tr i32
+# define dh_is_64bit_tr 0
+#endif
+#define dh_ctype_tr target_ureg
+#define dh_is_signed_tr 0
+
DEF_HELPER_2(excp, noreturn, env, int)
-DEF_HELPER_FLAGS_2(tsv, TCG_CALL_NO_WG, void, env, tl)
-DEF_HELPER_FLAGS_2(tcond, TCG_CALL_NO_WG, void, env, tl)
+DEF_HELPER_FLAGS_2(tsv, TCG_CALL_NO_WG, void, env, tr)
+DEF_HELPER_FLAGS_2(tcond, TCG_CALL_NO_WG, void, env, tr)
-DEF_HELPER_FLAGS_3(stby_b, TCG_CALL_NO_WG, void, env, tl, tl)
-DEF_HELPER_FLAGS_3(stby_b_parallel, TCG_CALL_NO_WG, void, env, tl, tl)
-DEF_HELPER_FLAGS_3(stby_e, TCG_CALL_NO_WG, void, env, tl, tl)
-DEF_HELPER_FLAGS_3(stby_e_parallel, TCG_CALL_NO_WG, void, env, tl, tl)
+DEF_HELPER_FLAGS_3(stby_b, TCG_CALL_NO_WG, void, env, tl, tr)
+DEF_HELPER_FLAGS_3(stby_b_parallel, TCG_CALL_NO_WG, void, env, tl, tr)
+DEF_HELPER_FLAGS_3(stby_e, TCG_CALL_NO_WG, void, env, tl, tr)
+DEF_HELPER_FLAGS_3(stby_e_parallel, TCG_CALL_NO_WG, void, env, tl, tr)
-DEF_HELPER_FLAGS_1(probe_r, TCG_CALL_NO_RWG_SE, tl, tl)
-DEF_HELPER_FLAGS_1(probe_w, TCG_CALL_NO_RWG_SE, tl, tl)
+DEF_HELPER_FLAGS_1(probe_r, TCG_CALL_NO_RWG_SE, tr, tl)
+DEF_HELPER_FLAGS_1(probe_w, TCG_CALL_NO_RWG_SE, tr, tl)
DEF_HELPER_FLAGS_1(loaded_fr0, TCG_CALL_NO_RWG, void, env)
diff --git a/target/hppa/gdbstub.c b/target/hppa/gdbstub.c
index c37a56f238..228d282fe9 100644
--- a/target/hppa/gdbstub.c
+++ b/target/hppa/gdbstub.c
@@ -26,7 +26,7 @@ int hppa_cpu_gdb_read_register(CPUState *cs, uint8_t *mem_buf, int n)
{
HPPACPU *cpu = HPPA_CPU(cs);
CPUHPPAState *env = &cpu->env;
- target_ulong val;
+ target_ureg val;
switch (n) {
case 0:
@@ -61,14 +61,25 @@ int hppa_cpu_gdb_read_register(CPUState *cs, uint8_t *mem_buf, int n)
}
break;
}
- return gdb_get_regl(mem_buf, val);
+
+ if (TARGET_REGISTER_BITS == 64) {
+ return gdb_get_reg64(mem_buf, val);
+ } else {
+ return gdb_get_reg32(mem_buf, val);
+ }
}
int hppa_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
{
HPPACPU *cpu = HPPA_CPU(cs);
CPUHPPAState *env = &cpu->env;
- target_ulong val = ldtul_p(mem_buf);
+ target_ureg val;
+
+ if (TARGET_REGISTER_BITS == 64) {
+ val = ldq_p(mem_buf);
+ } else {
+ val = ldl_p(mem_buf);
+ }
switch (n) {
case 0:
@@ -108,5 +119,5 @@ int hppa_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
}
break;
}
- return sizeof(target_ulong);
+ return sizeof(target_ureg);
}
diff --git a/target/hppa/helper.c b/target/hppa/helper.c
index 6439179a0e..b6521f61fc 100644
--- a/target/hppa/helper.c
+++ b/target/hppa/helper.c
@@ -24,9 +24,9 @@
#include "fpu/softfloat.h"
#include "exec/helper-proto.h"
-target_ulong cpu_hppa_get_psw(CPUHPPAState *env)
+target_ureg cpu_hppa_get_psw(CPUHPPAState *env)
{
- target_ulong psw;
+ target_ureg psw;
/* Fold carry bits down to 8 consecutive bits. */
/* ??? Needs tweaking for hppa64. */
@@ -48,9 +48,9 @@ target_ulong cpu_hppa_get_psw(CPUHPPAState *env)
return psw;
}
-void cpu_hppa_put_psw(CPUHPPAState *env, target_ulong psw)
+void cpu_hppa_put_psw(CPUHPPAState *env, target_ureg psw)
{
- target_ulong cb = 0;
+ target_ureg cb = 0;
env->psw = psw & ~(PSW_N | PSW_V | PSW_CB);
env->psw_n = (psw / PSW_N) & 1;
@@ -135,13 +135,13 @@ void hppa_cpu_dump_state(CPUState *cs, FILE *f,
{
HPPACPU *cpu = HPPA_CPU(cs);
CPUHPPAState *env = &cpu->env;
- target_ulong psw = cpu_hppa_get_psw(env);
- target_ulong psw_cb;
+ target_ureg psw = cpu_hppa_get_psw(env);
+ target_ureg psw_cb;
char psw_c[20];
int i;
cpu_fprintf(f, "IA_F " TARGET_FMT_lx " IA_B " TARGET_FMT_lx "\n",
- env->iaoq_f, env->iaoq_b);
+ (target_ulong)env->iaoq_f, (target_ulong)env->iaoq_b);
psw_c[0] = (psw & PSW_W ? 'W' : '-');
psw_c[1] = (psw & PSW_E ? 'E' : '-');
@@ -164,11 +164,11 @@ void hppa_cpu_dump_state(CPUState *cs, FILE *f,
psw_c[18] = '\0';
psw_cb = ((env->psw_cb >> 4) & 0x01111111) | (env->psw_cb_msb << 28);
- cpu_fprintf(f, "PSW " TARGET_FMT_lx " CB " TARGET_FMT_lx " %s\n",
+ cpu_fprintf(f, "PSW " TREG_FMT_lx " CB " TREG_FMT_lx " %s\n",
psw, psw_cb, psw_c);
for (i = 0; i < 32; i++) {
- cpu_fprintf(f, "GR%02d " TARGET_FMT_lx " ", i, env->gr[i]);
+ cpu_fprintf(f, "GR%02d " TREG_FMT_lx " ", i, env->gr[i]);
if ((i % 4) == 3) {
cpu_fprintf(f, "\n");
}
diff --git a/target/hppa/op_helper.c b/target/hppa/op_helper.c
index d6b86834c1..479bfc0fdf 100644
--- a/target/hppa/op_helper.c
+++ b/target/hppa/op_helper.c
@@ -41,14 +41,14 @@ static void QEMU_NORETURN dynexcp(CPUHPPAState *env, int excp, uintptr_t ra)
cpu_loop_exit_restore(cs, ra);
}
-void HELPER(tsv)(CPUHPPAState *env, target_ulong cond)
+void HELPER(tsv)(CPUHPPAState *env, target_ureg cond)
{
- if (unlikely((target_long)cond < 0)) {
+ if (unlikely((target_sreg)cond < 0)) {
dynexcp(env, EXCP_OVERFLOW, GETPC());
}
}
-void HELPER(tcond)(CPUHPPAState *env, target_ulong cond)
+void HELPER(tcond)(CPUHPPAState *env, target_ureg cond)
{
if (unlikely(cond)) {
dynexcp(env, EXCP_COND, GETPC());
@@ -77,7 +77,7 @@ static void atomic_store_3(CPUHPPAState *env, target_ulong addr, uint32_t val,
#endif
}
-static void do_stby_b(CPUHPPAState *env, target_ulong addr, target_ulong val,
+static void do_stby_b(CPUHPPAState *env, target_ulong addr, target_ureg val,
bool parallel)
{
uintptr_t ra = GETPC();
@@ -104,18 +104,18 @@ static void do_stby_b(CPUHPPAState *env, target_ulong addr, target_ulong val,
}
}
-void HELPER(stby_b)(CPUHPPAState *env, target_ulong addr, target_ulong val)
+void HELPER(stby_b)(CPUHPPAState *env, target_ulong addr, target_ureg val)
{
do_stby_b(env, addr, val, false);
}
void HELPER(stby_b_parallel)(CPUHPPAState *env, target_ulong addr,
- target_ulong val)
+ target_ureg val)
{
do_stby_b(env, addr, val, true);
}
-static void do_stby_e(CPUHPPAState *env, target_ulong addr, target_ulong val,
+static void do_stby_e(CPUHPPAState *env, target_ulong addr, target_ureg val,
bool parallel)
{
uintptr_t ra = GETPC();
@@ -146,18 +146,18 @@ static void do_stby_e(CPUHPPAState *env, target_ulong addr, target_ulong val,
}
}
-void HELPER(stby_e)(CPUHPPAState *env, target_ulong addr, target_ulong val)
+void HELPER(stby_e)(CPUHPPAState *env, target_ulong addr, target_ureg val)
{
do_stby_e(env, addr, val, false);
}
void HELPER(stby_e_parallel)(CPUHPPAState *env, target_ulong addr,
- target_ulong val)
+ target_ureg val)
{
do_stby_e(env, addr, val, true);
}
-target_ulong HELPER(probe_r)(target_ulong addr)
+target_ureg HELPER(probe_r)(target_ulong addr)
{
#ifdef CONFIG_USER_ONLY
return page_check_range(addr, 1, PAGE_READ);
@@ -166,7 +166,7 @@ target_ulong HELPER(probe_r)(target_ulong addr)
#endif
}
-target_ulong HELPER(probe_w)(target_ulong addr)
+target_ureg HELPER(probe_w)(target_ulong addr)
{
#ifdef CONFIG_USER_ONLY
return page_check_range(addr, 1, PAGE_WRITE);
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 8d85ed9df3..b3996cfcdc 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -30,9 +30,235 @@
#include "trace-tcg.h"
#include "exec/log.h"
+/* Since we have a distinction between register size and address size,
+ we need to redefine all of these. */
+
+#undef TCGv
+#undef tcg_temp_new
+#undef tcg_global_reg_new
+#undef tcg_global_mem_new
+#undef tcg_temp_local_new
+#undef tcg_temp_free
+
+#if TARGET_LONG_BITS == 64
+#define TCGv_tl TCGv_i64
+#define tcg_temp_new_tl tcg_temp_new_i64
+#define tcg_temp_free_tl tcg_temp_free_i64
+#if TARGET_REGISTER_BITS == 64
+#define tcg_gen_extu_reg_tl tcg_gen_mov_i64
+#else
+#define tcg_gen_extu_reg_tl tcg_gen_extu_i32_i64
+#endif
+#else
+#define TCGv_tl TCGv_i32
+#define tcg_temp_new_tl tcg_temp_new_i32
+#define tcg_temp_free_tl tcg_temp_free_i32
+#define tcg_gen_extu_reg_tl tcg_gen_mov_i32
+#endif
+
+#if TARGET_REGISTER_BITS == 64
+#define TCGv_reg TCGv_i64
+
+#define tcg_temp_new tcg_temp_new_i64
+#define tcg_global_reg_new tcg_global_reg_new_i64
+#define tcg_global_mem_new tcg_global_mem_new_i64
+#define tcg_temp_local_new tcg_temp_local_new_i64
+#define tcg_temp_free tcg_temp_free_i64
+
+#define tcg_gen_movi_reg tcg_gen_movi_i64
+#define tcg_gen_mov_reg tcg_gen_mov_i64
+#define tcg_gen_ld8u_reg tcg_gen_ld8u_i64
+#define tcg_gen_ld8s_reg tcg_gen_ld8s_i64
+#define tcg_gen_ld16u_reg tcg_gen_ld16u_i64
+#define tcg_gen_ld16s_reg tcg_gen_ld16s_i64
+#define tcg_gen_ld32u_reg tcg_gen_ld32u_i64
+#define tcg_gen_ld32s_reg tcg_gen_ld32s_i64
+#define tcg_gen_ld_reg tcg_gen_ld_i64
+#define tcg_gen_st8_reg tcg_gen_st8_i64
+#define tcg_gen_st16_reg tcg_gen_st16_i64
+#define tcg_gen_st32_reg tcg_gen_st32_i64
+#define tcg_gen_st_reg tcg_gen_st_i64
+#define tcg_gen_add_reg tcg_gen_add_i64
+#define tcg_gen_addi_reg tcg_gen_addi_i64
+#define tcg_gen_sub_reg tcg_gen_sub_i64
+#define tcg_gen_neg_reg tcg_gen_neg_i64
+#define tcg_gen_subfi_reg tcg_gen_subfi_i64
+#define tcg_gen_subi_reg tcg_gen_subi_i64
+#define tcg_gen_and_reg tcg_gen_and_i64
+#define tcg_gen_andi_reg tcg_gen_andi_i64
+#define tcg_gen_or_reg tcg_gen_or_i64
+#define tcg_gen_ori_reg tcg_gen_ori_i64
+#define tcg_gen_xor_reg tcg_gen_xor_i64
+#define tcg_gen_xori_reg tcg_gen_xori_i64
+#define tcg_gen_not_reg tcg_gen_not_i64
+#define tcg_gen_shl_reg tcg_gen_shl_i64
+#define tcg_gen_shli_reg tcg_gen_shli_i64
+#define tcg_gen_shr_reg tcg_gen_shr_i64
+#define tcg_gen_shri_reg tcg_gen_shri_i64
+#define tcg_gen_sar_reg tcg_gen_sar_i64
+#define tcg_gen_sari_reg tcg_gen_sari_i64
+#define tcg_gen_brcond_reg tcg_gen_brcond_i64
+#define tcg_gen_brcondi_reg tcg_gen_brcondi_i64
+#define tcg_gen_setcond_reg tcg_gen_setcond_i64
+#define tcg_gen_setcondi_reg tcg_gen_setcondi_i64
+#define tcg_gen_mul_reg tcg_gen_mul_i64
+#define tcg_gen_muli_reg tcg_gen_muli_i64
+#define tcg_gen_div_reg tcg_gen_div_i64
+#define tcg_gen_rem_reg tcg_gen_rem_i64
+#define tcg_gen_divu_reg tcg_gen_divu_i64
+#define tcg_gen_remu_reg tcg_gen_remu_i64
+#define tcg_gen_discard_reg tcg_gen_discard_i64
+#define tcg_gen_trunc_reg_i32 tcg_gen_extrl_i64_i32
+#define tcg_gen_trunc_i64_reg tcg_gen_mov_i64
+#define tcg_gen_extu_i32_reg tcg_gen_extu_i32_i64
+#define tcg_gen_ext_i32_reg tcg_gen_ext_i32_i64
+#define tcg_gen_extu_reg_i64 tcg_gen_mov_i64
+#define tcg_gen_ext_reg_i64 tcg_gen_mov_i64
+#define tcg_gen_ext8u_reg tcg_gen_ext8u_i64
+#define tcg_gen_ext8s_reg tcg_gen_ext8s_i64
+#define tcg_gen_ext16u_reg tcg_gen_ext16u_i64
+#define tcg_gen_ext16s_reg tcg_gen_ext16s_i64
+#define tcg_gen_ext32u_reg tcg_gen_ext32u_i64
+#define tcg_gen_ext32s_reg tcg_gen_ext32s_i64
+#define tcg_gen_bswap16_reg tcg_gen_bswap16_i64
+#define tcg_gen_bswap32_reg tcg_gen_bswap32_i64
+#define tcg_gen_bswap64_reg tcg_gen_bswap64_i64
+#define tcg_gen_concat_reg_i64 tcg_gen_concat32_i64
+#define tcg_gen_andc_reg tcg_gen_andc_i64
+#define tcg_gen_eqv_reg tcg_gen_eqv_i64
+#define tcg_gen_nand_reg tcg_gen_nand_i64
+#define tcg_gen_nor_reg tcg_gen_nor_i64
+#define tcg_gen_orc_reg tcg_gen_orc_i64
+#define tcg_gen_clz_reg tcg_gen_clz_i64
+#define tcg_gen_ctz_reg tcg_gen_ctz_i64
+#define tcg_gen_clzi_reg tcg_gen_clzi_i64
+#define tcg_gen_ctzi_reg tcg_gen_ctzi_i64
+#define tcg_gen_clrsb_reg tcg_gen_clrsb_i64
+#define tcg_gen_ctpop_reg tcg_gen_ctpop_i64
+#define tcg_gen_rotl_reg tcg_gen_rotl_i64
+#define tcg_gen_rotli_reg tcg_gen_rotli_i64
+#define tcg_gen_rotr_reg tcg_gen_rotr_i64
+#define tcg_gen_rotri_reg tcg_gen_rotri_i64
+#define tcg_gen_deposit_reg tcg_gen_deposit_i64
+#define tcg_gen_deposit_z_reg tcg_gen_deposit_z_i64
+#define tcg_gen_extract_reg tcg_gen_extract_i64
+#define tcg_gen_sextract_reg tcg_gen_sextract_i64
+#define tcg_const_reg tcg_const_i64
+#define tcg_const_local_reg tcg_const_local_i64
+#define tcg_gen_movcond_reg tcg_gen_movcond_i64
+#define tcg_gen_add2_reg tcg_gen_add2_i64
+#define tcg_gen_sub2_reg tcg_gen_sub2_i64
+#define tcg_gen_qemu_ld_reg tcg_gen_qemu_ld_i64
+#define tcg_gen_qemu_st_reg tcg_gen_qemu_st_i64
+#define tcg_gen_atomic_xchg_reg tcg_gen_atomic_xchg_i64
+#if UINTPTR_MAX == UINT32_MAX
+# define tcg_gen_trunc_reg_ptr(p,r) tcg_gen_trunc_i64_i32(TCGV_PTR_TO_NAT(p),r)
+#else
+# define tcg_gen_trunc_reg_ptr(p,r) tcg_gen_mov_i64(TCGV_PTR_TO_NAT(p),r)
+#endif
+#else
+#define TCGv_reg TCGv_i32
+#define tcg_temp_new tcg_temp_new_i32
+#define tcg_global_reg_new tcg_global_reg_new_i32
+#define tcg_global_mem_new tcg_global_mem_new_i32
+#define tcg_temp_local_new tcg_temp_local_new_i32
+#define tcg_temp_free tcg_temp_free_i32
+
+#define tcg_gen_movi_reg tcg_gen_movi_i32
+#define tcg_gen_mov_reg tcg_gen_mov_i32
+#define tcg_gen_ld8u_reg tcg_gen_ld8u_i32
+#define tcg_gen_ld8s_reg tcg_gen_ld8s_i32
+#define tcg_gen_ld16u_reg tcg_gen_ld16u_i32
+#define tcg_gen_ld16s_reg tcg_gen_ld16s_i32
+#define tcg_gen_ld32u_reg tcg_gen_ld_i32
+#define tcg_gen_ld32s_reg tcg_gen_ld_i32
+#define tcg_gen_ld_reg tcg_gen_ld_i32
+#define tcg_gen_st8_reg tcg_gen_st8_i32
+#define tcg_gen_st16_reg tcg_gen_st16_i32
+#define tcg_gen_st32_reg tcg_gen_st32_i32
+#define tcg_gen_st_reg tcg_gen_st_i32
+#define tcg_gen_add_reg tcg_gen_add_i32
+#define tcg_gen_addi_reg tcg_gen_addi_i32
+#define tcg_gen_sub_reg tcg_gen_sub_i32
+#define tcg_gen_neg_reg tcg_gen_neg_i32
+#define tcg_gen_subfi_reg tcg_gen_subfi_i32
+#define tcg_gen_subi_reg tcg_gen_subi_i32
+#define tcg_gen_and_reg tcg_gen_and_i32
+#define tcg_gen_andi_reg tcg_gen_andi_i32
+#define tcg_gen_or_reg tcg_gen_or_i32
+#define tcg_gen_ori_reg tcg_gen_ori_i32
+#define tcg_gen_xor_reg tcg_gen_xor_i32
+#define tcg_gen_xori_reg tcg_gen_xori_i32
+#define tcg_gen_not_reg tcg_gen_not_i32
+#define tcg_gen_shl_reg tcg_gen_shl_i32
+#define tcg_gen_shli_reg tcg_gen_shli_i32
+#define tcg_gen_shr_reg tcg_gen_shr_i32
+#define tcg_gen_shri_reg tcg_gen_shri_i32
+#define tcg_gen_sar_reg tcg_gen_sar_i32
+#define tcg_gen_sari_reg tcg_gen_sari_i32
+#define tcg_gen_brcond_reg tcg_gen_brcond_i32
+#define tcg_gen_brcondi_reg tcg_gen_brcondi_i32
+#define tcg_gen_setcond_reg tcg_gen_setcond_i32
+#define tcg_gen_setcondi_reg tcg_gen_setcondi_i32
+#define tcg_gen_mul_reg tcg_gen_mul_i32
+#define tcg_gen_muli_reg tcg_gen_muli_i32
+#define tcg_gen_div_reg tcg_gen_div_i32
+#define tcg_gen_rem_reg tcg_gen_rem_i32
+#define tcg_gen_divu_reg tcg_gen_divu_i32
+#define tcg_gen_remu_reg tcg_gen_remu_i32
+#define tcg_gen_discard_reg tcg_gen_discard_i32
+#define tcg_gen_trunc_reg_i32 tcg_gen_mov_i32
+#define tcg_gen_trunc_i64_reg tcg_gen_extrl_i64_i32
+#define tcg_gen_extu_i32_reg tcg_gen_mov_i32
+#define tcg_gen_ext_i32_reg tcg_gen_mov_i32
+#define tcg_gen_extu_reg_i64 tcg_gen_extu_i32_i64
+#define tcg_gen_ext_reg_i64 tcg_gen_ext_i32_i64
+#define tcg_gen_ext8u_reg tcg_gen_ext8u_i32
+#define tcg_gen_ext8s_reg tcg_gen_ext8s_i32
+#define tcg_gen_ext16u_reg tcg_gen_ext16u_i32
+#define tcg_gen_ext16s_reg tcg_gen_ext16s_i32
+#define tcg_gen_ext32u_reg tcg_gen_mov_i32
+#define tcg_gen_ext32s_reg tcg_gen_mov_i32
+#define tcg_gen_bswap16_reg tcg_gen_bswap16_i32
+#define tcg_gen_bswap32_reg tcg_gen_bswap32_i32
+#define tcg_gen_concat_reg_i64 tcg_gen_concat_i32_i64
+#define tcg_gen_andc_reg tcg_gen_andc_i32
+#define tcg_gen_eqv_reg tcg_gen_eqv_i32
+#define tcg_gen_nand_reg tcg_gen_nand_i32
+#define tcg_gen_nor_reg tcg_gen_nor_i32
+#define tcg_gen_orc_reg tcg_gen_orc_i32
+#define tcg_gen_clz_reg tcg_gen_clz_i32
+#define tcg_gen_ctz_reg tcg_gen_ctz_i32
+#define tcg_gen_clzi_reg tcg_gen_clzi_i32
+#define tcg_gen_ctzi_reg tcg_gen_ctzi_i32
+#define tcg_gen_clrsb_reg tcg_gen_clrsb_i32
+#define tcg_gen_ctpop_reg tcg_gen_ctpop_i32
+#define tcg_gen_rotl_reg tcg_gen_rotl_i32
+#define tcg_gen_rotli_reg tcg_gen_rotli_i32
+#define tcg_gen_rotr_reg tcg_gen_rotr_i32
+#define tcg_gen_rotri_reg tcg_gen_rotri_i32
+#define tcg_gen_deposit_reg tcg_gen_deposit_i32
+#define tcg_gen_deposit_z_reg tcg_gen_deposit_z_i32
+#define tcg_gen_extract_reg tcg_gen_extract_i32
+#define tcg_gen_sextract_reg tcg_gen_sextract_i32
+#define tcg_const_reg tcg_const_i32
+#define tcg_const_local_reg tcg_const_local_i32
+#define tcg_gen_movcond_reg tcg_gen_movcond_i32
+#define tcg_gen_add2_reg tcg_gen_add2_i32
+#define tcg_gen_sub2_reg tcg_gen_sub2_i32
+#define tcg_gen_qemu_ld_reg tcg_gen_qemu_ld_i32
+#define tcg_gen_qemu_st_reg tcg_gen_qemu_st_i32
+#define tcg_gen_atomic_xchg_reg tcg_gen_atomic_xchg_i32
+#if UINTPTR_MAX == UINT32_MAX
+# define tcg_gen_trunc_reg_ptr(p,r) tcg_gen_mov_i32(TCGV_PTR_TO_NAT(p),r)
+#else
+# define tcg_gen_trunc_reg_ptr(p,r) tcg_gen_extu_i32_i64(TCGV_PTR_TO_NAT(p),r)
+#endif
+#endif /* TARGET_REGISTER_BITS */
+
typedef struct DisasCond {
TCGCond c;
- TCGv a0, a1;
+ TCGv_reg a0, a1;
bool a0_is_n;
bool a1_is_0;
} DisasCond;
@@ -41,13 +267,13 @@ typedef struct DisasContext {
DisasContextBase base;
CPUState *cs;
- target_ulong iaoq_f;
- target_ulong iaoq_b;
- target_ulong iaoq_n;
- TCGv iaoq_n_var;
+ target_ureg iaoq_f;
+ target_ureg iaoq_b;
+ target_ureg iaoq_n;
+ TCGv_reg iaoq_n_var;
int ntemps;
- TCGv temps[8];
+ TCGv_reg temps[8];
DisasCond null_cond;
TCGLabel *null_lab;
@@ -72,7 +298,7 @@ typedef struct DisasInsn {
DisasJumpType (*trans)(DisasContext *ctx, uint32_t insn,
const struct DisasInsn *f);
union {
- void (*ttt)(TCGv, TCGv, TCGv);
+ void (*ttt)(TCGv_reg, TCGv_reg, TCGv_reg);
void (*weww)(TCGv_i32, TCGv_env, TCGv_i32, TCGv_i32);
void (*dedd)(TCGv_i64, TCGv_env, TCGv_i64, TCGv_i64);
void (*wew)(TCGv_i32, TCGv_env, TCGv_i32);
@@ -83,16 +309,16 @@ typedef struct DisasInsn {
} DisasInsn;
/* global register indexes */
-static TCGv cpu_gr[32];
-static TCGv cpu_iaoq_f;
-static TCGv cpu_iaoq_b;
-static TCGv cpu_sar;
-static TCGv cpu_psw_n;
-static TCGv cpu_psw_v;
-static TCGv cpu_psw_cb;
-static TCGv cpu_psw_cb_msb;
-static TCGv cpu_cr26;
-static TCGv cpu_cr27;
+static TCGv_reg cpu_gr[32];
+static TCGv_reg cpu_iaoq_f;
+static TCGv_reg cpu_iaoq_b;
+static TCGv_reg cpu_sar;
+static TCGv_reg cpu_psw_n;
+static TCGv_reg cpu_psw_v;
+static TCGv_reg cpu_psw_cb;
+static TCGv_reg cpu_psw_cb_msb;
+static TCGv_reg cpu_cr26;
+static TCGv_reg cpu_cr27;
#include "exec/gen-icount.h"
@@ -100,7 +326,7 @@ void hppa_translate_init(void)
{
#define DEF_VAR(V) { &cpu_##V, #V, offsetof(CPUHPPAState, V) }
- typedef struct { TCGv *var; const char *name; int ofs; } GlobalVar;
+ typedef struct { TCGv_reg *var; const char *name; int ofs; } GlobalVar;
static const GlobalVar vars[] = {
DEF_VAR(sar),
DEF_VAR(cr26),
@@ -158,26 +384,26 @@ static DisasCond cond_make_n(void)
};
}
-static DisasCond cond_make_0(TCGCond c, TCGv a0)
+static DisasCond cond_make_0(TCGCond c, TCGv_reg a0)
{
DisasCond r = { .c = c, .a1 = NULL, .a1_is_0 = true };
assert (c != TCG_COND_NEVER && c != TCG_COND_ALWAYS);
r.a0 = tcg_temp_new();
- tcg_gen_mov_tl(r.a0, a0);
+ tcg_gen_mov_reg(r.a0, a0);
return r;
}
-static DisasCond cond_make(TCGCond c, TCGv a0, TCGv a1)
+static DisasCond cond_make(TCGCond c, TCGv_reg a0, TCGv_reg a1)
{
DisasCond r = { .c = c };
assert (c != TCG_COND_NEVER && c != TCG_COND_ALWAYS);
r.a0 = tcg_temp_new();
- tcg_gen_mov_tl(r.a0, a0);
+ tcg_gen_mov_reg(r.a0, a0);
r.a1 = tcg_temp_new();
- tcg_gen_mov_tl(r.a1, a1);
+ tcg_gen_mov_reg(r.a1, a1);
return r;
}
@@ -186,7 +412,7 @@ static void cond_prep(DisasCond *cond)
{
if (cond->a1_is_0) {
cond->a1_is_0 = false;
- cond->a1 = tcg_const_tl(0);
+ cond->a1 = tcg_const_reg(0);
}
}
@@ -213,32 +439,32 @@ static void cond_free(DisasCond *cond)
}
}
-static TCGv get_temp(DisasContext *ctx)
+static TCGv_reg get_temp(DisasContext *ctx)
{
unsigned i = ctx->ntemps++;
g_assert(i < ARRAY_SIZE(ctx->temps));
return ctx->temps[i] = tcg_temp_new();
}
-static TCGv load_const(DisasContext *ctx, target_long v)
+static TCGv_reg load_const(DisasContext *ctx, target_sreg v)
{
- TCGv t = get_temp(ctx);
- tcg_gen_movi_tl(t, v);
+ TCGv_reg t = get_temp(ctx);
+ tcg_gen_movi_reg(t, v);
return t;
}
-static TCGv load_gpr(DisasContext *ctx, unsigned reg)
+static TCGv_reg load_gpr(DisasContext *ctx, unsigned reg)
{
if (reg == 0) {
- TCGv t = get_temp(ctx);
- tcg_gen_movi_tl(t, 0);
+ TCGv_reg t = get_temp(ctx);
+ tcg_gen_movi_reg(t, 0);
return t;
} else {
return cpu_gr[reg];
}
}
-static TCGv dest_gpr(DisasContext *ctx, unsigned reg)
+static TCGv_reg dest_gpr(DisasContext *ctx, unsigned reg)
{
if (reg == 0 || ctx->null_cond.c != TCG_COND_NEVER) {
return get_temp(ctx);
@@ -247,18 +473,18 @@ static TCGv dest_gpr(DisasContext *ctx, unsigned reg)
}
}
-static void save_or_nullify(DisasContext *ctx, TCGv dest, TCGv t)
+static void save_or_nullify(DisasContext *ctx, TCGv_reg dest, TCGv_reg t)
{
if (ctx->null_cond.c != TCG_COND_NEVER) {
cond_prep(&ctx->null_cond);
- tcg_gen_movcond_tl(ctx->null_cond.c, dest, ctx->null_cond.a0,
+ tcg_gen_movcond_reg(ctx->null_cond.c, dest, ctx->null_cond.a0,
ctx->null_cond.a1, dest, t);
} else {
- tcg_gen_mov_tl(dest, t);
+ tcg_gen_mov_reg(dest, t);
}
}
-static void save_gpr(DisasContext *ctx, unsigned reg, TCGv t)
+static void save_gpr(DisasContext *ctx, unsigned reg, TCGv_reg t)
{
if (reg != 0) {
save_or_nullify(ctx, cpu_gr[reg], t);
@@ -350,17 +576,17 @@ static void nullify_over(DisasContext *ctx)
if (ctx->null_cond.a0_is_n) {
ctx->null_cond.a0_is_n = false;
ctx->null_cond.a0 = tcg_temp_new();
- tcg_gen_mov_tl(ctx->null_cond.a0, cpu_psw_n);
+ tcg_gen_mov_reg(ctx->null_cond.a0, cpu_psw_n);
}
/* ... we clear it before branching over the implementation,
so that (1) it's clear after nullifying this insn and
(2) if this insn nullifies the next, PSW[N] is valid. */
if (ctx->psw_n_nonzero) {
ctx->psw_n_nonzero = false;
- tcg_gen_movi_tl(cpu_psw_n, 0);
+ tcg_gen_movi_reg(cpu_psw_n, 0);
}
- tcg_gen_brcond_tl(ctx->null_cond.c, ctx->null_cond.a0,
+ tcg_gen_brcond_reg(ctx->null_cond.c, ctx->null_cond.a0,
ctx->null_cond.a1, ctx->null_lab);
cond_free(&ctx->null_cond);
}
@@ -371,13 +597,13 @@ static void nullify_save(DisasContext *ctx)
{
if (ctx->null_cond.c == TCG_COND_NEVER) {
if (ctx->psw_n_nonzero) {
- tcg_gen_movi_tl(cpu_psw_n, 0);
+ tcg_gen_movi_reg(cpu_psw_n, 0);
}
return;
}
if (!ctx->null_cond.a0_is_n) {
cond_prep(&ctx->null_cond);
- tcg_gen_setcond_tl(ctx->null_cond.c, cpu_psw_n,
+ tcg_gen_setcond_reg(ctx->null_cond.c, cpu_psw_n,
ctx->null_cond.a0, ctx->null_cond.a1);
ctx->psw_n_nonzero = true;
}
@@ -390,7 +616,7 @@ static void nullify_save(DisasContext *ctx)
static void nullify_set(DisasContext *ctx, bool x)
{
if (ctx->psw_n_nonzero || x) {
- tcg_gen_movi_tl(cpu_psw_n, x);
+ tcg_gen_movi_reg(cpu_psw_n, x);
}
}
@@ -429,16 +655,16 @@ static DisasJumpType nullify_end(DisasContext *ctx, DisasJumpType status)
return status;
}
-static void copy_iaoq_entry(TCGv dest, target_ulong ival, TCGv vval)
+static void copy_iaoq_entry(TCGv_reg dest, target_ureg ival, TCGv_reg vval)
{
if (unlikely(ival == -1)) {
- tcg_gen_mov_tl(dest, vval);
+ tcg_gen_mov_reg(dest, vval);
} else {
- tcg_gen_movi_tl(dest, ival);
+ tcg_gen_movi_reg(dest, ival);
}
}
-static inline target_ulong iaoq_dest(DisasContext *ctx, target_long disp)
+static inline target_ureg iaoq_dest(DisasContext *ctx, target_sreg disp)
{
return ctx->iaoq_f + disp + 8;
}
@@ -465,7 +691,7 @@ static DisasJumpType gen_illegal(DisasContext *ctx)
return nullify_end(ctx, gen_excp(ctx, EXCP_ILL));
}
-static bool use_goto_tb(DisasContext *ctx, target_ulong dest)
+static bool use_goto_tb(DisasContext *ctx, target_ureg dest)
{
/* Suppress goto_tb in the case of single-steping and IO. */
if ((tb_cflags(ctx->base.tb) & CF_LAST_IO) || ctx->base.singlestep_enabled) {
@@ -485,12 +711,12 @@ static bool use_nullify_skip(DisasContext *ctx)
}
static void gen_goto_tb(DisasContext *ctx, int which,
- target_ulong f, target_ulong b)
+ target_ureg f, target_ureg b)
{
if (f != -1 && b != -1 && use_goto_tb(ctx, f)) {
tcg_gen_goto_tb(which);
- tcg_gen_movi_tl(cpu_iaoq_f, f);
- tcg_gen_movi_tl(cpu_iaoq_b, b);
+ tcg_gen_movi_reg(cpu_iaoq_f, f);
+ tcg_gen_movi_reg(cpu_iaoq_b, b);
tcg_gen_exit_tb((uintptr_t)ctx->base.tb + which);
} else {
copy_iaoq_entry(cpu_iaoq_f, f, cpu_iaoq_b);
@@ -505,9 +731,9 @@ static void gen_goto_tb(DisasContext *ctx, int which,
/* PA has a habit of taking the LSB of a field and using that as the sign,
with the rest of the field becoming the least significant bits. */
-static target_long low_sextract(uint32_t val, int pos, int len)
+static target_sreg low_sextract(uint32_t val, int pos, int len)
{
- target_ulong x = -(target_ulong)extract32(val, pos, 1);
+ target_ureg x = -(target_ureg)extract32(val, pos, 1);
x = (x << (len - 1)) | extract32(val, pos + 1, len - 1);
return x;
}
@@ -541,15 +767,15 @@ static unsigned assemble_rc64(uint32_t insn)
return r2 * 32 + r1 * 4 + r0;
}
-static target_long assemble_12(uint32_t insn)
+static target_sreg assemble_12(uint32_t insn)
{
- target_ulong x = -(target_ulong)(insn & 1);
+ target_ureg x = -(target_ureg)(insn & 1);
x = (x << 1) | extract32(insn, 2, 1);
x = (x << 10) | extract32(insn, 3, 10);
return x;
}
-static target_long assemble_16(uint32_t insn)
+static target_sreg assemble_16(uint32_t insn)
{
/* Take the name from PA2.0, which produces a 16-bit number
only with wide mode; otherwise a 14-bit number. Since we don't
@@ -557,28 +783,28 @@ static target_long assemble_16(uint32_t insn)
return low_sextract(insn, 0, 14);
}
-static target_long assemble_16a(uint32_t insn)
+static target_sreg assemble_16a(uint32_t insn)
{
/* Take the name from PA2.0, which produces a 14-bit shifted number
only with wide mode; otherwise a 12-bit shifted number. Since we
don't implement wide mode, this is always the 12-bit number. */
- target_ulong x = -(target_ulong)(insn & 1);
+ target_ureg x = -(target_ureg)(insn & 1);
x = (x << 11) | extract32(insn, 2, 11);
return x << 2;
}
-static target_long assemble_17(uint32_t insn)
+static target_sreg assemble_17(uint32_t insn)
{
- target_ulong x = -(target_ulong)(insn & 1);
+ target_ureg x = -(target_ureg)(insn & 1);
x = (x << 5) | extract32(insn, 16, 5);
x = (x << 1) | extract32(insn, 2, 1);
x = (x << 10) | extract32(insn, 3, 10);
return x << 2;
}
-static target_long assemble_21(uint32_t insn)
+static target_sreg assemble_21(uint32_t insn)
{
- target_ulong x = -(target_ulong)(insn & 1);
+ target_ureg x = -(target_ureg)(insn & 1);
x = (x << 11) | extract32(insn, 1, 11);
x = (x << 2) | extract32(insn, 14, 2);
x = (x << 5) | extract32(insn, 16, 5);
@@ -586,9 +812,9 @@ static target_long assemble_21(uint32_t insn)
return x << 11;
}
-static target_long assemble_22(uint32_t insn)
+static target_sreg assemble_22(uint32_t insn)
{
- target_ulong x = -(target_ulong)(insn & 1);
+ target_ureg x = -(target_ureg)(insn & 1);
x = (x << 10) | extract32(insn, 16, 10);
x = (x << 1) | extract32(insn, 2, 1);
x = (x << 10) | extract32(insn, 3, 10);
@@ -602,10 +828,10 @@ static target_long assemble_22(uint32_t insn)
as a whole it would appear that these relations are similar to what
a traditional NZCV set of flags would produce. */
-static DisasCond do_cond(unsigned cf, TCGv res, TCGv cb_msb, TCGv sv)
+static DisasCond do_cond(unsigned cf, TCGv_reg res, TCGv_reg cb_msb, TCGv_reg sv)
{
DisasCond cond;
- TCGv tmp;
+ TCGv_reg tmp;
switch (cf >> 1) {
case 0: /* Never / TR */
@@ -625,8 +851,8 @@ static DisasCond do_cond(unsigned cf, TCGv res, TCGv cb_msb, TCGv sv)
break;
case 5: /* ZNV / VNZ (!C | Z / C & !Z) */
tmp = tcg_temp_new();
- tcg_gen_neg_tl(tmp, cb_msb);
- tcg_gen_and_tl(tmp, tmp, res);
+ tcg_gen_neg_reg(tmp, cb_msb);
+ tcg_gen_and_reg(tmp, tmp, res);
cond = cond_make_0(TCG_COND_EQ, tmp);
tcg_temp_free(tmp);
break;
@@ -635,7 +861,7 @@ static DisasCond do_cond(unsigned cf, TCGv res, TCGv cb_msb, TCGv sv)
break;
case 7: /* OD / EV */
tmp = tcg_temp_new();
- tcg_gen_andi_tl(tmp, res, 1);
+ tcg_gen_andi_reg(tmp, res, 1);
cond = cond_make_0(TCG_COND_NE, tmp);
tcg_temp_free(tmp);
break;
@@ -653,7 +879,7 @@ static DisasCond do_cond(unsigned cf, TCGv res, TCGv cb_msb, TCGv sv)
can use the inputs directly. This can allow other computation to be
deleted as unused. */
-static DisasCond do_sub_cond(unsigned cf, TCGv res, TCGv in1, TCGv in2, TCGv sv)
+static DisasCond do_sub_cond(unsigned cf, TCGv_reg res, TCGv_reg in1, TCGv_reg in2, TCGv_reg sv)
{
DisasCond cond;
@@ -686,7 +912,7 @@ static DisasCond do_sub_cond(unsigned cf, TCGv res, TCGv in1, TCGv in2, TCGv sv)
/* Similar, but for logicals, where the carry and overflow bits are not
computed, and use of them is undefined. */
-static DisasCond do_log_cond(unsigned cf, TCGv res)
+static DisasCond do_log_cond(unsigned cf, TCGv_reg res)
{
switch (cf >> 1) {
case 4: case 5: case 6:
@@ -698,7 +924,7 @@ static DisasCond do_log_cond(unsigned cf, TCGv res)
/* Similar, but for shift/extract/deposit conditions. */
-static DisasCond do_sed_cond(unsigned orig, TCGv res)
+static DisasCond do_sed_cond(unsigned orig, TCGv_reg res)
{
unsigned c, f;
@@ -716,10 +942,10 @@ static DisasCond do_sed_cond(unsigned orig, TCGv res)
/* Similar, but for unit conditions. */
-static DisasCond do_unit_cond(unsigned cf, TCGv res, TCGv in1, TCGv in2)
+static DisasCond do_unit_cond(unsigned cf, TCGv_reg res, TCGv_reg in1, TCGv_reg in2)
{
DisasCond cond;
- TCGv tmp, cb = NULL;
+ TCGv_reg tmp, cb = NULL;
if (cf & 8) {
/* Since we want to test lots of carry-out bits all at once, do not
@@ -728,10 +954,10 @@ static DisasCond do_unit_cond(unsigned cf, TCGv res, TCGv in1, TCGv in2)
*/
cb = tcg_temp_new();
tmp = tcg_temp_new();
- tcg_gen_or_tl(cb, in1, in2);
- tcg_gen_and_tl(tmp, in1, in2);
- tcg_gen_andc_tl(cb, cb, res);
- tcg_gen_or_tl(cb, cb, tmp);
+ tcg_gen_or_reg(cb, in1, in2);
+ tcg_gen_and_reg(tmp, in1, in2);
+ tcg_gen_andc_reg(cb, cb, res);
+ tcg_gen_or_reg(cb, cb, tmp);
tcg_temp_free(tmp);
}
@@ -747,34 +973,34 @@ static DisasCond do_unit_cond(unsigned cf, TCGv res, TCGv in1, TCGv in2)
* https://graphics.stanford.edu/~seander/bithacks.html#ZeroInWord
*/
tmp = tcg_temp_new();
- tcg_gen_subi_tl(tmp, res, 0x01010101u);
- tcg_gen_andc_tl(tmp, tmp, res);
- tcg_gen_andi_tl(tmp, tmp, 0x80808080u);
+ tcg_gen_subi_reg(tmp, res, 0x01010101u);
+ tcg_gen_andc_reg(tmp, tmp, res);
+ tcg_gen_andi_reg(tmp, tmp, 0x80808080u);
cond = cond_make_0(TCG_COND_NE, tmp);
tcg_temp_free(tmp);
break;
case 3: /* SHZ / NHZ */
tmp = tcg_temp_new();
- tcg_gen_subi_tl(tmp, res, 0x00010001u);
- tcg_gen_andc_tl(tmp, tmp, res);
- tcg_gen_andi_tl(tmp, tmp, 0x80008000u);
+ tcg_gen_subi_reg(tmp, res, 0x00010001u);
+ tcg_gen_andc_reg(tmp, tmp, res);
+ tcg_gen_andi_reg(tmp, tmp, 0x80008000u);
cond = cond_make_0(TCG_COND_NE, tmp);
tcg_temp_free(tmp);
break;
case 4: /* SDC / NDC */
- tcg_gen_andi_tl(cb, cb, 0x88888888u);
+ tcg_gen_andi_reg(cb, cb, 0x88888888u);
cond = cond_make_0(TCG_COND_NE, cb);
break;
case 6: /* SBC / NBC */
- tcg_gen_andi_tl(cb, cb, 0x80808080u);
+ tcg_gen_andi_reg(cb, cb, 0x80808080u);
cond = cond_make_0(TCG_COND_NE, cb);
break;
case 7: /* SHC / NHC */
- tcg_gen_andi_tl(cb, cb, 0x80008000u);
+ tcg_gen_andi_reg(cb, cb, 0x80008000u);
cond = cond_make_0(TCG_COND_NE, cb);
break;
@@ -792,38 +1018,38 @@ static DisasCond do_unit_cond(unsigned cf, TCGv res, TCGv in1, TCGv in2)
}
/* Compute signed overflow for addition. */
-static TCGv do_add_sv(DisasContext *ctx, TCGv res, TCGv in1, TCGv in2)
+static TCGv_reg do_add_sv(DisasContext *ctx, TCGv_reg res, TCGv_reg in1, TCGv_reg in2)
{
- TCGv sv = get_temp(ctx);
- TCGv tmp = tcg_temp_new();
+ TCGv_reg sv = get_temp(ctx);
+ TCGv_reg tmp = tcg_temp_new();
- tcg_gen_xor_tl(sv, res, in1);
- tcg_gen_xor_tl(tmp, in1, in2);
- tcg_gen_andc_tl(sv, sv, tmp);
+ tcg_gen_xor_reg(sv, res, in1);
+ tcg_gen_xor_reg(tmp, in1, in2);
+ tcg_gen_andc_reg(sv, sv, tmp);
tcg_temp_free(tmp);
return sv;
}
/* Compute signed overflow for subtraction. */
-static TCGv do_sub_sv(DisasContext *ctx, TCGv res, TCGv in1, TCGv in2)
+static TCGv_reg do_sub_sv(DisasContext *ctx, TCGv_reg res, TCGv_reg in1, TCGv_reg in2)
{
- TCGv sv = get_temp(ctx);
- TCGv tmp = tcg_temp_new();
+ TCGv_reg sv = get_temp(ctx);
+ TCGv_reg tmp = tcg_temp_new();
- tcg_gen_xor_tl(sv, res, in1);
- tcg_gen_xor_tl(tmp, in1, in2);
- tcg_gen_and_tl(sv, sv, tmp);
+ tcg_gen_xor_reg(sv, res, in1);
+ tcg_gen_xor_reg(tmp, in1, in2);
+ tcg_gen_and_reg(sv, sv, tmp);
tcg_temp_free(tmp);
return sv;
}
-static DisasJumpType do_add(DisasContext *ctx, unsigned rt, TCGv in1, TCGv in2,
+static DisasJumpType do_add(DisasContext *ctx, unsigned rt, TCGv_reg in1, TCGv_reg in2,
unsigned shift, bool is_l, bool is_tsv, bool is_tc,
bool is_c, unsigned cf)
{
- TCGv dest, cb, cb_msb, sv, tmp;
+ TCGv_reg dest, cb, cb_msb, sv, tmp;
unsigned c = cf >> 1;
DisasCond cond;
@@ -833,27 +1059,27 @@ static DisasJumpType do_add(DisasContext *ctx, unsigned rt, TCGv in1, TCGv in2,
if (shift) {
tmp = get_temp(ctx);
- tcg_gen_shli_tl(tmp, in1, shift);
+ tcg_gen_shli_reg(tmp, in1, shift);
in1 = tmp;
}
if (!is_l || c == 4 || c == 5) {
- TCGv zero = tcg_const_tl(0);
+ TCGv_reg zero = tcg_const_reg(0);
cb_msb = get_temp(ctx);
- tcg_gen_add2_tl(dest, cb_msb, in1, zero, in2, zero);
+ tcg_gen_add2_reg(dest, cb_msb, in1, zero, in2, zero);
if (is_c) {
- tcg_gen_add2_tl(dest, cb_msb, dest, cb_msb, cpu_psw_cb_msb, zero);
+ tcg_gen_add2_reg(dest, cb_msb, dest, cb_msb, cpu_psw_cb_msb, zero);
}
tcg_temp_free(zero);
if (!is_l) {
cb = get_temp(ctx);
- tcg_gen_xor_tl(cb, in1, in2);
- tcg_gen_xor_tl(cb, cb, dest);
+ tcg_gen_xor_reg(cb, in1, in2);
+ tcg_gen_xor_reg(cb, cb, dest);
}
} else {
- tcg_gen_add_tl(dest, in1, in2);
+ tcg_gen_add_reg(dest, in1, in2);
if (is_c) {
- tcg_gen_add_tl(dest, dest, cpu_psw_cb_msb);
+ tcg_gen_add_reg(dest, dest, cpu_psw_cb_msb);
}
}
@@ -872,7 +1098,7 @@ static DisasJumpType do_add(DisasContext *ctx, unsigned rt, TCGv in1, TCGv in2,
if (is_tc) {
cond_prep(&cond);
tmp = tcg_temp_new();
- tcg_gen_setcond_tl(cond.c, tmp, cond.a0, cond.a1);
+ tcg_gen_setcond_reg(cond.c, tmp, cond.a0, cond.a1);
gen_helper_tcond(cpu_env, tmp);
tcg_temp_free(tmp);
}
@@ -891,10 +1117,10 @@ static DisasJumpType do_add(DisasContext *ctx, unsigned rt, TCGv in1, TCGv in2,
return DISAS_NEXT;
}
-static DisasJumpType do_sub(DisasContext *ctx, unsigned rt, TCGv in1, TCGv in2,
+static DisasJumpType do_sub(DisasContext *ctx, unsigned rt, TCGv_reg in1, TCGv_reg in2,
bool is_tsv, bool is_b, bool is_tc, unsigned cf)
{
- TCGv dest, sv, cb, cb_msb, zero, tmp;
+ TCGv_reg dest, sv, cb, cb_msb, zero, tmp;
unsigned c = cf >> 1;
DisasCond cond;
@@ -902,21 +1128,21 @@ static DisasJumpType do_sub(DisasContext *ctx, unsigned rt, TCGv in1, TCGv in2,
cb = tcg_temp_new();
cb_msb = tcg_temp_new();
- zero = tcg_const_tl(0);
+ zero = tcg_const_reg(0);
if (is_b) {
/* DEST,C = IN1 + ~IN2 + C. */
- tcg_gen_not_tl(cb, in2);
- tcg_gen_add2_tl(dest, cb_msb, in1, zero, cpu_psw_cb_msb, zero);
- tcg_gen_add2_tl(dest, cb_msb, dest, cb_msb, cb, zero);
- tcg_gen_xor_tl(cb, cb, in1);
- tcg_gen_xor_tl(cb, cb, dest);
+ tcg_gen_not_reg(cb, in2);
+ tcg_gen_add2_reg(dest, cb_msb, in1, zero, cpu_psw_cb_msb, zero);
+ tcg_gen_add2_reg(dest, cb_msb, dest, cb_msb, cb, zero);
+ tcg_gen_xor_reg(cb, cb, in1);
+ tcg_gen_xor_reg(cb, cb, dest);
} else {
/* DEST,C = IN1 + ~IN2 + 1. We can produce the same result in fewer
operations by seeding the high word with 1 and subtracting. */
- tcg_gen_movi_tl(cb_msb, 1);
- tcg_gen_sub2_tl(dest, cb_msb, in1, cb_msb, in2, zero);
- tcg_gen_eqv_tl(cb, in1, in2);
- tcg_gen_xor_tl(cb, cb, dest);
+ tcg_gen_movi_reg(cb_msb, 1);
+ tcg_gen_sub2_reg(dest, cb_msb, in1, cb_msb, in2, zero);
+ tcg_gen_eqv_reg(cb, in1, in2);
+ tcg_gen_xor_reg(cb, cb, dest);
}
tcg_temp_free(zero);
@@ -940,7 +1166,7 @@ static DisasJumpType do_sub(DisasContext *ctx, unsigned rt, TCGv in1, TCGv in2,
if (is_tc) {
cond_prep(&cond);
tmp = tcg_temp_new();
- tcg_gen_setcond_tl(cond.c, tmp, cond.a0, cond.a1);
+ tcg_gen_setcond_reg(cond.c, tmp, cond.a0, cond.a1);
gen_helper_tcond(cpu_env, tmp);
tcg_temp_free(tmp);
}
@@ -957,14 +1183,14 @@ static DisasJumpType do_sub(DisasContext *ctx, unsigned rt, TCGv in1, TCGv in2,
return DISAS_NEXT;
}
-static DisasJumpType do_cmpclr(DisasContext *ctx, unsigned rt, TCGv in1,
- TCGv in2, unsigned cf)
+static DisasJumpType do_cmpclr(DisasContext *ctx, unsigned rt, TCGv_reg in1,
+ TCGv_reg in2, unsigned cf)
{
- TCGv dest, sv;
+ TCGv_reg dest, sv;
DisasCond cond;
dest = tcg_temp_new();
- tcg_gen_sub_tl(dest, in1, in2);
+ tcg_gen_sub_reg(dest, in1, in2);
/* Compute signed overflow if required. */
sv = NULL;
@@ -976,7 +1202,7 @@ static DisasJumpType do_cmpclr(DisasContext *ctx, unsigned rt, TCGv in1,
cond = do_sub_cond(cf, dest, in1, in2, sv);
/* Clear. */
- tcg_gen_movi_tl(dest, 0);
+ tcg_gen_movi_reg(dest, 0);
save_gpr(ctx, rt, dest);
tcg_temp_free(dest);
@@ -986,10 +1212,10 @@ static DisasJumpType do_cmpclr(DisasContext *ctx, unsigned rt, TCGv in1,
return DISAS_NEXT;
}
-static DisasJumpType do_log(DisasContext *ctx, unsigned rt, TCGv in1, TCGv in2,
- unsigned cf, void (*fn)(TCGv, TCGv, TCGv))
+static DisasJumpType do_log(DisasContext *ctx, unsigned rt, TCGv_reg in1, TCGv_reg in2,
+ unsigned cf, void (*fn)(TCGv_reg, TCGv_reg, TCGv_reg))
{
- TCGv dest = dest_gpr(ctx, rt);
+ TCGv_reg dest = dest_gpr(ctx, rt);
/* Perform the operation, and writeback. */
fn(dest, in1, in2);
@@ -1003,11 +1229,11 @@ static DisasJumpType do_log(DisasContext *ctx, unsigned rt, TCGv in1, TCGv in2,
return DISAS_NEXT;
}
-static DisasJumpType do_unit(DisasContext *ctx, unsigned rt, TCGv in1,
- TCGv in2, unsigned cf, bool is_tc,
- void (*fn)(TCGv, TCGv, TCGv))
+static DisasJumpType do_unit(DisasContext *ctx, unsigned rt, TCGv_reg in1,
+ TCGv_reg in2, unsigned cf, bool is_tc,
+ void (*fn)(TCGv_reg, TCGv_reg, TCGv_reg))
{
- TCGv dest;
+ TCGv_reg dest;
DisasCond cond;
if (cf == 0) {
@@ -1022,9 +1248,9 @@ static DisasJumpType do_unit(DisasContext *ctx, unsigned rt, TCGv in1,
cond = do_unit_cond(cf, dest, in1, in2);
if (is_tc) {
- TCGv tmp = tcg_temp_new();
+ TCGv_reg tmp = tcg_temp_new();
cond_prep(&cond);
- tcg_gen_setcond_tl(cond.c, tmp, cond.a0, cond.a1);
+ tcg_gen_setcond_reg(cond.c, tmp, cond.a0, cond.a1);
gen_helper_tcond(cpu_env, tmp);
tcg_temp_free(tmp);
}
@@ -1042,10 +1268,10 @@ static DisasJumpType do_unit(DisasContext *ctx, unsigned rt, TCGv in1,
* = 0 for no base register update.
*/
static void do_load_32(DisasContext *ctx, TCGv_i32 dest, unsigned rb,
- unsigned rx, int scale, target_long disp,
+ unsigned rx, int scale, target_sreg disp,
int modify, TCGMemOp mop)
{
- TCGv addr, base;
+ TCGv_reg addr, base;
/* Caller uses nullify_over/nullify_end. */
assert(ctx->null_cond.c == TCG_COND_NEVER);
@@ -1055,10 +1281,10 @@ static void do_load_32(DisasContext *ctx, TCGv_i32 dest, unsigned rb,
/* Note that RX is mutually exclusive with DISP. */
if (rx) {
- tcg_gen_shli_tl(addr, cpu_gr[rx], scale);
- tcg_gen_add_tl(addr, addr, base);
+ tcg_gen_shli_reg(addr, cpu_gr[rx], scale);
+ tcg_gen_add_reg(addr, addr, base);
} else {
- tcg_gen_addi_tl(addr, base, disp);
+ tcg_gen_addi_reg(addr, base, disp);
}
if (modify == 0) {
@@ -1072,10 +1298,10 @@ static void do_load_32(DisasContext *ctx, TCGv_i32 dest, unsigned rb,
}
static void do_load_64(DisasContext *ctx, TCGv_i64 dest, unsigned rb,
- unsigned rx, int scale, target_long disp,
+ unsigned rx, int scale, target_sreg disp,
int modify, TCGMemOp mop)
{
- TCGv addr, base;
+ TCGv_reg addr, base;
/* Caller uses nullify_over/nullify_end. */
assert(ctx->null_cond.c == TCG_COND_NEVER);
@@ -1085,10 +1311,10 @@ static void do_load_64(DisasContext *ctx, TCGv_i64 dest, unsigned rb,
/* Note that RX is mutually exclusive with DISP. */
if (rx) {
- tcg_gen_shli_tl(addr, cpu_gr[rx], scale);
- tcg_gen_add_tl(addr, addr, base);
+ tcg_gen_shli_reg(addr, cpu_gr[rx], scale);
+ tcg_gen_add_reg(addr, addr, base);
} else {
- tcg_gen_addi_tl(addr, base, disp);
+ tcg_gen_addi_reg(addr, base, disp);
}
if (modify == 0) {
@@ -1102,10 +1328,10 @@ static void do_load_64(DisasContext *ctx, TCGv_i64 dest, unsigned rb,
}
static void do_store_32(DisasContext *ctx, TCGv_i32 src, unsigned rb,
- unsigned rx, int scale, target_long disp,
+ unsigned rx, int scale, target_sreg disp,
int modify, TCGMemOp mop)
{
- TCGv addr, base;
+ TCGv_reg addr, base;
/* Caller uses nullify_over/nullify_end. */
assert(ctx->null_cond.c == TCG_COND_NEVER);
@@ -1115,10 +1341,10 @@ static void do_store_32(DisasContext *ctx, TCGv_i32 src, unsigned rb,
/* Note that RX is mutually exclusive with DISP. */
if (rx) {
- tcg_gen_shli_tl(addr, cpu_gr[rx], scale);
- tcg_gen_add_tl(addr, addr, base);
+ tcg_gen_shli_reg(addr, cpu_gr[rx], scale);
+ tcg_gen_add_reg(addr, addr, base);
} else {
- tcg_gen_addi_tl(addr, base, disp);
+ tcg_gen_addi_reg(addr, base, disp);
}
tcg_gen_qemu_st_i32(src, (modify <= 0 ? addr : base), MMU_USER_IDX, mop);
@@ -1130,10 +1356,10 @@ static void do_store_32(DisasContext *ctx, TCGv_i32 src, unsigned rb,
}
static void do_store_64(DisasContext *ctx, TCGv_i64 src, unsigned rb,
- unsigned rx, int scale, target_long disp,
+ unsigned rx, int scale, target_sreg disp,
int modify, TCGMemOp mop)
{
- TCGv addr, base;
+ TCGv_reg addr, base;
/* Caller uses nullify_over/nullify_end. */
assert(ctx->null_cond.c == TCG_COND_NEVER);
@@ -1143,10 +1369,10 @@ static void do_store_64(DisasContext *ctx, TCGv_i64 src, unsigned rb,
/* Note that RX is mutually exclusive with DISP. */
if (rx) {
- tcg_gen_shli_tl(addr, cpu_gr[rx], scale);
- tcg_gen_add_tl(addr, addr, base);
+ tcg_gen_shli_reg(addr, cpu_gr[rx], scale);
+ tcg_gen_add_reg(addr, addr, base);
} else {
- tcg_gen_addi_tl(addr, base, disp);
+ tcg_gen_addi_reg(addr, base, disp);
}
tcg_gen_qemu_st_i64(src, (modify <= 0 ? addr : base), MMU_USER_IDX, mop);
@@ -1157,19 +1383,19 @@ static void do_store_64(DisasContext *ctx, TCGv_i64 src, unsigned rb,
tcg_temp_free(addr);
}
-#if TARGET_LONG_BITS == 64
-#define do_load_tl do_load_64
-#define do_store_tl do_store_64
+#if TARGET_REGISTER_BITS == 64
+#define do_load_reg do_load_64
+#define do_store_reg do_store_64
#else
-#define do_load_tl do_load_32
-#define do_store_tl do_store_32
+#define do_load_reg do_load_32
+#define do_store_reg do_store_32
#endif
static DisasJumpType do_load(DisasContext *ctx, unsigned rt, unsigned rb,
- unsigned rx, int scale, target_long disp,
+ unsigned rx, int scale, target_sreg disp,
int modify, TCGMemOp mop)
{
- TCGv dest;
+ TCGv_reg dest;
nullify_over(ctx);
@@ -1180,14 +1406,14 @@ static DisasJumpType do_load(DisasContext *ctx, unsigned rt, unsigned rb,
/* Make sure if RT == RB, we see the result of the load. */
dest = get_temp(ctx);
}
- do_load_tl(ctx, dest, rb, rx, scale, disp, modify, mop);
+ do_load_reg(ctx, dest, rb, rx, scale, disp, modify, mop);
save_gpr(ctx, rt, dest);
return nullify_end(ctx, DISAS_NEXT);
}
static DisasJumpType do_floadw(DisasContext *ctx, unsigned rt, unsigned rb,
- unsigned rx, int scale, target_long disp,
+ unsigned rx, int scale, target_sreg disp,
int modify)
{
TCGv_i32 tmp;
@@ -1207,7 +1433,7 @@ static DisasJumpType do_floadw(DisasContext *ctx, unsigned rt, unsigned rb,
}
static DisasJumpType do_floadd(DisasContext *ctx, unsigned rt, unsigned rb,
- unsigned rx, int scale, target_long disp,
+ unsigned rx, int scale, target_sreg disp,
int modify)
{
TCGv_i64 tmp;
@@ -1227,15 +1453,15 @@ static DisasJumpType do_floadd(DisasContext *ctx, unsigned rt, unsigned rb,
}
static DisasJumpType do_store(DisasContext *ctx, unsigned rt, unsigned rb,
- target_long disp, int modify, TCGMemOp mop)
+ target_sreg disp, int modify, TCGMemOp mop)
{
nullify_over(ctx);
- do_store_tl(ctx, load_gpr(ctx, rt), rb, 0, 0, disp, modify, mop);
+ do_store_reg(ctx, load_gpr(ctx, rt), rb, 0, 0, disp, modify, mop);
return nullify_end(ctx, DISAS_NEXT);
}
static DisasJumpType do_fstorew(DisasContext *ctx, unsigned rt, unsigned rb,
- unsigned rx, int scale, target_long disp,
+ unsigned rx, int scale, target_sreg disp,
int modify)
{
TCGv_i32 tmp;
@@ -1250,7 +1476,7 @@ static DisasJumpType do_fstorew(DisasContext *ctx, unsigned rt, unsigned rb,
}
static DisasJumpType do_fstored(DisasContext *ctx, unsigned rt, unsigned rb,
- unsigned rx, int scale, target_long disp,
+ unsigned rx, int scale, target_sreg disp,
int modify)
{
TCGv_i64 tmp;
@@ -1370,7 +1596,7 @@ static DisasJumpType do_fop_dedd(DisasContext *ctx, unsigned rt,
/* Emit an unconditional branch to a direct target, which may or may not
have already had nullification handled. */
-static DisasJumpType do_dbranch(DisasContext *ctx, target_ulong dest,
+static DisasJumpType do_dbranch(DisasContext *ctx, target_ureg dest,
unsigned link, bool is_n)
{
if (ctx->null_cond.c == TCG_COND_NEVER && ctx->null_lab == NULL) {
@@ -1407,10 +1633,10 @@ static DisasJumpType do_dbranch(DisasContext *ctx, target_ulong dest,
/* Emit a conditional branch to a direct target. If the branch itself
is nullified, we should have already used nullify_over. */
-static DisasJumpType do_cbranch(DisasContext *ctx, target_long disp, bool is_n,
+static DisasJumpType do_cbranch(DisasContext *ctx, target_sreg disp, bool is_n,
DisasCond *cond)
{
- target_ulong dest = iaoq_dest(ctx, disp);
+ target_ureg dest = iaoq_dest(ctx, disp);
TCGLabel *taken = NULL;
TCGCond c = cond->c;
bool n;
@@ -1427,7 +1653,7 @@ static DisasJumpType do_cbranch(DisasContext *ctx, target_long disp, bool is_n,
taken = gen_new_label();
cond_prep(cond);
- tcg_gen_brcond_tl(c, cond->a0, cond->a1, taken);
+ tcg_gen_brcond_reg(c, cond->a0, cond->a1, taken);
cond_free(cond);
/* Not taken: Condition not satisfied; nullify on backward branches. */
@@ -1468,10 +1694,10 @@ static DisasJumpType do_cbranch(DisasContext *ctx, target_long disp, bool is_n,
/* Emit an unconditional branch to an indirect target. This handles
nullification of the branch itself. */
-static DisasJumpType do_ibranch(DisasContext *ctx, TCGv dest,
+static DisasJumpType do_ibranch(DisasContext *ctx, TCGv_reg dest,
unsigned link, bool is_n)
{
- TCGv a0, a1, next, tmp;
+ TCGv_reg a0, a1, next, tmp;
TCGCond c;
assert(ctx->null_lab == NULL);
@@ -1481,7 +1707,7 @@ static DisasJumpType do_ibranch(DisasContext *ctx, TCGv dest,
copy_iaoq_entry(cpu_gr[link], ctx->iaoq_n, ctx->iaoq_n_var);
}
next = get_temp(ctx);
- tcg_gen_mov_tl(next, dest);
+ tcg_gen_mov_reg(next, dest);
ctx->iaoq_n = -1;
ctx->iaoq_n_var = next;
if (is_n) {
@@ -1500,12 +1726,12 @@ static DisasJumpType do_ibranch(DisasContext *ctx, TCGv dest,
/* We do have to handle the non-local temporary, DEST, before
branching. Since IOAQ_F is not really live at this point, we
can simply store DEST optimistically. Similarly with IAOQ_B. */
- tcg_gen_mov_tl(cpu_iaoq_f, dest);
- tcg_gen_addi_tl(cpu_iaoq_b, dest, 4);
+ tcg_gen_mov_reg(cpu_iaoq_f, dest);
+ tcg_gen_addi_reg(cpu_iaoq_b, dest, 4);
nullify_over(ctx);
if (link != 0) {
- tcg_gen_movi_tl(cpu_gr[link], ctx->iaoq_n);
+ tcg_gen_movi_reg(cpu_gr[link], ctx->iaoq_n);
}
tcg_gen_lookup_and_goto_ptr();
return nullify_end(ctx, DISAS_NEXT);
@@ -1519,19 +1745,19 @@ static DisasJumpType do_ibranch(DisasContext *ctx, TCGv dest,
next = get_temp(ctx);
copy_iaoq_entry(tmp, ctx->iaoq_n, ctx->iaoq_n_var);
- tcg_gen_movcond_tl(c, next, a0, a1, tmp, dest);
+ tcg_gen_movcond_reg(c, next, a0, a1, tmp, dest);
ctx->iaoq_n = -1;
ctx->iaoq_n_var = next;
if (link != 0) {
- tcg_gen_movcond_tl(c, cpu_gr[link], a0, a1, cpu_gr[link], tmp);
+ tcg_gen_movcond_reg(c, cpu_gr[link], a0, a1, cpu_gr[link], tmp);
}
if (is_n) {
/* The branch nullifies the next insn, which means the state of N
after the branch is the inverse of the state of N that applied
to the branch. */
- tcg_gen_setcond_tl(tcg_invert_cond(c), cpu_psw_n, a0, a1);
+ tcg_gen_setcond_reg(tcg_invert_cond(c), cpu_psw_n, a0, a1);
cond_free(&ctx->null_cond);
ctx->null_cond = cond_make_n();
ctx->psw_n_nonzero = true;
@@ -1560,7 +1786,7 @@ static DisasJumpType do_page_zero(DisasContext *ctx)
case TCG_COND_NEVER:
break;
case TCG_COND_ALWAYS:
- tcg_gen_movi_tl(cpu_psw_n, 0);
+ tcg_gen_movi_reg(cpu_psw_n, 0);
goto do_sigill;
default:
/* Since this is always the first (and only) insn within the
@@ -1586,9 +1812,9 @@ static DisasJumpType do_page_zero(DisasContext *ctx)
return DISAS_NORETURN;
case 0xe0: /* SET_THREAD_POINTER */
- tcg_gen_mov_tl(cpu_cr27, cpu_gr[26]);
- tcg_gen_mov_tl(cpu_iaoq_f, cpu_gr[31]);
- tcg_gen_addi_tl(cpu_iaoq_b, cpu_iaoq_f, 4);
+ tcg_gen_mov_reg(cpu_cr27, cpu_gr[26]);
+ tcg_gen_mov_reg(cpu_iaoq_f, cpu_gr[31]);
+ tcg_gen_addi_reg(cpu_iaoq_b, cpu_iaoq_f, 4);
return DISAS_IAQ_N_UPDATED;
case 0x100: /* SYSCALL */
@@ -1631,8 +1857,8 @@ static DisasJumpType trans_mfia(DisasContext *ctx, uint32_t insn,
const DisasInsn *di)
{
unsigned rt = extract32(insn, 0, 5);
- TCGv tmp = dest_gpr(ctx, rt);
- tcg_gen_movi_tl(tmp, ctx->iaoq_f);
+ TCGv_reg tmp = dest_gpr(ctx, rt);
+ tcg_gen_movi_reg(tmp, ctx->iaoq_f);
save_gpr(ctx, rt, tmp);
cond_free(&ctx->null_cond);
@@ -1643,10 +1869,10 @@ static DisasJumpType trans_mfsp(DisasContext *ctx, uint32_t insn,
const DisasInsn *di)
{
unsigned rt = extract32(insn, 0, 5);
- TCGv tmp = dest_gpr(ctx, rt);
+ TCGv_reg tmp = dest_gpr(ctx, rt);
/* ??? We don't implement space registers. */
- tcg_gen_movi_tl(tmp, 0);
+ tcg_gen_movi_reg(tmp, 0);
save_gpr(ctx, rt, tmp);
cond_free(&ctx->null_cond);
@@ -1658,7 +1884,7 @@ static DisasJumpType trans_mfctl(DisasContext *ctx, uint32_t insn,
{
unsigned rt = extract32(insn, 0, 5);
unsigned ctl = extract32(insn, 21, 5);
- TCGv tmp;
+ TCGv_reg tmp;
switch (ctl) {
case 11: /* SAR */
@@ -1666,7 +1892,7 @@ static DisasJumpType trans_mfctl(DisasContext *ctx, uint32_t insn,
if (extract32(insn, 14, 1) == 0) {
/* MFSAR without ,W masks low 5 bits. */
tmp = dest_gpr(ctx, rt);
- tcg_gen_andi_tl(tmp, cpu_sar, 31);
+ tcg_gen_andi_reg(tmp, cpu_sar, 31);
save_gpr(ctx, rt, tmp);
break;
}
@@ -1698,11 +1924,11 @@ static DisasJumpType trans_mtctl(DisasContext *ctx, uint32_t insn,
{
unsigned rin = extract32(insn, 16, 5);
unsigned ctl = extract32(insn, 21, 5);
- TCGv tmp;
+ TCGv_reg tmp;
if (ctl == 11) { /* SAR */
tmp = tcg_temp_new();
- tcg_gen_andi_tl(tmp, load_gpr(ctx, rin), TARGET_LONG_BITS - 1);
+ tcg_gen_andi_reg(tmp, load_gpr(ctx, rin), TARGET_REGISTER_BITS - 1);
save_or_nullify(ctx, cpu_sar, tmp);
tcg_temp_free(tmp);
} else {
@@ -1718,10 +1944,10 @@ static DisasJumpType trans_mtsarcm(DisasContext *ctx, uint32_t insn,
const DisasInsn *di)
{
unsigned rin = extract32(insn, 16, 5);
- TCGv tmp = tcg_temp_new();
+ TCGv_reg tmp = tcg_temp_new();
- tcg_gen_not_tl(tmp, load_gpr(ctx, rin));
- tcg_gen_andi_tl(tmp, tmp, TARGET_LONG_BITS - 1);
+ tcg_gen_not_reg(tmp, load_gpr(ctx, rin));
+ tcg_gen_andi_reg(tmp, tmp, TARGET_REGISTER_BITS - 1);
save_or_nullify(ctx, cpu_sar, tmp);
tcg_temp_free(tmp);
@@ -1733,10 +1959,10 @@ static DisasJumpType trans_ldsid(DisasContext *ctx, uint32_t insn,
const DisasInsn *di)
{
unsigned rt = extract32(insn, 0, 5);
- TCGv dest = dest_gpr(ctx, rt);
+ TCGv_reg dest = dest_gpr(ctx, rt);
/* Since we don't implement space registers, this returns zero. */
- tcg_gen_movi_tl(dest, 0);
+ tcg_gen_movi_reg(dest, 0);
save_gpr(ctx, rt, dest);
cond_free(&ctx->null_cond);
@@ -1761,12 +1987,12 @@ static DisasJumpType trans_base_idx_mod(DisasContext *ctx, uint32_t insn,
{
unsigned rb = extract32(insn, 21, 5);
unsigned rx = extract32(insn, 16, 5);
- TCGv dest = dest_gpr(ctx, rb);
- TCGv src1 = load_gpr(ctx, rb);
- TCGv src2 = load_gpr(ctx, rx);
+ TCGv_reg dest = dest_gpr(ctx, rb);
+ TCGv_reg src1 = load_gpr(ctx, rb);
+ TCGv_reg src2 = load_gpr(ctx, rx);
/* The only thing we need to do is the base register modification. */
- tcg_gen_add_tl(dest, src1, src2);
+ tcg_gen_add_reg(dest, src1, src2);
save_gpr(ctx, rb, dest);
cond_free(&ctx->null_cond);
@@ -1779,7 +2005,7 @@ static DisasJumpType trans_probe(DisasContext *ctx, uint32_t insn,
unsigned rt = extract32(insn, 0, 5);
unsigned rb = extract32(insn, 21, 5);
unsigned is_write = extract32(insn, 6, 1);
- TCGv dest;
+ TCGv_reg dest;
nullify_over(ctx);
@@ -1821,7 +2047,7 @@ static DisasJumpType trans_add(DisasContext *ctx, uint32_t insn,
unsigned ext = extract32(insn, 8, 4);
unsigned shift = extract32(insn, 6, 2);
unsigned rt = extract32(insn, 0, 5);
- TCGv tcg_r1, tcg_r2;
+ TCGv_reg tcg_r1, tcg_r2;
bool is_c = false;
bool is_l = false;
bool is_tc = false;
@@ -1864,7 +2090,7 @@ static DisasJumpType trans_sub(DisasContext *ctx, uint32_t insn,
unsigned cf = extract32(insn, 12, 4);
unsigned ext = extract32(insn, 6, 6);
unsigned rt = extract32(insn, 0, 5);
- TCGv tcg_r1, tcg_r2;
+ TCGv_reg tcg_r1, tcg_r2;
bool is_b = false;
bool is_tc = false;
bool is_tsv = false;
@@ -1908,7 +2134,7 @@ static DisasJumpType trans_log(DisasContext *ctx, uint32_t insn,
unsigned r1 = extract32(insn, 16, 5);
unsigned cf = extract32(insn, 12, 4);
unsigned rt = extract32(insn, 0, 5);
- TCGv tcg_r1, tcg_r2;
+ TCGv_reg tcg_r1, tcg_r2;
DisasJumpType ret;
if (cf) {
@@ -1928,8 +2154,8 @@ static DisasJumpType trans_copy(DisasContext *ctx, uint32_t insn,
unsigned rt = extract32(insn, 0, 5);
if (r1 == 0) {
- TCGv dest = dest_gpr(ctx, rt);
- tcg_gen_movi_tl(dest, 0);
+ TCGv_reg dest = dest_gpr(ctx, rt);
+ tcg_gen_movi_reg(dest, 0);
save_gpr(ctx, rt, dest);
} else {
save_gpr(ctx, rt, cpu_gr[r1]);
@@ -1945,7 +2171,7 @@ static DisasJumpType trans_cmpclr(DisasContext *ctx, uint32_t insn,
unsigned r1 = extract32(insn, 16, 5);
unsigned cf = extract32(insn, 12, 4);
unsigned rt = extract32(insn, 0, 5);
- TCGv tcg_r1, tcg_r2;
+ TCGv_reg tcg_r1, tcg_r2;
DisasJumpType ret;
if (cf) {
@@ -1964,7 +2190,7 @@ static DisasJumpType trans_uxor(DisasContext *ctx, uint32_t insn,
unsigned r1 = extract32(insn, 16, 5);
unsigned cf = extract32(insn, 12, 4);
unsigned rt = extract32(insn, 0, 5);
- TCGv tcg_r1, tcg_r2;
+ TCGv_reg tcg_r1, tcg_r2;
DisasJumpType ret;
if (cf) {
@@ -1972,7 +2198,7 @@ static DisasJumpType trans_uxor(DisasContext *ctx, uint32_t insn,
}
tcg_r1 = load_gpr(ctx, r1);
tcg_r2 = load_gpr(ctx, r2);
- ret = do_unit(ctx, rt, tcg_r1, tcg_r2, cf, false, tcg_gen_xor_tl);
+ ret = do_unit(ctx, rt, tcg_r1, tcg_r2, cf, false, tcg_gen_xor_reg);
return nullify_end(ctx, ret);
}
@@ -1984,7 +2210,7 @@ static DisasJumpType trans_uaddcm(DisasContext *ctx, uint32_t insn,
unsigned cf = extract32(insn, 12, 4);
unsigned is_tc = extract32(insn, 6, 1);
unsigned rt = extract32(insn, 0, 5);
- TCGv tcg_r1, tcg_r2, tmp;
+ TCGv_reg tcg_r1, tcg_r2, tmp;
DisasJumpType ret;
if (cf) {
@@ -1993,8 +2219,8 @@ static DisasJumpType trans_uaddcm(DisasContext *ctx, uint32_t insn,
tcg_r1 = load_gpr(ctx, r1);
tcg_r2 = load_gpr(ctx, r2);
tmp = get_temp(ctx);
- tcg_gen_not_tl(tmp, tcg_r2);
- ret = do_unit(ctx, rt, tcg_r1, tmp, cf, is_tc, tcg_gen_add_tl);
+ tcg_gen_not_reg(tmp, tcg_r2);
+ ret = do_unit(ctx, rt, tcg_r1, tmp, cf, is_tc, tcg_gen_add_reg);
return nullify_end(ctx, ret);
}
@@ -2005,20 +2231,20 @@ static DisasJumpType trans_dcor(DisasContext *ctx, uint32_t insn,
unsigned cf = extract32(insn, 12, 4);
unsigned is_i = extract32(insn, 6, 1);
unsigned rt = extract32(insn, 0, 5);
- TCGv tmp;
+ TCGv_reg tmp;
DisasJumpType ret;
nullify_over(ctx);
tmp = get_temp(ctx);
- tcg_gen_shri_tl(tmp, cpu_psw_cb, 3);
+ tcg_gen_shri_reg(tmp, cpu_psw_cb, 3);
if (!is_i) {
- tcg_gen_not_tl(tmp, tmp);
+ tcg_gen_not_reg(tmp, tmp);
}
- tcg_gen_andi_tl(tmp, tmp, 0x11111111);
- tcg_gen_muli_tl(tmp, tmp, 6);
+ tcg_gen_andi_reg(tmp, tmp, 0x11111111);
+ tcg_gen_muli_reg(tmp, tmp, 6);
ret = do_unit(ctx, rt, tmp, load_gpr(ctx, r2), cf, false,
- is_i ? tcg_gen_add_tl : tcg_gen_sub_tl);
+ is_i ? tcg_gen_add_reg : tcg_gen_sub_reg);
return nullify_end(ctx, ret);
}
@@ -2030,7 +2256,7 @@ static DisasJumpType trans_ds(DisasContext *ctx, uint32_t insn,
unsigned r1 = extract32(insn, 16, 5);
unsigned cf = extract32(insn, 12, 4);
unsigned rt = extract32(insn, 0, 5);
- TCGv dest, add1, add2, addc, zero, in1, in2;
+ TCGv_reg dest, add1, add2, addc, zero, in1, in2;
nullify_over(ctx);
@@ -2041,19 +2267,19 @@ static DisasJumpType trans_ds(DisasContext *ctx, uint32_t insn,
add2 = tcg_temp_new();
addc = tcg_temp_new();
dest = tcg_temp_new();
- zero = tcg_const_tl(0);
+ zero = tcg_const_reg(0);
/* Form R1 << 1 | PSW[CB]{8}. */
- tcg_gen_add_tl(add1, in1, in1);
- tcg_gen_add_tl(add1, add1, cpu_psw_cb_msb);
+ tcg_gen_add_reg(add1, in1, in1);
+ tcg_gen_add_reg(add1, add1, cpu_psw_cb_msb);
/* Add or subtract R2, depending on PSW[V]. Proper computation of
carry{8} requires that we subtract via + ~R2 + 1, as described in
the manual. By extracting and masking V, we can produce the
proper inputs to the addition without movcond. */
- tcg_gen_sari_tl(addc, cpu_psw_v, TARGET_LONG_BITS - 1);
- tcg_gen_xor_tl(add2, in2, addc);
- tcg_gen_andi_tl(addc, addc, 1);
+ tcg_gen_sari_reg(addc, cpu_psw_v, TARGET_REGISTER_BITS - 1);
+ tcg_gen_xor_reg(add2, in2, addc);
+ tcg_gen_andi_reg(addc, addc, 1);
/* ??? This is only correct for 32-bit. */
tcg_gen_add2_i32(dest, cpu_psw_cb_msb, add1, zero, add2, zero);
tcg_gen_add2_i32(dest, cpu_psw_cb_msb, dest, cpu_psw_cb_msb, addc, zero);
@@ -2065,16 +2291,16 @@ static DisasJumpType trans_ds(DisasContext *ctx, uint32_t insn,
save_gpr(ctx, rt, dest);
/* Write back PSW[CB]. */
- tcg_gen_xor_tl(cpu_psw_cb, add1, add2);
- tcg_gen_xor_tl(cpu_psw_cb, cpu_psw_cb, dest);
+ tcg_gen_xor_reg(cpu_psw_cb, add1, add2);
+ tcg_gen_xor_reg(cpu_psw_cb, cpu_psw_cb, dest);
/* Write back PSW[V] for the division step. */
- tcg_gen_neg_tl(cpu_psw_v, cpu_psw_cb_msb);
- tcg_gen_xor_tl(cpu_psw_v, cpu_psw_v, in2);
+ tcg_gen_neg_reg(cpu_psw_v, cpu_psw_cb_msb);
+ tcg_gen_xor_reg(cpu_psw_v, cpu_psw_v, in2);
/* Install the new nullification. */
if (cf) {
- TCGv sv = NULL;
+ TCGv_reg sv = NULL;
if (cf >> 1 == 6) {
/* ??? The lshift is supposed to contribute to overflow. */
sv = do_add_sv(ctx, dest, add1, add2);
@@ -2092,10 +2318,10 @@ static DisasJumpType trans_ds(DisasContext *ctx, uint32_t insn,
static const DisasInsn table_arith_log[] = {
{ 0x08000240u, 0xfc00ffffu, trans_nop }, /* or x,y,0 */
{ 0x08000240u, 0xffe0ffe0u, trans_copy }, /* or x,0,t */
- { 0x08000000u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_andc_tl },
- { 0x08000200u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_and_tl },
- { 0x08000240u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_or_tl },
- { 0x08000280u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_xor_tl },
+ { 0x08000000u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_andc_reg },
+ { 0x08000200u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_and_reg },
+ { 0x08000240u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_or_reg },
+ { 0x08000280u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_xor_reg },
{ 0x08000880u, 0xfc000fe0u, trans_cmpclr },
{ 0x08000380u, 0xfc000fe0u, trans_uxor },
{ 0x08000980u, 0xfc000fa0u, trans_uaddcm },
@@ -2109,13 +2335,13 @@ static const DisasInsn table_arith_log[] = {
static DisasJumpType trans_addi(DisasContext *ctx, uint32_t insn)
{
- target_long im = low_sextract(insn, 0, 11);
+ target_sreg im = low_sextract(insn, 0, 11);
unsigned e1 = extract32(insn, 11, 1);
unsigned cf = extract32(insn, 12, 4);
unsigned rt = extract32(insn, 16, 5);
unsigned r2 = extract32(insn, 21, 5);
unsigned o1 = extract32(insn, 26, 1);
- TCGv tcg_im, tcg_r2;
+ TCGv_reg tcg_im, tcg_r2;
DisasJumpType ret;
if (cf) {
@@ -2131,12 +2357,12 @@ static DisasJumpType trans_addi(DisasContext *ctx, uint32_t insn)
static DisasJumpType trans_subi(DisasContext *ctx, uint32_t insn)
{
- target_long im = low_sextract(insn, 0, 11);
+ target_sreg im = low_sextract(insn, 0, 11);
unsigned e1 = extract32(insn, 11, 1);
unsigned cf = extract32(insn, 12, 4);
unsigned rt = extract32(insn, 16, 5);
unsigned r2 = extract32(insn, 21, 5);
- TCGv tcg_im, tcg_r2;
+ TCGv_reg tcg_im, tcg_r2;
DisasJumpType ret;
if (cf) {
@@ -2152,11 +2378,11 @@ static DisasJumpType trans_subi(DisasContext *ctx, uint32_t insn)
static DisasJumpType trans_cmpiclr(DisasContext *ctx, uint32_t insn)
{
- target_long im = low_sextract(insn, 0, 11);
+ target_sreg im = low_sextract(insn, 0, 11);
unsigned cf = extract32(insn, 12, 4);
unsigned rt = extract32(insn, 16, 5);
unsigned r2 = extract32(insn, 21, 5);
- TCGv tcg_im, tcg_r2;
+ TCGv_reg tcg_im, tcg_r2;
DisasJumpType ret;
if (cf) {
@@ -2224,7 +2450,7 @@ static DisasJumpType trans_ldcw(DisasContext *ctx, uint32_t insn,
unsigned rx = extract32(insn, 16, 5);
unsigned rb = extract32(insn, 21, 5);
TCGMemOp mop = MO_TEUL | MO_ALIGN_16;
- TCGv zero, addr, base, dest;
+ TCGv_reg zero, addr, base, dest;
int modify, disp = 0, scale = 0;
nullify_over(ctx);
@@ -2252,15 +2478,15 @@ static DisasJumpType trans_ldcw(DisasContext *ctx, uint32_t insn,
addr = tcg_temp_new();
base = load_gpr(ctx, rb);
if (rx) {
- tcg_gen_shli_tl(addr, cpu_gr[rx], scale);
- tcg_gen_add_tl(addr, addr, base);
+ tcg_gen_shli_reg(addr, cpu_gr[rx], scale);
+ tcg_gen_add_reg(addr, addr, base);
} else {
- tcg_gen_addi_tl(addr, base, disp);
+ tcg_gen_addi_reg(addr, base, disp);
}
- zero = tcg_const_tl(0);
- tcg_gen_atomic_xchg_tl(dest, (modify <= 0 ? addr : base),
- zero, MMU_USER_IDX, mop);
+ zero = tcg_const_reg(0);
+ tcg_gen_atomic_xchg_reg(dest, (modify <= 0 ? addr : base),
+ zero, MMU_USER_IDX, mop);
if (modify) {
save_gpr(ctx, rb, addr);
}
@@ -2272,20 +2498,20 @@ static DisasJumpType trans_ldcw(DisasContext *ctx, uint32_t insn,
static DisasJumpType trans_stby(DisasContext *ctx, uint32_t insn,
const DisasInsn *di)
{
- target_long disp = low_sextract(insn, 0, 5);
+ target_sreg disp = low_sextract(insn, 0, 5);
unsigned m = extract32(insn, 5, 1);
unsigned a = extract32(insn, 13, 1);
unsigned rt = extract32(insn, 16, 5);
unsigned rb = extract32(insn, 21, 5);
- TCGv addr, val;
+ TCGv_reg addr, val;
nullify_over(ctx);
addr = tcg_temp_new();
if (m || disp == 0) {
- tcg_gen_mov_tl(addr, load_gpr(ctx, rb));
+ tcg_gen_mov_reg(addr, load_gpr(ctx, rb));
} else {
- tcg_gen_addi_tl(addr, load_gpr(ctx, rb), disp);
+ tcg_gen_addi_reg(addr, load_gpr(ctx, rb), disp);
}
val = load_gpr(ctx, rt);
@@ -2304,8 +2530,8 @@ static DisasJumpType trans_stby(DisasContext *ctx, uint32_t insn,
}
if (m) {
- tcg_gen_addi_tl(addr, addr, disp);
- tcg_gen_andi_tl(addr, addr, ~3);
+ tcg_gen_addi_reg(addr, addr, disp);
+ tcg_gen_andi_reg(addr, addr, ~3);
save_gpr(ctx, rb, addr);
}
tcg_temp_free(addr);
@@ -2324,10 +2550,10 @@ static const DisasInsn table_index_mem[] = {
static DisasJumpType trans_ldil(DisasContext *ctx, uint32_t insn)
{
unsigned rt = extract32(insn, 21, 5);
- target_long i = assemble_21(insn);
- TCGv tcg_rt = dest_gpr(ctx, rt);
+ target_sreg i = assemble_21(insn);
+ TCGv_reg tcg_rt = dest_gpr(ctx, rt);
- tcg_gen_movi_tl(tcg_rt, i);
+ tcg_gen_movi_reg(tcg_rt, i);
save_gpr(ctx, rt, tcg_rt);
cond_free(&ctx->null_cond);
@@ -2337,11 +2563,11 @@ static DisasJumpType trans_ldil(DisasContext *ctx, uint32_t insn)
static DisasJumpType trans_addil(DisasContext *ctx, uint32_t insn)
{
unsigned rt = extract32(insn, 21, 5);
- target_long i = assemble_21(insn);
- TCGv tcg_rt = load_gpr(ctx, rt);
- TCGv tcg_r1 = dest_gpr(ctx, 1);
+ target_sreg i = assemble_21(insn);
+ TCGv_reg tcg_rt = load_gpr(ctx, rt);
+ TCGv_reg tcg_r1 = dest_gpr(ctx, 1);
- tcg_gen_addi_tl(tcg_r1, tcg_rt, i);
+ tcg_gen_addi_reg(tcg_r1, tcg_rt, i);
save_gpr(ctx, 1, tcg_r1);
cond_free(&ctx->null_cond);
@@ -2352,15 +2578,15 @@ static DisasJumpType trans_ldo(DisasContext *ctx, uint32_t insn)
{
unsigned rb = extract32(insn, 21, 5);
unsigned rt = extract32(insn, 16, 5);
- target_long i = assemble_16(insn);
- TCGv tcg_rt = dest_gpr(ctx, rt);
+ target_sreg i = assemble_16(insn);
+ TCGv_reg tcg_rt = dest_gpr(ctx, rt);
/* Special case rb == 0, for the LDI pseudo-op.
The COPY pseudo-op is handled for free within tcg_gen_addi_tl. */
if (rb == 0) {
- tcg_gen_movi_tl(tcg_rt, i);
+ tcg_gen_movi_reg(tcg_rt, i);
} else {
- tcg_gen_addi_tl(tcg_rt, cpu_gr[rb], i);
+ tcg_gen_addi_reg(tcg_rt, cpu_gr[rb], i);
}
save_gpr(ctx, rt, tcg_rt);
cond_free(&ctx->null_cond);
@@ -2373,7 +2599,7 @@ static DisasJumpType trans_load(DisasContext *ctx, uint32_t insn,
{
unsigned rb = extract32(insn, 21, 5);
unsigned rt = extract32(insn, 16, 5);
- target_long i = assemble_16(insn);
+ target_sreg i = assemble_16(insn);
return do_load(ctx, rt, rb, 0, 0, i, is_mod ? (i < 0 ? -1 : 1) : 0, mop);
}
@@ -2382,7 +2608,7 @@ static DisasJumpType trans_load_w(DisasContext *ctx, uint32_t insn)
{
unsigned rb = extract32(insn, 21, 5);
unsigned rt = extract32(insn, 16, 5);
- target_long i = assemble_16a(insn);
+ target_sreg i = assemble_16a(insn);
unsigned ext2 = extract32(insn, 1, 2);
switch (ext2) {
@@ -2401,7 +2627,7 @@ static DisasJumpType trans_load_w(DisasContext *ctx, uint32_t insn)
static DisasJumpType trans_fload_mod(DisasContext *ctx, uint32_t insn)
{
- target_long i = assemble_16a(insn);
+ target_sreg i = assemble_16a(insn);
unsigned t1 = extract32(insn, 1, 1);
unsigned a = extract32(insn, 2, 1);
unsigned t0 = extract32(insn, 16, 5);
@@ -2416,7 +2642,7 @@ static DisasJumpType trans_store(DisasContext *ctx, uint32_t insn,
{
unsigned rb = extract32(insn, 21, 5);
unsigned rt = extract32(insn, 16, 5);
- target_long i = assemble_16(insn);
+ target_sreg i = assemble_16(insn);
return do_store(ctx, rt, rb, i, is_mod ? (i < 0 ? -1 : 1) : 0, mop);
}
@@ -2425,7 +2651,7 @@ static DisasJumpType trans_store_w(DisasContext *ctx, uint32_t insn)
{
unsigned rb = extract32(insn, 21, 5);
unsigned rt = extract32(insn, 16, 5);
- target_long i = assemble_16a(insn);
+ target_sreg i = assemble_16a(insn);
unsigned ext2 = extract32(insn, 1, 2);
switch (ext2) {
@@ -2443,7 +2669,7 @@ static DisasJumpType trans_store_w(DisasContext *ctx, uint32_t insn)
static DisasJumpType trans_fstore_mod(DisasContext *ctx, uint32_t insn)
{
- target_long i = assemble_16a(insn);
+ target_sreg i = assemble_16a(insn);
unsigned t1 = extract32(insn, 1, 1);
unsigned a = extract32(insn, 2, 1);
unsigned t0 = extract32(insn, 16, 5);
@@ -2525,12 +2751,12 @@ static DisasJumpType trans_copr_dw(DisasContext *ctx, uint32_t insn)
static DisasJumpType trans_cmpb(DisasContext *ctx, uint32_t insn,
bool is_true, bool is_imm, bool is_dw)
{
- target_long disp = assemble_12(insn) * 4;
+ target_sreg disp = assemble_12(insn) * 4;
unsigned n = extract32(insn, 1, 1);
unsigned c = extract32(insn, 13, 3);
unsigned r = extract32(insn, 21, 5);
unsigned cf = c * 2 + !is_true;
- TCGv dest, in1, in2, sv;
+ TCGv_reg dest, in1, in2, sv;
DisasCond cond;
nullify_over(ctx);
@@ -2543,7 +2769,7 @@ static DisasJumpType trans_cmpb(DisasContext *ctx, uint32_t insn,
in2 = load_gpr(ctx, r);
dest = get_temp(ctx);
- tcg_gen_sub_tl(dest, in1, in2);
+ tcg_gen_sub_reg(dest, in1, in2);
sv = NULL;
if (c == 6) {
@@ -2557,12 +2783,12 @@ static DisasJumpType trans_cmpb(DisasContext *ctx, uint32_t insn,
static DisasJumpType trans_addb(DisasContext *ctx, uint32_t insn,
bool is_true, bool is_imm)
{
- target_long disp = assemble_12(insn) * 4;
+ target_sreg disp = assemble_12(insn) * 4;
unsigned n = extract32(insn, 1, 1);
unsigned c = extract32(insn, 13, 3);
unsigned r = extract32(insn, 21, 5);
unsigned cf = c * 2 + !is_true;
- TCGv dest, in1, in2, sv, cb_msb;
+ TCGv_reg dest, in1, in2, sv, cb_msb;
DisasCond cond;
nullify_over(ctx);
@@ -2579,15 +2805,15 @@ static DisasJumpType trans_addb(DisasContext *ctx, uint32_t insn,
switch (c) {
default:
- tcg_gen_add_tl(dest, in1, in2);
+ tcg_gen_add_reg(dest, in1, in2);
break;
case 4: case 5:
cb_msb = get_temp(ctx);
- tcg_gen_movi_tl(cb_msb, 0);
- tcg_gen_add2_tl(dest, cb_msb, in1, cb_msb, in2, cb_msb);
+ tcg_gen_movi_reg(cb_msb, 0);
+ tcg_gen_add2_reg(dest, cb_msb, in1, cb_msb, in2, cb_msb);
break;
case 6:
- tcg_gen_add_tl(dest, in1, in2);
+ tcg_gen_add_reg(dest, in1, in2);
sv = do_add_sv(ctx, dest, in1, in2);
break;
}
@@ -2598,13 +2824,13 @@ static DisasJumpType trans_addb(DisasContext *ctx, uint32_t insn,
static DisasJumpType trans_bb(DisasContext *ctx, uint32_t insn)
{
- target_long disp = assemble_12(insn) * 4;
+ target_sreg disp = assemble_12(insn) * 4;
unsigned n = extract32(insn, 1, 1);
unsigned c = extract32(insn, 15, 1);
unsigned r = extract32(insn, 16, 5);
unsigned p = extract32(insn, 21, 5);
unsigned i = extract32(insn, 26, 1);
- TCGv tmp, tcg_r;
+ TCGv_reg tmp, tcg_r;
DisasCond cond;
nullify_over(ctx);
@@ -2612,9 +2838,9 @@ static DisasJumpType trans_bb(DisasContext *ctx, uint32_t insn)
tmp = tcg_temp_new();
tcg_r = load_gpr(ctx, r);
if (i) {
- tcg_gen_shli_tl(tmp, tcg_r, p);
+ tcg_gen_shli_reg(tmp, tcg_r, p);
} else {
- tcg_gen_shl_tl(tmp, tcg_r, cpu_sar);
+ tcg_gen_shl_reg(tmp, tcg_r, cpu_sar);
}
cond = cond_make_0(c ? TCG_COND_GE : TCG_COND_LT, tmp);
@@ -2624,23 +2850,23 @@ static DisasJumpType trans_bb(DisasContext *ctx, uint32_t insn)
static DisasJumpType trans_movb(DisasContext *ctx, uint32_t insn, bool is_imm)
{
- target_long disp = assemble_12(insn) * 4;
+ target_sreg disp = assemble_12(insn) * 4;
unsigned n = extract32(insn, 1, 1);
unsigned c = extract32(insn, 13, 3);
unsigned t = extract32(insn, 16, 5);
unsigned r = extract32(insn, 21, 5);
- TCGv dest;
+ TCGv_reg dest;
DisasCond cond;
nullify_over(ctx);
dest = dest_gpr(ctx, r);
if (is_imm) {
- tcg_gen_movi_tl(dest, low_sextract(t, 0, 5));
+ tcg_gen_movi_reg(dest, low_sextract(t, 0, 5));
} else if (t == 0) {
- tcg_gen_movi_tl(dest, 0);
+ tcg_gen_movi_reg(dest, 0);
} else {
- tcg_gen_mov_tl(dest, cpu_gr[t]);
+ tcg_gen_mov_reg(dest, cpu_gr[t]);
}
cond = do_sed_cond(c, dest);
@@ -2654,7 +2880,7 @@ static DisasJumpType trans_shrpw_sar(DisasContext *ctx, uint32_t insn,
unsigned c = extract32(insn, 13, 3);
unsigned r1 = extract32(insn, 16, 5);
unsigned r2 = extract32(insn, 21, 5);
- TCGv dest;
+ TCGv_reg dest;
if (c) {
nullify_over(ctx);
@@ -2662,22 +2888,22 @@ static DisasJumpType trans_shrpw_sar(DisasContext *ctx, uint32_t insn,
dest = dest_gpr(ctx, rt);
if (r1 == 0) {
- tcg_gen_ext32u_tl(dest, load_gpr(ctx, r2));
- tcg_gen_shr_tl(dest, dest, cpu_sar);
+ tcg_gen_ext32u_reg(dest, load_gpr(ctx, r2));
+ tcg_gen_shr_reg(dest, dest, cpu_sar);
} else if (r1 == r2) {
TCGv_i32 t32 = tcg_temp_new_i32();
- tcg_gen_trunc_tl_i32(t32, load_gpr(ctx, r2));
+ tcg_gen_trunc_reg_i32(t32, load_gpr(ctx, r2));
tcg_gen_rotr_i32(t32, t32, cpu_sar);
- tcg_gen_extu_i32_tl(dest, t32);
+ tcg_gen_extu_i32_reg(dest, t32);
tcg_temp_free_i32(t32);
} else {
TCGv_i64 t = tcg_temp_new_i64();
TCGv_i64 s = tcg_temp_new_i64();
- tcg_gen_concat_tl_i64(t, load_gpr(ctx, r2), load_gpr(ctx, r1));
- tcg_gen_extu_tl_i64(s, cpu_sar);
+ tcg_gen_concat_reg_i64(t, load_gpr(ctx, r2), load_gpr(ctx, r1));
+ tcg_gen_extu_reg_i64(s, cpu_sar);
tcg_gen_shr_i64(t, t, s);
- tcg_gen_trunc_i64_tl(dest, t);
+ tcg_gen_trunc_i64_reg(dest, t);
tcg_temp_free_i64(t);
tcg_temp_free_i64(s);
@@ -2701,7 +2927,7 @@ static DisasJumpType trans_shrpw_imm(DisasContext *ctx, uint32_t insn,
unsigned r1 = extract32(insn, 16, 5);
unsigned r2 = extract32(insn, 21, 5);
unsigned sa = 31 - cpos;
- TCGv dest, t2;
+ TCGv_reg dest, t2;
if (c) {
nullify_over(ctx);
@@ -2711,16 +2937,16 @@ static DisasJumpType trans_shrpw_imm(DisasContext *ctx, uint32_t insn,
t2 = load_gpr(ctx, r2);
if (r1 == r2) {
TCGv_i32 t32 = tcg_temp_new_i32();
- tcg_gen_trunc_tl_i32(t32, t2);
+ tcg_gen_trunc_reg_i32(t32, t2);
tcg_gen_rotri_i32(t32, t32, sa);
- tcg_gen_extu_i32_tl(dest, t32);
+ tcg_gen_extu_i32_reg(dest, t32);
tcg_temp_free_i32(t32);
} else if (r1 == 0) {
- tcg_gen_extract_tl(dest, t2, sa, 32 - sa);
+ tcg_gen_extract_reg(dest, t2, sa, 32 - sa);
} else {
- TCGv t0 = tcg_temp_new();
- tcg_gen_extract_tl(t0, t2, sa, 32 - sa);
- tcg_gen_deposit_tl(dest, t0, cpu_gr[r1], 32 - sa, sa);
+ TCGv_reg t0 = tcg_temp_new();
+ tcg_gen_extract_reg(t0, t2, sa, 32 - sa);
+ tcg_gen_deposit_reg(dest, t0, cpu_gr[r1], 32 - sa, sa);
tcg_temp_free(t0);
}
save_gpr(ctx, rt, dest);
@@ -2742,7 +2968,7 @@ static DisasJumpType trans_extrw_sar(DisasContext *ctx, uint32_t insn,
unsigned rt = extract32(insn, 16, 5);
unsigned rr = extract32(insn, 21, 5);
unsigned len = 32 - clen;
- TCGv dest, src, tmp;
+ TCGv_reg dest, src, tmp;
if (c) {
nullify_over(ctx);
@@ -2753,13 +2979,13 @@ static DisasJumpType trans_extrw_sar(DisasContext *ctx, uint32_t insn,
tmp = tcg_temp_new();
/* Recall that SAR is using big-endian bit numbering. */
- tcg_gen_xori_tl(tmp, cpu_sar, TARGET_LONG_BITS - 1);
+ tcg_gen_xori_reg(tmp, cpu_sar, TARGET_REGISTER_BITS - 1);
if (is_se) {
- tcg_gen_sar_tl(dest, src, tmp);
- tcg_gen_sextract_tl(dest, dest, 0, len);
+ tcg_gen_sar_reg(dest, src, tmp);
+ tcg_gen_sextract_reg(dest, dest, 0, len);
} else {
- tcg_gen_shr_tl(dest, src, tmp);
- tcg_gen_extract_tl(dest, dest, 0, len);
+ tcg_gen_shr_reg(dest, src, tmp);
+ tcg_gen_extract_reg(dest, dest, 0, len);
}
tcg_temp_free(tmp);
save_gpr(ctx, rt, dest);
@@ -2783,7 +3009,7 @@ static DisasJumpType trans_extrw_imm(DisasContext *ctx, uint32_t insn,
unsigned rr = extract32(insn, 21, 5);
unsigned len = 32 - clen;
unsigned cpos = 31 - pos;
- TCGv dest, src;
+ TCGv_reg dest, src;
if (c) {
nullify_over(ctx);
@@ -2792,9 +3018,9 @@ static DisasJumpType trans_extrw_imm(DisasContext *ctx, uint32_t insn,
dest = dest_gpr(ctx, rt);
src = load_gpr(ctx, rr);
if (is_se) {
- tcg_gen_sextract_tl(dest, src, cpos, len);
+ tcg_gen_sextract_reg(dest, src, cpos, len);
} else {
- tcg_gen_extract_tl(dest, src, cpos, len);
+ tcg_gen_extract_reg(dest, src, cpos, len);
}
save_gpr(ctx, rt, dest);
@@ -2820,11 +3046,11 @@ static DisasJumpType trans_depw_imm_c(DisasContext *ctx, uint32_t insn,
unsigned cpos = extract32(insn, 5, 5);
unsigned nz = extract32(insn, 10, 1);
unsigned c = extract32(insn, 13, 3);
- target_long val = low_sextract(insn, 16, 5);
+ target_sreg val = low_sextract(insn, 16, 5);
unsigned rt = extract32(insn, 21, 5);
unsigned len = 32 - clen;
- target_long mask0, mask1;
- TCGv dest;
+ target_sreg mask0, mask1;
+ TCGv_reg dest;
if (c) {
nullify_over(ctx);
@@ -2838,14 +3064,14 @@ static DisasJumpType trans_depw_imm_c(DisasContext *ctx, uint32_t insn,
mask1 = deposit64(-1, cpos, len, val);
if (nz) {
- TCGv src = load_gpr(ctx, rt);
+ TCGv_reg src = load_gpr(ctx, rt);
if (mask1 != -1) {
- tcg_gen_andi_tl(dest, src, mask1);
+ tcg_gen_andi_reg(dest, src, mask1);
src = dest;
}
- tcg_gen_ori_tl(dest, src, mask0);
+ tcg_gen_ori_reg(dest, src, mask0);
} else {
- tcg_gen_movi_tl(dest, mask0);
+ tcg_gen_movi_reg(dest, mask0);
}
save_gpr(ctx, rt, dest);
@@ -2868,7 +3094,7 @@ static DisasJumpType trans_depw_imm(DisasContext *ctx, uint32_t insn,
unsigned rt = extract32(insn, 21, 5);
unsigned rs = nz ? rt : 0;
unsigned len = 32 - clen;
- TCGv dest, val;
+ TCGv_reg dest, val;
if (c) {
nullify_over(ctx);
@@ -2880,9 +3106,9 @@ static DisasJumpType trans_depw_imm(DisasContext *ctx, uint32_t insn,
dest = dest_gpr(ctx, rt);
val = load_gpr(ctx, rr);
if (rs == 0) {
- tcg_gen_deposit_z_tl(dest, val, cpos, len);
+ tcg_gen_deposit_z_reg(dest, val, cpos, len);
} else {
- tcg_gen_deposit_tl(dest, cpu_gr[rs], val, cpos, len);
+ tcg_gen_deposit_reg(dest, cpu_gr[rs], val, cpos, len);
}
save_gpr(ctx, rt, dest);
@@ -2904,7 +3130,7 @@ static DisasJumpType trans_depw_sar(DisasContext *ctx, uint32_t insn,
unsigned rt = extract32(insn, 21, 5);
unsigned rs = nz ? rt : 0;
unsigned len = 32 - clen;
- TCGv val, mask, tmp, shift, dest;
+ TCGv_reg val, mask, tmp, shift, dest;
unsigned msb = 1U << (len - 1);
if (c) {
@@ -2921,17 +3147,17 @@ static DisasJumpType trans_depw_sar(DisasContext *ctx, uint32_t insn,
tmp = tcg_temp_new();
/* Convert big-endian bit numbering in SAR to left-shift. */
- tcg_gen_xori_tl(shift, cpu_sar, TARGET_LONG_BITS - 1);
+ tcg_gen_xori_reg(shift, cpu_sar, TARGET_REGISTER_BITS - 1);
- mask = tcg_const_tl(msb + (msb - 1));
- tcg_gen_and_tl(tmp, val, mask);
+ mask = tcg_const_reg(msb + (msb - 1));
+ tcg_gen_and_reg(tmp, val, mask);
if (rs) {
- tcg_gen_shl_tl(mask, mask, shift);
- tcg_gen_shl_tl(tmp, tmp, shift);
- tcg_gen_andc_tl(dest, cpu_gr[rs], mask);
- tcg_gen_or_tl(dest, dest, tmp);
+ tcg_gen_shl_reg(mask, mask, shift);
+ tcg_gen_shl_reg(tmp, tmp, shift);
+ tcg_gen_andc_reg(dest, cpu_gr[rs], mask);
+ tcg_gen_or_reg(dest, dest, tmp);
} else {
- tcg_gen_shl_tl(dest, tmp, shift);
+ tcg_gen_shl_reg(dest, tmp, shift);
}
tcg_temp_free(shift);
tcg_temp_free(mask);
@@ -2956,7 +3182,7 @@ static DisasJumpType trans_be(DisasContext *ctx, uint32_t insn, bool is_l)
{
unsigned n = extract32(insn, 1, 1);
unsigned b = extract32(insn, 21, 5);
- target_long disp = assemble_17(insn);
+ target_sreg disp = assemble_17(insn);
/* unsigned s = low_uextract(insn, 13, 3); */
/* ??? It seems like there should be a good way of using
@@ -2971,8 +3197,8 @@ static DisasJumpType trans_be(DisasContext *ctx, uint32_t insn, bool is_l)
if (b == 0) {
return do_dbranch(ctx, disp, is_l ? 31 : 0, n);
} else {
- TCGv tmp = get_temp(ctx);
- tcg_gen_addi_tl(tmp, load_gpr(ctx, b), disp);
+ TCGv_reg tmp = get_temp(ctx);
+ tcg_gen_addi_reg(tmp, load_gpr(ctx, b), disp);
return do_ibranch(ctx, tmp, is_l ? 31 : 0, n);
}
}
@@ -2982,7 +3208,7 @@ static DisasJumpType trans_bl(DisasContext *ctx, uint32_t insn,
{
unsigned n = extract32(insn, 1, 1);
unsigned link = extract32(insn, 21, 5);
- target_long disp = assemble_17(insn);
+ target_sreg disp = assemble_17(insn);
return do_dbranch(ctx, iaoq_dest(ctx, disp), link, n);
}
@@ -2991,7 +3217,7 @@ static DisasJumpType trans_bl_long(DisasContext *ctx, uint32_t insn,
const DisasInsn *di)
{
unsigned n = extract32(insn, 1, 1);
- target_long disp = assemble_22(insn);
+ target_sreg disp = assemble_22(insn);
return do_dbranch(ctx, iaoq_dest(ctx, disp), 2, n);
}
@@ -3002,10 +3228,10 @@ static DisasJumpType trans_blr(DisasContext *ctx, uint32_t insn,
unsigned n = extract32(insn, 1, 1);
unsigned rx = extract32(insn, 16, 5);
unsigned link = extract32(insn, 21, 5);
- TCGv tmp = get_temp(ctx);
+ TCGv_reg tmp = get_temp(ctx);
- tcg_gen_shli_tl(tmp, load_gpr(ctx, rx), 3);
- tcg_gen_addi_tl(tmp, tmp, ctx->iaoq_f + 8);
+ tcg_gen_shli_reg(tmp, load_gpr(ctx, rx), 3);
+ tcg_gen_addi_reg(tmp, tmp, ctx->iaoq_f + 8);
return do_ibranch(ctx, tmp, link, n);
}
@@ -3015,14 +3241,14 @@ static DisasJumpType trans_bv(DisasContext *ctx, uint32_t insn,
unsigned n = extract32(insn, 1, 1);
unsigned rx = extract32(insn, 16, 5);
unsigned rb = extract32(insn, 21, 5);
- TCGv dest;
+ TCGv_reg dest;
if (rx == 0) {
dest = load_gpr(ctx, rb);
} else {
dest = get_temp(ctx);
- tcg_gen_shli_tl(dest, load_gpr(ctx, rx), 3);
- tcg_gen_add_tl(dest, dest, load_gpr(ctx, rb));
+ tcg_gen_shli_reg(dest, load_gpr(ctx, rx), 3);
+ tcg_gen_add_reg(dest, dest, load_gpr(ctx, rb));
}
return do_ibranch(ctx, dest, 0, n);
}
@@ -3242,13 +3468,13 @@ static DisasJumpType trans_ftest_t(DisasContext *ctx, uint32_t insn,
{
unsigned y = extract32(insn, 13, 3);
unsigned cbit = (y ^ 1) - 1;
- TCGv t;
+ TCGv_reg t;
nullify_over(ctx);
t = tcg_temp_new();
- tcg_gen_ld32u_tl(t, cpu_env, offsetof(CPUHPPAState, fr0_shadow));
- tcg_gen_extract_tl(t, t, 21 - cbit, 1);
+ tcg_gen_ld32u_reg(t, cpu_env, offsetof(CPUHPPAState, fr0_shadow));
+ tcg_gen_extract_reg(t, t, 21 - cbit, 1);
ctx->null_cond = cond_make_0(TCG_COND_NE, t);
tcg_temp_free(t);
@@ -3261,16 +3487,16 @@ static DisasJumpType trans_ftest_q(DisasContext *ctx, uint32_t insn,
unsigned c = extract32(insn, 0, 5);
int mask;
bool inv = false;
- TCGv t;
+ TCGv_reg t;
nullify_over(ctx);
t = tcg_temp_new();
- tcg_gen_ld32u_tl(t, cpu_env, offsetof(CPUHPPAState, fr0_shadow));
+ tcg_gen_ld32u_reg(t, cpu_env, offsetof(CPUHPPAState, fr0_shadow));
switch (c) {
case 0: /* simple */
- tcg_gen_andi_tl(t, t, 0x4000000);
+ tcg_gen_andi_reg(t, t, 0x4000000);
ctx->null_cond = cond_make_0(TCG_COND_NE, t);
goto done;
case 2: /* rej */
@@ -3298,11 +3524,11 @@ static DisasJumpType trans_ftest_q(DisasContext *ctx, uint32_t insn,
return gen_illegal(ctx);
}
if (inv) {
- TCGv c = load_const(ctx, mask);
- tcg_gen_or_tl(t, t, c);
+ TCGv_reg c = load_const(ctx, mask);
+ tcg_gen_or_reg(t, t, c);
ctx->null_cond = cond_make(TCG_COND_EQ, t, c);
} else {
- tcg_gen_andi_tl(t, t, mask);
+ tcg_gen_andi_reg(t, t, mask);
ctx->null_cond = cond_make_0(TCG_COND_EQ, t);
}
done:
@@ -3805,7 +4031,7 @@ static void hppa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
if (ctx->iaoq_b == -1) {
ctx->iaoq_n = -1;
ctx->iaoq_n_var = get_temp(ctx);
- tcg_gen_addi_tl(ctx->iaoq_n_var, cpu_iaoq_b, 4);
+ tcg_gen_addi_reg(ctx->iaoq_n_var, cpu_iaoq_b, 4);
} else {
ctx->iaoq_n = ctx->iaoq_b + 4;
ctx->iaoq_n_var = NULL;
@@ -3849,12 +4075,12 @@ static void hppa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
return;
}
if (ctx->iaoq_f == -1) {
- tcg_gen_mov_tl(cpu_iaoq_f, cpu_iaoq_b);
+ tcg_gen_mov_reg(cpu_iaoq_f, cpu_iaoq_b);
copy_iaoq_entry(cpu_iaoq_b, ctx->iaoq_n, ctx->iaoq_n_var);
nullify_save(ctx);
ctx->base.is_jmp = DISAS_IAQ_N_UPDATED;
} else if (ctx->iaoq_b == -1) {
- tcg_gen_mov_tl(cpu_iaoq_b, ctx->iaoq_n_var);
+ tcg_gen_mov_reg(cpu_iaoq_b, ctx->iaoq_n_var);
}
}
@@ -3889,8 +4115,7 @@ static void hppa_tr_tb_stop(DisasContextBase *dcbase, CPUState *cs)
static void hppa_tr_disas_log(const DisasContextBase *dcbase, CPUState *cs)
{
- TranslationBlock *tb = dcbase->tb;
- target_ulong pc = tb->pc;
+ target_ureg pc = dcbase->pc_first;
#ifdef CONFIG_USER_ONLY
switch (pc) {
@@ -3910,7 +4135,7 @@ static void hppa_tr_disas_log(const DisasContextBase *dcbase, CPUState *cs)
#endif
qemu_log("IN: %s\n", lookup_symbol(pc));
- log_target_disas(cs, pc, tb->size);
+ log_target_disas(cs, pc, dcbase->tb->size);
}
static const TranslatorOps hppa_tr_ops = {
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 06/43] target/hppa: Implement mmu_idx from IA privilege level
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (4 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 05/43] target/hppa: Split address size from register size Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 07/43] target/hppa: Implement the system mask instructions Richard Henderson
` (40 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Most aspects of privilege are not yet handled. But this
gives us the start from which to begin checking.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 19 +++++++++++++----
target/hppa/cpu.c | 2 +-
target/hppa/translate.c | 55 ++++++++++++++++++++++++++++++-------------------
3 files changed, 50 insertions(+), 26 deletions(-)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index 1524ef91b6..805c93db9c 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -36,8 +36,10 @@
#define TARGET_PAGE_BITS 12
#define ALIGNED_ONLY
-#define NB_MMU_MODES 1
-#define MMU_USER_IDX 0
+#define NB_MMU_MODES 5
+#define MMU_KERNEL_IDX 0
+#define MMU_USER_IDX 3
+#define MMU_PHYS_IDX 4
#define TARGET_INSN_START_EXTRA_WORDS 1
/* Hardware exceptions, interupts, faults, and traps. */
@@ -195,7 +197,14 @@ static inline HPPACPU *hppa_env_get_cpu(CPUHPPAState *env)
static inline int cpu_mmu_index(CPUHPPAState *env, bool ifetch)
{
- return 0;
+#ifdef CONFIG_USER_ONLY
+ return MMU_USER_IDX;
+#else
+ if (env->psw & (ifetch ? PSW_C : PSW_D)) {
+ return env->iaoq_f & 3;
+ }
+ return MMU_PHYS_IDX; /* mmu disabled */
+#endif
}
void hppa_translate_init(void);
@@ -210,7 +219,9 @@ static inline void cpu_get_tb_cpu_state(CPUHPPAState *env, target_ulong *pc,
{
*pc = env->iaoq_f;
*cs_base = env->iaoq_b;
- *pflags = env->psw_n;
+ /* ??? E, T, H, L, B, P bits need to be here, when implemented. */
+ *pflags = (env->psw & (PSW_W | PSW_C | PSW_D))
+ | env->psw_n * PSW_N;
}
target_ureg cpu_hppa_get_psw(CPUHPPAState *env);
diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
index f6d92de972..9962ab71ee 100644
--- a/target/hppa/cpu.c
+++ b/target/hppa/cpu.c
@@ -39,7 +39,7 @@ static void hppa_cpu_synchronize_from_tb(CPUState *cs, TranslationBlock *tb)
cpu->env.iaoq_f = tb->pc;
cpu->env.iaoq_b = tb->cs_base;
- cpu->env.psw_n = tb->flags & 1;
+ cpu->env.psw_n = (tb->flags & PSW_N) != 0;
}
static void hppa_cpu_disas_set_info(CPUState *cs, disassemble_info *info)
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index b3996cfcdc..8a40c3f46b 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -278,6 +278,8 @@ typedef struct DisasContext {
DisasCond null_cond;
TCGLabel *null_lab;
+ int mmu_idx;
+ int privilege;
bool psw_n_nonzero;
} DisasContext;
@@ -1288,10 +1290,10 @@ static void do_load_32(DisasContext *ctx, TCGv_i32 dest, unsigned rb,
}
if (modify == 0) {
- tcg_gen_qemu_ld_i32(dest, addr, MMU_USER_IDX, mop);
+ tcg_gen_qemu_ld_i32(dest, addr, ctx->mmu_idx, mop);
} else {
tcg_gen_qemu_ld_i32(dest, (modify < 0 ? addr : base),
- MMU_USER_IDX, mop);
+ ctx->mmu_idx, mop);
save_gpr(ctx, rb, addr);
}
tcg_temp_free(addr);
@@ -1318,10 +1320,10 @@ static void do_load_64(DisasContext *ctx, TCGv_i64 dest, unsigned rb,
}
if (modify == 0) {
- tcg_gen_qemu_ld_i64(dest, addr, MMU_USER_IDX, mop);
+ tcg_gen_qemu_ld_i64(dest, addr, ctx->mmu_idx, mop);
} else {
tcg_gen_qemu_ld_i64(dest, (modify < 0 ? addr : base),
- MMU_USER_IDX, mop);
+ ctx->mmu_idx, mop);
save_gpr(ctx, rb, addr);
}
tcg_temp_free(addr);
@@ -1347,7 +1349,7 @@ static void do_store_32(DisasContext *ctx, TCGv_i32 src, unsigned rb,
tcg_gen_addi_reg(addr, base, disp);
}
- tcg_gen_qemu_st_i32(src, (modify <= 0 ? addr : base), MMU_USER_IDX, mop);
+ tcg_gen_qemu_st_i32(src, (modify <= 0 ? addr : base), ctx->mmu_idx, mop);
if (modify != 0) {
save_gpr(ctx, rb, addr);
@@ -1375,7 +1377,7 @@ static void do_store_64(DisasContext *ctx, TCGv_i64 src, unsigned rb,
tcg_gen_addi_reg(addr, base, disp);
}
- tcg_gen_qemu_st_i64(src, (modify <= 0 ? addr : base), MMU_USER_IDX, mop);
+ tcg_gen_qemu_st_i64(src, (modify <= 0 ? addr : base), ctx->mmu_idx, mop);
if (modify != 0) {
save_gpr(ctx, rb, addr);
@@ -2486,7 +2488,7 @@ static DisasJumpType trans_ldcw(DisasContext *ctx, uint32_t insn,
zero = tcg_const_reg(0);
tcg_gen_atomic_xchg_reg(dest, (modify <= 0 ? addr : base),
- zero, MMU_USER_IDX, mop);
+ zero, ctx->mmu_idx, mop);
if (modify) {
save_gpr(ctx, rb, addr);
}
@@ -3960,30 +3962,43 @@ static int hppa_tr_init_disas_context(DisasContextBase *dcbase,
CPUState *cs, int max_insns)
{
DisasContext *ctx = container_of(dcbase, DisasContext, base);
- TranslationBlock *tb = ctx->base.tb;
int bound;
ctx->cs = cs;
- ctx->iaoq_f = tb->pc;
- ctx->iaoq_b = tb->cs_base;
+
+#ifdef CONFIG_USER_ONLY
+ ctx->privilege = MMU_USER_IDX;
+ ctx->mmu_idx = MMU_USER_IDX;
+#else
+ ctx->privilege = ctx->base.pc_first & 3;
+ ctx->mmu_idx = (ctx->base.tb->flags & PSW_D
+ ? ctx->privilege : MMU_PHYS_IDX);
+#endif
+ ctx->iaoq_f = ctx->base.pc_first;
+ ctx->iaoq_b = ctx->base.tb->cs_base;
+ ctx->base.pc_first &= -4;
+
ctx->iaoq_n = -1;
ctx->iaoq_n_var = NULL;
+ /* Bound the number of instructions by those left on the page. */
+ bound = -(ctx->base.pc_first | TARGET_PAGE_MASK) / 4;
+ bound = MIN(max_insns, bound);
+
ctx->ntemps = 0;
memset(ctx->temps, 0, sizeof(ctx->temps));
- bound = -(tb->pc | TARGET_PAGE_MASK) / 4;
- return MIN(max_insns, bound);
+ return bound;
}
static void hppa_tr_tb_start(DisasContextBase *dcbase, CPUState *cs)
{
DisasContext *ctx = container_of(dcbase, DisasContext, base);
- /* Seed the nullification status from PSW[N], as shown in TB->FLAGS. */
+ /* Seed the nullification status from PSW[N], as saved in TB->FLAGS. */
ctx->null_cond = cond_make_f();
ctx->psw_n_nonzero = false;
- if (ctx->base.tb->flags & 1) {
+ if (ctx->base.tb->flags & PSW_N) {
ctx->null_cond.c = TCG_COND_ALWAYS;
ctx->psw_n_nonzero = true;
}
@@ -4003,7 +4018,7 @@ static bool hppa_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cs,
DisasContext *ctx = container_of(dcbase, DisasContext, base);
ctx->base.is_jmp = gen_excp(ctx, EXCP_DEBUG);
- ctx->base.pc_next = ctx->iaoq_f + 4;
+ ctx->base.pc_next = (ctx->iaoq_f & -4) + 4;
return true;
}
@@ -4024,7 +4039,7 @@ static void hppa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
{
/* Always fetch the insn, even if nullified, so that we check
the page permissions for execute. */
- uint32_t insn = cpu_ldl_code(env, ctx->iaoq_f);
+ uint32_t insn = cpu_ldl_code(env, ctx->iaoq_f & -4);
/* Set up the IA queue for the next insn.
This will be overwritten by a branch. */
@@ -4053,10 +4068,8 @@ static void hppa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
}
ctx->ntemps = 0;
- /* Advance the insn queue. */
- /* ??? The non-linear instruction restriction is purely due to
- the debugging dump. Otherwise we *could* follow unconditional
- branches within the same page. */
+ /* Advance the insn queue. Note that this check also detects
+ a priority change within the instruction queue. */
if (ret == DISAS_NEXT && ctx->iaoq_b != ctx->iaoq_f + 4) {
if (ctx->null_cond.c == TCG_COND_NEVER
|| ctx->null_cond.c == TCG_COND_ALWAYS) {
@@ -4110,7 +4123,7 @@ static void hppa_tr_tb_stop(DisasContextBase *dcbase, CPUState *cs)
/* We don't actually use this during normal translation,
but we should interact with the generic main loop. */
- ctx->base.pc_next = ctx->base.tb->pc + 4 * ctx->base.num_insns;
+ ctx->base.pc_next = ctx->base.pc_first + 4 * ctx->base.num_insns;
}
static void hppa_tr_disas_log(const DisasContextBase *dcbase, CPUState *cs)
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 07/43] target/hppa: Implement the system mask instructions
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (5 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 06/43] target/hppa: Implement mmu_idx from IA privilege level Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 08/43] target/hppa: Add space registers Richard Henderson
` (39 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/helper.h | 4 +++
target/hppa/op_helper.c | 14 ++++++++
target/hppa/translate.c | 96 ++++++++++++++++++++++++++++++++++++++++++++++++-
3 files changed, 113 insertions(+), 1 deletion(-)
diff --git a/target/hppa/helper.h b/target/hppa/helper.h
index c720de523b..254a4da133 100644
--- a/target/hppa/helper.h
+++ b/target/hppa/helper.h
@@ -76,3 +76,7 @@ DEF_HELPER_FLAGS_4(fmpyfadd_s, TCG_CALL_NO_RWG, i32, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(fmpynfadd_s, TCG_CALL_NO_RWG, i32, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(fmpyfadd_d, TCG_CALL_NO_RWG, i64, env, i64, i64, i64)
DEF_HELPER_FLAGS_4(fmpynfadd_d, TCG_CALL_NO_RWG, i64, env, i64, i64, i64)
+
+#ifndef CONFIG_USER_ONLY
+DEF_HELPER_FLAGS_2(swap_system_mask, TCG_CALL_NO_RWG, tr, env, tr)
+#endif
diff --git a/target/hppa/op_helper.c b/target/hppa/op_helper.c
index 479bfc0fdf..1c3e043cc0 100644
--- a/target/hppa/op_helper.c
+++ b/target/hppa/op_helper.c
@@ -601,3 +601,17 @@ float64 HELPER(fmpynfadd_d)(CPUHPPAState *env, float64 a, float64 b, float64 c)
update_fr0_op(env, GETPC());
return ret;
}
+
+#ifndef CONFIG_USER_ONLY
+target_ureg HELPER(swap_system_mask)(CPUHPPAState *env, target_ureg nsm)
+{
+ target_ulong psw = env->psw;
+ /* ??? On second reading this condition simply seems
+ to be undefined rather than a diagnosed trap. */
+ if (nsm & ~psw & PSW_Q) {
+ dynexcp(env, EXCP_ILL, GETPC());
+ }
+ env->psw = (psw & ~PSW_SM) | (nsm & PSW_SM);
+ return psw & PSW_SM;
+}
+#endif
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 8a40c3f46b..0c6d7898a2 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -295,6 +295,10 @@ typedef struct DisasContext {
updated the iaq for the next instruction to be executed. */
#define DISAS_IAQ_N_STALE DISAS_TARGET_1
+/* Similarly, but we want to return to the main loop immediately
+ to recognize unmasked interrupts. */
+#define DISAS_IAQ_N_STALE_EXIT DISAS_TARGET_2
+
typedef struct DisasInsn {
uint32_t insn, mask;
DisasJumpType (*trans)(DisasContext *ctx, uint32_t insn,
@@ -693,6 +697,14 @@ static DisasJumpType gen_illegal(DisasContext *ctx)
return nullify_end(ctx, gen_excp(ctx, EXCP_ILL));
}
+#define CHECK_MOST_PRIVILEGED(EXCP) \
+ do { \
+ if (ctx->privilege != 0) { \
+ nullify_over(ctx); \
+ return nullify_end(ctx, gen_excp(ctx, EXCP)); \
+ } \
+ } while (0)
+
static bool use_goto_tb(DisasContext *ctx, target_ureg dest)
{
/* Suppress goto_tb in the case of single-steping and IO. */
@@ -1971,6 +1983,79 @@ static DisasJumpType trans_ldsid(DisasContext *ctx, uint32_t insn,
return DISAS_NEXT;
}
+#ifndef CONFIG_USER_ONLY
+/* Note that ssm/rsm instructions number PSW_W and PSW_E differently. */
+static target_ureg extract_sm_imm(uint32_t insn)
+{
+ target_ureg val = extract32(insn, 16, 10);
+
+ if (val & PSW_SM_E) {
+ val = (val & ~PSW_SM_E) | PSW_E;
+ }
+ if (val & PSW_SM_W) {
+ val = (val & ~PSW_SM_W) | PSW_W;
+ }
+ return val;
+}
+
+static DisasJumpType trans_rsm(DisasContext *ctx, uint32_t insn,
+ const DisasInsn *di)
+{
+ unsigned rt = extract32(insn, 0, 5);
+ target_ureg sm = extract_sm_imm(insn);
+ TCGv_reg tmp;
+
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR);
+ nullify_over(ctx);
+
+ tmp = get_temp(ctx);
+ tcg_gen_ld_reg(tmp, cpu_env, offsetof(CPUHPPAState, psw));
+ tcg_gen_andi_reg(tmp, tmp, ~sm);
+ gen_helper_swap_system_mask(tmp, cpu_env, tmp);
+ save_gpr(ctx, rt, tmp);
+
+ /* Exit the TB to recognize new interrupts, e.g. PSW_M. */
+ return nullify_end(ctx, DISAS_IAQ_N_STALE_EXIT);
+}
+
+static DisasJumpType trans_ssm(DisasContext *ctx, uint32_t insn,
+ const DisasInsn *di)
+{
+ unsigned rt = extract32(insn, 0, 5);
+ target_ureg sm = extract_sm_imm(insn);
+ TCGv_reg tmp;
+
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR);
+ nullify_over(ctx);
+
+ tmp = get_temp(ctx);
+ tcg_gen_ld_reg(tmp, cpu_env, offsetof(CPUHPPAState, psw));
+ tcg_gen_ori_reg(tmp, tmp, sm);
+ gen_helper_swap_system_mask(tmp, cpu_env, tmp);
+ save_gpr(ctx, rt, tmp);
+
+ /* Exit the TB to recognize new interrupts, e.g. PSW_I. */
+ return nullify_end(ctx, DISAS_IAQ_N_STALE_EXIT);
+}
+
+static DisasJumpType trans_mtsm(DisasContext *ctx, uint32_t insn,
+ const DisasInsn *di)
+{
+ unsigned rr = extract32(insn, 16, 5);
+ TCGv_reg tmp, reg;
+
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR);
+ nullify_over(ctx);
+
+ reg = load_gpr(ctx, rr);
+ tmp = get_temp(ctx);
+ gen_helper_swap_system_mask(tmp, cpu_env, reg);
+
+ /* Exit the TB to recognize new interrupts. */
+ return nullify_end(ctx, DISAS_IAQ_N_STALE_EXIT);
+}
+#endif /* !CONFIG_USER_ONLY */
+
static const DisasInsn table_system[] = {
{ 0x00000000u, 0xfc001fe0u, trans_break },
/* We don't implement space register, so MTSP is a nop. */
@@ -1982,6 +2067,11 @@ static const DisasInsn table_system[] = {
{ 0x000008a0u, 0xfc1fffe0u, trans_mfctl },
{ 0x00000400u, 0xffffffffu, trans_sync },
{ 0x000010a0u, 0xfc1f3fe0u, trans_ldsid },
+#ifndef CONFIG_USER_ONLY
+ { 0x00000e60u, 0xfc00ffe0u, trans_rsm },
+ { 0x00000d60u, 0xfc00ffe0u, trans_ssm },
+ { 0x00001860u, 0xffe0ffffu, trans_mtsm },
+#endif
};
static DisasJumpType trans_base_idx_mod(DisasContext *ctx, uint32_t insn,
@@ -4100,12 +4190,14 @@ static void hppa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
static void hppa_tr_tb_stop(DisasContextBase *dcbase, CPUState *cs)
{
DisasContext *ctx = container_of(dcbase, DisasContext, base);
+ DisasJumpType is_jmp = ctx->base.is_jmp;
- switch (ctx->base.is_jmp) {
+ switch (is_jmp) {
case DISAS_NORETURN:
break;
case DISAS_TOO_MANY:
case DISAS_IAQ_N_STALE:
+ case DISAS_IAQ_N_STALE_EXIT:
copy_iaoq_entry(cpu_iaoq_f, ctx->iaoq_f, cpu_iaoq_f);
copy_iaoq_entry(cpu_iaoq_b, ctx->iaoq_b, cpu_iaoq_b);
nullify_save(ctx);
@@ -4113,6 +4205,8 @@ static void hppa_tr_tb_stop(DisasContextBase *dcbase, CPUState *cs)
case DISAS_IAQ_N_UPDATED:
if (ctx->base.singlestep_enabled) {
gen_excp_1(EXCP_DEBUG);
+ } else if (is_jmp == DISAS_IAQ_N_STALE_EXIT) {
+ tcg_gen_exit_tb(0);
} else {
tcg_gen_lookup_and_goto_ptr();
}
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 08/43] target/hppa: Add space registers
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (6 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 07/43] target/hppa: Implement the system mask instructions Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 09/43] target/hppa: Add control registers Richard Henderson
` (38 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Not used where they should be yet, but we can copy them.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 1 +
target/hppa/helper.c | 14 ++++++----
target/hppa/translate.c | 73 +++++++++++++++++++++++++++++++++++++++++++++----
3 files changed, 77 insertions(+), 11 deletions(-)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index 805c93db9c..24c728c0d2 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -140,6 +140,7 @@ typedef int64_t target_sreg;
struct CPUHPPAState {
target_ureg gr[32];
uint64_t fr[32];
+ uint64_t sr[8]; /* stored shifted into place for gva */
target_ureg sar;
target_ureg cr26;
diff --git a/target/hppa/helper.c b/target/hppa/helper.c
index b6521f61fc..48ac80cb2d 100644
--- a/target/hppa/helper.c
+++ b/target/hppa/helper.c
@@ -168,12 +168,16 @@ void hppa_cpu_dump_state(CPUState *cs, FILE *f,
psw, psw_cb, psw_c);
for (i = 0; i < 32; i++) {
- cpu_fprintf(f, "GR%02d " TREG_FMT_lx " ", i, env->gr[i]);
- if ((i % 4) == 3) {
- cpu_fprintf(f, "\n");
- }
+ cpu_fprintf(f, "GR%02d " TREG_FMT_lx "%c", i, env->gr[i],
+ (i & 3) == 3 ? '\n' : ' ');
+ }
+#ifndef CONFIG_USER_ONLY
+ for (i = 0; i < 8; i++) {
+ cpu_fprintf(f, "SR%02d %08x%c", i, (uint32_t)(env->sr[i] >> 32),
+ (i & 3) == 3 ? '\n' : ' ');
}
- cpu_fprintf(f, "\n");
+#endif
+ cpu_fprintf(f, "\n");
/* ??? FR */
}
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 0c6d7898a2..1b03573292 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -316,6 +316,7 @@ typedef struct DisasInsn {
/* global register indexes */
static TCGv_reg cpu_gr[32];
+static TCGv_i64 cpu_sr[4];
static TCGv_reg cpu_iaoq_f;
static TCGv_reg cpu_iaoq_b;
static TCGv_reg cpu_sar;
@@ -354,6 +355,10 @@ void hppa_translate_init(void)
"r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
"r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31"
};
+ /* SR[4-7] are not global registers so that we can index them. */
+ static const char sr_names[4][4] = {
+ "sr0", "sr1", "sr2", "sr3"
+ };
int i;
@@ -363,6 +368,11 @@ void hppa_translate_init(void)
offsetof(CPUHPPAState, gr[i]),
gr_names[i]);
}
+ for (i = 0; i < 4; i++) {
+ cpu_sr[i] = tcg_global_mem_new_i64(cpu_env,
+ offsetof(CPUHPPAState, sr[i]),
+ sr_names[i]);
+ }
for (i = 0; i < ARRAY_SIZE(vars); ++i) {
const GlobalVar *v = &vars[i];
@@ -567,6 +577,19 @@ static void save_frd(unsigned rt, TCGv_i64 val)
tcg_gen_st_i64(val, cpu_env, offsetof(CPUHPPAState, fr[rt]));
}
+static void load_spr(DisasContext *ctx, TCGv_i64 dest, unsigned reg)
+{
+#ifdef CONFIG_USER_ONLY
+ tcg_gen_movi_i64(dest, 0);
+#else
+ if (reg < 4) {
+ tcg_gen_mov_i64(dest, cpu_sr[reg]);
+ } else {
+ tcg_gen_ld_i64(dest, cpu_env, offsetof(CPUHPPAState, sr[reg]));
+ }
+#endif
+}
+
/* Skip over the implementation of an insn that has been nullified.
Use this when the insn is too complex for a conditional move. */
static void nullify_over(DisasContext *ctx)
@@ -781,6 +804,13 @@ static unsigned assemble_rc64(uint32_t insn)
return r2 * 32 + r1 * 4 + r0;
}
+static unsigned assemble_sr3(uint32_t insn)
+{
+ unsigned s2 = extract32(insn, 13, 1);
+ unsigned s0 = extract32(insn, 14, 2);
+ return s2 * 4 + s0;
+}
+
static target_sreg assemble_12(uint32_t insn)
{
target_ureg x = -(target_ureg)(insn & 1);
@@ -1883,11 +1913,17 @@ static DisasJumpType trans_mfsp(DisasContext *ctx, uint32_t insn,
const DisasInsn *di)
{
unsigned rt = extract32(insn, 0, 5);
- TCGv_reg tmp = dest_gpr(ctx, rt);
+ unsigned rs = assemble_sr3(insn);
+ TCGv_i64 t0 = tcg_temp_new_i64();
+ TCGv_reg t1 = tcg_temp_new();
- /* ??? We don't implement space registers. */
- tcg_gen_movi_reg(tmp, 0);
- save_gpr(ctx, rt, tmp);
+ load_spr(ctx, t0, rs);
+ tcg_gen_shri_i64(t0, t0, 32);
+ tcg_gen_trunc_i64_reg(t1, t0);
+
+ save_gpr(ctx, rt, t1);
+ tcg_temp_free(t1);
+ tcg_temp_free_i64(t0);
cond_free(&ctx->null_cond);
return DISAS_NEXT;
@@ -1933,6 +1969,32 @@ static DisasJumpType trans_mfctl(DisasContext *ctx, uint32_t insn,
return DISAS_NEXT;
}
+static DisasJumpType trans_mtsp(DisasContext *ctx, uint32_t insn,
+ const DisasInsn *di)
+{
+ unsigned rr = extract32(insn, 16, 5);
+ unsigned rs = assemble_sr3(insn);
+ TCGv_i64 t64;
+
+ if (rs >= 5) {
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_REG);
+ }
+ nullify_over(ctx);
+
+ t64 = tcg_temp_new_i64();
+ tcg_gen_extu_reg_i64(t64, load_gpr(ctx, rr));
+ tcg_gen_shli_i64(t64, t64, 32);
+
+ if (rs >= 4) {
+ tcg_gen_st_i64(t64, cpu_env, offsetof(CPUHPPAState, sr[rs]));
+ } else {
+ tcg_gen_mov_i64(cpu_sr[rs], t64);
+ }
+ tcg_temp_free_i64(t64);
+
+ return nullify_end(ctx, DISAS_NEXT);
+}
+
static DisasJumpType trans_mtctl(DisasContext *ctx, uint32_t insn,
const DisasInsn *di)
{
@@ -2058,8 +2120,7 @@ static DisasJumpType trans_mtsm(DisasContext *ctx, uint32_t insn,
static const DisasInsn table_system[] = {
{ 0x00000000u, 0xfc001fe0u, trans_break },
- /* We don't implement space register, so MTSP is a nop. */
- { 0x00001820u, 0xffe01fffu, trans_nop },
+ { 0x00001820u, 0xffe01fffu, trans_mtsp },
{ 0x00001840u, 0xfc00ffffu, trans_mtctl },
{ 0x016018c0u, 0xffe0ffffu, trans_mtsarcm },
{ 0x000014a0u, 0xffffffe0u, trans_mfia },
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 09/43] target/hppa: Add control registers
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (7 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 08/43] target/hppa: Add space registers Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 10/43] target/hppa: Adjust insn mask for mfctl, w Richard Henderson
` (37 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
linux-user/hppa/target_cpu.h | 2 +-
target/hppa/cpu.h | 23 +++++++++++----
linux-user/main.c | 4 +--
linux-user/signal.c | 4 +--
target/hppa/gdbstub.c | 12 ++++----
target/hppa/mem_helper.c | 2 +-
target/hppa/translate.c | 70 ++++++++++++++++++++++++++++++--------------
7 files changed, 77 insertions(+), 40 deletions(-)
diff --git a/linux-user/hppa/target_cpu.h b/linux-user/hppa/target_cpu.h
index e50522eae9..7b78bbea80 100644
--- a/linux-user/hppa/target_cpu.h
+++ b/linux-user/hppa/target_cpu.h
@@ -33,7 +33,7 @@ static inline void cpu_clone_regs(CPUHPPAState *env, target_ulong newsp)
static inline void cpu_set_tls(CPUHPPAState *env, target_ulong newtls)
{
- env->cr27 = newtls;
+ env->cr[27] = newtls;
}
#endif
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index 24c728c0d2..c92c564a7f 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -123,6 +123,20 @@
#define PSW_SM_W 0
#endif
+#define CR_RC 0
+#define CR_SCRCCR 10
+#define CR_SAR 11
+#define CR_IVA 14
+#define CR_EIEM 15
+#define CR_IT 16
+#define CR_IIASQ 17
+#define CR_IIAOQ 18
+#define CR_IIR 19
+#define CR_ISR 20
+#define CR_IOR 21
+#define CR_IPSW 22
+#define CR_EIRR 23
+
typedef struct CPUHPPAState CPUHPPAState;
#if TARGET_REGISTER_BITS == 32
@@ -142,10 +156,6 @@ struct CPUHPPAState {
uint64_t fr[32];
uint64_t sr[8]; /* stored shifted into place for gva */
- target_ureg sar;
- target_ureg cr26;
- target_ureg cr27;
-
target_ureg psw; /* All psw bits except the following: */
target_ureg psw_n; /* boolean */
target_sreg psw_v; /* in most significant bit */
@@ -163,11 +173,12 @@ struct CPUHPPAState {
target_ureg iaoq_f; /* front */
target_ureg iaoq_b; /* back, aka next instruction */
- target_ureg ior; /* interrupt offset register */
-
uint32_t fr0_shadow; /* flags, c, ca/cq, rm, d, enables */
float_status fp_status;
+ target_ureg cr[32]; /* control registers */
+ target_ureg cr_back[2]; /* back of cr17/cr18 */
+
/* Those resources are used only in QEMU core */
CPU_COMMON
};
diff --git a/linux-user/main.c b/linux-user/main.c
index 42f4c66ce6..90ae447368 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -3781,14 +3781,14 @@ void cpu_loop(CPUHPPAState *env)
info.si_signo = TARGET_SIGSEGV;
info.si_errno = 0;
info.si_code = TARGET_SEGV_ACCERR;
- info._sifields._sigfault._addr = env->ior;
+ info._sifields._sigfault._addr = env->cr[CR_IOR];
queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info);
break;
case EXCP_UNALIGN:
info.si_signo = TARGET_SIGBUS;
info.si_errno = 0;
info.si_code = 0;
- info._sifields._sigfault._addr = env->ior;
+ info._sifields._sigfault._addr = env->cr[CR_IOR];
queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info);
break;
case EXCP_ILL:
diff --git a/linux-user/signal.c b/linux-user/signal.c
index f85f0dd780..40d5d849f0 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -6440,7 +6440,7 @@ static void setup_sigcontext(struct target_sigcontext *sc, CPUArchState *env)
__put_user(env->fr[i], &sc->sc_fr[i]);
}
- __put_user(env->sar, &sc->sc_sar);
+ __put_user(env->cr[CR_SAR], &sc->sc_sar);
}
static void restore_sigcontext(CPUArchState *env, struct target_sigcontext *sc)
@@ -6461,7 +6461,7 @@ static void restore_sigcontext(CPUArchState *env, struct target_sigcontext *sc)
__get_user(env->iaoq_f, &sc->sc_iaoq[0]);
__get_user(env->iaoq_b, &sc->sc_iaoq[1]);
- __get_user(env->sar, &sc->sc_sar);
+ __get_user(env->cr[CR_SAR], &sc->sc_sar);
}
/* No, this doesn't look right, but it's copied straight from the kernel. */
diff --git a/target/hppa/gdbstub.c b/target/hppa/gdbstub.c
index 228d282fe9..fc27aec073 100644
--- a/target/hppa/gdbstub.c
+++ b/target/hppa/gdbstub.c
@@ -36,7 +36,7 @@ int hppa_cpu_gdb_read_register(CPUState *cs, uint8_t *mem_buf, int n)
val = env->gr[n];
break;
case 32:
- val = env->sar;
+ val = env->cr[CR_SAR];
break;
case 33:
val = env->iaoq_f;
@@ -45,10 +45,10 @@ int hppa_cpu_gdb_read_register(CPUState *cs, uint8_t *mem_buf, int n)
val = env->iaoq_b;
break;
case 59:
- val = env->cr26;
+ val = env->cr[26];
break;
case 60:
- val = env->cr27;
+ val = env->cr[27];
break;
case 64 ... 127:
val = extract64(env->fr[(n - 64) / 2], (n & 1 ? 0 : 32), 32);
@@ -89,7 +89,7 @@ int hppa_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
env->gr[n] = val;
break;
case 32:
- env->sar = val;
+ env->cr[CR_SAR] = val;
break;
case 33:
env->iaoq_f = val;
@@ -98,10 +98,10 @@ int hppa_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
env->iaoq_b = val;
break;
case 59:
- env->cr26 = val;
+ env->cr[26] = val;
break;
case 60:
- env->cr27 = val;
+ env->cr[27] = val;
break;
case 64:
env->fr[0] = deposit64(env->fr[0], 32, 32, val);
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
index 2901f3e29c..1afaf89539 100644
--- a/target/hppa/mem_helper.c
+++ b/target/hppa/mem_helper.c
@@ -32,7 +32,7 @@ int hppa_cpu_handle_mmu_fault(CPUState *cs, vaddr address,
/* ??? Test between data page fault and data memory protection trap,
which would affect si_code. */
cs->exception_index = EXCP_DMP;
- cpu->env.ior = address;
+ cpu->env.cr[CR_IOR] = address;
return 1;
}
#else
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 1b03573292..0408dbedf1 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -324,8 +324,6 @@ static TCGv_reg cpu_psw_n;
static TCGv_reg cpu_psw_v;
static TCGv_reg cpu_psw_cb;
static TCGv_reg cpu_psw_cb_msb;
-static TCGv_reg cpu_cr26;
-static TCGv_reg cpu_cr27;
#include "exec/gen-icount.h"
@@ -335,9 +333,7 @@ void hppa_translate_init(void)
typedef struct { TCGv_reg *var; const char *name; int ofs; } GlobalVar;
static const GlobalVar vars[] = {
- DEF_VAR(sar),
- DEF_VAR(cr26),
- DEF_VAR(cr27),
+ { &cpu_sar, "sar", offsetof(CPUHPPAState, cr[CR_SAR]) },
DEF_VAR(psw_n),
DEF_VAR(psw_v),
DEF_VAR(psw_cb),
@@ -1856,7 +1852,7 @@ static DisasJumpType do_page_zero(DisasContext *ctx)
return DISAS_NORETURN;
case 0xe0: /* SET_THREAD_POINTER */
- tcg_gen_mov_reg(cpu_cr27, cpu_gr[26]);
+ tcg_gen_st_reg(cpu_gr[26], cpu_env, offsetof(CPUHPPAState, cr[27]));
tcg_gen_mov_reg(cpu_iaoq_f, cpu_gr[31]);
tcg_gen_addi_reg(cpu_iaoq_b, cpu_iaoq_f, 4);
return DISAS_IAQ_N_UPDATED;
@@ -1937,34 +1933,39 @@ static DisasJumpType trans_mfctl(DisasContext *ctx, uint32_t insn,
TCGv_reg tmp;
switch (ctl) {
- case 11: /* SAR */
+ case CR_SAR:
#ifdef TARGET_HPPA64
if (extract32(insn, 14, 1) == 0) {
/* MFSAR without ,W masks low 5 bits. */
tmp = dest_gpr(ctx, rt);
tcg_gen_andi_reg(tmp, cpu_sar, 31);
save_gpr(ctx, rt, tmp);
- break;
+ goto done;
}
#endif
save_gpr(ctx, rt, cpu_sar);
- break;
- case 16: /* Interval Timer */
+ goto done;
+ case CR_IT: /* Interval Timer */
+ /* FIXME: Respect PSW_S bit. */
+ nullify_over(ctx);
tmp = dest_gpr(ctx, rt);
- tcg_gen_movi_tl(tmp, 0); /* FIXME */
+ tcg_gen_movi_reg(tmp, 0); /* FIXME */
save_gpr(ctx, rt, tmp);
break;
case 26:
- save_gpr(ctx, rt, cpu_cr26);
- break;
case 27:
- save_gpr(ctx, rt, cpu_cr27);
break;
default:
/* All other control registers are privileged. */
- return gen_illegal(ctx);
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_REG);
+ break;
}
+ tmp = get_temp(ctx);
+ tcg_gen_ld_reg(tmp, cpu_env, offsetof(CPUHPPAState, cr[ctl]));
+ save_gpr(ctx, rt, tmp);
+
+ done:
cond_free(&ctx->null_cond);
return DISAS_NEXT;
}
@@ -2000,20 +2001,45 @@ static DisasJumpType trans_mtctl(DisasContext *ctx, uint32_t insn,
{
unsigned rin = extract32(insn, 16, 5);
unsigned ctl = extract32(insn, 21, 5);
+ TCGv_reg reg = load_gpr(ctx, rin);
TCGv_reg tmp;
- if (ctl == 11) { /* SAR */
+ if (ctl == CR_SAR) {
tmp = tcg_temp_new();
- tcg_gen_andi_reg(tmp, load_gpr(ctx, rin), TARGET_REGISTER_BITS - 1);
+ tcg_gen_andi_reg(tmp, reg, TARGET_REGISTER_BITS - 1);
save_or_nullify(ctx, cpu_sar, tmp);
tcg_temp_free(tmp);
- } else {
- /* All other control registers are privileged or read-only. */
- return gen_illegal(ctx);
+
+ cond_free(&ctx->null_cond);
+ return DISAS_NEXT;
}
- cond_free(&ctx->null_cond);
- return DISAS_NEXT;
+ /* All other control registers are privileged or read-only. */
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_REG);
+
+ nullify_over(ctx);
+ switch (ctl) {
+ case CR_IT:
+ /* ??? modify interval timer offset */
+ break;
+
+ case CR_IIASQ:
+ case CR_IIAOQ:
+ /* FIXME: Respect PSW_Q bit */
+ /* The write advances the queue and stores to the back element. */
+ tmp = get_temp(ctx);
+ tcg_gen_ld_reg(tmp, cpu_env,
+ offsetof(CPUHPPAState, cr_back[ctl - CR_IIASQ]));
+ tcg_gen_st_reg(tmp, cpu_env, offsetof(CPUHPPAState, cr[ctl]));
+ tcg_gen_st_reg(reg, cpu_env,
+ offsetof(CPUHPPAState, cr_back[ctl - CR_IIASQ]));
+ break;
+
+ default:
+ tcg_gen_st_reg(reg, cpu_env, offsetof(CPUHPPAState, cr[ctl]));
+ break;
+ }
+ return nullify_end(ctx, DISAS_NEXT);
}
static DisasJumpType trans_mtsarcm(DisasContext *ctx, uint32_t insn,
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 10/43] target/hppa: Adjust insn mask for mfctl, w
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (8 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 09/43] target/hppa: Add control registers Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 11/43] target/hppa: Implement rfi Richard Henderson
` (36 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
While the E bit is only used for pa2.0 mfctl,w from sar,
the otherwise reserved bit does not appear to be decoded.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/translate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 0408dbedf1..b201e5ace2 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -2151,7 +2151,7 @@ static const DisasInsn table_system[] = {
{ 0x016018c0u, 0xffe0ffffu, trans_mtsarcm },
{ 0x000014a0u, 0xffffffe0u, trans_mfia },
{ 0x000004a0u, 0xffff1fe0u, trans_mfsp },
- { 0x000008a0u, 0xfc1fffe0u, trans_mfctl },
+ { 0x000008a0u, 0xfc1fbfe0u, trans_mfctl },
{ 0x00000400u, 0xffffffffu, trans_sync },
{ 0x000010a0u, 0xfc1f3fe0u, trans_ldsid },
#ifndef CONFIG_USER_ONLY
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 11/43] target/hppa: Implement rfi
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (9 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 10/43] target/hppa: Adjust insn mask for mfctl, w Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 12/43] target/hppa: Fill in hppa_cpu_do_interrupt/hppa_cpu_exec_interrupt Richard Henderson
` (35 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 1 +
target/hppa/helper.h | 2 ++
target/hppa/op_helper.c | 24 ++++++++++++++++++++++++
target/hppa/translate.c | 30 ++++++++++++++++++++++++++++--
4 files changed, 55 insertions(+), 2 deletions(-)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index c92c564a7f..6ec3430ae3 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -178,6 +178,7 @@ struct CPUHPPAState {
target_ureg cr[32]; /* control registers */
target_ureg cr_back[2]; /* back of cr17/cr18 */
+ target_ureg shadow[7]; /* shadow registers */
/* Those resources are used only in QEMU core */
CPU_COMMON
diff --git a/target/hppa/helper.h b/target/hppa/helper.h
index 254a4da133..79d22ae486 100644
--- a/target/hppa/helper.h
+++ b/target/hppa/helper.h
@@ -78,5 +78,7 @@ DEF_HELPER_FLAGS_4(fmpyfadd_d, TCG_CALL_NO_RWG, i64, env, i64, i64, i64)
DEF_HELPER_FLAGS_4(fmpynfadd_d, TCG_CALL_NO_RWG, i64, env, i64, i64, i64)
#ifndef CONFIG_USER_ONLY
+DEF_HELPER_1(rfi, void, env)
+DEF_HELPER_1(rfi_r, void, env)
DEF_HELPER_FLAGS_2(swap_system_mask, TCG_CALL_NO_RWG, tr, env, tr)
#endif
diff --git a/target/hppa/op_helper.c b/target/hppa/op_helper.c
index 1c3e043cc0..3f5dcbbca0 100644
--- a/target/hppa/op_helper.c
+++ b/target/hppa/op_helper.c
@@ -614,4 +614,28 @@ target_ureg HELPER(swap_system_mask)(CPUHPPAState *env, target_ureg nsm)
env->psw = (psw & ~PSW_SM) | (nsm & PSW_SM);
return psw & PSW_SM;
}
+
+void HELPER(rfi)(CPUHPPAState *env)
+{
+ /* ??? On second reading this condition simply seems
+ to be undefined rather than a diagnosed trap. */
+ if (env->psw & (PSW_I | PSW_R | PSW_Q)) {
+ helper_excp(env, EXCP_ILL);
+ }
+ env->iaoq_f = env->cr[CR_IIAOQ];
+ env->iaoq_b = env->cr_back[1];
+ cpu_hppa_put_psw(env, env->cr[CR_IPSW]);
+}
+
+void HELPER(rfi_r)(CPUHPPAState *env)
+{
+ env->gr[1] = env->shadow[0];
+ env->gr[8] = env->shadow[1];
+ env->gr[9] = env->shadow[2];
+ env->gr[16] = env->shadow[3];
+ env->gr[17] = env->shadow[4];
+ env->gr[24] = env->shadow[5];
+ env->gr[25] = env->shadow[6];
+ helper_rfi(env);
+}
#endif
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index b201e5ace2..89c22a4c3e 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -651,6 +651,10 @@ static DisasJumpType nullify_end(DisasContext *ctx, DisasJumpType status)
{
TCGLabel *null_lab = ctx->null_lab;
+ /* For NEXT, NORETURN, STALE, we can easily continue (or exit).
+ For UPDATED, we cannot update on the nullified path. */
+ assert(status != DISAS_IAQ_N_UPDATED);
+
if (likely(null_lab == NULL)) {
/* The current insn wasn't conditional or handled the condition
applied to it without a branch, so the (new) setting of
@@ -672,8 +676,6 @@ static DisasJumpType nullify_end(DisasContext *ctx, DisasJumpType status)
gen_set_label(null_lab);
ctx->null_cond = cond_make_n();
}
-
- assert(status != DISAS_NORETURN && status != DISAS_IAQ_N_UPDATED);
if (status == DISAS_NORETURN) {
status = DISAS_NEXT;
}
@@ -2142,6 +2144,29 @@ static DisasJumpType trans_mtsm(DisasContext *ctx, uint32_t insn,
/* Exit the TB to recognize new interrupts. */
return nullify_end(ctx, DISAS_IAQ_N_STALE_EXIT);
}
+
+static DisasJumpType trans_rfi(DisasContext *ctx, uint32_t insn,
+ const DisasInsn *di)
+{
+ unsigned comp = extract32(insn, 5, 4);
+
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR);
+ nullify_over(ctx);
+
+ if (comp == 5) {
+ gen_helper_rfi_r(cpu_env);
+ } else {
+ gen_helper_rfi(cpu_env);
+ }
+ if (ctx->base.singlestep_enabled) {
+ gen_excp_1(EXCP_DEBUG);
+ } else {
+ tcg_gen_exit_tb(0);
+ }
+
+ /* Exit the TB to recognize new interrupts. */
+ return nullify_end(ctx, DISAS_NORETURN);
+}
#endif /* !CONFIG_USER_ONLY */
static const DisasInsn table_system[] = {
@@ -2158,6 +2183,7 @@ static const DisasInsn table_system[] = {
{ 0x00000e60u, 0xfc00ffe0u, trans_rsm },
{ 0x00000d60u, 0xfc00ffe0u, trans_ssm },
{ 0x00001860u, 0xffe0ffffu, trans_mtsm },
+ { 0x00000c00u, 0xfffffe1fu, trans_rfi },
#endif
};
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 12/43] target/hppa: Fill in hppa_cpu_do_interrupt/hppa_cpu_exec_interrupt
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (10 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 11/43] target/hppa: Implement rfi Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 13/43] target/hppa: Implement unaligned access trap Richard Henderson
` (34 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.c | 2 +
target/hppa/helper.c | 63 -----------------
target/hppa/int_helper.c | 176 ++++++++++++++++++++++++++++++++++++++++++++++
target/hppa/translate.c | 16 ++++-
target/hppa/Makefile.objs | 1 +
5 files changed, 192 insertions(+), 66 deletions(-)
create mode 100644 target/hppa/int_helper.c
diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
index 9962ab71ee..ca619578dd 100644
--- a/target/hppa/cpu.c
+++ b/target/hppa/cpu.c
@@ -106,8 +106,10 @@ static void hppa_cpu_initfn(Object *obj)
CPUHPPAState *env = &cpu->env;
cs->env_ptr = env;
+ cs->exception_index = -1;
cpu_hppa_loaded_fr0(env);
set_snan_bit_is_one(true, &env->fp_status);
+ cpu_hppa_put_psw(env, PSW_W);
}
static ObjectClass *hppa_cpu_class_by_name(const char *cpu_model)
diff --git a/target/hppa/helper.c b/target/hppa/helper.c
index 48ac80cb2d..6e8758f82c 100644
--- a/target/hppa/helper.c
+++ b/target/hppa/helper.c
@@ -67,69 +67,6 @@ void cpu_hppa_put_psw(CPUHPPAState *env, target_ureg psw)
env->psw_cb = cb;
}
-void hppa_cpu_do_interrupt(CPUState *cs)
-{
- HPPACPU *cpu = HPPA_CPU(cs);
- CPUHPPAState *env = &cpu->env;
- int i = cs->exception_index;
-
- if (qemu_loglevel_mask(CPU_LOG_INT)) {
- static const char * const names[] = {
- [EXCP_HPMC] = "high priority machine check",
- [EXCP_POWER_FAIL] = "power fail interrupt",
- [EXCP_RC] = "recovery counter trap",
- [EXCP_EXT_INTERRUPT] = "external interrupt",
- [EXCP_LPMC] = "low priority machine check",
- [EXCP_ITLB_MISS] = "instruction tlb miss fault",
- [EXCP_IMP] = "instruction memory protection trap",
- [EXCP_ILL] = "illegal instruction trap",
- [EXCP_BREAK] = "break instruction trap",
- [EXCP_PRIV_OPR] = "privileged operation trap",
- [EXCP_PRIV_REG] = "privileged register trap",
- [EXCP_OVERFLOW] = "overflow trap",
- [EXCP_COND] = "conditional trap",
- [EXCP_ASSIST] = "assist exception trap",
- [EXCP_DTLB_MISS] = "data tlb miss fault",
- [EXCP_NA_ITLB_MISS] = "non-access instruction tlb miss",
- [EXCP_NA_DTLB_MISS] = "non-access data tlb miss",
- [EXCP_DMP] = "data memory protection trap",
- [EXCP_DMB] = "data memory break trap",
- [EXCP_TLB_DIRTY] = "tlb dirty bit trap",
- [EXCP_PAGE_REF] = "page reference trap",
- [EXCP_ASSIST_EMU] = "assist emulation trap",
- [EXCP_HPT] = "high-privilege transfer trap",
- [EXCP_LPT] = "low-privilege transfer trap",
- [EXCP_TB] = "taken branch trap",
- [EXCP_DMAR] = "data memory access rights trap",
- [EXCP_DMPI] = "data memory protection id trap",
- [EXCP_UNALIGN] = "unaligned data reference trap",
- [EXCP_PER_INTERRUPT] = "performance monitor interrupt",
- [EXCP_SYSCALL] = "syscall",
- [EXCP_SYSCALL_LWS] = "syscall-lws",
- };
- static int count;
- const char *name = NULL;
-
- if (i >= 0 && i < ARRAY_SIZE(names)) {
- name = names[i];
- }
- if (name) {
- qemu_log("INT %6d: %s ia_f=" TARGET_FMT_lx "\n",
- ++count, name, env->iaoq_f);
- } else {
- qemu_log("INT %6d: unknown %d ia_f=" TARGET_FMT_lx "\n",
- ++count, i, env->iaoq_f);
- }
- }
- cs->exception_index = -1;
-}
-
-bool hppa_cpu_exec_interrupt(CPUState *cs, int interrupt_request)
-{
- abort();
- return false;
-}
-
void hppa_cpu_dump_state(CPUState *cs, FILE *f,
fprintf_function cpu_fprintf, int flags)
{
diff --git a/target/hppa/int_helper.c b/target/hppa/int_helper.c
new file mode 100644
index 0000000000..34413c30e1
--- /dev/null
+++ b/target/hppa/int_helper.c
@@ -0,0 +1,176 @@
+/*
+ * HPPA interrupt helper routines
+ *
+ * Copyright (c) 2017 Richard Henderson
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "qemu/osdep.h"
+#include "qemu/main-loop.h"
+#include "cpu.h"
+#include "exec/exec-all.h"
+#include "exec/helper-proto.h"
+#include "qom/cpu.h"
+
+
+void hppa_cpu_do_interrupt(CPUState *cs)
+{
+ HPPACPU *cpu = HPPA_CPU(cs);
+ CPUHPPAState *env = &cpu->env;
+ int i = cs->exception_index;
+ target_ureg iaoq_f = env->iaoq_f;
+ target_ureg iaoq_b = env->iaoq_b;
+
+#ifndef CONFIG_USER_ONLY
+ target_ureg old_psw;
+
+ /* As documented in pa2.0 -- interruption handling. */
+ /* step 1 */
+ env->cr[CR_IPSW] = old_psw = cpu_hppa_get_psw(env);
+
+ /* step 2 -- note PSW_W == 0 for !HPPA64. */
+ cpu_hppa_put_psw(env, PSW_W | (i == EXCP_HPMC ? PSW_M : 0));
+
+ /* step 3 */
+ env->cr[CR_IIAOQ] = iaoq_f;
+ env->cr_back[1] = iaoq_b;
+
+ /* step 5 */
+ /* ISR and IOR will be set elsewhere. */
+ switch (i) {
+ case EXCP_ILL:
+ case EXCP_BREAK:
+ case EXCP_PRIV_REG:
+ case EXCP_PRIV_OPR:
+ /* IIR set via translate.c. */
+ break;
+
+ case EXCP_OVERFLOW:
+ case EXCP_COND:
+ case EXCP_ASSIST:
+ case EXCP_DTLB_MISS:
+ case EXCP_NA_ITLB_MISS:
+ case EXCP_NA_DTLB_MISS:
+ case EXCP_DMAR:
+ case EXCP_DMPI:
+ case EXCP_UNALIGN:
+ case EXCP_DMP:
+ case EXCP_DMB:
+ case EXCP_TLB_DIRTY:
+ case EXCP_PAGE_REF:
+ case EXCP_ASSIST_EMU:
+ {
+ /* Avoid reading directly from the virtual address, lest we
+ raise another exception from some sort of TLB issue. */
+ vaddr vaddr;
+ hwaddr paddr;
+
+ paddr = vaddr = iaoq_f & -4;
+ env->cr[CR_IIR] = ldl_phys(cs->as, paddr);
+ }
+ break;
+
+ default:
+ /* Other exceptions do not set IIR. */
+ break;
+ }
+
+ /* step 6 */
+ if (old_psw & PSW_Q) {
+ env->shadow[0] = env->gr[1];
+ env->shadow[1] = env->gr[8];
+ env->shadow[2] = env->gr[9];
+ env->shadow[3] = env->gr[16];
+ env->shadow[4] = env->gr[17];
+ env->shadow[5] = env->gr[24];
+ env->shadow[6] = env->gr[25];
+ }
+
+ /* step 7 */
+ env->iaoq_f = env->cr[CR_IVA] + 32 * i;
+ env->iaoq_b = env->iaoq_f + 4;
+#endif
+
+ if (qemu_loglevel_mask(CPU_LOG_INT)) {
+ static const char * const names[] = {
+ [EXCP_HPMC] = "high priority machine check",
+ [EXCP_POWER_FAIL] = "power fail interrupt",
+ [EXCP_RC] = "recovery counter trap",
+ [EXCP_EXT_INTERRUPT] = "external interrupt",
+ [EXCP_LPMC] = "low priority machine check",
+ [EXCP_ITLB_MISS] = "instruction tlb miss fault",
+ [EXCP_IMP] = "instruction memory protection trap",
+ [EXCP_ILL] = "illegal instruction trap",
+ [EXCP_BREAK] = "break instruction trap",
+ [EXCP_PRIV_OPR] = "privileged operation trap",
+ [EXCP_PRIV_REG] = "privileged register trap",
+ [EXCP_OVERFLOW] = "overflow trap",
+ [EXCP_COND] = "conditional trap",
+ [EXCP_ASSIST] = "assist exception trap",
+ [EXCP_DTLB_MISS] = "data tlb miss fault",
+ [EXCP_NA_ITLB_MISS] = "non-access instruction tlb miss",
+ [EXCP_NA_DTLB_MISS] = "non-access data tlb miss",
+ [EXCP_DMP] = "data memory protection trap",
+ [EXCP_DMB] = "data memory break trap",
+ [EXCP_TLB_DIRTY] = "tlb dirty bit trap",
+ [EXCP_PAGE_REF] = "page reference trap",
+ [EXCP_ASSIST_EMU] = "assist emulation trap",
+ [EXCP_HPT] = "high-privilege transfer trap",
+ [EXCP_LPT] = "low-privilege transfer trap",
+ [EXCP_TB] = "taken branch trap",
+ [EXCP_DMAR] = "data memory access rights trap",
+ [EXCP_DMPI] = "data memory protection id trap",
+ [EXCP_UNALIGN] = "unaligned data reference trap",
+ [EXCP_PER_INTERRUPT] = "performance monitor interrupt",
+ [EXCP_SYSCALL] = "syscall",
+ [EXCP_SYSCALL_LWS] = "syscall-lws",
+ };
+ static int count;
+ const char *name = NULL;
+ char unknown[16];
+
+ if (i >= 0 && i < ARRAY_SIZE(names)) {
+ name = names[i];
+ }
+ if (!name) {
+ snprintf(unknown, sizeof(unknown), "unknown %d", i);
+ name = unknown;
+ }
+ qemu_log("INT %6d: %s @ " TARGET_FMT_lx "," TARGET_FMT_lx
+ " -> " TREG_FMT_lx " " TARGET_FMT_lx "\n",
+ ++count, name,
+ (target_ulong)iaoq_f,
+ (target_ulong)iaoq_b,
+ env->iaoq_f,
+ (target_ulong)env->cr[CR_IOR]);
+ }
+ cs->exception_index = -1;
+}
+
+bool hppa_cpu_exec_interrupt(CPUState *cs, int interrupt_request)
+{
+#ifndef CONFIG_USER_ONLY
+ HPPACPU *cpu = HPPA_CPU(cs);
+ CPUHPPAState *env = &cpu->env;
+
+ /* If interrupts are requested and enabled, raise them. */
+ if ((env->psw & PSW_I) && (interrupt_request & CPU_INTERRUPT_HARD)) {
+ cs->exception_index = EXCP_EXT_INTERRUPT;
+ hppa_cpu_do_interrupt(cs);
+ return true;
+ }
+#endif
+ return false;
+}
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 89c22a4c3e..58837044a6 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -278,6 +278,7 @@ typedef struct DisasContext {
DisasCond null_cond;
TCGLabel *null_lab;
+ uint32_t insn;
int mmu_idx;
int privilege;
bool psw_n_nonzero;
@@ -712,17 +713,25 @@ static DisasJumpType gen_excp(DisasContext *ctx, int exception)
return DISAS_NORETURN;
}
+static DisasJumpType gen_excp_iir(DisasContext *ctx, int exc)
+{
+ TCGv_reg tmp = tcg_const_reg(ctx->insn);
+ tcg_gen_st_reg(tmp, cpu_env, offsetof(CPUHPPAState, cr[CR_IIR]));
+ tcg_temp_free(tmp);
+ return gen_excp(ctx, exc);
+}
+
static DisasJumpType gen_illegal(DisasContext *ctx)
{
nullify_over(ctx);
- return nullify_end(ctx, gen_excp(ctx, EXCP_ILL));
+ return nullify_end(ctx, gen_excp_iir(ctx, EXCP_ILL));
}
#define CHECK_MOST_PRIVILEGED(EXCP) \
do { \
if (ctx->privilege != 0) { \
nullify_over(ctx); \
- return nullify_end(ctx, gen_excp(ctx, EXCP)); \
+ return nullify_end(ctx, gen_excp_iir(ctx, EXCP)); \
} \
} while (0)
@@ -1882,7 +1891,7 @@ static DisasJumpType trans_break(DisasContext *ctx, uint32_t insn,
const DisasInsn *di)
{
nullify_over(ctx);
- return nullify_end(ctx, gen_excp(ctx, EXCP_BREAK));
+ return nullify_end(ctx, gen_excp_iir(ctx, EXCP_BREAK));
}
static DisasJumpType trans_sync(DisasContext *ctx, uint32_t insn,
@@ -4259,6 +4268,7 @@ static void hppa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
ctx->null_cond.c = TCG_COND_NEVER;
ret = DISAS_NEXT;
} else {
+ ctx->insn = insn;
ret = translate_one(ctx, insn);
assert(ctx->null_lab == NULL);
}
diff --git a/target/hppa/Makefile.objs b/target/hppa/Makefile.objs
index d89285307b..dcd60a6839 100644
--- a/target/hppa/Makefile.objs
+++ b/target/hppa/Makefile.objs
@@ -1 +1,2 @@
obj-y += translate.o helper.o cpu.o op_helper.o gdbstub.o mem_helper.o
+obj-y += int_helper.o
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 13/43] target/hppa: Implement unaligned access trap
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (11 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 12/43] target/hppa: Fill in hppa_cpu_do_interrupt/hppa_cpu_exec_interrupt Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 14/43] target/hppa: Use space registers in data operations Richard Henderson
` (33 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.c | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
index ca619578dd..6b2d22118d 100644
--- a/target/hppa/cpu.c
+++ b/target/hppa/cpu.c
@@ -48,6 +48,21 @@ static void hppa_cpu_disas_set_info(CPUState *cs, disassemble_info *info)
info->print_insn = print_insn_hppa;
}
+static void hppa_cpu_do_unaligned_access(CPUState *cs, vaddr addr,
+ MMUAccessType access_type,
+ int mmu_idx, uintptr_t retaddr)
+{
+ HPPACPU *cpu = HPPA_CPU(cs);
+ CPUHPPAState *env = &cpu->env;
+
+ cs->exception_index = EXCP_UNALIGN;
+ /* ??? Needs tweaking for hppa64. */
+ env->cr[CR_IOR] = addr;
+ env->cr[CR_ISR] = addr >> 32;
+
+ cpu_loop_exit_restore(cs, retaddr);
+}
+
static void hppa_cpu_realizefn(DeviceState *dev, Error **errp)
{
CPUState *cs = CPU(dev);
@@ -139,7 +154,7 @@ static void hppa_cpu_class_init(ObjectClass *oc, void *data)
#else
cc->get_phys_page_debug = hppa_cpu_get_phys_page_debug;
#endif
-
+ cc->do_unaligned_access = hppa_cpu_do_unaligned_access;
cc->disas_set_info = hppa_cpu_disas_set_info;
cc->tcg_initialize = hppa_translate_init;
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 14/43] target/hppa: Use space registers in data operations
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (12 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 13/43] target/hppa: Implement unaligned access trap Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 15/43] target/hppa: Avoid privilege level decrease during branches Richard Henderson
` (32 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
This changes the system virtual address width to 64-bit and
incorporates the space registers into load/store operations.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 14 ++
target/hppa/translate.c | 334 +++++++++++++++++++++++++++---------------------
2 files changed, 201 insertions(+), 147 deletions(-)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index 6ec3430ae3..94f9c8ca2b 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -23,10 +23,24 @@
#include "qemu-common.h"
#include "cpu-qom.h"
+#ifdef TARGET_HPPA64
+#define TARGET_LONG_BITS 64
+#define TARGET_VIRT_ADDR_SPACE_BITS 64
+#define TARGET_REGISTER_BITS 64
+#define TARGET_PHYS_ADDR_SPACE_BITS 64
+#elif defined(CONFIG_USER_ONLY)
#define TARGET_LONG_BITS 32
#define TARGET_VIRT_ADDR_SPACE_BITS 32
#define TARGET_REGISTER_BITS 32
#define TARGET_PHYS_ADDR_SPACE_BITS 32
+#else
+/* In order to form the GVA from space:offset,
+ we need a 64-bit virtual address space. */
+#define TARGET_LONG_BITS 64
+#define TARGET_VIRT_ADDR_SPACE_BITS 64
+#define TARGET_REGISTER_BITS 32
+#define TARGET_PHYS_ADDR_SPACE_BITS 32
+#endif
#define CPUArchState struct CPUHPPAState
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 58837044a6..0650c3e14e 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -272,8 +272,9 @@ typedef struct DisasContext {
target_ureg iaoq_n;
TCGv_reg iaoq_n_var;
- int ntemps;
- TCGv_reg temps[8];
+ int ntempr, ntempl;
+ TCGv_reg tempr[4];
+ TCGv_tl templ[4];
DisasCond null_cond;
TCGLabel *null_lab;
@@ -454,11 +455,20 @@ static void cond_free(DisasCond *cond)
static TCGv_reg get_temp(DisasContext *ctx)
{
- unsigned i = ctx->ntemps++;
- g_assert(i < ARRAY_SIZE(ctx->temps));
- return ctx->temps[i] = tcg_temp_new();
+ unsigned i = ctx->ntempr++;
+ g_assert(i < ARRAY_SIZE(ctx->tempr));
+ return ctx->tempr[i] = tcg_temp_new();
}
+#ifndef CONFIG_USER_ONLY
+static TCGv_tl get_temp_tl(DisasContext *ctx)
+{
+ unsigned i = ctx->ntempl++;
+ g_assert(i < ARRAY_SIZE(ctx->templ));
+ return ctx->templ[i] = tcg_temp_new_tl();
+}
+#endif
+
static TCGv_reg load_const(DisasContext *ctx, target_sreg v)
{
TCGv_reg t = get_temp(ctx);
@@ -1313,6 +1323,70 @@ static DisasJumpType do_unit(DisasContext *ctx, unsigned rt, TCGv_reg in1,
return DISAS_NEXT;
}
+#ifndef CONFIG_USER_ONLY
+/* Top 2 bits of the base register select sp[4-7]. */
+static TCGv_i64 space_select(DisasContext *ctx, int sp, TCGv_reg base)
+{
+ TCGv_ptr ptr;
+ TCGv_reg tmp;
+ TCGv_i64 spc;
+
+ if (sp != 0) {
+ return cpu_sr[sp];
+ }
+
+ ptr = tcg_temp_new_ptr();
+ tmp = tcg_temp_new();
+ spc = get_temp_tl(ctx);
+
+ tcg_gen_shri_reg(tmp, base, TARGET_REGISTER_BITS - 5);
+ tcg_gen_andi_reg(tmp, tmp, 030);
+ tcg_gen_trunc_reg_ptr(ptr, tmp);
+ tcg_temp_free(tmp);
+
+ tcg_gen_add_ptr(ptr, ptr, cpu_env);
+ tcg_gen_ld_i64(spc, ptr, offsetof(CPUHPPAState, sr[4]));
+ tcg_temp_free_ptr(ptr);
+
+ return spc;
+}
+#endif
+
+static void form_gva(DisasContext *ctx, TCGv_tl *pgva, TCGv_reg *pofs,
+ unsigned rb, unsigned rx, int scale, target_sreg disp,
+ unsigned sp, int modify, bool is_phys)
+{
+ TCGv_reg base = load_gpr(ctx, rb);
+ TCGv_reg ofs;
+
+ /* Note that RX is mutually exclusive with DISP. */
+ if (rx) {
+ ofs = get_temp(ctx);
+ tcg_gen_shli_reg(ofs, cpu_gr[rx], scale);
+ tcg_gen_add_reg(ofs, ofs, base);
+ } else if (disp || modify) {
+ ofs = get_temp(ctx);
+ tcg_gen_addi_reg(ofs, base, disp);
+ } else {
+ ofs = base;
+ }
+
+ *pofs = ofs;
+#ifdef CONFIG_USER_ONLY
+ *pgva = (modify <= 0 ? ofs : base);
+#else
+ TCGv_tl addr = get_temp_tl(ctx);
+ tcg_gen_extu_reg_tl(addr, modify <= 0 ? ofs : base);
+ if (ctx->base.tb->flags & PSW_W) {
+ tcg_gen_andi_tl(addr, addr, 0x3fffffffffffffffull);
+ }
+ if (!is_phys) {
+ tcg_gen_or_tl(addr, addr, space_select(ctx, sp, base));
+ }
+ *pgva = addr;
+#endif
+}
+
/* Emit a memory load. The modify parameter should be
* < 0 for pre-modify,
* > 0 for post-modify,
@@ -1320,118 +1394,74 @@ static DisasJumpType do_unit(DisasContext *ctx, unsigned rt, TCGv_reg in1,
*/
static void do_load_32(DisasContext *ctx, TCGv_i32 dest, unsigned rb,
unsigned rx, int scale, target_sreg disp,
- int modify, TCGMemOp mop)
+ unsigned sp, int modify, TCGMemOp mop)
{
- TCGv_reg addr, base;
+ TCGv_reg ofs;
+ TCGv_tl addr;
/* Caller uses nullify_over/nullify_end. */
assert(ctx->null_cond.c == TCG_COND_NEVER);
- addr = tcg_temp_new();
- base = load_gpr(ctx, rb);
-
- /* Note that RX is mutually exclusive with DISP. */
- if (rx) {
- tcg_gen_shli_reg(addr, cpu_gr[rx], scale);
- tcg_gen_add_reg(addr, addr, base);
- } else {
- tcg_gen_addi_reg(addr, base, disp);
- }
-
- if (modify == 0) {
- tcg_gen_qemu_ld_i32(dest, addr, ctx->mmu_idx, mop);
- } else {
- tcg_gen_qemu_ld_i32(dest, (modify < 0 ? addr : base),
- ctx->mmu_idx, mop);
- save_gpr(ctx, rb, addr);
+ form_gva(ctx, &addr, &ofs, rb, rx, scale, disp, sp, modify,
+ ctx->mmu_idx == MMU_PHYS_IDX);
+ tcg_gen_qemu_ld_reg(dest, addr, ctx->mmu_idx, mop);
+ if (modify) {
+ save_gpr(ctx, rb, ofs);
}
- tcg_temp_free(addr);
}
static void do_load_64(DisasContext *ctx, TCGv_i64 dest, unsigned rb,
unsigned rx, int scale, target_sreg disp,
- int modify, TCGMemOp mop)
+ unsigned sp, int modify, TCGMemOp mop)
{
- TCGv_reg addr, base;
+ TCGv_reg ofs;
+ TCGv_tl addr;
/* Caller uses nullify_over/nullify_end. */
assert(ctx->null_cond.c == TCG_COND_NEVER);
- addr = tcg_temp_new();
- base = load_gpr(ctx, rb);
-
- /* Note that RX is mutually exclusive with DISP. */
- if (rx) {
- tcg_gen_shli_reg(addr, cpu_gr[rx], scale);
- tcg_gen_add_reg(addr, addr, base);
- } else {
- tcg_gen_addi_reg(addr, base, disp);
- }
-
- if (modify == 0) {
- tcg_gen_qemu_ld_i64(dest, addr, ctx->mmu_idx, mop);
- } else {
- tcg_gen_qemu_ld_i64(dest, (modify < 0 ? addr : base),
- ctx->mmu_idx, mop);
- save_gpr(ctx, rb, addr);
+ form_gva(ctx, &addr, &ofs, rb, rx, scale, disp, sp, modify,
+ ctx->mmu_idx == MMU_PHYS_IDX);
+ tcg_gen_qemu_ld_i64(dest, addr, ctx->mmu_idx, mop);
+ if (modify) {
+ save_gpr(ctx, rb, ofs);
}
- tcg_temp_free(addr);
}
static void do_store_32(DisasContext *ctx, TCGv_i32 src, unsigned rb,
unsigned rx, int scale, target_sreg disp,
- int modify, TCGMemOp mop)
+ unsigned sp, int modify, TCGMemOp mop)
{
- TCGv_reg addr, base;
+ TCGv_reg ofs;
+ TCGv_tl addr;
/* Caller uses nullify_over/nullify_end. */
assert(ctx->null_cond.c == TCG_COND_NEVER);
- addr = tcg_temp_new();
- base = load_gpr(ctx, rb);
-
- /* Note that RX is mutually exclusive with DISP. */
- if (rx) {
- tcg_gen_shli_reg(addr, cpu_gr[rx], scale);
- tcg_gen_add_reg(addr, addr, base);
- } else {
- tcg_gen_addi_reg(addr, base, disp);
- }
-
- tcg_gen_qemu_st_i32(src, (modify <= 0 ? addr : base), ctx->mmu_idx, mop);
-
- if (modify != 0) {
- save_gpr(ctx, rb, addr);
+ form_gva(ctx, &addr, &ofs, rb, rx, scale, disp, sp, modify,
+ ctx->mmu_idx == MMU_PHYS_IDX);
+ tcg_gen_qemu_st_i32(src, addr, ctx->mmu_idx, mop);
+ if (modify) {
+ save_gpr(ctx, rb, ofs);
}
- tcg_temp_free(addr);
}
static void do_store_64(DisasContext *ctx, TCGv_i64 src, unsigned rb,
unsigned rx, int scale, target_sreg disp,
- int modify, TCGMemOp mop)
+ unsigned sp, int modify, TCGMemOp mop)
{
- TCGv_reg addr, base;
+ TCGv_reg ofs;
+ TCGv_tl addr;
/* Caller uses nullify_over/nullify_end. */
assert(ctx->null_cond.c == TCG_COND_NEVER);
- addr = tcg_temp_new();
- base = load_gpr(ctx, rb);
-
- /* Note that RX is mutually exclusive with DISP. */
- if (rx) {
- tcg_gen_shli_reg(addr, cpu_gr[rx], scale);
- tcg_gen_add_reg(addr, addr, base);
- } else {
- tcg_gen_addi_reg(addr, base, disp);
- }
-
- tcg_gen_qemu_st_i64(src, (modify <= 0 ? addr : base), ctx->mmu_idx, mop);
-
- if (modify != 0) {
- save_gpr(ctx, rb, addr);
+ form_gva(ctx, &addr, &ofs, rb, rx, scale, disp, sp, modify,
+ ctx->mmu_idx == MMU_PHYS_IDX);
+ tcg_gen_qemu_st_i64(src, addr, ctx->mmu_idx, mop);
+ if (modify) {
+ save_gpr(ctx, rb, ofs);
}
- tcg_temp_free(addr);
}
#if TARGET_REGISTER_BITS == 64
@@ -1444,7 +1474,7 @@ static void do_store_64(DisasContext *ctx, TCGv_i64 src, unsigned rb,
static DisasJumpType do_load(DisasContext *ctx, unsigned rt, unsigned rb,
unsigned rx, int scale, target_sreg disp,
- int modify, TCGMemOp mop)
+ unsigned sp, int modify, TCGMemOp mop)
{
TCGv_reg dest;
@@ -1457,7 +1487,7 @@ static DisasJumpType do_load(DisasContext *ctx, unsigned rt, unsigned rb,
/* Make sure if RT == RB, we see the result of the load. */
dest = get_temp(ctx);
}
- do_load_reg(ctx, dest, rb, rx, scale, disp, modify, mop);
+ do_load_reg(ctx, dest, rb, rx, scale, disp, sp, modify, mop);
save_gpr(ctx, rt, dest);
return nullify_end(ctx, DISAS_NEXT);
@@ -1465,14 +1495,14 @@ static DisasJumpType do_load(DisasContext *ctx, unsigned rt, unsigned rb,
static DisasJumpType do_floadw(DisasContext *ctx, unsigned rt, unsigned rb,
unsigned rx, int scale, target_sreg disp,
- int modify)
+ unsigned sp, int modify)
{
TCGv_i32 tmp;
nullify_over(ctx);
tmp = tcg_temp_new_i32();
- do_load_32(ctx, tmp, rb, rx, scale, disp, modify, MO_TEUL);
+ do_load_32(ctx, tmp, rb, rx, scale, disp, sp, modify, MO_TEUL);
save_frw_i32(rt, tmp);
tcg_temp_free_i32(tmp);
@@ -1485,14 +1515,14 @@ static DisasJumpType do_floadw(DisasContext *ctx, unsigned rt, unsigned rb,
static DisasJumpType do_floadd(DisasContext *ctx, unsigned rt, unsigned rb,
unsigned rx, int scale, target_sreg disp,
- int modify)
+ unsigned sp, int modify)
{
TCGv_i64 tmp;
nullify_over(ctx);
tmp = tcg_temp_new_i64();
- do_load_64(ctx, tmp, rb, rx, scale, disp, modify, MO_TEQ);
+ do_load_64(ctx, tmp, rb, rx, scale, disp, sp, modify, MO_TEQ);
save_frd(rt, tmp);
tcg_temp_free_i64(tmp);
@@ -1504,23 +1534,24 @@ static DisasJumpType do_floadd(DisasContext *ctx, unsigned rt, unsigned rb,
}
static DisasJumpType do_store(DisasContext *ctx, unsigned rt, unsigned rb,
- target_sreg disp, int modify, TCGMemOp mop)
+ target_sreg disp, unsigned sp,
+ int modify, TCGMemOp mop)
{
nullify_over(ctx);
- do_store_reg(ctx, load_gpr(ctx, rt), rb, 0, 0, disp, modify, mop);
+ do_store_reg(ctx, load_gpr(ctx, rt), rb, 0, 0, disp, sp, modify, mop);
return nullify_end(ctx, DISAS_NEXT);
}
static DisasJumpType do_fstorew(DisasContext *ctx, unsigned rt, unsigned rb,
unsigned rx, int scale, target_sreg disp,
- int modify)
+ unsigned sp, int modify)
{
TCGv_i32 tmp;
nullify_over(ctx);
tmp = load_frw_i32(rt);
- do_store_32(ctx, tmp, rb, rx, scale, disp, modify, MO_TEUL);
+ do_store_32(ctx, tmp, rb, rx, scale, disp, sp, modify, MO_TEUL);
tcg_temp_free_i32(tmp);
return nullify_end(ctx, DISAS_NEXT);
@@ -1528,14 +1559,14 @@ static DisasJumpType do_fstorew(DisasContext *ctx, unsigned rt, unsigned rb,
static DisasJumpType do_fstored(DisasContext *ctx, unsigned rt, unsigned rb,
unsigned rx, int scale, target_sreg disp,
- int modify)
+ unsigned sp, int modify)
{
TCGv_i64 tmp;
nullify_over(ctx);
tmp = load_frd(rt);
- do_store_64(ctx, tmp, rb, rx, scale, disp, modify, MO_TEQ);
+ do_store_64(ctx, tmp, rb, rx, scale, disp, sp, modify, MO_TEQ);
tcg_temp_free_i64(tmp);
return nullify_end(ctx, DISAS_NEXT);
@@ -2217,18 +2248,21 @@ static DisasJumpType trans_probe(DisasContext *ctx, uint32_t insn,
const DisasInsn *di)
{
unsigned rt = extract32(insn, 0, 5);
+ unsigned sp = extract32(insn, 14, 2);
unsigned rb = extract32(insn, 21, 5);
unsigned is_write = extract32(insn, 6, 1);
- TCGv_reg dest;
+ TCGv_reg dest, ofs;
+ TCGv_tl addr;
nullify_over(ctx);
/* ??? Do something with priv level operand. */
dest = dest_gpr(ctx, rt);
+ form_gva(ctx, &addr, &ofs, rb, 0, 0, 0, sp, 0, false);
if (is_write) {
- gen_helper_probe_w(dest, load_gpr(ctx, rb));
+ gen_helper_probe_w(dest, addr);
} else {
- gen_helper_probe_r(dest, load_gpr(ctx, rb));
+ gen_helper_probe_r(dest, addr);
}
save_gpr(ctx, rt, dest);
return nullify_end(ctx, DISAS_NEXT);
@@ -2617,12 +2651,13 @@ static DisasJumpType trans_ld_idx_i(DisasContext *ctx, uint32_t insn,
unsigned m = extract32(insn, 5, 1);
unsigned sz = extract32(insn, 6, 2);
unsigned a = extract32(insn, 13, 1);
+ unsigned sp = extract32(insn, 14, 2);
int disp = low_sextract(insn, 16, 5);
unsigned rb = extract32(insn, 21, 5);
int modify = (m ? (a ? -1 : 1) : 0);
TCGMemOp mop = MO_TE | sz;
- return do_load(ctx, rt, rb, 0, 0, disp, modify, mop);
+ return do_load(ctx, rt, rb, 0, 0, disp, sp, modify, mop);
}
static DisasJumpType trans_ld_idx_x(DisasContext *ctx, uint32_t insn,
@@ -2632,11 +2667,12 @@ static DisasJumpType trans_ld_idx_x(DisasContext *ctx, uint32_t insn,
unsigned m = extract32(insn, 5, 1);
unsigned sz = extract32(insn, 6, 2);
unsigned u = extract32(insn, 13, 1);
+ unsigned sp = extract32(insn, 14, 2);
unsigned rx = extract32(insn, 16, 5);
unsigned rb = extract32(insn, 21, 5);
TCGMemOp mop = MO_TE | sz;
- return do_load(ctx, rt, rb, rx, u ? sz : 0, 0, m, mop);
+ return do_load(ctx, rt, rb, rx, u ? sz : 0, 0, sp, m, mop);
}
static DisasJumpType trans_st_idx_i(DisasContext *ctx, uint32_t insn,
@@ -2646,12 +2682,13 @@ static DisasJumpType trans_st_idx_i(DisasContext *ctx, uint32_t insn,
unsigned m = extract32(insn, 5, 1);
unsigned sz = extract32(insn, 6, 2);
unsigned a = extract32(insn, 13, 1);
+ unsigned sp = extract32(insn, 14, 2);
unsigned rr = extract32(insn, 16, 5);
unsigned rb = extract32(insn, 21, 5);
int modify = (m ? (a ? -1 : 1) : 0);
TCGMemOp mop = MO_TE | sz;
- return do_store(ctx, rr, rb, disp, modify, mop);
+ return do_store(ctx, rr, rb, disp, sp, modify, mop);
}
static DisasJumpType trans_ldcw(DisasContext *ctx, uint32_t insn,
@@ -2661,16 +2698,16 @@ static DisasJumpType trans_ldcw(DisasContext *ctx, uint32_t insn,
unsigned m = extract32(insn, 5, 1);
unsigned i = extract32(insn, 12, 1);
unsigned au = extract32(insn, 13, 1);
+ unsigned sp = extract32(insn, 14, 2);
unsigned rx = extract32(insn, 16, 5);
unsigned rb = extract32(insn, 21, 5);
TCGMemOp mop = MO_TEUL | MO_ALIGN_16;
- TCGv_reg zero, addr, base, dest;
+ TCGv_reg zero, dest, ofs;
+ TCGv_tl addr;
int modify, disp = 0, scale = 0;
nullify_over(ctx);
- /* ??? Share more code with do_load and do_load_{32,64}. */
-
if (i) {
modify = (m ? (au ? -1 : 1) : 0);
disp = low_sextract(rx, 0, 5);
@@ -2682,27 +2719,19 @@ static DisasJumpType trans_ldcw(DisasContext *ctx, uint32_t insn,
}
}
if (modify) {
- /* Base register modification. Make sure if RT == RB, we see
- the result of the load. */
+ /* Base register modification. Make sure if RT == RB,
+ we see the result of the load. */
dest = get_temp(ctx);
} else {
dest = dest_gpr(ctx, rt);
}
- addr = tcg_temp_new();
- base = load_gpr(ctx, rb);
- if (rx) {
- tcg_gen_shli_reg(addr, cpu_gr[rx], scale);
- tcg_gen_add_reg(addr, addr, base);
- } else {
- tcg_gen_addi_reg(addr, base, disp);
- }
-
+ form_gva(ctx, &addr, &ofs, rb, rx, scale, disp, sp, modify,
+ ctx->mmu_idx == MMU_PHYS_IDX);
zero = tcg_const_reg(0);
- tcg_gen_atomic_xchg_reg(dest, (modify <= 0 ? addr : base),
- zero, ctx->mmu_idx, mop);
+ tcg_gen_atomic_xchg_reg(dest, addr, zero, ctx->mmu_idx, mop);
if (modify) {
- save_gpr(ctx, rb, addr);
+ save_gpr(ctx, rb, ofs);
}
save_gpr(ctx, rt, dest);
@@ -2715,20 +2744,17 @@ static DisasJumpType trans_stby(DisasContext *ctx, uint32_t insn,
target_sreg disp = low_sextract(insn, 0, 5);
unsigned m = extract32(insn, 5, 1);
unsigned a = extract32(insn, 13, 1);
+ unsigned sp = extract32(insn, 14, 2);
unsigned rt = extract32(insn, 16, 5);
unsigned rb = extract32(insn, 21, 5);
- TCGv_reg addr, val;
+ TCGv_reg ofs, val;
+ TCGv_tl addr;
nullify_over(ctx);
- addr = tcg_temp_new();
- if (m || disp == 0) {
- tcg_gen_mov_reg(addr, load_gpr(ctx, rb));
- } else {
- tcg_gen_addi_reg(addr, load_gpr(ctx, rb), disp);
- }
+ form_gva(ctx, &addr, &ofs, rb, 0, 0, disp, sp, m,
+ ctx->mmu_idx == MMU_PHYS_IDX);
val = load_gpr(ctx, rt);
-
if (a) {
if (tb_cflags(ctx->base.tb) & CF_PARALLEL) {
gen_helper_stby_e_parallel(cpu_env, addr, val);
@@ -2744,11 +2770,9 @@ static DisasJumpType trans_stby(DisasContext *ctx, uint32_t insn,
}
if (m) {
- tcg_gen_addi_reg(addr, addr, disp);
- tcg_gen_andi_reg(addr, addr, ~3);
- save_gpr(ctx, rb, addr);
+ tcg_gen_andi_reg(ofs, ofs, ~3);
+ save_gpr(ctx, rb, ofs);
}
- tcg_temp_free(addr);
return nullify_end(ctx, DISAS_NEXT);
}
@@ -2813,15 +2837,18 @@ static DisasJumpType trans_load(DisasContext *ctx, uint32_t insn,
{
unsigned rb = extract32(insn, 21, 5);
unsigned rt = extract32(insn, 16, 5);
+ unsigned sp = extract32(insn, 14, 2);
target_sreg i = assemble_16(insn);
- return do_load(ctx, rt, rb, 0, 0, i, is_mod ? (i < 0 ? -1 : 1) : 0, mop);
+ return do_load(ctx, rt, rb, 0, 0, i, sp,
+ is_mod ? (i < 0 ? -1 : 1) : 0, mop);
}
static DisasJumpType trans_load_w(DisasContext *ctx, uint32_t insn)
{
unsigned rb = extract32(insn, 21, 5);
unsigned rt = extract32(insn, 16, 5);
+ unsigned sp = extract32(insn, 14, 2);
target_sreg i = assemble_16a(insn);
unsigned ext2 = extract32(insn, 1, 2);
@@ -2829,11 +2856,11 @@ static DisasJumpType trans_load_w(DisasContext *ctx, uint32_t insn)
case 0:
case 1:
/* FLDW without modification. */
- return do_floadw(ctx, ext2 * 32 + rt, rb, 0, 0, i, 0);
+ return do_floadw(ctx, ext2 * 32 + rt, rb, 0, 0, i, sp, 0);
case 2:
/* LDW with modification. Note that the sign of I selects
post-dec vs pre-inc. */
- return do_load(ctx, rt, rb, 0, 0, i, (i < 0 ? 1 : -1), MO_TEUL);
+ return do_load(ctx, rt, rb, 0, 0, i, sp, (i < 0 ? 1 : -1), MO_TEUL);
default:
return gen_illegal(ctx);
}
@@ -2844,11 +2871,12 @@ static DisasJumpType trans_fload_mod(DisasContext *ctx, uint32_t insn)
target_sreg i = assemble_16a(insn);
unsigned t1 = extract32(insn, 1, 1);
unsigned a = extract32(insn, 2, 1);
+ unsigned sp = extract32(insn, 14, 2);
unsigned t0 = extract32(insn, 16, 5);
unsigned rb = extract32(insn, 21, 5);
/* FLDW with modification. */
- return do_floadw(ctx, t1 * 32 + t0, rb, 0, 0, i, (a ? -1 : 1));
+ return do_floadw(ctx, t1 * 32 + t0, rb, 0, 0, i, sp, (a ? -1 : 1));
}
static DisasJumpType trans_store(DisasContext *ctx, uint32_t insn,
@@ -2856,15 +2884,17 @@ static DisasJumpType trans_store(DisasContext *ctx, uint32_t insn,
{
unsigned rb = extract32(insn, 21, 5);
unsigned rt = extract32(insn, 16, 5);
+ unsigned sp = extract32(insn, 14, 2);
target_sreg i = assemble_16(insn);
- return do_store(ctx, rt, rb, i, is_mod ? (i < 0 ? -1 : 1) : 0, mop);
+ return do_store(ctx, rt, rb, i, sp, is_mod ? (i < 0 ? -1 : 1) : 0, mop);
}
static DisasJumpType trans_store_w(DisasContext *ctx, uint32_t insn)
{
unsigned rb = extract32(insn, 21, 5);
unsigned rt = extract32(insn, 16, 5);
+ unsigned sp = extract32(insn, 14, 2);
target_sreg i = assemble_16a(insn);
unsigned ext2 = extract32(insn, 1, 2);
@@ -2872,10 +2902,10 @@ static DisasJumpType trans_store_w(DisasContext *ctx, uint32_t insn)
case 0:
case 1:
/* FSTW without modification. */
- return do_fstorew(ctx, ext2 * 32 + rt, rb, 0, 0, i, 0);
+ return do_fstorew(ctx, ext2 * 32 + rt, rb, 0, 0, i, sp, 0);
case 2:
/* LDW with modification. */
- return do_store(ctx, rt, rb, i, (i < 0 ? 1 : -1), MO_TEUL);
+ return do_store(ctx, rt, rb, i, sp, (i < 0 ? 1 : -1), MO_TEUL);
default:
return gen_illegal(ctx);
}
@@ -2886,11 +2916,12 @@ static DisasJumpType trans_fstore_mod(DisasContext *ctx, uint32_t insn)
target_sreg i = assemble_16a(insn);
unsigned t1 = extract32(insn, 1, 1);
unsigned a = extract32(insn, 2, 1);
+ unsigned sp = extract32(insn, 14, 2);
unsigned t0 = extract32(insn, 16, 5);
unsigned rb = extract32(insn, 21, 5);
/* FSTW with modification. */
- return do_fstorew(ctx, t1 * 32 + t0, rb, 0, 0, i, (a ? -1 : 1));
+ return do_fstorew(ctx, t1 * 32 + t0, rb, 0, 0, i, sp, (a ? -1 : 1));
}
static DisasJumpType trans_copr_w(DisasContext *ctx, uint32_t insn)
@@ -2902,6 +2933,7 @@ static DisasJumpType trans_copr_w(DisasContext *ctx, uint32_t insn)
/* unsigned cc = extract32(insn, 10, 2); */
unsigned i = extract32(insn, 12, 1);
unsigned ua = extract32(insn, 13, 1);
+ unsigned sp = extract32(insn, 14, 2);
unsigned rx = extract32(insn, 16, 5);
unsigned rb = extract32(insn, 21, 5);
unsigned rt = t1 * 32 + t0;
@@ -2921,9 +2953,9 @@ static DisasJumpType trans_copr_w(DisasContext *ctx, uint32_t insn)
switch (ext3) {
case 0: /* FLDW */
- return do_floadw(ctx, rt, rb, rx, scale, disp, modify);
+ return do_floadw(ctx, rt, rb, rx, scale, disp, sp, modify);
case 4: /* FSTW */
- return do_fstorew(ctx, rt, rb, rx, scale, disp, modify);
+ return do_fstorew(ctx, rt, rb, rx, scale, disp, sp, modify);
}
return gen_illegal(ctx);
}
@@ -2936,6 +2968,7 @@ static DisasJumpType trans_copr_dw(DisasContext *ctx, uint32_t insn)
/* unsigned cc = extract32(insn, 10, 2); */
unsigned i = extract32(insn, 12, 1);
unsigned ua = extract32(insn, 13, 1);
+ unsigned sp = extract32(insn, 14, 2);
unsigned rx = extract32(insn, 16, 5);
unsigned rb = extract32(insn, 21, 5);
int modify = (m ? (ua ? -1 : 1) : 0);
@@ -2954,9 +2987,9 @@ static DisasJumpType trans_copr_dw(DisasContext *ctx, uint32_t insn)
switch (ext4) {
case 0: /* FLDD */
- return do_floadd(ctx, rt, rb, rx, scale, disp, modify);
+ return do_floadd(ctx, rt, rb, rx, scale, disp, sp, modify);
case 8: /* FSTD */
- return do_fstored(ctx, rt, rb, rx, scale, disp, modify);
+ return do_fstored(ctx, rt, rb, rx, scale, disp, sp, modify);
default:
return gen_illegal(ctx);
}
@@ -4197,8 +4230,10 @@ static int hppa_tr_init_disas_context(DisasContextBase *dcbase,
bound = -(ctx->base.pc_first | TARGET_PAGE_MASK) / 4;
bound = MIN(max_insns, bound);
- ctx->ntemps = 0;
- memset(ctx->temps, 0, sizeof(ctx->temps));
+ ctx->ntempr = 0;
+ ctx->ntempl = 0;
+ memset(ctx->tempr, 0, sizeof(ctx->tempr));
+ memset(ctx->templ, 0, sizeof(ctx->templ));
return bound;
}
@@ -4275,11 +4310,16 @@ static void hppa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
}
/* Free any temporaries allocated. */
- for (i = 0, n = ctx->ntemps; i < n; ++i) {
- tcg_temp_free(ctx->temps[i]);
- ctx->temps[i] = NULL;
+ for (i = 0, n = ctx->ntempr; i < n; ++i) {
+ tcg_temp_free(ctx->tempr[i]);
+ ctx->tempr[i] = NULL;
+ }
+ for (i = 0, n = ctx->ntempl; i < n; ++i) {
+ tcg_temp_free_tl(ctx->templ[i]);
+ ctx->templ[i] = NULL;
}
- ctx->ntemps = 0;
+ ctx->ntempr = 0;
+ ctx->ntempl = 0;
/* Advance the insn queue. Note that this check also detects
a priority change within the instruction queue. */
@@ -4389,7 +4429,7 @@ void restore_state_to_opc(CPUHPPAState *env, TranslationBlock *tb,
target_ulong *data)
{
env->iaoq_f = data[0];
- if (data[1] != -1) {
+ if (data[1] != (target_ureg)-1) {
env->iaoq_b = data[1];
}
/* Since we were executing the instruction at IAOQ_F, and took some
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 15/43] target/hppa: Avoid privilege level decrease during branches
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (13 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 14/43] target/hppa: Use space registers in data operations Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 16/43] target/hppa: Implement IASQ Richard Henderson
` (31 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
These instructions force the destination privilege level
of the branch destination to be no higher than current.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/translate.c | 52 ++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 47 insertions(+), 5 deletions(-)
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 0650c3e14e..53974c994e 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -1851,6 +1851,40 @@ static DisasJumpType do_ibranch(DisasContext *ctx, TCGv_reg dest,
return DISAS_NEXT;
}
+/* Implement
+ * if (IAOQ_Front{30..31} < GR[b]{30..31})
+ * IAOQ_Next{30..31} ← GR[b]{30..31};
+ * else
+ * IAOQ_Next{30..31} ← IAOQ_Front{30..31};
+ * which keeps the privilege level from being increased.
+ */
+static TCGv_reg do_ibranch_priv(DisasContext *ctx, TCGv_reg offset)
+{
+#ifdef CONFIG_USER_ONLY
+ return offset;
+#else
+ TCGv_reg dest;
+ switch (ctx->privilege) {
+ case 0:
+ /* Privilege 0 is maximum and is allowed to decrease. */
+ return offset;
+ case 3:
+ /* Privilege 3 is minimum and is never allowed increase. */
+ dest = get_temp(ctx);
+ tcg_gen_ori_reg(dest, offset, 3);
+ break;
+ default:
+ dest = tcg_temp_new();
+ tcg_gen_andi_reg(dest, offset, -4);
+ tcg_gen_ori_reg(dest, dest, ctx->privilege);
+ tcg_gen_movcond_reg(TCG_COND_GTU, dest, dest, offset, dest, offset);
+ tcg_temp_free(dest);
+ break;
+ }
+ return dest;
+#endif
+}
+
#ifdef CONFIG_USER_ONLY
/* On Linux, page zero is normally marked execute only + gateway.
Therefore normal read or write is supposed to fail, but specific
@@ -3430,6 +3464,7 @@ static DisasJumpType trans_be(DisasContext *ctx, uint32_t insn, bool is_l)
unsigned n = extract32(insn, 1, 1);
unsigned b = extract32(insn, 21, 5);
target_sreg disp = assemble_17(insn);
+ TCGv_reg tmp;
/* unsigned s = low_uextract(insn, 13, 3); */
/* ??? It seems like there should be a good way of using
@@ -3438,16 +3473,19 @@ static DisasJumpType trans_be(DisasContext *ctx, uint32_t insn, bool is_l)
manage along side branch delay slots. Therefore we handle
entry into the gateway page via absolute address. */
+#ifdef CONFIG_USER_ONLY
/* Since we don't implement spaces, just branch. Do notice the special
case of "be disp(*,r0)" using a direct branch to disp, so that we can
goto_tb to the TB containing the syscall. */
if (b == 0) {
return do_dbranch(ctx, disp, is_l ? 31 : 0, n);
- } else {
- TCGv_reg tmp = get_temp(ctx);
- tcg_gen_addi_reg(tmp, load_gpr(ctx, b), disp);
- return do_ibranch(ctx, tmp, is_l ? 31 : 0, n);
}
+#endif
+
+ tmp = get_temp(ctx);
+ tcg_gen_addi_reg(tmp, load_gpr(ctx, b), disp);
+ tmp = do_ibranch_priv(ctx, tmp);
+ return do_ibranch(ctx, tmp, is_l ? 31 : 0, n);
}
static DisasJumpType trans_bl(DisasContext *ctx, uint32_t insn,
@@ -3479,6 +3517,7 @@ static DisasJumpType trans_blr(DisasContext *ctx, uint32_t insn,
tcg_gen_shli_reg(tmp, load_gpr(ctx, rx), 3);
tcg_gen_addi_reg(tmp, tmp, ctx->iaoq_f + 8);
+ /* The computation here never changes privilege level. */
return do_ibranch(ctx, tmp, link, n);
}
@@ -3497,6 +3536,7 @@ static DisasJumpType trans_bv(DisasContext *ctx, uint32_t insn,
tcg_gen_shli_reg(dest, load_gpr(ctx, rx), 3);
tcg_gen_add_reg(dest, dest, load_gpr(ctx, rb));
}
+ dest = do_ibranch_priv(ctx, dest);
return do_ibranch(ctx, dest, 0, n);
}
@@ -3506,8 +3546,10 @@ static DisasJumpType trans_bve(DisasContext *ctx, uint32_t insn,
unsigned n = extract32(insn, 1, 1);
unsigned rb = extract32(insn, 21, 5);
unsigned link = extract32(insn, 13, 1) ? 2 : 0;
+ TCGv_reg dest;
- return do_ibranch(ctx, load_gpr(ctx, rb), link, n);
+ dest = do_ibranch_priv(ctx, load_gpr(ctx, rb));
+ return do_ibranch(ctx, dest, link, n);
}
static const DisasInsn table_branch[] = {
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 16/43] target/hppa: Implement IASQ
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (14 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 15/43] target/hppa: Avoid privilege level decrease during branches Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 17/43] target/hppa: Implement tlb_fill Richard Henderson
` (30 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Any one TB will have only one space value. If we change spaces,
we change TBs. Thus BE and BEV must exit the TB immediately.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 53 ++++++++++++++++++++-
target/hppa/cpu.c | 15 ++++++
target/hppa/helper.c | 3 +-
target/hppa/int_helper.c | 16 +++++--
target/hppa/op_helper.c | 2 +
target/hppa/translate.c | 117 ++++++++++++++++++++++++++++++++++++++---------
6 files changed, 179 insertions(+), 27 deletions(-)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index 94f9c8ca2b..d583ea43dd 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -186,6 +186,8 @@ struct CPUHPPAState {
target_ureg iaoq_f; /* front */
target_ureg iaoq_b; /* back, aka next instruction */
+ uint64_t iasq_f;
+ uint64_t iasq_b;
uint32_t fr0_shadow; /* flags, c, ca/cq, rm, d, enables */
float_status fp_status;
@@ -240,15 +242,62 @@ void hppa_translate_init(void);
void hppa_cpu_list(FILE *f, fprintf_function cpu_fprintf);
+static inline target_ulong hppa_form_gva_psw(target_ureg psw, uint64_t spc,
+ target_ureg off)
+{
+#ifdef CONFIG_USER_ONLY
+ return off;
+#else
+ off &= (psw & PSW_W ? 0x3fffffffffffffffull : 0xffffffffull);
+ return spc | off;
+#endif
+}
+
+static inline target_ulong hppa_form_gva(CPUHPPAState *env, uint64_t spc,
+ target_ureg off)
+{
+ return hppa_form_gva_psw(env->psw, spc, off);
+}
+
+/* Since PSW_CB will never need to be in tb->flags, reuse them. */
+#define TB_FLAG_PRIV_SHIFT 8
+
static inline void cpu_get_tb_cpu_state(CPUHPPAState *env, target_ulong *pc,
target_ulong *cs_base,
uint32_t *pflags)
{
+ uint32_t flags = env->psw_n * PSW_N;
+
+ /* TB lookup assumes that PC contains the complete virtual address.
+ If we leave space+offset separate, we'll get ITLB misses to an
+ incomplete virtual address. This also means that we must separate
+ out current cpu priviledge from the low bits of IAOQ_F. */
+#ifdef CONFIG_USER_ONLY
*pc = env->iaoq_f;
*cs_base = env->iaoq_b;
+#else
/* ??? E, T, H, L, B, P bits need to be here, when implemented. */
- *pflags = (env->psw & (PSW_W | PSW_C | PSW_D))
- | env->psw_n * PSW_N;
+ flags |= env->psw & (PSW_W | PSW_C | PSW_D);
+ flags |= (env->iaoq_f & 3) << TB_FLAG_PRIV_SHIFT;
+
+ *pc = (env->psw & PSW_C
+ ? hppa_form_gva_psw(env->psw, env->iasq_f, env->iaoq_f & -4)
+ : env->iaoq_f & -4);
+ *cs_base = env->iasq_f;
+
+ /* Insert a difference between IAOQ_B and IAOQ_F within the otherwise zero
+ low 32-bits of CS_BASE. This will succeed for all direct branches,
+ which is the primary case we care about -- using goto_tb within a page.
+ Failure is indicated by a zero difference. */
+ if (env->iasq_f == env->iasq_b) {
+ target_sreg diff = env->iaoq_b - env->iaoq_f;
+ if (TARGET_REGISTER_BITS == 32 || diff == (int32_t)diff) {
+ *cs_base |= (uint32_t)diff;
+ }
+ }
+#endif
+
+ *pflags = flags;
}
target_ureg cpu_hppa_get_psw(CPUHPPAState *env);
diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
index 6b2d22118d..237d2b8ab5 100644
--- a/target/hppa/cpu.c
+++ b/target/hppa/cpu.c
@@ -37,8 +37,23 @@ static void hppa_cpu_synchronize_from_tb(CPUState *cs, TranslationBlock *tb)
{
HPPACPU *cpu = HPPA_CPU(cs);
+#ifdef CONFIG_USER_ONLY
cpu->env.iaoq_f = tb->pc;
cpu->env.iaoq_b = tb->cs_base;
+#else
+ /* Recover the IAOQ values from the GVA + PRIV. */
+ uint32_t priv = (tb->flags >> TB_FLAG_PRIV_SHIFT) & 3;
+ target_ulong cs_base = tb->cs_base;
+ target_ulong iasq_f = cs_base & ~0xffffffffull;
+ int32_t diff = cs_base;
+
+ cpu->env.iasq_f = iasq_f;
+ cpu->env.iaoq_f = (tb->pc & ~iasq_f) + priv;
+ if (diff) {
+ cpu->env.iaoq_b = cpu->env.iaoq_f + diff;
+ }
+#endif
+
cpu->env.psw_n = (tb->flags & PSW_N) != 0;
}
diff --git a/target/hppa/helper.c b/target/hppa/helper.c
index 6e8758f82c..858ec205b6 100644
--- a/target/hppa/helper.c
+++ b/target/hppa/helper.c
@@ -78,7 +78,8 @@ void hppa_cpu_dump_state(CPUState *cs, FILE *f,
int i;
cpu_fprintf(f, "IA_F " TARGET_FMT_lx " IA_B " TARGET_FMT_lx "\n",
- (target_ulong)env->iaoq_f, (target_ulong)env->iaoq_b);
+ hppa_form_gva_psw(psw, env->iasq_f, env->iaoq_f),
+ hppa_form_gva_psw(psw, env->iasq_b, env->iaoq_b));
psw_c[0] = (psw & PSW_W ? 'W' : '-');
psw_c[1] = (psw & PSW_E ? 'E' : '-');
diff --git a/target/hppa/int_helper.c b/target/hppa/int_helper.c
index 34413c30e1..297aa62c24 100644
--- a/target/hppa/int_helper.c
+++ b/target/hppa/int_helper.c
@@ -32,6 +32,8 @@ void hppa_cpu_do_interrupt(CPUState *cs)
int i = cs->exception_index;
target_ureg iaoq_f = env->iaoq_f;
target_ureg iaoq_b = env->iaoq_b;
+ uint64_t iasq_f = env->iasq_f;
+ uint64_t iasq_b = env->iasq_b;
#ifndef CONFIG_USER_ONLY
target_ureg old_psw;
@@ -44,6 +46,8 @@ void hppa_cpu_do_interrupt(CPUState *cs)
cpu_hppa_put_psw(env, PSW_W | (i == EXCP_HPMC ? PSW_M : 0));
/* step 3 */
+ env->cr[CR_IIASQ] = iasq_f >> 32;
+ env->cr_back[0] = iasq_b >> 32;
env->cr[CR_IIAOQ] = iaoq_f;
env->cr_back[1] = iaoq_b;
@@ -78,6 +82,9 @@ void hppa_cpu_do_interrupt(CPUState *cs)
hwaddr paddr;
paddr = vaddr = iaoq_f & -4;
+ if (old_psw & PSW_C) {
+ vaddr = hppa_form_gva_psw(old_psw, iasq_f, iaoq_f & -4);
+ }
env->cr[CR_IIR] = ldl_phys(cs->as, paddr);
}
break;
@@ -101,6 +108,8 @@ void hppa_cpu_do_interrupt(CPUState *cs)
/* step 7 */
env->iaoq_f = env->cr[CR_IVA] + 32 * i;
env->iaoq_b = env->iaoq_f + 4;
+ env->iasq_f = 0;
+ env->iasq_b = 0;
#endif
if (qemu_loglevel_mask(CPU_LOG_INT)) {
@@ -151,10 +160,11 @@ void hppa_cpu_do_interrupt(CPUState *cs)
qemu_log("INT %6d: %s @ " TARGET_FMT_lx "," TARGET_FMT_lx
" -> " TREG_FMT_lx " " TARGET_FMT_lx "\n",
++count, name,
- (target_ulong)iaoq_f,
- (target_ulong)iaoq_b,
+ hppa_form_gva(env, iasq_f, iaoq_f),
+ hppa_form_gva(env, iasq_b, iaoq_b),
env->iaoq_f,
- (target_ulong)env->cr[CR_IOR]);
+ hppa_form_gva(env, (uint64_t)env->cr[CR_ISR] << 32,
+ env->cr[CR_IOR]));
}
cs->exception_index = -1;
}
diff --git a/target/hppa/op_helper.c b/target/hppa/op_helper.c
index 3f5dcbbca0..1963b2439b 100644
--- a/target/hppa/op_helper.c
+++ b/target/hppa/op_helper.c
@@ -622,6 +622,8 @@ void HELPER(rfi)(CPUHPPAState *env)
if (env->psw & (PSW_I | PSW_R | PSW_Q)) {
helper_excp(env, EXCP_ILL);
}
+ env->iasq_f = (uint64_t)env->cr[CR_IIASQ] << 32;
+ env->iasq_b = (uint64_t)env->cr_back[0] << 32;
env->iaoq_f = env->cr[CR_IIAOQ];
env->iaoq_b = env->cr_back[1];
cpu_hppa_put_psw(env, env->cr[CR_IPSW]);
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 53974c994e..f0ee6be052 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -321,6 +321,8 @@ static TCGv_reg cpu_gr[32];
static TCGv_i64 cpu_sr[4];
static TCGv_reg cpu_iaoq_f;
static TCGv_reg cpu_iaoq_b;
+static TCGv_i64 cpu_iasq_f;
+static TCGv_i64 cpu_iasq_b;
static TCGv_reg cpu_sar;
static TCGv_reg cpu_psw_n;
static TCGv_reg cpu_psw_v;
@@ -376,6 +378,13 @@ void hppa_translate_init(void)
const GlobalVar *v = &vars[i];
*v->var = tcg_global_mem_new(cpu_env, v->ofs, v->name);
}
+
+ cpu_iasq_f = tcg_global_mem_new_i64(cpu_env,
+ offsetof(CPUHPPAState, iasq_f),
+ "iasq_f");
+ cpu_iasq_b = tcg_global_mem_new_i64(cpu_env,
+ offsetof(CPUHPPAState, iasq_b),
+ "iasq_b");
}
static DisasCond cond_make_f(void)
@@ -1749,6 +1758,11 @@ static DisasJumpType do_cbranch(DisasContext *ctx, target_sreg disp, bool is_n,
ctx->null_lab = NULL;
}
nullify_set(ctx, n);
+ if (ctx->iaoq_n == -1) {
+ /* The temporary iaoq_n_var died at the branch above.
+ Regenerate it here instead of saving it. */
+ tcg_gen_addi_reg(ctx->iaoq_n_var, cpu_iaoq_b, 4);
+ }
gen_goto_tb(ctx, 0, ctx->iaoq_b, ctx->iaoq_n);
}
@@ -1790,11 +1804,17 @@ static DisasJumpType do_ibranch(DisasContext *ctx, TCGv_reg dest,
}
next = get_temp(ctx);
tcg_gen_mov_reg(next, dest);
- ctx->iaoq_n = -1;
- ctx->iaoq_n_var = next;
if (is_n) {
+ if (use_nullify_skip(ctx)) {
+ tcg_gen_mov_reg(cpu_iaoq_f, next);
+ tcg_gen_addi_reg(cpu_iaoq_b, next, 4);
+ nullify_set(ctx, 0);
+ return DISAS_IAQ_N_UPDATED;
+ }
ctx->null_cond.c = TCG_COND_ALWAYS;
}
+ ctx->iaoq_n = -1;
+ ctx->iaoq_n_var = next;
} else if (is_n && use_nullify_skip(ctx)) {
/* The (conditional) branch, B, nullifies the next insn, N,
and we're allowed to skip execution N (no single-step or
@@ -3466,26 +3486,55 @@ static DisasJumpType trans_be(DisasContext *ctx, uint32_t insn, bool is_l)
target_sreg disp = assemble_17(insn);
TCGv_reg tmp;
- /* unsigned s = low_uextract(insn, 13, 3); */
+#ifdef CONFIG_USER_ONLY
/* ??? It seems like there should be a good way of using
"be disp(sr2, r0)", the canonical gateway entry mechanism
to our advantage. But that appears to be inconvenient to
manage along side branch delay slots. Therefore we handle
entry into the gateway page via absolute address. */
-
-#ifdef CONFIG_USER_ONLY
/* Since we don't implement spaces, just branch. Do notice the special
case of "be disp(*,r0)" using a direct branch to disp, so that we can
goto_tb to the TB containing the syscall. */
if (b == 0) {
return do_dbranch(ctx, disp, is_l ? 31 : 0, n);
}
+#else
+ int sp = assemble_sr3(insn);
+ nullify_over(ctx);
#endif
tmp = get_temp(ctx);
tcg_gen_addi_reg(tmp, load_gpr(ctx, b), disp);
tmp = do_ibranch_priv(ctx, tmp);
+
+#ifdef CONFIG_USER_ONLY
return do_ibranch(ctx, tmp, is_l ? 31 : 0, n);
+#else
+ TCGv_i64 new_spc = tcg_temp_new_i64();
+
+ load_spr(ctx, new_spc, sp);
+ if (is_l) {
+ copy_iaoq_entry(cpu_gr[31], ctx->iaoq_n, ctx->iaoq_n_var);
+ tcg_gen_mov_i64(cpu_sr[0], cpu_iasq_f);
+ }
+ if (n && use_nullify_skip(ctx)) {
+ tcg_gen_mov_reg(cpu_iaoq_f, tmp);
+ tcg_gen_addi_reg(cpu_iaoq_b, cpu_iaoq_f, 4);
+ tcg_gen_mov_i64(cpu_iasq_f, new_spc);
+ tcg_gen_mov_i64(cpu_iasq_b, cpu_iasq_f);
+ } else {
+ copy_iaoq_entry(cpu_iaoq_f, ctx->iaoq_b, cpu_iaoq_b);
+ if (ctx->iaoq_b == -1) {
+ tcg_gen_mov_i64(cpu_iasq_f, cpu_iasq_b);
+ }
+ tcg_gen_mov_reg(cpu_iaoq_b, tmp);
+ tcg_gen_mov_i64(cpu_iasq_b, new_spc);
+ nullify_set(ctx, n);
+ }
+ tcg_temp_free_i64(new_spc);
+ tcg_gen_lookup_and_goto_ptr();
+ return nullify_end(ctx, DISAS_NORETURN);
+#endif
}
static DisasJumpType trans_bl(DisasContext *ctx, uint32_t insn,
@@ -3548,8 +3597,26 @@ static DisasJumpType trans_bve(DisasContext *ctx, uint32_t insn,
unsigned link = extract32(insn, 13, 1) ? 2 : 0;
TCGv_reg dest;
+#ifdef CONFIG_USER_ONLY
dest = do_ibranch_priv(ctx, load_gpr(ctx, rb));
return do_ibranch(ctx, dest, link, n);
+#else
+ nullify_over(ctx);
+ dest = do_ibranch_priv(ctx, load_gpr(ctx, rb));
+
+ copy_iaoq_entry(cpu_iaoq_f, ctx->iaoq_b, cpu_iaoq_b);
+ if (ctx->iaoq_b == -1) {
+ tcg_gen_mov_i64(cpu_iasq_f, cpu_iasq_b);
+ }
+ copy_iaoq_entry(cpu_iaoq_b, -1, dest);
+ tcg_gen_mov_i64(cpu_iasq_b, space_select(ctx, 0, dest));
+ if (link) {
+ copy_iaoq_entry(cpu_gr[link], ctx->iaoq_n, ctx->iaoq_n_var);
+ }
+ nullify_set(ctx, n);
+ tcg_gen_lookup_and_goto_ptr();
+ return nullify_end(ctx, DISAS_NORETURN);
+#endif
}
static const DisasInsn table_branch[] = {
@@ -4256,15 +4323,21 @@ static int hppa_tr_init_disas_context(DisasContextBase *dcbase,
#ifdef CONFIG_USER_ONLY
ctx->privilege = MMU_USER_IDX;
ctx->mmu_idx = MMU_USER_IDX;
+ ctx->iaoq_f = ctx->base.pc_first;
+ ctx->iaoq_b = ctx->base.tb->cs_base;
#else
- ctx->privilege = ctx->base.pc_first & 3;
+ ctx->privilege = (ctx->base.tb->flags >> TB_FLAG_PRIV_SHIFT) & 3;
ctx->mmu_idx = (ctx->base.tb->flags & PSW_D
? ctx->privilege : MMU_PHYS_IDX);
-#endif
- ctx->iaoq_f = ctx->base.pc_first;
- ctx->iaoq_b = ctx->base.tb->cs_base;
- ctx->base.pc_first &= -4;
+ /* Recover the IAOQ values from the GVA + PRIV. */
+ uint64_t cs_base = ctx->base.tb->cs_base;
+ uint64_t iasq_f = cs_base & ~0xffffffffull;
+ int32_t diff = cs_base;
+
+ ctx->iaoq_f = (ctx->base.pc_first & ~iasq_f) + ctx->privilege;
+ ctx->iaoq_b = (diff ? ctx->iaoq_f + diff : -1);
+#endif
ctx->iaoq_n = -1;
ctx->iaoq_n_var = NULL;
@@ -4307,7 +4380,7 @@ static bool hppa_tr_breakpoint_check(DisasContextBase *dcbase, CPUState *cs,
DisasContext *ctx = container_of(dcbase, DisasContext, base);
ctx->base.is_jmp = gen_excp(ctx, EXCP_DEBUG);
- ctx->base.pc_next = (ctx->iaoq_f & -4) + 4;
+ ctx->base.pc_next += 4;
return true;
}
@@ -4320,7 +4393,7 @@ static void hppa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
/* Execute one insn. */
#ifdef CONFIG_USER_ONLY
- if (ctx->iaoq_f < TARGET_PAGE_SIZE) {
+ if (ctx->base.pc_next < TARGET_PAGE_SIZE) {
ret = do_page_zero(ctx);
assert(ret != DISAS_NEXT);
} else
@@ -4328,7 +4401,7 @@ static void hppa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
{
/* Always fetch the insn, even if nullified, so that we check
the page permissions for execute. */
- uint32_t insn = cpu_ldl_code(env, ctx->iaoq_f & -4);
+ uint32_t insn = cpu_ldl_code(env, ctx->base.pc_next);
/* Set up the IA queue for the next insn.
This will be overwritten by a branch. */
@@ -4366,18 +4439,21 @@ static void hppa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
/* Advance the insn queue. Note that this check also detects
a priority change within the instruction queue. */
if (ret == DISAS_NEXT && ctx->iaoq_b != ctx->iaoq_f + 4) {
- if (ctx->null_cond.c == TCG_COND_NEVER
- || ctx->null_cond.c == TCG_COND_ALWAYS) {
+ if (ctx->iaoq_b != -1 && ctx->iaoq_n != -1
+ && use_goto_tb(ctx, ctx->iaoq_b)
+ && (ctx->null_cond.c == TCG_COND_NEVER
+ || ctx->null_cond.c == TCG_COND_ALWAYS)) {
nullify_set(ctx, ctx->null_cond.c == TCG_COND_ALWAYS);
gen_goto_tb(ctx, 0, ctx->iaoq_b, ctx->iaoq_n);
ret = DISAS_NORETURN;
} else {
ret = DISAS_IAQ_N_STALE;
- }
+ }
}
ctx->iaoq_f = ctx->iaoq_b;
ctx->iaoq_b = ctx->iaoq_n;
ctx->base.is_jmp = ret;
+ ctx->base.pc_next += 4;
if (ret == DISAS_NORETURN || ret == DISAS_IAQ_N_UPDATED) {
return;
@@ -4385,6 +4461,9 @@ static void hppa_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
if (ctx->iaoq_f == -1) {
tcg_gen_mov_reg(cpu_iaoq_f, cpu_iaoq_b);
copy_iaoq_entry(cpu_iaoq_b, ctx->iaoq_n, ctx->iaoq_n_var);
+#ifndef CONFIG_USER_ONLY
+ tcg_gen_mov_i64(cpu_iasq_f, cpu_iasq_b);
+#endif
nullify_save(ctx);
ctx->base.is_jmp = DISAS_IAQ_N_UPDATED;
} else if (ctx->iaoq_b == -1) {
@@ -4419,15 +4498,11 @@ static void hppa_tr_tb_stop(DisasContextBase *dcbase, CPUState *cs)
default:
g_assert_not_reached();
}
-
- /* We don't actually use this during normal translation,
- but we should interact with the generic main loop. */
- ctx->base.pc_next = ctx->base.pc_first + 4 * ctx->base.num_insns;
}
static void hppa_tr_disas_log(const DisasContextBase *dcbase, CPUState *cs)
{
- target_ureg pc = dcbase->pc_first;
+ target_ulong pc = dcbase->pc_first;
#ifdef CONFIG_USER_ONLY
switch (pc) {
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 17/43] target/hppa: Implement tlb_fill
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (15 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 16/43] target/hppa: Implement IASQ Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 18/43] target/hppa: Implement external interrupts Richard Henderson
` (29 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
However since HPPA has a software-managed TLB, and the relevant
TLB manipulation instructions are not implemented, this does not
actually do anything.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 29 ++++++++-
target/hppa/int_helper.c | 12 ++++
target/hppa/mem_helper.c | 149 +++++++++++++++++++++++++++++++++++++++++++++--
3 files changed, 184 insertions(+), 6 deletions(-)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index d583ea43dd..c7a2fb5b20 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -165,6 +165,22 @@ typedef int64_t target_sreg;
#define TREG_FMT_ld "%"PRId64
#endif
+typedef struct {
+ uint64_t va_b;
+ uint64_t va_e;
+ target_ureg pa;
+ unsigned u : 1;
+ unsigned t : 1;
+ unsigned d : 1;
+ unsigned b : 1;
+ unsigned page_size : 4;
+ unsigned ar_type : 3;
+ unsigned ar_pl1 : 2;
+ unsigned ar_pl2 : 2;
+ unsigned entry_valid : 1;
+ unsigned access_id : 16;
+} hppa_tlb_entry;
+
struct CPUHPPAState {
target_ureg gr[32];
uint64_t fr[32];
@@ -198,6 +214,12 @@ struct CPUHPPAState {
/* Those resources are used only in QEMU core */
CPU_COMMON
+
+ /* ??? The number of entries isn't specified by the architecture. */
+ /* ??? Implement a unified itlb/dtlb for the moment. */
+ /* ??? We should use a more intelligent data structure. */
+ hppa_tlb_entry tlb[256];
+ uint32_t tlb_last;
};
/**
@@ -307,12 +329,17 @@ void cpu_hppa_loaded_fr0(CPUHPPAState *env);
#define cpu_signal_handler cpu_hppa_signal_handler
int cpu_hppa_signal_handler(int host_signum, void *pinfo, void *puc);
-int hppa_cpu_handle_mmu_fault(CPUState *cpu, vaddr address, int rw, int midx);
hwaddr hppa_cpu_get_phys_page_debug(CPUState *cs, vaddr addr);
int hppa_cpu_gdb_read_register(CPUState *cpu, uint8_t *buf, int reg);
int hppa_cpu_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg);
void hppa_cpu_do_interrupt(CPUState *cpu);
bool hppa_cpu_exec_interrupt(CPUState *cpu, int int_req);
void hppa_cpu_dump_state(CPUState *cs, FILE *f, fprintf_function, int);
+#ifdef CONFIG_USER_ONLY
+int hppa_cpu_handle_mmu_fault(CPUState *cpu, vaddr address, int rw, int midx);
+#else
+int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
+ MMUAccessType type, hwaddr *pphys, int *pprot);
+#endif
#endif /* HPPA_CPU_H */
diff --git a/target/hppa/int_helper.c b/target/hppa/int_helper.c
index 297aa62c24..e66ca26941 100644
--- a/target/hppa/int_helper.c
+++ b/target/hppa/int_helper.c
@@ -78,12 +78,24 @@ void hppa_cpu_do_interrupt(CPUState *cs)
{
/* Avoid reading directly from the virtual address, lest we
raise another exception from some sort of TLB issue. */
+ /* ??? An alternate fool-proof method would be to store the
+ instruction data into the unwind info. That's probably
+ a bit too much in the way of extra storage required. */
vaddr vaddr;
hwaddr paddr;
paddr = vaddr = iaoq_f & -4;
if (old_psw & PSW_C) {
+ int prot, t;
+
vaddr = hppa_form_gva_psw(old_psw, iasq_f, iaoq_f & -4);
+ t = hppa_get_physical_address(env, vaddr, 0, MMU_INST_FETCH,
+ &paddr, &prot);
+ if (t >= 0) {
+ /* We can't re-load the instruction. */
+ env->cr[CR_IIR] = 0;
+ break;
+ }
}
env->cr[CR_IIR] = ldl_phys(cs->as, paddr);
}
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
index 1afaf89539..4e92e35957 100644
--- a/target/hppa/mem_helper.c
+++ b/target/hppa/mem_helper.c
@@ -36,18 +36,157 @@ int hppa_cpu_handle_mmu_fault(CPUState *cs, vaddr address,
return 1;
}
#else
+static hppa_tlb_entry *hppa_find_tlb(CPUHPPAState *env, vaddr addr)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(env->tlb); ++i) {
+ hppa_tlb_entry *ent = &env->tlb[i];
+ if (ent->va_b <= addr && addr <= ent->va_e && ent->entry_valid) {
+ return ent;
+ }
+ }
+ return NULL;
+}
+
+int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
+ MMUAccessType type, hwaddr *pphys, int *pprot)
+{
+ hwaddr phys;
+ int prot, ret, r_prot, w_prot, x_prot, a_prot;
+ bool ifetch = type == MMU_INST_FETCH;
+ hppa_tlb_entry *ent;
+
+ /* Virtual translation disabled. Direct map virtual to physical. */
+ if (mmu_idx == MMU_PHYS_IDX) {
+ phys = addr;
+ prot = PAGE_READ | PAGE_WRITE | PAGE_EXEC;
+ ret = -1;
+ goto egress;
+ }
+
+ /* Find a valid tlb entry that matches the virtual address. */
+ ent = hppa_find_tlb(env, addr);
+ if (ent == NULL) {
+ phys = 0;
+ prot = 0;
+ ret = (ifetch ? EXCP_ITLB_MISS : EXCP_DTLB_MISS);
+ goto egress;
+ }
+
+ /* We now know the physical address. */
+ phys = ent->pa + (addr & ~TARGET_PAGE_MASK);
+
+ /* Map TLB access_rights field to QEMU protection. */
+ r_prot = (mmu_idx <= ent->ar_pl1 ? PROT_READ : 0);
+ w_prot = (mmu_idx <= ent->ar_pl2 ? PROT_WRITE : 0);
+ x_prot = (ent->ar_pl2 <= mmu_idx && mmu_idx <= ent->ar_pl1 ? PROT_EXEC : 0);
+ switch (ent->ar_type) {
+ case 0: /* read-only: data page */
+ prot = r_prot;
+ break;
+ case 1: /* read/write: dynamic data page */
+ prot = r_prot | w_prot;
+ break;
+ case 2: /* read/execute: normal code page */
+ prot = r_prot | x_prot;
+ break;
+ case 3: /* read/write/execute: dynamic code page */
+ prot = r_prot | w_prot | x_prot;
+ break;
+ default: /* execute: promote to privilege level type & 3 */
+ prot = x_prot;
+ }
+
+ /* ??? Check PSW_P and ent->access_prot. This can remove PROT_WRITE. */
+
+ /* Map MMUAccessType to QEMU protection. */
+ if (ifetch) {
+ a_prot = PROT_EXEC;
+ } else if (type == MMU_DATA_STORE) {
+ a_prot = PROT_WRITE;
+ } else {
+ a_prot = PROT_READ;
+ }
+
+ if (unlikely(!(prot & a_prot))) {
+ /* The access isn't allowed -- Inst/Data Memory Protection Fault. */
+ ret = (ifetch ? EXCP_IMP : EXCP_DMP);
+ goto egress;
+ }
+
+ /* In reverse priority order, check for conditions which raise faults.
+ As we go, remove PROT bits that cover the condition we want to check.
+ In this way, the resulting PROT will force a re-check of the
+ architectural TLB entry for the next access. */
+ ret = -1;
+ if (unlikely(!ent->d)) {
+ if (type == MMU_DATA_STORE) {
+ /* The D bit is not set -- TLB Dirty Bit Fault. */
+ ret = EXCP_TLB_DIRTY;
+ }
+ prot &= PROT_READ | PROT_EXEC;
+ }
+ if (unlikely(ent->b)) {
+ if (type == MMU_DATA_STORE) {
+ /* The B bit is set -- Data Memory Break Fault. */
+ ret = EXCP_DMB;
+ }
+ prot &= PROT_READ | PROT_EXEC;
+ }
+ if (unlikely(ent->t)) {
+ if (!ifetch) {
+ /* The T bit is set -- Page Reference Fault. */
+ ret = EXCP_PAGE_REF;
+ }
+ prot &= PROT_EXEC;
+ }
+
+ egress:
+ *pphys = phys;
+ *pprot = prot;
+ return ret;
+}
+
hwaddr hppa_cpu_get_phys_page_debug(CPUState *cs, vaddr addr)
{
- /* Stub */
- return addr;
+ HPPACPU *cpu = HPPA_CPU(cs);
+ hwaddr phys;
+ int prot, excp;
+
+ /* If the (data) mmu is disabled, bypass translation. */
+ /* ??? We really ought to know if the code mmu is disabled too,
+ in order to get the correct debugging dumps. */
+ if (!(cpu->env.psw & PSW_D)) {
+ return addr;
+ }
+
+ excp = hppa_get_physical_address(&cpu->env, addr, MMU_KERNEL_IDX,
+ MMU_DATA_LOAD, &phys, &prot);
+
+ /* Since we're translating for debugging, the only error that is a
+ hard error is no translation at all. Otherwise, while a real cpu
+ access might not have permission, the debugger does. */
+ return excp == EXCP_DTLB_MISS ? -1 : phys;
}
void tlb_fill(CPUState *cs, target_ulong addr, MMUAccessType type,
int mmu_idx, uintptr_t retaddr)
{
- /* Stub */
- int prot = PAGE_READ | PAGE_WRITE | PAGE_EXEC;
- hwaddr phys = addr;
+ HPPACPU *cpu = HPPA_CPU(cs);
+ int prot, excp;
+ hwaddr phys;
+
+ excp = hppa_get_physical_address(&cpu->env, addr, mmu_idx,
+ type, &phys, &prot);
+ if (unlikely(excp >= 0)) {
+ /* Failure. Raise the indicated exception. */
+ cs->exception_index = excp;
+ /* ??? Needs tweaking for hppa64. */
+ cpu->env.cr[CR_IOR] = addr;
+ cpu->env.cr[CR_ISR] = addr >> 32;
+ cpu_loop_exit_restore(cs, retaddr);
+ }
/* Success! Store the translation into the QEMU TLB. */
tlb_set_page(cs, addr & TARGET_PAGE_MASK, phys & TARGET_PAGE_MASK,
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 18/43] target/hppa: Implement external interrupts
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (16 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 17/43] target/hppa: Implement tlb_fill Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 19/43] target/hppa: Implement the interval timer Richard Henderson
` (28 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 1 +
target/hppa/helper.h | 2 ++
target/hppa/cpu.c | 6 +++++
target/hppa/int_helper.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++
target/hppa/translate.c | 16 ++++++++++++-
5 files changed, 83 insertions(+), 1 deletion(-)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index c7a2fb5b20..fc3e62c0af 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -340,6 +340,7 @@ int hppa_cpu_handle_mmu_fault(CPUState *cpu, vaddr address, int rw, int midx);
#else
int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
MMUAccessType type, hwaddr *pphys, int *pprot);
+extern const MemoryRegionOps hppa_io_eir_ops;
#endif
#endif /* HPPA_CPU_H */
diff --git a/target/hppa/helper.h b/target/hppa/helper.h
index 79d22ae486..535f086ab4 100644
--- a/target/hppa/helper.h
+++ b/target/hppa/helper.h
@@ -80,5 +80,7 @@ DEF_HELPER_FLAGS_4(fmpynfadd_d, TCG_CALL_NO_RWG, i64, env, i64, i64, i64)
#ifndef CONFIG_USER_ONLY
DEF_HELPER_1(rfi, void, env)
DEF_HELPER_1(rfi_r, void, env)
+DEF_HELPER_FLAGS_2(write_eirr, TCG_CALL_NO_RWG, void, env, tr)
+DEF_HELPER_FLAGS_2(write_eiem, TCG_CALL_NO_RWG, void, env, tr)
DEF_HELPER_FLAGS_2(swap_system_mask, TCG_CALL_NO_RWG, tr, env, tr)
#endif
diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
index 237d2b8ab5..7837d10381 100644
--- a/target/hppa/cpu.c
+++ b/target/hppa/cpu.c
@@ -57,6 +57,11 @@ static void hppa_cpu_synchronize_from_tb(CPUState *cs, TranslationBlock *tb)
cpu->env.psw_n = (tb->flags & PSW_N) != 0;
}
+static bool hppa_cpu_has_work(CPUState *cs)
+{
+ return cs->interrupt_request & CPU_INTERRUPT_HARD;
+}
+
static void hppa_cpu_disas_set_info(CPUState *cs, disassemble_info *info)
{
info->mach = bfd_mach_hppa20;
@@ -157,6 +162,7 @@ static void hppa_cpu_class_init(ObjectClass *oc, void *data)
dc->realize = hppa_cpu_realizefn;
cc->class_by_name = hppa_cpu_class_by_name;
+ cc->has_work = hppa_cpu_has_work;
cc->do_interrupt = hppa_cpu_do_interrupt;
cc->cpu_exec_interrupt = hppa_cpu_exec_interrupt;
cc->dump_state = hppa_cpu_dump_state;
diff --git a/target/hppa/int_helper.c b/target/hppa/int_helper.c
index e66ca26941..74ab34f306 100644
--- a/target/hppa/int_helper.c
+++ b/target/hppa/int_helper.c
@@ -24,6 +24,65 @@
#include "exec/helper-proto.h"
#include "qom/cpu.h"
+#ifndef CONFIG_USER_ONLY
+static void eval_interrupt(HPPACPU *cpu)
+{
+ CPUState *cs = CPU(cpu);
+ if (cpu->env.cr[CR_EIRR] & cpu->env.cr[CR_EIEM]) {
+ cpu_interrupt(cs, CPU_INTERRUPT_HARD);
+ } else {
+ cpu_reset_interrupt(cs, CPU_INTERRUPT_HARD);
+ }
+}
+
+/* Each CPU has a word mapped into the GSC bus. Anything on the GSC bus
+ * can write to this word to raise an external interrupt on the target CPU.
+ * This includes the system controler (DINO) for regular devices, or
+ * another CPU for SMP interprocessor interrupts.
+ */
+static uint64_t io_eir_read(void *opaque, hwaddr addr, unsigned size)
+{
+ HPPACPU *cpu = opaque;
+
+ /* ??? What does a read of this register over the GSC bus do? */
+ return cpu->env.cr[CR_EIRR];
+}
+
+static void io_eir_write(void *opaque, hwaddr addr,
+ uint64_t data, unsigned size)
+{
+ HPPACPU *cpu = opaque;
+ int le_bit = ~data & (TARGET_REGISTER_BITS - 1);
+
+ cpu->env.cr[CR_EIRR] |= (target_ureg)1 << le_bit;
+ eval_interrupt(cpu);
+}
+
+const MemoryRegionOps hppa_io_eir_ops = {
+ .read = io_eir_read,
+ .write = io_eir_write,
+ .valid.min_access_size = 4,
+ .valid.max_access_size = 4,
+ .impl.min_access_size = 4,
+ .impl.max_access_size = 4,
+};
+
+void HELPER(write_eirr)(CPUHPPAState *env, target_ureg val)
+{
+ env->cr[CR_EIRR] &= ~val;
+ qemu_mutex_lock_iothread();
+ eval_interrupt(hppa_env_get_cpu(env));
+ qemu_mutex_unlock_iothread();
+}
+
+void HELPER(write_eiem)(CPUHPPAState *env, target_ureg val)
+{
+ env->cr[CR_EIEM] = val;
+ qemu_mutex_lock_iothread();
+ eval_interrupt(hppa_env_get_cpu(env));
+ qemu_mutex_unlock_iothread();
+}
+#endif /* !CONFIG_USER_ONLY */
void hppa_cpu_do_interrupt(CPUState *cs)
{
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index f0ee6be052..cac21dbe2f 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -2113,12 +2113,25 @@ static DisasJumpType trans_mtctl(DisasContext *ctx, uint32_t insn,
/* All other control registers are privileged or read-only. */
CHECK_MOST_PRIVILEGED(EXCP_PRIV_REG);
+#ifdef CONFIG_USER_ONLY
+ g_assert_not_reached();
+#else
+ DisasJumpType ret = DISAS_NEXT;
+
nullify_over(ctx);
switch (ctl) {
case CR_IT:
/* ??? modify interval timer offset */
break;
+ case CR_EIRR:
+ gen_helper_write_eirr(cpu_env, reg);
+ break;
+ case CR_EIEM:
+ gen_helper_write_eiem(cpu_env, reg);
+ ret = DISAS_IAQ_N_STALE_EXIT;
+ break;
+
case CR_IIASQ:
case CR_IIAOQ:
/* FIXME: Respect PSW_Q bit */
@@ -2135,7 +2148,8 @@ static DisasJumpType trans_mtctl(DisasContext *ctx, uint32_t insn,
tcg_gen_st_reg(reg, cpu_env, offsetof(CPUHPPAState, cr[ctl]));
break;
}
- return nullify_end(ctx, DISAS_NEXT);
+ return nullify_end(ctx, ret);
+#endif
}
static DisasJumpType trans_mtsarcm(DisasContext *ctx, uint32_t insn,
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 19/43] target/hppa: Implement the interval timer
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (17 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 18/43] target/hppa: Implement external interrupts Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 20/43] target/hppa: Log unimplemented instructions Richard Henderson
` (27 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 2 ++
target/hppa/helper.h | 3 +++
target/hppa/cpu.c | 8 ++++++++
target/hppa/int_helper.c | 6 ++++++
target/hppa/op_helper.c | 36 ++++++++++++++++++++++++++++++++++++
target/hppa/translate.c | 16 ++++++++++++----
6 files changed, 67 insertions(+), 4 deletions(-)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index fc3e62c0af..31a3702684 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -234,6 +234,7 @@ struct HPPACPU {
/*< public >*/
CPUHPPAState env;
+ QEMUTimer *alarm_timer;
};
static inline HPPACPU *hppa_env_get_cpu(CPUHPPAState *env)
@@ -341,6 +342,7 @@ int hppa_cpu_handle_mmu_fault(CPUState *cpu, vaddr address, int rw, int midx);
int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
MMUAccessType type, hwaddr *pphys, int *pprot);
extern const MemoryRegionOps hppa_io_eir_ops;
+void hppa_cpu_alarm_timer(void *);
#endif
#endif /* HPPA_CPU_H */
diff --git a/target/hppa/helper.h b/target/hppa/helper.h
index 535f086ab4..744b11cb66 100644
--- a/target/hppa/helper.h
+++ b/target/hppa/helper.h
@@ -77,9 +77,12 @@ DEF_HELPER_FLAGS_4(fmpynfadd_s, TCG_CALL_NO_RWG, i32, env, i32, i32, i32)
DEF_HELPER_FLAGS_4(fmpyfadd_d, TCG_CALL_NO_RWG, i64, env, i64, i64, i64)
DEF_HELPER_FLAGS_4(fmpynfadd_d, TCG_CALL_NO_RWG, i64, env, i64, i64, i64)
+DEF_HELPER_FLAGS_0(read_interval_timer, TCG_CALL_NO_RWG, tr)
+
#ifndef CONFIG_USER_ONLY
DEF_HELPER_1(rfi, void, env)
DEF_HELPER_1(rfi_r, void, env)
+DEF_HELPER_FLAGS_2(write_interval_timer, TCG_CALL_NO_RWG, void, env, tr)
DEF_HELPER_FLAGS_2(write_eirr, TCG_CALL_NO_RWG, void, env, tr)
DEF_HELPER_FLAGS_2(write_eiem, TCG_CALL_NO_RWG, void, env, tr)
DEF_HELPER_FLAGS_2(swap_system_mask, TCG_CALL_NO_RWG, tr, env, tr)
diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
index 7837d10381..86f5cb0bfe 100644
--- a/target/hppa/cpu.c
+++ b/target/hppa/cpu.c
@@ -97,6 +97,14 @@ static void hppa_cpu_realizefn(DeviceState *dev, Error **errp)
qemu_init_vcpu(cs);
acc->parent_realize(dev, errp);
+
+#ifndef CONFIG_USER_ONLY
+ {
+ HPPACPU *cpu = HPPA_CPU(cs);
+ cpu->alarm_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL,
+ hppa_cpu_alarm_timer, cpu);
+ }
+#endif
}
/* Sort hppabetically by type name. */
diff --git a/target/hppa/int_helper.c b/target/hppa/int_helper.c
index 74ab34f306..ee72769544 100644
--- a/target/hppa/int_helper.c
+++ b/target/hppa/int_helper.c
@@ -67,6 +67,12 @@ const MemoryRegionOps hppa_io_eir_ops = {
.impl.max_access_size = 4,
};
+void hppa_cpu_alarm_timer(void *opaque)
+{
+ /* Raise interrupt 0. */
+ io_eir_write(opaque, 0, 0, 4);
+}
+
void HELPER(write_eirr)(CPUHPPAState *env, target_ureg val)
{
env->cr[CR_EIRR] &= ~val;
diff --git a/target/hppa/op_helper.c b/target/hppa/op_helper.c
index 1963b2439b..6d19cab6c9 100644
--- a/target/hppa/op_helper.c
+++ b/target/hppa/op_helper.c
@@ -22,6 +22,8 @@
#include "exec/exec-all.h"
#include "exec/helper-proto.h"
#include "exec/cpu_ldst.h"
+#include "qemu/timer.h"
+
void QEMU_NORETURN HELPER(excp)(CPUHPPAState *env, int excp)
{
@@ -602,7 +604,41 @@ float64 HELPER(fmpynfadd_d)(CPUHPPAState *env, float64 a, float64 b, float64 c)
return ret;
}
+target_ureg HELPER(read_interval_timer)(void)
+{
+#ifdef CONFIG_USER_ONLY
+ /* In user-mode, QEMU_CLOCK_VIRTUAL doesn't exist.
+ Just pass through the host cpu clock ticks. */
+ return cpu_get_host_ticks();
+#else
+ /* In system mode we have access to a decent high-resolution clock.
+ In order to make OS-level time accounting work with the cr16,
+ present it with a well-timed clock fixed at 250MHz. */
+ return qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) >> 2;
+#endif
+}
+
#ifndef CONFIG_USER_ONLY
+void HELPER(write_interval_timer)(CPUHPPAState *env, target_ureg val)
+{
+ HPPACPU *cpu = hppa_env_get_cpu(env);
+ uint64_t current = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
+ uint64_t timeout;
+
+ /* Even in 64-bit mode, the comparator is always 32-bit. But the
+ value we expose to the guest is 1/4 of the speed of the clock,
+ so moosh in 34 bits. */
+ timeout = deposit64(current, 0, 34, (uint64_t)val << 2);
+
+ /* If the mooshing puts the clock in the past, advance to next round. */
+ if (timeout < current + 1000) {
+ timeout += 1ULL << 34;
+ }
+
+ cpu->env.cr[CR_IT] = timeout;
+ timer_mod(cpu->alarm_timer, timeout);
+}
+
target_ureg HELPER(swap_system_mask)(CPUHPPAState *env, target_ureg nsm)
{
target_ulong psw = env->psw;
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index cac21dbe2f..cad661e39f 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -2027,6 +2027,7 @@ static DisasJumpType trans_mfctl(DisasContext *ctx, uint32_t insn,
unsigned rt = extract32(insn, 0, 5);
unsigned ctl = extract32(insn, 21, 5);
TCGv_reg tmp;
+ DisasJumpType ret;
switch (ctl) {
case CR_SAR:
@@ -2045,9 +2046,17 @@ static DisasJumpType trans_mfctl(DisasContext *ctx, uint32_t insn,
/* FIXME: Respect PSW_S bit. */
nullify_over(ctx);
tmp = dest_gpr(ctx, rt);
- tcg_gen_movi_reg(tmp, 0); /* FIXME */
+ if (ctx->base.tb->cflags & CF_USE_ICOUNT) {
+ gen_io_start();
+ gen_helper_read_interval_timer(tmp);
+ gen_io_end();
+ ret = DISAS_IAQ_N_STALE;
+ } else {
+ gen_helper_read_interval_timer(tmp);
+ ret = DISAS_NEXT;
+ }
save_gpr(ctx, rt, tmp);
- break;
+ return nullify_end(ctx, ret);
case 26:
case 27:
break;
@@ -2121,9 +2130,8 @@ static DisasJumpType trans_mtctl(DisasContext *ctx, uint32_t insn,
nullify_over(ctx);
switch (ctl) {
case CR_IT:
- /* ??? modify interval timer offset */
+ gen_helper_write_interval_timer(cpu_env, reg);
break;
-
case CR_EIRR:
gen_helper_write_eirr(cpu_env, reg);
break;
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 20/43] target/hppa: Log unimplemented instructions
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (18 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 19/43] target/hppa: Implement the interval timer Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 21/43] target/hppa: Implement I*TLBA and I*TLBP insns Richard Henderson
` (26 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/translate.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index cad661e39f..7334206b44 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -4207,6 +4207,8 @@ static DisasJumpType translate_table_int(DisasContext *ctx, uint32_t insn,
return table[i].trans(ctx, insn, &table[i]);
}
}
+ qemu_log_mask(LOG_UNIMP, "UNIMP insn %08x @ " TARGET_FMT_lx "\n",
+ insn, ctx->base.pc_next);
return gen_illegal(ctx);
}
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 21/43] target/hppa: Implement I*TLBA and I*TLBP insns
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (19 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 20/43] target/hppa: Log unimplemented instructions Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 22/43] target/hppa: Implement P*TLB and P*TLBE insns Richard Henderson
` (25 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
The TLB can now be populated, but it cannot yet be cleared.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/helper.h | 2 ++
target/hppa/mem_helper.c | 80 ++++++++++++++++++++++++++++++++++++++++++++++--
target/hppa/translate.c | 54 ++++++++++++++++++++++++++++++--
3 files changed, 132 insertions(+), 4 deletions(-)
diff --git a/target/hppa/helper.h b/target/hppa/helper.h
index 744b11cb66..d412093914 100644
--- a/target/hppa/helper.h
+++ b/target/hppa/helper.h
@@ -86,4 +86,6 @@ DEF_HELPER_FLAGS_2(write_interval_timer, TCG_CALL_NO_RWG, void, env, tr)
DEF_HELPER_FLAGS_2(write_eirr, TCG_CALL_NO_RWG, void, env, tr)
DEF_HELPER_FLAGS_2(write_eiem, TCG_CALL_NO_RWG, void, env, tr)
DEF_HELPER_FLAGS_2(swap_system_mask, TCG_CALL_NO_RWG, tr, env, tr)
+DEF_HELPER_FLAGS_3(itlba, TCG_CALL_NO_RWG, void, env, tl, tr)
+DEF_HELPER_FLAGS_3(itlbp, TCG_CALL_NO_RWG, void, env, tl, tr)
#endif
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
index 4e92e35957..9d4bf132d6 100644
--- a/target/hppa/mem_helper.c
+++ b/target/hppa/mem_helper.c
@@ -42,13 +42,40 @@ static hppa_tlb_entry *hppa_find_tlb(CPUHPPAState *env, vaddr addr)
for (i = 0; i < ARRAY_SIZE(env->tlb); ++i) {
hppa_tlb_entry *ent = &env->tlb[i];
- if (ent->va_b <= addr && addr <= ent->va_e && ent->entry_valid) {
+ if (ent->va_b <= addr && addr <= ent->va_e) {
return ent;
}
}
return NULL;
}
+static void hppa_flush_tlb_ent(CPUHPPAState *env, hppa_tlb_entry *ent)
+{
+ CPUState *cs = CPU(hppa_env_get_cpu(env));
+ unsigned i, n = 1 << (2 * ent->page_size);
+ uint64_t addr = ent->va_b;
+
+ for (i = 0; i < n; ++i, addr += TARGET_PAGE_SIZE) {
+ /* Do not flush MMU_PHYS_IDX. */
+ tlb_flush_page_by_mmuidx(cs, addr, 0xf);
+ }
+
+ memset(ent, 0, sizeof(*ent));
+ ent->va_b = -1;
+}
+
+static hppa_tlb_entry *hppa_alloc_tlb_ent(CPUHPPAState *env)
+{
+ hppa_tlb_entry *ent;
+ uint32_t i = env->tlb_last;
+
+ env->tlb_last = (i == ARRAY_SIZE(env->tlb) - 1 ? 0 : i + 1);
+ ent = &env->tlb[i];
+
+ hppa_flush_tlb_ent(env, ent);
+ return ent;
+}
+
int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
MMUAccessType type, hwaddr *pphys, int *pprot)
{
@@ -67,7 +94,7 @@ int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
/* Find a valid tlb entry that matches the virtual address. */
ent = hppa_find_tlb(env, addr);
- if (ent == NULL) {
+ if (ent == NULL || !ent->entry_valid) {
phys = 0;
prot = 0;
ret = (ifetch ? EXCP_ITLB_MISS : EXCP_DTLB_MISS);
@@ -192,4 +219,53 @@ void tlb_fill(CPUState *cs, target_ulong addr, MMUAccessType type,
tlb_set_page(cs, addr & TARGET_PAGE_MASK, phys & TARGET_PAGE_MASK,
prot, mmu_idx, TARGET_PAGE_SIZE);
}
+
+/* Insert (Insn/Data) TLB Address. Note this is PA 1.1 only. */
+void HELPER(itlba)(CPUHPPAState *env, target_ulong addr, target_ureg reg)
+{
+ hppa_tlb_entry *empty = NULL;
+ int i;
+
+ /* Zap any old entries covering ADDR; notice empty entries on the way. */
+ for (i = 0; i < ARRAY_SIZE(env->tlb); ++i) {
+ hppa_tlb_entry *ent = &env->tlb[i];
+ if (!ent->entry_valid) {
+ empty = ent;
+ } else if (ent->va_b <= addr && addr <= ent->va_e) {
+ hppa_flush_tlb_ent(env, ent);
+ empty = ent;
+ }
+ }
+
+ /* If we didn't see an empty entry, evict one. */
+ if (empty == NULL) {
+ empty = hppa_alloc_tlb_ent(env);
+ }
+
+ /* Note that empty->entry_valid == 0 already. */
+ empty->va_b = addr & TARGET_PAGE_MASK;
+ empty->va_e = empty->va_b + TARGET_PAGE_SIZE - 1;
+ empty->pa = extract32(reg, 5, 20) << TARGET_PAGE_BITS;
+}
+
+/* Insert (Insn/Data) TLB Protection. Note this is PA 1.1 only. */
+void HELPER(itlbp)(CPUHPPAState *env, target_ulong addr, target_ureg reg)
+{
+ hppa_tlb_entry *ent = hppa_find_tlb(env, addr);
+
+ if (unlikely(ent == NULL || ent->entry_valid)) {
+ qemu_log_mask(LOG_GUEST_ERROR, "ITLBP not following ITLBA\n");
+ return;
+ }
+
+ ent->access_id = extract32(reg, 1, 18);
+ ent->u = extract32(reg, 19, 1);
+ ent->ar_pl2 = extract32(reg, 20, 2);
+ ent->ar_pl1 = extract32(reg, 22, 2);
+ ent->ar_type = extract32(reg, 24, 3);
+ ent->b = extract32(reg, 27, 1);
+ ent->d = extract32(reg, 28, 1);
+ ent->t = extract32(reg, 29, 1);
+ ent->entry_valid = 1;
+}
#endif /* CONFIG_USER_ONLY */
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 7334206b44..af84f4d55f 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -1333,7 +1333,10 @@ static DisasJumpType do_unit(DisasContext *ctx, unsigned rt, TCGv_reg in1,
}
#ifndef CONFIG_USER_ONLY
-/* Top 2 bits of the base register select sp[4-7]. */
+/* The "normal" usage is SP >= 0, wherein SP == 0 selects the space
+ from the top 2 bits of the base register. There are a few system
+ instructions that have a 3-bit space specifier, for which SR0 is
+ not special. To handle this, pass ~SP. */
static TCGv_i64 space_select(DisasContext *ctx, int sp, TCGv_reg base)
{
TCGv_ptr ptr;
@@ -1341,7 +1344,12 @@ static TCGv_i64 space_select(DisasContext *ctx, int sp, TCGv_reg base)
TCGv_i64 spc;
if (sp != 0) {
- return cpu_sr[sp];
+ if (sp < 0) {
+ sp = ~sp;
+ }
+ spc = get_temp_tl(ctx);
+ load_spr(ctx, spc, sp);
+ return spc;
}
ptr = tcg_temp_new_ptr();
@@ -2344,6 +2352,42 @@ static DisasJumpType trans_probe(DisasContext *ctx, uint32_t insn,
return nullify_end(ctx, DISAS_NEXT);
}
+#ifndef CONFIG_USER_ONLY
+static DisasJumpType trans_ixtlbx(DisasContext *ctx, uint32_t insn,
+ const DisasInsn *di)
+{
+ unsigned sp;
+ unsigned rr = extract32(insn, 16, 5);
+ unsigned rb = extract32(insn, 21, 5);
+ unsigned is_data = insn & 0x1000;
+ unsigned is_addr = insn & 0x40;
+ TCGv_tl addr;
+ TCGv_reg ofs, reg;
+
+ if (is_data) {
+ sp = extract32(insn, 14, 2);
+ } else {
+ sp = ~assemble_sr3(insn);
+ }
+
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR);
+ nullify_over(ctx);
+
+ form_gva(ctx, &addr, &ofs, rb, 0, 0, 0, sp, 0, false);
+ reg = load_gpr(ctx, rr);
+ if (is_addr) {
+ gen_helper_itlba(cpu_env, addr, reg);
+ } else {
+ gen_helper_itlbp(cpu_env, addr, reg);
+ }
+
+ /* Exit TB for ITLB change if mmu is enabled. This *should* not be
+ the case, since the OS TLB fill handler runs with mmu disabled. */
+ return nullify_end(ctx, !is_data && (ctx->base.tb->flags & PSW_C)
+ ? DISAS_IAQ_N_STALE : DISAS_NEXT);
+}
+#endif /* !CONFIG_USER_ONLY */
+
static const DisasInsn table_mem_mgmt[] = {
{ 0x04003280u, 0xfc003fffu, trans_nop }, /* fdc, disp */
{ 0x04001280u, 0xfc003fffu, trans_nop }, /* fdc, index */
@@ -2360,6 +2404,12 @@ static const DisasInsn table_mem_mgmt[] = {
{ 0x04002720u, 0xfc003fffu, trans_base_idx_mod }, /* pdc, base mod */
{ 0x04001180u, 0xfc003fa0u, trans_probe }, /* probe */
{ 0x04003180u, 0xfc003fa0u, trans_probe }, /* probei */
+#ifndef CONFIG_USER_ONLY
+ { 0x04000000u, 0xfc001fffu, trans_ixtlbx }, /* iitlbp */
+ { 0x04000040u, 0xfc001fffu, trans_ixtlbx }, /* iitlba */
+ { 0x04001000u, 0xfc001fffu, trans_ixtlbx }, /* idtlbp */
+ { 0x04001040u, 0xfc001fffu, trans_ixtlbx }, /* idtlba */
+#endif
};
static DisasJumpType trans_add(DisasContext *ctx, uint32_t insn,
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 22/43] target/hppa: Implement P*TLB and P*TLBE insns
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (20 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 21/43] target/hppa: Implement I*TLBA and I*TLBP insns Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 23/43] target/hppa: Implement LDWA Richard Henderson
` (24 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
We now have all of the TLB manipulation instructions.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/helper.h | 2 ++
target/hppa/mem_helper.c | 37 +++++++++++++++++++++++++++++++++++++
target/hppa/translate.c | 40 ++++++++++++++++++++++++++++++++++++++++
3 files changed, 79 insertions(+)
diff --git a/target/hppa/helper.h b/target/hppa/helper.h
index d412093914..f059ddf3b9 100644
--- a/target/hppa/helper.h
+++ b/target/hppa/helper.h
@@ -88,4 +88,6 @@ DEF_HELPER_FLAGS_2(write_eiem, TCG_CALL_NO_RWG, void, env, tr)
DEF_HELPER_FLAGS_2(swap_system_mask, TCG_CALL_NO_RWG, tr, env, tr)
DEF_HELPER_FLAGS_3(itlba, TCG_CALL_NO_RWG, void, env, tl, tr)
DEF_HELPER_FLAGS_3(itlbp, TCG_CALL_NO_RWG, void, env, tl, tr)
+DEF_HELPER_FLAGS_2(ptlb, TCG_CALL_NO_RWG, void, env, tl)
+DEF_HELPER_FLAGS_1(ptlbe, TCG_CALL_NO_RWG, void, env)
#endif
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
index 9d4bf132d6..b5e2e35908 100644
--- a/target/hppa/mem_helper.c
+++ b/target/hppa/mem_helper.c
@@ -268,4 +268,41 @@ void HELPER(itlbp)(CPUHPPAState *env, target_ulong addr, target_ureg reg)
ent->t = extract32(reg, 29, 1);
ent->entry_valid = 1;
}
+
+/* Purge (Insn/Data) TLB. This is explicitly page-based, and is
+ synchronous across all processors. */
+static void ptlb_work(CPUState *cpu, run_on_cpu_data data)
+{
+ CPUHPPAState *env = cpu->env_ptr;
+ target_ulong addr = (target_ulong) data.target_ptr;
+ hppa_tlb_entry *ent = hppa_find_tlb(env, addr);
+
+ if (ent && ent->entry_valid) {
+ hppa_flush_tlb_ent(env, ent);
+ }
+}
+
+void HELPER(ptlb)(CPUHPPAState *env, target_ulong addr)
+{
+ CPUState *src = CPU(hppa_env_get_cpu(env));
+ CPUState *cpu;
+ run_on_cpu_data data = RUN_ON_CPU_TARGET_PTR(addr);
+
+ CPU_FOREACH(cpu) {
+ if (cpu != src) {
+ async_run_on_cpu(cpu, ptlb_work, data);
+ }
+ }
+ async_safe_run_on_cpu(src, ptlb_work, data);
+}
+
+/* Purge (Insn/Data) TLB entry. This affects an implementation-defined
+ number of pages/entries (we choose all), and is local to the cpu. */
+void HELPER(ptlbe)(CPUHPPAState *env)
+{
+ CPUState *src = CPU(hppa_env_get_cpu(env));
+
+ memset(env->tlb, 0, sizeof(env->tlb));
+ tlb_flush_by_mmuidx(src, 0xf);
+}
#endif /* CONFIG_USER_ONLY */
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index af84f4d55f..44e566837d 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -2386,6 +2386,42 @@ static DisasJumpType trans_ixtlbx(DisasContext *ctx, uint32_t insn,
return nullify_end(ctx, !is_data && (ctx->base.tb->flags & PSW_C)
? DISAS_IAQ_N_STALE : DISAS_NEXT);
}
+
+static DisasJumpType trans_pxtlbx(DisasContext *ctx, uint32_t insn,
+ const DisasInsn *di)
+{
+ unsigned m = extract32(insn, 5, 1);
+ unsigned sp;
+ unsigned rx = extract32(insn, 16, 5);
+ unsigned rb = extract32(insn, 21, 5);
+ unsigned is_data = insn & 0x1000;
+ unsigned is_local = insn & 0x40;
+ TCGv_tl addr;
+ TCGv_reg ofs;
+
+ if (is_data) {
+ sp = extract32(insn, 14, 2);
+ } else {
+ sp = ~assemble_sr3(insn);
+ }
+
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR);
+ nullify_over(ctx);
+
+ form_gva(ctx, &addr, &ofs, rb, rx, 0, 0, sp, m, false);
+ if (m) {
+ save_gpr(ctx, rb, ofs);
+ }
+ if (is_local) {
+ gen_helper_ptlbe(cpu_env);
+ } else {
+ gen_helper_ptlb(cpu_env, addr);
+ }
+
+ /* Exit TB for TLB change if mmu is enabled. */
+ return nullify_end(ctx, !is_data && (ctx->base.tb->flags & PSW_C)
+ ? DISAS_IAQ_N_STALE : DISAS_NEXT);
+}
#endif /* !CONFIG_USER_ONLY */
static const DisasInsn table_mem_mgmt[] = {
@@ -2409,6 +2445,10 @@ static const DisasInsn table_mem_mgmt[] = {
{ 0x04000040u, 0xfc001fffu, trans_ixtlbx }, /* iitlba */
{ 0x04001000u, 0xfc001fffu, trans_ixtlbx }, /* idtlbp */
{ 0x04001040u, 0xfc001fffu, trans_ixtlbx }, /* idtlba */
+ { 0x04000200u, 0xfc001fdfu, trans_pxtlbx }, /* pitlb */
+ { 0x04000240u, 0xfc001fdfu, trans_pxtlbx }, /* pitlbe */
+ { 0x04001200u, 0xfc001fdfu, trans_pxtlbx }, /* pdtlb */
+ { 0x04001240u, 0xfc001fdfu, trans_pxtlbx }, /* pdtlbe */
#endif
};
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 23/43] target/hppa: Implement LDWA
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (21 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 22/43] target/hppa: Implement P*TLB and P*TLBE insns Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 24/43] target/hppa: Implement LPA Richard Henderson
` (23 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/translate.c | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 44e566837d..5b49cc5332 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -2943,12 +2943,50 @@ static DisasJumpType trans_stby(DisasContext *ctx, uint32_t insn,
return nullify_end(ctx, DISAS_NEXT);
}
+#ifndef CONFIG_USER_ONLY
+static DisasJumpType trans_ldwa_idx_i(DisasContext *ctx, uint32_t insn,
+ const DisasInsn *di)
+{
+ int hold_mmu_idx = ctx->mmu_idx;
+ DisasJumpType ret;
+
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR);
+
+ /* ??? needs fixing for hppa64 -- ldda does not follow the same
+ format wrt the sub-opcode in bits 6:9. */
+ ctx->mmu_idx = MMU_PHYS_IDX;
+ ret = trans_ld_idx_i(ctx, insn, di);
+ ctx->mmu_idx = hold_mmu_idx;
+ return ret;
+}
+
+static DisasJumpType trans_ldwa_idx_x(DisasContext *ctx, uint32_t insn,
+ const DisasInsn *di)
+{
+ int hold_mmu_idx = ctx->mmu_idx;
+ DisasJumpType ret;
+
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR);
+
+ /* ??? needs fixing for hppa64 -- ldda does not follow the same
+ format wrt the sub-opcode in bits 6:9. */
+ ctx->mmu_idx = MMU_PHYS_IDX;
+ ret = trans_ld_idx_x(ctx, insn, di);
+ ctx->mmu_idx = hold_mmu_idx;
+ return ret;
+}
+#endif
+
static const DisasInsn table_index_mem[] = {
{ 0x0c001000u, 0xfc001300, trans_ld_idx_i }, /* LD[BHWD], im */
{ 0x0c000000u, 0xfc001300, trans_ld_idx_x }, /* LD[BHWD], rx */
{ 0x0c001200u, 0xfc001300, trans_st_idx_i }, /* ST[BHWD] */
{ 0x0c0001c0u, 0xfc0003c0, trans_ldcw },
{ 0x0c001300u, 0xfc0013c0, trans_stby },
+#ifndef CONFIG_USER_ONLY
+ { 0x0c001180u, 0xfc00d3c0, trans_ldwa_idx_i }, /* LDWA, im */
+ { 0x0c000180u, 0xfc00d3c0, trans_ldwa_idx_x }, /* LDWA, rx */
+#endif
};
static DisasJumpType trans_ldil(DisasContext *ctx, uint32_t insn)
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 24/43] target/hppa: Implement LPA
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (22 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 23/43] target/hppa: Implement LDWA Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 25/43] target/hppa: Implement LCI Richard Henderson
` (22 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 1 +
target/hppa/helper.h | 1 +
target/hppa/mem_helper.c | 13 +++++++++++++
target/hppa/op_helper.c | 10 +++++-----
target/hppa/translate.c | 30 ++++++++++++++++++++++++++++++
5 files changed, 50 insertions(+), 5 deletions(-)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index 31a3702684..a6e4091b6a 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -344,5 +344,6 @@ int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
extern const MemoryRegionOps hppa_io_eir_ops;
void hppa_cpu_alarm_timer(void *);
#endif
+void QEMU_NORETURN hppa_dynamic_excp(CPUHPPAState *env, int excp, uintptr_t ra);
#endif /* HPPA_CPU_H */
diff --git a/target/hppa/helper.h b/target/hppa/helper.h
index f059ddf3b9..1e733b7926 100644
--- a/target/hppa/helper.h
+++ b/target/hppa/helper.h
@@ -90,4 +90,5 @@ DEF_HELPER_FLAGS_3(itlba, TCG_CALL_NO_RWG, void, env, tl, tr)
DEF_HELPER_FLAGS_3(itlbp, TCG_CALL_NO_RWG, void, env, tl, tr)
DEF_HELPER_FLAGS_2(ptlb, TCG_CALL_NO_RWG, void, env, tl)
DEF_HELPER_FLAGS_1(ptlbe, TCG_CALL_NO_RWG, void, env)
+DEF_HELPER_FLAGS_2(lpa, TCG_CALL_NO_WG, tr, env, tl)
#endif
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
index b5e2e35908..9d93894019 100644
--- a/target/hppa/mem_helper.c
+++ b/target/hppa/mem_helper.c
@@ -305,4 +305,17 @@ void HELPER(ptlbe)(CPUHPPAState *env)
memset(env->tlb, 0, sizeof(env->tlb));
tlb_flush_by_mmuidx(src, 0xf);
}
+
+target_ureg HELPER(lpa)(CPUHPPAState *env, target_ulong addr)
+{
+ hwaddr phys;
+ int prot, excp;
+
+ excp = hppa_get_physical_address(env, addr, MMU_KERNEL_IDX,
+ MMU_DATA_LOAD, &phys, &prot);
+ if (excp == EXCP_DTLB_MISS) {
+ hppa_dynamic_excp(env, EXCP_NA_DTLB_MISS, GETPC());
+ }
+ return phys;
+}
#endif /* CONFIG_USER_ONLY */
diff --git a/target/hppa/op_helper.c b/target/hppa/op_helper.c
index 6d19cab6c9..d270f94e31 100644
--- a/target/hppa/op_helper.c
+++ b/target/hppa/op_helper.c
@@ -34,7 +34,7 @@ void QEMU_NORETURN HELPER(excp)(CPUHPPAState *env, int excp)
cpu_loop_exit(cs);
}
-static void QEMU_NORETURN dynexcp(CPUHPPAState *env, int excp, uintptr_t ra)
+void QEMU_NORETURN hppa_dynamic_excp(CPUHPPAState *env, int excp, uintptr_t ra)
{
HPPACPU *cpu = hppa_env_get_cpu(env);
CPUState *cs = CPU(cpu);
@@ -46,14 +46,14 @@ static void QEMU_NORETURN dynexcp(CPUHPPAState *env, int excp, uintptr_t ra)
void HELPER(tsv)(CPUHPPAState *env, target_ureg cond)
{
if (unlikely((target_sreg)cond < 0)) {
- dynexcp(env, EXCP_OVERFLOW, GETPC());
+ hppa_dynamic_excp(env, EXCP_OVERFLOW, GETPC());
}
}
void HELPER(tcond)(CPUHPPAState *env, target_ureg cond)
{
if (unlikely(cond)) {
- dynexcp(env, EXCP_COND, GETPC());
+ hppa_dynamic_excp(env, EXCP_COND, GETPC());
}
}
@@ -237,7 +237,7 @@ static void update_fr0_op(CPUHPPAState *env, uintptr_t ra)
env->fr[0] = (uint64_t)shadow << 32;
if (hard_exp & shadow) {
- dynexcp(env, EXCP_ASSIST, ra);
+ hppa_dynamic_excp(env, EXCP_ASSIST, ra);
}
}
@@ -645,7 +645,7 @@ target_ureg HELPER(swap_system_mask)(CPUHPPAState *env, target_ureg nsm)
/* ??? On second reading this condition simply seems
to be undefined rather than a diagnosed trap. */
if (nsm & ~psw & PSW_Q) {
- dynexcp(env, EXCP_ILL, GETPC());
+ hppa_dynamic_excp(env, EXCP_ILL, GETPC());
}
env->psw = (psw & ~PSW_SM) | (nsm & PSW_SM);
return psw & PSW_SM;
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 5b49cc5332..bbef2f0d7f 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -2422,6 +2422,35 @@ static DisasJumpType trans_pxtlbx(DisasContext *ctx, uint32_t insn,
return nullify_end(ctx, !is_data && (ctx->base.tb->flags & PSW_C)
? DISAS_IAQ_N_STALE : DISAS_NEXT);
}
+
+static DisasJumpType trans_lpa(DisasContext *ctx, uint32_t insn,
+ const DisasInsn *di)
+{
+ unsigned rt = extract32(insn, 0, 5);
+ unsigned m = extract32(insn, 5, 1);
+ unsigned sp = extract32(insn, 14, 2);
+ unsigned rx = extract32(insn, 16, 5);
+ unsigned rb = extract32(insn, 21, 5);
+ TCGv_tl vaddr;
+ TCGv_reg ofs, paddr;
+
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR);
+ nullify_over(ctx);
+
+ form_gva(ctx, &vaddr, &ofs, rb, rx, 0, 0, sp, m, false);
+
+ paddr = tcg_temp_new();
+ gen_helper_lpa(paddr, cpu_env, vaddr);
+
+ /* Note that physical address result overrides base modification. */
+ if (m) {
+ save_gpr(ctx, rb, ofs);
+ }
+ save_gpr(ctx, rt, paddr);
+ tcg_temp_free(paddr);
+
+ return nullify_end(ctx, DISAS_NEXT);
+}
#endif /* !CONFIG_USER_ONLY */
static const DisasInsn table_mem_mgmt[] = {
@@ -2449,6 +2478,7 @@ static const DisasInsn table_mem_mgmt[] = {
{ 0x04000240u, 0xfc001fdfu, trans_pxtlbx }, /* pitlbe */
{ 0x04001200u, 0xfc001fdfu, trans_pxtlbx }, /* pdtlb */
{ 0x04001240u, 0xfc001fdfu, trans_pxtlbx }, /* pdtlbe */
+ { 0x04001340u, 0xfc003fc0u, trans_lpa },
#endif
};
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 25/43] target/hppa: Implement LCI
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (23 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 24/43] target/hppa: Implement LPA Richard Henderson
@ 2018-01-22 3:41 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 26/43] target/hppa: Implement SYNCDMA insn Richard Henderson
` (21 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:41 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/translate.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index bbef2f0d7f..b207ae192a 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -2451,6 +2451,25 @@ static DisasJumpType trans_lpa(DisasContext *ctx, uint32_t insn,
return nullify_end(ctx, DISAS_NEXT);
}
+
+static DisasJumpType trans_lci(DisasContext *ctx, uint32_t insn,
+ const DisasInsn *di)
+{
+ unsigned rt = extract32(insn, 0, 5);
+ TCGv_reg ci;
+
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR);
+
+ /* The Coherence Index is an implementation-defined function of the
+ physical address. Two addresses with the same CI have a coherent
+ view of the cache. Our implementation is to return 0 for all,
+ since the entire address space is coherent. */
+ ci = tcg_const_reg(0);
+ save_gpr(ctx, rt, ci);
+ tcg_temp_free(ci);
+
+ return DISAS_NEXT;
+}
#endif /* !CONFIG_USER_ONLY */
static const DisasInsn table_mem_mgmt[] = {
@@ -2479,6 +2498,7 @@ static const DisasInsn table_mem_mgmt[] = {
{ 0x04001200u, 0xfc001fdfu, trans_pxtlbx }, /* pdtlb */
{ 0x04001240u, 0xfc001fdfu, trans_pxtlbx }, /* pdtlbe */
{ 0x04001340u, 0xfc003fc0u, trans_lpa },
+ { 0x04001300u, 0xfc003fe0u, trans_lci },
#endif
};
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 26/43] target/hppa: Implement SYNCDMA insn
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (24 preceding siblings ...)
2018-01-22 3:41 ` [Qemu-devel] [PULL 25/43] target/hppa: Implement LCI Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 27/43] target/hppa: Implement halt and reset instructions Richard Henderson
` (20 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/translate.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index b207ae192a..a311a464bf 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -2301,7 +2301,8 @@ static const DisasInsn table_system[] = {
{ 0x000014a0u, 0xffffffe0u, trans_mfia },
{ 0x000004a0u, 0xffff1fe0u, trans_mfsp },
{ 0x000008a0u, 0xfc1fbfe0u, trans_mfctl },
- { 0x00000400u, 0xffffffffu, trans_sync },
+ { 0x00000400u, 0xffffffffu, trans_sync }, /* sync */
+ { 0x00100400u, 0xffffffffu, trans_sync }, /* syncdma */
{ 0x000010a0u, 0xfc1f3fe0u, trans_ldsid },
#ifndef CONFIG_USER_ONLY
{ 0x00000e60u, 0xfc00ffe0u, trans_rsm },
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 27/43] target/hppa: Implement halt and reset instructions
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (25 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 26/43] target/hppa: Implement SYNCDMA insn Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 28/43] target/hppa: Optimize for flat addressing space Richard Henderson
` (19 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Helge Deller
From: Helge Deller <deller@gmx.de>
Real hardware would use an external device to control the power.
But for the moment let's invent instructions in reserved space,
to be used by our custom firmware.
Signed-off-by: Helge Deller <deller@gmx.de>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/helper.h | 2 ++
target/hppa/op_helper.c | 13 +++++++++++++
target/hppa/translate.c | 25 ++++++++++++++++++++++++-
3 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/target/hppa/helper.h b/target/hppa/helper.h
index 1e733b7926..31320740da 100644
--- a/target/hppa/helper.h
+++ b/target/hppa/helper.h
@@ -80,6 +80,8 @@ DEF_HELPER_FLAGS_4(fmpynfadd_d, TCG_CALL_NO_RWG, i64, env, i64, i64, i64)
DEF_HELPER_FLAGS_0(read_interval_timer, TCG_CALL_NO_RWG, tr)
#ifndef CONFIG_USER_ONLY
+DEF_HELPER_1(shutdown, noreturn, env)
+DEF_HELPER_1(reset, noreturn, env)
DEF_HELPER_1(rfi, void, env)
DEF_HELPER_1(rfi_r, void, env)
DEF_HELPER_FLAGS_2(write_interval_timer, TCG_CALL_NO_RWG, void, env, tr)
diff --git a/target/hppa/op_helper.c b/target/hppa/op_helper.c
index d270f94e31..c2eeced0e9 100644
--- a/target/hppa/op_helper.c
+++ b/target/hppa/op_helper.c
@@ -22,6 +22,7 @@
#include "exec/exec-all.h"
#include "exec/helper-proto.h"
#include "exec/cpu_ldst.h"
+#include "sysemu/sysemu.h"
#include "qemu/timer.h"
@@ -639,6 +640,18 @@ void HELPER(write_interval_timer)(CPUHPPAState *env, target_ureg val)
timer_mod(cpu->alarm_timer, timeout);
}
+void HELPER(shutdown)(CPUHPPAState *env)
+{
+ qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN);
+ helper_excp(env, EXCP_HLT);
+}
+
+void HELPER(reset)(CPUHPPAState *env)
+{
+ qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET);
+ helper_excp(env, EXCP_HLT);
+}
+
target_ureg HELPER(swap_system_mask)(CPUHPPAState *env, target_ureg nsm)
{
target_ulong psw = env->psw;
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index a311a464bf..de96765664 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -2291,6 +2291,18 @@ static DisasJumpType trans_rfi(DisasContext *ctx, uint32_t insn,
/* Exit the TB to recognize new interrupts. */
return nullify_end(ctx, DISAS_NORETURN);
}
+
+static DisasJumpType gen_hlt(DisasContext *ctx, int reset)
+{
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR);
+ nullify_over(ctx);
+ if (reset) {
+ gen_helper_reset(cpu_env);
+ } else {
+ gen_helper_shutdown(cpu_env);
+ }
+ return nullify_end(ctx, DISAS_NORETURN);
+}
#endif /* !CONFIG_USER_ONLY */
static const DisasInsn table_system[] = {
@@ -4508,7 +4520,18 @@ static DisasJumpType translate_one(DisasContext *ctx, uint32_t insn)
case 0x15: /* unassigned */
case 0x1D: /* unassigned */
case 0x37: /* unassigned */
- case 0x3F: /* unassigned */
+ break;
+ case 0x3F:
+#ifndef CONFIG_USER_ONLY
+ /* Unassigned, but use as system-halt. */
+ if (insn == 0xfffdead0) {
+ return gen_hlt(ctx, 0); /* halt system */
+ }
+ if (insn == 0xfffdead1) {
+ return gen_hlt(ctx, 1); /* reset system */
+ }
+#endif
+ break;
default:
break;
}
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 28/43] target/hppa: Optimize for flat addressing space
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (26 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 27/43] target/hppa: Implement halt and reset instructions Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 29/43] target/hppa: Add system registers to gdbstub Richard Henderson
` (18 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Linux sets sr4-sr7 all to the same value, which means that we
need not do any runtime computation to find out what space to
use in forming the GVA.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 11 ++++++++++-
target/hppa/translate.c | 29 ++++++++++++++++++++---------
2 files changed, 30 insertions(+), 10 deletions(-)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index a6e4091b6a..57e0bd6f0e 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -282,7 +282,11 @@ static inline target_ulong hppa_form_gva(CPUHPPAState *env, uint64_t spc,
return hppa_form_gva_psw(env->psw, spc, off);
}
-/* Since PSW_CB will never need to be in tb->flags, reuse them. */
+/* Since PSW_{I,CB} will never need to be in tb->flags, reuse them.
+ * TB_FLAG_SR_SAME indicates that SR4 through SR7 all contain the
+ * same value.
+ */
+#define TB_FLAG_SR_SAME PSW_I
#define TB_FLAG_PRIV_SHIFT 8
static inline void cpu_get_tb_cpu_state(CPUHPPAState *env, target_ulong *pc,
@@ -318,6 +322,11 @@ static inline void cpu_get_tb_cpu_state(CPUHPPAState *env, target_ulong *pc,
*cs_base |= (uint32_t)diff;
}
}
+ if ((env->sr[4] == env->sr[5])
+ & (env->sr[4] == env->sr[6])
+ & (env->sr[4] == env->sr[7])) {
+ flags |= TB_FLAG_SR_SAME;
+ }
#endif
*pflags = flags;
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index de96765664..e4a140b9a6 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -280,6 +280,7 @@ typedef struct DisasContext {
TCGLabel *null_lab;
uint32_t insn;
+ uint32_t tb_flags;
int mmu_idx;
int privilege;
bool psw_n_nonzero;
@@ -319,6 +320,7 @@ typedef struct DisasInsn {
/* global register indexes */
static TCGv_reg cpu_gr[32];
static TCGv_i64 cpu_sr[4];
+static TCGv_i64 cpu_srH;
static TCGv_reg cpu_iaoq_f;
static TCGv_reg cpu_iaoq_b;
static TCGv_i64 cpu_iasq_f;
@@ -356,8 +358,8 @@ void hppa_translate_init(void)
"r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31"
};
/* SR[4-7] are not global registers so that we can index them. */
- static const char sr_names[4][4] = {
- "sr0", "sr1", "sr2", "sr3"
+ static const char sr_names[5][4] = {
+ "sr0", "sr1", "sr2", "sr3", "srH"
};
int i;
@@ -373,6 +375,9 @@ void hppa_translate_init(void)
offsetof(CPUHPPAState, sr[i]),
sr_names[i]);
}
+ cpu_srH = tcg_global_mem_new_i64(cpu_env,
+ offsetof(CPUHPPAState, sr[4]),
+ sr_names[4]);
for (i = 0; i < ARRAY_SIZE(vars); ++i) {
const GlobalVar *v = &vars[i];
@@ -600,6 +605,8 @@ static void load_spr(DisasContext *ctx, TCGv_i64 dest, unsigned reg)
#else
if (reg < 4) {
tcg_gen_mov_i64(dest, cpu_sr[reg]);
+ } else if (ctx->tb_flags & TB_FLAG_SR_SAME) {
+ tcg_gen_mov_i64(dest, cpu_srH);
} else {
tcg_gen_ld_i64(dest, cpu_env, offsetof(CPUHPPAState, sr[reg]));
}
@@ -1351,6 +1358,9 @@ static TCGv_i64 space_select(DisasContext *ctx, int sp, TCGv_reg base)
load_spr(ctx, spc, sp);
return spc;
}
+ if (ctx->tb_flags & TB_FLAG_SR_SAME) {
+ return cpu_srH;
+ }
ptr = tcg_temp_new_ptr();
tmp = tcg_temp_new();
@@ -1394,7 +1404,7 @@ static void form_gva(DisasContext *ctx, TCGv_tl *pgva, TCGv_reg *pofs,
#else
TCGv_tl addr = get_temp_tl(ctx);
tcg_gen_extu_reg_tl(addr, modify <= 0 ? ofs : base);
- if (ctx->base.tb->flags & PSW_W) {
+ if (ctx->tb_flags & PSW_W) {
tcg_gen_andi_tl(addr, addr, 0x3fffffffffffffffull);
}
if (!is_phys) {
@@ -2101,6 +2111,7 @@ static DisasJumpType trans_mtsp(DisasContext *ctx, uint32_t insn,
if (rs >= 4) {
tcg_gen_st_i64(t64, cpu_env, offsetof(CPUHPPAState, sr[rs]));
+ ctx->tb_flags &= ~TB_FLAG_SR_SAME;
} else {
tcg_gen_mov_i64(cpu_sr[rs], t64);
}
@@ -2396,7 +2407,7 @@ static DisasJumpType trans_ixtlbx(DisasContext *ctx, uint32_t insn,
/* Exit TB for ITLB change if mmu is enabled. This *should* not be
the case, since the OS TLB fill handler runs with mmu disabled. */
- return nullify_end(ctx, !is_data && (ctx->base.tb->flags & PSW_C)
+ return nullify_end(ctx, !is_data && (ctx->tb_flags & PSW_C)
? DISAS_IAQ_N_STALE : DISAS_NEXT);
}
@@ -2432,7 +2443,7 @@ static DisasJumpType trans_pxtlbx(DisasContext *ctx, uint32_t insn,
}
/* Exit TB for TLB change if mmu is enabled. */
- return nullify_end(ctx, !is_data && (ctx->base.tb->flags & PSW_C)
+ return nullify_end(ctx, !is_data && (ctx->tb_flags & PSW_C)
? DISAS_IAQ_N_STALE : DISAS_NEXT);
}
@@ -4545,6 +4556,7 @@ static int hppa_tr_init_disas_context(DisasContextBase *dcbase,
int bound;
ctx->cs = cs;
+ ctx->tb_flags = ctx->base.tb->flags;
#ifdef CONFIG_USER_ONLY
ctx->privilege = MMU_USER_IDX;
@@ -4552,9 +4564,8 @@ static int hppa_tr_init_disas_context(DisasContextBase *dcbase,
ctx->iaoq_f = ctx->base.pc_first;
ctx->iaoq_b = ctx->base.tb->cs_base;
#else
- ctx->privilege = (ctx->base.tb->flags >> TB_FLAG_PRIV_SHIFT) & 3;
- ctx->mmu_idx = (ctx->base.tb->flags & PSW_D
- ? ctx->privilege : MMU_PHYS_IDX);
+ ctx->privilege = (ctx->tb_flags >> TB_FLAG_PRIV_SHIFT) & 3;
+ ctx->mmu_idx = (ctx->tb_flags & PSW_D ? ctx->privilege : MMU_PHYS_IDX);
/* Recover the IAOQ values from the GVA + PRIV. */
uint64_t cs_base = ctx->base.tb->cs_base;
@@ -4586,7 +4597,7 @@ static void hppa_tr_tb_start(DisasContextBase *dcbase, CPUState *cs)
/* Seed the nullification status from PSW[N], as saved in TB->FLAGS. */
ctx->null_cond = cond_make_f();
ctx->psw_n_nonzero = false;
- if (ctx->base.tb->flags & PSW_N) {
+ if (ctx->tb_flags & PSW_N) {
ctx->null_cond.c = TCG_COND_ALWAYS;
ctx->psw_n_nonzero = true;
}
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 29/43] target/hppa: Add system registers to gdbstub
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (27 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 28/43] target/hppa: Optimize for flat addressing space Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 30/43] target/hppa: Add migration for the cpu Richard Henderson
` (17 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/gdbstub.c | 156 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 156 insertions(+)
diff --git a/target/hppa/gdbstub.c b/target/hppa/gdbstub.c
index fc27aec073..e2e9c4d77f 100644
--- a/target/hppa/gdbstub.c
+++ b/target/hppa/gdbstub.c
@@ -41,15 +41,93 @@ int hppa_cpu_gdb_read_register(CPUState *cs, uint8_t *mem_buf, int n)
case 33:
val = env->iaoq_f;
break;
+ case 34:
+ val = env->iasq_f >> 32;
+ break;
case 35:
val = env->iaoq_b;
break;
+ case 36:
+ val = env->iasq_b >> 32;
+ break;
+ case 37:
+ val = env->cr[CR_EIEM];
+ break;
+ case 38:
+ val = env->cr[CR_IIR];
+ break;
+ case 39:
+ val = env->cr[CR_ISR];
+ break;
+ case 40:
+ val = env->cr[CR_IOR];
+ break;
+ case 41:
+ val = env->cr[CR_IPSW];
+ break;
+ case 43:
+ val = env->sr[4] >> 32;
+ break;
+ case 44:
+ val = env->sr[0] >> 32;
+ break;
+ case 45:
+ val = env->sr[1] >> 32;
+ break;
+ case 46:
+ val = env->sr[2] >> 32;
+ break;
+ case 47:
+ val = env->sr[3] >> 32;
+ break;
+ case 48:
+ val = env->sr[5] >> 32;
+ break;
+ case 49:
+ val = env->sr[6] >> 32;
+ break;
+ case 50:
+ val = env->sr[7] >> 32;
+ break;
+ case 51:
+ val = env->cr[CR_RC];
+ break;
+ case 52:
+ val = env->cr[8];
+ break;
+ case 53:
+ val = env->cr[9];
+ break;
+ case 54:
+ val = env->cr[CR_SCRCCR];
+ break;
+ case 55:
+ val = env->cr[12];
+ break;
+ case 56:
+ val = env->cr[13];
+ break;
+ case 57:
+ val = env->cr[24];
+ break;
+ case 58:
+ val = env->cr[25];
+ break;
case 59:
val = env->cr[26];
break;
case 60:
val = env->cr[27];
break;
+ case 61:
+ val = env->cr[28];
+ break;
+ case 62:
+ val = env->cr[29];
+ break;
+ case 63:
+ val = env->cr[30];
+ break;
case 64 ... 127:
val = extract64(env->fr[(n - 64) / 2], (n & 1 ? 0 : 32), 32);
break;
@@ -94,15 +172,93 @@ int hppa_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
case 33:
env->iaoq_f = val;
break;
+ case 34:
+ env->iasq_f = (uint64_t)val << 32;
+ break;
case 35:
env->iaoq_b = val;
break;
+ case 36:
+ env->iasq_b = (uint64_t)val << 32;
+ break;
+ case 37:
+ env->cr[CR_EIEM] = val;
+ break;
+ case 38:
+ env->cr[CR_IIR] = val;
+ break;
+ case 39:
+ env->cr[CR_ISR] = val;
+ break;
+ case 40:
+ env->cr[CR_IOR] = val;
+ break;
+ case 41:
+ env->cr[CR_IPSW] = val;
+ break;
+ case 43:
+ env->sr[4] = (uint64_t)val << 32;
+ break;
+ case 44:
+ env->sr[0] = (uint64_t)val << 32;
+ break;
+ case 45:
+ env->sr[1] = (uint64_t)val << 32;
+ break;
+ case 46:
+ env->sr[2] = (uint64_t)val << 32;
+ break;
+ case 47:
+ env->sr[3] = (uint64_t)val << 32;
+ break;
+ case 48:
+ env->sr[5] = (uint64_t)val << 32;
+ break;
+ case 49:
+ env->sr[6] = (uint64_t)val << 32;
+ break;
+ case 50:
+ env->sr[7] = (uint64_t)val << 32;
+ break;
+ case 51:
+ env->cr[CR_RC] = val;
+ break;
+ case 52:
+ env->cr[8] = val;
+ break;
+ case 53:
+ env->cr[9] = val;
+ break;
+ case 54:
+ env->cr[CR_SCRCCR] = val;
+ break;
+ case 55:
+ env->cr[12] = val;
+ break;
+ case 56:
+ env->cr[13] = val;
+ break;
+ case 57:
+ env->cr[24] = val;
+ break;
+ case 58:
+ env->cr[25] = val;
+ break;
case 59:
env->cr[26] = val;
break;
case 60:
env->cr[27] = val;
break;
+ case 61:
+ env->cr[28] = val;
+ break;
+ case 62:
+ env->cr[29] = val;
+ break;
+ case 63:
+ env->cr[30] = val;
+ break;
case 64:
env->fr[0] = deposit64(env->fr[0], 32, 32, val);
cpu_hppa_loaded_fr0(env);
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 30/43] target/hppa: Add migration for the cpu
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (28 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 29/43] target/hppa: Add system registers to gdbstub Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 31/43] target/hppa: Implement B,GATE insn Richard Henderson
` (16 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 1 +
target/hppa/cpu.c | 1 +
target/hppa/machine.c | 181 ++++++++++++++++++++++++++++++++++++++++++++++
target/hppa/Makefile.objs | 1 +
4 files changed, 184 insertions(+)
create mode 100644 target/hppa/machine.c
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index 57e0bd6f0e..8a87b8a9b3 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -351,6 +351,7 @@ int hppa_cpu_handle_mmu_fault(CPUState *cpu, vaddr address, int rw, int midx);
int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
MMUAccessType type, hwaddr *pphys, int *pprot);
extern const MemoryRegionOps hppa_io_eir_ops;
+extern const struct VMStateDescription vmstate_hppa_cpu;
void hppa_cpu_alarm_timer(void *);
#endif
void QEMU_NORETURN hppa_dynamic_excp(CPUHPPAState *env, int excp, uintptr_t ra);
diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
index 86f5cb0bfe..0e2d12603e 100644
--- a/target/hppa/cpu.c
+++ b/target/hppa/cpu.c
@@ -182,6 +182,7 @@ static void hppa_cpu_class_init(ObjectClass *oc, void *data)
cc->handle_mmu_fault = hppa_cpu_handle_mmu_fault;
#else
cc->get_phys_page_debug = hppa_cpu_get_phys_page_debug;
+ dc->vmsd = &vmstate_hppa_cpu;
#endif
cc->do_unaligned_access = hppa_cpu_do_unaligned_access;
cc->disas_set_info = hppa_cpu_disas_set_info;
diff --git a/target/hppa/machine.c b/target/hppa/machine.c
new file mode 100644
index 0000000000..31312b561c
--- /dev/null
+++ b/target/hppa/machine.c
@@ -0,0 +1,181 @@
+/*
+ * HPPA interrupt helper routines
+ *
+ * Copyright (c) 2017 Richard Henderson
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "qemu/osdep.h"
+#include "qemu-common.h"
+#include "cpu.h"
+#include "hw/hw.h"
+#include "hw/boards.h"
+#include "migration/cpu.h"
+
+#if TARGET_REGISTER_BITS == 64
+#define qemu_put_betr qemu_put_be64
+#define qemu_get_betr qemu_get_be64
+#define VMSTATE_UINTTL_V(_f, _s, _v) \
+ VMSTATE_UINT64_V(_f, _s, _v)
+#define VMSTATE_UINTTL_ARRAY_V(_f, _s, _n, _v) \
+ VMSTATE_UINT64_ARRAY_V(_f, _s, _n, _v)
+#else
+#define qemu_put_betr qemu_put_be32
+#define qemu_get_betr qemu_get_be32
+#define VMSTATE_UINTTR_V(_f, _s, _v) \
+ VMSTATE_UINT32_V(_f, _s, _v)
+#define VMSTATE_UINTTR_ARRAY_V(_f, _s, _n, _v) \
+ VMSTATE_UINT32_ARRAY_V(_f, _s, _n, _v)
+#endif
+
+#define VMSTATE_UINTTR(_f, _s) \
+ VMSTATE_UINTTR_V(_f, _s, 0)
+#define VMSTATE_UINTTR_ARRAY(_f, _s, _n) \
+ VMSTATE_UINTTR_ARRAY_V(_f, _s, _n, 0)
+
+
+static int get_psw(QEMUFile *f, void *opaque, size_t size, VMStateField *field)
+{
+ CPUHPPAState *env = opaque;
+ cpu_hppa_put_psw(env, qemu_get_betr(f));
+ return 0;
+}
+
+static int put_psw(QEMUFile *f, void *opaque, size_t size,
+ VMStateField *field, QJSON *vmdesc)
+{
+ CPUHPPAState *env = opaque;
+ qemu_put_betr(f, cpu_hppa_get_psw(env));
+ return 0;
+}
+
+static const VMStateInfo vmstate_psw = {
+ .name = "psw",
+ .get = get_psw,
+ .put = put_psw,
+};
+
+/* FIXME: Use the PA2.0 format, which is a superset of the PA1.1 format. */
+static int get_tlb(QEMUFile *f, void *opaque, size_t size, VMStateField *field)
+{
+ hppa_tlb_entry *ent = opaque;
+ uint32_t val;
+
+ memset(ent, 0, sizeof(*ent));
+
+ ent->va_b = qemu_get_be64(f);
+ ent->pa = qemu_get_betr(f);
+ val = qemu_get_be32(f);
+
+ ent->entry_valid = extract32(val, 0, 1);
+ ent->access_id = extract32(val, 1, 18);
+ ent->u = extract32(val, 19, 1);
+ ent->ar_pl2 = extract32(val, 20, 2);
+ ent->ar_pl1 = extract32(val, 22, 2);
+ ent->ar_type = extract32(val, 24, 3);
+ ent->b = extract32(val, 27, 1);
+ ent->d = extract32(val, 28, 1);
+ ent->t = extract32(val, 29, 1);
+
+ ent->va_e = ent->va_b + TARGET_PAGE_SIZE - 1;
+ return 0;
+}
+
+static int put_tlb(QEMUFile *f, void *opaque, size_t size,
+ VMStateField *field, QJSON *vmdesc)
+{
+ hppa_tlb_entry *ent = opaque;
+ uint32_t val = 0;
+
+ if (ent->entry_valid) {
+ val = 1;
+ val = deposit32(val, 1, 18, ent->access_id);
+ val = deposit32(val, 19, 1, ent->u);
+ val = deposit32(val, 20, 2, ent->ar_pl2);
+ val = deposit32(val, 22, 2, ent->ar_pl1);
+ val = deposit32(val, 24, 3, ent->ar_type);
+ val = deposit32(val, 27, 1, ent->b);
+ val = deposit32(val, 28, 1, ent->d);
+ val = deposit32(val, 29, 1, ent->t);
+ }
+
+ qemu_put_be64(f, ent->va_b);
+ qemu_put_betr(f, ent->pa);
+ qemu_put_be32(f, val);
+ return 0;
+}
+
+static const VMStateInfo vmstate_tlb = {
+ .name = "tlb entry",
+ .get = get_tlb,
+ .put = put_tlb,
+};
+
+static VMStateField vmstate_env_fields[] = {
+ VMSTATE_UINTTR_ARRAY(gr, CPUHPPAState, 32),
+ VMSTATE_UINT64_ARRAY(fr, CPUHPPAState, 32),
+ VMSTATE_UINT64_ARRAY(sr, CPUHPPAState, 8),
+ VMSTATE_UINTTR_ARRAY(cr, CPUHPPAState, 32),
+ VMSTATE_UINTTR_ARRAY(cr_back, CPUHPPAState, 2),
+ VMSTATE_UINTTR_ARRAY(shadow, CPUHPPAState, 7),
+
+ /* Save the architecture value of the psw, not the internally
+ expanded version. Since this architecture value does not
+ exist in memory to be stored, this requires a but of hoop
+ jumping. We want OFFSET=0 so that we effectively pass ENV
+ to the helper functions, and we need to fill in the name by
+ hand since there's no field of that name. */
+ {
+ .name = "psw",
+ .version_id = 0,
+ .size = sizeof(uint64_t),
+ .info = &vmstate_psw,
+ .flags = VMS_SINGLE,
+ .offset = 0
+ },
+
+ VMSTATE_UINTTR(iaoq_f, CPUHPPAState),
+ VMSTATE_UINTTR(iaoq_b, CPUHPPAState),
+ VMSTATE_UINT64(iasq_f, CPUHPPAState),
+ VMSTATE_UINT64(iasq_b, CPUHPPAState),
+
+ VMSTATE_UINT32(fr0_shadow, CPUHPPAState),
+
+ VMSTATE_ARRAY(tlb, CPUHPPAState, ARRAY_SIZE(((CPUHPPAState*)0)->tlb), 0,
+ vmstate_tlb, hppa_tlb_entry),
+ VMSTATE_UINT32(tlb_last, CPUHPPAState),
+
+ VMSTATE_END_OF_LIST()
+};
+
+static const VMStateDescription vmstate_env = {
+ .name = "env",
+ .version_id = 1,
+ .minimum_version_id = 1,
+ .fields = vmstate_env_fields,
+};
+
+static VMStateField vmstate_cpu_fields[] = {
+ VMSTATE_CPU(),
+ VMSTATE_STRUCT(env, HPPACPU, 1, vmstate_env, CPUHPPAState),
+ VMSTATE_END_OF_LIST()
+};
+
+const VMStateDescription vmstate_hppa_cpu = {
+ .name = "cpu",
+ .version_id = 1,
+ .minimum_version_id = 1,
+ .fields = vmstate_cpu_fields,
+};
diff --git a/target/hppa/Makefile.objs b/target/hppa/Makefile.objs
index dcd60a6839..3359da5341 100644
--- a/target/hppa/Makefile.objs
+++ b/target/hppa/Makefile.objs
@@ -1,2 +1,3 @@
obj-y += translate.o helper.o cpu.o op_helper.o gdbstub.o mem_helper.o
obj-y += int_helper.o
+obj-$(CONFIG_SOFTMMU) += machine.o
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 31/43] target/hppa: Implement B,GATE insn
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (29 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 30/43] target/hppa: Add migration for the cpu Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 32/43] target/hppa: Only use EXCP_DTLB_MISS Richard Henderson
` (15 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 1 +
target/hppa/mem_helper.c | 8 ++++++++
target/hppa/translate.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 57 insertions(+)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index 8a87b8a9b3..79763b254c 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -353,6 +353,7 @@ int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
extern const MemoryRegionOps hppa_io_eir_ops;
extern const struct VMStateDescription vmstate_hppa_cpu;
void hppa_cpu_alarm_timer(void *);
+int hppa_artype_for_page(CPUHPPAState *env, target_ulong vaddr);
#endif
void QEMU_NORETURN hppa_dynamic_excp(CPUHPPAState *env, int excp, uintptr_t ra);
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
index 9d93894019..e2f94faab5 100644
--- a/target/hppa/mem_helper.c
+++ b/target/hppa/mem_helper.c
@@ -123,6 +123,7 @@ int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
break;
default: /* execute: promote to privilege level type & 3 */
prot = x_prot;
+ break;
}
/* ??? Check PSW_P and ent->access_prot. This can remove PROT_WRITE. */
@@ -318,4 +319,11 @@ target_ureg HELPER(lpa)(CPUHPPAState *env, target_ulong addr)
}
return phys;
}
+
+/* Return the ar_type of the TLB at VADDR, or -1. */
+int hppa_artype_for_page(CPUHPPAState *env, target_ulong vaddr)
+{
+ hppa_tlb_entry *ent = hppa_find_tlb(env, vaddr);
+ return ent ? ent->ar_type : -1;
+}
#endif /* CONFIG_USER_ONLY */
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index e4a140b9a6..c064c9d17b 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -3771,6 +3771,53 @@ static DisasJumpType trans_bl(DisasContext *ctx, uint32_t insn,
return do_dbranch(ctx, iaoq_dest(ctx, disp), link, n);
}
+static DisasJumpType trans_b_gate(DisasContext *ctx, uint32_t insn,
+ const DisasInsn *di)
+{
+ unsigned n = extract32(insn, 1, 1);
+ unsigned link = extract32(insn, 21, 5);
+ target_sreg disp = assemble_17(insn);
+ target_ureg dest = iaoq_dest(ctx, disp);
+
+ /* Make sure the caller hasn't done something weird with the queue.
+ * ??? This is not quite the same as the PSW[B] bit, which would be
+ * expensive to track. Real hardware will trap for
+ * b gateway
+ * b gateway+4 (in delay slot of first branch)
+ * However, checking for a non-sequential instruction queue *will*
+ * diagnose the security hole
+ * b gateway
+ * b evil
+ * in which instructions at evil would run with increased privs.
+ */
+ if (ctx->iaoq_b == -1 || ctx->iaoq_b != ctx->iaoq_f + 4) {
+ return gen_illegal(ctx);
+ }
+
+#ifndef CONFIG_USER_ONLY
+ if (ctx->tb_flags & PSW_C) {
+ CPUHPPAState *env = ctx->cs->env_ptr;
+ int type = hppa_artype_for_page(env, ctx->base.pc_next);
+ /* If we could not find a TLB entry, then we need to generate an
+ ITLB miss exception so the kernel will provide it.
+ The resulting TLB fill operation will invalidate this TB and
+ we will re-translate, at which point we *will* be able to find
+ the TLB entry and determine if this is in fact a gateway page. */
+ if (type < 0) {
+ return gen_excp(ctx, EXCP_ITLB_MISS);
+ }
+ /* No change for non-gateway pages or for priv decrease. */
+ if (type >= 4 && type - 4 < ctx->privilege) {
+ dest = deposit32(dest, 0, 2, type - 4);
+ }
+ } else {
+ dest &= -4; /* priv = 0 */
+ }
+#endif
+
+ return do_dbranch(ctx, dest, link, n);
+}
+
static DisasJumpType trans_bl_long(DisasContext *ctx, uint32_t insn,
const DisasInsn *di)
{
@@ -3849,6 +3896,7 @@ static const DisasInsn table_branch[] = {
{ 0xe8004000u, 0xfc00fffdu, trans_blr },
{ 0xe800c000u, 0xfc00fffdu, trans_bv },
{ 0xe800d000u, 0xfc00dffcu, trans_bve },
+ { 0xe8002000u, 0xfc00e000u, trans_b_gate },
};
static DisasJumpType trans_fop_wew_0c(DisasContext *ctx, uint32_t insn,
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 32/43] target/hppa: Only use EXCP_DTLB_MISS
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (30 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 31/43] target/hppa: Implement B,GATE insn Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 33/43] qom: Add MMU_DEBUG_LOAD Richard Henderson
` (14 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Unknown why this works, but if we return EXCP_ITLB_MISS we
will triple-fault the first userland instruction fetch.
Is it something to do with having a combined I/DTLB?
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/mem_helper.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
index e2f94faab5..a0a385cb54 100644
--- a/target/hppa/mem_helper.c
+++ b/target/hppa/mem_helper.c
@@ -97,7 +97,9 @@ int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
if (ent == NULL || !ent->entry_valid) {
phys = 0;
prot = 0;
- ret = (ifetch ? EXCP_ITLB_MISS : EXCP_DTLB_MISS);
+ /* ??? Unconditionally report data tlb miss,
+ even if this is an instruction fetch. */
+ ret = EXCP_DTLB_MISS;
goto egress;
}
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 33/43] qom: Add MMU_DEBUG_LOAD
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (31 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 32/43] target/hppa: Only use EXCP_DTLB_MISS Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 34/43] target/hppa: Use MMU_DEBUG_LOAD when reloading for CR[IIR] Richard Henderson
` (13 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Andreas Färber
This lets us tell bottom levels of virtual memory translation
routines that the access is from within QEMU itself and bypass
certain tests.
Cc: Andreas Färber <afaerber@suse.de>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
include/qom/cpu.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/include/qom/cpu.h b/include/qom/cpu.h
index 93bd546879..6367acca97 100644
--- a/include/qom/cpu.h
+++ b/include/qom/cpu.h
@@ -64,7 +64,8 @@ typedef uint64_t vaddr;
typedef enum MMUAccessType {
MMU_DATA_LOAD = 0,
MMU_DATA_STORE = 1,
- MMU_INST_FETCH = 2
+ MMU_INST_FETCH = 2,
+ MMU_DEBUG_LOAD = 3
} MMUAccessType;
typedef struct CPUWatchpoint CPUWatchpoint;
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 34/43] target/hppa: Use MMU_DEBUG_LOAD when reloading for CR[IIR]
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (32 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 33/43] qom: Add MMU_DEBUG_LOAD Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 35/43] target/hppa: Increase number of temp regs Richard Henderson
` (12 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Bypass any tlb protection checks, as this is not a "real"
access to memory per the architecture.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/int_helper.c | 2 +-
target/hppa/mem_helper.c | 19 ++++++++++++++-----
2 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/target/hppa/int_helper.c b/target/hppa/int_helper.c
index ee72769544..e831944b8d 100644
--- a/target/hppa/int_helper.c
+++ b/target/hppa/int_helper.c
@@ -154,7 +154,7 @@ void hppa_cpu_do_interrupt(CPUState *cs)
int prot, t;
vaddr = hppa_form_gva_psw(old_psw, iasq_f, iaoq_f & -4);
- t = hppa_get_physical_address(env, vaddr, 0, MMU_INST_FETCH,
+ t = hppa_get_physical_address(env, vaddr, 0, MMU_DEBUG_LOAD,
&paddr, &prot);
if (t >= 0) {
/* We can't re-load the instruction. */
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
index a0a385cb54..4bdc4d77e5 100644
--- a/target/hppa/mem_helper.c
+++ b/target/hppa/mem_helper.c
@@ -131,12 +131,21 @@ int hppa_get_physical_address(CPUHPPAState *env, vaddr addr, int mmu_idx,
/* ??? Check PSW_P and ent->access_prot. This can remove PROT_WRITE. */
/* Map MMUAccessType to QEMU protection. */
- if (ifetch) {
- a_prot = PROT_EXEC;
- } else if (type == MMU_DATA_STORE) {
- a_prot = PROT_WRITE;
- } else {
+ switch (type) {
+ case MMU_DATA_LOAD:
a_prot = PROT_READ;
+ break;
+ case MMU_DATA_STORE:
+ a_prot = PROT_WRITE;
+ break;
+ case MMU_INST_FETCH:
+ a_prot = PROT_EXEC;
+ break;
+ case MMU_DEBUG_LOAD:
+ ret = -1;
+ goto egress;
+ default:
+ g_assert_not_reached();
}
if (unlikely(!(prot & a_prot))) {
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 35/43] target/hppa: Increase number of temp regs
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (33 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 34/43] target/hppa: Use MMU_DEBUG_LOAD when reloading for CR[IIR] Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 36/43] target/hppa: Fix comment Richard Henderson
` (11 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
HP-UX 10.20 CD contains "add r0, r0, r27" in a delay slot,
which uses at least 5 temps.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/translate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index c064c9d17b..6cf4e37062 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -273,7 +273,7 @@ typedef struct DisasContext {
TCGv_reg iaoq_n_var;
int ntempr, ntempl;
- TCGv_reg tempr[4];
+ TCGv_reg tempr[8];
TCGv_tl templ[4];
DisasCond null_cond;
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 36/43] target/hppa: Fix comment
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (34 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 35/43] target/hppa: Increase number of temp regs Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 37/43] target/hppa: Implement LDSID for system mode Richard Henderson
` (10 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Helge Deller
From: Helge Deller <deller@gmx.de>
Signed-off-by: Helge Deller <deller@gmx.de>
Message-Id: <20171212212319.GA31494@ls3530.fritz.box>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/translate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 6cf4e37062..965641f380 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -3182,7 +3182,7 @@ static DisasJumpType trans_store_w(DisasContext *ctx, uint32_t insn)
/* FSTW without modification. */
return do_fstorew(ctx, ext2 * 32 + rt, rb, 0, 0, i, sp, 0);
case 2:
- /* LDW with modification. */
+ /* STW with modification. */
return do_store(ctx, rt, rb, i, sp, (i < 0 ? 1 : -1), MO_TEUL);
default:
return gen_illegal(ctx);
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 37/43] target/hppa: Implement LDSID for system mode
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (35 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 36/43] target/hppa: Fix comment Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 38/43] target/hppa: Implement a pause instruction Richard Henderson
` (9 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Helge Deller
From: Helge Deller <deller@gmx.de>
Signed-off-by: Helge Deller <deller@gmx.de>
Message-Id: <20180102203145.GA17059@ls3530.fritz.box>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/translate.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 965641f380..76ed7e1ad4 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -2200,8 +2200,20 @@ static DisasJumpType trans_ldsid(DisasContext *ctx, uint32_t insn,
unsigned rt = extract32(insn, 0, 5);
TCGv_reg dest = dest_gpr(ctx, rt);
- /* Since we don't implement space registers, this returns zero. */
+#ifdef CONFIG_USER_ONLY
+ /* We don't implement space registers in user mode. */
tcg_gen_movi_reg(dest, 0);
+#else
+ unsigned rb = extract32(insn, 21, 5);
+ unsigned sp = extract32(insn, 14, 2);
+ TCGv_i64 t0 = tcg_temp_new_i64();
+
+ tcg_gen_mov_i64(t0, space_select(ctx, sp, load_gpr(ctx, rb)));
+ tcg_gen_shri_i64(t0, t0, 32);
+ tcg_gen_trunc_i64_reg(dest, t0);
+
+ tcg_temp_free_i64(t0);
+#endif
save_gpr(ctx, rt, dest);
cond_free(&ctx->null_cond);
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 38/43] target/hppa: Implement a pause instruction
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (36 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 37/43] target/hppa: Implement LDSID for system mode Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 39/43] target/hppa: Implement STWA Richard Henderson
` (8 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
This is an extension to the base ISA, but we can use this in
the kernel idle loop to reduce the host cpu time consumed.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/translate.c | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 76ed7e1ad4..8884754f05 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -2815,9 +2815,45 @@ static DisasJumpType trans_ds(DisasContext *ctx, uint32_t insn,
return nullify_end(ctx, DISAS_NEXT);
}
+#ifndef CONFIG_USER_ONLY
+/* These are QEMU extensions and are nops in the real architecture:
+ *
+ * or %r10,%r10,%r10 -- idle loop; wait for interrupt
+ * or %r31,%r31,%r31 -- death loop; offline cpu
+ * currently implemented as idle.
+ */
+static DisasJumpType trans_pause(DisasContext *ctx, uint32_t insn,
+ const DisasInsn *di)
+{
+ TCGv_i32 tmp;
+
+ /* No need to check for supervisor, as userland can only pause
+ until the next timer interrupt. */
+ nullify_over(ctx);
+
+ /* Advance the instruction queue. */
+ copy_iaoq_entry(cpu_iaoq_f, ctx->iaoq_b, cpu_iaoq_b);
+ copy_iaoq_entry(cpu_iaoq_b, ctx->iaoq_n, ctx->iaoq_n_var);
+ nullify_set(ctx, 0);
+
+ /* Tell the qemu main loop to halt until this cpu has work. */
+ tmp = tcg_const_i32(1);
+ tcg_gen_st_i32(tmp, cpu_env, -offsetof(HPPACPU, env) +
+ offsetof(CPUState, halted));
+ tcg_temp_free_i32(tmp);
+ gen_excp_1(EXCP_HALTED);
+
+ return nullify_end(ctx, DISAS_NORETURN);
+}
+#endif
+
static const DisasInsn table_arith_log[] = {
{ 0x08000240u, 0xfc00ffffu, trans_nop }, /* or x,y,0 */
{ 0x08000240u, 0xffe0ffe0u, trans_copy }, /* or x,0,t */
+#ifndef CONFIG_USER_ONLY
+ { 0x094a024au, 0xffffffffu, trans_pause }, /* or r10,r10,r10 */
+ { 0x0bff025fu, 0xffffffffu, trans_pause }, /* or r31,r31,r31 */
+#endif
{ 0x08000000u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_andc_reg },
{ 0x08000200u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_and_reg },
{ 0x08000240u, 0xfc000fe0u, trans_log, .f.ttt = tcg_gen_or_reg },
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 39/43] target/hppa: Implement STWA
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (37 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 38/43] target/hppa: Implement a pause instruction Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 40/43] target/hppa: Enable MTTCG Richard Henderson
` (7 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/translate.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index 8884754f05..74f78ab4e0 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -3097,6 +3097,22 @@ static DisasJumpType trans_ldwa_idx_x(DisasContext *ctx, uint32_t insn,
ctx->mmu_idx = hold_mmu_idx;
return ret;
}
+
+static DisasJumpType trans_stwa_idx_i(DisasContext *ctx, uint32_t insn,
+ const DisasInsn *di)
+{
+ int hold_mmu_idx = ctx->mmu_idx;
+ DisasJumpType ret;
+
+ CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR);
+
+ /* ??? needs fixing for hppa64 -- ldda does not follow the same
+ format wrt the sub-opcode in bits 6:9. */
+ ctx->mmu_idx = MMU_PHYS_IDX;
+ ret = trans_st_idx_i(ctx, insn, di);
+ ctx->mmu_idx = hold_mmu_idx;
+ return ret;
+}
#endif
static const DisasInsn table_index_mem[] = {
@@ -3106,8 +3122,9 @@ static const DisasInsn table_index_mem[] = {
{ 0x0c0001c0u, 0xfc0003c0, trans_ldcw },
{ 0x0c001300u, 0xfc0013c0, trans_stby },
#ifndef CONFIG_USER_ONLY
- { 0x0c001180u, 0xfc00d3c0, trans_ldwa_idx_i }, /* LDWA, im */
{ 0x0c000180u, 0xfc00d3c0, trans_ldwa_idx_x }, /* LDWA, rx */
+ { 0x0c001180u, 0xfc00d3c0, trans_ldwa_idx_i }, /* LDWA, im */
+ { 0x0c001380u, 0xfc00d3c0, trans_stwa_idx_i }, /* STWA, im */
#endif
};
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 40/43] target/hppa: Enable MTTCG
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (38 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 39/43] target/hppa: Implement STWA Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 41/43] hw/hppa: Implement DINO system board Richard Henderson
` (6 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/hppa/cpu.h | 6 ++++++
configure | 1 +
2 files changed, 7 insertions(+)
diff --git a/target/hppa/cpu.h b/target/hppa/cpu.h
index 79763b254c..3df3ebd19d 100644
--- a/target/hppa/cpu.h
+++ b/target/hppa/cpu.h
@@ -42,6 +42,12 @@
#define TARGET_PHYS_ADDR_SPACE_BITS 32
#endif
+/* PA-RISC 1.x processors have a strong memory model. */
+/* ??? While we do not yet implement PA-RISC 2.0, those processors have
+ a weak memory model, but with TLB bits that force ordering on a per-page
+ basis. It's probably easier to fall back to a strong memory model. */
+#define TCG_GUEST_DEFAULT_MO TCG_MO_ALL
+
#define CPUArchState struct CPUHPPAState
#include "exec/cpu-defs.h"
diff --git a/configure b/configure
index 6d8c996c62..420d50a47d 100755
--- a/configure
+++ b/configure
@@ -6522,6 +6522,7 @@ case "$target_name" in
cris)
;;
hppa)
+ mttcg="yes"
;;
lm32)
;;
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 41/43] hw/hppa: Implement DINO system board
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (39 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 40/43] target/hppa: Enable MTTCG Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 42/43] pc-bios: Add hppa-firmware.img and git submodule Richard Henderson
` (5 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell, Helge Deller
From: Helge Deller <deller@gmx.de>
Now that we have the prerequisites in target/hppa/,
implement the hardware for a PA7100LC.
This also enables build for hppa-softmmu.
Signed-off-by: Helge Deller <deller@gmx.de>
[rth: Since it is all new code, squashed all branch development
withing hw/hppa/ to a single patch.]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
Makefile.objs | 1 +
hw/hppa/hppa_hardware.h | 65 +++++
hw/hppa/hppa_sys.h | 24 ++
hw/hppa/dino.c | 519 +++++++++++++++++++++++++++++++++++++++
hw/hppa/machine.c | 247 ++++++++++++++++++-
hw/hppa/pci.c | 90 +++++++
default-configs/hppa-softmmu.mak | 14 ++
hw/hppa/Makefile.objs | 2 +-
hw/hppa/trace-events | 4 +
9 files changed, 963 insertions(+), 3 deletions(-)
create mode 100644 hw/hppa/hppa_hardware.h
create mode 100644 hw/hppa/hppa_sys.h
create mode 100644 hw/hppa/dino.c
create mode 100644 hw/hppa/pci.c
create mode 100644 default-configs/hppa-softmmu.mak
create mode 100644 hw/hppa/trace-events
diff --git a/Makefile.objs b/Makefile.objs
index 669d8d684d..c52925133a 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -155,6 +155,7 @@ trace-events-subdirs += hw/vfio
trace-events-subdirs += hw/acpi
trace-events-subdirs += hw/arm
trace-events-subdirs += hw/alpha
+trace-events-subdirs += hw/hppa
trace-events-subdirs += hw/xen
trace-events-subdirs += hw/ide
trace-events-subdirs += ui
diff --git a/hw/hppa/hppa_hardware.h b/hw/hppa/hppa_hardware.h
new file mode 100644
index 0000000000..4ebb8a7883
--- /dev/null
+++ b/hw/hppa/hppa_hardware.h
@@ -0,0 +1,65 @@
+/* HPPA cores and system support chips. */
+
+#define FIRMWARE_START 0xf0000000
+#define FIRMWARE_END 0xf0800000
+
+#define DEVICE_HPA_LEN 0x00100000
+
+#define GSC_HPA 0xffc00000
+#define DINO_HPA 0xfff80000
+#define DINO_UART_HPA 0xfff83000
+#define DINO_UART_BASE 0xfff83800
+#define DINO_SCSI_HPA 0xfff8c000
+#define LASI_HPA 0xffd00000
+#define LASI_UART_HPA 0xffd05000
+#define LASI_SCSI_HPA 0xffd06000
+#define LASI_LAN_HPA 0xffd07000
+#define LASI_LPT_HPA 0xffd02000
+#define LASI_AUDIO_HPA 0xffd04000
+#define LASI_PS2KBD_HPA 0xffd08000
+#define LASI_PS2MOU_HPA 0xffd08100
+#define LASI_GFX_HPA 0xf8000000
+#define CPU_HPA 0xfff10000
+#define MEMORY_HPA 0xfffbf000
+
+#define PCI_HPA DINO_HPA /* PCI bus */
+#define IDE_HPA 0xf9000000 /* Boot disc controller */
+
+/* offsets to DINO HPA: */
+#define DINO_PCI_ADDR 0x064
+#define DINO_CONFIG_DATA 0x068
+#define DINO_IO_DATA 0x06c
+
+#define PORT_PCI_CMD (PCI_HPA + DINO_PCI_ADDR)
+#define PORT_PCI_DATA (PCI_HPA + DINO_CONFIG_DATA)
+
+#define PORT_SERIAL1 (DINO_UART_HPA + 0x800)
+#define PORT_SERIAL2 (LASI_UART_HPA + 0x800)
+
+#define HPPA_MAX_CPUS 32 /* max. number of SMP CPUs */
+#define CPU_CLOCK_MHZ 250 /* emulate a 250 MHz CPU */
+
+
+#if 0
+[ 2.160168] 1. Phantom PseudoBC GSC+ Port at 0xffc00000 [8] { 7, 0x0, 0x504, 0x00000 }
+[ 2.260162] 2. Dino PCI Bridge at 0xfff80000 [8/0] { 13, 0x3, 0x680, 0x0000a }
+[ 2.350158] 3. Merlin+ 132 Dino RS-232 at 0xfff83000 [8/0/63] { 10, 0x0, 0x022, 0x0008c }
+[ 2.450160] 4. Merlin 160 Core FW-SCSI at 0xfff8c000 [8/12] { 4, 0x0, 0x03d, 0x00089 }
+[ 2.550161] 5. Merlin 160 Core BA at 0xffd00000 [8/16] { 11, 0x0, 0x03d, 0x00081 }, additional addresses: 0xffd0c000 0xffc00000
+[ 2.700165] 6. Merlin 160 Core RS-232 at 0xffd05000 [8/16/4] { 10, 0x0, 0x03d, 0x0008c }
+[ 2.800160] 7. Merlin 160 Core SCSI at 0xffd06000 [8/16/5] { 10, 0x0, 0x03d, 0x00082 }
+[ 2.900162] 8. Merlin 160 Core LAN (802.3) at 0xffd07000 [8/16/6] { 10, 0x0, 0x03d, 0x0008a }
+[ 3.010187] 9. Merlin 160 Core Centronics at 0xffd02000 [8/16/0] { 10, 0x0, 0x03d, 0x00074 }, additional addresses: 0xffd01000 0xffd03000
+[ 3.170204] 10. Merlin 160 Core Audio at 0xffd04000 [8/16/1] { 10, 0x4, 0x03d, 0x0007b }
+[ 3.270157] 11. Merlin 160 Core PS/2 Port at 0xffd08000 [8/16/7] { 10, 0x0, 0x03d, 0x00084 }
+[ 3.370151] 12. Merlin 160 Core PS/2 Port at 0xffd08100 [8/16/8] { 10, 0x0, 0x03d, 0x00084 }
+[ 3.480148] 13. Coral SGC Graphics at 0xfa000000 [8/4] { 10, 0x0, 0x004, 0x00077 }
+[ 3.570145] 14. Coral SGC Graphics at 0xf4000000 [8/8] { 10, 0x0, 0x004, 0x00077 }
+[ 3.670146] 15. Gecko GSC Core Graphics at 0xf8000000 [8/24] { 10, 0x0, 0x016, 0x00085 }, additional addresses: 0xf0011000
+[ 3.810147] 16. Merlin L2 160 (9000/778/B160L) at 0xfffbe000 [62] { 0, 0x0, 0x502, 0x00004 }
+[ 3.920139] 17. Memory at 0xfffbf000 [63] { 1, 0x0, 0x067, 0x00009 }
+[ 4.000142] 18. Merlin+ 132 Dino PS/2 Port at 0xfff81000 [1] { 10, 0x0, 0x022, 0x00096 }
+[ 4.231309] CPU(s): 1 out of 1 PA7300LC (PCX-L2) at 160.000000 MHz online
+
+./hppa-softmmu/qemu-system-hppa -kernel bios.bin -nographic -serial mon:stdio
+#endif
diff --git a/hw/hppa/hppa_sys.h b/hw/hppa/hppa_sys.h
new file mode 100644
index 0000000000..a182d1f34e
--- /dev/null
+++ b/hw/hppa/hppa_sys.h
@@ -0,0 +1,24 @@
+/* HPPA cores and system support chips. */
+
+#ifndef HW_HPPA_SYS_H
+#define HW_HPPA_SYS_H
+
+#include "target/hppa/cpu-qom.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_host.h"
+#include "hw/ide.h"
+#include "hw/i386/pc.h"
+#include "hw/irq.h"
+
+#include "hw/hppa/hppa_hardware.h"
+
+PCIBus *dino_init(MemoryRegion *, qemu_irq *, qemu_irq *);
+
+#define TYPE_DINO_PCI_HOST_BRIDGE "dino-pcihost"
+
+/* hppa_pci.c. */
+extern const MemoryRegionOps hppa_pci_ignore_ops;
+extern const MemoryRegionOps hppa_pci_conf1_ops;
+extern const MemoryRegionOps hppa_pci_iack_ops;
+
+#endif
diff --git a/hw/hppa/dino.c b/hw/hppa/dino.c
new file mode 100644
index 0000000000..ad16c055c0
--- /dev/null
+++ b/hw/hppa/dino.c
@@ -0,0 +1,519 @@
+/*
+ * HP-PARISC Dino PCI chipset emulation.
+ *
+ * (C) 2017 by Helge Deller <deller@gmx.de>
+ *
+ * This work is licensed under the GNU GPL license version 2 or later.
+ *
+ * Documentation available at:
+ * https://parisc.wiki.kernel.org/images-parisc/9/91/Dino_ers.pdf
+ * https://parisc.wiki.kernel.org/images-parisc/7/70/Dino_3_1_Errata.pdf
+ */
+
+#include "qemu/osdep.h"
+#include "qapi/error.h"
+#include "cpu.h"
+#include "hw/hw.h"
+#include "hw/devices.h"
+#include "sysemu/sysemu.h"
+#include "hw/pci/pci.h"
+#include "hw/pci/pci_bus.h"
+#include "hppa_sys.h"
+#include "exec/address-spaces.h"
+
+
+#define TYPE_DINO_PCI_HOST_BRIDGE "dino-pcihost"
+
+#define DINO_IAR0 0x004
+#define DINO_IODC 0x008
+#define DINO_IRR0 0x00C /* RO */
+#define DINO_IAR1 0x010
+#define DINO_IRR1 0x014 /* RO */
+#define DINO_IMR 0x018
+#define DINO_IPR 0x01C
+#define DINO_TOC_ADDR 0x020
+#define DINO_ICR 0x024
+#define DINO_ILR 0x028 /* RO */
+#define DINO_IO_COMMAND 0x030 /* WO */
+#define DINO_IO_STATUS 0x034 /* RO */
+#define DINO_IO_CONTROL 0x038
+#define DINO_IO_GSC_ERR_RESP 0x040 /* RO */
+#define DINO_IO_ERR_INFO 0x044 /* RO */
+#define DINO_IO_PCI_ERR_RESP 0x048 /* RO */
+#define DINO_IO_FBB_EN 0x05c
+#define DINO_IO_ADDR_EN 0x060
+#define DINO_PCI_CONFIG_ADDR 0x064
+#define DINO_PCI_CONFIG_DATA 0x068
+#define DINO_PCI_IO_DATA 0x06c
+#define DINO_PCI_MEM_DATA 0x070 /* Dino 3.x only */
+#define DINO_GSC2X_CONFIG 0x7b4 /* RO */
+#define DINO_GMASK 0x800
+#define DINO_PAMR 0x804
+#define DINO_PAPR 0x808
+#define DINO_DAMODE 0x80c
+#define DINO_PCICMD 0x810
+#define DINO_PCISTS 0x814 /* R/WC */
+#define DINO_MLTIM 0x81c
+#define DINO_BRDG_FEAT 0x820
+#define DINO_PCIROR 0x824
+#define DINO_PCIWOR 0x828
+#define DINO_TLTIM 0x830
+
+#define DINO_IRQS 11 /* bits 0-10 are architected */
+#define DINO_IRR_MASK 0x5ff /* only 10 bits are implemented */
+#define DINO_LOCAL_IRQS (DINO_IRQS+1)
+
+#define DINO_MASK_IRQ(x) (1<<(x))
+
+#define PCIINTA 0x001
+#define PCIINTB 0x002
+#define PCIINTC 0x004
+#define PCIINTD 0x008
+#define PCIINTE 0x010
+#define PCIINTF 0x020
+#define GSCEXTINT 0x040
+/* #define xxx 0x080 - bit 7 is "default" */
+/* #define xxx 0x100 - bit 8 not used */
+/* #define xxx 0x200 - bit 9 not used */
+#define RS232INT 0x400
+
+#define DINO_MEM_CHUNK_SIZE (8*1024*1024) // 8MB
+
+#define DINO_PCI_HOST_BRIDGE(obj) \
+ OBJECT_CHECK(DinoState, (obj), TYPE_DINO_PCI_HOST_BRIDGE)
+
+typedef struct DinoState {
+ PCIHostState parent_obj;
+
+ /* PCI_CONFIG_ADDR is parent_obj.config_reg, via pci_host_conf_be_ops,
+ so that we can map PCI_CONFIG_DATA to pci_host_data_be_ops. */
+
+ uint32_t iar0;
+ uint32_t iar1;
+ uint32_t imr;
+ uint32_t ipr;
+ uint32_t icr;
+ uint32_t ilr;
+ uint32_t io_addr_en;
+ uint32_t io_control;
+
+ MemoryRegion this_mem;
+ MemoryRegion pci_mem;
+ MemoryRegion pci_mem_alias[32];
+
+ AddressSpace bm_as;
+ MemoryRegion bm;
+ MemoryRegion bm_ram_alias;
+ MemoryRegion bm_pci_alias;
+
+ MemoryRegion cpu0_eir_mem;
+} DinoState;
+
+/*
+ * Dino can forward memory accesses from the CPU in the range between
+ * 0xf0800000 and 0xff000000 to the PCI bus.
+ */
+static void gsc_to_pci_forwarding(DinoState *s)
+{
+ uint32_t io_addr_en, tmp;
+ int enabled, i;
+
+ tmp = extract32(s->io_control, 7, 2);
+ enabled = (tmp == 0x01);
+ io_addr_en = s->io_addr_en;
+
+ memory_region_transaction_begin();
+ for (i = 1; i < 31; i++) {
+ MemoryRegion *mem = &s->pci_mem_alias[i];
+ if (enabled && (io_addr_en & (1U << i))) {
+ if (!memory_region_is_mapped(mem)) {
+ uint32_t addr = 0xf0000000 + i * DINO_MEM_CHUNK_SIZE;
+ memory_region_add_subregion(get_system_memory(), addr, mem);
+ }
+ } else if (memory_region_is_mapped(mem)) {
+ memory_region_del_subregion(get_system_memory(), mem);
+ }
+ }
+ memory_region_transaction_commit();
+}
+
+static bool dino_chip_mem_valid(void *opaque, hwaddr addr,
+ unsigned size, bool is_write)
+{
+ switch (addr) {
+ case DINO_IAR0:
+ case DINO_IAR1:
+ case DINO_IRR0:
+ case DINO_IRR1:
+ case DINO_IMR:
+ case DINO_IPR:
+ case DINO_ICR:
+ case DINO_ILR:
+ case DINO_IO_CONTROL:
+ case DINO_IO_ADDR_EN:
+ case DINO_PCI_IO_DATA:
+ return true;
+ case DINO_PCI_IO_DATA+2:
+ return size <= 2;
+ case DINO_PCI_IO_DATA+1:
+ case DINO_PCI_IO_DATA+3:
+ return size == 1;
+ }
+ return false;
+}
+
+static MemTxResult dino_chip_read_with_attrs(void *opaque, hwaddr addr,
+ uint64_t *data, unsigned size,
+ MemTxAttrs attrs)
+{
+ DinoState *s = opaque;
+ MemTxResult ret = MEMTX_OK;
+ AddressSpace *io;
+ uint16_t ioaddr;
+ uint32_t val;
+
+ switch (addr) {
+ case DINO_PCI_IO_DATA ... DINO_PCI_IO_DATA+3:
+ /* Read from PCI IO space. */
+ io = &address_space_io;
+ ioaddr = s->parent_obj.config_reg;
+ switch (size) {
+ case 1:
+ val = address_space_ldub(io, ioaddr, attrs, &ret);
+ break;
+ case 2:
+ val = address_space_lduw_be(io, ioaddr, attrs, &ret);
+ break;
+ case 4:
+ val = address_space_ldl_be(io, ioaddr, attrs, &ret);
+ break;
+ default:
+ g_assert_not_reached();
+ }
+ break;
+
+ case DINO_IO_ADDR_EN:
+ val = s->io_addr_en;
+ break;
+ case DINO_IO_CONTROL:
+ val = s->io_control;
+ break;
+
+ case DINO_IAR0:
+ val = s->iar0;
+ break;
+ case DINO_IAR1:
+ val = s->iar1;
+ break;
+ case DINO_IMR:
+ val = s->imr;
+ break;
+ case DINO_ICR:
+ val = s->icr;
+ break;
+ case DINO_IPR:
+ val = s->ipr;
+ /* Any read to IPR clears the register. */
+ s->ipr = 0;
+ break;
+ case DINO_ILR:
+ val = s->ilr;
+ break;
+ case DINO_IRR0:
+ val = s->ilr & s->imr & ~s->icr;
+ break;
+ case DINO_IRR1:
+ val = s->ilr & s->imr & s->icr;
+ break;
+
+ default:
+ /* Controlled by dino_chip_mem_valid above. */
+ g_assert_not_reached();
+ }
+
+ *data = val;
+ return ret;
+}
+
+static MemTxResult dino_chip_write_with_attrs(void *opaque, hwaddr addr,
+ uint64_t val, unsigned size,
+ MemTxAttrs attrs)
+{
+ DinoState *s = opaque;
+ AddressSpace *io;
+ MemTxResult ret;
+ uint16_t ioaddr;
+
+ switch (addr) {
+ case DINO_IO_DATA ... DINO_PCI_IO_DATA+3:
+ /* Write into PCI IO space. */
+ io = &address_space_io;
+ ioaddr = s->parent_obj.config_reg;
+ switch (size) {
+ case 1:
+ address_space_stb(io, ioaddr, val, attrs, &ret);
+ break;
+ case 2:
+ address_space_stw_be(io, ioaddr, val, attrs, &ret);
+ break;
+ case 4:
+ address_space_stl_be(io, ioaddr, val, attrs, &ret);
+ break;
+ default:
+ g_assert_not_reached();
+ }
+ return ret;
+
+ case DINO_IO_ADDR_EN:
+ /* Never allow first (=firmware) and last (=Dino) areas. */
+ s->io_addr_en = val & 0x7ffffffe;
+ gsc_to_pci_forwarding(s);
+ break;
+ case DINO_IO_CONTROL:
+ s->io_control = val;
+ gsc_to_pci_forwarding(s);
+ break;
+
+ case DINO_IAR0:
+ s->iar0 = val;
+ break;
+ case DINO_IAR1:
+ s->iar1 = val;
+ break;
+ case DINO_IMR:
+ s->imr = val;
+ break;
+ case DINO_ICR:
+ s->icr = val;
+ break;
+ case DINO_IPR:
+ /* Any write to IPR clears the register. */
+ s->ipr = 0;
+ break;
+
+ case DINO_ILR:
+ case DINO_IRR0:
+ case DINO_IRR1:
+ /* These registers are read-only. */
+ break;
+
+ default:
+ /* Controlled by dino_chip_mem_valid above. */
+ g_assert_not_reached();
+ }
+ return MEMTX_OK;
+}
+
+static const MemoryRegionOps dino_chip_ops = {
+ .read_with_attrs = dino_chip_read_with_attrs,
+ .write_with_attrs = dino_chip_write_with_attrs,
+ .endianness = DEVICE_BIG_ENDIAN,
+ .valid = {
+ .min_access_size = 1,
+ .max_access_size = 4,
+ .accepts = dino_chip_mem_valid,
+ },
+ .impl = {
+ .min_access_size = 1,
+ .max_access_size = 4,
+ },
+};
+
+static const VMStateDescription vmstate_dino = {
+ .name = "Dino",
+ .version_id = 1,
+ .minimum_version_id = 1,
+ .fields = (VMStateField[]) {
+ VMSTATE_UINT32(iar0, DinoState),
+ VMSTATE_UINT32(iar1, DinoState),
+ VMSTATE_UINT32(imr, DinoState),
+ VMSTATE_UINT32(ipr, DinoState),
+ VMSTATE_UINT32(icr, DinoState),
+ VMSTATE_UINT32(ilr, DinoState),
+ VMSTATE_UINT32(io_addr_en, DinoState),
+ VMSTATE_UINT32(io_control, DinoState),
+ VMSTATE_END_OF_LIST()
+ }
+};
+
+
+/* Unlike pci_config_data_le_ops, no check of high bit set in config_reg. */
+
+static uint64_t dino_config_data_read(void *opaque, hwaddr addr, unsigned len)
+{
+ PCIHostState *s = opaque;
+ return pci_data_read(s->bus, s->config_reg | (addr & 3), len);
+}
+
+static void dino_config_data_write(void *opaque, hwaddr addr,
+ uint64_t val, unsigned len)
+{
+ PCIHostState *s = opaque;
+ pci_data_write(s->bus, s->config_reg | (addr & 3), val, len);
+}
+
+static const MemoryRegionOps dino_config_data_ops = {
+ .read = dino_config_data_read,
+ .write = dino_config_data_write,
+ .endianness = DEVICE_LITTLE_ENDIAN,
+};
+
+static AddressSpace *dino_pcihost_set_iommu(PCIBus *bus, void *opaque,
+ int devfn)
+{
+ DinoState *s = opaque;
+
+ return &s->bm_as;
+}
+
+/*
+ * Dino interrupts are connected as shown on Page 78, Table 23
+ * (Little-endian bit numbers)
+ * 0 PCI INTA
+ * 1 PCI INTB
+ * 2 PCI INTC
+ * 3 PCI INTD
+ * 4 PCI INTE
+ * 5 PCI INTF
+ * 6 GSC External Interrupt
+ * 7 Bus Error for "less than fatal" mode
+ * 8 PS2
+ * 9 Unused
+ * 10 RS232
+ */
+
+static void dino_set_irq(void *opaque, int irq, int level)
+{
+ DinoState *s = opaque;
+ uint32_t bit = 1u << irq;
+ uint32_t old_ilr = s->ilr;
+
+ if (level) {
+ uint32_t ena = bit & ~old_ilr;
+ s->ipr |= ena;
+ s->ilr = old_ilr | bit;
+ if (ena & s->imr) {
+ uint32_t iar = (ena & s->icr ? s->iar1 : s->iar0);
+ stl_be_phys(&address_space_memory, iar & -32, iar & 31);
+ }
+ } else {
+ s->ilr = old_ilr & ~bit;
+ }
+}
+
+static int dino_pci_map_irq(PCIDevice *d, int irq_num)
+{
+ int slot = d->devfn >> 3;
+ int local_irq;
+
+ assert(irq_num >= 0 && irq_num <= 3);
+
+ local_irq = slot & 0x03;
+
+ return local_irq;
+}
+
+static void dino_set_timer_irq(void *opaque, int irq, int level)
+{
+ /* ??? Not connected. */
+}
+
+static void dino_set_serial_irq(void *opaque, int irq, int level)
+{
+ dino_set_irq(opaque, 10, level);
+}
+
+PCIBus *dino_init(MemoryRegion *addr_space,
+ qemu_irq *p_rtc_irq, qemu_irq *p_ser_irq)
+{
+ DeviceState *dev;
+ DinoState *s;
+ PCIBus *b;
+ int i;
+
+ dev = qdev_create(NULL, TYPE_DINO_PCI_HOST_BRIDGE);
+ s = DINO_PCI_HOST_BRIDGE(dev);
+
+ /* Dino PCI access from main memory. */
+ memory_region_init_io(&s->this_mem, OBJECT(s), &dino_chip_ops,
+ s, "dino", 4096);
+ memory_region_add_subregion(addr_space, DINO_HPA, &s->this_mem);
+
+ /* Dino PCI config. */
+ memory_region_init_io(&s->parent_obj.conf_mem, OBJECT(&s->parent_obj),
+ &pci_host_conf_be_ops, dev, "pci-conf-idx", 4);
+ memory_region_init_io(&s->parent_obj.data_mem, OBJECT(&s->parent_obj),
+ &dino_config_data_ops, dev, "pci-conf-data", 4);
+ memory_region_add_subregion(&s->this_mem, DINO_PCI_CONFIG_ADDR,
+ &s->parent_obj.conf_mem);
+ memory_region_add_subregion(&s->this_mem, DINO_CONFIG_DATA,
+ &s->parent_obj.data_mem);
+
+ /* Dino PCI bus memory. */
+ memory_region_init(&s->pci_mem, OBJECT(s), "pci-memory", 1ull << 32);
+
+ b = pci_register_root_bus(dev, "pci", dino_set_irq, dino_pci_map_irq, s,
+ &s->pci_mem, get_system_io(),
+ PCI_DEVFN(0, 0), 32, TYPE_PCI_BUS);
+ s->parent_obj.bus = b;
+ qdev_init_nofail(dev);
+
+ /* Set up windows into PCI bus memory. */
+ for (i = 1; i < 31; i++) {
+ uint32_t addr = 0xf0000000 + i * DINO_MEM_CHUNK_SIZE;
+ char *name = g_strdup_printf("PCI Outbound Window %d", i);
+ memory_region_init_alias(&s->pci_mem_alias[i], OBJECT(s),
+ name, &s->pci_mem, addr,
+ DINO_MEM_CHUNK_SIZE);
+ }
+
+ /* Set up PCI view of memory: Bus master address space. */
+ memory_region_init(&s->bm, OBJECT(s), "bm-dino", 1ull << 32);
+ memory_region_init_alias(&s->bm_ram_alias, OBJECT(s),
+ "bm-system", addr_space, 0,
+ 0xf0000000 + DINO_MEM_CHUNK_SIZE);
+ memory_region_init_alias(&s->bm_pci_alias, OBJECT(s),
+ "bm-pci", &s->pci_mem,
+ 0xf0000000 + DINO_MEM_CHUNK_SIZE,
+ 31 * DINO_MEM_CHUNK_SIZE);
+ memory_region_add_subregion(&s->bm, 0,
+ &s->bm_ram_alias);
+ memory_region_add_subregion(&s->bm,
+ 0xf0000000 + DINO_MEM_CHUNK_SIZE,
+ &s->bm_pci_alias);
+ address_space_init(&s->bm_as, &s->bm, "pci-bm");
+ pci_setup_iommu(b, dino_pcihost_set_iommu, s);
+
+ *p_rtc_irq = qemu_allocate_irq(dino_set_timer_irq, s, 0);
+ *p_ser_irq = qemu_allocate_irq(dino_set_serial_irq, s, 0);
+
+ return b;
+}
+
+static int dino_pcihost_init(SysBusDevice *dev)
+{
+ return 0;
+}
+
+static void dino_pcihost_class_init(ObjectClass *klass, void *data)
+{
+ SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
+ DeviceClass *dc = DEVICE_CLASS(klass);
+
+ k->init = dino_pcihost_init;
+ dc->vmsd = &vmstate_dino;
+}
+
+static const TypeInfo dino_pcihost_info = {
+ .name = TYPE_DINO_PCI_HOST_BRIDGE,
+ .parent = TYPE_PCI_HOST_BRIDGE,
+ .instance_size = sizeof(DinoState),
+ .class_init = dino_pcihost_class_init,
+};
+
+static void dino_register_types(void)
+{
+ type_register_static(&dino_pcihost_info);
+}
+
+type_init(dino_register_types)
diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c
index 4625e591ea..9b6dc8607c 100644
--- a/hw/hppa/machine.c
+++ b/hw/hppa/machine.c
@@ -1,5 +1,5 @@
/*
- * QEMU HPPA hardware system emulator.
+ * QEMU HP-PARISC (HPPA) hardware system emulator.
* Copyright 2017 Helge Deller <deller@gmx.de>
*
*/
@@ -17,20 +17,263 @@
#include "hw/ide.h"
#include "hw/timer/i8254.h"
#include "hw/char/serial.h"
+#include "hw/hppa/hppa_sys.h"
#include "qemu/cutils.h"
#include "qapi/error.h"
+#define MAX_IDE_BUS 2
+
+static ISABus *hppa_isa_bus(void)
+{
+ ISABus *isa_bus;
+ qemu_irq *isa_irqs;
+ MemoryRegion *isa_region;
+
+ isa_region = g_new(MemoryRegion, 1);
+ memory_region_init_io(isa_region, NULL, &hppa_pci_ignore_ops,
+ NULL, "isa-io", 0x800);
+ memory_region_add_subregion(get_system_memory(), IDE_HPA,
+ isa_region);
+
+ isa_bus = isa_bus_new(NULL, get_system_memory(), isa_region,
+ &error_abort);
+ isa_irqs = i8259_init(isa_bus,
+ /* qemu_allocate_irq(dino_set_isa_irq, s, 0)); */
+ NULL);
+ isa_bus_irqs(isa_bus, isa_irqs);
+
+ return isa_bus;
+}
+
+static uint64_t cpu_hppa_to_phys(void *opaque, uint64_t addr)
+{
+ addr &= (0x10000000 - 1);
+ return addr;
+}
+
+static HPPACPU *cpu[HPPA_MAX_CPUS];
+static uint64_t firmware_entry;
static void machine_hppa_init(MachineState *machine)
{
+ const char *kernel_filename = machine->kernel_filename;
+ const char *kernel_cmdline = machine->kernel_cmdline;
+ const char *initrd_filename = machine->initrd_filename;
+ PCIBus *pci_bus;
+ ISABus *isa_bus;
+ qemu_irq rtc_irq, serial_irq;
+ char *firmware_filename;
+ uint64_t firmware_low, firmware_high;
+ long size;
+ uint64_t kernel_entry = 0, kernel_low, kernel_high;
+ MemoryRegion *addr_space = get_system_memory();
+ MemoryRegion *rom_region;
+ MemoryRegion *ram_region;
+ MemoryRegion *cpu_region;
+ long i;
+
+ ram_size = machine->ram_size;
+
+ /* Create CPUs. */
+ for (i = 0; i < smp_cpus; i++) {
+ cpu[i] = HPPA_CPU(cpu_create(machine->cpu_type));
+
+ cpu_region = g_new(MemoryRegion, 1);
+ memory_region_init_io(cpu_region, OBJECT(cpu[i]), &hppa_io_eir_ops,
+ cpu[i], g_strdup_printf("cpu%ld-io-eir",i), 4);
+ memory_region_add_subregion(addr_space, CPU_HPA + i*0x1000, cpu_region);
+ }
+
+ /* Limit main memory. */
+ if (ram_size > FIRMWARE_START) {
+ machine->ram_size = ram_size = FIRMWARE_START;
+ }
+
+ /* Main memory region. */
+ ram_region = g_new(MemoryRegion, 1);
+ memory_region_allocate_system_memory(ram_region, OBJECT(machine),
+ "ram", ram_size);
+ memory_region_add_subregion(addr_space, 0, ram_region);
+
+ /* Init Dino (PCI host bus chip). */
+ pci_bus = dino_init(addr_space, &rtc_irq, &serial_irq);
+ assert(pci_bus);
+
+ /* Create ISA bus. */
+ isa_bus = hppa_isa_bus();
+ assert(isa_bus);
+
+ /* Realtime clock, used by firmware for PDC_TOD call. */
+ mc146818_rtc_init(isa_bus, 2000, rtc_irq);
+
+ /* Serial code setup. */
+ if (serial_hds[0]) {
+ uint32_t addr = DINO_UART_HPA + 0x800;
+ serial_mm_init(addr_space, addr, 0, serial_irq,
+ 115200, serial_hds[0], DEVICE_BIG_ENDIAN);
+ fprintf(stderr, "Serial port created at 0x%x\n", addr);
+ }
+
+ /* SCSI disk setup. */
+ lsi53c895a_create(pci_bus);
+
+ /* Network setup. e1000 is good enough, failing Tulip support. */
+ for (i = 0; i < nb_nics; i++) {
+ pci_nic_init_nofail(&nd_table[i], pci_bus, "e1000", NULL);
+ }
+
+ /* Load firmware. Given that this is not "real" firmware,
+ but one explicitly written for the emulation, we might as
+ well load it directly from an ELF image. */
+ firmware_filename = qemu_find_file(QEMU_FILE_TYPE_BIOS,
+ bios_name ? bios_name :
+ "hppa-firmware.img");
+ if (firmware_filename == NULL) {
+ error_report("no firmware provided");
+ exit(1);
+ }
+
+ size = load_elf(firmware_filename, NULL,
+ NULL, &firmware_entry, &firmware_low, &firmware_high,
+ true, EM_PARISC, 0, 0);
+
+ /* Unfortunately, load_elf sign-extends reading elf32. */
+ firmware_entry = (target_ureg)firmware_entry;
+ firmware_low = (target_ureg)firmware_low;
+ firmware_high = (target_ureg)firmware_high;
+
+ if (size < 0) {
+ error_report("could not load firmware '%s'", firmware_filename);
+ exit(1);
+ }
+ fprintf(stderr, "Firmware loaded at 0x%08lx-0x%08lx, entry at 0x%08lx.\n",
+ firmware_low, firmware_high, firmware_entry);
+ if (firmware_low < ram_size || firmware_high >= FIRMWARE_END) {
+ error_report("Firmware overlaps with memory or IO space");
+ exit(1);
+ }
+ g_free(firmware_filename);
+
+ rom_region = g_new(MemoryRegion, 1);
+ memory_region_allocate_system_memory(rom_region, OBJECT(machine),
+ "firmware",
+ (FIRMWARE_END - FIRMWARE_START));
+ memory_region_add_subregion(addr_space, FIRMWARE_START, rom_region);
+
+ /* Load kernel */
+ if (kernel_filename) {
+ fprintf(stderr, "LOADING kernel '%s'\n", kernel_filename);
+ size = load_elf(kernel_filename, &cpu_hppa_to_phys,
+ NULL, &kernel_entry, &kernel_low, &kernel_high,
+ true, EM_PARISC, 0, 0);
+
+ /* Unfortunately, load_elf sign-extends reading elf32. */
+ kernel_entry = (target_ureg) cpu_hppa_to_phys(NULL, kernel_entry);
+ kernel_low = (target_ureg)kernel_low;
+ kernel_high = (target_ureg)kernel_high;
+
+ if (size < 0) {
+ error_report("could not load kernel '%s'", kernel_filename);
+ exit(1);
+ }
+
+ fprintf(stderr, "Kernel loaded at 0x%08lx-0x%08lx, entry at 0x%08lx, "
+ "size %ld kB.\n",
+ kernel_low, kernel_high, kernel_entry, size / 1024);
+
+ if (kernel_cmdline) {
+ cpu[0]->env.gr[24] = 0x4000;
+ pstrcpy_targphys("cmdline", cpu[0]->env.gr[24],
+ TARGET_PAGE_SIZE, kernel_cmdline);
+ }
+
+ if (initrd_filename) {
+ ram_addr_t initrd_base;
+ long initrd_size;
+
+ initrd_size = get_image_size(initrd_filename);
+ if (initrd_size < 0) {
+ error_report("could not load initial ram disk '%s'",
+ initrd_filename);
+ exit(1);
+ }
+
+ /* Load the initrd image high in memory.
+ Mirror the algorithm used by palo:
+ (1) Due to sign-extension problems and PDC,
+ put the initrd no higher than 1G.
+ (2) Reserve 64k for stack. */
+ initrd_base = MIN(ram_size, 1024 * 1024 * 1024);
+ initrd_base = initrd_base - 64 * 1024;
+ initrd_base = (initrd_base - initrd_size) & TARGET_PAGE_MASK;
+
+ if (initrd_base < kernel_high) {
+ error_report("kernel and initial ram disk too large!");
+ exit(1);
+ }
+
+ load_image_targphys(initrd_filename, initrd_base, initrd_size);
+ cpu[0]->env.gr[23] = initrd_base;
+ cpu[0]->env.gr[22] = initrd_base + initrd_size;
+ }
+ }
+
+ if (!kernel_entry) {
+ /* When booting via firmware, tell firmware if we want interactive
+ * mode (kernel_entry=1), and to boot from CD (gr[24]='d')
+ * or hard disc * (gr[24]='c').
+ */
+ kernel_entry = boot_menu ? 1 : 0;
+ cpu[0]->env.gr[24] = machine->boot_order[0];
+ }
+
+ /* We jump to the firmware entry routine and pass the
+ * various parameters in registers. After firmware initialization,
+ * firmware will start the Linux kernel with ramdisk and cmdline.
+ */
+ cpu[0]->env.gr[26] = ram_size;
+ cpu[0]->env.gr[25] = kernel_entry;
+
+ /* tell firmware how many SMP CPUs to present in inventory table */
+ cpu[0]->env.gr[21] = smp_cpus;
}
+static void hppa_machine_reset(void)
+{
+ int i;
+
+ qemu_devices_reset();
+
+ /* Start all CPUs at the firmware entry point.
+ * Monarch CPU will initialize firmware, secondary CPUs
+ * will enter a small idle look and wait for rendevouz. */
+ for (i = 0; i < smp_cpus; i++) {
+ cpu_set_pc(CPU(cpu[i]), firmware_entry);
+ cpu[i]->env.gr[5] = CPU_HPA + i*0x1000;
+ }
+
+ /* already initialized by machine_hppa_init()? */
+ if (cpu[0]->env.gr[26] == ram_size) {
+ return;
+ }
+
+ cpu[0]->env.gr[26] = ram_size;
+ cpu[0]->env.gr[25] = 0; /* no firmware boot menu */
+ cpu[0]->env.gr[24] = 'c';
+ /* gr22/gr23 unused, no initrd while reboot. */
+ cpu[0]->env.gr[21] = smp_cpus;
+}
+
+
static void machine_hppa_machine_init(MachineClass *mc)
{
mc->desc = "HPPA generic machine";
+ mc->default_cpu_type = TYPE_HPPA_CPU;
mc->init = machine_hppa_init;
+ mc->reset = hppa_machine_reset;
mc->block_default_type = IF_SCSI;
- mc->max_cpus = 1;
+ mc->max_cpus = HPPA_MAX_CPUS;
+ mc->default_cpus = 1;
mc->is_default = 1;
mc->default_ram_size = 2048UL*1024*1024; // 2GB
mc->default_boot_order = "cd";
diff --git a/hw/hppa/pci.c b/hw/hppa/pci.c
new file mode 100644
index 0000000000..766420254e
--- /dev/null
+++ b/hw/hppa/pci.c
@@ -0,0 +1,90 @@
+/*
+ * QEMU HP-PARISC PCI support functions.
+ *
+ */
+
+#include "qemu/osdep.h"
+#include "qemu-common.h"
+#include "hppa_sys.h"
+#include "qemu/log.h"
+#include "sysemu/sysemu.h"
+#include "trace.h"
+
+
+/* Fallback for unassigned PCI I/O operations. Avoids MCHK. */
+
+static uint64_t ignore_read(void *opaque, hwaddr addr, unsigned size)
+{
+ return 0;
+}
+
+static void ignore_write(void *opaque, hwaddr addr, uint64_t v, unsigned size)
+{
+}
+
+const MemoryRegionOps hppa_pci_ignore_ops = {
+ .read = ignore_read,
+ .write = ignore_write,
+ .endianness = DEVICE_BIG_ENDIAN,
+ .valid = {
+ .min_access_size = 1,
+ .max_access_size = 8,
+ },
+ .impl = {
+ .min_access_size = 1,
+ .max_access_size = 8,
+ },
+};
+
+
+/* PCI config space reads/writes, to byte-word addressable memory. */
+static uint64_t bw_conf1_read(void *opaque, hwaddr addr,
+ unsigned size)
+{
+ PCIBus *b = opaque;
+ return pci_data_read(b, addr, size);
+}
+
+static void bw_conf1_write(void *opaque, hwaddr addr,
+ uint64_t val, unsigned size)
+{
+ PCIBus *b = opaque;
+ pci_data_write(b, addr, val, size);
+}
+
+const MemoryRegionOps hppa_pci_conf1_ops = {
+ .read = bw_conf1_read,
+ .write = bw_conf1_write,
+ .endianness = DEVICE_BIG_ENDIAN,
+ .impl = {
+ .min_access_size = 1,
+ .max_access_size = 4,
+ },
+};
+
+/* PCI/EISA Interrupt Acknowledge Cycle. */
+
+static uint64_t iack_read(void *opaque, hwaddr addr, unsigned size)
+{
+ return pic_read_irq(isa_pic);
+}
+
+static void special_write(void *opaque, hwaddr addr,
+ uint64_t val, unsigned size)
+{
+ trace_hppa_pci_iack_write();
+}
+
+const MemoryRegionOps hppa_pci_iack_ops = {
+ .read = iack_read,
+ .write = special_write,
+ .endianness = DEVICE_BIG_ENDIAN,
+ .valid = {
+ .min_access_size = 4,
+ .max_access_size = 4,
+ },
+ .impl = {
+ .min_access_size = 4,
+ .max_access_size = 4,
+ },
+};
diff --git a/default-configs/hppa-softmmu.mak b/default-configs/hppa-softmmu.mak
new file mode 100644
index 0000000000..013e5f046f
--- /dev/null
+++ b/default-configs/hppa-softmmu.mak
@@ -0,0 +1,14 @@
+include pci.mak
+include usb.mak
+CONFIG_SERIAL=y
+CONFIG_SERIAL_ISA=y
+CONFIG_ISA_BUS=y
+CONFIG_I8259=y
+CONFIG_VIRTIO_PCI=$(CONFIG_PCI)
+CONFIG_VIRTIO=y
+CONFIG_E1000_PCI=y
+CONFIG_IDE_ISA=y
+CONFIG_IDE_CMD646=y
+# CONFIG_IDE_MMIO=y
+CONFIG_VIRTIO_VGA=y
+CONFIG_MC146818RTC=y
diff --git a/hw/hppa/Makefile.objs b/hw/hppa/Makefile.objs
index 46b2ae18de..bef241ed25 100644
--- a/hw/hppa/Makefile.objs
+++ b/hw/hppa/Makefile.objs
@@ -1 +1 @@
-obj-y += machine.o
+obj-y += machine.o pci.o dino.o
diff --git a/hw/hppa/trace-events b/hw/hppa/trace-events
new file mode 100644
index 0000000000..14c67937e1
--- /dev/null
+++ b/hw/hppa/trace-events
@@ -0,0 +1,4 @@
+# See docs/devel/tracing.txt for syntax documentation.
+
+# hw/hppa/pci.c
+hppa_pci_iack_write(void) ""
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 42/43] pc-bios: Add hppa-firmware.img and git submodule
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (40 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 41/43] hw/hppa: Implement DINO system board Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 43/43] hw/hppa: Add MAINTAINERS entry Richard Henderson
` (4 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
Makefile | 3 ++-
.gitmodules | 3 +++
pc-bios/hppa-firmware.img | Bin 0 -> 461352 bytes
roms/seabios-hppa | 1 +
4 files changed, 6 insertions(+), 1 deletion(-)
create mode 100755 pc-bios/hppa-firmware.img
create mode 160000 roms/seabios-hppa
diff --git a/Makefile b/Makefile
index d835bb92e7..5ffb7ed57f 100644
--- a/Makefile
+++ b/Makefile
@@ -649,7 +649,8 @@ s390-ccw.img s390-netboot.img \
spapr-rtas.bin slof.bin skiboot.lid \
palcode-clipper \
u-boot.e500 \
-qemu_vga.ndrv
+qemu_vga.ndrv \
+hppa-firmware.img
else
BLOBS=
endif
diff --git a/.gitmodules b/.gitmodules
index 1500579638..7a8282df46 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -40,3 +40,6 @@
[submodule "capstone"]
path = capstone
url = git://git.qemu.org/capstone.git
+[submodule "roms/seabios-hppa"]
+ path = roms/seabios-hppa
+ url = git://github.com/hdeller/seabios-hppa.git
diff --git a/pc-bios/hppa-firmware.img b/pc-bios/hppa-firmware.img
new file mode 100755
index 0000000000000000000000000000000000000000..ae833437a73cb0955491b95f03cd42132d8d2e9c
GIT binary patch
literal 461352
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%0A-RO6mfvBu&DV%cY;_nA|
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%0Dxt+<@{^
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ⅈ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�bd4Tq~n-hFVKHuJXdo_!VSau1Z?
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
a&G??>l!mx!-SO#*!FTnBSAbt!&G)}YO;TF`
literal 0
HcmV?d00001
diff --git a/roms/seabios-hppa b/roms/seabios-hppa
new file mode 160000
index 0000000000..8fa4ca9935
--- /dev/null
+++ b/roms/seabios-hppa
@@ -0,0 +1 @@
+Subproject commit 8fa4ca9935669414a824ecda24f6e70c36e8dc94
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* [Qemu-devel] [PULL 43/43] hw/hppa: Add MAINTAINERS entry
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (41 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 42/43] pc-bios: Add hppa-firmware.img and git submodule Richard Henderson
@ 2018-01-22 3:42 ` Richard Henderson
2018-01-22 4:27 ` [Qemu-devel] [PULL 00/43] Add hppa-softmmu no-reply
` (3 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: Richard Henderson @ 2018-01-22 3:42 UTC (permalink / raw)
To: qemu-devel; +Cc: peter.maydell
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
MAINTAINERS | 1 +
1 file changed, 1 insertion(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 753e7996ce..bee6b2bec7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -133,6 +133,7 @@ HPPA (PA-RISC)
M: Richard Henderson <rth@twiddle.net>
S: Maintained
F: target/hppa/
+F: hw/hppa/
F: disas/hppa.c
LM32
--
2.14.3
^ permalink raw reply related [flat|nested] 48+ messages in thread
* Re: [Qemu-devel] [PULL 00/43] Add hppa-softmmu
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (42 preceding siblings ...)
2018-01-22 3:42 ` [Qemu-devel] [PULL 43/43] hw/hppa: Add MAINTAINERS entry Richard Henderson
@ 2018-01-22 4:27 ` no-reply
2018-01-22 4:38 ` no-reply
` (2 subsequent siblings)
46 siblings, 0 replies; 48+ messages in thread
From: no-reply @ 2018-01-22 4:27 UTC (permalink / raw)
To: richard.henderson; +Cc: famz, qemu-devel, peter.maydell
Hi,
This series seems to have some coding style problems. See output below for
more information:
Type: series
Message-id: 20180122034217.19593-1-richard.henderson@linaro.org
Subject: [Qemu-devel] [PULL 00/43] Add hppa-softmmu
=== TEST SCRIPT BEGIN ===
#!/bin/bash
BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0
git config --local diff.renamelimit 0
git config --local diff.renames True
commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
failed=1
echo
fi
n=$((n+1))
done
exit $failed
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
t [tag update] patchew/20180119114444.7590-1-laurent@vivier.eu -> patchew/20180119114444.7590-1-laurent@vivier.eu
* [new tag] patchew/20180122034217.19593-1-richard.henderson@linaro.org -> patchew/20180122034217.19593-1-richard.henderson@linaro.org
Switched to a new branch 'test'
1687407469 hw/hppa: Add MAINTAINERS entry
a144ceedc7 pc-bios: Add hppa-firmware.img and git submodule
262baa12eb hw/hppa: Implement DINO system board
861011fa36 target/hppa: Enable MTTCG
a33c2a9ba7 target/hppa: Implement STWA
a0bd1a1f9e target/hppa: Implement a pause instruction
dd8a2f5d66 target/hppa: Implement LDSID for system mode
bf83305a76 target/hppa: Fix comment
6573d13b70 target/hppa: Increase number of temp regs
233d10fe7b target/hppa: Use MMU_DEBUG_LOAD when reloading for CR[IIR]
1e7e106211 qom: Add MMU_DEBUG_LOAD
093de557ec target/hppa: Only use EXCP_DTLB_MISS
abd6694b1f target/hppa: Implement B,GATE insn
488f6437c3 target/hppa: Add migration for the cpu
9175ea3f62 target/hppa: Add system registers to gdbstub
5035093e6c target/hppa: Optimize for flat addressing space
a8b31280a6 target/hppa: Implement halt and reset instructions
2776293fe8 target/hppa: Implement SYNCDMA insn
024b754a8d target/hppa: Implement LCI
f6ef83db5e target/hppa: Implement LPA
19a9042865 target/hppa: Implement LDWA
1b1df004c0 target/hppa: Implement P*TLB and P*TLBE insns
40465b87f2 target/hppa: Implement I*TLBA and I*TLBP insns
e4f0feebe5 target/hppa: Log unimplemented instructions
98ca5d9fce target/hppa: Implement the interval timer
8d373824e0 target/hppa: Implement external interrupts
cd7c359f3d target/hppa: Implement tlb_fill
c9f5837fd0 target/hppa: Implement IASQ
29ee03eed4 target/hppa: Avoid privilege level decrease during branches
dfa9805fdd target/hppa: Use space registers in data operations
501224b807 target/hppa: Implement unaligned access trap
c4bc1abb49 target/hppa: Fill in hppa_cpu_do_interrupt/hppa_cpu_exec_interrupt
0986e0762b target/hppa: Implement rfi
d0ca2d6e7c target/hppa: Adjust insn mask for mfctl, w
41b110fb97 target/hppa: Add control registers
071ae8ccbc target/hppa: Add space registers
7e834d986f target/hppa: Implement the system mask instructions
9520134730 target/hppa: Implement mmu_idx from IA privilege level
b190bfe110 target/hppa: Split address size from register size
c20827c03c target/hppa: Define hardware exception types
56fea7df22 target/hppa: Disable gateway page emulation for system mode
264997a4b6 target/hppa: Define the rest of the PSW
d333744720 target/hppa: Skeleton support for hppa-softmmu
=== OUTPUT BEGIN ===
Checking PATCH 1/43: target/hppa: Skeleton support for hppa-softmmu...
ERROR: do not use C99 // comments
#73: FILE: hw/hppa/machine.c:35:
+ mc->default_ram_size = 2048UL*1024*1024; // 2GB
ERROR: spaces required around that '*' (ctx:VxV)
#73: FILE: hw/hppa/machine.c:35:
+ mc->default_ram_size = 2048UL*1024*1024; // 2GB
^
ERROR: spaces required around that '*' (ctx:VxV)
#73: FILE: hw/hppa/machine.c:35:
+ mc->default_ram_size = 2048UL*1024*1024; // 2GB
^
total: 3 errors, 0 warnings, 185 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 2/43: target/hppa: Define the rest of the PSW...
Checking PATCH 3/43: target/hppa: Disable gateway page emulation for system mode...
Checking PATCH 4/43: target/hppa: Define hardware exception types...
Checking PATCH 5/43: target/hppa: Split address size from register size...
ERROR: space required after that ',' (ctx:VxV)
#458: FILE: target/hppa/translate.c:155:
+# define tcg_gen_trunc_reg_ptr(p,r) tcg_gen_trunc_i64_i32(TCGV_PTR_TO_NAT(p),r)
^
ERROR: space required after that ',' (ctx:VxV)
#458: FILE: target/hppa/translate.c:155:
+# define tcg_gen_trunc_reg_ptr(p,r) tcg_gen_trunc_i64_i32(TCGV_PTR_TO_NAT(p),r)
^
ERROR: space required after that ',' (ctx:VxV)
#460: FILE: target/hppa/translate.c:157:
+# define tcg_gen_trunc_reg_ptr(p,r) tcg_gen_mov_i64(TCGV_PTR_TO_NAT(p),r)
^
ERROR: space required after that ',' (ctx:VxV)
#460: FILE: target/hppa/translate.c:157:
+# define tcg_gen_trunc_reg_ptr(p,r) tcg_gen_mov_i64(TCGV_PTR_TO_NAT(p),r)
^
ERROR: space required after that ',' (ctx:VxV)
#556: FILE: target/hppa/translate.c:253:
+# define tcg_gen_trunc_reg_ptr(p,r) tcg_gen_mov_i32(TCGV_PTR_TO_NAT(p),r)
^
ERROR: space required after that ',' (ctx:VxV)
#556: FILE: target/hppa/translate.c:253:
+# define tcg_gen_trunc_reg_ptr(p,r) tcg_gen_mov_i32(TCGV_PTR_TO_NAT(p),r)
^
ERROR: space required after that ',' (ctx:VxV)
#558: FILE: target/hppa/translate.c:255:
+# define tcg_gen_trunc_reg_ptr(p,r) tcg_gen_extu_i32_i64(TCGV_PTR_TO_NAT(p),r)
^
ERROR: space required after that ',' (ctx:VxV)
#558: FILE: target/hppa/translate.c:255:
+# define tcg_gen_trunc_reg_ptr(p,r) tcg_gen_extu_i32_i64(TCGV_PTR_TO_NAT(p),r)
^
WARNING: line over 80 characters
#913: FILE: target/hppa/translate.c:831:
+static DisasCond do_cond(unsigned cf, TCGv_reg res, TCGv_reg cb_msb, TCGv_reg sv)
ERROR: line over 90 characters
#946: FILE: target/hppa/translate.c:882:
+static DisasCond do_sub_cond(unsigned cf, TCGv_reg res, TCGv_reg in1, TCGv_reg in2, TCGv_reg sv)
WARNING: line over 80 characters
#973: FILE: target/hppa/translate.c:945:
+static DisasCond do_unit_cond(unsigned cf, TCGv_reg res, TCGv_reg in1, TCGv_reg in2)
WARNING: line over 80 characters
#1045: FILE: target/hppa/translate.c:1021:
+static TCGv_reg do_add_sv(DisasContext *ctx, TCGv_reg res, TCGv_reg in1, TCGv_reg in2)
WARNING: line over 80 characters
#1065: FILE: target/hppa/translate.c:1035:
+static TCGv_reg do_sub_sv(DisasContext *ctx, TCGv_reg res, TCGv_reg in1, TCGv_reg in2)
WARNING: line over 80 characters
#1084: FILE: target/hppa/translate.c:1048:
+static DisasJumpType do_add(DisasContext *ctx, unsigned rt, TCGv_reg in1, TCGv_reg in2,
WARNING: line over 80 characters
#1143: FILE: target/hppa/translate.c:1120:
+static DisasJumpType do_sub(DisasContext *ctx, unsigned rt, TCGv_reg in1, TCGv_reg in2,
WARNING: line over 80 characters
#1226: FILE: target/hppa/translate.c:1215:
+static DisasJumpType do_log(DisasContext *ctx, unsigned rt, TCGv_reg in1, TCGv_reg in2,
WARNING: line over 80 characters
#1227: FILE: target/hppa/translate.c:1216:
+ unsigned cf, void (*fn)(TCGv_reg, TCGv_reg, TCGv_reg))
total: 9 errors, 8 warnings, 2376 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 6/43: target/hppa: Implement mmu_idx from IA privilege level...
Checking PATCH 7/43: target/hppa: Implement the system mask instructions...
Checking PATCH 8/43: target/hppa: Add space registers...
Checking PATCH 9/43: target/hppa: Add control registers...
Checking PATCH 10/43: target/hppa: Adjust insn mask for mfctl, w...
Checking PATCH 11/43: target/hppa: Implement rfi...
Checking PATCH 12/43: target/hppa: Fill in hppa_cpu_do_interrupt/hppa_cpu_exec_interrupt...
Checking PATCH 13/43: target/hppa: Implement unaligned access trap...
Checking PATCH 14/43: target/hppa: Use space registers in data operations...
Checking PATCH 15/43: target/hppa: Avoid privilege level decrease during branches...
Checking PATCH 16/43: target/hppa: Implement IASQ...
Checking PATCH 17/43: target/hppa: Implement tlb_fill...
ERROR: spaces prohibited around that ':' (ctx:WxW)
#25: FILE: target/hppa/cpu.h:172:
+ unsigned u : 1;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#26: FILE: target/hppa/cpu.h:173:
+ unsigned t : 1;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#27: FILE: target/hppa/cpu.h:174:
+ unsigned d : 1;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#28: FILE: target/hppa/cpu.h:175:
+ unsigned b : 1;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#29: FILE: target/hppa/cpu.h:176:
+ unsigned page_size : 4;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#30: FILE: target/hppa/cpu.h:177:
+ unsigned ar_type : 3;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#31: FILE: target/hppa/cpu.h:178:
+ unsigned ar_pl1 : 2;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#32: FILE: target/hppa/cpu.h:179:
+ unsigned ar_pl2 : 2;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#33: FILE: target/hppa/cpu.h:180:
+ unsigned entry_valid : 1;
^
ERROR: spaces prohibited around that ':' (ctx:WxW)
#34: FILE: target/hppa/cpu.h:181:
+ unsigned access_id : 16;
^
total: 10 errors, 0 warnings, 238 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 18/43: target/hppa: Implement external interrupts...
Checking PATCH 19/43: target/hppa: Implement the interval timer...
Checking PATCH 20/43: target/hppa: Log unimplemented instructions...
Checking PATCH 21/43: target/hppa: Implement I*TLBA and I*TLBP insns...
Checking PATCH 22/43: target/hppa: Implement P*TLB and P*TLBE insns...
Checking PATCH 23/43: target/hppa: Implement LDWA...
Checking PATCH 24/43: target/hppa: Implement LPA...
Checking PATCH 25/43: target/hppa: Implement LCI...
Checking PATCH 26/43: target/hppa: Implement SYNCDMA insn...
Checking PATCH 27/43: target/hppa: Implement halt and reset instructions...
Checking PATCH 28/43: target/hppa: Optimize for flat addressing space...
Checking PATCH 29/43: target/hppa: Add system registers to gdbstub...
Checking PATCH 30/43: target/hppa: Add migration for the cpu...
ERROR: "(foo*)" should be "(foo *)"
#202: FILE: target/hppa/machine.c:156:
+ VMSTATE_ARRAY(tlb, CPUHPPAState, ARRAY_SIZE(((CPUHPPAState*)0)->tlb), 0,
total: 1 errors, 0 warnings, 198 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 31/43: target/hppa: Implement B,GATE insn...
Checking PATCH 32/43: target/hppa: Only use EXCP_DTLB_MISS...
Checking PATCH 33/43: qom: Add MMU_DEBUG_LOAD...
Checking PATCH 34/43: target/hppa: Use MMU_DEBUG_LOAD when reloading for CR[IIR]...
Checking PATCH 35/43: target/hppa: Increase number of temp regs...
Checking PATCH 36/43: target/hppa: Fix comment...
Checking PATCH 37/43: target/hppa: Implement LDSID for system mode...
Checking PATCH 38/43: target/hppa: Implement a pause instruction...
Checking PATCH 39/43: target/hppa: Implement STWA...
Checking PATCH 40/43: target/hppa: Enable MTTCG...
Checking PATCH 41/43: hw/hppa: Implement DINO system board...
ERROR: spaces required around that '+' (ctx:VxV)
#125: FILE: hw/hppa/dino.c:64:
+#define DINO_LOCAL_IRQS (DINO_IRQS+1)
^
ERROR: spaces required around that '<<' (ctx:VxV)
#127: FILE: hw/hppa/dino.c:66:
+#define DINO_MASK_IRQ(x) (1<<(x))
^
ERROR: do not use C99 // comments
#141: FILE: hw/hppa/dino.c:80:
+#define DINO_MEM_CHUNK_SIZE (8*1024*1024) // 8MB
ERROR: spaces required around that '*' (ctx:VxV)
#141: FILE: hw/hppa/dino.c:80:
+#define DINO_MEM_CHUNK_SIZE (8*1024*1024) // 8MB
^
ERROR: spaces required around that '*' (ctx:VxV)
#141: FILE: hw/hppa/dino.c:80:
+#define DINO_MEM_CHUNK_SIZE (8*1024*1024) // 8MB
^
ERROR: spaces required around that '+' (ctx:VxV)
#217: FILE: hw/hppa/dino.c:156:
+ case DINO_PCI_IO_DATA+2:
^
ERROR: spaces required around that '+' (ctx:VxV)
#219: FILE: hw/hppa/dino.c:158:
+ case DINO_PCI_IO_DATA+1:
^
ERROR: spaces required around that '+' (ctx:VxV)
#220: FILE: hw/hppa/dino.c:159:
+ case DINO_PCI_IO_DATA+3:
^
ERROR: spaces required around that '+' (ctx:VxV)
#237: FILE: hw/hppa/dino.c:176:
+ case DINO_PCI_IO_DATA ... DINO_PCI_IO_DATA+3:
^
ERROR: spaces required around that '+' (ctx:VxV)
#309: FILE: hw/hppa/dino.c:248:
+ case DINO_IO_DATA ... DINO_PCI_IO_DATA+3:
^
ERROR: code indent should never use tabs
#589: FILE: hw/hppa/hppa_hardware.h:3:
+#define FIRMWARE_START^I0xf0000000$
ERROR: code indent should never use tabs
#590: FILE: hw/hppa/hppa_hardware.h:4:
+#define FIRMWARE_END^I0xf0800000$
ERROR: code indent should never use tabs
#592: FILE: hw/hppa/hppa_hardware.h:6:
+#define DEVICE_HPA_LEN^I0x00100000$
ERROR: code indent should never use tabs
#594: FILE: hw/hppa/hppa_hardware.h:8:
+#define GSC_HPA^I^I0xffc00000$
ERROR: code indent should never use tabs
#595: FILE: hw/hppa/hppa_hardware.h:9:
+#define DINO_HPA^I0xfff80000$
ERROR: code indent should never use tabs
#596: FILE: hw/hppa/hppa_hardware.h:10:
+#define DINO_UART_HPA^I0xfff83000$
ERROR: code indent should never use tabs
#597: FILE: hw/hppa/hppa_hardware.h:11:
+#define DINO_UART_BASE^I0xfff83800$
ERROR: code indent should never use tabs
#598: FILE: hw/hppa/hppa_hardware.h:12:
+#define DINO_SCSI_HPA^I0xfff8c000$
ERROR: code indent should never use tabs
#599: FILE: hw/hppa/hppa_hardware.h:13:
+#define LASI_HPA^I0xffd00000$
ERROR: code indent should never use tabs
#600: FILE: hw/hppa/hppa_hardware.h:14:
+#define LASI_UART_HPA^I0xffd05000$
ERROR: code indent should never use tabs
#601: FILE: hw/hppa/hppa_hardware.h:15:
+#define LASI_SCSI_HPA^I0xffd06000$
ERROR: code indent should never use tabs
#602: FILE: hw/hppa/hppa_hardware.h:16:
+#define LASI_LAN_HPA^I0xffd07000$
ERROR: code indent should never use tabs
#603: FILE: hw/hppa/hppa_hardware.h:17:
+#define LASI_LPT_HPA^I0xffd02000$
ERROR: code indent should never use tabs
#604: FILE: hw/hppa/hppa_hardware.h:18:
+#define LASI_AUDIO_HPA^I0xffd04000$
ERROR: code indent should never use tabs
#605: FILE: hw/hppa/hppa_hardware.h:19:
+#define LASI_PS2KBD_HPA^I0xffd08000$
ERROR: code indent should never use tabs
#606: FILE: hw/hppa/hppa_hardware.h:20:
+#define LASI_PS2MOU_HPA^I0xffd08100$
ERROR: code indent should never use tabs
#607: FILE: hw/hppa/hppa_hardware.h:21:
+#define LASI_GFX_HPA^I0xf8000000$
ERROR: code indent should never use tabs
#608: FILE: hw/hppa/hppa_hardware.h:22:
+#define CPU_HPA^I^I0xfff10000$
ERROR: code indent should never use tabs
#609: FILE: hw/hppa/hppa_hardware.h:23:
+#define MEMORY_HPA^I0xfffbf000$
ERROR: if this code is redundant consider removing it
#629: FILE: hw/hppa/hppa_hardware.h:43:
+#if 0
WARNING: line over 80 characters
#630: FILE: hw/hppa/hppa_hardware.h:44:
+[ 2.160168] 1. Phantom PseudoBC GSC+ Port at 0xffc00000 [8] { 7, 0x0, 0x504, 0x00000 }
ERROR: space prohibited before open square bracket '['
#630: FILE: hw/hppa/hppa_hardware.h:44:
+[ 2.160168] 1. Phantom PseudoBC GSC+ Port at 0xffc00000 [8] { 7, 0x0, 0x504, 0x00000 }
ERROR: spaces required around that '+' (ctx:VxW)
#630: FILE: hw/hppa/hppa_hardware.h:44:
+[ 2.160168] 1. Phantom PseudoBC GSC+ Port at 0xffc00000 [8] { 7, 0x0, 0x504, 0x00000 }
^
ERROR: space prohibited after that open square bracket '['
#630: FILE: hw/hppa/hppa_hardware.h:44:
+[ 2.160168] 1. Phantom PseudoBC GSC+ Port at 0xffc00000 [8] { 7, 0x0, 0x504, 0x00000 }
WARNING: line over 80 characters
#631: FILE: hw/hppa/hppa_hardware.h:45:
+[ 2.260162] 2. Dino PCI Bridge at 0xfff80000 [8/0] { 13, 0x3, 0x680, 0x0000a }
ERROR: space prohibited before open square bracket '['
#631: FILE: hw/hppa/hppa_hardware.h:45:
+[ 2.260162] 2. Dino PCI Bridge at 0xfff80000 [8/0] { 13, 0x3, 0x680, 0x0000a }
ERROR: spaces required around that '/' (ctx:VxV)
#631: FILE: hw/hppa/hppa_hardware.h:45:
+[ 2.260162] 2. Dino PCI Bridge at 0xfff80000 [8/0] { 13, 0x3, 0x680, 0x0000a }
^
ERROR: space prohibited after that open square bracket '['
#631: FILE: hw/hppa/hppa_hardware.h:45:
+[ 2.260162] 2. Dino PCI Bridge at 0xfff80000 [8/0] { 13, 0x3, 0x680, 0x0000a }
ERROR: line over 90 characters
#632: FILE: hw/hppa/hppa_hardware.h:46:
+[ 2.350158] 3. Merlin+ 132 Dino RS-232 at 0xfff83000 [8/0/63] { 10, 0x0, 0x022, 0x0008c }
ERROR: space prohibited before open square bracket '['
#632: FILE: hw/hppa/hppa_hardware.h:46:
+[ 2.350158] 3. Merlin+ 132 Dino RS-232 at 0xfff83000 [8/0/63] { 10, 0x0, 0x022, 0x0008c }
ERROR: spaces required around that '+' (ctx:VxW)
#632: FILE: hw/hppa/hppa_hardware.h:46:
+[ 2.350158] 3. Merlin+ 132 Dino RS-232 at 0xfff83000 [8/0/63] { 10, 0x0, 0x022, 0x0008c }
^
ERROR: spaces required around that '-' (ctx:VxV)
#632: FILE: hw/hppa/hppa_hardware.h:46:
+[ 2.350158] 3. Merlin+ 132 Dino RS-232 at 0xfff83000 [8/0/63] { 10, 0x0, 0x022, 0x0008c }
^
ERROR: spaces required around that '/' (ctx:VxV)
#632: FILE: hw/hppa/hppa_hardware.h:46:
+[ 2.350158] 3. Merlin+ 132 Dino RS-232 at 0xfff83000 [8/0/63] { 10, 0x0, 0x022, 0x0008c }
^
ERROR: spaces required around that '/' (ctx:VxV)
#632: FILE: hw/hppa/hppa_hardware.h:46:
+[ 2.350158] 3. Merlin+ 132 Dino RS-232 at 0xfff83000 [8/0/63] { 10, 0x0, 0x022, 0x0008c }
^
ERROR: space prohibited after that open square bracket '['
#632: FILE: hw/hppa/hppa_hardware.h:46:
+[ 2.350158] 3. Merlin+ 132 Dino RS-232 at 0xfff83000 [8/0/63] { 10, 0x0, 0x022, 0x0008c }
WARNING: line over 80 characters
#633: FILE: hw/hppa/hppa_hardware.h:47:
+[ 2.450160] 4. Merlin 160 Core FW-SCSI at 0xfff8c000 [8/12] { 4, 0x0, 0x03d, 0x00089 }
ERROR: space prohibited before open square bracket '['
#633: FILE: hw/hppa/hppa_hardware.h:47:
+[ 2.450160] 4. Merlin 160 Core FW-SCSI at 0xfff8c000 [8/12] { 4, 0x0, 0x03d, 0x00089 }
ERROR: spaces required around that '-' (ctx:VxV)
#633: FILE: hw/hppa/hppa_hardware.h:47:
+[ 2.450160] 4. Merlin 160 Core FW-SCSI at 0xfff8c000 [8/12] { 4, 0x0, 0x03d, 0x00089 }
^
ERROR: spaces required around that '/' (ctx:VxV)
#633: FILE: hw/hppa/hppa_hardware.h:47:
+[ 2.450160] 4. Merlin 160 Core FW-SCSI at 0xfff8c000 [8/12] { 4, 0x0, 0x03d, 0x00089 }
^
ERROR: space prohibited after that open square bracket '['
#633: FILE: hw/hppa/hppa_hardware.h:47:
+[ 2.450160] 4. Merlin 160 Core FW-SCSI at 0xfff8c000 [8/12] { 4, 0x0, 0x03d, 0x00089 }
ERROR: line over 90 characters
#634: FILE: hw/hppa/hppa_hardware.h:48:
+[ 2.550161] 5. Merlin 160 Core BA at 0xffd00000 [8/16] { 11, 0x0, 0x03d, 0x00081 }, additional addresses: 0xffd0c000 0xffc00000
ERROR: space prohibited before open square bracket '['
#634: FILE: hw/hppa/hppa_hardware.h:48:
+[ 2.550161] 5. Merlin 160 Core BA at 0xffd00000 [8/16] { 11, 0x0, 0x03d, 0x00081 }, additional addresses: 0xffd0c000 0xffc00000
ERROR: spaces required around that '/' (ctx:VxV)
#634: FILE: hw/hppa/hppa_hardware.h:48:
+[ 2.550161] 5. Merlin 160 Core BA at 0xffd00000 [8/16] { 11, 0x0, 0x03d, 0x00081 }, additional addresses: 0xffd0c000 0xffc00000
^
ERROR: spaces required around that ':' (ctx:VxW)
#634: FILE: hw/hppa/hppa_hardware.h:48:
+[ 2.550161] 5. Merlin 160 Core BA at 0xffd00000 [8/16] { 11, 0x0, 0x03d, 0x00081 }, additional addresses: 0xffd0c000 0xffc00000
^
ERROR: space prohibited after that open square bracket '['
#634: FILE: hw/hppa/hppa_hardware.h:48:
+[ 2.550161] 5. Merlin 160 Core BA at 0xffd00000 [8/16] { 11, 0x0, 0x03d, 0x00081 }, additional addresses: 0xffd0c000 0xffc00000
ERROR: line over 90 characters
#635: FILE: hw/hppa/hppa_hardware.h:49:
+[ 2.700165] 6. Merlin 160 Core RS-232 at 0xffd05000 [8/16/4] { 10, 0x0, 0x03d, 0x0008c }
ERROR: space prohibited before open square bracket '['
#635: FILE: hw/hppa/hppa_hardware.h:49:
+[ 2.700165] 6. Merlin 160 Core RS-232 at 0xffd05000 [8/16/4] { 10, 0x0, 0x03d, 0x0008c }
ERROR: spaces required around that '-' (ctx:VxV)
#635: FILE: hw/hppa/hppa_hardware.h:49:
+[ 2.700165] 6. Merlin 160 Core RS-232 at 0xffd05000 [8/16/4] { 10, 0x0, 0x03d, 0x0008c }
^
ERROR: spaces required around that '/' (ctx:VxV)
#635: FILE: hw/hppa/hppa_hardware.h:49:
+[ 2.700165] 6. Merlin 160 Core RS-232 at 0xffd05000 [8/16/4] { 10, 0x0, 0x03d, 0x0008c }
^
ERROR: spaces required around that '/' (ctx:VxV)
#635: FILE: hw/hppa/hppa_hardware.h:49:
+[ 2.700165] 6. Merlin 160 Core RS-232 at 0xffd05000 [8/16/4] { 10, 0x0, 0x03d, 0x0008c }
^
ERROR: space prohibited after that open square bracket '['
#635: FILE: hw/hppa/hppa_hardware.h:49:
+[ 2.700165] 6. Merlin 160 Core RS-232 at 0xffd05000 [8/16/4] { 10, 0x0, 0x03d, 0x0008c }
WARNING: line over 80 characters
#636: FILE: hw/hppa/hppa_hardware.h:50:
+[ 2.800160] 7. Merlin 160 Core SCSI at 0xffd06000 [8/16/5] { 10, 0x0, 0x03d, 0x00082 }
ERROR: space prohibited before open square bracket '['
#636: FILE: hw/hppa/hppa_hardware.h:50:
+[ 2.800160] 7. Merlin 160 Core SCSI at 0xffd06000 [8/16/5] { 10, 0x0, 0x03d, 0x00082 }
ERROR: spaces required around that '/' (ctx:VxV)
#636: FILE: hw/hppa/hppa_hardware.h:50:
+[ 2.800160] 7. Merlin 160 Core SCSI at 0xffd06000 [8/16/5] { 10, 0x0, 0x03d, 0x00082 }
^
ERROR: spaces required around that '/' (ctx:VxV)
#636: FILE: hw/hppa/hppa_hardware.h:50:
+[ 2.800160] 7. Merlin 160 Core SCSI at 0xffd06000 [8/16/5] { 10, 0x0, 0x03d, 0x00082 }
^
ERROR: space prohibited after that open square bracket '['
#636: FILE: hw/hppa/hppa_hardware.h:50:
+[ 2.800160] 7. Merlin 160 Core SCSI at 0xffd06000 [8/16/5] { 10, 0x0, 0x03d, 0x00082 }
ERROR: line over 90 characters
#637: FILE: hw/hppa/hppa_hardware.h:51:
+[ 2.900162] 8. Merlin 160 Core LAN (802.3) at 0xffd07000 [8/16/6] { 10, 0x0, 0x03d, 0x0008a }
ERROR: space prohibited before open square bracket '['
#637: FILE: hw/hppa/hppa_hardware.h:51:
+[ 2.900162] 8. Merlin 160 Core LAN (802.3) at 0xffd07000 [8/16/6] { 10, 0x0, 0x03d, 0x0008a }
ERROR: space prohibited between function name and open parenthesis '('
#637: FILE: hw/hppa/hppa_hardware.h:51:
+[ 2.900162] 8. Merlin 160 Core LAN (802.3) at 0xffd07000 [8/16/6] { 10, 0x0, 0x03d, 0x0008a }
ERROR: spaces required around that '/' (ctx:VxV)
#637: FILE: hw/hppa/hppa_hardware.h:51:
+[ 2.900162] 8. Merlin 160 Core LAN (802.3) at 0xffd07000 [8/16/6] { 10, 0x0, 0x03d, 0x0008a }
^
ERROR: spaces required around that '/' (ctx:VxV)
#637: FILE: hw/hppa/hppa_hardware.h:51:
+[ 2.900162] 8. Merlin 160 Core LAN (802.3) at 0xffd07000 [8/16/6] { 10, 0x0, 0x03d, 0x0008a }
^
ERROR: space prohibited after that open square bracket '['
#637: FILE: hw/hppa/hppa_hardware.h:51:
+[ 2.900162] 8. Merlin 160 Core LAN (802.3) at 0xffd07000 [8/16/6] { 10, 0x0, 0x03d, 0x0008a }
ERROR: line over 90 characters
#638: FILE: hw/hppa/hppa_hardware.h:52:
+[ 3.010187] 9. Merlin 160 Core Centronics at 0xffd02000 [8/16/0] { 10, 0x0, 0x03d, 0x00074 }, additional addresses: 0xffd01000 0xffd03000
ERROR: space prohibited before open square bracket '['
#638: FILE: hw/hppa/hppa_hardware.h:52:
+[ 3.010187] 9. Merlin 160 Core Centronics at 0xffd02000 [8/16/0] { 10, 0x0, 0x03d, 0x00074 }, additional addresses: 0xffd01000 0xffd03000
ERROR: spaces required around that '/' (ctx:VxV)
#638: FILE: hw/hppa/hppa_hardware.h:52:
+[ 3.010187] 9. Merlin 160 Core Centronics at 0xffd02000 [8/16/0] { 10, 0x0, 0x03d, 0x00074 }, additional addresses: 0xffd01000 0xffd03000
^
ERROR: spaces required around that '/' (ctx:VxV)
#638: FILE: hw/hppa/hppa_hardware.h:52:
+[ 3.010187] 9. Merlin 160 Core Centronics at 0xffd02000 [8/16/0] { 10, 0x0, 0x03d, 0x00074 }, additional addresses: 0xffd01000 0xffd03000
^
ERROR: spaces required around that ':' (ctx:VxW)
#638: FILE: hw/hppa/hppa_hardware.h:52:
+[ 3.010187] 9. Merlin 160 Core Centronics at 0xffd02000 [8/16/0] { 10, 0x0, 0x03d, 0x00074 }, additional addresses: 0xffd01000 0xffd03000
^
ERROR: space prohibited after that open square bracket '['
#638: FILE: hw/hppa/hppa_hardware.h:52:
+[ 3.010187] 9. Merlin 160 Core Centronics at 0xffd02000 [8/16/0] { 10, 0x0, 0x03d, 0x00074 }, additional addresses: 0xffd01000 0xffd03000
ERROR: line over 90 characters
#639: FILE: hw/hppa/hppa_hardware.h:53:
+[ 3.170204] 10. Merlin 160 Core Audio at 0xffd04000 [8/16/1] { 10, 0x4, 0x03d, 0x0007b }
ERROR: space prohibited before open square bracket '['
#639: FILE: hw/hppa/hppa_hardware.h:53:
+[ 3.170204] 10. Merlin 160 Core Audio at 0xffd04000 [8/16/1] { 10, 0x4, 0x03d, 0x0007b }
ERROR: spaces required around that '/' (ctx:VxV)
#639: FILE: hw/hppa/hppa_hardware.h:53:
+[ 3.170204] 10. Merlin 160 Core Audio at 0xffd04000 [8/16/1] { 10, 0x4, 0x03d, 0x0007b }
^
ERROR: spaces required around that '/' (ctx:VxV)
#639: FILE: hw/hppa/hppa_hardware.h:53:
+[ 3.170204] 10. Merlin 160 Core Audio at 0xffd04000 [8/16/1] { 10, 0x4, 0x03d, 0x0007b }
^
ERROR: space prohibited after that open square bracket '['
#639: FILE: hw/hppa/hppa_hardware.h:53:
+[ 3.170204] 10. Merlin 160 Core Audio at 0xffd04000 [8/16/1] { 10, 0x4, 0x03d, 0x0007b }
ERROR: line over 90 characters
#640: FILE: hw/hppa/hppa_hardware.h:54:
+[ 3.270157] 11. Merlin 160 Core PS/2 Port at 0xffd08000 [8/16/7] { 10, 0x0, 0x03d, 0x00084 }
ERROR: space prohibited before open square bracket '['
#640: FILE: hw/hppa/hppa_hardware.h:54:
+[ 3.270157] 11. Merlin 160 Core PS/2 Port at 0xffd08000 [8/16/7] { 10, 0x0, 0x03d, 0x00084 }
ERROR: spaces required around that '/' (ctx:VxV)
#640: FILE: hw/hppa/hppa_hardware.h:54:
+[ 3.270157] 11. Merlin 160 Core PS/2 Port at 0xffd08000 [8/16/7] { 10, 0x0, 0x03d, 0x00084 }
^
ERROR: spaces required around that '/' (ctx:VxV)
#640: FILE: hw/hppa/hppa_hardware.h:54:
+[ 3.270157] 11. Merlin 160 Core PS/2 Port at 0xffd08000 [8/16/7] { 10, 0x0, 0x03d, 0x00084 }
^
ERROR: spaces required around that '/' (ctx:VxV)
#640: FILE: hw/hppa/hppa_hardware.h:54:
+[ 3.270157] 11. Merlin 160 Core PS/2 Port at 0xffd08000 [8/16/7] { 10, 0x0, 0x03d, 0x00084 }
^
ERROR: space prohibited after that open square bracket '['
#640: FILE: hw/hppa/hppa_hardware.h:54:
+[ 3.270157] 11. Merlin 160 Core PS/2 Port at 0xffd08000 [8/16/7] { 10, 0x0, 0x03d, 0x00084 }
ERROR: line over 90 characters
#641: FILE: hw/hppa/hppa_hardware.h:55:
+[ 3.370151] 12. Merlin 160 Core PS/2 Port at 0xffd08100 [8/16/8] { 10, 0x0, 0x03d, 0x00084 }
ERROR: space prohibited before open square bracket '['
#641: FILE: hw/hppa/hppa_hardware.h:55:
+[ 3.370151] 12. Merlin 160 Core PS/2 Port at 0xffd08100 [8/16/8] { 10, 0x0, 0x03d, 0x00084 }
ERROR: spaces required around that '/' (ctx:VxV)
#641: FILE: hw/hppa/hppa_hardware.h:55:
+[ 3.370151] 12. Merlin 160 Core PS/2 Port at 0xffd08100 [8/16/8] { 10, 0x0, 0x03d, 0x00084 }
^
ERROR: spaces required around that '/' (ctx:VxV)
#641: FILE: hw/hppa/hppa_hardware.h:55:
+[ 3.370151] 12. Merlin 160 Core PS/2 Port at 0xffd08100 [8/16/8] { 10, 0x0, 0x03d, 0x00084 }
^
ERROR: spaces required around that '/' (ctx:VxV)
#641: FILE: hw/hppa/hppa_hardware.h:55:
+[ 3.370151] 12. Merlin 160 Core PS/2 Port at 0xffd08100 [8/16/8] { 10, 0x0, 0x03d, 0x00084 }
^
ERROR: space prohibited after that open square bracket '['
#641: FILE: hw/hppa/hppa_hardware.h:55:
+[ 3.370151] 12. Merlin 160 Core PS/2 Port at 0xffd08100 [8/16/8] { 10, 0x0, 0x03d, 0x00084 }
WARNING: line over 80 characters
#642: FILE: hw/hppa/hppa_hardware.h:56:
+[ 3.480148] 13. Coral SGC Graphics at 0xfa000000 [8/4] { 10, 0x0, 0x004, 0x00077 }
ERROR: space prohibited before open square bracket '['
#642: FILE: hw/hppa/hppa_hardware.h:56:
+[ 3.480148] 13. Coral SGC Graphics at 0xfa000000 [8/4] { 10, 0x0, 0x004, 0x00077 }
ERROR: spaces required around that '/' (ctx:VxV)
#642: FILE: hw/hppa/hppa_hardware.h:56:
+[ 3.480148] 13. Coral SGC Graphics at 0xfa000000 [8/4] { 10, 0x0, 0x004, 0x00077 }
^
ERROR: space prohibited after that open square bracket '['
#642: FILE: hw/hppa/hppa_hardware.h:56:
+[ 3.480148] 13. Coral SGC Graphics at 0xfa000000 [8/4] { 10, 0x0, 0x004, 0x00077 }
WARNING: line over 80 characters
#643: FILE: hw/hppa/hppa_hardware.h:57:
+[ 3.570145] 14. Coral SGC Graphics at 0xf4000000 [8/8] { 10, 0x0, 0x004, 0x00077 }
ERROR: space prohibited before open square bracket '['
#643: FILE: hw/hppa/hppa_hardware.h:57:
+[ 3.570145] 14. Coral SGC Graphics at 0xf4000000 [8/8] { 10, 0x0, 0x004, 0x00077 }
ERROR: spaces required around that '/' (ctx:VxV)
#643: FILE: hw/hppa/hppa_hardware.h:57:
+[ 3.570145] 14. Coral SGC Graphics at 0xf4000000 [8/8] { 10, 0x0, 0x004, 0x00077 }
^
ERROR: space prohibited after that open square bracket '['
#643: FILE: hw/hppa/hppa_hardware.h:57:
+[ 3.570145] 14. Coral SGC Graphics at 0xf4000000 [8/8] { 10, 0x0, 0x004, 0x00077 }
ERROR: line over 90 characters
#644: FILE: hw/hppa/hppa_hardware.h:58:
+[ 3.670146] 15. Gecko GSC Core Graphics at 0xf8000000 [8/24] { 10, 0x0, 0x016, 0x00085 }, additional addresses: 0xf0011000
ERROR: space prohibited before open square bracket '['
#644: FILE: hw/hppa/hppa_hardware.h:58:
+[ 3.670146] 15. Gecko GSC Core Graphics at 0xf8000000 [8/24] { 10, 0x0, 0x016, 0x00085 }, additional addresses: 0xf0011000
ERROR: spaces required around that '/' (ctx:VxV)
#644: FILE: hw/hppa/hppa_hardware.h:58:
+[ 3.670146] 15. Gecko GSC Core Graphics at 0xf8000000 [8/24] { 10, 0x0, 0x016, 0x00085 }, additional addresses: 0xf0011000
^
ERROR: spaces required around that ':' (ctx:VxW)
#644: FILE: hw/hppa/hppa_hardware.h:58:
+[ 3.670146] 15. Gecko GSC Core Graphics at 0xf8000000 [8/24] { 10, 0x0, 0x016, 0x00085 }, additional addresses: 0xf0011000
^
ERROR: space prohibited after that open square bracket '['
#644: FILE: hw/hppa/hppa_hardware.h:58:
+[ 3.670146] 15. Gecko GSC Core Graphics at 0xf8000000 [8/24] { 10, 0x0, 0x016, 0x00085 }, additional addresses: 0xf0011000
ERROR: line over 90 characters
#645: FILE: hw/hppa/hppa_hardware.h:59:
+[ 3.810147] 16. Merlin L2 160 (9000/778/B160L) at 0xfffbe000 [62] { 0, 0x0, 0x502, 0x00004 }
ERROR: space prohibited before open square bracket '['
#645: FILE: hw/hppa/hppa_hardware.h:59:
+[ 3.810147] 16. Merlin L2 160 (9000/778/B160L) at 0xfffbe000 [62] { 0, 0x0, 0x502, 0x00004 }
ERROR: spaces required around that '/' (ctx:VxV)
#645: FILE: hw/hppa/hppa_hardware.h:59:
+[ 3.810147] 16. Merlin L2 160 (9000/778/B160L) at 0xfffbe000 [62] { 0, 0x0, 0x502, 0x00004 }
^
ERROR: spaces required around that '/' (ctx:VxV)
#645: FILE: hw/hppa/hppa_hardware.h:59:
+[ 3.810147] 16. Merlin L2 160 (9000/778/B160L) at 0xfffbe000 [62] { 0, 0x0, 0x502, 0x00004 }
^
ERROR: space prohibited after that open square bracket '['
#645: FILE: hw/hppa/hppa_hardware.h:59:
+[ 3.810147] 16. Merlin L2 160 (9000/778/B160L) at 0xfffbe000 [62] { 0, 0x0, 0x502, 0x00004 }
ERROR: space prohibited before open square bracket '['
#646: FILE: hw/hppa/hppa_hardware.h:60:
+[ 3.920139] 17. Memory at 0xfffbf000 [63] { 1, 0x0, 0x067, 0x00009 }
ERROR: space prohibited after that open square bracket '['
#646: FILE: hw/hppa/hppa_hardware.h:60:
+[ 3.920139] 17. Memory at 0xfffbf000 [63] { 1, 0x0, 0x067, 0x00009 }
ERROR: line over 90 characters
#647: FILE: hw/hppa/hppa_hardware.h:61:
+[ 4.000142] 18. Merlin+ 132 Dino PS/2 Port at 0xfff81000 [1] { 10, 0x0, 0x022, 0x00096 }
ERROR: space prohibited before open square bracket '['
#647: FILE: hw/hppa/hppa_hardware.h:61:
+[ 4.000142] 18. Merlin+ 132 Dino PS/2 Port at 0xfff81000 [1] { 10, 0x0, 0x022, 0x00096 }
ERROR: spaces required around that '+' (ctx:VxW)
#647: FILE: hw/hppa/hppa_hardware.h:61:
+[ 4.000142] 18. Merlin+ 132 Dino PS/2 Port at 0xfff81000 [1] { 10, 0x0, 0x022, 0x00096 }
^
ERROR: spaces required around that '/' (ctx:VxV)
#647: FILE: hw/hppa/hppa_hardware.h:61:
+[ 4.000142] 18. Merlin+ 132 Dino PS/2 Port at 0xfff81000 [1] { 10, 0x0, 0x022, 0x00096 }
^
ERROR: space prohibited after that open square bracket '['
#647: FILE: hw/hppa/hppa_hardware.h:61:
+[ 4.000142] 18. Merlin+ 132 Dino PS/2 Port at 0xfff81000 [1] { 10, 0x0, 0x022, 0x00096 }
ERROR: space prohibited between function name and open parenthesis '('
#648: FILE: hw/hppa/hppa_hardware.h:62:
+[ 4.231309] CPU(s): 1 out of 1 PA7300LC (PCX-L2) at 160.000000 MHz online
ERROR: spaces required around that ':' (ctx:VxW)
#648: FILE: hw/hppa/hppa_hardware.h:62:
+[ 4.231309] CPU(s): 1 out of 1 PA7300LC (PCX-L2) at 160.000000 MHz online
^
ERROR: spaces required around that '-' (ctx:VxV)
#648: FILE: hw/hppa/hppa_hardware.h:62:
+[ 4.231309] CPU(s): 1 out of 1 PA7300LC (PCX-L2) at 160.000000 MHz online
^
ERROR: space prohibited after that open square bracket '['
#648: FILE: hw/hppa/hppa_hardware.h:62:
+[ 4.231309] CPU(s): 1 out of 1 PA7300LC (PCX-L2) at 160.000000 MHz online
ERROR: spaces required around that '/' (ctx:VxV)
#650: FILE: hw/hppa/hppa_hardware.h:64:
+./hppa-softmmu/qemu-system-hppa -kernel bios.bin -nographic -serial mon:stdio
^
ERROR: spaces required around that '-' (ctx:VxV)
#650: FILE: hw/hppa/hppa_hardware.h:64:
+./hppa-softmmu/qemu-system-hppa -kernel bios.bin -nographic -serial mon:stdio
^
ERROR: spaces required around that '/' (ctx:VxV)
#650: FILE: hw/hppa/hppa_hardware.h:64:
+./hppa-softmmu/qemu-system-hppa -kernel bios.bin -nographic -serial mon:stdio
^
ERROR: spaces required around that '-' (ctx:VxV)
#650: FILE: hw/hppa/hppa_hardware.h:64:
+./hppa-softmmu/qemu-system-hppa -kernel bios.bin -nographic -serial mon:stdio
^
ERROR: spaces required around that '-' (ctx:VxV)
#650: FILE: hw/hppa/hppa_hardware.h:64:
+./hppa-softmmu/qemu-system-hppa -kernel bios.bin -nographic -serial mon:stdio
^
ERROR: spaces required around that '-' (ctx:WxV)
#650: FILE: hw/hppa/hppa_hardware.h:64:
+./hppa-softmmu/qemu-system-hppa -kernel bios.bin -nographic -serial mon:stdio
^
ERROR: spaces required around that '-' (ctx:WxV)
#650: FILE: hw/hppa/hppa_hardware.h:64:
+./hppa-softmmu/qemu-system-hppa -kernel bios.bin -nographic -serial mon:stdio
^
ERROR: spaces required around that '-' (ctx:WxV)
#650: FILE: hw/hppa/hppa_hardware.h:64:
+./hppa-softmmu/qemu-system-hppa -kernel bios.bin -nographic -serial mon:stdio
^
ERROR: spaces required around that ':' (ctx:VxV)
#650: FILE: hw/hppa/hppa_hardware.h:64:
+./hppa-softmmu/qemu-system-hppa -kernel bios.bin -nographic -serial mon:stdio
^
ERROR: space required after that ',' (ctx:VxV)
#760: FILE: hw/hppa/machine.c:83:
+ cpu[i], g_strdup_printf("cpu%ld-io-eir",i), 4);
^
ERROR: spaces required around that '*' (ctx:VxV)
#761: FILE: hw/hppa/machine.c:84:
+ memory_region_add_subregion(addr_space, CPU_HPA + i*0x1000, cpu_region);
^
ERROR: spaces required around that '*' (ctx:VxV)
#929: FILE: hw/hppa/machine.c:252:
+ cpu[i]->env.gr[5] = CPU_HPA + i*0x1000;
^
total: 130 errors, 6 warnings, 995 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 42/43: pc-bios: Add hppa-firmware.img and git submodule...
Checking PATCH 43/43: hw/hppa: Add MAINTAINERS entry...
=== OUTPUT END ===
Test command exited with code: 1
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [Qemu-devel] [PULL 00/43] Add hppa-softmmu
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (43 preceding siblings ...)
2018-01-22 4:27 ` [Qemu-devel] [PULL 00/43] Add hppa-softmmu no-reply
@ 2018-01-22 4:38 ` no-reply
2018-01-22 4:57 ` no-reply
2018-01-23 10:14 ` Peter Maydell
46 siblings, 0 replies; 48+ messages in thread
From: no-reply @ 2018-01-22 4:38 UTC (permalink / raw)
To: richard.henderson; +Cc: famz, qemu-devel, peter.maydell
Hi,
This series failed build test on s390x host. Please find the details below.
Type: series
Message-id: 20180122034217.19593-1-richard.henderson@linaro.org
Subject: [Qemu-devel] [PULL 00/43] Add hppa-softmmu
=== TEST SCRIPT BEGIN ===
#!/bin/bash
# Testing script will be invoked under the git checkout with
# HEAD pointing to a commit that has the patches applied on top of "base"
# branch
set -e
echo "=== ENV ==="
env
echo "=== PACKAGES ==="
rpm -qa
echo "=== TEST BEGIN ==="
CC=$HOME/bin/cc
INSTALL=$PWD/install
BUILD=$PWD/build
echo -n "Using CC: "
realpath $CC
mkdir -p $BUILD $INSTALL
SRC=$PWD
cd $BUILD
$SRC/configure --cc=$CC --prefix=$INSTALL
make -j4
# XXX: we need reliable clean up
# make check -j4 V=1
make install
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
t [tag update] patchew/20180119114444.7590-1-laurent@vivier.eu -> patchew/20180119114444.7590-1-laurent@vivier.eu
* [new tag] patchew/20180122034217.19593-1-richard.henderson@linaro.org -> patchew/20180122034217.19593-1-richard.henderson@linaro.org
Switched to a new branch 'test'
1687407469 hw/hppa: Add MAINTAINERS entry
a144ceedc7 pc-bios: Add hppa-firmware.img and git submodule
262baa12eb hw/hppa: Implement DINO system board
861011fa36 target/hppa: Enable MTTCG
a33c2a9ba7 target/hppa: Implement STWA
a0bd1a1f9e target/hppa: Implement a pause instruction
dd8a2f5d66 target/hppa: Implement LDSID for system mode
bf83305a76 target/hppa: Fix comment
6573d13b70 target/hppa: Increase number of temp regs
233d10fe7b target/hppa: Use MMU_DEBUG_LOAD when reloading for CR[IIR]
1e7e106211 qom: Add MMU_DEBUG_LOAD
093de557ec target/hppa: Only use EXCP_DTLB_MISS
abd6694b1f target/hppa: Implement B,GATE insn
488f6437c3 target/hppa: Add migration for the cpu
9175ea3f62 target/hppa: Add system registers to gdbstub
5035093e6c target/hppa: Optimize for flat addressing space
a8b31280a6 target/hppa: Implement halt and reset instructions
2776293fe8 target/hppa: Implement SYNCDMA insn
024b754a8d target/hppa: Implement LCI
f6ef83db5e target/hppa: Implement LPA
19a9042865 target/hppa: Implement LDWA
1b1df004c0 target/hppa: Implement P*TLB and P*TLBE insns
40465b87f2 target/hppa: Implement I*TLBA and I*TLBP insns
e4f0feebe5 target/hppa: Log unimplemented instructions
98ca5d9fce target/hppa: Implement the interval timer
8d373824e0 target/hppa: Implement external interrupts
cd7c359f3d target/hppa: Implement tlb_fill
c9f5837fd0 target/hppa: Implement IASQ
29ee03eed4 target/hppa: Avoid privilege level decrease during branches
dfa9805fdd target/hppa: Use space registers in data operations
501224b807 target/hppa: Implement unaligned access trap
c4bc1abb49 target/hppa: Fill in hppa_cpu_do_interrupt/hppa_cpu_exec_interrupt
0986e0762b target/hppa: Implement rfi
d0ca2d6e7c target/hppa: Adjust insn mask for mfctl, w
41b110fb97 target/hppa: Add control registers
071ae8ccbc target/hppa: Add space registers
7e834d986f target/hppa: Implement the system mask instructions
9520134730 target/hppa: Implement mmu_idx from IA privilege level
b190bfe110 target/hppa: Split address size from register size
c20827c03c target/hppa: Define hardware exception types
56fea7df22 target/hppa: Disable gateway page emulation for system mode
264997a4b6 target/hppa: Define the rest of the PSW
d333744720 target/hppa: Skeleton support for hppa-softmmu
=== OUTPUT BEGIN ===
=== ENV ===
LANG=en_US.UTF-8
XDG_SESSION_ID=21549
USER=fam
PWD=/var/tmp/patchew-tester-tmp-z8zo58jf/src
HOME=/home/fam
SHELL=/bin/sh
SHLVL=2
PATCHEW=/home/fam/patchew/patchew-cli -s http://patchew.org --nodebug
LOGNAME=fam
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1012/bus
XDG_RUNTIME_DIR=/run/user/1012
PATH=/usr/bin:/bin
_=/usr/bin/env
=== PACKAGES ===
gpg-pubkey-873529b8-54e386ff
glibc-debuginfo-common-2.24-10.fc25.s390x
fedora-release-26-1.noarch
dejavu-sans-mono-fonts-2.35-4.fc26.noarch
xemacs-filesystem-21.5.34-22.20170124hgf412e9f093d4.fc26.noarch
bash-4.4.12-7.fc26.s390x
freetype-2.7.1-9.fc26.s390x
libSM-1.2.2-5.fc26.s390x
libmpc-1.0.2-6.fc26.s390x
libaio-0.3.110-7.fc26.s390x
libverto-0.2.6-7.fc26.s390x
perl-Scalar-List-Utils-1.48-1.fc26.s390x
iptables-libs-1.6.1-2.fc26.s390x
perl-threads-shared-1.57-1.fc26.s390x
p11-kit-trust-0.23.9-2.fc26.s390x
tcl-8.6.6-2.fc26.s390x
libxshmfence-1.2-4.fc26.s390x
expect-5.45-23.fc26.s390x
perl-Thread-Queue-3.12-1.fc26.noarch
perl-encoding-2.19-6.fc26.s390x
keyutils-1.5.10-1.fc26.s390x
gmp-devel-6.1.2-4.fc26.s390x
enchant-1.6.0-16.fc26.s390x
net-snmp-libs-5.7.3-17.fc26.s390x
python-gobject-base-3.24.1-1.fc26.s390x
python3-distro-1.0.3-1.fc26.noarch
python3-enchant-1.6.10-1.fc26.noarch
python-lockfile-0.11.0-6.fc26.noarch
python2-pyparsing-2.1.10-3.fc26.noarch
python2-lxml-4.1.1-1.fc26.s390x
librados2-10.2.7-2.fc26.s390x
trousers-lib-0.3.13-7.fc26.s390x
libpaper-1.1.24-14.fc26.s390x
libdatrie-0.2.9-4.fc26.s390x
libsoup-2.58.2-1.fc26.s390x
passwd-0.79-9.fc26.s390x
bind99-libs-9.9.10-3.P3.fc26.s390x
python3-rpm-4.13.0.2-1.fc26.s390x
mock-core-configs-27.4-1.fc26.noarch
systemd-233-7.fc26.s390x
virglrenderer-0.6.0-1.20170210git76b3da97b.fc26.s390x
s390utils-ziomon-1.36.1-3.fc26.s390x
s390utils-osasnmpd-1.36.1-3.fc26.s390x
libXrandr-1.5.1-2.fc26.s390x
libglvnd-glx-1.0.0-1.fc26.s390x
texlive-ifxetex-svn19685.0.5-33.fc26.2.noarch
texlive-psnfss-svn33946.9.2a-33.fc26.2.noarch
texlive-dvipdfmx-def-svn40328-33.fc26.2.noarch
texlive-natbib-svn20668.8.31b-33.fc26.2.noarch
texlive-xdvi-bin-svn40750-33.20160520.fc26.2.s390x
texlive-cm-svn32865.0-33.fc26.2.noarch
texlive-beton-svn15878.0-33.fc26.2.noarch
texlive-fpl-svn15878.1.002-33.fc26.2.noarch
texlive-mflogo-svn38628-33.fc26.2.noarch
texlive-texlive-docindex-svn41430-33.fc26.2.noarch
texlive-luaotfload-bin-svn34647.0-33.20160520.fc26.2.noarch
texlive-koma-script-svn41508-33.fc26.2.noarch
texlive-pst-tree-svn24142.1.12-33.fc26.2.noarch
texlive-breqn-svn38099.0.98d-33.fc26.2.noarch
texlive-xetex-svn41438-33.fc26.2.noarch
gstreamer1-plugins-bad-free-1.12.3-1.fc26.s390x
xorg-x11-font-utils-7.5-33.fc26.s390x
ghostscript-fonts-5.50-36.fc26.noarch
libXext-devel-1.3.3-5.fc26.s390x
libusbx-devel-1.0.21-2.fc26.s390x
libglvnd-devel-1.0.0-1.fc26.s390x
emacs-25.3-3.fc26.s390x
alsa-lib-devel-1.1.4.1-1.fc26.s390x
kbd-2.0.4-2.fc26.s390x
dconf-0.26.0-2.fc26.s390x
ccache-3.3.4-1.fc26.s390x
glibc-static-2.25-12.fc26.s390x
mc-4.8.19-5.fc26.s390x
doxygen-1.8.13-9.fc26.s390x
dpkg-1.18.24-1.fc26.s390x
libtdb-1.3.13-1.fc26.s390x
python2-pynacl-1.1.1-1.fc26.s390x
nss-sysinit-3.34.0-1.0.fc26.s390x
kernel-4.13.16-202.fc26.s390x
perl-Filter-1.58-1.fc26.s390x
python2-pip-9.0.1-11.fc26.noarch
dnf-2.7.5-2.fc26.noarch
pcre2-utf16-10.23-11.fc26.s390x
glusterfs-devel-3.10.8-1.fc26.s390x
sssd-common-1.16.0-4.fc26.s390x
python2-sssdconfig-1.16.0-4.fc26.noarch
acpica-tools-20171110-1.fc26.s390x
glibc-debuginfo-2.24-10.fc25.s390x
fedora-repos-26-1.noarch
dejavu-fonts-common-2.35-4.fc26.noarch
bind99-license-9.9.10-3.P3.fc26.noarch
ncurses-libs-6.0-8.20170212.fc26.s390x
libpng-1.6.28-2.fc26.s390x
libICE-1.0.9-9.fc26.s390x
kmod-24-1.fc26.s390x
libseccomp-2.3.2-1.fc26.s390x
perl-Text-ParseWords-3.30-366.fc26.noarch
libtool-ltdl-2.4.6-17.fc26.s390x
perl-threads-2.16-1.fc26.s390x
libselinux-utils-2.6-7.fc26.s390x
userspace-rcu-0.9.3-2.fc26.s390x
libXfont-1.5.2-5.fc26.s390x
perl-Class-Inspector-1.31-3.fc26.noarch
perl-open-1.10-395.fc26.noarch
keyutils-libs-devel-1.5.10-1.fc26.s390x
isl-0.16.1-1.fc26.s390x
libsecret-0.18.5-3.fc26.s390x
compat-openssl10-1.0.2m-1.fc26.s390x
python3-iniparse-0.4-24.fc26.noarch
python3-dateutil-2.6.0-3.fc26.noarch
python3-firewall-0.4.4.5-1.fc26.noarch
python-enum34-1.1.6-1.fc26.noarch
python2-pygments-2.2.0-7.fc26.noarch
python2-dockerfile-parse-0.0.7-1.fc26.noarch
perl-Net-SSLeay-1.81-1.fc26.s390x
hostname-3.18-2.fc26.s390x
libtirpc-1.0.2-0.fc26.s390x
rpm-build-libs-4.13.0.2-1.fc26.s390x
libutempter-1.1.6-9.fc26.s390x
systemd-pam-233-7.fc26.s390x
pcre-utf16-8.41-3.fc26.s390x
libXinerama-1.1.3-7.fc26.s390x
mesa-libGL-17.2.4-2.fc26.s390x
texlive-amsfonts-svn29208.3.04-33.fc26.2.noarch
texlive-caption-svn41409-33.fc26.2.noarch
texlive-enumitem-svn24146.3.5.2-33.fc26.2.noarch
texlive-pdftex-def-svn22653.0.06d-33.fc26.2.noarch
texlive-xdvi-svn40768-33.fc26.2.noarch
texlive-courier-svn35058.0-33.fc26.2.noarch
texlive-charter-svn15878.0-33.fc26.2.noarch
texlive-graphics-def-svn41879-33.fc26.2.noarch
texlive-mfnfss-svn19410.0-33.fc26.2.noarch
texlive-texlive-en-svn41185-33.fc26.2.noarch
texlive-ifplatform-svn21156.0.4-33.fc26.2.noarch
texlive-ms-svn29849.0-33.fc26.2.noarch
texlive-pst-tools-svn34067.0.05-33.fc26.2.noarch
texlive-powerdot-svn38984-33.fc26.2.noarch
texlive-xetexconfig-svn41133-33.fc26.2.noarch
libvdpau-1.1.1-4.fc26.s390x
zlib-devel-1.2.11-2.fc26.s390x
gdk-pixbuf2-devel-2.36.9-1.fc26.s390x
libX11-devel-1.6.5-2.fc26.s390x
libtasn1-devel-4.12-1.fc26.s390x
libglvnd-core-devel-1.0.0-1.fc26.s390x
SDL2-devel-2.0.7-2.fc26.s390x
webkitgtk3-2.4.11-5.fc26.s390x
grubby-8.40-4.fc26.s390x
uboot-tools-2017.05-4.fc26.s390x
cracklib-dicts-2.9.6-5.fc26.s390x
texinfo-6.3-3.fc26.s390x
time-1.7-52.fc26.s390x
python2-deltarpm-3.6-19.fc26.s390x
nss-3.34.0-1.0.fc26.s390x
webkitgtk4-2.18.3-1.fc26.s390x
net-tools-2.0-0.43.20160912git.fc26.s390x
python2-setuptools-37.0.0-1.fc26.noarch
python2-dnf-2.7.5-2.fc26.noarch
pcre2-10.23-11.fc26.s390x
groff-base-1.22.3-10.fc26.s390x
python2-devel-2.7.14-4.fc26.s390x
python2-GitPython-2.1.7-2.fc26.noarch
boost-iostreams-1.63.0-10.fc26.s390x
gpg-pubkey-efe550f5-5220ba41
gpg-pubkey-81b46521-55b3ca9a
filesystem-3.2-40.fc26.s390x
basesystem-11-3.fc26.noarch
js-jquery-3.2.1-1.fc26.noarch
pcre-8.41-3.fc26.s390x
elfutils-libelf-0.169-1.fc26.s390x
libidn-1.33-2.fc26.s390x
libogg-1.3.2-6.fc26.s390x
slang-2.3.1a-2.fc26.s390x
apr-1.6.3-1.fc26.s390x
libxkbcommon-0.7.1-3.fc26.s390x
perl-IO-1.36-395.fc26.s390x
libvorbis-1.3.5-2.fc26.s390x
less-487-3.fc26.s390x
lttng-ust-2.9.0-2.fc26.s390x
OpenEXR-libs-2.2.0-6.fc26.s390x
ipset-libs-6.29-3.fc26.s390x
perl-XML-XPath-1.42-1.fc26.noarch
lua-filesystem-1.6.3-3.fc24.s390x
sqlite-3.20.1-1.fc26.s390x
gstreamer1-1.12.3-1.fc26.s390x
libpwquality-1.3.0-8.fc26.s390x
gettext-libs-0.19.8.1-9.fc26.s390x
python3-chardet-2.3.0-3.fc26.noarch
python3-slip-dbus-0.6.4-6.fc26.noarch
python-chardet-2.3.0-3.fc26.noarch
python2-pyasn1-0.2.3-1.fc26.noarch
python-slip-dbus-0.6.4-6.fc26.noarch
libarchive-3.2.2-4.fc26.s390x
libbabeltrace-1.5.2-2.fc26.s390x
cdparanoia-libs-10.2-22.fc26.s390x
krb5-workstation-1.15.2-4.fc26.s390x
python3-requests-kerberos-0.10.0-4.fc26.noarch
gpgme-1.8.0-12.fc26.s390x
python2-gpg-1.8.0-12.fc26.s390x
shadow-utils-4.3.1-3.fc26.s390x
cryptsetup-libs-1.7.5-1.fc26.s390x
kpartx-0.4.9-88.fc26.s390x
net-snmp-agent-libs-5.7.3-17.fc26.s390x
libXi-1.7.9-2.fc26.s390x
texlive-tetex-svn41059-33.fc26.2.noarch
texlive-tools-svn40934-33.fc26.2.noarch
texlive-bibtex-bin-svn40473-33.20160520.fc26.2.s390x
texlive-mfware-bin-svn40473-33.20160520.fc26.2.s390x
texlive-underscore-svn18261.0-33.fc26.2.noarch
texlive-avantgar-svn31835.0-33.fc26.2.noarch
texlive-anysize-svn15878.0-33.fc26.2.noarch
texlive-lineno-svn21442.4.41-33.fc26.2.noarch
texlive-mathpazo-svn15878.1.003-33.fc26.2.noarch
texlive-soul-svn15878.2.4-33.fc26.2.noarch
texlive-luatexbase-svn38550-33.fc26.2.noarch
texlive-listings-svn37534.1.6-33.fc26.2.noarch
texlive-pstricks-svn41321-33.fc26.2.noarch
texlive-metalogo-svn18611.0.12-33.fc26.2.noarch
texlive-dvipdfmx-svn41149-33.fc26.2.noarch
kbd-legacy-2.0.4-2.fc26.noarch
nspr-devel-4.17.0-1.fc26.s390x
ghostscript-x11-9.20-10.fc26.s390x
libXrender-devel-0.9.10-2.fc26.s390x
libxkbcommon-devel-0.7.1-3.fc26.s390x
mesa-libGL-devel-17.2.4-2.fc26.s390x
sqlite-devel-3.20.1-1.fc26.s390x
usbredir-devel-0.7.1-3.fc26.s390x
libcap-devel-2.25-5.fc26.s390x
brlapi-devel-0.6.6-5.fc26.s390x
fedora-upgrade-27.1-1.fc26.noarch
python3-pygpgme-0.3-22.fc26.s390x
pinentry-0.9.7-3.fc26.s390x
perl-Test-Harness-3.39-1.fc26.noarch
qemu-sanity-check-nodeps-1.1.5-6.fc26.s390x
libldb-1.1.29-5.fc26.s390x
python-libxml2-2.9.4-2.fc26.s390x
nss-util-devel-3.34.0-1.0.fc26.s390x
vim-filesystem-8.0.1360-1.fc26.s390x
webkitgtk4-plugin-process-gtk2-2.18.3-1.fc26.s390x
python2-2.7.14-4.fc26.s390x
libwayland-cursor-1.13.0-3.fc26.s390x
mariadb-config-10.1.29-1.fc26.s390x
gdb-headless-8.0.1-33.fc26.s390x
pulseaudio-libs-devel-11.1-7.fc26.s390x
curl-7.53.1-13.fc26.s390x
json-c-0.12.1-5.fc26.s390x
gpg-pubkey-34ec9cba-54e38751
gpg-pubkey-030d5aed-55b577f0
setup-2.10.5-2.fc26.noarch
lato-fonts-2.015-3.fc26.noarch
web-assets-filesystem-5-5.fc26.noarch
libsepol-2.6-2.fc26.s390x
libcap-2.25-5.fc26.s390x
tcp_wrappers-libs-7.6-85.fc26.s390x
libnl3-3.3.0-1.fc26.s390x
pixman-0.34.0-3.fc26.s390x
lzo-2.08-9.fc26.s390x
perl-5.24.3-395.fc26.s390x
libnl3-cli-3.3.0-1.fc26.s390x
gpm-libs-1.20.7-10.fc26.s390x
libgo-7.2.1-2.fc26.s390x
iso-codes-3.74-2.fc26.noarch
ipset-6.29-3.fc26.s390x
lua-term-0.07-1.fc25.s390x
libdb-utils-5.3.28-24.fc26.s390x
system-python-libs-3.6.3-2.fc26.s390x
dbus-glib-0.108-2.fc26.s390x
pam-1.3.0-2.fc26.s390x
avahi-glib-0.6.32-7.fc26.s390x
python2-dateutil-2.6.0-3.fc26.noarch
python3-asn1crypto-0.23.0-1.fc26.noarch
python3-slip-0.6.4-6.fc26.noarch
python-backports-ssl_match_hostname-3.5.0.1-4.fc26.noarch
python2-pyOpenSSL-16.2.0-6.fc26.noarch
python-slip-0.6.4-6.fc26.noarch
nss-pem-1.0.3-3.fc26.s390x
fipscheck-1.5.0-1.fc26.s390x
elfutils-0.169-1.fc26.s390x
cyrus-sasl-lib-2.1.26-32.fc26.s390x
libkadm5-1.15.2-4.fc26.s390x
python3-kerberos-1.2.5-3.fc26.s390x
rpmconf-1.0.19-1.fc26.noarch
libsemanage-2.6-4.fc26.s390x
device-mapper-libs-1.02.137-6.fc26.s390x
yum-3.4.3-512.fc26.noarch
device-mapper-multipath-0.4.9-88.fc26.s390x
net-snmp-5.7.3-17.fc26.s390x
libXtst-1.2.3-2.fc26.s390x
libXxf86vm-1.1.4-4.fc26.s390x
texlive-amsmath-svn41561-33.fc26.2.noarch
texlive-xkeyval-svn35741.2.7a-33.fc26.2.noarch
texlive-bibtex-svn40768-33.fc26.2.noarch
texlive-mfware-svn40768-33.fc26.2.noarch
texlive-wasy-svn35831.0-33.fc26.2.noarch
texlive-bookman-svn31835.0-33.fc26.2.noarch
texlive-babel-english-svn30264.3.3p-33.fc26.2.noarch
texlive-fix2col-svn38770-33.fc26.2.noarch
texlive-mdwtools-svn15878.1.05.4-33.fc26.2.noarch
texlive-tex-gyre-math-svn41264-33.fc26.2.noarch
texlive-luaotfload-svn40902-33.fc26.2.noarch
texlive-showexpl-svn32737.v0.3l-33.fc26.2.noarch
texlive-pstricks-add-svn40744-33.fc26.2.noarch
texlive-l3experimental-svn41163-33.fc26.2.noarch
texlive-xetex-bin-svn41091-33.20160520.fc26.2.s390x
kbd-misc-2.0.4-2.fc26.noarch
libpng-devel-1.6.28-2.fc26.s390x
ghostscript-core-9.20-10.fc26.s390x
libXfixes-devel-5.0.3-2.fc26.s390x
libverto-devel-0.2.6-7.fc26.s390x
mesa-libEGL-devel-17.2.4-2.fc26.s390x
popt-devel-1.16-12.fc26.s390x
readline-devel-7.0-5.fc26.s390x
cyrus-sasl-devel-2.1.26-32.fc26.s390x
sendmail-8.15.2-19.fc26.s390x
systemd-bootchart-231-3.fc26.s390x
perl-IO-Socket-SSL-2.049-1.fc26.noarch
python2-enchant-1.6.10-1.fc26.noarch
perl-generators-1.10-2.fc26.noarch
createrepo-0.10.3-11.fc26.noarch
webkitgtk4-jsc-2.18.3-1.fc26.s390x
vim-common-8.0.1360-1.fc26.s390x
nss-tools-3.34.0-1.0.fc26.s390x
glusterfs-api-3.10.8-1.fc26.s390x
pulseaudio-libs-glib2-11.1-7.fc26.s390x
mariadb-common-10.1.29-1.fc26.s390x
dhcp-libs-4.3.5-10.fc26.s390x
pcre2-devel-10.23-11.fc26.s390x
libtiff-4.0.9-1.fc26.s390x
kernel-headers-4.14.8-200.fc26.s390x
fontpackages-filesystem-1.44-18.fc26.noarch
vte-profile-0.48.4-1.fc26.s390x
texlive-kpathsea-doc-svn41139-33.fc26.2.noarch
zlib-1.2.11-2.fc26.s390x
readline-7.0-5.fc26.s390x
libattr-2.4.47-18.fc26.s390x
libgomp-7.2.1-2.fc26.s390x
libglvnd-1.0.0-1.fc26.s390x
lz4-libs-1.8.0-1.fc26.s390x
libcrypt-nss-2.25-12.fc26.s390x
jansson-2.10-2.fc26.s390x
perl-File-Path-2.12-367.fc26.noarch
perl-Unicode-EastAsianWidth-1.33-9.fc26.noarch
hunspell-1.5.4-2.fc26.s390x
libasyncns-0.8-11.fc26.s390x
libnetfilter_conntrack-1.0.6-2.fc26.s390x
perl-Storable-2.56-368.fc26.s390x
autoconf-2.69-24.fc26.noarch
device-mapper-persistent-data-0.6.3-5.fc26.s390x
quota-4.03-9.fc26.s390x
crypto-policies-20170606-1.git7c32281.fc26.noarch
glib2-2.52.3-2.fc26.s390x
python2-idna-2.5-1.fc26.noarch
python2-libcomps-0.1.8-3.fc26.s390x
gsettings-desktop-schemas-3.24.1-1.fc26.s390x
javapackages-tools-4.7.0-17.fc26.noarch
libselinux-python3-2.6-7.fc26.s390x
python-backports-1.0-9.fc26.s390x
python2-cryptography-2.0.2-2.fc26.s390x
libselinux-python-2.6-7.fc26.s390x
Lmod-7.5.3-1.fc26.s390x
fipscheck-lib-1.5.0-1.fc26.s390x
elfutils-libs-0.169-1.fc26.s390x
krb5-libs-1.15.2-4.fc26.s390x
libuser-0.62-6.fc26.s390x
python2-requests-kerberos-0.10.0-4.fc26.noarch
npth-1.5-1.fc26.s390x
packagedb-cli-2.14.1-2.fc26.noarch
ustr-1.0.4-22.fc26.s390x
device-mapper-1.02.137-6.fc26.s390x
polkit-pkla-compat-0.1-8.fc26.s390x
fakeroot-1.22-1.fc26.s390x
libXmu-1.1.2-5.fc26.s390x
cairo-gobject-1.14.10-1.fc26.s390x
texlive-booktabs-svn40846-33.fc26.2.noarch
texlive-dvips-bin-svn40987-33.20160520.fc26.2.s390x
texlive-float-svn15878.1.3d-33.fc26.2.noarch
texlive-tex-svn40793-33.fc26.2.noarch
texlive-fancyref-svn15878.0.9c-33.fc26.2.noarch
texlive-manfnt-font-svn35799.0-33.fc26.2.noarch
texlive-cmap-svn41168-33.fc26.2.noarch
texlive-hyph-utf8-svn41189-33.fc26.2.noarch
texlive-paralist-svn39247-33.fc26.2.noarch
texlive-trimspaces-svn15878.1.1-33.fc26.2.noarch
texlive-tipa-svn29349.1.3-33.fc26.2.noarch
texlive-l3packages-svn41246-33.fc26.2.noarch
texlive-pst-pdf-svn31660.1.1v-33.fc26.2.noarch
texlive-tex-gyre-svn18651.2.004-33.fc26.2.noarch
texlive-beamer-svn36461.3.36-33.fc26.2.noarch
gd-2.2.5-1.fc26.s390x
elfutils-libelf-devel-0.169-1.fc26.s390x
gc-devel-7.6.0-2.fc26.s390x
libXft-devel-2.3.2-5.fc26.s390x
krb5-devel-1.15.2-4.fc26.s390x
rpm-devel-4.13.0.2-1.fc26.s390x
pcre-static-8.41-3.fc26.s390x
bluez-libs-devel-5.46-6.fc26.s390x
systemtap-3.2-2.fc26.s390x
trousers-0.3.13-7.fc26.s390x
iproute-tc-4.11.0-1.fc26.s390x
python2-sphinx-1.5.5-1.fc26.noarch
libgnome-keyring-3.12.0-8.fc26.s390x
perl-File-ShareDir-1.102-8.fc26.noarch
python2-paramiko-2.2.1-1.fc26.noarch
python2-openidc-client-0.4.0-1.20171113git54dee6e.fc26.noarch
openssh-server-7.5p1-4.fc26.s390x
pulseaudio-libs-11.1-7.fc26.s390x
python2-bodhi-2.12.2-3.fc26.noarch
lua-libs-5.3.4-7.fc26.s390x
dhcp-common-4.3.5-10.fc26.noarch
python3-pip-9.0.1-11.fc26.noarch
python3-sssdconfig-1.16.0-4.fc26.noarch
gpg-pubkey-95a43f54-5284415a
gpg-pubkey-fdb19c98-56fd6333
gpg-pubkey-64dab85d-57d33e22
tzdata-2017c-1.fc26.noarch
firewalld-filesystem-0.4.4.5-1.fc26.noarch
xkeyboard-config-2.21-3.fc26.noarch
texlive-texlive-common-doc-svn40682-33.fc26.2.noarch
ncurses-base-6.0-8.20170212.fc26.noarch
libselinux-2.6-7.fc26.s390x
bzip2-libs-1.0.6-22.fc26.s390x
libdb-5.3.28-24.fc26.s390x
mpfr-3.1.5-3.fc26.s390x
file-libs-5.30-11.fc26.s390x
libunistring-0.9.7-1.fc26.s390x
libxslt-1.1.29-1.fc26.s390x
libtasn1-4.12-1.fc26.s390x
gdbm-1.13-1.fc26.s390x
libepoxy-1.4.3-1.fc26.s390x
libpsl-0.18.0-1.fc26.s390x
perl-Carp-1.40-366.fc26.noarch
e2fsprogs-libs-1.43.4-2.fc26.s390x
libmnl-1.0.4-2.fc26.s390x
openjpeg2-2.2.0-3.fc26.s390x
perl-PathTools-3.63-367.fc26.s390x
perl-File-Temp-0.230.400-2.fc26.noarch
perl-XML-Parser-2.44-6.fc26.s390x
libss-1.43.4-2.fc26.s390x
ilmbase-2.2.0-8.fc26.s390x
fuse-libs-2.9.7-2.fc26.s390x
libdaemon-0.14-11.fc26.s390x
libbasicobjects-0.1.1-34.fc26.s390x
iptables-1.6.1-2.fc26.s390x
perl-TermReadKey-2.37-2.fc26.s390x
perl-Term-ANSIColor-4.06-2.fc26.noarch
perl-libintl-perl-1.26-2.fc26.s390x
usbredir-0.7.1-3.fc26.s390x
fftw-libs-double-3.3.5-4.fc26.s390x
rsync-3.1.2-5.fc26.s390x
libiscsi-1.15.0-3.fc26.s390x
ttmkfdir-3.0.9-49.fc26.s390x
texlive-base-2016-33.20160520.fc26.1.noarch
python2-six-1.10.0-9.fc26.noarch
atk-2.24.0-1.fc26.s390x
python2-kitchen-1.2.4-6.fc26.noarch
guile-2.0.14-1.fc26.s390x
desktop-file-utils-0.23-3.fc26.s390x
pyxattr-0.5.3-10.fc26.s390x
shared-mime-info-1.8-2.fc26.s390x
libyaml-0.1.7-2.fc26.s390x
python3-PyYAML-3.12-3.fc26.s390x
openssh-7.5p1-4.fc26.s390x
kernel-core-4.13.16-202.fc26.s390x
perl-Git-2.13.6-2.fc26.noarch
python3-dnf-plugins-extras-common-2.0.4-1.fc26.noarch
openssl-1.1.0g-1.fc26.s390x
gawk-4.1.4-6.fc26.s390x
gnutls-3.5.16-4.fc26.s390x
openldap-2.4.45-2.fc26.s390x
bind-license-9.11.1-4.P3.fc26.noarch
python2-gluster-3.10.8-1.fc26.s390x
selinux-policy-3.13.1-260.17.fc26.noarch
linux-firmware-20171215-81.git2451bb22.fc26.noarch
libpkgconf-1.3.12-1.fc26.s390x
NetworkManager-libnm-1.8.2-4.fc26.s390x
gnutls-devel-3.5.16-4.fc26.s390x
mariadb-libs-10.1.29-1.fc26.s390x
python2-urllib3-1.20-2.fc26.noarch
sssd-nfs-idmap-1.16.0-4.fc26.s390x
libsss_sudo-1.16.0-4.fc26.s390x
libgudev-232-1.fc26.s390x
python3-libs-3.6.3-2.fc26.s390x
python3-javapackages-4.7.0-17.fc26.noarch
python3-ply-3.9-3.fc26.noarch
python3-systemd-234-1.fc26.s390x
python3-requests-2.13.0-1.fc26.noarch
blktrace-1.1.0-4.fc26.s390x
python2-asn1crypto-0.23.0-1.fc26.noarch
python2-cffi-1.9.1-2.fc26.s390x
python2-sphinx_rtd_theme-0.2.4-1.fc26.noarch
lua-json-1.3.2-7.fc26.noarch
libcephfs1-10.2.7-2.fc26.s390x
glib-networking-2.50.0-2.fc26.s390x
elfutils-default-yama-scope-0.169-1.fc26.noarch
GeoIP-GeoLite-data-2017.10-1.fc26.noarch
libedit-3.1-17.20160618cvs.fc26.s390x
libverto-libev-0.2.6-7.fc26.s390x
libserf-1.3.9-3.fc26.s390x
createrepo_c-0.10.0-9.fc26.s390x
python2-kerberos-1.2.5-3.fc26.s390x
libsrtp-1.5.4-4.fc26.s390x
lzo-minilzo-2.08-9.fc26.s390x
librepo-1.8.0-1.fc26.s390x
koji-1.14.0-1.fc26.noarch
sg3_utils-1.42-1.fc26.s390x
libobjc-7.2.1-2.fc26.s390x
policycoreutils-2.6-6.fc26.s390x
libdrm-2.4.88-1.fc26.s390x
kernel-core-4.13.13-200.fc26.s390x
systemtap-client-3.2-2.fc26.s390x
lvm2-2.02.168-6.fc26.s390x
device-mapper-multipath-libs-0.4.9-88.fc26.s390x
libfdt-1.4.5-1.fc26.s390x
s390utils-cmsfs-1.36.1-3.fc26.s390x
libXdamage-1.1.4-9.fc26.s390x
libXaw-1.0.13-5.fc26.s390x
brltty-5.5-5.fc26.s390x
librsvg2-2.40.18-1.fc26.s390x
texlive-tetex-bin-svn36770.0-33.20160520.fc26.2.noarch
texlive-etex-pkg-svn39355-33.fc26.2.noarch
texlive-graphics-svn41015-33.fc26.2.noarch
texlive-dvips-svn41149-33.fc26.2.noarch
texlive-zapfding-svn31835.0-33.fc26.2.noarch
texlive-footmisc-svn23330.5.5b-33.fc26.2.noarch
texlive-makeindex-svn40768-33.fc26.2.noarch
texlive-pst-ovl-svn40873-33.fc26.2.noarch
texlive-texlive-scripts-svn41433-33.fc26.2.noarch
texlive-ltabptch-svn17533.1.74d-33.fc26.2.noarch
texlive-euro-svn22191.1.1-33.fc26.2.noarch
texlive-mflogo-font-svn36898.1.002-33.fc26.2.noarch
texlive-zapfchan-svn31835.0-33.fc26.2.noarch
texlive-cmextra-svn32831.0-33.fc26.2.noarch
texlive-finstrut-svn21719.0.5-33.fc26.2.noarch
texlive-hyphen-base-svn41138-33.fc26.2.noarch
texlive-marginnote-svn41382-33.fc26.2.noarch
texlive-parallel-svn15878.0-33.fc26.2.noarch
texlive-sepnum-svn20186.2.0-33.fc26.2.noarch
texlive-environ-svn33821.0.3-33.fc26.2.noarch
texlive-type1cm-svn21820.0-33.fc26.2.noarch
texlive-xunicode-svn30466.0.981-33.fc26.2.noarch
texlive-attachfile-svn38830-33.fc26.2.noarch
texlive-fontspec-svn41262-33.fc26.2.noarch
texlive-fancyvrb-svn18492.2.8-33.fc26.2.noarch
texlive-pst-pdf-bin-svn7838.0-33.20160520.fc26.2.noarch
texlive-xcolor-svn41044-33.fc26.2.noarch
texlive-pdfpages-svn40638-33.fc26.2.noarch
texlive-sansmathaccent-svn30187.0-33.fc26.2.noarch
texlive-ucs-svn35853.2.2-33.fc26.2.noarch
texlive-dvipdfmx-bin-svn40273-33.20160520.fc26.2.s390x
libotf-0.9.13-8.fc26.s390x
go-srpm-macros-2-8.fc26.noarch
pcre-devel-8.41-3.fc26.s390x
mesa-libwayland-egl-devel-17.2.4-2.fc26.s390x
ghostscript-9.20-10.fc26.s390x
libcephfs_jni-devel-10.2.7-2.fc26.s390x
libXdamage-devel-1.1.4-9.fc26.s390x
freetype-devel-2.7.1-9.fc26.s390x
ncurses-devel-6.0-8.20170212.fc26.s390x
fontconfig-devel-2.12.6-4.fc26.s390x
cairo-devel-1.14.10-1.fc26.s390x
libselinux-devel-2.6-7.fc26.s390x
guile-devel-2.0.14-1.fc26.s390x
libcap-ng-devel-0.7.8-3.fc26.s390x
bash-completion-2.6-1.fc26.noarch
libXevie-1.0.3-12.fc26.s390x
kernel-4.13.13-200.fc26.s390x
audit-2.8.1-1.fc26.s390x
gcc-objc-7.2.1-2.fc26.s390x
gcc-go-7.2.1-2.fc26.s390x
python-firewall-0.4.4.5-1.fc26.noarch
python3-html5lib-0.999-13.fc26.noarch
python2-simplejson-3.10.0-3.fc26.s390x
flex-2.6.1-3.fc26.s390x
telnet-0.17-69.fc26.s390x
gpg-pubkey-8e1431d5-53bcbac7
emacs-filesystem-25.3-3.fc26.noarch
fontawesome-fonts-4.7.0-2.fc26.noarch
fontawesome-fonts-web-4.7.0-2.fc26.noarch
tzdata-java-2017c-1.fc26.noarch
rpmconf-base-1.0.19-1.fc26.noarch
glibc-2.25-12.fc26.s390x
info-6.3-3.fc26.s390x
sqlite-libs-3.20.1-1.fc26.s390x
texlive-lib-2016-33.20160520.fc26.1.s390x
sed-4.4-1.fc26.s390x
libicu-57.1-7.fc26.s390x
libcap-ng-0.7.8-3.fc26.s390x
nettle-3.3-2.fc26.s390x
libidn2-2.0.4-1.fc26.s390x
lcms2-2.8-3.fc26.s390x
dbus-libs-1.11.18-1.fc26.s390x
perl-Exporter-5.72-367.fc26.noarch
unzip-6.0-34.fc26.s390x
iproute-4.11.0-1.fc26.s390x
zip-3.0-18.fc26.s390x
perl-constant-1.33-368.fc26.noarch
perl-MIME-Base64-3.15-366.fc26.s390x
lua-posix-33.3.1-4.fc26.s390x
bzip2-1.0.6-22.fc26.s390x
libstdc++-devel-7.2.1-2.fc26.s390x
hyphen-2.8.8-6.fc26.s390x
libdvdread-5.0.3-4.fc26.s390x
libcollection-0.7.0-34.fc26.s390x
libdvdnav-5.0.3-5.fc26.s390x
perl-version-0.99.18-1.fc26.s390x
perl-Encode-2.88-6.fc26.s390x
automake-1.15-9.fc26.noarch
plymouth-core-libs-0.9.3-0.7.20160620git0e65b86c.fc26.s390x
hesiod-3.2.1-7.fc26.s390x
jasper-libs-2.0.14-1.fc26.s390x
mozjs17-17.0.0-18.fc26.s390x
fontconfig-2.12.6-4.fc26.s390x
harfbuzz-1.4.4-1.fc26.s390x
alsa-lib-1.1.4.1-1.fc26.s390x
make-4.2.1-2.fc26.s390x
gobject-introspection-1.52.1-1.fc26.s390x
hicolor-icon-theme-0.15-5.fc26.noarch
gdk-pixbuf2-2.36.9-1.fc26.s390x
libgusb-0.2.11-1.fc26.s390x
libtalloc-2.1.10-2.fc26.s390x
libdhash-0.5.0-34.fc26.s390x
python2-bcrypt-3.1.4-2.fc26.s390x
PyYAML-3.12-3.fc26.s390x
nss-softokn-freebl-3.34.0-1.0.fc26.s390x
kernel-modules-4.13.16-202.fc26.s390x
git-2.13.6-2.fc26.s390x
gnupg2-smime-2.2.3-1.fc26.s390x
openssl-devel-1.1.0g-1.fc26.s390x
python2-dnf-plugins-extras-common-2.0.4-1.fc26.noarch
copy-jdk-configs-3.3-2.fc26.noarch
glusterfs-client-xlators-3.10.8-1.fc26.s390x
libcurl-7.53.1-13.fc26.s390x
bind-libs-lite-9.11.1-4.P3.fc26.s390x
glusterfs-extra-xlators-3.10.8-1.fc26.s390x
python3-setuptools-37.0.0-1.fc26.noarch
kernel-core-4.14.8-200.fc26.s390x
pkgconf-1.3.12-1.fc26.s390x
NetworkManager-1.8.2-4.fc26.s390x
libjpeg-turbo-devel-1.5.3-1.fc26.s390x
lua-5.3.4-7.fc26.s390x
boost-thread-1.63.0-10.fc26.s390x
wget-1.19.2-2.fc26.s390x
libwebp-0.6.1-1.fc26.s390x
kernel-devel-4.14.8-200.fc26.s390x
python3-lxml-4.1.1-1.fc26.s390x
python3-ordered-set-2.0.0-6.fc26.noarch
python3-rpmconf-1.0.19-1.fc26.noarch
python-offtrac-0.1.0-9.fc26.noarch
python2-pycparser-2.14-10.fc26.noarch
python2-sphinx-theme-alabaster-0.7.9-3.fc26.noarch
python2-pysocks-1.6.7-1.fc26.noarch
lua-lpeg-1.0.1-2.fc26.s390x
poppler-0.52.0-10.fc26.s390x
libproxy-0.4.15-2.fc26.s390x
crontabs-1.11-14.20150630git.fc26.noarch
java-1.8.0-openjdk-headless-1.8.0.151-1.b12.fc26.s390x
libev-4.24-2.fc26.s390x
libsigsegv-2.11-1.fc26.s390x
fedora-cert-0.6.0.1-2.fc26.noarch
drpm-0.3.0-6.fc26.s390x
createrepo_c-libs-0.10.0-9.fc26.s390x
python2-cccolutils-1.5-3.fc26.s390x
m17n-lib-1.7.0-6.fc26.s390x
lsscsi-0.28-4.fc26.s390x
python2-koji-1.14.0-1.fc26.noarch
python3-koji-1.14.0-1.fc26.noarch
python3-gpg-1.8.0-12.fc26.s390x
sg3_utils-libs-1.42-1.fc26.s390x
SDL2-2.0.7-2.fc26.s390x
util-linux-2.30.2-1.fc26.s390x
rpcbind-0.2.4-8.rc2.fc26.s390x
s390utils-mon_statd-1.36.1-3.fc26.s390x
GConf2-3.2.6-17.fc26.s390x
systemd-container-233-7.fc26.s390x
usermode-1.111-9.fc26.s390x
pcre-utf32-8.41-3.fc26.s390x
libXt-1.1.5-4.fc26.s390x
libXpm-3.5.12-2.fc26.s390x
at-spi2-core-2.24.1-1.fc26.s390x
cairo-1.14.10-1.fc26.s390x
texlive-kpathsea-bin-svn40473-33.20160520.fc26.2.s390x
texlive-ifluatex-svn41346-33.fc26.2.noarch
texlive-babel-svn40706-33.fc26.2.noarch
texlive-colortbl-svn29803.v1.0a-33.fc26.2.noarch
texlive-marvosym-svn29349.2.2a-33.fc26.2.noarch
texlive-euler-svn17261.2.5-33.fc26.2.noarch
texlive-latexconfig-svn40274-33.fc26.2.noarch
texlive-plain-svn40274-33.fc26.2.noarch
texlive-texconfig-bin-svn29741.0-33.20160520.fc26.2.noarch
giflib-4.1.6-16.fc26.s390x
texlive-microtype-svn41127-33.fc26.2.noarch
texlive-eurosym-svn17265.1.4_subrfix-33.fc26.2.noarch
texlive-symbol-svn31835.0-33.fc26.2.noarch
texlive-chngcntr-svn17157.1.0a-33.fc26.2.noarch
texlive-euenc-svn19795.0.1h-33.fc26.2.noarch
texlive-luatex-svn40963-33.fc26.2.noarch
texlive-knuth-local-svn38627-33.fc26.2.noarch
texlive-mparhack-svn15878.1.4-33.fc26.2.noarch
texlive-rcs-svn15878.0-33.fc26.2.noarch
texlive-texlive-msg-translations-svn41431-33.fc26.2.noarch
texlive-updmap-map-svn41159-33.fc26.2.noarch
texlive-geometry-svn19716.5.6-33.fc26.2.noarch
texlive-memoir-svn41203-33.fc26.2.noarch
texlive-l3kernel-svn41246-33.fc26.2.noarch
texlive-pst-eps-svn15878.1.0-33.fc26.2.noarch
texlive-pst-text-svn15878.1.00-33.fc26.2.noarch
texlive-amscls-svn36804.0-33.fc26.2.noarch
texlive-pst-slpe-svn24391.1.31-33.fc26.2.noarch
texlive-extsizes-svn17263.1.4a-33.fc26.2.noarch
texlive-xetex-def-svn40327-33.fc26.2.noarch
texlive-collection-latex-svn41011-33.20160520.fc26.2.noarch
gstreamer1-plugins-base-1.12.3-1.fc26.s390x
fpc-srpm-macros-1.1-2.fc26.noarch
xorg-x11-proto-devel-7.7-22.fc26.noarch
urw-fonts-2.4-23.fc26.noarch
atk-devel-2.24.0-1.fc26.s390x
ImageMagick-libs-6.9.9.22-1.fc26.s390x
libxcb-devel-1.12-3.fc26.s390x
libXrandr-devel-1.5.1-2.fc26.s390x
libcom_err-devel-1.43.4-2.fc26.s390x
dbus-devel-1.11.18-1.fc26.s390x
libepoxy-devel-1.4.3-1.fc26.s390x
libicu-devel-57.1-7.fc26.s390x
p11-kit-devel-0.23.9-2.fc26.s390x
rpm-build-4.13.0.2-1.fc26.s390x
libssh2-devel-1.8.0-5.fc26.s390x
graphviz-2.40.1-4.fc26.s390x
zlib-static-1.2.11-2.fc26.s390x
mesa-libgbm-devel-17.2.4-2.fc26.s390x
dracut-config-rescue-046-3.1.fc26.s390x
screen-4.6.2-1.fc26.s390x
python-osbs-client-0.39.1-1.fc26.noarch
gcc-gdb-plugin-7.2.1-2.fc26.s390x
pyparsing-2.1.10-3.fc26.noarch
python3-pyasn1-0.2.3-1.fc26.noarch
python2-html5lib-0.999-13.fc26.noarch
teamd-1.27-1.fc26.s390x
hardlink-1.3-1.fc26.s390x
chrpath-0.16-4.fc26.s390x
libgcc-7.2.1-2.fc26.s390x
python-rpm-macros-3-20.fc26.noarch
texlive-pdftex-doc-svn41149-33.fc26.2.noarch
glibc-common-2.25-12.fc26.s390x
libstdc++-7.2.1-2.fc26.s390x
nspr-4.17.0-1.fc26.s390x
grep-3.1-1.fc26.s390x
libgcrypt-1.7.9-1.fc26.s390x
libacl-2.2.52-15.fc26.s390x
cpio-2.12-4.fc26.s390x
libatomic_ops-7.4.4-2.fc26.s390x
p11-kit-0.23.9-2.fc26.s390x
gc-7.6.0-2.fc26.s390x
psmisc-22.21-9.fc26.s390x
systemd-libs-233-7.fc26.s390x
xz-5.2.3-2.fc26.s390x
perl-libs-5.24.3-395.fc26.s390x
kmod-libs-24-1.fc26.s390x
libpcap-1.8.1-3.fc26.s390x
perl-macros-5.24.3-395.fc26.s390x
perl-parent-0.236-2.fc26.noarch
perl-Text-Unidecode-1.30-2.fc26.noarch
newt-0.52.20-1.fc26.s390x
libcomps-0.1.8-3.fc26.s390x
libfontenc-1.1.3-4.fc26.s390x
ipcalc-0.2.0-1.fc26.s390x
libnfnetlink-1.0.1-9.fc26.s390x
libref_array-0.1.5-34.fc26.s390x
perl-Term-Cap-1.17-366.fc26.noarch
perl-Digest-1.17-367.fc26.noarch
perl-SelfLoader-1.23-395.fc26.noarch
perl-Pod-Simple-3.35-2.fc26.noarch
perl-URI-1.71-6.fc26.noarch
cpp-7.2.1-2.fc26.s390x
attr-2.4.47-18.fc26.s390x
gmp-c++-6.1.2-4.fc26.s390x
xapian-core-libs-1.4.4-1.fc26.s390x
system-python-3.6.3-2.fc26.s390x
harfbuzz-icu-1.4.4-1.fc26.s390x
libtevent-0.9.34-1.fc26.s390x
http-parser-2.7.1-5.fc26.s390x
libsodium-1.0.14-1.fc26.s390x
python-gssapi-1.2.0-5.fc26.s390x
nss-softokn-3.34.0-1.0.fc26.s390x
gnupg2-2.2.3-1.fc26.s390x
nss-devel-3.34.0-1.0.fc26.s390x
vim-minimal-8.0.1360-1.fc26.s390x
perl-libnet-3.11-1.fc26.noarch
kernel-devel-4.13.16-202.fc26.s390x
python2-libs-2.7.14-4.fc26.s390x
libwayland-client-1.13.0-3.fc26.s390x
python3-dnf-2.7.5-2.fc26.noarch
glusterfs-fuse-3.10.8-1.fc26.s390x
pcre2-utf32-10.23-11.fc26.s390x
kernel-modules-4.14.8-200.fc26.s390x
pkgconf-pkg-config-1.3.12-1.fc26.s390x
NetworkManager-ppp-1.8.2-4.fc26.s390x
wayland-devel-1.13.0-3.fc26.s390x
kernel-4.14.8-200.fc26.s390x
boost-random-1.63.0-10.fc26.s390x
libmicrohttpd-0.9.58-1.fc26.s390x
mailx-12.5-24.fc26.s390x
NetworkManager-glib-1.8.2-4.fc26.s390x
libcroco-0.6.12-1.fc26.s390x
libssh2-1.8.0-5.fc26.s390x
json-glib-1.2.6-1.fc26.s390x
libevent-2.0.22-3.fc26.s390x
gdk-pixbuf2-modules-2.36.9-1.fc26.s390x
colord-libs-1.3.5-1.fc26.s390x
python3-magic-5.30-11.fc26.noarch
python3-gobject-base-3.24.1-1.fc26.s390x
python3-pyroute2-0.4.13-1.fc26.noarch
python3-pysocks-1.6.7-1.fc26.noarch
python2-click-6.7-3.fc26.noarch
python-munch-2.1.0-2.fc26.noarch
python2-ply-3.9-3.fc26.noarch
python2-snowballstemmer-1.2.1-3.fc26.noarch
python-magic-5.30-11.fc26.noarch
python-beautifulsoup4-4.6.0-1.fc26.noarch
python2-gitdb-2.0.3-1.fc26.noarch
librados-devel-10.2.7-2.fc26.s390x
libcacard-2.5.3-1.fc26.s390x
libmodman-2.0.1-13.fc26.s390x
zziplib-0.13.62-8.fc26.s390x
lksctp-tools-1.0.16-6.fc26.s390x
procmail-3.22-44.fc26.s390x
libthai-0.1.25-2.fc26.s390x
libpipeline-1.4.1-3.fc26.s390x
python2-pycurl-7.43.0-8.fc26.s390x
deltarpm-3.6-19.fc26.s390x
subversion-libs-1.9.7-1.fc26.s390x
python-krbV-1.0.90-13.fc26.s390x
m17n-db-1.7.0-8.fc26.noarch
linux-atm-libs-2.5.1-17.fc26.s390x
python2-rpm-4.13.0.2-1.fc26.s390x
python2-librepo-1.8.0-1.fc26.s390x
python2-dnf-plugins-core-2.1.5-1.fc26.noarch
qrencode-libs-3.4.4-1.fc26.s390x
s390utils-iucvterm-1.36.1-3.fc26.s390x
libsmartcols-2.30.2-1.fc26.s390x
dbus-1.11.18-1.fc26.s390x
systemd-udev-233-7.fc26.s390x
device-mapper-event-1.02.137-6.fc26.s390x
polkit-0.113-8.fc26.s390x
mock-1.4.7-2.fc26.noarch
libwmf-lite-0.2.8.4-53.fc26.s390x
libXcomposite-0.4.4-9.fc26.s390x
libXcursor-1.1.14-8.fc26.s390x
at-spi2-atk-2.24.1-1.fc26.s390x
pango-1.40.12-1.fc26.s390x
texlive-metafont-bin-svn40987-33.20160520.fc26.2.s390x
texlive-url-svn32528.3.4-33.fc26.2.noarch
texlive-fp-svn15878.0-33.fc26.2.noarch
texlive-latex-fonts-svn28888.0-33.fc26.2.noarch
texlive-mptopdf-bin-svn18674.0-33.20160520.fc26.2.noarch
texlive-fancybox-svn18304.1.4-33.fc26.2.noarch
texlive-lua-alt-getopt-svn29349.0.7.0-33.fc26.2.noarch
texlive-tex-bin-svn40987-33.20160520.fc26.2.s390x
texlive-texconfig-svn40768-33.fc26.2.noarch
texlive-wasy2-ps-svn35830.0-33.fc26.2.noarch
texlive-psfrag-svn15878.3.04-33.fc26.2.noarch
texlive-helvetic-svn31835.0-33.fc26.2.noarch
texlive-times-svn35058.0-33.fc26.2.noarch
texlive-cite-svn36428.5.5-33.fc26.2.noarch
texlive-fancyhdr-svn15878.3.1-33.fc26.2.noarch
texlive-luatex-bin-svn41091-33.20160520.fc26.2.s390x
texlive-lm-math-svn36915.1.959-33.fc26.2.noarch
texlive-ntgclass-svn15878.2.1a-33.fc26.2.noarch
texlive-sansmath-svn17997.1.1-33.fc26.2.noarch
texlive-textcase-svn15878.0-33.fc26.2.noarch
texlive-unicode-data-svn39808-33.fc26.2.noarch
texlive-breakurl-svn29901.1.40-33.fc26.2.noarch
texlive-latex-svn40218-33.fc26.2.noarch
texlive-lualatex-math-svn40621-33.fc26.2.noarch
texlive-pst-coil-svn37377.1.07-33.fc26.2.noarch
texlive-pst-plot-svn41242-33.fc26.2.noarch
texlive-unicode-math-svn38462-33.fc26.2.noarch
texlive-pst-blur-svn15878.2.0-33.fc26.2.noarch
texlive-cm-super-svn15878.0-33.fc26.2.noarch
texlive-wasysym-svn15878.2.0-33.fc26.2.noarch
texlive-collection-fontsrecommended-svn35830.0-33.20160520.fc26.2.noarch
libXv-1.0.11-2.fc26.s390x
ghc-srpm-macros-1.4.2-5.fc26.noarch
latex2html-2017.2-2.fc26.noarch
libXau-devel-1.0.8-7.fc26.s390x
libXcursor-devel-1.1.14-8.fc26.s390x
graphite2-devel-1.3.10-1.fc26.s390x
pixman-devel-0.34.0-3.fc26.s390x
wayland-protocols-devel-1.9-1.fc26.noarch
mesa-libGLES-devel-17.2.4-2.fc26.s390x
redhat-rpm-config-63-1.fc26.noarch
vte291-devel-0.48.4-1.fc26.s390x
ceph-devel-compat-10.2.7-2.fc26.s390x
lzo-devel-2.08-9.fc26.s390x
libiscsi-devel-1.15.0-3.fc26.s390x
libfdt-devel-1.4.5-1.fc26.s390x
dnsmasq-2.76-5.fc26.s390x
avahi-autoipd-0.6.32-7.fc26.s390x
rpm-plugin-systemd-inhibit-4.13.0.2-1.fc26.s390x
gcc-c++-7.2.1-2.fc26.s390x
python2-ndg_httpsclient-0.4.0-7.fc26.noarch
gettext-0.19.8.1-9.fc26.s390x
btrfs-progs-4.9.1-2.fc26.s390x
fedora-logos-26.0.1-1.fc26.s390x
dejagnu-1.6-2.fc26.noarch
libaio-devel-0.3.110-7.fc26.s390x
dos2unix-7.3.4-2.fc26.s390x
distribution-gpg-keys-1.15-1.fc26.noarch
python-sphinx-locale-1.5.5-1.fc26.noarch
python2-rpm-macros-3-20.fc26.noarch
libxml2-2.9.4-2.fc26.s390x
popt-1.16-12.fc26.s390x
tar-1.29-5.fc26.s390x
avahi-libs-0.6.32-7.fc26.s390x
m4-1.4.18-3.fc26.s390x
perl-Socket-2.024-2.fc26.s390x
perl-Time-Local-1.250-2.fc26.noarch
libmetalink-0.1.3-2.fc26.s390x
jbigkit-libs-2.1-6.fc26.s390x
netpbm-10.80.00-2.fc26.s390x
perl-Digest-MD5-2.55-3.fc26.s390x
perl-Getopt-Long-2.49.1-2.fc26.noarch
libglvnd-opengl-1.0.0-1.fc26.s390x
libattr-devel-2.4.47-18.fc26.s390x
teckit-2.5.1-16.fc26.s390x
python3-six-1.10.0-9.fc26.noarch
python3-libcomps-0.1.8-3.fc26.s390x
gtk-update-icon-cache-3.22.21-2.fc26.s390x
python3-3.6.3-2.fc26.s390x
python3-pyparsing-2.1.10-3.fc26.noarch
python2-markupsafe-0.23-13.fc26.s390x
python2-mock-2.0.0-4.fc26.noarch
python2-yubico-1.3.2-7.fc26.noarch
python2-smmap-2.0.3-1.fc26.noarch
librbd-devel-10.2.7-2.fc26.s390x
pigz-2.3.4-2.fc26.s390x
gcc-7.2.1-2.fc26.s390x
libnghttp2-1.21.1-1.fc26.s390x
cups-libs-2.2.2-7.fc26.s390x
libnfsidmap-0.27-1.fc26.s390x
ykpers-1.18.0-2.fc26.s390x
python3-librepo-1.8.0-1.fc26.s390x
systemtap-runtime-3.2-2.fc26.s390x
geoclue2-2.4.5-4.fc26.s390x
initscripts-9.72-1.fc26.s390x
plymouth-0.9.3-0.7.20160620git0e65b86c.fc26.s390x
ebtables-2.0.10-22.fc26.s390x
gssproxy-0.7.0-9.fc26.s390x
libXext-1.3.3-5.fc26.s390x
mesa-libEGL-17.2.4-2.fc26.s390x
texlive-texlive.infra-bin-svn40312-33.20160520.fc26.2.s390x
texlive-thumbpdf-svn34621.3.16-33.fc26.2.noarch
texlive-carlisle-svn18258.0-33.fc26.2.noarch
texlive-gsftopk-svn40768-33.fc26.2.noarch
texlive-pdftex-svn41149-33.fc26.2.noarch
texlive-crop-svn15878.1.5-33.fc26.2.noarch
texlive-pxfonts-svn15878.0-33.fc26.2.noarch
texlive-enctex-svn34957.0-33.fc26.2.noarch
texlive-kastrup-svn15878.0-33.fc26.2.noarch
texlive-pspicture-svn15878.0-33.fc26.2.noarch
texlive-varwidth-svn24104.0.92-33.fc26.2.noarch
texlive-currfile-svn40725-33.fc26.2.noarch
texlive-pst-grad-svn15878.1.06-33.fc26.2.noarch
texlive-latex-bin-svn41438-33.fc26.2.noarch
texlive-ltxmisc-svn21927.0-33.fc26.2.noarch
lasi-1.1.2-7.fc26.s390x
adwaita-icon-theme-3.24.0-2.fc26.noarch
xz-devel-5.2.3-2.fc26.s390x
xorg-x11-fonts-Type1-7.5-17.fc26.noarch
libXi-devel-1.7.9-2.fc26.s390x
at-spi2-atk-devel-2.24.1-1.fc26.s390x
pango-devel-1.40.12-1.fc26.s390x
libcacard-devel-2.5.3-1.fc26.s390x
libseccomp-devel-2.3.2-1.fc26.s390x
subversion-1.9.7-1.fc26.s390x
sudo-1.8.21p2-1.fc26.s390x
pykickstart-2.35-2.fc26.noarch
e2fsprogs-1.43.4-2.fc26.s390x
libstdc++-static-7.2.1-2.fc26.s390x
libbsd-0.8.3-3.fc26.s390x
c-ares-1.13.0-1.fc26.s390x
python2-pyxdg-0.25-12.fc26.noarch
nss-softokn-freebl-devel-3.34.0-1.0.fc26.s390x
python2-rpkg-1.51-2.fc26.noarch
strace-4.20-1.fc26.s390x
valgrind-3.13.0-12.fc26.s390x
libsss_idmap-1.16.0-4.fc26.s390x
gnutls-c++-3.5.16-4.fc26.s390x
libwayland-server-1.13.0-3.fc26.s390x
dhcp-client-4.3.5-10.fc26.s390x
bind-libs-9.11.1-4.P3.fc26.s390x
man-pages-4.09-4.fc26.noarch
gpg-pubkey-a29cb19c-53bcbba6
quota-nls-4.03-9.fc26.noarch
qt5-srpm-macros-5.8.0-2.fc26.noarch
xz-libs-5.2.3-2.fc26.s390x
gmp-6.1.2-4.fc26.s390x
audit-libs-2.8.1-1.fc26.s390x
file-5.30-11.fc26.s390x
libusbx-1.0.21-2.fc26.s390x
binutils-2.27-28.fc26.s390x
perl-Errno-1.25-395.fc26.s390x
perl-HTTP-Tiny-0.070-2.fc26.noarch
xml-common-0.6.3-45.fc26.noarch
opus-1.2.1-1.fc26.s390x
kernel-devel-4.13.13-200.fc26.s390x
perl-podlators-4.09-2.fc26.noarch
flac-libs-1.3.2-2.fc26.s390x
libacl-devel-2.2.52-15.fc26.s390x
coreutils-common-8.27-7.fc26.s390x
cracklib-2.9.6-5.fc26.s390x
pyliblzma-0.5.3-17.fc26.s390x
libnotify-0.7.7-2.fc26.s390x
python3-idna-2.5-1.fc26.noarch
python3-pyOpenSSL-16.2.0-6.fc26.noarch
python2-pbr-1.10.0-4.fc26.noarch
pyusb-1.0.0-4.fc26.noarch
python2-fedora-0.9.0-6.fc26.noarch
librbd1-10.2.7-2.fc26.s390x
pcre-cpp-8.41-3.fc26.s390x
glibc-devel-2.25-12.fc26.s390x
libnfs-1.9.8-3.fc26.s390x
libsolv-0.6.30-2.fc26.s390x
python3-pycurl-7.43.0-8.fc26.s390x
libyubikey-1.13-3.fc26.s390x
rpmlint-1.10-5.fc26.noarch
python2-pygpgme-0.3-22.fc26.s390x
s390utils-base-1.36.1-3.fc26.s390x
ppp-2.4.7-11.fc26.s390x
s390utils-cpuplugd-1.36.1-3.fc26.s390x
nfs-utils-2.1.1-6.rc6.fc26.s390x
libXrender-0.9.10-2.fc26.s390x
libglvnd-gles-1.0.0-1.fc26.s390x
texlive-texlive.infra-svn41280-33.fc26.2.noarch
texlive-lm-svn28119.2.004-33.fc26.2.noarch
texlive-babelbib-svn25245.1.31-33.fc26.2.noarch
texlive-index-svn24099.4.1beta-33.fc26.2.noarch
texlive-pdftex-bin-svn40987-33.20160520.fc26.2.s390x
texlive-csquotes-svn39538-33.fc26.2.noarch
texlive-rsfs-svn15878.0-33.fc26.2.noarch
texlive-etex-svn37057.0-33.fc26.2.noarch
texlive-knuth-lib-svn35820.0-33.fc26.2.noarch
texlive-pst-math-svn34786.0.63-33.fc26.2.noarch
texlive-utopia-svn15878.0-33.fc26.2.noarch
texlive-eso-pic-svn37925.2.0g-33.fc26.2.noarch
texlive-pst-fill-svn15878.1.01-33.fc26.2.noarch
texlive-latex-bin-bin-svn14050.0-33.20160520.fc26.2.noarch
texlive-jknapltx-svn19440.0-33.fc26.2.noarch
texlive-collection-latexrecommended-svn35765.0-33.20160520.fc26.2.noarch
adwaita-cursor-theme-3.24.0-2.fc26.noarch
xorg-x11-fonts-ISO8859-1-100dpi-7.5-17.fc26.noarch
libXcomposite-devel-0.4.4-9.fc26.s390x
at-spi2-core-devel-2.24.1-1.fc26.s390x
harfbuzz-devel-1.4.4-1.fc26.s390x
rpmdevtools-8.10-2.fc26.noarch
texi2html-5.0-5.fc26.noarch
libnfs-devel-1.9.8-3.fc26.s390x
firewalld-0.4.4.5-1.fc26.noarch
wpa_supplicant-2.6-12.fc26.s390x
systemtap-sdt-devel-3.2-2.fc26.s390x
newt-python-0.52.20-1.fc26.s390x
perl-Mozilla-CA-20160104-4.fc26.noarch
pth-2.0.7-28.fc26.s390x
python3-pyxdg-0.25-12.fc26.noarch
nss-softokn-devel-3.34.0-1.0.fc26.s390x
fedpkg-1.30-4.fc26.noarch
timedatex-0.4-3.fc26.s390x
libjpeg-turbo-1.5.3-1.fc26.s390x
glusterfs-cli-3.10.8-1.fc26.s390x
libsss_nss_idmap-1.16.0-4.fc26.s390x
gdb-8.0.1-33.fc26.s390x
dnf-yum-2.7.5-2.fc26.noarch
perl-Data-Dumper-2.161-3.fc26.s390x
python-async-0.6.1-9.fc22.s390x
poppler-data-0.4.7-7.fc26.noarch
ocaml-srpm-macros-4-2.fc26.noarch
libuuid-2.30.2-1.fc26.s390x
libgpg-error-1.25-2.fc26.s390x
libassuan-2.4.3-2.fc26.s390x
graphite2-1.3.10-1.fc26.s390x
perl-Text-Tabs+Wrap-2013.0523-366.fc26.noarch
perl-Error-0.17024-8.fc26.noarch
which-2.21-2.fc26.s390x
libXau-1.0.8-7.fc26.s390x
orc-0.4.27-1.fc26.s390x
perl-Pod-Perldoc-3.28-1.fc26.noarch
libsndfile-1.0.28-6.fc26.s390x
patch-2.7.5-4.fc26.s390x
gzip-1.8-2.fc26.s390x
python-ipaddress-1.0.16-4.fc26.noarch
yum-metadata-parser-1.1.4-18.fc26.s390x
python3-dbus-1.2.4-6.fc26.s390x
python3-cryptography-2.0.2-2.fc26.s390x
python3-kickstart-2.35-2.fc26.noarch
python2-imagesize-0.7.1-5.fc26.noarch
python2-jinja2-2.9.6-1.fc26.noarch
libradosstriper-devel-10.2.7-2.fc26.s390x
soundtouch-1.9.2-4.fc26.s390x
glibc-headers-2.25-12.fc26.s390x
libndp-1.6-2.fc26.s390x
rpm-4.13.0.2-1.fc26.s390x
rest-0.8.0-2.fc26.s390x
libvisual-0.4.0-21.fc26.s390x
python2-hawkey-0.11.1-1.fc26.s390x
dnf-plugins-core-2.1.5-1.fc26.noarch
fakeroot-libs-1.22-1.fc26.s390x
device-mapper-event-libs-1.02.137-6.fc26.s390x
cyrus-sasl-2.1.26-32.fc26.s390x
kernel-modules-4.13.13-200.fc26.s390x
cronie-anacron-1.5.1-5.fc26.s390x
libpath_utils-0.2.1-34.fc26.s390x
libX11-common-1.6.5-2.fc26.noarch
libXft-2.3.2-5.fc26.s390x
gtk2-2.24.31-4.fc26.s390x
texlive-etoolbox-svn38031.2.2a-33.fc26.2.noarch
texlive-multido-svn18302.1.42-33.fc26.2.noarch
texlive-glyphlist-svn28576.0-33.fc26.2.noarch
texlive-setspace-svn24881.6.7a-33.fc26.2.noarch
texlive-mathtools-svn38833-33.fc26.2.noarch
texlive-ncntrsbk-svn31835.0-33.fc26.2.noarch
texlive-dvisvgm-def-svn41011-33.fc26.2.noarch
texlive-ifetex-svn24853.1.2-33.fc26.2.noarch
texlive-parskip-svn19963.2.0-33.fc26.2.noarch
texlive-bera-svn20031.0-33.fc26.2.noarch
texlive-pgf-svn40966-33.fc26.2.noarch
texlive-auto-pst-pdf-svn23723.0.6-33.fc26.2.noarch
texlive-ctable-svn38672-33.fc26.2.noarch
texlive-typehtml-svn17134.0-33.fc26.2.noarch
mesa-libGLES-17.2.4-2.fc26.s390x
vte291-0.48.4-1.fc26.s390x
libdrm-devel-2.4.88-1.fc26.s390x
libcephfs_jni1-10.2.7-2.fc26.s390x
bzip2-devel-1.0.6-22.fc26.s390x
expat-devel-2.2.4-1.fc26.s390x
libsepol-devel-2.6-2.fc26.s390x
glib2-static-2.52.3-2.fc26.s390x
virglrenderer-devel-0.6.0-1.20170210git76b3da97b.fc26.s390x
yum-utils-1.1.31-512.fc26.noarch
parted-3.2-24.fc26.s390x
python3-beautifulsoup4-4.6.0-1.fc26.noarch
python-bunch-1.0.1-10.fc26.noarch
perl-Time-HiRes-1.9746-1.fc26.s390x
lz4-1.8.0-1.fc26.s390x
nss-util-3.34.0-1.0.fc26.s390x
openssh-clients-7.5p1-4.fc26.s390x
chrony-3.2-1.fc26.s390x
dnf-conf-2.7.5-2.fc26.noarch
glusterfs-server-3.10.8-1.fc26.s390x
sssd-client-1.16.0-4.fc26.s390x
man-db-2.7.6.1-8.fc26.s390x
bodhi-client-2.12.2-3.fc26.noarch
perl-Module-CoreList-5.20171120-1.fc26.noarch
hawkey-0.6.4-3.fc25.s390x
python-srpm-macros-3-20.fc26.noarch
perl-srpm-macros-1-21.fc26.noarch
expat-2.2.4-1.fc26.s390x
chkconfig-1.10-1.fc26.s390x
findutils-4.6.0-12.fc26.s390x
mesa-libwayland-egl-17.2.4-2.fc26.s390x
procps-ng-3.3.10-13.fc26.s390x
mesa-libglapi-17.2.4-2.fc26.s390x
perl-Unicode-Normalize-1.25-366.fc26.s390x
perl-IO-Socket-IP-0.39-1.fc26.noarch
hunspell-en-US-0.20140811.1-6.fc26.noarch
libxcb-1.12-3.fc26.s390x
libgo-devel-7.2.1-2.fc26.s390x
perl-Pod-Escapes-1.07-366.fc26.noarch
perl-Pod-Usage-1.69-2.fc26.noarch
libtheora-1.1.1-15.fc26.s390x
tcp_wrappers-7.6-85.fc26.s390x
coreutils-8.27-7.fc26.s390x
libmount-2.30.2-1.fc26.s390x
python2-iniparse-0.4-24.fc26.noarch
python2-decorator-4.0.11-2.fc26.noarch
ModemManager-glib-1.6.10-1.fc26.s390x
python3-decorator-4.0.11-2.fc26.noarch
python3-cffi-1.9.1-2.fc26.s390x
python-bugzilla-cli-2.1.0-1.fc26.noarch
python2-funcsigs-1.0.2-5.fc26.noarch
python2-babel-2.3.4-5.fc26.noarch
python-bugzilla-2.1.0-1.fc26.noarch
libradosstriper1-10.2.7-2.fc26.s390x
snappy-1.1.4-3.fc26.s390x
dtc-1.4.5-1.fc26.s390x
libmpcdec-1.2.6-17.fc26.s390x
rpm-libs-4.13.0.2-1.fc26.s390x
python-urlgrabber-3.10.1-11.fc26.noarch
sysfsutils-2.1.0-20.fc26.s390x
python3-hawkey-0.11.1-1.fc26.s390x
python3-dnf-plugins-core-2.1.5-1.fc26.noarch
ethtool-4.13-1.fc26.s390x
iputils-20161105-5.fc26.s390x
plymouth-scripts-0.9.3-0.7.20160620git0e65b86c.fc26.s390x
cronie-1.5.1-5.fc26.s390x
libini_config-1.3.1-34.fc26.s390x
libX11-1.6.5-2.fc26.s390x
libglvnd-egl-1.0.0-1.fc26.s390x
texlive-kpathsea-svn41139-33.fc26.2.noarch
texlive-thumbpdf-bin-svn6898.0-33.20160520.fc26.2.noarch
texlive-subfig-svn15878.1.3-33.fc26.2.noarch
texlive-gsftopk-bin-svn40473-33.20160520.fc26.2.s390x
texlive-tex-ini-files-svn40533-33.fc26.2.noarch
texlive-qstest-svn15878.0-33.fc26.2.noarch
texlive-palatino-svn31835.0-33.fc26.2.noarch
texlive-ec-svn25033.1.0-33.fc26.2.noarch
texlive-iftex-svn29654.0.2-33.fc26.2.noarch
texlive-pslatex-svn16416.0-33.fc26.2.noarch
texlive-algorithms-svn38085.0.1-33.fc26.2.noarch
texlive-filehook-svn24280.0.5d-33.fc26.2.noarch
texlive-pst-node-svn40743-33.fc26.2.noarch
texlive-rotating-svn16832.2.16b-33.fc26.2.noarch
texlive-seminar-svn34011.1.62-33.fc26.2.noarch
gtk3-3.22.21-2.fc26.s390x
libuuid-devel-2.30.2-1.fc26.s390x
java-1.8.0-openjdk-1.8.0.151-1.b12.fc26.s390x
libXinerama-devel-1.1.3-7.fc26.s390x
emacs-common-25.3-3.fc26.s390x
gtk3-devel-3.22.21-2.fc26.s390x
fedora-packager-0.6.0.1-2.fc26.noarch
libxml2-devel-2.9.4-2.fc26.s390x
snappy-devel-1.1.4-3.fc26.s390x
python2-dnf-plugin-migrate-2.1.5-1.fc26.noarch
authconfig-7.0.1-2.fc26.s390x
newt-python3-0.52.20-1.fc26.s390x
python-decoratortools-1.8-13.fc26.noarch
python-systemd-doc-234-1.fc26.s390x
openssl-libs-1.1.0g-1.fc26.s390x
git-core-2.13.6-2.fc26.s390x
python3-dnf-plugin-system-upgrade-2.0.4-1.fc26.noarch
glusterfs-libs-3.10.8-1.fc26.s390x
ca-certificates-2017.2.20-1.0.fc26.noarch
unbound-libs-1.6.7-1.fc26.s390x
libsss_certmap-1.16.0-4.fc26.s390x
glusterfs-api-devel-3.10.8-1.fc26.s390x
selinux-policy-targeted-3.13.1-260.17.fc26.noarch
publicsuffix-list-dafsa-20171028-1.fc26.noarch
gpg-pubkey-a0a7badb-52844296
gpg-pubkey-e372e838-56fd7943
gpg-pubkey-3b921d09-57a87096
google-roboto-slab-fonts-1.100263-0.5.20150923git.fc26.noarch
libreport-filesystem-2.9.1-3.fc26.s390x
glibc-all-langpacks-2.25-12.fc26.s390x
libcom_err-1.43.4-2.fc26.s390x
libffi-3.1-12.fc26.s390x
keyutils-libs-1.5.10-1.fc26.s390x
diffutils-3.5-3.fc26.s390x
apr-util-1.5.4-6.fc26.s390x
bluez-libs-5.46-6.fc26.s390x
libksba-1.3.5-3.fc26.s390x
ncurses-6.0-8.20170212.fc26.s390x
gsm-1.0.17-1.fc26.s390x
libteam-1.27-1.fc26.s390x
perl-Fedora-VSP-0.001-5.fc26.noarch
libusb-0.1.5-8.fc26.s390x
acl-2.2.52-15.fc26.s390x
dwz-0.12-3.fc26.s390x
libblkid-2.30.2-1.fc26.s390x
polkit-libs-0.113-8.fc26.s390x
dbus-python-1.2.4-6.fc26.s390x
gts-0.7.6-30.20121130.fc26.s390x
libfdisk-2.30.2-1.fc26.s390x
python3-pycparser-2.14-10.fc26.noarch
python3-bugzilla-2.1.0-1.fc26.noarch
python2-docutils-0.13.1-4.fc26.noarch
pytz-2016.10-4.fc26.noarch
python2-requests-2.13.0-1.fc26.noarch
libcephfs-devel-10.2.7-2.fc26.s390x
ncurses-c++-libs-6.0-8.20170212.fc26.s390x
GeoIP-1.6.11-1.fc26.s390x
liblockfile-1.09-5.fc26.s390x
rpm-plugin-selinux-4.13.0.2-1.fc26.s390x
systemtap-devel-3.2-2.fc26.s390x
libsysfs-2.1.0-20.fc26.s390x
libdnf-0.11.1-1.fc26.s390x
libgfortran-7.2.1-2.fc26.s390x
mesa-libgbm-17.2.4-2.fc26.s390x
dracut-046-3.1.fc26.s390x
lvm2-libs-2.02.168-6.fc26.s390x
libXfixes-5.0.3-2.fc26.s390x
brlapi-0.6.6-5.fc26.s390x
texlive-metafont-svn40793-33.fc26.2.noarch
texlive-graphics-cfg-svn40269-33.fc26.2.noarch
texlive-mptopdf-svn41282-33.fc26.2.noarch
texlive-makeindex-bin-svn40473-33.20160520.fc26.2.s390x
texlive-texlive-scripts-bin-svn29741.0-33.20160520.fc26.2.noarch
texlive-sauerj-svn15878.0-33.fc26.2.noarch
texlive-txfonts-svn15878.0-33.fc26.2.noarch
texlive-filecontents-svn24250.1.3-33.fc26.2.noarch
texlive-lualibs-svn40370-33.fc26.2.noarch
texlive-section-svn20180.0-33.fc26.2.noarch
texlive-ucharcat-svn38907-33.fc26.2.noarch
texlive-hyperref-svn41396-33.fc26.2.noarch
texlive-pst-3d-svn17257.1.10-33.fc26.2.noarch
texlive-oberdiek-svn41346-33.fc26.2.noarch
texlive-ae-svn15878.1.4-33.fc26.2.noarch
texlive-collection-basic-svn41149-33.20160520.fc26.2.noarch
gnat-srpm-macros-4-2.fc26.noarch
glib2-devel-2.52.3-2.fc26.s390x
netpbm-progs-10.80.00-2.fc26.s390x
libXxf86vm-devel-1.1.4-4.fc26.s390x
nettle-devel-3.3-2.fc26.s390x
cairo-gobject-devel-1.14.10-1.fc26.s390x
fedora-rpm-macros-26-2.fc26.noarch
elfutils-devel-0.169-1.fc26.s390x
libidn-devel-1.33-2.fc26.s390x
s390utils-1.36.1-3.fc26.s390x
gcc-gfortran-7.2.1-2.fc26.s390x
libtool-2.4.6-17.fc26.s390x
python3-cssselect-0.9.2-4.fc26.noarch
python2-cssselect-0.9.2-4.fc26.noarch
bison-3.0.4-6.fc26.s390x
rootfiles-8.1-20.fc26.noarch
git-core-doc-2.13.6-2.fc26.s390x
vim-enhanced-8.0.1360-1.fc26.s390x
glusterfs-3.10.8-1.fc26.s390x
boost-system-1.63.0-10.fc26.s390x
gnutls-dane-3.5.16-4.fc26.s390x
pkgconf-m4-1.3.12-1.fc26.noarch
libcurl-devel-7.53.1-13.fc26.s390x
python3-urllib3-1.20-2.fc26.noarch
libsss_autofs-1.16.0-4.fc26.s390x
=== TEST BEGIN ===
Using CC: /home/fam/bin/cc
Install prefix /var/tmp/patchew-tester-tmp-z8zo58jf/src/install
BIOS directory /var/tmp/patchew-tester-tmp-z8zo58jf/src/install/share/qemu
firmware path /var/tmp/patchew-tester-tmp-z8zo58jf/src/install/share/qemu-firmware
binary directory /var/tmp/patchew-tester-tmp-z8zo58jf/src/install/bin
library directory /var/tmp/patchew-tester-tmp-z8zo58jf/src/install/lib
module directory /var/tmp/patchew-tester-tmp-z8zo58jf/src/install/lib/qemu
libexec directory /var/tmp/patchew-tester-tmp-z8zo58jf/src/install/libexec
include directory /var/tmp/patchew-tester-tmp-z8zo58jf/src/install/include
config directory /var/tmp/patchew-tester-tmp-z8zo58jf/src/install/etc
local state directory /var/tmp/patchew-tester-tmp-z8zo58jf/src/install/var
Manual directory /var/tmp/patchew-tester-tmp-z8zo58jf/src/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /var/tmp/patchew-tester-tmp-z8zo58jf/src
GIT binary git
GIT submodules ui/keycodemapdb capstone
C compiler /home/fam/bin/cc
Host C compiler cc
C++ compiler c++
Objective-C compiler /home/fam/bin/cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -I/usr/include/pixman-1 -Werror -DHAS_LIBSSH2_SFTP_FSYNC -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DNCURSES_WIDECHAR -D_GNU_SOURCE -D_DEFAULT_SOURCE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -I/usr/include/p11-kit-1 -I/usr/include/libpng16 -I/usr/include/libdrm -I$(SRC_PATH)/capstone/include
LDFLAGS -Wl,--warn-common -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU s390x
host big endian yes
target list aarch64-softmmu alpha-softmmu arm-softmmu cris-softmmu hppa-softmmu i386-softmmu lm32-softmmu m68k-softmmu microblazeel-softmmu microblaze-softmmu mips64el-softmmu mips64-softmmu mipsel-softmmu mips-softmmu moxie-softmmu nios2-softmmu or1k-softmmu ppc64-softmmu ppcemb-softmmu ppc-softmmu s390x-softmmu sh4eb-softmmu sh4-softmmu sparc64-softmmu sparc-softmmu tricore-softmmu unicore32-softmmu x86_64-softmmu xtensaeb-softmmu xtensa-softmmu aarch64_be-linux-user aarch64-linux-user alpha-linux-user armeb-linux-user arm-linux-user cris-linux-user hppa-linux-user i386-linux-user m68k-linux-user microblazeel-linux-user microblaze-linux-user mips64el-linux-user mips64-linux-user mipsel-linux-user mips-linux-user mipsn32el-linux-user mipsn32-linux-user nios2-linux-user or1k-linux-user ppc64abi32-linux-user ppc64le-linux-user ppc64-linux-user ppc-linux-user s390x-linux-user sh4eb-linux-user sh4-linux-user sparc32plus-linux-user sparc64-linux-user sparc-linux-user tilegx-linux-user x86_64-linux-user
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
SDL support yes (2.0.7)
GTK support yes (3.22.21)
GTK GL support yes
VTE support yes (0.48.4)
TLS priority NORMAL
GNUTLS support yes
GNUTLS rnd yes
libgcrypt no
libgcrypt kdf no
nettle yes (3.3)
nettle kdf yes
libtasn1 yes
curses support yes
virgl support yes
curl support yes
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support yes
Multipath support no
VNC support yes
VNC SASL support yes
VNC JPEG support yes
VNC PNG support yes
xen support no
brlapi support yes
bluez support yes
Documentation yes
PIE no
vde support no
netmap support no
Linux AIO support yes
ATTR/XATTR support yes
Install blobs yes
KVM support yes
HAX support no
HVF support no
TCG support yes
TCG debug enabled no
TCG interpreter no
malloc trim support yes
RDMA support no
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
libcap-ng support yes
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
vhost-user support yes
Trace backends log
spice support no
rbd support yes
xfsctl support no
smartcard support yes
libusb yes
usb net redir yes
OpenGL support yes
OpenGL dmabufs yes
libiscsi support yes
libnfs support yes
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support yes
coroutine backend ucontext
coroutine pool yes
debug stack usage no
crypto afalg no
GlusterFS support yes
gcov gcov
gcov enabled no
TPM support yes
libssh2 support yes
TPM passthrough no
TPM emulator yes
QOM debugging yes
Live block migration yes
lzo support yes
snappy support yes
bzip2 support yes
NUMA host support no
tcmalloc support no
jemalloc support no
avx2 optimization no
replication support yes
VxHS block device no
capstone git
GEN aarch64-softmmu/config-devices.mak.tmp
GEN alpha-softmmu/config-devices.mak.tmp
GEN arm-softmmu/config-devices.mak.tmp
GEN cris-softmmu/config-devices.mak.tmp
GEN cris-softmmu/config-devices.mak
GEN hppa-softmmu/config-devices.mak.tmp
GEN arm-softmmu/config-devices.mak
GEN alpha-softmmu/config-devices.mak
GEN i386-softmmu/config-devices.mak.tmp
GEN aarch64-softmmu/config-devices.mak
GEN lm32-softmmu/config-devices.mak.tmp
GEN m68k-softmmu/config-devices.mak.tmp
GEN hppa-softmmu/config-devices.mak
GEN lm32-softmmu/config-devices.mak
GEN m68k-softmmu/config-devices.mak
GEN microblazeel-softmmu/config-devices.mak.tmp
GEN microblaze-softmmu/config-devices.mak.tmp
GEN mips64el-softmmu/config-devices.mak.tmp
GEN i386-softmmu/config-devices.mak
GEN mips64-softmmu/config-devices.mak.tmp
GEN microblaze-softmmu/config-devices.mak
GEN mipsel-softmmu/config-devices.mak.tmp
GEN microblazeel-softmmu/config-devices.mak
GEN mips-softmmu/config-devices.mak.tmp
GEN mips64-softmmu/config-devices.mak
GEN moxie-softmmu/config-devices.mak.tmp
GEN mips64el-softmmu/config-devices.mak
GEN nios2-softmmu/config-devices.mak.tmp
GEN moxie-softmmu/config-devices.mak
GEN mipsel-softmmu/config-devices.mak
GEN mips-softmmu/config-devices.mak
GEN or1k-softmmu/config-devices.mak.tmp
GEN ppc64-softmmu/config-devices.mak.tmp
GEN nios2-softmmu/config-devices.mak
GEN ppcemb-softmmu/config-devices.mak.tmp
GEN ppc-softmmu/config-devices.mak.tmp
GEN or1k-softmmu/config-devices.mak
GEN s390x-softmmu/config-devices.mak.tmp
GEN ppc64-softmmu/config-devices.mak
GEN ppcemb-softmmu/config-devices.mak
GEN sh4eb-softmmu/config-devices.mak.tmp
GEN sh4-softmmu/config-devices.mak.tmp
GEN ppc-softmmu/config-devices.mak
GEN s390x-softmmu/config-devices.mak
GEN sparc64-softmmu/config-devices.mak.tmp
GEN sparc-softmmu/config-devices.mak.tmp
GEN sh4eb-softmmu/config-devices.mak
GEN sh4-softmmu/config-devices.mak
GEN sparc-softmmu/config-devices.mak
GEN tricore-softmmu/config-devices.mak.tmp
GEN unicore32-softmmu/config-devices.mak.tmp
GEN x86_64-softmmu/config-devices.mak.tmp
GEN sparc64-softmmu/config-devices.mak
GEN xtensaeb-softmmu/config-devices.mak.tmp
GEN tricore-softmmu/config-devices.mak
GEN unicore32-softmmu/config-devices.mak
GEN xtensa-softmmu/config-devices.mak.tmp
GEN aarch64_be-linux-user/config-devices.mak.tmp
GEN x86_64-softmmu/config-devices.mak
GEN xtensaeb-softmmu/config-devices.mak
GEN alpha-linux-user/config-devices.mak.tmp
GEN aarch64_be-linux-user/config-devices.mak
GEN aarch64-linux-user/config-devices.mak.tmp
GEN xtensa-softmmu/config-devices.mak
GEN armeb-linux-user/config-devices.mak.tmp
GEN arm-linux-user/config-devices.mak.tmp
GEN aarch64-linux-user/config-devices.mak
GEN alpha-linux-user/config-devices.mak
GEN cris-linux-user/config-devices.mak.tmp
GEN armeb-linux-user/config-devices.mak
GEN arm-linux-user/config-devices.mak
GEN hppa-linux-user/config-devices.mak.tmp
GEN i386-linux-user/config-devices.mak.tmp
GEN m68k-linux-user/config-devices.mak.tmp
GEN cris-linux-user/config-devices.mak
GEN m68k-linux-user/config-devices.mak
GEN microblazeel-linux-user/config-devices.mak.tmp
GEN microblaze-linux-user/config-devices.mak.tmp
GEN hppa-linux-user/config-devices.mak
GEN i386-linux-user/config-devices.mak
GEN mips64el-linux-user/config-devices.mak.tmp
GEN mips64-linux-user/config-devices.mak.tmp
GEN microblazeel-linux-user/config-devices.mak
GEN microblaze-linux-user/config-devices.mak
GEN mipsel-linux-user/config-devices.mak.tmp
GEN mips64el-linux-user/config-devices.mak
GEN mips-linux-user/config-devices.mak.tmp
GEN mips64-linux-user/config-devices.mak
GEN mipsn32el-linux-user/config-devices.mak.tmp
GEN mipsn32-linux-user/config-devices.mak.tmp
GEN mipsel-linux-user/config-devices.mak
GEN nios2-linux-user/config-devices.mak.tmp
GEN mips-linux-user/config-devices.mak
GEN mipsn32el-linux-user/config-devices.mak
GEN or1k-linux-user/config-devices.mak.tmp
GEN nios2-linux-user/config-devices.mak
GEN mipsn32-linux-user/config-devices.mak
GEN ppc64le-linux-user/config-devices.mak.tmp
GEN ppc64-linux-user/config-devices.mak.tmp
GEN ppc64abi32-linux-user/config-devices.mak.tmp
GEN or1k-linux-user/config-devices.mak
GEN ppc-linux-user/config-devices.mak.tmp
GEN ppc64le-linux-user/config-devices.mak
GEN ppc64-linux-user/config-devices.mak
GEN ppc64abi32-linux-user/config-devices.mak
GEN s390x-linux-user/config-devices.mak.tmp
GEN sh4eb-linux-user/config-devices.mak.tmp
GEN sh4-linux-user/config-devices.mak.tmp
GEN ppc-linux-user/config-devices.mak
GEN sparc32plus-linux-user/config-devices.mak.tmp
GEN s390x-linux-user/config-devices.mak
GEN sh4-linux-user/config-devices.mak
GEN sh4eb-linux-user/config-devices.mak
GEN sparc64-linux-user/config-devices.mak.tmp
GEN sparc-linux-user/config-devices.mak.tmp
GEN tilegx-linux-user/config-devices.mak.tmp
GEN sparc32plus-linux-user/config-devices.mak
GEN x86_64-linux-user/config-devices.mak.tmp
GEN sparc64-linux-user/config-devices.mak
GEN sparc-linux-user/config-devices.mak
GEN tilegx-linux-user/config-devices.mak
GEN config-host.h
GIT ui/keycodemapdb capstone
GEN x86_64-linux-user/config-devices.mak
GEN qemu-options.def
GEN qmp-commands.h
GEN qapi-types.h
GEN qapi-visit.h
GEN qapi-event.h
GEN qmp-marshal.c
GEN qapi-types.c
GEN qapi-visit.c
GEN qapi-event.c
GEN qmp-introspect.h
GEN qmp-introspect.c
GEN trace/generated-tcg-tracers.h
GEN trace/generated-helpers-wrappers.h
GEN trace/generated-helpers.h
GEN trace/generated-helpers.c
GEN module_block.h
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
Submodule 'capstone' (git://git.qemu.org/capstone.git) registered for path 'capstone'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
GEN hw/intc/trace.h
Cloning into '/var/tmp/patchew-tester-tmp-z8zo58jf/src/capstone'...
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sparc64/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/hppa/trace.h
GEN hw/xen/trace.h
GEN hw/ide/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN accel/kvm/trace.h
GEN nbd/trace.h
GEN scsi/trace.h
GEN trace-root.c
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sparc64/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/hppa/trace.c
GEN hw/xen/trace.c
GEN hw/ide/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN nbd/trace.c
GEN scsi/trace.c
GEN config-all-devices.mak
Cloning into '/var/tmp/patchew-tester-tmp-z8zo58jf/src/ui/keycodemapdb'...
GEN ui/input-keymap-linux-to-qcode.c
GEN ui/input-keymap-qcode-to-qnum.c
GEN ui/input-keymap-qnum-to-qcode.c
CC cs.o
GEN ui/input-keymap-qcode-to-linux.c
CC utils.o
CC SStream.o
CC MCInstrDesc.o
CC MCRegisterInfo.o
CC arch/ARM/ARMDisassembler.o
CC arch/ARM/ARMInstPrinter.o
CC arch/ARM/ARMMapping.o
CC arch/ARM/ARMModule.o
CC arch/AArch64/AArch64BaseInfo.o
CC arch/AArch64/AArch64Disassembler.o
CC arch/AArch64/AArch64InstPrinter.o
CC arch/AArch64/AArch64Mapping.o
CC arch/AArch64/AArch64Module.o
CC arch/Mips/MipsDisassembler.o
CC arch/Mips/MipsInstPrinter.o
CC arch/Mips/MipsMapping.o
CC arch/Mips/MipsModule.o
CC arch/PowerPC/PPCDisassembler.o
CC arch/PowerPC/PPCInstPrinter.o
CC arch/PowerPC/PPCMapping.o
CC arch/PowerPC/PPCModule.o
CC arch/Sparc/SparcDisassembler.o
CC arch/Sparc/SparcInstPrinter.o
CC arch/Sparc/SparcMapping.o
CC arch/Sparc/SparcModule.o
CC arch/SystemZ/SystemZDisassembler.o
CC arch/SystemZ/SystemZInstPrinter.o
CC arch/SystemZ/SystemZMapping.o
CC arch/SystemZ/SystemZModule.o
CC arch/SystemZ/SystemZMCTargetDesc.o
CC arch/X86/X86DisassemblerDecoder.o
CC arch/X86/X86Disassembler.o
CC arch/X86/X86IntelInstPrinter.o
CC arch/X86/X86ATTInstPrinter.o
CC arch/X86/X86Mapping.o
CC arch/X86/X86Module.o
CC arch/XCore/XCoreDisassembler.o
CC arch/XCore/XCoreInstPrinter.o
CC arch/XCore/XCoreMapping.o
CC arch/XCore/XCoreModule.o
CC MCInst.o
AR libcapstone.a
ar: creating /var/tmp/patchew-tester-tmp-z8zo58jf/src/build/capstone/libcapstone.a
GEN docs/version.texi
GEN qemu-options.texi
GEN qemu-monitor.texi
CC tests/qemu-iotests/socket_scm_helper.o
GEN qemu-img-cmds.texi
GEN qemu-monitor-info.texi
GEN qemu-img.1
GEN qemu-nbd.8
GEN qemu-ga.8
GEN docs/interop/qemu-qmp-qapi.texi
GEN docs/interop/qemu-ga-qapi.texi
GEN docs/qemu-block-drivers.7
GEN fsdev/virtfs-proxy-helper.1
GEN qga/qapi-generated/qga-qapi-types.h
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qmp-commands.h
GEN qga/qapi-generated/qga-qapi-types.c
GEN qga/qapi-generated/qga-qapi-visit.c
GEN qga/qapi-generated/qga-qmp-marshal.c
CC qmp-introspect.o
CC qapi-types.o
CC qapi-visit.o
CC qapi-event.o
CC qapi/qapi-visit-core.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qobject-input-visitor.o
CC qapi/qobject-output-visitor.o
CC qapi/qmp-registry.o
CC qapi/qmp-dispatch.o
CC qapi/string-input-visitor.o
CC qapi/string-output-visitor.o
CC qapi/opts-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qnum.o
CC qobject/qstring.o
CC qobject/qdict.o
CC qobject/qlist.o
CC qobject/qbool.o
CC qobject/qlit.o
CC qobject/qjson.o
CC qobject/qobject.o
CC qobject/json-lexer.o
CC qobject/json-streamer.o
CC qobject/json-parser.o
CC trace/control.o
CC trace/qmp.o
CC util/osdep.o
CC util/cutils.o
CC util/unicode.o
CC util/qemu-timer-common.o
CC util/bufferiszero.o
CC util/lockcnt.o
CC util/aiocb.o
CC util/async.o
CC util/thread-pool.o
CC util/qemu-timer.o
CC util/main-loop.o
CC util/iohandler.o
CC util/aio-posix.o
CC util/compatfd.o
CC util/event_notifier-posix.o
CC util/mmap-alloc.o
CC util/oslib-posix.o
CC util/qemu-openpty.o
CC util/qemu-thread-posix.o
CC util/memfd.o
CC util/envlist.o
CC util/path.o
CC util/module.o
CC util/host-utils.o
CC util/bitmap.o
CC util/bitops.o
CC util/hbitmap.o
CC util/fifo8.o
CC util/acl.o
CC util/cacheinfo.o
CC util/error.o
CC util/qemu-error.o
CC util/id.o
CC util/iov.o
CC util/qemu-config.o
CC util/qemu-sockets.o
CC util/uri.o
CC util/notify.o
CC util/qemu-option.o
CC util/qemu-progress.o
CC util/keyval.o
CC util/hexdump.o
CC util/crc32c.o
CC util/uuid.o
CC util/throttle.o
CC util/getauxval.o
CC util/readline.o
CC util/rcu.o
CC util/qemu-coroutine.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-io.o
CC util/qemu-coroutine-sleep.o
CC util/coroutine-ucontext.o
CC util/buffer.o
CC util/timed-average.o
CC util/base64.o
CC util/log.o
CC util/pagesize.o
CC util/qdist.o
CC util/qht.o
CC util/range.o
CC util/stats64.o
CC util/systemd.o
CC trace-root.o
CC util/trace.o
CC crypto/trace.o
CC io/trace.o
CC migration/trace.o
CC block/trace.o
CC chardev/trace.o
CC hw/block/trace.o
CC hw/block/dataplane/trace.o
CC hw/char/trace.o
CC hw/intc/trace.o
CC hw/net/trace.o
CC hw/virtio/trace.o
CC hw/audio/trace.o
CC hw/misc/trace.o
CC hw/usb/trace.o
CC hw/scsi/trace.o
CC hw/nvram/trace.o
CC hw/display/trace.o
CC hw/input/trace.o
CC hw/timer/trace.o
CC hw/dma/trace.o
CC hw/sparc/trace.o
CC hw/sparc64/trace.o
CC hw/sd/trace.o
CC hw/isa/trace.o
CC hw/mem/trace.o
CC hw/i386/trace.o
CC hw/i386/xen/trace.o
CC hw/9pfs/trace.o
CC hw/ppc/trace.o
CC hw/pci/trace.o
CC hw/s390x/trace.o
CC hw/vfio/trace.o
CC hw/acpi/trace.o
CC hw/arm/trace.o
CC hw/alpha/trace.o
CC hw/hppa/trace.o
CC hw/xen/trace.o
CC hw/ide/trace.o
CC ui/trace.o
CC audio/trace.o
CC net/trace.o
CC target/arm/trace.o
CC target/i386/trace.o
CC target/mips/trace.o
CC target/sparc/trace.o
CC target/s390x/trace.o
CC target/ppc/trace.o
CC qom/trace.o
CC linux-user/trace.o
CC qapi/trace.o
CC accel/tcg/trace.o
CC accel/kvm/trace.o
CC nbd/trace.o
CC scsi/trace.o
CC crypto/pbkdf-stub.o
CC stubs/arch-query-cpu-def.o
CC stubs/arch-query-cpu-model-expansion.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/blk-commit-all.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-clock.o
CC stubs/cpu-get-icount.o
CC stubs/dump.o
CC stubs/error-printf.o
CC stubs/fdset.o
CC stubs/gdbstub.o
CC stubs/get-vm-name.o
CC stubs/iothread.o
CC stubs/iothread-lock.o
CC stubs/is-daemonized.o
CC stubs/linux-aio.o
CC stubs/machine-init-done.o
CC stubs/migr-blocker.o
CC stubs/change-state-handler.o
CC stubs/monitor.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/replay.o
CC stubs/runstate-check.o
CC stubs/set-fd-handler.o
CC stubs/slirp.o
CC stubs/sysbus.o
CC stubs/tpm.o
CC stubs/trace-control.o
CC stubs/uuid.o
CC stubs/vm-stop.o
CC stubs/vmstate.o
CC stubs/qmp_pc_dimm.o
CC stubs/target-monitor-defs.o
CC stubs/target-get-monitor-def.o
CC stubs/pc_madt_cpu_entry.o
CC stubs/vmgenid.o
CC stubs/xen-common.o
CC stubs/xen-hvm.o
CC stubs/pci-host-piix.o
CC qemu-keymap.o
CC ui/input-keymap.o
CC contrib/ivshmem-client/ivshmem-client.o
CC contrib/ivshmem-client/main.o
CC contrib/ivshmem-server/ivshmem-server.o
CC contrib/ivshmem-server/main.o
CC qemu-nbd.o
CC block.o
CC blockjob.o
CC qemu-io-cmds.o
CC replication.o
CC block/raw-format.o
CC block/qcow.o
CC block/vdi.o
CC block/vmdk.o
CC block/cloop.o
CC block/bochs.o
CC block/vpc.o
CC block/vvfat.o
CC block/dmg.o
CC block/qcow2.o
CC block/qcow2-refcount.o
CC block/qcow2-cluster.o
CC block/qcow2-snapshot.o
CC block/qcow2-cache.o
CC block/qcow2-bitmap.o
CC block/qed.o
CC block/qed-l2-cache.o
CC block/qed-table.o
CC block/qed-cluster.o
CC block/qed-check.o
CC block/vhdx.o
CC block/vhdx-endian.o
CC block/vhdx-log.o
CC block/quorum.o
CC block/parallels.o
CC block/blkdebug.o
CC block/blkverify.o
CC block/blkreplay.o
CC block/block-backend.o
CC block/snapshot.o
CC block/qapi.o
CC block/file-posix.o
CC block/linux-aio.o
CC block/null.o
CC block/mirror.o
CC block/commit.o
CC block/io.o
CC block/throttle-groups.o
CC block/nbd.o
CC block/nbd-client.o
CC block/sheepdog.o
CC block/iscsi-opts.o
CC block/accounting.o
CC block/dirty-bitmap.o
CC block/write-threshold.o
CC block/backup.o
CC block/replication.o
CC block/throttle.o
CC block/crypto.o
CC nbd/server.o
CC nbd/client.o
CC nbd/common.o
CC scsi/utils.o
CC scsi/pr-manager.o
CC scsi/pr-manager-helper.o
CC block/iscsi.o
CC block/nfs.o
CC block/curl.o
CC block/rbd.o
CC block/gluster.o
CC block/ssh.o
CC block/dmg-bz2.o
CC crypto/init.o
CC crypto/hash.o
CC crypto/hash-nettle.o
CC crypto/hmac.o
CC crypto/hmac-nettle.o
CC crypto/aes.o
CC crypto/desrfb.o
CC crypto/cipher.o
CC crypto/tlscreds.o
CC crypto/tlscredsanon.o
CC crypto/tlscredsx509.o
CC crypto/tlssession.o
CC crypto/secret.o
CC crypto/random-gnutls.o
CC crypto/pbkdf.o
CC crypto/pbkdf-nettle.o
CC crypto/ivgen-essiv.o
CC crypto/ivgen.o
CC crypto/ivgen-plain.o
CC crypto/ivgen-plain64.o
CC crypto/afsplit.o
CC crypto/xts.o
CC crypto/block.o
CC crypto/block-qcow.o
CC crypto/block-luks.o
CC io/channel.o
CC io/channel-buffer.o
CC io/channel-command.o
CC io/channel-file.o
CC io/channel-socket.o
CC io/channel-tls.o
CC io/channel-watch.o
CC io/channel-websock.o
CC io/channel-util.o
CC io/dns-resolver.o
CC io/net-listener.o
CC io/task.o
CC qom/object.o
CC qom/container.o
CC qom/qom-qobject.o
CC qom/object_interfaces.o
GEN qemu-img-cmds.h
CC qemu-io.o
CC fsdev/virtfs-proxy-helper.o
CC fsdev/9p-marshal.o
CC fsdev/9p-iov-marshal.o
CC scsi/qemu-pr-helper.o
CC qemu-bridge-helper.o
CC blockdev.o
CC blockdev-nbd.o
CC bootdevice.o
CC iothread.o
CC qdev-monitor.o
CC device-hotplug.o
CC os-posix.o
CC bt-host.o
CC bt-vhci.o
CC dma-helpers.o
CC vl.o
CC tpm.o
CC qemu-seccomp.o
CC device_tree.o
CC qmp-marshal.o
CC qmp.o
CC hmp.o
CC cpus-common.o
CC audio/audio.o
CC audio/noaudio.o
CC audio/wavaudio.o
CC audio/mixeng.o
CC audio/sdlaudio.o
CC audio/ossaudio.o
CC audio/wavcapture.o
CC backends/rng.o
CC backends/rng-egd.o
CC backends/rng-random.o
CC backends/tpm.o
CC backends/hostmem.o
CC backends/hostmem-ram.o
CC backends/hostmem-file.o
CC backends/cryptodev.o
CC backends/cryptodev-builtin.o
CC block/stream.o
CC chardev/msmouse.o
CC chardev/wctablet.o
CC chardev/testdev.o
CC chardev/baum.o
CC disas/alpha.o
CC disas/arm.o
CXX disas/arm-a64.o
CC disas/cris.o
CC disas/hppa.o
CC disas/i386.o
CC disas/m68k.o
CC disas/microblaze.o
CC disas/mips.o
CC disas/nios2.o
CC disas/moxie.o
CC disas/ppc.o
CC disas/s390.o
CC disas/sh4.o
CC disas/sparc.o
CC disas/lm32.o
CC disas/xtensa.o
CXX disas/libvixl/vixl/utils.o
CXX disas/libvixl/vixl/compiler-intrinsics.o
CXX disas/libvixl/vixl/a64/instructions-a64.o
CXX disas/libvixl/vixl/a64/decoder-a64.o
CXX disas/libvixl/vixl/a64/disasm-a64.o
CC fsdev/qemu-fsdev.o
CC fsdev/qemu-fsdev-opts.o
CC fsdev/qemu-fsdev-throttle.o
CC fsdev/qemu-fsdev-dummy.o
CC hw/9pfs/9p.o
CC hw/9pfs/9p-util.o
CC hw/9pfs/9p-local.o
CC hw/9pfs/9p-xattr.o
CC hw/9pfs/9p-xattr-user.o
CC hw/9pfs/9p-posix-acl.o
CC hw/9pfs/coth.o
CC hw/9pfs/cofs.o
CC hw/9pfs/codir.o
CC hw/9pfs/cofile.o
CC hw/9pfs/coxattr.o
CC hw/9pfs/9p-synth.o
CC hw/9pfs/9p-handle.o
CC hw/9pfs/9p-proxy.o
CC hw/acpi/core.o
CC hw/acpi/piix4.o
CC hw/acpi/pcihp.o
CC hw/acpi/ich9.o
CC hw/acpi/tco.o
CC hw/acpi/cpu_hotplug.o
CC hw/acpi/memory_hotplug.o
CC hw/acpi/cpu.o
CC hw/acpi/nvdimm.o
CC hw/acpi/vmgenid.o
CC hw/acpi/acpi_interface.o
CC hw/acpi/bios-linker-loader.o
CC hw/acpi/aml-build.o
CC hw/acpi/ipmi.o
CC hw/acpi/acpi-stub.o
CC hw/acpi/ipmi-stub.o
CC hw/audio/sb16.o
CC hw/audio/es1370.o
CC hw/audio/ac97.o
CC hw/audio/fmopl.o
CC hw/audio/adlib.o
CC hw/audio/gus.o
CC hw/audio/gusemu_hal.o
CC hw/audio/gusemu_mixer.o
CC hw/audio/cs4231a.o
CC hw/audio/intel-hda.o
CC hw/audio/hda-codec.o
CC hw/audio/pcspk.o
CC hw/audio/wm8750.o
CC hw/audio/pl041.o
CC hw/audio/lm4549.o
CC hw/audio/cs4231.o
CC hw/audio/marvell_88w8618.o
CC hw/audio/milkymist-ac97.o
CC hw/audio/soundhw.o
CC hw/block/block.o
CC hw/block/cdrom.o
CC hw/block/hd-geometry.o
CC hw/block/fdc.o
CC hw/block/m25p80.o
CC hw/block/nand.o
CC hw/block/pflash_cfi01.o
CC hw/block/pflash_cfi02.o
CC hw/block/ecc.o
CC hw/block/onenand.o
CC hw/block/nvme.o
CC hw/bt/core.o
CC hw/bt/l2cap.o
CC hw/bt/sdp.o
CC hw/bt/hci.o
CC hw/bt/hid.o
CC hw/bt/hci-csr.o
CC hw/char/ipoctal232.o
CC hw/char/escc.o
CC hw/char/parallel.o
CC hw/char/pl011.o
CC hw/char/serial.o
CC hw/char/serial-isa.o
CC hw/char/serial-pci.o
CC hw/char/virtio-console.o
CC hw/char/xilinx_uartlite.o
CC hw/char/cadence_uart.o
CC hw/char/cmsdk-apb-uart.o
CC hw/char/etraxfs_ser.o
CC hw/char/debugcon.o
CC hw/char/grlib_apbuart.o
CC hw/char/imx_serial.o
CC hw/char/lm32_juart.o
CC hw/char/lm32_uart.o
CC hw/char/milkymist-uart.o
CC hw/char/sclpconsole.o
CC hw/char/sclpconsole-lm.o
CC hw/core/qdev.o
CC hw/core/qdev-properties.o
CC hw/core/bus.o
CC hw/core/reset.o
CC hw/core/fw-path-provider.o
CC hw/core/irq.o
CC hw/core/hotplug.o
CC hw/core/nmi.o
CC hw/core/empty_slot.o
CC hw/core/stream.o
CC hw/core/ptimer.o
CC hw/core/sysbus.o
CC hw/core/machine.o
CC hw/core/loader.o
CC hw/core/loader-fit.o
CC hw/core/qdev-properties-system.o
CC hw/core/register.o
CC hw/core/or-irq.o
CC hw/core/platform-bus.o
CC hw/cpu/core.o
CC hw/display/ads7846.o
CC hw/display/cirrus_vga.o
CC hw/display/g364fb.o
CC hw/display/jazz_led.o
CC hw/display/pl110.o
CC hw/display/ssd0303.o
CC hw/display/ssd0323.o
CC hw/display/vga-pci.o
CC hw/display/vga-isa.o
CC hw/display/vga-isa-mm.o
CC hw/display/vmware_vga.o
CC hw/display/blizzard.o
CC hw/display/exynos4210_fimd.o
CC hw/display/framebuffer.o
CC hw/display/milkymist-vgafb.o
CC hw/display/tc6393xb.o
CC hw/display/milkymist-tmu2.o
CC hw/dma/puv3_dma.o
CC hw/dma/rc4030.o
CC hw/dma/pl080.o
CC hw/dma/pl330.o
CC hw/dma/i82374.o
CC hw/dma/i8257.o
CC hw/dma/xilinx_axidma.o
CC hw/dma/xlnx-zynq-devcfg.o
CC hw/dma/etraxfs_dma.o
CC hw/dma/sparc32_dma.o
CC hw/gpio/max7310.o
CC hw/gpio/pl061.o
CC hw/gpio/puv3_gpio.o
CC hw/gpio/zaurus.o
CC hw/gpio/mpc8xxx.o
CC hw/gpio/gpio_key.o
CC hw/i2c/core.o
CC hw/i2c/smbus.o
CC hw/i2c/smbus_eeprom.o
CC hw/i2c/i2c-ddc.o
CC hw/i2c/versatile_i2c.o
CC hw/i2c/smbus_ich9.o
CC hw/i2c/pm_smbus.o
CC hw/i2c/bitbang_i2c.o
CC hw/i2c/exynos4210_i2c.o
CC hw/i2c/imx_i2c.o
CC hw/i2c/aspeed_i2c.o
CC hw/ide/core.o
CC hw/ide/atapi.o
CC hw/ide/qdev.o
CC hw/ide/pci.o
CC hw/ide/isa.o
CC hw/ide/piix.o
CC hw/ide/cmd646.o
CC hw/ide/macio.o
CC hw/ide/mmio.o
CC hw/ide/via.o
CC hw/ide/microdrive.o
CC hw/ide/ahci.o
CC hw/ide/ich.o
CC hw/ide/ahci-allwinner.o
CC hw/ide/sii3112.o
CC hw/input/adb.o
CC hw/input/adb-mouse.o
CC hw/input/adb-kbd.o
CC hw/input/hid.o
CC hw/input/lm832x.o
CC hw/input/pckbd.o
CC hw/input/pl050.o
CC hw/input/ps2.o
CC hw/input/stellaris_input.o
CC hw/input/tsc2005.o
CC hw/input/virtio-input.o
CC hw/input/virtio-input-hid.o
CC hw/input/virtio-input-host.o
CC hw/intc/heathrow_pic.o
CC hw/intc/i8259_common.o
CC hw/intc/i8259.o
CC hw/intc/pl190.o
CC hw/intc/puv3_intc.o
CC hw/intc/xilinx_intc.o
CC hw/intc/etraxfs_pic.o
CC hw/intc/imx_avic.o
CC hw/intc/lm32_pic.o
CC hw/intc/realview_gic.o
CC hw/intc/slavio_intctl.o
CC hw/intc/ioapic_common.o
CC hw/intc/arm_gic_common.o
CC hw/intc/arm_gic.o
CC hw/intc/arm_gicv2m.o
CC hw/intc/arm_gicv3_common.o
CC hw/intc/arm_gicv3.o
CC hw/intc/arm_gicv3_dist.o
CC hw/intc/arm_gicv3_redist.o
CC hw/intc/arm_gicv3_its_common.o
CC hw/intc/openpic.o
CC hw/intc/intc.o
CC hw/ipack/ipack.o
CC hw/ipack/tpci200.o
CC hw/ipmi/ipmi.o
CC hw/ipmi/ipmi_bmc_sim.o
CC hw/ipmi/ipmi_bmc_extern.o
CC hw/ipmi/isa_ipmi_kcs.o
CC hw/ipmi/isa_ipmi_bt.o
CC hw/isa/isa-bus.o
CC hw/isa/apm.o
CC hw/isa/i82378.o
CC hw/isa/pc87312.o
CC hw/isa/piix4.o
CC hw/isa/vt82c686.o
CC hw/mem/pc-dimm.o
CC hw/mem/nvdimm.o
CC hw/misc/applesmc.o
CC hw/misc/max111x.o
CC hw/misc/tmp105.o
CC hw/misc/tmp421.o
CC hw/misc/debugexit.o
CC hw/misc/sga.o
CC hw/misc/pc-testdev.o
CC hw/misc/pci-testdev.o
CC hw/misc/edu.o
CC hw/misc/unimp.o
CC hw/misc/vmcoreinfo.o
CC hw/misc/arm_l2x0.o
CC hw/misc/arm_integrator_debug.o
CC hw/misc/a9scu.o
CC hw/misc/arm11scu.o
CC hw/misc/puv3_pm.o
CC hw/misc/macio/macio.o
CC hw/misc/macio/cuda.o
CC hw/misc/macio/mac_dbdma.o
CC hw/net/dp8393x.o
CC hw/net/ne2000.o
CC hw/net/eepro100.o
CC hw/net/pcnet-pci.o
CC hw/net/pcnet.o
CC hw/net/e1000.o
CC hw/net/e1000x_common.o
CC hw/net/net_tx_pkt.o
CC hw/net/net_rx_pkt.o
CC hw/net/e1000e.o
CC hw/net/e1000e_core.o
CC hw/net/rtl8139.o
CC hw/net/vmxnet3.o
CC hw/net/smc91c111.o
CC hw/net/lan9118.o
CC hw/net/ne2000-isa.o
CC hw/net/opencores_eth.o
CC hw/net/xgmac.o
CC hw/net/mipsnet.o
CC hw/net/xilinx_axienet.o
CC hw/net/allwinner_emac.o
CC hw/net/imx_fec.o
CC hw/net/cadence_gem.o
CC hw/net/stellaris_enet.o
CC hw/net/lance.o
CC hw/net/sunhme.o
CC hw/net/ftgmac100.o
CC hw/net/sungem.o
CC hw/net/rocker/rocker.o
CC hw/net/rocker/rocker_fp.o
CC hw/net/rocker/rocker_desc.o
CC hw/net/rocker/rocker_world.o
CC hw/net/rocker/rocker_of_dpa.o
CC hw/nvram/ds1225y.o
CC hw/nvram/eeprom93xx.o
CC hw/nvram/eeprom_at24c.o
CC hw/nvram/fw_cfg.o
CC hw/nvram/chrp_nvram.o
CC hw/nvram/mac_nvram.o
CC hw/pci-bridge/pci_bridge_dev.o
CC hw/pci-bridge/pcie_root_port.o
CC hw/pci-bridge/gen_pcie_root_port.o
CC hw/pci-bridge/pcie_pci_bridge.o
CC hw/pci-bridge/pci_expander_bridge.o
CC hw/pci-bridge/xio3130_upstream.o
CC hw/pci-bridge/xio3130_downstream.o
CC hw/pci-bridge/ioh3420.o
CC hw/pci-bridge/i82801b11.o
CC hw/pci-bridge/dec.o
CC hw/pci-host/pam.o
CC hw/pci-host/prep.o
CC hw/pci-host/grackle.o
CC hw/pci-host/uninorth.o
CC hw/pci-host/ppce500.o
CC hw/pci-host/versatile.o
CC hw/pci-host/apb.o
CC hw/pci-host/bonito.o
CC hw/pci-host/piix.o
CC hw/pci-host/q35.o
CC hw/pci-host/gpex.o
CC hw/pci-host/xilinx-pcie.o
CC hw/pci/pci.o
CC hw/pci/pci_bridge.o
CC hw/pci/msix.o
CC hw/pci/msi.o
CC hw/pci/shpc.o
CC hw/pci/slotid_cap.o
CC hw/pci/pci_host.o
CC hw/pci/pcie_host.o
CC hw/pci/pcie.o
CC hw/pci/pcie_aer.o
CC hw/pci/pcie_port.o
CC hw/pci/pci-stub.o
CC hw/pcmcia/pcmcia.o
CC hw/scsi/scsi-disk.o
CC hw/scsi/scsi-generic.o
CC hw/scsi/scsi-bus.o
CC hw/scsi/lsi53c895a.o
CC hw/scsi/mptsas.o
CC hw/scsi/mptconfig.o
CC hw/scsi/mptendian.o
CC hw/scsi/megasas.o
CC hw/scsi/vmw_pvscsi.o
CC hw/scsi/esp.o
CC hw/scsi/esp-pci.o
CC hw/sd/ssi-sd.o
CC hw/sd/pl181.o
CC hw/sd/sd.o
CC hw/sd/core.o
CC hw/sd/sdhci.o
CC hw/smbios/smbios.o
CC hw/smbios/smbios_type_38.o
CC hw/smbios/smbios-stub.o
CC hw/smbios/smbios_type_38-stub.o
CC hw/ssi/pl022.o
CC hw/ssi/ssi.o
CC hw/ssi/xilinx_spi.o
CC hw/ssi/xilinx_spips.o
CC hw/ssi/aspeed_smc.o
CC hw/ssi/stm32f2xx_spi.o
CC hw/ssi/mss-spi.o
CC hw/timer/arm_timer.o
CC hw/timer/arm_mptimer.o
CC hw/timer/armv7m_systick.o
CC hw/timer/a9gtimer.o
CC hw/timer/cadence_ttc.o
CC hw/timer/ds1338.o
CC hw/timer/hpet.o
CC hw/timer/i8254_common.o
CC hw/timer/i8254.o
CC hw/timer/m48t59.o
CC hw/timer/m48t59-isa.o
CC hw/timer/pl031.o
CC hw/timer/puv3_ost.o
CC hw/timer/twl92230.o
CC hw/timer/xilinx_timer.o
CC hw/timer/slavio_timer.o
CC hw/timer/etraxfs_timer.o
CC hw/timer/grlib_gptimer.o
CC hw/timer/imx_epit.o
CC hw/timer/imx_gpt.o
CC hw/timer/lm32_timer.o
CC hw/timer/milkymist-sysctl.o
CC hw/timer/stm32f2xx_timer.o
CC hw/timer/aspeed_timer.o
CC hw/timer/sun4v-rtc.o
CC hw/timer/cmsdk-apb-timer.o
CC hw/timer/mss-timer.o
CC hw/tpm/tpm_util.o
CC hw/tpm/tpm_tis.o
CC hw/tpm/tpm_emulator.o
CC hw/usb/core.o
CC hw/usb/combined-packet.o
CC hw/usb/bus.o
CC hw/usb/libhw.o
CC hw/usb/desc.o
CC hw/usb/desc-msos.o
CC hw/usb/hcd-uhci.o
CC hw/usb/hcd-ohci.o
CC hw/usb/hcd-ehci.o
CC hw/usb/hcd-ehci-pci.o
CC hw/usb/hcd-ehci-sysbus.o
CC hw/usb/hcd-xhci.o
CC hw/usb/hcd-xhci-nec.o
CC hw/usb/hcd-musb.o
CC hw/usb/dev-hub.o
CC hw/usb/dev-hid.o
CC hw/usb/dev-wacom.o
CC hw/usb/dev-storage.o
CC hw/usb/dev-uas.o
CC hw/usb/dev-audio.o
CC hw/usb/dev-serial.o
CC hw/usb/dev-network.o
CC hw/usb/dev-bluetooth.o
CC hw/usb/dev-smartcard-reader.o
CC hw/usb/ccid-card-passthru.o
CC hw/usb/ccid-card-emulated.o
CC hw/usb/dev-mtp.o
CC hw/usb/redirect.o
CC hw/usb/quirks.o
CC hw/usb/host-libusb.o
CC hw/usb/host-legacy.o
CC hw/usb/host-stub.o
CC hw/virtio/virtio-rng.o
CC hw/virtio/virtio-pci.o
CC hw/virtio/virtio-bus.o
CC hw/virtio/virtio-mmio.o
CC hw/virtio/vhost-stub.o
CC hw/watchdog/watchdog.o
CC hw/watchdog/wdt_i6300esb.o
CC hw/watchdog/wdt_ib700.o
CC hw/watchdog/wdt_diag288.o
CC hw/watchdog/wdt_aspeed.o
CC migration/migration.o
CC migration/socket.o
CC migration/fd.o
CC migration/exec.o
CC migration/tls.o
CC migration/channel.o
CC migration/savevm.o
CC migration/colo-comm.o
CC migration/colo.o
CC migration/colo-failover.o
CC migration/vmstate.o
CC migration/vmstate-types.o
CC migration/page_cache.o
CC migration/qemu-file.o
CC migration/global_state.o
CC migration/qemu-file-channel.o
CC migration/xbzrle.o
CC migration/postcopy-ram.o
CC migration/qjson.o
CC migration/block.o
CC net/net.o
CC net/queue.o
CC net/checksum.o
CC net/util.o
CC net/hub.o
CC net/socket.o
CC net/dump.o
CC net/eth.o
CC net/l2tpv3.o
CC net/vhost-user.o
CC net/slirp.o
CC net/filter.o
CC net/filter-buffer.o
CC net/filter-mirror.o
CC net/colo-compare.o
CC net/colo.o
CC net/filter-rewriter.o
CC net/filter-replay.o
CC net/tap.o
CC net/tap-linux.o
CC qom/cpu.o
CC replay/replay.o
CC replay/replay-internal.o
CC replay/replay-events.o
CC replay/replay-time.o
CC replay/replay-input.o
CC replay/replay-char.o
CC replay/replay-snapshot.o
CC replay/replay-net.o
CC replay/replay-audio.o
CC slirp/cksum.o
CC slirp/if.o
CC slirp/ip_icmp.o
CC slirp/ip6_icmp.o
CC slirp/ip6_input.o
CC slirp/ip6_output.o
CC slirp/ip_input.o
CC slirp/ip_output.o
CC slirp/dnssearch.o
CC slirp/dhcpv6.o
CC slirp/slirp.o
CC slirp/mbuf.o
CC slirp/misc.o
CC slirp/sbuf.o
CC slirp/socket.o
CC slirp/tcp_input.o
CC slirp/tcp_output.o
CC slirp/tcp_subr.o
CC slirp/tcp_timer.o
CC slirp/udp.o
CC slirp/udp6.o
CC slirp/bootp.o
CC slirp/tftp.o
CC slirp/arp_table.o
CC slirp/ndp_table.o
CC slirp/ncsi.o
CC ui/keymaps.o
CC ui/console.o
CC ui/cursor.o
CC ui/qemu-pixman.o
CC ui/input.o
CC ui/input-legacy.o
CC ui/input-linux.o
CC ui/sdl2.o
CC ui/sdl2-input.o
CC ui/sdl2-2d.o
CC ui/sdl2-gl.o
CC ui/x_keymap.o
CC ui/curses.o
CC ui/vnc.o
CC ui/vnc-enc-zlib.o
CC ui/vnc-enc-hextile.o
CC ui/vnc-enc-tight.o
CC ui/vnc-palette.o
CC ui/vnc-enc-zrle.o
CC ui/vnc-auth-vencrypt.o
CC ui/vnc-auth-sasl.o
CC ui/vnc-ws.o
CC ui/vnc-jobs.o
CC ui/gtk.o
VERT ui/shader/texture-blit-vert.h
VERT ui/shader/texture-blit-flip-vert.h
FRAG ui/shader/texture-blit-frag.h
CC ui/console-gl.o
CC ui/egl-helpers.o
CC ui/egl-context.o
CC ui/egl-headless.o
CC ui/gtk-gl-area.o
CC chardev/char.o
CC chardev/char-fd.o
CC chardev/char-fe.o
CC chardev/char-file.o
CC chardev/char-io.o
CC chardev/char-mux.o
CC chardev/char-null.o
CC chardev/char-parallel.o
CC chardev/char-pipe.o
CC chardev/char-pty.o
CC chardev/char-ringbuf.o
CC chardev/char-serial.o
CC chardev/char-socket.o
CC chardev/char-stdio.o
CC chardev/char-udp.o
CCAS s390-ccw/start.o
CC s390-ccw/main.o
CC s390-ccw/bootmap.o
LINK tests/qemu-iotests/socket_scm_helper
GEN qemu-doc.html
GEN qemu-doc.txt
GEN qemu.1
CC s390-ccw/sclp.o
GEN docs/interop/qemu-qmp-ref.html
CC s390-ccw/virtio.o
CC s390-ccw/virtio-scsi.o
GEN docs/interop/qemu-qmp-ref.txt
CC s390-ccw/virtio-blkdev.o
GEN docs/interop/qemu-qmp-ref.7
s390-netboot.img not built since roms/SLOF/ is not available.
BUILD s390-ccw/s390-ccw.elf
STRIP s390-ccw/s390-ccw.img
GEN docs/interop/qemu-ga-ref.html
GEN docs/interop/qemu-ga-ref.txt
GEN docs/interop/qemu-ga-ref.7
CC qga/commands.o
CC qga/guest-agent-command-state.o
CC qga/main.o
CC qga/commands-posix.o
CC qga/channel-posix.o
CC qga/qapi-generated/qga-qapi-types.o
CC qga/qapi-generated/qga-qapi-visit.o
CC qga/qapi-generated/qga-qmp-marshal.o
AR libqemuutil.a
CC qemu-img.o
CC ui/shader.o
LINK qemu-keymap
LINK ivshmem-client
LINK ivshmem-server
LINK qemu-nbd
LINK qemu-io
LINK fsdev/virtfs-proxy-helper
LINK scsi/qemu-pr-helper
LINK qemu-bridge-helper
GEN alpha-softmmu/hmp-commands.h
GEN aarch64-softmmu/hmp-commands.h
GEN alpha-softmmu/hmp-commands-info.h
GEN aarch64-softmmu/hmp-commands-info.h
GEN alpha-softmmu/config-target.h
GEN aarch64-softmmu/config-target.h
CC aarch64-softmmu/exec.o
CC alpha-softmmu/exec.o
GEN arm-softmmu/hmp-commands.h
GEN cris-softmmu/hmp-commands.h
GEN arm-softmmu/hmp-commands-info.h
GEN arm-softmmu/config-target.h
GEN cris-softmmu/hmp-commands-info.h
GEN cris-softmmu/config-target.h
CC arm-softmmu/exec.o
CC cris-softmmu/exec.o
CC alpha-softmmu/tcg/tcg.o
CC cris-softmmu/tcg/tcg.o
CC aarch64-softmmu/tcg/tcg.o
CC arm-softmmu/tcg/tcg.o
CC alpha-softmmu/tcg/tcg-op.o
CC cris-softmmu/tcg/tcg-op.o
CC aarch64-softmmu/tcg/tcg-op.o
CC arm-softmmu/tcg/tcg-op.o
CC cris-softmmu/tcg/optimize.o
CC alpha-softmmu/tcg/optimize.o
CC cris-softmmu/tcg/tcg-common.o
CC cris-softmmu/fpu/softfloat.o
CC aarch64-softmmu/tcg/optimize.o
CC alpha-softmmu/tcg/tcg-common.o
CC arm-softmmu/tcg/optimize.o
CC alpha-softmmu/fpu/softfloat.o
CC aarch64-softmmu/tcg/tcg-common.o
CC aarch64-softmmu/fpu/softfloat.o
CC arm-softmmu/tcg/tcg-common.o
CC arm-softmmu/fpu/softfloat.o
CC cris-softmmu/disas.o
CC cris-softmmu/arch_init.o
CC alpha-softmmu/disas.o
CC alpha-softmmu/arch_init.o
CC cris-softmmu/cpus.o
CC alpha-softmmu/cpus.o
CC aarch64-softmmu/disas.o
CC cris-softmmu/monitor.o
CC arm-softmmu/disas.o
GEN aarch64-softmmu/gdbstub-xml.c
CC alpha-softmmu/monitor.o
GEN arm-softmmu/gdbstub-xml.c
CC aarch64-softmmu/arch_init.o
CC aarch64-softmmu/cpus.o
CC cris-softmmu/gdbstub.o
CC arm-softmmu/arch_init.o
CC alpha-softmmu/gdbstub.o
CC aarch64-softmmu/monitor.o
CC arm-softmmu/cpus.o
CC cris-softmmu/balloon.o
CC alpha-softmmu/balloon.o
CC cris-softmmu/ioport.o
CC alpha-softmmu/ioport.o
CC arm-softmmu/monitor.o
CC cris-softmmu/numa.o
CC alpha-softmmu/numa.o
CC aarch64-softmmu/gdbstub.o
CC cris-softmmu/qtest.o
CC alpha-softmmu/qtest.o
CC alpha-softmmu/memory.o
CC aarch64-softmmu/balloon.o
CC arm-softmmu/gdbstub.o
CC cris-softmmu/memory.o
CC aarch64-softmmu/ioport.o
CC arm-softmmu/balloon.o
CC aarch64-softmmu/numa.o
CC alpha-softmmu/memory_mapping.o
CC arm-softmmu/ioport.o
CC cris-softmmu/memory_mapping.o
CC arm-softmmu/numa.o
CC aarch64-softmmu/qtest.o
CC alpha-softmmu/dump.o
CC cris-softmmu/dump.o
CC arm-softmmu/qtest.o
CC aarch64-softmmu/memory.o
CC alpha-softmmu/migration/ram.o
CC cris-softmmu/migration/ram.o
CC arm-softmmu/memory.o
CC aarch64-softmmu/memory_mapping.o
CC alpha-softmmu/accel/accel.o
CC aarch64-softmmu/dump.o
CC cris-softmmu/accel/accel.o
CC arm-softmmu/memory_mapping.o
CC alpha-softmmu/accel/stubs/hax-stub.o
CC arm-softmmu/dump.o
CC cris-softmmu/accel/stubs/hax-stub.o
CC cris-softmmu/accel/stubs/hvf-stub.o
CC alpha-softmmu/accel/stubs/hvf-stub.o
CC aarch64-softmmu/migration/ram.o
CC cris-softmmu/accel/stubs/kvm-stub.o
CC alpha-softmmu/accel/stubs/kvm-stub.o
CC cris-softmmu/accel/tcg/tcg-all.o
CC arm-softmmu/migration/ram.o
CC alpha-softmmu/accel/tcg/tcg-all.o
CC alpha-softmmu/accel/tcg/cputlb.o
CC cris-softmmu/accel/tcg/cputlb.o
CC aarch64-softmmu/accel/accel.o
CC arm-softmmu/accel/accel.o
CC aarch64-softmmu/accel/stubs/hax-stub.o
CC aarch64-softmmu/accel/stubs/hvf-stub.o
CC arm-softmmu/accel/stubs/hax-stub.o
CC aarch64-softmmu/accel/stubs/kvm-stub.o
CC arm-softmmu/accel/stubs/hvf-stub.o
CC alpha-softmmu/accel/tcg/tcg-runtime.o
CC aarch64-softmmu/accel/tcg/tcg-all.o
CC arm-softmmu/accel/stubs/kvm-stub.o
CC cris-softmmu/accel/tcg/tcg-runtime.o
CC arm-softmmu/accel/tcg/tcg-all.o
CC alpha-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/accel/tcg/cputlb.o
CC cris-softmmu/accel/tcg/cpu-exec.o
CC arm-softmmu/accel/tcg/cputlb.o
CC alpha-softmmu/accel/tcg/cpu-exec-common.o
CC cris-softmmu/accel/tcg/cpu-exec-common.o
CC cris-softmmu/accel/tcg/translate-all.o
CC alpha-softmmu/accel/tcg/translate-all.o
CC cris-softmmu/accel/tcg/translator.o
CC alpha-softmmu/accel/tcg/translator.o
CC aarch64-softmmu/accel/tcg/tcg-runtime.o
CC cris-softmmu/hw/core/generic-loader.o
CC arm-softmmu/accel/tcg/tcg-runtime.o
CC alpha-softmmu/hw/9pfs/virtio-9p-device.o
CC cris-softmmu/hw/core/null-machine.o
CC cris-softmmu/hw/misc/mmio_interface.o
CC arm-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/accel/tcg/cpu-exec.o
CC alpha-softmmu/hw/block/virtio-blk.o
CC cris-softmmu/hw/net/etraxfs_eth.o
CC alpha-softmmu/hw/block/vhost-user-blk.o
CC cris-softmmu/hw/net/vhost_net.o
CC alpha-softmmu/hw/block/dataplane/virtio-blk.o
CC cris-softmmu/hw/net/rocker/qmp-norocker.o
CC arm-softmmu/accel/tcg/cpu-exec-common.o
CC aarch64-softmmu/accel/tcg/cpu-exec-common.o
CC cris-softmmu/hw/vfio/common.o
CC arm-softmmu/accel/tcg/translate-all.o
CC aarch64-softmmu/accel/tcg/translate-all.o
CC alpha-softmmu/hw/char/virtio-serial-bus.o
CC arm-softmmu/accel/tcg/translator.o
CC cris-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/accel/tcg/translator.o
CC alpha-softmmu/hw/core/generic-loader.o
CC cris-softmmu/hw/vfio/spapr.o
CC alpha-softmmu/hw/core/null-machine.o
CC arm-softmmu/hw/9pfs/virtio-9p-device.o
CC aarch64-softmmu/hw/9pfs/virtio-9p-device.o
CC cris-softmmu/hw/cris/boot.o
CC alpha-softmmu/hw/display/vga.o
CC arm-softmmu/hw/adc/stm32f2xx_adc.o
CC aarch64-softmmu/hw/adc/stm32f2xx_adc.o
CC cris-softmmu/hw/cris/axis_dev88.o
CC aarch64-softmmu/hw/block/virtio-blk.o
CC cris-softmmu/target/cris/translate.o
CC arm-softmmu/hw/block/virtio-blk.o
CC alpha-softmmu/hw/display/virtio-gpu.o
CC aarch64-softmmu/hw/block/vhost-user-blk.o
CC arm-softmmu/hw/block/vhost-user-blk.o
CC aarch64-softmmu/hw/block/dataplane/virtio-blk.o
CC arm-softmmu/hw/block/dataplane/virtio-blk.o
CC aarch64-softmmu/hw/char/exynos4210_uart.o
CC alpha-softmmu/hw/display/virtio-gpu-3d.o
CC arm-softmmu/hw/char/exynos4210_uart.o
CC cris-softmmu/target/cris/op_helper.o
CC aarch64-softmmu/hw/char/omap_uart.o
CC alpha-softmmu/hw/display/virtio-gpu-pci.o
CC arm-softmmu/hw/char/omap_uart.o
CC aarch64-softmmu/hw/char/digic-uart.o
CC cris-softmmu/target/cris/helper.o
CC arm-softmmu/hw/char/digic-uart.o
CC aarch64-softmmu/hw/char/stm32f2xx_usart.o
CC cris-softmmu/target/cris/cpu.o
CC alpha-softmmu/hw/misc/ivshmem.o
CC aarch64-softmmu/hw/char/bcm2835_aux.o
CC arm-softmmu/hw/char/stm32f2xx_usart.o
CC cris-softmmu/target/cris/gdbstub.o
CC aarch64-softmmu/hw/char/virtio-serial-bus.o
CC arm-softmmu/hw/char/bcm2835_aux.o
CC alpha-softmmu/hw/misc/mmio_interface.o
CC cris-softmmu/target/cris/mmu.o
CC alpha-softmmu/hw/net/virtio-net.o
CC arm-softmmu/hw/char/virtio-serial-bus.o
CC cris-softmmu/target/cris/machine.o
CC aarch64-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/core/null-machine.o
GEN trace/generated-helpers.c
CC arm-softmmu/hw/core/generic-loader.o
CC cris-softmmu/trace/control-target.o
CC aarch64-softmmu/hw/cpu/arm11mpcore.o
CC alpha-softmmu/hw/net/vhost_net.o
CC arm-softmmu/hw/core/null-machine.o
CC cris-softmmu/trace/generated-helpers.o
CC alpha-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/cpu/realview_mpcore.o
CC arm-softmmu/hw/cpu/arm11mpcore.o
CC aarch64-softmmu/hw/cpu/a9mpcore.o
LINK cris-softmmu/qemu-system-cris
CC arm-softmmu/hw/cpu/realview_mpcore.o
CC alpha-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/hw/cpu/a15mpcore.o
CC arm-softmmu/hw/cpu/a9mpcore.o
CC aarch64-softmmu/hw/display/omap_dss.o
CC alpha-softmmu/hw/scsi/vhost-scsi-common.o
CC arm-softmmu/hw/cpu/a15mpcore.o
CC alpha-softmmu/hw/scsi/vhost-scsi.o
CC arm-softmmu/hw/display/omap_dss.o
CC aarch64-softmmu/hw/display/omap_lcdc.o
GEN hppa-softmmu/hmp-commands.h
GEN hppa-softmmu/hmp-commands-info.h
CC arm-softmmu/hw/display/omap_lcdc.o
CC alpha-softmmu/hw/scsi/vhost-user-scsi.o
GEN hppa-softmmu/config-target.h
CC hppa-softmmu/exec.o
CC aarch64-softmmu/hw/display/pxa2xx_lcd.o
CC alpha-softmmu/hw/timer/mc146818rtc.o
CC arm-softmmu/hw/display/pxa2xx_lcd.o
CC alpha-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/display/bcm2835_fb.o
CC arm-softmmu/hw/display/bcm2835_fb.o
CC alpha-softmmu/hw/vfio/pci.o
CC hppa-softmmu/tcg/tcg.o
CC aarch64-softmmu/hw/display/vga.o
CC arm-softmmu/hw/display/vga.o
CC alpha-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/display/virtio-gpu.o
CC arm-softmmu/hw/display/virtio-gpu.o
CC alpha-softmmu/hw/vfio/platform.o
CC hppa-softmmu/tcg/tcg-op.o
CC alpha-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/hw/display/virtio-gpu-3d.o
CC arm-softmmu/hw/display/virtio-gpu-3d.o
CC alpha-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/display/virtio-gpu-pci.o
CC arm-softmmu/hw/display/virtio-gpu-pci.o
CC aarch64-softmmu/hw/display/dpcd.o
CC hppa-softmmu/tcg/optimize.o
CC aarch64-softmmu/hw/display/xlnx_dp.o
CC arm-softmmu/hw/dma/omap_dma.o
CC alpha-softmmu/hw/virtio/virtio-balloon.o
CC aarch64-softmmu/hw/dma/xlnx_dpdma.o
CC hppa-softmmu/tcg/tcg-common.o
CC alpha-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/dma/soc_dma.o
CC hppa-softmmu/fpu/softfloat.o
CC aarch64-softmmu/hw/dma/omap_dma.o
CC arm-softmmu/hw/dma/pxa2xx_dma.o
CC alpha-softmmu/hw/virtio/vhost-backend.o
CC arm-softmmu/hw/dma/bcm2835_dma.o
CC alpha-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/dma/soc_dma.o
CC arm-softmmu/hw/gpio/omap_gpio.o
CC alpha-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/dma/pxa2xx_dma.o
CC alpha-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/gpio/imx_gpio.o
CC aarch64-softmmu/hw/dma/bcm2835_dma.o
CC arm-softmmu/hw/gpio/bcm2835_gpio.o
CC aarch64-softmmu/hw/gpio/omap_gpio.o
CC alpha-softmmu/hw/virtio/virtio-crypto-pci.o
CC arm-softmmu/hw/i2c/omap_i2c.o
CC hppa-softmmu/disas.o
CC aarch64-softmmu/hw/gpio/imx_gpio.o
CC alpha-softmmu/hw/alpha/dp264.o
CC aarch64-softmmu/hw/gpio/bcm2835_gpio.o
CC arm-softmmu/hw/input/pxa2xx_keypad.o
CC hppa-softmmu/arch_init.o
CC alpha-softmmu/hw/alpha/pci.o
CC aarch64-softmmu/hw/i2c/omap_i2c.o
CC arm-softmmu/hw/input/tsc210x.o
CC hppa-softmmu/cpus.o
CC alpha-softmmu/hw/alpha/typhoon.o
CC aarch64-softmmu/hw/input/pxa2xx_keypad.o
CC arm-softmmu/hw/intc/armv7m_nvic.o
CC hppa-softmmu/monitor.o
CC alpha-softmmu/target/alpha/machine.o
CC aarch64-softmmu/hw/input/tsc210x.o
CC alpha-softmmu/target/alpha/translate.o
CC arm-softmmu/hw/intc/exynos4210_gic.o
CC aarch64-softmmu/hw/intc/armv7m_nvic.o
CC arm-softmmu/hw/intc/exynos4210_combiner.o
CC hppa-softmmu/gdbstub.o
CC arm-softmmu/hw/intc/omap_intc.o
CC aarch64-softmmu/hw/intc/exynos4210_gic.o
CC alpha-softmmu/target/alpha/helper.o
CC arm-softmmu/hw/intc/bcm2835_ic.o
CC aarch64-softmmu/hw/intc/exynos4210_combiner.o
CC hppa-softmmu/balloon.o
CC aarch64-softmmu/hw/intc/omap_intc.o
CC alpha-softmmu/target/alpha/cpu.o
CC arm-softmmu/hw/intc/bcm2836_control.o
CC hppa-softmmu/ioport.o
CC alpha-softmmu/target/alpha/int_helper.o
CC arm-softmmu/hw/intc/allwinner-a10-pic.o
CC aarch64-softmmu/hw/intc/bcm2835_ic.o
CC alpha-softmmu/target/alpha/fpu_helper.o
CC hppa-softmmu/numa.o
CC aarch64-softmmu/hw/intc/bcm2836_control.o
CC arm-softmmu/hw/intc/aspeed_vic.o
CC aarch64-softmmu/hw/intc/allwinner-a10-pic.o
CC hppa-softmmu/qtest.o
CC arm-softmmu/hw/intc/arm_gicv3_cpuif.o
CC alpha-softmmu/target/alpha/vax_helper.o
CC aarch64-softmmu/hw/intc/aspeed_vic.o
CC alpha-softmmu/target/alpha/sys_helper.o
CC hppa-softmmu/memory.o
CC aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
CC alpha-softmmu/target/alpha/mem_helper.o
CC arm-softmmu/hw/misc/ivshmem.o
CC alpha-softmmu/target/alpha/gdbstub.o
GEN trace/generated-helpers.c
CC alpha-softmmu/trace/control-target.o
CC aarch64-softmmu/hw/misc/ivshmem.o
CC hppa-softmmu/memory_mapping.o
CC arm-softmmu/hw/misc/arm_sysctl.o
CC alpha-softmmu/trace/generated-helpers.o
CC hppa-softmmu/dump.o
CC aarch64-softmmu/hw/misc/arm_sysctl.o
CC arm-softmmu/hw/misc/cbus.o
CC aarch64-softmmu/hw/misc/cbus.o
CC arm-softmmu/hw/misc/exynos4210_pmu.o
LINK alpha-softmmu/qemu-system-alpha
CC hppa-softmmu/migration/ram.o
CC aarch64-softmmu/hw/misc/exynos4210_pmu.o
CC arm-softmmu/hw/misc/exynos4210_clk.o
CC arm-softmmu/hw/misc/exynos4210_rng.o
CC aarch64-softmmu/hw/misc/exynos4210_clk.o
CC arm-softmmu/hw/misc/imx_ccm.o
CC aarch64-softmmu/hw/misc/exynos4210_rng.o
CC hppa-softmmu/accel/accel.o
CC arm-softmmu/hw/misc/imx31_ccm.o
CC aarch64-softmmu/hw/misc/imx_ccm.o
CC aarch64-softmmu/hw/misc/imx31_ccm.o
CC hppa-softmmu/accel/stubs/hax-stub.o
CC aarch64-softmmu/hw/misc/imx25_ccm.o
CC hppa-softmmu/accel/stubs/hvf-stub.o
CC aarch64-softmmu/hw/misc/imx6_ccm.o
CC arm-softmmu/hw/misc/imx25_ccm.o
CC hppa-softmmu/accel/stubs/kvm-stub.o
CC aarch64-softmmu/hw/misc/imx6_src.o
CC arm-softmmu/hw/misc/imx6_ccm.o
CC hppa-softmmu/accel/tcg/tcg-all.o
GEN i386-softmmu/hmp-commands.h
CC aarch64-softmmu/hw/misc/mst_fpga.o
GEN i386-softmmu/hmp-commands-info.h
GEN i386-softmmu/config-target.h
CC arm-softmmu/hw/misc/imx6_src.o
CC i386-softmmu/exec.o
CC hppa-softmmu/accel/tcg/cputlb.o
CC aarch64-softmmu/hw/misc/omap_clk.o
CC aarch64-softmmu/hw/misc/omap_gpmc.o
CC arm-softmmu/hw/misc/mst_fpga.o
CC aarch64-softmmu/hw/misc/omap_l4.o
CC arm-softmmu/hw/misc/omap_clk.o
CC arm-softmmu/hw/misc/omap_gpmc.o
CC aarch64-softmmu/hw/misc/omap_sdrc.o
CC arm-softmmu/hw/misc/omap_l4.o
CC aarch64-softmmu/hw/misc/omap_tap.o
CC hppa-softmmu/accel/tcg/tcg-runtime.o
CC aarch64-softmmu/hw/misc/bcm2835_mbox.o
CC arm-softmmu/hw/misc/omap_sdrc.o
CC i386-softmmu/tcg/tcg.o
CC aarch64-softmmu/hw/misc/bcm2835_property.o
CC hppa-softmmu/accel/tcg/cpu-exec.o
CC arm-softmmu/hw/misc/omap_tap.o
CC arm-softmmu/hw/misc/bcm2835_mbox.o
CC aarch64-softmmu/hw/misc/bcm2835_rng.o
CC hppa-softmmu/accel/tcg/cpu-exec-common.o
CC arm-softmmu/hw/misc/bcm2835_property.o
CC aarch64-softmmu/hw/misc/zynq_slcr.o
CC hppa-softmmu/accel/tcg/translate-all.o
CC aarch64-softmmu/hw/misc/zynq-xadc.o
CC arm-softmmu/hw/misc/bcm2835_rng.o
CC aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
CC hppa-softmmu/accel/tcg/translator.o
CC aarch64-softmmu/hw/misc/mps2-scc.o
CC arm-softmmu/hw/misc/zynq_slcr.o
CC hppa-softmmu/hw/9pfs/virtio-9p-device.o
CC arm-softmmu/hw/misc/zynq-xadc.o
CC i386-softmmu/tcg/tcg-op.o
CC aarch64-softmmu/hw/misc/auxbus.o
CC aarch64-softmmu/hw/misc/aspeed_scu.o
CC arm-softmmu/hw/misc/stm32f2xx_syscfg.o
CC hppa-softmmu/hw/block/virtio-blk.o
CC arm-softmmu/hw/misc/mps2-scc.o
CC aarch64-softmmu/hw/misc/aspeed_sdmc.o
CC arm-softmmu/hw/misc/aspeed_scu.o
CC hppa-softmmu/hw/block/vhost-user-blk.o
CC arm-softmmu/hw/misc/aspeed_sdmc.o
CC aarch64-softmmu/hw/misc/mmio_interface.o
CC hppa-softmmu/hw/block/dataplane/virtio-blk.o
CC arm-softmmu/hw/misc/mmio_interface.o
CC aarch64-softmmu/hw/misc/msf2-sysreg.o
CC arm-softmmu/hw/misc/msf2-sysreg.o
CC hppa-softmmu/hw/char/virtio-serial-bus.o
CC i386-softmmu/tcg/optimize.o
CC aarch64-softmmu/hw/net/virtio-net.o
CC arm-softmmu/hw/net/virtio-net.o
CC hppa-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/net/vhost_net.o
CC i386-softmmu/tcg/tcg-common.o
CC hppa-softmmu/hw/core/null-machine.o
CC aarch64-softmmu/hw/pcmcia/pxa2xx.o
CC hppa-softmmu/hw/display/vga.o
CC i386-softmmu/fpu/softfloat.o
CC arm-softmmu/hw/net/vhost_net.o
CC aarch64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/hw/scsi/vhost-scsi-common.o
CC arm-softmmu/hw/pcmcia/pxa2xx.o
CC aarch64-softmmu/hw/scsi/vhost-scsi.o
CC arm-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/scsi/vhost-user-scsi.o
CC hppa-softmmu/hw/display/virtio-gpu.o
CC arm-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64-softmmu/hw/sd/omap_mmc.o
CC arm-softmmu/hw/scsi/vhost-scsi-common.o
CC hppa-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/hw/sd/pxa2xx_mmci.o
CC arm-softmmu/hw/scsi/vhost-scsi.o
CC i386-softmmu/disas.o
CC aarch64-softmmu/hw/sd/bcm2835_sdhost.o
CC arm-softmmu/hw/scsi/vhost-user-scsi.o
GEN i386-softmmu/gdbstub-xml.c
CC hppa-softmmu/hw/display/virtio-gpu-pci.o
CC arm-softmmu/hw/sd/omap_mmc.o
CC i386-softmmu/arch_init.o
CC aarch64-softmmu/hw/ssi/omap_spi.o
CC hppa-softmmu/hw/display/virtio-vga.o
CC i386-softmmu/cpus.o
CC arm-softmmu/hw/sd/pxa2xx_mmci.o
CC aarch64-softmmu/hw/ssi/imx_spi.o
CC aarch64-softmmu/hw/timer/exynos4210_mct.o
CC hppa-softmmu/hw/misc/ivshmem.o
CC arm-softmmu/hw/sd/bcm2835_sdhost.o
CC i386-softmmu/monitor.o
CC aarch64-softmmu/hw/timer/exynos4210_pwm.o
CC arm-softmmu/hw/ssi/omap_spi.o
CC hppa-softmmu/hw/misc/mmio_interface.o
CC aarch64-softmmu/hw/timer/exynos4210_rtc.o
CC arm-softmmu/hw/ssi/imx_spi.o
CC hppa-softmmu/hw/net/virtio-net.o
CC aarch64-softmmu/hw/timer/omap_gptimer.o
CC arm-softmmu/hw/timer/exynos4210_mct.o
CC i386-softmmu/gdbstub.o
CC aarch64-softmmu/hw/timer/omap_synctimer.o
CC hppa-softmmu/hw/net/vhost_net.o
CC aarch64-softmmu/hw/timer/pxa2xx_timer.o
CC hppa-softmmu/hw/scsi/virtio-scsi.o
CC arm-softmmu/hw/timer/exynos4210_pwm.o
CC aarch64-softmmu/hw/timer/digic-timer.o
CC arm-softmmu/hw/timer/exynos4210_rtc.o
CC i386-softmmu/balloon.o
CC aarch64-softmmu/hw/timer/allwinner-a10-pit.o
CC hppa-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC arm-softmmu/hw/timer/omap_gptimer.o
CC aarch64-softmmu/hw/usb/tusb6010.o
CC arm-softmmu/hw/timer/omap_synctimer.o
CC i386-softmmu/ioport.o
CC hppa-softmmu/hw/scsi/vhost-scsi-common.o
CC aarch64-softmmu/hw/vfio/common.o
CC arm-softmmu/hw/timer/pxa2xx_timer.o
CC i386-softmmu/numa.o
CC hppa-softmmu/hw/scsi/vhost-scsi.o
CC arm-softmmu/hw/timer/digic-timer.o
CC hppa-softmmu/hw/scsi/vhost-user-scsi.o
CC aarch64-softmmu/hw/vfio/pci.o
CC i386-softmmu/qtest.o
CC arm-softmmu/hw/timer/allwinner-a10-pit.o
CC hppa-softmmu/hw/timer/mc146818rtc.o
CC arm-softmmu/hw/usb/tusb6010.o
CC i386-softmmu/memory.o
CC aarch64-softmmu/hw/vfio/pci-quirks.o
CC arm-softmmu/hw/vfio/common.o
CC hppa-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/vfio/platform.o
CC hppa-softmmu/hw/vfio/pci.o
CC arm-softmmu/hw/vfio/pci.o
CC i386-softmmu/memory_mapping.o
CC aarch64-softmmu/hw/vfio/calxeda-xgmac.o
CC aarch64-softmmu/hw/vfio/amd-xgbe.o
CC i386-softmmu/dump.o
CC hppa-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/vfio/spapr.o
CC arm-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/virtio/virtio.o
CC i386-softmmu/migration/ram.o
CC hppa-softmmu/hw/vfio/platform.o
CC arm-softmmu/hw/vfio/platform.o
CC hppa-softmmu/hw/vfio/spapr.o
CC i386-softmmu/accel/accel.o
CC arm-softmmu/hw/vfio/calxeda-xgmac.o
CC aarch64-softmmu/hw/virtio/virtio-balloon.o
CC hppa-softmmu/hw/virtio/virtio.o
CC arm-softmmu/hw/vfio/amd-xgbe.o
CC i386-softmmu/accel/stubs/hax-stub.o
CC aarch64-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/vfio/spapr.o
CC i386-softmmu/accel/stubs/hvf-stub.o
CC i386-softmmu/accel/stubs/kvm-stub.o
CC arm-softmmu/hw/virtio/virtio.o
CC i386-softmmu/accel/tcg/tcg-all.o
CC aarch64-softmmu/hw/virtio/vhost-backend.o
CC hppa-softmmu/hw/virtio/virtio-balloon.o
CC i386-softmmu/accel/tcg/cputlb.o
CC aarch64-softmmu/hw/virtio/vhost-user.o
CC hppa-softmmu/hw/virtio/vhost.o
CC aarch64-softmmu/hw/virtio/vhost-vsock.o
CC arm-softmmu/hw/virtio/virtio-balloon.o
CC arm-softmmu/hw/virtio/vhost.o
CC aarch64-softmmu/hw/virtio/virtio-crypto.o
CC hppa-softmmu/hw/virtio/vhost-backend.o
CC aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
CC i386-softmmu/accel/tcg/tcg-runtime.o
CC hppa-softmmu/hw/virtio/vhost-user.o
CC arm-softmmu/hw/virtio/vhost-backend.o
CC hppa-softmmu/hw/virtio/vhost-vsock.o
CC i386-softmmu/accel/tcg/cpu-exec.o
CC aarch64-softmmu/hw/arm/boot.o
CC arm-softmmu/hw/virtio/vhost-user.o
CC i386-softmmu/accel/tcg/cpu-exec-common.o
CC hppa-softmmu/hw/virtio/virtio-crypto.o
CC aarch64-softmmu/hw/arm/collie.o
CC i386-softmmu/accel/tcg/translate-all.o
CC arm-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/arm/exynos4_boards.o
CC hppa-softmmu/hw/virtio/virtio-crypto-pci.o
CC arm-softmmu/hw/virtio/virtio-crypto.o
CC i386-softmmu/accel/tcg/translator.o
CC aarch64-softmmu/hw/arm/gumstix.o
CC hppa-softmmu/hw/hppa/machine.o
CC arm-softmmu/hw/virtio/virtio-crypto-pci.o
CC i386-softmmu/hw/9pfs/virtio-9p-device.o
CC aarch64-softmmu/hw/arm/highbank.o
CC hppa-softmmu/hw/hppa/pci.o
CC aarch64-softmmu/hw/arm/digic_boards.o
CC i386-softmmu/hw/block/virtio-blk.o
CC arm-softmmu/hw/arm/boot.o
CC hppa-softmmu/hw/hppa/dino.o
CC aarch64-softmmu/hw/arm/integratorcp.o
CC hppa-softmmu/target/hppa/translate.o
CC i386-softmmu/hw/block/vhost-user-blk.o
CC arm-softmmu/hw/arm/collie.o
CC i386-softmmu/hw/block/dataplane/virtio-blk.o
CC aarch64-softmmu/hw/arm/mainstone.o
CC arm-softmmu/hw/arm/exynos4_boards.o
CC i386-softmmu/hw/char/virtio-serial-bus.o
CC aarch64-softmmu/hw/arm/musicpal.o
CC arm-softmmu/hw/arm/gumstix.o
CC arm-softmmu/hw/arm/highbank.o
CC aarch64-softmmu/hw/arm/nseries.o
CC i386-softmmu/hw/core/generic-loader.o
CC i386-softmmu/hw/core/null-machine.o
CC hppa-softmmu/target/hppa/helper.o
CC arm-softmmu/hw/arm/digic_boards.o
CC aarch64-softmmu/hw/arm/omap_sx1.o
CC hppa-softmmu/target/hppa/cpu.o
CC i386-softmmu/hw/display/vga.o
CC arm-softmmu/hw/arm/integratorcp.o
CC hppa-softmmu/target/hppa/op_helper.o
CC aarch64-softmmu/hw/arm/palm.o
CC arm-softmmu/hw/arm/mainstone.o
CC aarch64-softmmu/hw/arm/realview.o
CC hppa-softmmu/target/hppa/gdbstub.o
CC i386-softmmu/hw/display/virtio-gpu.o
CC hppa-softmmu/target/hppa/mem_helper.o
CC arm-softmmu/hw/arm/musicpal.o
CC aarch64-softmmu/hw/arm/spitz.o
CC hppa-softmmu/target/hppa/int_helper.o
CC i386-softmmu/hw/display/virtio-gpu-3d.o
CC arm-softmmu/hw/arm/nseries.o
CC hppa-softmmu/target/hppa/machine.o
CC aarch64-softmmu/hw/arm/stellaris.o
GEN trace/generated-helpers.c
CC hppa-softmmu/trace/control-target.o
CC arm-softmmu/hw/arm/omap_sx1.o
CC aarch64-softmmu/hw/arm/tosa.o
CC i386-softmmu/hw/display/virtio-gpu-pci.o
CC hppa-softmmu/trace/generated-helpers.o
CC aarch64-softmmu/hw/arm/versatilepb.o
LINK hppa-softmmu/qemu-system-hppa
CC arm-softmmu/hw/arm/palm.o
CC i386-softmmu/hw/display/virtio-vga.o
CC aarch64-softmmu/hw/arm/vexpress.o
CC i386-softmmu/hw/intc/apic.o
CC arm-softmmu/hw/arm/realview.o
CC aarch64-softmmu/hw/arm/virt.o
CC arm-softmmu/hw/arm/spitz.o
CC i386-softmmu/hw/intc/apic_common.o
CC arm-softmmu/hw/arm/stellaris.o
CC aarch64-softmmu/hw/arm/xilinx_zynq.o
CC i386-softmmu/hw/intc/ioapic.o
CC arm-softmmu/hw/arm/tosa.o
CC arm-softmmu/hw/arm/versatilepb.o
CC aarch64-softmmu/hw/arm/z2.o
CC arm-softmmu/hw/arm/vexpress.o
CC arm-softmmu/hw/arm/virt.o
CC aarch64-softmmu/hw/arm/virt-acpi-build.o
CC arm-softmmu/hw/arm/xilinx_zynq.o
CC aarch64-softmmu/hw/arm/netduino2.o
GEN lm32-softmmu/hmp-commands.h
CC arm-softmmu/hw/arm/z2.o
GEN lm32-softmmu/hmp-commands-info.h
GEN lm32-softmmu/config-target.h
CC lm32-softmmu/exec.o
CC aarch64-softmmu/hw/arm/sysbus-fdt.o
CC arm-softmmu/hw/arm/virt-acpi-build.o
CC aarch64-softmmu/hw/arm/armv7m.o
CC aarch64-softmmu/hw/arm/exynos4210.o
CC arm-softmmu/hw/arm/netduino2.o
CC aarch64-softmmu/hw/arm/pxa2xx.o
CC arm-softmmu/hw/arm/sysbus-fdt.o
CC arm-softmmu/hw/arm/armv7m.o
CC lm32-softmmu/tcg/tcg.o
CC arm-softmmu/hw/arm/exynos4210.o
CC aarch64-softmmu/hw/arm/pxa2xx_gpio.o
CC aarch64-softmmu/hw/arm/pxa2xx_pic.o
CC arm-softmmu/hw/arm/pxa2xx.o
CC aarch64-softmmu/hw/arm/digic.o
CC aarch64-softmmu/hw/arm/omap1.o
CC lm32-softmmu/tcg/tcg-op.o
CC arm-softmmu/hw/arm/pxa2xx_gpio.o
CC aarch64-softmmu/hw/arm/omap2.o
CC arm-softmmu/hw/arm/pxa2xx_pic.o
CC aarch64-softmmu/hw/arm/strongarm.o
CC arm-softmmu/hw/arm/digic.o
CC arm-softmmu/hw/arm/omap1.o
CC aarch64-softmmu/hw/arm/allwinner-a10.o
CC lm32-softmmu/tcg/optimize.o
CC aarch64-softmmu/hw/arm/cubieboard.o
CC aarch64-softmmu/hw/arm/bcm2835_peripherals.o
CC lm32-softmmu/tcg/tcg-common.o
CC arm-softmmu/hw/arm/omap2.o
CC lm32-softmmu/fpu/softfloat.o
CC aarch64-softmmu/hw/arm/bcm2836.o
CC arm-softmmu/hw/arm/strongarm.o
CC aarch64-softmmu/hw/arm/raspi.o
CC arm-softmmu/hw/arm/allwinner-a10.o
CC aarch64-softmmu/hw/arm/stm32f205_soc.o
CC arm-softmmu/hw/arm/cubieboard.o
CC aarch64-softmmu/hw/arm/xlnx-zynqmp.o
CC arm-softmmu/hw/arm/bcm2835_peripherals.o
CC aarch64-softmmu/hw/arm/xlnx-zcu102.o
CC arm-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/hw/arm/fsl-imx25.o
CC lm32-softmmu/disas.o
CC arm-softmmu/hw/arm/raspi.o
CC aarch64-softmmu/hw/arm/imx25_pdk.o
CC lm32-softmmu/arch_init.o
CC aarch64-softmmu/hw/arm/fsl-imx31.o
CC arm-softmmu/hw/arm/stm32f205_soc.o
CC lm32-softmmu/cpus.o
CC arm-softmmu/hw/arm/fsl-imx25.o
CC aarch64-softmmu/hw/arm/kzm.o
CC arm-softmmu/hw/arm/imx25_pdk.o
CC aarch64-softmmu/hw/arm/fsl-imx6.o
CC lm32-softmmu/monitor.o
CC arm-softmmu/hw/arm/fsl-imx31.o
CC aarch64-softmmu/hw/arm/sabrelite.o
CC arm-softmmu/hw/arm/kzm.o
CC aarch64-softmmu/hw/arm/aspeed_soc.o
CC arm-softmmu/hw/arm/fsl-imx6.o
CC aarch64-softmmu/hw/arm/aspeed.o
CC arm-softmmu/hw/arm/sabrelite.o
CC aarch64-softmmu/hw/arm/mps2.o
CC lm32-softmmu/gdbstub.o
CC arm-softmmu/hw/arm/aspeed_soc.o
CC aarch64-softmmu/hw/arm/msf2-soc.o
CC aarch64-softmmu/hw/arm/msf2-som.o
CC arm-softmmu/hw/arm/aspeed.o
CC aarch64-softmmu/target/arm/arm-semi.o
CC arm-softmmu/hw/arm/mps2.o
CC lm32-softmmu/balloon.o
CC arm-softmmu/hw/arm/msf2-soc.o
CC lm32-softmmu/ioport.o
CC aarch64-softmmu/target/arm/machine.o
CC arm-softmmu/hw/arm/msf2-som.o
CC lm32-softmmu/numa.o
CC aarch64-softmmu/target/arm/psci.o
CC arm-softmmu/target/arm/arm-semi.o
CC aarch64-softmmu/target/arm/arch_dump.o
CC lm32-softmmu/qtest.o
CC arm-softmmu/target/arm/machine.o
CC aarch64-softmmu/target/arm/monitor.o
CC lm32-softmmu/memory.o
CC aarch64-softmmu/target/arm/kvm-stub.o
CC arm-softmmu/target/arm/psci.o
CC aarch64-softmmu/target/arm/translate.o
CC arm-softmmu/target/arm/arch_dump.o
CC arm-softmmu/target/arm/monitor.o
CC arm-softmmu/target/arm/kvm-stub.o
CC arm-softmmu/target/arm/translate.o
CC lm32-softmmu/memory_mapping.o
CC lm32-softmmu/dump.o
CC lm32-softmmu/migration/ram.o
CC lm32-softmmu/accel/accel.o
CC lm32-softmmu/accel/stubs/hax-stub.o
CC lm32-softmmu/accel/stubs/hvf-stub.o
CC lm32-softmmu/accel/stubs/kvm-stub.o
CC lm32-softmmu/accel/tcg/tcg-all.o
CC lm32-softmmu/accel/tcg/cputlb.o
CC lm32-softmmu/accel/tcg/tcg-runtime.o
CC lm32-softmmu/accel/tcg/cpu-exec.o
CC lm32-softmmu/accel/tcg/cpu-exec-common.o
CC lm32-softmmu/accel/tcg/translate-all.o
CC aarch64-softmmu/target/arm/op_helper.o
CC lm32-softmmu/accel/tcg/translator.o
CC lm32-softmmu/hw/core/generic-loader.o
CC arm-softmmu/target/arm/op_helper.o
CC lm32-softmmu/hw/core/null-machine.o
CC aarch64-softmmu/target/arm/helper.o
CC lm32-softmmu/hw/input/milkymist-softusb.o
CC lm32-softmmu/hw/misc/milkymist-hpdmc.o
CC lm32-softmmu/hw/misc/milkymist-pfpu.o
CC arm-softmmu/target/arm/helper.o
CC lm32-softmmu/hw/misc/mmio_interface.o
CC lm32-softmmu/hw/net/milkymist-minimac2.o
CC lm32-softmmu/hw/net/vhost_net.o
CC lm32-softmmu/hw/net/rocker/qmp-norocker.o
CC lm32-softmmu/hw/sd/milkymist-memcard.o
CC lm32-softmmu/hw/vfio/common.o
CC lm32-softmmu/hw/vfio/platform.o
CC lm32-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/target/arm/cpu.o
CC lm32-softmmu/hw/lm32/lm32_boards.o
CC lm32-softmmu/hw/lm32/milkymist.o
CC aarch64-softmmu/target/arm/neon_helper.o
CC arm-softmmu/target/arm/cpu.o
CC lm32-softmmu/target/lm32/translate.o
CC arm-softmmu/target/arm/neon_helper.o
CC lm32-softmmu/target/lm32/op_helper.o
CC aarch64-softmmu/target/arm/iwmmxt_helper.o
CC lm32-softmmu/target/lm32/helper.o
CC lm32-softmmu/target/lm32/cpu.o
CC lm32-softmmu/target/lm32/gdbstub.o
CC lm32-softmmu/target/lm32/lm32-semi.o
CC aarch64-softmmu/target/arm/gdbstub.o
CC arm-softmmu/target/arm/iwmmxt_helper.o
CC lm32-softmmu/target/lm32/machine.o
CC aarch64-softmmu/target/arm/cpu64.o
GEN trace/generated-helpers.c
CC lm32-softmmu/trace/control-target.o
CC aarch64-softmmu/target/arm/translate-a64.o
CC lm32-softmmu/trace/generated-helpers.o
CC arm-softmmu/target/arm/gdbstub.o
LINK lm32-softmmu/qemu-system-lm32
CC arm-softmmu/target/arm/crypto_helper.o
CC arm-softmmu/target/arm/arm-powerctl.o
GEN trace/generated-helpers.c
CC arm-softmmu/trace/control-target.o
CC arm-softmmu/gdbstub-xml.o
CC aarch64-softmmu/target/arm/helper-a64.o
CC arm-softmmu/trace/generated-helpers.o
LINK arm-softmmu/qemu-system-arm
CC aarch64-softmmu/target/arm/gdbstub64.o
CC i386-softmmu/hw/isa/lpc_ich9.o
CC aarch64-softmmu/target/arm/crypto_helper.o
CC aarch64-softmmu/target/arm/arm-powerctl.o
CC i386-softmmu/hw/misc/ivshmem.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/misc/pvpanic.o
CC aarch64-softmmu/trace/control-target.o
CC i386-softmmu/hw/misc/mmio_interface.o
CC aarch64-softmmu/gdbstub-xml.o
CC i386-softmmu/hw/net/virtio-net.o
CC aarch64-softmmu/trace/generated-helpers.o
LINK aarch64-softmmu/qemu-system-aarch64
CC i386-softmmu/hw/net/vhost_net.o
GEN m68k-softmmu/hmp-commands.h
GEN microblazeel-softmmu/hmp-commands.h
GEN m68k-softmmu/hmp-commands-info.h
GEN m68k-softmmu/config-target.h
GEN microblazeel-softmmu/hmp-commands-info.h
CC m68k-softmmu/exec.o
GEN microblazeel-softmmu/config-target.h
CC i386-softmmu/hw/scsi/virtio-scsi.o
CC microblazeel-softmmu/exec.o
CC i386-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC i386-softmmu/hw/scsi/vhost-scsi-common.o
CC i386-softmmu/hw/scsi/vhost-scsi.o
GEN microblaze-softmmu/hmp-commands.h
GEN microblaze-softmmu/hmp-commands-info.h
CC microblazeel-softmmu/tcg/tcg.o
GEN microblaze-softmmu/config-target.h
CC microblaze-softmmu/exec.o
CC i386-softmmu/hw/scsi/vhost-user-scsi.o
CC i386-softmmu/hw/timer/mc146818rtc.o
CC i386-softmmu/hw/vfio/common.o
CC i386-softmmu/hw/vfio/pci.o
CC microblazeel-softmmu/tcg/tcg-op.o
CC microblaze-softmmu/tcg/tcg.o
CC i386-softmmu/hw/vfio/pci-quirks.o
CC i386-softmmu/hw/vfio/platform.o
CC microblazeel-softmmu/tcg/optimize.o
CC i386-softmmu/hw/vfio/spapr.o
CC i386-softmmu/hw/virtio/virtio.o
CC microblaze-softmmu/tcg/tcg-op.o
CC microblazeel-softmmu/tcg/tcg-common.o
CC microblazeel-softmmu/fpu/softfloat.o
CC i386-softmmu/hw/virtio/virtio-balloon.o
CC i386-softmmu/hw/virtio/vhost.o
CC microblaze-softmmu/tcg/optimize.o
CC i386-softmmu/hw/virtio/vhost-backend.o
CC microblaze-softmmu/tcg/tcg-common.o
CC i386-softmmu/hw/virtio/vhost-user.o
CC microblaze-softmmu/fpu/softfloat.o
CC i386-softmmu/hw/virtio/vhost-vsock.o
CC i386-softmmu/hw/virtio/virtio-crypto.o
CC microblazeel-softmmu/disas.o
CC i386-softmmu/hw/virtio/virtio-crypto-pci.o
CC microblazeel-softmmu/arch_init.o
CC i386-softmmu/hw/i386/multiboot.o
CC microblazeel-softmmu/cpus.o
CC i386-softmmu/hw/i386/pc.o
CC microblazeel-softmmu/monitor.o
CC i386-softmmu/hw/i386/pc_piix.o
CC microblaze-softmmu/disas.o
CC i386-softmmu/hw/i386/pc_q35.o
CC microblaze-softmmu/arch_init.o
CC microblaze-softmmu/cpus.o
CC microblazeel-softmmu/gdbstub.o
CC i386-softmmu/hw/i386/pc_sysfw.o
CC i386-softmmu/hw/i386/x86-iommu.o
CC microblaze-softmmu/monitor.o
CC i386-softmmu/hw/i386/intel_iommu.o
CC microblazeel-softmmu/balloon.o
CC microblazeel-softmmu/ioport.o
CC microblazeel-softmmu/numa.o
CC microblazeel-softmmu/qtest.o
CC i386-softmmu/hw/i386/amd_iommu.o
CC microblazeel-softmmu/memory.o
CC microblaze-softmmu/gdbstub.o
CC i386-softmmu/hw/i386/vmport.o
CC i386-softmmu/hw/i386/vmmouse.o
CC microblaze-softmmu/balloon.o
CC microblaze-softmmu/ioport.o
CC i386-softmmu/hw/i386/kvmvapic.o
CC microblazeel-softmmu/memory_mapping.o
CC microblaze-softmmu/numa.o
CC i386-softmmu/hw/i386/acpi-build.o
CC microblazeel-softmmu/dump.o
CC microblaze-softmmu/qtest.o
CC microblaze-softmmu/memory.o
CC microblazeel-softmmu/migration/ram.o
CC i386-softmmu/target/i386/helper.o
CC i386-softmmu/target/i386/cpu.o
CC microblazeel-softmmu/accel/accel.o
CC microblaze-softmmu/memory_mapping.o
CC microblazeel-softmmu/accel/stubs/hax-stub.o
CC microblazeel-softmmu/accel/stubs/hvf-stub.o
CC microblaze-softmmu/dump.o
CC microblazeel-softmmu/accel/stubs/kvm-stub.o
CC i386-softmmu/target/i386/gdbstub.o
CC microblazeel-softmmu/accel/tcg/tcg-all.o
CC i386-softmmu/target/i386/xsave_helper.o
CC microblazeel-softmmu/accel/tcg/cputlb.o
CC microblaze-softmmu/migration/ram.o
CC i386-softmmu/target/i386/translate.o
CC microblaze-softmmu/accel/accel.o
CC microblaze-softmmu/accel/stubs/hax-stub.o
CC microblaze-softmmu/accel/stubs/hvf-stub.o
CC microblaze-softmmu/accel/stubs/kvm-stub.o
CC microblazeel-softmmu/accel/tcg/tcg-runtime.o
CC microblaze-softmmu/accel/tcg/tcg-all.o
CC microblazeel-softmmu/accel/tcg/cpu-exec.o
CC microblaze-softmmu/accel/tcg/cputlb.o
CC microblazeel-softmmu/accel/tcg/cpu-exec-common.o
CC microblazeel-softmmu/accel/tcg/translate-all.o
CC microblazeel-softmmu/accel/tcg/translator.o
CC microblaze-softmmu/accel/tcg/tcg-runtime.o
CC microblazeel-softmmu/hw/core/generic-loader.o
CC microblaze-softmmu/accel/tcg/cpu-exec.o
CC microblazeel-softmmu/hw/core/null-machine.o
CC microblazeel-softmmu/hw/misc/mmio_interface.o
CC microblaze-softmmu/accel/tcg/cpu-exec-common.o
CC microblazeel-softmmu/hw/net/xilinx_ethlite.o
CC microblaze-softmmu/accel/tcg/translate-all.o
CC microblazeel-softmmu/hw/net/vhost_net.o
CC microblazeel-softmmu/hw/net/rocker/qmp-norocker.o
CC microblaze-softmmu/accel/tcg/translator.o
CC microblazeel-softmmu/hw/vfio/common.o
CC microblaze-softmmu/hw/core/generic-loader.o
CC microblaze-softmmu/hw/core/null-machine.o
CC microblazeel-softmmu/hw/vfio/platform.o
CC microblaze-softmmu/hw/misc/mmio_interface.o
CC microblaze-softmmu/hw/net/xilinx_ethlite.o
CC microblazeel-softmmu/hw/vfio/spapr.o
CC i386-softmmu/target/i386/bpt_helper.o
CC microblaze-softmmu/hw/net/vhost_net.o
CC microblazeel-softmmu/hw/microblaze/petalogix_s3adsp1800_mmu.o
CC microblaze-softmmu/hw/net/rocker/qmp-norocker.o
CC i386-softmmu/target/i386/cc_helper.o
CC microblazeel-softmmu/hw/microblaze/petalogix_ml605_mmu.o
CC microblaze-softmmu/hw/vfio/common.o
CC microblazeel-softmmu/hw/microblaze/boot.o
CC i386-softmmu/target/i386/excp_helper.o
CC microblazeel-softmmu/target/microblaze/translate.o
CC microblaze-softmmu/hw/vfio/platform.o
CC i386-softmmu/target/i386/fpu_helper.o
CC microblaze-softmmu/hw/vfio/spapr.o
CC microblaze-softmmu/hw/microblaze/petalogix_s3adsp1800_mmu.o
CC microblaze-softmmu/hw/microblaze/petalogix_ml605_mmu.o
CC microblaze-softmmu/hw/microblaze/boot.o
CC microblazeel-softmmu/target/microblaze/op_helper.o
CC microblaze-softmmu/target/microblaze/translate.o
CC microblazeel-softmmu/target/microblaze/helper.o
CC microblazeel-softmmu/target/microblaze/cpu.o
CC microblazeel-softmmu/target/microblaze/gdbstub.o
CC microblazeel-softmmu/target/microblaze/mmu.o
GEN trace/generated-helpers.c
CC i386-softmmu/target/i386/int_helper.o
CC microblazeel-softmmu/trace/control-target.o
CC microblaze-softmmu/target/microblaze/op_helper.o
CC microblazeel-softmmu/trace/generated-helpers.o
CC i386-softmmu/target/i386/mem_helper.o
LINK microblazeel-softmmu/qemu-system-microblazeel
CC microblaze-softmmu/target/microblaze/helper.o
CC i386-softmmu/target/i386/misc_helper.o
CC microblaze-softmmu/target/microblaze/cpu.o
CC i386-softmmu/target/i386/mpx_helper.o
CC microblaze-softmmu/target/microblaze/gdbstub.o
CC microblaze-softmmu/target/microblaze/mmu.o
CC i386-softmmu/target/i386/seg_helper.o
CC i386-softmmu/target/i386/smm_helper.o
CC m68k-softmmu/tcg/tcg.o
GEN mips64el-softmmu/hmp-commands.h
GEN mips64el-softmmu/hmp-commands-info.h
GEN mips64el-softmmu/config-target.h
CC mips64el-softmmu/exec.o
CC m68k-softmmu/tcg/tcg-op.o
CC i386-softmmu/target/i386/svm_helper.o
CC i386-softmmu/target/i386/machine.o
CC mips64el-softmmu/tcg/tcg.o
CC i386-softmmu/target/i386/arch_memory_mapping.o
CC i386-softmmu/target/i386/arch_dump.o
CC i386-softmmu/target/i386/monitor.o
CC m68k-softmmu/tcg/optimize.o
CC i386-softmmu/target/i386/kvm-stub.o
GEN trace/generated-helpers.c
CC i386-softmmu/trace/control-target.o
CC i386-softmmu/gdbstub-xml.o
CC m68k-softmmu/tcg/tcg-common.o
CC i386-softmmu/trace/generated-helpers.o
CC m68k-softmmu/fpu/softfloat.o
LINK i386-softmmu/qemu-system-i386
CC mips64el-softmmu/tcg/tcg-op.o
GEN trace/generated-helpers.c
CC microblaze-softmmu/trace/control-target.o
GEN mips64-softmmu/hmp-commands.h
GEN mips64-softmmu/hmp-commands-info.h
CC mips64el-softmmu/tcg/optimize.o
GEN mips64-softmmu/config-target.h
CC mips64-softmmu/exec.o
CC m68k-softmmu/disas.o
CC microblaze-softmmu/trace/generated-helpers.o
LINK microblaze-softmmu/qemu-system-microblaze
GEN m68k-softmmu/gdbstub-xml.c
CC mips64el-softmmu/tcg/tcg-common.o
CC mips64el-softmmu/fpu/softfloat.o
CC m68k-softmmu/arch_init.o
CC m68k-softmmu/cpus.o
GEN mipsel-softmmu/hmp-commands.h
GEN mipsel-softmmu/hmp-commands-info.h
GEN mipsel-softmmu/config-target.h
CC mipsel-softmmu/exec.o
CC m68k-softmmu/monitor.o
CC mips64el-softmmu/disas.o
CC mipsel-softmmu/tcg/tcg.o
CC m68k-softmmu/gdbstub.o
CC mips64el-softmmu/arch_init.o
CC mips64el-softmmu/cpus.o
CC m68k-softmmu/balloon.o
CC m68k-softmmu/ioport.o
CC mips64el-softmmu/monitor.o
CC m68k-softmmu/numa.o
CC m68k-softmmu/qtest.o
CC mipsel-softmmu/tcg/tcg-op.o
CC m68k-softmmu/memory.o
CC mips64el-softmmu/gdbstub.o
CC mips64el-softmmu/balloon.o
CC mips64el-softmmu/ioport.o
CC m68k-softmmu/memory_mapping.o
CC mips64el-softmmu/numa.o
CC m68k-softmmu/dump.o
CC mipsel-softmmu/tcg/optimize.o
CC mips64el-softmmu/qtest.o
CC mips64el-softmmu/memory.o
CC m68k-softmmu/migration/ram.o
CC mipsel-softmmu/tcg/tcg-common.o
CC mipsel-softmmu/fpu/softfloat.o
CC m68k-softmmu/accel/accel.o
CC mips64el-softmmu/memory_mapping.o
CC m68k-softmmu/accel/stubs/hax-stub.o
CC m68k-softmmu/accel/stubs/hvf-stub.o
CC mips64el-softmmu/dump.o
CC m68k-softmmu/accel/stubs/kvm-stub.o
CC m68k-softmmu/accel/tcg/tcg-all.o
CC m68k-softmmu/accel/tcg/cputlb.o
CC mips64el-softmmu/migration/ram.o
CC mips64el-softmmu/accel/accel.o
CC mipsel-softmmu/disas.o
CC mips64el-softmmu/accel/stubs/hax-stub.o
CC mips64el-softmmu/accel/stubs/hvf-stub.o
CC mipsel-softmmu/arch_init.o
CC mips64el-softmmu/accel/stubs/kvm-stub.o
CC m68k-softmmu/accel/tcg/tcg-runtime.o
CC mipsel-softmmu/cpus.o
CC mips64el-softmmu/accel/tcg/tcg-all.o
CC m68k-softmmu/accel/tcg/cpu-exec.o
CC mips64el-softmmu/accel/tcg/cputlb.o
CC mipsel-softmmu/monitor.o
CC m68k-softmmu/accel/tcg/cpu-exec-common.o
CC m68k-softmmu/accel/tcg/translate-all.o
CC m68k-softmmu/accel/tcg/translator.o
CC m68k-softmmu/hw/char/mcf_uart.o
CC m68k-softmmu/hw/core/generic-loader.o
CC mips64el-softmmu/accel/tcg/tcg-runtime.o
CC mipsel-softmmu/gdbstub.o
CC m68k-softmmu/hw/core/null-machine.o
CC mips64el-softmmu/accel/tcg/cpu-exec.o
CC m68k-softmmu/hw/misc/mmio_interface.o
CC m68k-softmmu/hw/net/mcf_fec.o
CC mips64el-softmmu/accel/tcg/cpu-exec-common.o
CC mipsel-softmmu/balloon.o
CC mips64el-softmmu/accel/tcg/translate-all.o
CC m68k-softmmu/hw/net/vhost_net.o
CC mipsel-softmmu/ioport.o
CC m68k-softmmu/hw/net/rocker/qmp-norocker.o
CC m68k-softmmu/hw/vfio/common.o
CC mipsel-softmmu/numa.o
CC mips64el-softmmu/accel/tcg/translator.o
CC mipsel-softmmu/qtest.o
CC m68k-softmmu/hw/vfio/platform.o
CC mips64el-softmmu/hw/9pfs/virtio-9p-device.o
CC mipsel-softmmu/memory.o
CC m68k-softmmu/hw/vfio/spapr.o
CC mips64el-softmmu/hw/block/virtio-blk.o
CC m68k-softmmu/hw/m68k/an5206.o
CC m68k-softmmu/hw/m68k/mcf5208.o
CC mips64el-softmmu/hw/block/vhost-user-blk.o
CC m68k-softmmu/hw/m68k/mcf5206.o
CC mips64el-softmmu/hw/block/dataplane/virtio-blk.o
CC m68k-softmmu/hw/m68k/mcf_intc.o
CC mipsel-softmmu/memory_mapping.o
CC mips64el-softmmu/hw/char/virtio-serial-bus.o
CC m68k-softmmu/target/m68k/m68k-semi.o
CC mipsel-softmmu/dump.o
CC m68k-softmmu/target/m68k/translate.o
CC mips64el-softmmu/hw/core/generic-loader.o
CC mips64el-softmmu/hw/core/null-machine.o
CC mipsel-softmmu/migration/ram.o
CC mips64el-softmmu/hw/display/vga.o
CC mipsel-softmmu/accel/accel.o
CC mipsel-softmmu/accel/stubs/hax-stub.o
CC mips64el-softmmu/hw/display/virtio-gpu.o
CC mipsel-softmmu/accel/stubs/hvf-stub.o
CC mipsel-softmmu/accel/stubs/kvm-stub.o
CC mipsel-softmmu/accel/tcg/tcg-all.o
CC mips64el-softmmu/hw/display/virtio-gpu-3d.o
CC mipsel-softmmu/accel/tcg/cputlb.o
CC m68k-softmmu/target/m68k/op_helper.o
CC mips64el-softmmu/hw/display/virtio-gpu-pci.o
CC mips64el-softmmu/hw/intc/mips_gic.o
CC m68k-softmmu/target/m68k/helper.o
CC mips64el-softmmu/hw/misc/ivshmem.o
CC m68k-softmmu/target/m68k/cpu.o
CC mips64el-softmmu/hw/misc/mips_cmgcr.o
CC mipsel-softmmu/accel/tcg/tcg-runtime.o
CC m68k-softmmu/target/m68k/fpu_helper.o
CC mips64el-softmmu/hw/misc/mips_cpc.o
CC mipsel-softmmu/accel/tcg/cpu-exec.o
CC mips64el-softmmu/hw/misc/mips_itu.o
CC m68k-softmmu/target/m68k/gdbstub.o
CC mips64el-softmmu/hw/misc/mmio_interface.o
CC mipsel-softmmu/accel/tcg/cpu-exec-common.o
CC m68k-softmmu/target/m68k/monitor.o
CC mips64el-softmmu/hw/net/virtio-net.o
CC mipsel-softmmu/accel/tcg/translate-all.o
GEN trace/generated-helpers.c
CC m68k-softmmu/trace/control-target.o
CC m68k-softmmu/gdbstub-xml.o
CC m68k-softmmu/trace/generated-helpers.o
CC mipsel-softmmu/accel/tcg/translator.o
CC mips64el-softmmu/hw/net/vhost_net.o
LINK m68k-softmmu/qemu-system-m68k
CC mips64el-softmmu/hw/scsi/virtio-scsi.o
CC mipsel-softmmu/hw/9pfs/virtio-9p-device.o
CC mips64el-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC mipsel-softmmu/hw/block/virtio-blk.o
CC mips64el-softmmu/hw/scsi/vhost-scsi-common.o
CC mips64-softmmu/tcg/tcg.o
CC mips64el-softmmu/hw/scsi/vhost-scsi.o
CC mips64el-softmmu/hw/scsi/vhost-user-scsi.o
CC mipsel-softmmu/hw/block/vhost-user-blk.o
CC mips64el-softmmu/hw/timer/mips_gictimer.o
CC mips64-softmmu/tcg/tcg-op.o
CC mipsel-softmmu/hw/block/dataplane/virtio-blk.o
CC mips64el-softmmu/hw/timer/mc146818rtc.o
CC mipsel-softmmu/hw/char/virtio-serial-bus.o
CC mips64el-softmmu/hw/vfio/common.o
CC mipsel-softmmu/hw/core/generic-loader.o
CC mips64-softmmu/tcg/optimize.o
CC mipsel-softmmu/hw/core/null-machine.o
CC mips64-softmmu/tcg/tcg-common.o
CC mipsel-softmmu/hw/display/vga.o
CC mips64el-softmmu/hw/vfio/pci.o
CC mips64-softmmu/fpu/softfloat.o
CC mips64-softmmu/disas.o
CC mipsel-softmmu/hw/display/virtio-gpu.o
CC mips64el-softmmu/hw/vfio/pci-quirks.o
CC mips64el-softmmu/hw/vfio/platform.o
CC mipsel-softmmu/hw/display/virtio-gpu-3d.o
CC mips64el-softmmu/hw/vfio/spapr.o
CC mips64el-softmmu/hw/virtio/virtio.o
CC mips64el-softmmu/hw/virtio/virtio-balloon.o
CC mipsel-softmmu/hw/display/virtio-gpu-pci.o
GEN mips-softmmu/hmp-commands.h
GEN mips-softmmu/hmp-commands-info.h
GEN mips-softmmu/config-target.h
CC mips-softmmu/exec.o
CC mips-softmmu/tcg/tcg.o
CC mips-softmmu/tcg/tcg-op.o
CC mips-softmmu/tcg/optimize.o
CC mips-softmmu/tcg/tcg-common.o
CC mips-softmmu/fpu/softfloat.o
CC mips-softmmu/disas.o
CC mips-softmmu/arch_init.o
CC mips-softmmu/cpus.o
CC mips-softmmu/monitor.o
CC mips-softmmu/gdbstub.o
CC mips-softmmu/balloon.o
CC mips-softmmu/ioport.o
CC mips-softmmu/numa.o
CC mips-softmmu/qtest.o
CC mips-softmmu/memory.o
CC mips-softmmu/memory_mapping.o
CC mips-softmmu/dump.o
CC mips-softmmu/migration/ram.o
CC mips-softmmu/accel/accel.o
CC mips-softmmu/accel/stubs/hax-stub.o
CC mips-softmmu/accel/stubs/hvf-stub.o
CC mips-softmmu/accel/stubs/kvm-stub.o
CC mips-softmmu/accel/tcg/tcg-all.o
CC mips-softmmu/accel/tcg/cputlb.o
CC mips-softmmu/accel/tcg/tcg-runtime.o
CC mips-softmmu/accel/tcg/cpu-exec.o
CC mips-softmmu/accel/tcg/cpu-exec-common.o
CC mips-softmmu/accel/tcg/translate-all.o
CC mips-softmmu/accel/tcg/translator.o
CC mips-softmmu/hw/9pfs/virtio-9p-device.o
CC mips-softmmu/hw/block/virtio-blk.o
CC mips-softmmu/hw/block/vhost-user-blk.o
CC mips-softmmu/hw/block/dataplane/virtio-blk.o
CC mips-softmmu/hw/char/virtio-serial-bus.o
CC mips-softmmu/hw/core/generic-loader.o
CC mips-softmmu/hw/core/null-machine.o
CC mips-softmmu/hw/display/vga.o
CC mips-softmmu/hw/display/virtio-gpu.o
CC mips-softmmu/hw/display/virtio-gpu-3d.o
CC mips-softmmu/hw/display/virtio-gpu-pci.o
CC mips-softmmu/hw/intc/mips_gic.o
CC mips-softmmu/hw/misc/ivshmem.o
CC mips-softmmu/hw/misc/mips_cmgcr.o
CC mips-softmmu/hw/misc/mips_cpc.o
CC mips-softmmu/hw/misc/mips_itu.o
CC mips-softmmu/hw/misc/mmio_interface.o
CC mips-softmmu/hw/net/virtio-net.o
CC mips-softmmu/hw/net/vhost_net.o
CC mips-softmmu/hw/scsi/virtio-scsi.o
CC mips-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC mips-softmmu/hw/scsi/vhost-scsi-common.o
CC mips-softmmu/hw/scsi/vhost-scsi.o
CC mips-softmmu/hw/scsi/vhost-user-scsi.o
CC mips-softmmu/hw/timer/mips_gictimer.o
CC mips-softmmu/hw/timer/mc146818rtc.o
CC mips-softmmu/hw/vfio/common.o
CC mips-softmmu/hw/vfio/pci.o
CC mips-softmmu/hw/vfio/pci-quirks.o
CC mips-softmmu/hw/vfio/platform.o
CC mips-softmmu/hw/vfio/spapr.o
CC mips-softmmu/hw/virtio/virtio.o
CC mips-softmmu/hw/virtio/virtio-balloon.o
CC mips-softmmu/hw/virtio/vhost.o
CC mips-softmmu/hw/virtio/vhost-backend.o
CC mips-softmmu/hw/virtio/vhost-user.o
CC mips-softmmu/hw/virtio/vhost-vsock.o
CC mips-softmmu/hw/virtio/virtio-crypto.o
CC mips-softmmu/hw/virtio/virtio-crypto-pci.o
CC mips-softmmu/hw/mips/mips_r4k.o
CC mips-softmmu/hw/mips/mips_malta.o
CC mips-softmmu/hw/mips/mips_mipssim.o
CC mips-softmmu/hw/mips/addr.o
CC mips-softmmu/hw/mips/mips_int.o
CC mips-softmmu/hw/mips/gt64xxx_pci.o
CC mips-softmmu/hw/mips/cps.o
CC mips-softmmu/target/mips/translate.o
CC mips-softmmu/target/mips/dsp_helper.o
CC mips-softmmu/target/mips/op_helper.o
CC mips-softmmu/target/mips/lmi_helper.o
CC mips-softmmu/target/mips/helper.o
CC mips-softmmu/target/mips/cpu.o
CC mips-softmmu/target/mips/gdbstub.o
CC mips-softmmu/target/mips/msa_helper.o
CC mips-softmmu/target/mips/mips-semi.o
CC mips-softmmu/target/mips/machine.o
CC mips-softmmu/target/mips/cp0_timer.o
GEN trace/generated-helpers.c
CC mips-softmmu/trace/control-target.o
CC mips-softmmu/trace/generated-helpers.o
LINK mips-softmmu/qemu-system-mips
CC mips64el-softmmu/hw/virtio/vhost.o
CC mips64-softmmu/arch_init.o
CC mipsel-softmmu/hw/intc/mips_gic.o
CC mips64-softmmu/cpus.o
CC mips64el-softmmu/hw/virtio/vhost-backend.o
CC mipsel-softmmu/hw/misc/ivshmem.o
CC mips64-softmmu/monitor.o
CC mips64el-softmmu/hw/virtio/vhost-user.o
CC mips64el-softmmu/hw/virtio/vhost-vsock.o
CC mips64el-softmmu/hw/virtio/virtio-crypto.o
CC mips64el-softmmu/hw/virtio/virtio-crypto-pci.o
CC mips64-softmmu/gdbstub.o
CC mips64el-softmmu/hw/mips/mips_r4k.o
CC mips64el-softmmu/hw/mips/mips_malta.o
CC mipsel-softmmu/hw/misc/mips_cmgcr.o
CC mipsel-softmmu/hw/misc/mips_cpc.o
GEN moxie-softmmu/hmp-commands.h
GEN moxie-softmmu/hmp-commands-info.h
GEN moxie-softmmu/config-target.h
CC moxie-softmmu/exec.o
CC mipsel-softmmu/hw/misc/mips_itu.o
CC mipsel-softmmu/hw/misc/mmio_interface.o
CC mipsel-softmmu/hw/net/virtio-net.o
CC mipsel-softmmu/hw/net/vhost_net.o
CC mipsel-softmmu/hw/scsi/virtio-scsi.o
CC moxie-softmmu/tcg/tcg.o
CC mipsel-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC mipsel-softmmu/hw/scsi/vhost-scsi-common.o
CC mipsel-softmmu/hw/scsi/vhost-scsi.o
CC mipsel-softmmu/hw/scsi/vhost-user-scsi.o
CC mipsel-softmmu/hw/timer/mips_gictimer.o
CC mipsel-softmmu/hw/timer/mc146818rtc.o
CC moxie-softmmu/tcg/tcg-op.o
CC mipsel-softmmu/hw/vfio/common.o
CC mipsel-softmmu/hw/vfio/pci.o
CC moxie-softmmu/tcg/optimize.o
CC mipsel-softmmu/hw/vfio/pci-quirks.o
CC moxie-softmmu/tcg/tcg-common.o
CC mipsel-softmmu/hw/vfio/platform.o
CC moxie-softmmu/fpu/softfloat.o
CC mipsel-softmmu/hw/vfio/spapr.o
CC mipsel-softmmu/hw/virtio/virtio.o
CC mipsel-softmmu/hw/virtio/virtio-balloon.o
CC mipsel-softmmu/hw/virtio/vhost.o
CC mipsel-softmmu/hw/virtio/vhost-backend.o
CC moxie-softmmu/disas.o
CC mipsel-softmmu/hw/virtio/vhost-user.o
CC moxie-softmmu/arch_init.o
CC mipsel-softmmu/hw/virtio/vhost-vsock.o
CC moxie-softmmu/cpus.o
CC mipsel-softmmu/hw/virtio/virtio-crypto.o
CC mipsel-softmmu/hw/virtio/virtio-crypto-pci.o
CC moxie-softmmu/monitor.o
CC mipsel-softmmu/hw/mips/mips_r4k.o
CC mipsel-softmmu/hw/mips/mips_malta.o
CC mipsel-softmmu/hw/mips/mips_mipssim.o
CC mipsel-softmmu/hw/mips/addr.o
CC moxie-softmmu/gdbstub.o
CC mipsel-softmmu/hw/mips/mips_int.o
CC mipsel-softmmu/hw/mips/gt64xxx_pci.o
CC moxie-softmmu/balloon.o
CC mipsel-softmmu/hw/mips/cps.o
CC moxie-softmmu/ioport.o
CC mipsel-softmmu/target/mips/translate.o
CC moxie-softmmu/numa.o
CC moxie-softmmu/qtest.o
CC moxie-softmmu/memory.o
CC moxie-softmmu/memory_mapping.o
CC moxie-softmmu/dump.o
CC moxie-softmmu/migration/ram.o
CC moxie-softmmu/accel/accel.o
CC moxie-softmmu/accel/stubs/hax-stub.o
CC moxie-softmmu/accel/stubs/hvf-stub.o
CC moxie-softmmu/accel/stubs/kvm-stub.o
CC moxie-softmmu/accel/tcg/tcg-all.o
CC moxie-softmmu/accel/tcg/cputlb.o
CC moxie-softmmu/accel/tcg/tcg-runtime.o
CC moxie-softmmu/accel/tcg/cpu-exec.o
CC moxie-softmmu/accel/tcg/cpu-exec-common.o
CC moxie-softmmu/accel/tcg/translate-all.o
CC moxie-softmmu/accel/tcg/translator.o
CC moxie-softmmu/hw/core/generic-loader.o
CC moxie-softmmu/hw/core/null-machine.o
CC mipsel-softmmu/target/mips/dsp_helper.o
CC moxie-softmmu/hw/display/vga.o
CC mipsel-softmmu/target/mips/op_helper.o
CC moxie-softmmu/hw/misc/mmio_interface.o
CC moxie-softmmu/hw/net/vhost_net.o
CC moxie-softmmu/hw/net/rocker/qmp-norocker.o
CC moxie-softmmu/hw/timer/mc146818rtc.o
CC moxie-softmmu/hw/vfio/common.o
CC moxie-softmmu/hw/vfio/platform.o
CC mipsel-softmmu/target/mips/lmi_helper.o
CC moxie-softmmu/hw/vfio/spapr.o
CC moxie-softmmu/hw/moxie/moxiesim.o
CC mipsel-softmmu/target/mips/helper.o
CC moxie-softmmu/target/moxie/translate.o
CC mipsel-softmmu/target/mips/cpu.o
CC mipsel-softmmu/target/mips/gdbstub.o
CC moxie-softmmu/target/moxie/helper.o
CC mipsel-softmmu/target/mips/msa_helper.o
CC moxie-softmmu/target/moxie/machine.o
CC moxie-softmmu/target/moxie/cpu.o
CC moxie-softmmu/target/moxie/mmu.o
GEN trace/generated-helpers.c
CC moxie-softmmu/trace/control-target.o
CC moxie-softmmu/trace/generated-helpers.o
LINK moxie-softmmu/qemu-system-moxie
CC mips64el-softmmu/hw/mips/mips_mipssim.o
CC mips64el-softmmu/hw/mips/addr.o
GEN nios2-softmmu/hmp-commands.h
GEN nios2-softmmu/hmp-commands-info.h
GEN nios2-softmmu/config-target.h
CC nios2-softmmu/exec.o
CC mips64el-softmmu/hw/mips/mips_int.o
CC mips64el-softmmu/hw/mips/mips_jazz.o
CC mips64el-softmmu/hw/mips/mips_fulong2e.o
CC mips64el-softmmu/hw/mips/gt64xxx_pci.o
CC mipsel-softmmu/target/mips/mips-semi.o
CC mips64el-softmmu/hw/mips/cps.o
CC mipsel-softmmu/target/mips/machine.o
CC mips64el-softmmu/hw/mips/boston.o
CC mipsel-softmmu/target/mips/cp0_timer.o
CC mips64el-softmmu/target/mips/translate.o
CC nios2-softmmu/tcg/tcg.o
GEN trace/generated-helpers.c
CC mipsel-softmmu/trace/control-target.o
CC mipsel-softmmu/trace/generated-helpers.o
LINK mipsel-softmmu/qemu-system-mipsel
CC nios2-softmmu/tcg/tcg-op.o
GEN or1k-softmmu/hmp-commands.h
GEN or1k-softmmu/hmp-commands-info.h
GEN or1k-softmmu/config-target.h
CC or1k-softmmu/exec.o
CC nios2-softmmu/tcg/optimize.o
CC nios2-softmmu/tcg/tcg-common.o
CC nios2-softmmu/fpu/softfloat.o
CC or1k-softmmu/tcg/tcg.o
CC or1k-softmmu/tcg/tcg-op.o
CC nios2-softmmu/disas.o
CC nios2-softmmu/arch_init.o
CC or1k-softmmu/tcg/optimize.o
CC nios2-softmmu/cpus.o
CC or1k-softmmu/tcg/tcg-common.o
CC nios2-softmmu/monitor.o
CC or1k-softmmu/fpu/softfloat.o
CC nios2-softmmu/gdbstub.o
CC nios2-softmmu/balloon.o
CC nios2-softmmu/ioport.o
CC nios2-softmmu/numa.o
CC or1k-softmmu/disas.o
CC nios2-softmmu/qtest.o
CC or1k-softmmu/arch_init.o
CC nios2-softmmu/memory.o
CC or1k-softmmu/cpus.o
CC or1k-softmmu/monitor.o
CC nios2-softmmu/memory_mapping.o
CC nios2-softmmu/dump.o
CC or1k-softmmu/gdbstub.o
CC nios2-softmmu/migration/ram.o
CC or1k-softmmu/balloon.o
CC or1k-softmmu/ioport.o
CC nios2-softmmu/accel/accel.o
CC nios2-softmmu/accel/stubs/hax-stub.o
CC or1k-softmmu/numa.o
CC nios2-softmmu/accel/stubs/hvf-stub.o
CC or1k-softmmu/qtest.o
CC nios2-softmmu/accel/stubs/kvm-stub.o
CC nios2-softmmu/accel/tcg/tcg-all.o
CC or1k-softmmu/memory.o
CC nios2-softmmu/accel/tcg/cputlb.o
CC or1k-softmmu/memory_mapping.o
CC or1k-softmmu/dump.o
CC nios2-softmmu/accel/tcg/tcg-runtime.o
CC nios2-softmmu/accel/tcg/cpu-exec.o
CC or1k-softmmu/migration/ram.o
CC nios2-softmmu/accel/tcg/cpu-exec-common.o
CC nios2-softmmu/accel/tcg/translate-all.o
CC nios2-softmmu/accel/tcg/translator.o
CC or1k-softmmu/accel/accel.o
CC nios2-softmmu/hw/core/generic-loader.o
CC or1k-softmmu/accel/stubs/hax-stub.o
CC or1k-softmmu/accel/stubs/hvf-stub.o
CC nios2-softmmu/hw/core/null-machine.o
CC or1k-softmmu/accel/stubs/kvm-stub.o
CC nios2-softmmu/hw/intc/nios2_iic.o
CC or1k-softmmu/accel/tcg/tcg-all.o
CC nios2-softmmu/hw/misc/mmio_interface.o
CC or1k-softmmu/accel/tcg/cputlb.o
CC nios2-softmmu/hw/net/vhost_net.o
CC nios2-softmmu/hw/net/rocker/qmp-norocker.o
CC nios2-softmmu/hw/timer/altera_timer.o
CC nios2-softmmu/hw/vfio/common.o
CC nios2-softmmu/hw/vfio/platform.o
CC or1k-softmmu/accel/tcg/tcg-runtime.o
CC nios2-softmmu/hw/vfio/spapr.o
CC or1k-softmmu/accel/tcg/cpu-exec.o
CC nios2-softmmu/hw/nios2/boot.o
CC nios2-softmmu/hw/nios2/cpu_pic.o
CC or1k-softmmu/accel/tcg/cpu-exec-common.o
CC nios2-softmmu/hw/nios2/10m50_devboard.o
CC or1k-softmmu/accel/tcg/translate-all.o
CC nios2-softmmu/target/nios2/translate.o
CC or1k-softmmu/accel/tcg/translator.o
CC or1k-softmmu/hw/core/generic-loader.o
CC nios2-softmmu/target/nios2/op_helper.o
CC nios2-softmmu/target/nios2/helper.o
CC or1k-softmmu/hw/core/null-machine.o
CC or1k-softmmu/hw/intc/ompic.o
CC nios2-softmmu/target/nios2/cpu.o
CC or1k-softmmu/hw/misc/mmio_interface.o
CC nios2-softmmu/target/nios2/mmu.o
CC or1k-softmmu/hw/net/vhost_net.o
CC nios2-softmmu/target/nios2/monitor.o
CC or1k-softmmu/hw/net/rocker/qmp-norocker.o
GEN trace/generated-helpers.c
CC nios2-softmmu/trace/control-target.o
CC or1k-softmmu/hw/vfio/common.o
CC nios2-softmmu/trace/generated-helpers.o
LINK nios2-softmmu/qemu-system-nios2
CC or1k-softmmu/hw/vfio/platform.o
CC or1k-softmmu/hw/vfio/spapr.o
CC or1k-softmmu/hw/openrisc/pic_cpu.o
CC or1k-softmmu/hw/openrisc/cputimer.o
CC mips64el-softmmu/target/mips/dsp_helper.o
CC mips64-softmmu/balloon.o
CC or1k-softmmu/hw/openrisc/openrisc_sim.o
CC or1k-softmmu/target/openrisc/machine.o
CC mips64el-softmmu/target/mips/op_helper.o
CC or1k-softmmu/target/openrisc/cpu.o
CC or1k-softmmu/target/openrisc/exception.o
CC or1k-softmmu/target/openrisc/interrupt.o
CC or1k-softmmu/target/openrisc/mmu.o
CC or1k-softmmu/target/openrisc/translate.o
CC mips64el-softmmu/target/mips/lmi_helper.o
CC mips64el-softmmu/target/mips/helper.o
CC mips64el-softmmu/target/mips/cpu.o
CC mips64-softmmu/ioport.o
CC or1k-softmmu/target/openrisc/exception_helper.o
CC mips64el-softmmu/target/mips/gdbstub.o
CC mips64el-softmmu/target/mips/msa_helper.o
CC mips64-softmmu/numa.o
CC or1k-softmmu/target/openrisc/fpu_helper.o
CC mips64-softmmu/qtest.o
CC mips64el-softmmu/target/mips/mips-semi.o
CC mips64-softmmu/memory.o
CC mips64el-softmmu/target/mips/machine.o
CC mips64el-softmmu/target/mips/cp0_timer.o
GEN trace/generated-helpers.c
CC mips64el-softmmu/trace/control-target.o
CC mips64el-softmmu/trace/generated-helpers.o
CC mips64-softmmu/memory_mapping.o
CC mips64-softmmu/dump.o
CC mips64-softmmu/migration/ram.o
CC mips64-softmmu/accel/accel.o
GEN ppc64-softmmu/hmp-commands.h
GEN ppc64-softmmu/hmp-commands-info.h
GEN ppc64-softmmu/config-target.h
CC ppc64-softmmu/exec.o
LINK mips64el-softmmu/qemu-system-mips64el
GEN ppcemb-softmmu/hmp-commands.h
GEN ppcemb-softmmu/hmp-commands-info.h
GEN ppcemb-softmmu/config-target.h
CC ppcemb-softmmu/exec.o
CC ppcemb-softmmu/tcg/tcg.o
CC ppcemb-softmmu/tcg/tcg-op.o
CC ppcemb-softmmu/tcg/optimize.o
CC ppcemb-softmmu/tcg/tcg-common.o
CC ppcemb-softmmu/fpu/softfloat.o
CC ppcemb-softmmu/disas.o
GEN ppcemb-softmmu/gdbstub-xml.c
CC ppcemb-softmmu/arch_init.o
CC ppcemb-softmmu/cpus.o
CC ppcemb-softmmu/monitor.o
CC ppcemb-softmmu/gdbstub.o
CC ppcemb-softmmu/balloon.o
CC ppcemb-softmmu/ioport.o
CC ppcemb-softmmu/numa.o
CC ppcemb-softmmu/qtest.o
CC ppcemb-softmmu/memory.o
CC ppcemb-softmmu/memory_mapping.o
CC ppcemb-softmmu/dump.o
CC ppcemb-softmmu/migration/ram.o
CC ppcemb-softmmu/accel/accel.o
CC ppcemb-softmmu/accel/stubs/hax-stub.o
CC ppcemb-softmmu/accel/stubs/hvf-stub.o
CC ppcemb-softmmu/accel/stubs/kvm-stub.o
CC ppcemb-softmmu/accel/tcg/tcg-all.o
CC ppcemb-softmmu/accel/tcg/cputlb.o
CC ppcemb-softmmu/accel/tcg/tcg-runtime.o
CC ppcemb-softmmu/accel/tcg/cpu-exec.o
CC ppcemb-softmmu/accel/tcg/cpu-exec-common.o
CC ppcemb-softmmu/accel/tcg/translate-all.o
CC ppcemb-softmmu/accel/tcg/translator.o
CC ppcemb-softmmu/hw/9pfs/virtio-9p-device.o
CC ppcemb-softmmu/hw/block/virtio-blk.o
CC ppcemb-softmmu/hw/block/vhost-user-blk.o
CC ppcemb-softmmu/hw/block/dataplane/virtio-blk.o
CC ppcemb-softmmu/hw/char/virtio-serial-bus.o
CC ppcemb-softmmu/hw/core/generic-loader.o
CC ppcemb-softmmu/hw/core/null-machine.o
CC ppcemb-softmmu/hw/display/sm501.o
CC ppcemb-softmmu/hw/display/vga.o
CC ppcemb-softmmu/hw/display/virtio-gpu.o
CC ppcemb-softmmu/hw/display/virtio-gpu-3d.o
CC ppcemb-softmmu/hw/display/virtio-gpu-pci.o
CC ppcemb-softmmu/hw/i2c/ppc4xx_i2c.o
CC ppcemb-softmmu/hw/misc/ivshmem.o
CC ppcemb-softmmu/hw/misc/mmio_interface.o
CC ppcemb-softmmu/hw/net/xilinx_ethlite.o
CC ppcemb-softmmu/hw/net/virtio-net.o
CC ppcemb-softmmu/hw/net/vhost_net.o
CC ppcemb-softmmu/hw/scsi/virtio-scsi.o
CC ppcemb-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC ppcemb-softmmu/hw/scsi/vhost-scsi-common.o
CC ppcemb-softmmu/hw/scsi/vhost-scsi.o
CC ppcemb-softmmu/hw/scsi/vhost-user-scsi.o
CC ppcemb-softmmu/hw/vfio/common.o
CC ppcemb-softmmu/hw/vfio/pci.o
CC ppcemb-softmmu/hw/vfio/pci-quirks.o
CC ppcemb-softmmu/hw/vfio/platform.o
CC ppcemb-softmmu/hw/vfio/spapr.o
CC ppcemb-softmmu/hw/virtio/virtio.o
CC ppcemb-softmmu/hw/virtio/virtio-balloon.o
CC ppcemb-softmmu/hw/virtio/vhost.o
CC ppcemb-softmmu/hw/virtio/vhost-backend.o
CC ppcemb-softmmu/hw/virtio/vhost-user.o
CC ppcemb-softmmu/hw/virtio/vhost-vsock.o
CC ppcemb-softmmu/hw/virtio/virtio-crypto.o
CC ppcemb-softmmu/hw/virtio/virtio-crypto-pci.o
CC ppcemb-softmmu/hw/ppc/ppc.o
CC ppcemb-softmmu/hw/ppc/ppc_booke.o
CC ppcemb-softmmu/hw/ppc/fdt.o
CC ppcemb-softmmu/hw/ppc/ppc405_boards.o
CC ppcemb-softmmu/hw/ppc/ppc4xx_devs.o
CC ppcemb-softmmu/hw/ppc/ppc405_uc.o
CC ppcemb-softmmu/hw/ppc/ppc440_bamboo.o
CC ppcemb-softmmu/hw/ppc/ppc4xx_pci.o
CC ppcemb-softmmu/hw/ppc/virtex_ml507.o
CC ppcemb-softmmu/target/ppc/cpu-models.o
CC ppcemb-softmmu/target/ppc/cpu.o
CC ppcemb-softmmu/target/ppc/translate.o
CC ppcemb-softmmu/target/ppc/machine.o
CC ppcemb-softmmu/target/ppc/mmu_helper.o
CC ppcemb-softmmu/target/ppc/mmu-hash32.o
CC ppcemb-softmmu/target/ppc/monitor.o
CC ppcemb-softmmu/target/ppc/arch_dump.o
CC ppcemb-softmmu/target/ppc/kvm-stub.o
CC ppcemb-softmmu/target/ppc/dfp_helper.o
CC ppcemb-softmmu/target/ppc/excp_helper.o
CC ppcemb-softmmu/target/ppc/fpu_helper.o
CC ppcemb-softmmu/target/ppc/int_helper.o
CC ppcemb-softmmu/target/ppc/timebase_helper.o
CC ppcemb-softmmu/target/ppc/misc_helper.o
CC ppcemb-softmmu/target/ppc/mem_helper.o
CC ppcemb-softmmu/target/ppc/gdbstub.o
CC ppcemb-softmmu/target/ppc/../../libdecnumber/decContext.o
CC ppcemb-softmmu/target/ppc/../../libdecnumber/decNumber.o
CC ppcemb-softmmu/target/ppc/../../libdecnumber/dpd/decimal32.o
CC ppcemb-softmmu/target/ppc/../../libdecnumber/dpd/decimal64.o
CC ppcemb-softmmu/target/ppc/../../libdecnumber/dpd/decimal128.o
GEN trace/generated-helpers.c
CC ppcemb-softmmu/trace/control-target.o
CC ppcemb-softmmu/gdbstub-xml.o
CC ppcemb-softmmu/trace/generated-helpers.o
LINK ppcemb-softmmu/qemu-system-ppcemb
CC or1k-softmmu/target/openrisc/interrupt_helper.o
CC or1k-softmmu/target/openrisc/mmu_helper.o
GEN ppc-softmmu/hmp-commands.h
GEN ppc-softmmu/hmp-commands-info.h
CC or1k-softmmu/target/openrisc/sys_helper.o
GEN ppc-softmmu/config-target.h
CC ppc-softmmu/exec.o
CC or1k-softmmu/target/openrisc/gdbstub.o
GEN trace/generated-helpers.c
CC or1k-softmmu/trace/control-target.o
CC or1k-softmmu/trace/generated-helpers.o
LINK or1k-softmmu/qemu-system-or1k
CC ppc-softmmu/tcg/tcg.o
GEN s390x-softmmu/hmp-commands.h
GEN s390x-softmmu/hmp-commands-info.h
CC s390x-softmmu/gen-features
GEN s390x-softmmu/config-target.h
GEN s390x-softmmu/gen-features.h
CC s390x-softmmu/exec.o
CC ppc-softmmu/tcg/tcg-op.o
CC s390x-softmmu/tcg/tcg.o
CC ppc-softmmu/tcg/optimize.o
CC s390x-softmmu/tcg/tcg-op.o
CC ppc-softmmu/tcg/tcg-common.o
CC ppc-softmmu/fpu/softfloat.o
CC s390x-softmmu/tcg/optimize.o
CC s390x-softmmu/tcg/tcg-common.o
CC s390x-softmmu/fpu/softfloat.o
CC ppc-softmmu/disas.o
GEN ppc-softmmu/gdbstub-xml.c
CC ppc-softmmu/arch_init.o
CC ppc-softmmu/cpus.o
CC ppc-softmmu/monitor.o
CC s390x-softmmu/disas.o
GEN s390x-softmmu/gdbstub-xml.c
CC s390x-softmmu/arch_init.o
CC s390x-softmmu/cpus.o
CC ppc-softmmu/gdbstub.o
CC s390x-softmmu/monitor.o
CC ppc-softmmu/balloon.o
CC ppc-softmmu/ioport.o
CC ppc-softmmu/numa.o
CC ppc-softmmu/qtest.o
CC s390x-softmmu/gdbstub.o
CC ppc-softmmu/memory.o
CC s390x-softmmu/balloon.o
CC s390x-softmmu/ioport.o
CC s390x-softmmu/numa.o
CC ppc-softmmu/memory_mapping.o
CC s390x-softmmu/qtest.o
CC ppc-softmmu/dump.o
CC s390x-softmmu/memory.o
CC ppc-softmmu/migration/ram.o
CC s390x-softmmu/memory_mapping.o
CC ppc-softmmu/accel/accel.o
CC ppc-softmmu/accel/stubs/hax-stub.o
CC s390x-softmmu/dump.o
CC ppc-softmmu/accel/stubs/hvf-stub.o
CC ppc-softmmu/accel/stubs/kvm-stub.o
CC ppc-softmmu/accel/tcg/tcg-all.o
CC s390x-softmmu/migration/ram.o
CC ppc-softmmu/accel/tcg/cputlb.o
CC s390x-softmmu/accel/accel.o
CC s390x-softmmu/accel/kvm/kvm-all.o
CC ppc-softmmu/accel/tcg/tcg-runtime.o
CC s390x-softmmu/accel/stubs/hax-stub.o
CC ppc-softmmu/accel/tcg/cpu-exec.o
CC s390x-softmmu/accel/stubs/hvf-stub.o
CC s390x-softmmu/accel/tcg/tcg-all.o
CC s390x-softmmu/accel/tcg/cputlb.o
CC ppc-softmmu/accel/tcg/cpu-exec-common.o
CC ppc-softmmu/accel/tcg/translate-all.o
CC ppc-softmmu/accel/tcg/translator.o
CC ppc-softmmu/hw/9pfs/virtio-9p-device.o
CC ppc-softmmu/hw/block/virtio-blk.o
CC s390x-softmmu/accel/tcg/tcg-runtime.o
CC s390x-softmmu/accel/tcg/cpu-exec.o
CC ppc-softmmu/hw/block/vhost-user-blk.o
CC ppc-softmmu/hw/block/dataplane/virtio-blk.o
CC s390x-softmmu/accel/tcg/cpu-exec-common.o
CC s390x-softmmu/accel/tcg/translate-all.o
CC ppc-softmmu/hw/char/virtio-serial-bus.o
CC s390x-softmmu/accel/tcg/translator.o
CC ppc-softmmu/hw/core/generic-loader.o
CC s390x-softmmu/hw/9pfs/virtio-9p-device.o
CC ppc-softmmu/hw/core/null-machine.o
CC s390x-softmmu/hw/block/virtio-blk.o
CC ppc-softmmu/hw/display/sm501.o
CC s390x-softmmu/hw/block/vhost-user-blk.o
CC s390x-softmmu/hw/block/dataplane/virtio-blk.o
CC ppc-softmmu/hw/display/vga.o
CC s390x-softmmu/hw/char/virtio-serial-bus.o
CC s390x-softmmu/hw/char/terminal3270.o
CC ppc-softmmu/hw/display/virtio-gpu.o
CC s390x-softmmu/hw/core/generic-loader.o
CC s390x-softmmu/hw/core/null-machine.o
CC s390x-softmmu/hw/display/virtio-gpu.o
CC ppc-softmmu/hw/display/virtio-gpu-3d.o
CC s390x-softmmu/hw/display/virtio-gpu-3d.o
CC ppc-softmmu/hw/display/virtio-gpu-pci.o
CC ppc-softmmu/hw/i2c/ppc4xx_i2c.o
CC s390x-softmmu/hw/display/virtio-gpu-pci.o
CC ppc-softmmu/hw/misc/ivshmem.o
CC s390x-softmmu/hw/intc/s390_flic.o
CC ppc-softmmu/hw/misc/mmio_interface.o
CC s390x-softmmu/hw/intc/s390_flic_kvm.o
CC ppc-softmmu/hw/net/xilinx_ethlite.o
CC ppc-softmmu/hw/net/virtio-net.o
CC s390x-softmmu/hw/misc/mmio_interface.o
CC s390x-softmmu/hw/net/virtio-net.o
CC ppc-softmmu/hw/net/vhost_net.o
CC ppc-softmmu/hw/net/fsl_etsec/etsec.o
CC s390x-softmmu/hw/net/vhost_net.o
CC ppc-softmmu/hw/net/fsl_etsec/registers.o
CC s390x-softmmu/hw/net/rocker/qmp-norocker.o
CC ppc-softmmu/hw/net/fsl_etsec/rings.o
CC s390x-softmmu/hw/scsi/virtio-scsi.o
CC ppc-softmmu/hw/net/fsl_etsec/miim.o
CC ppc-softmmu/hw/scsi/virtio-scsi.o
CC s390x-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC s390x-softmmu/hw/scsi/vhost-scsi-common.o
CC ppc-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC s390x-softmmu/hw/scsi/vhost-scsi.o
CC ppc-softmmu/hw/scsi/vhost-scsi-common.o
CC s390x-softmmu/hw/scsi/vhost-user-scsi.o
CC ppc-softmmu/hw/scsi/vhost-scsi.o
CC s390x-softmmu/hw/vfio/common.o
CC ppc-softmmu/hw/scsi/vhost-user-scsi.o
CC ppc-softmmu/hw/timer/mc146818rtc.o
CC s390x-softmmu/hw/vfio/pci.o
CC ppc-softmmu/hw/vfio/common.o
CC ppc-softmmu/hw/vfio/pci.o
CC s390x-softmmu/hw/vfio/pci-quirks.o
CC s390x-softmmu/hw/vfio/ccw.o
CC ppc-softmmu/hw/vfio/pci-quirks.o
CC s390x-softmmu/hw/vfio/platform.o
CC ppc-softmmu/hw/vfio/platform.o
CC s390x-softmmu/hw/vfio/spapr.o
CC s390x-softmmu/hw/virtio/virtio.o
CC ppc-softmmu/hw/vfio/spapr.o
CC ppc-softmmu/hw/virtio/virtio.o
CC s390x-softmmu/hw/virtio/virtio-balloon.o
CC s390x-softmmu/hw/virtio/vhost.o
CC ppc-softmmu/hw/virtio/virtio-balloon.o
CC ppc-softmmu/hw/virtio/vhost.o
CC s390x-softmmu/hw/virtio/vhost-backend.o
CC s390x-softmmu/hw/virtio/vhost-user.o
CC ppc-softmmu/hw/virtio/vhost-backend.o
CC s390x-softmmu/hw/virtio/vhost-vsock.o
CC ppc-softmmu/hw/virtio/vhost-user.o
CC s390x-softmmu/hw/virtio/virtio-crypto.o
CC ppc-softmmu/hw/virtio/vhost-vsock.o
CC s390x-softmmu/hw/virtio/virtio-crypto-pci.o
CC ppc-softmmu/hw/virtio/virtio-crypto.o
CC s390x-softmmu/hw/s390x/s390-virtio-hcall.o
CC ppc-softmmu/hw/virtio/virtio-crypto-pci.o
CC s390x-softmmu/hw/s390x/sclp.o
CC ppc-softmmu/hw/ppc/ppc.o
CC s390x-softmmu/hw/s390x/event-facility.o
CC s390x-softmmu/hw/s390x/sclpquiesce.o
CC ppc-softmmu/hw/ppc/ppc_booke.o
CC s390x-softmmu/hw/s390x/sclpcpu.o
CC ppc-softmmu/hw/ppc/fdt.o
CC s390x-softmmu/hw/s390x/ipl.o
CC ppc-softmmu/hw/ppc/ppc405_boards.o
CC ppc-softmmu/hw/ppc/ppc4xx_devs.o
CC s390x-softmmu/hw/s390x/css.o
CC ppc-softmmu/hw/ppc/ppc405_uc.o
CC s390x-softmmu/hw/s390x/s390-virtio-ccw.o
CC ppc-softmmu/hw/ppc/ppc440_bamboo.o
CC ppc-softmmu/hw/ppc/ppc4xx_pci.o
CC s390x-softmmu/hw/s390x/3270-ccw.o
CC ppc-softmmu/hw/ppc/prep.o
CC ppc-softmmu/hw/ppc/prep_systemio.o
CC s390x-softmmu/hw/s390x/virtio-ccw.o
CC ppc-softmmu/hw/ppc/rs6000_mc.o
CC ppc-softmmu/hw/ppc/mac_oldworld.o
CC s390x-softmmu/hw/s390x/css-bridge.o
CC ppc-softmmu/hw/ppc/mac_newworld.o
CC s390x-softmmu/hw/s390x/ccw-device.o
CC ppc-softmmu/hw/ppc/e500.o
CC s390x-softmmu/hw/s390x/s390-pci-bus.o
CC ppc-softmmu/hw/ppc/mpc8544ds.o
CC s390x-softmmu/hw/s390x/s390-pci-inst.o
CC ppc-softmmu/hw/ppc/e500plat.o
CC ppc-softmmu/hw/ppc/mpc8544_guts.o
CC s390x-softmmu/hw/s390x/s390-skeys.o
CC ppc-softmmu/hw/ppc/ppce500_spin.o
CC s390x-softmmu/hw/s390x/s390-stattrib.o
CC ppc-softmmu/hw/ppc/virtex_ml507.o
CC s390x-softmmu/hw/s390x/s390-skeys-kvm.o
CC ppc-softmmu/target/ppc/cpu-models.o
CC s390x-softmmu/hw/s390x/s390-stattrib-kvm.o
CC s390x-softmmu/hw/s390x/s390-ccw.o
CC s390x-softmmu/target/s390x/cpu.o
CC s390x-softmmu/target/s390x/cpu_models.o
CC ppc-softmmu/target/ppc/cpu.o
CC s390x-softmmu/target/s390x/cpu_features.o
CC ppc-softmmu/target/ppc/translate.o
CC s390x-softmmu/target/s390x/gdbstub.o
CC s390x-softmmu/target/s390x/interrupt.o
CC s390x-softmmu/target/s390x/helper.o
CC s390x-softmmu/target/s390x/translate.o
CC s390x-softmmu/target/s390x/cc_helper.o
CC s390x-softmmu/target/s390x/excp_helper.o
CC s390x-softmmu/target/s390x/fpu_helper.o
CC s390x-softmmu/target/s390x/int_helper.o
CC s390x-softmmu/target/s390x/mem_helper.o
CC s390x-softmmu/target/s390x/misc_helper.o
CC s390x-softmmu/target/s390x/crypto_helper.o
CC s390x-softmmu/target/s390x/machine.o
CC s390x-softmmu/target/s390x/ioinst.o
CC s390x-softmmu/target/s390x/arch_dump.o
CC s390x-softmmu/target/s390x/mmu_helper.o
CC s390x-softmmu/target/s390x/diag.o
CC s390x-softmmu/target/s390x/sigp.o
CC s390x-softmmu/target/s390x/kvm.o
GEN trace/generated-helpers.c
CC s390x-softmmu/trace/control-target.o
CC s390x-softmmu/gdbstub-xml.o
CC s390x-softmmu/trace/generated-helpers.o
LINK s390x-softmmu/qemu-system-s390x
CC ppc-softmmu/target/ppc/machine.o
CC ppc64-softmmu/tcg/tcg.o
GEN sh4eb-softmmu/hmp-commands.h
GEN sh4eb-softmmu/hmp-commands-info.h
GEN sh4eb-softmmu/config-target.h
CC sh4eb-softmmu/exec.o
CC ppc64-softmmu/tcg/tcg-op.o
CC sh4eb-softmmu/tcg/tcg.o
CC ppc64-softmmu/tcg/optimize.o
CC sh4eb-softmmu/tcg/tcg-op.o
CC ppc64-softmmu/tcg/tcg-common.o
CC ppc64-softmmu/fpu/softfloat.o
CC sh4eb-softmmu/tcg/optimize.o
CC sh4eb-softmmu/tcg/tcg-common.o
CC sh4eb-softmmu/fpu/softfloat.o
CC ppc64-softmmu/disas.o
GEN ppc64-softmmu/gdbstub-xml.c
CC ppc64-softmmu/arch_init.o
CC ppc64-softmmu/cpus.o
CC ppc64-softmmu/monitor.o
CC sh4eb-softmmu/disas.o
CC sh4eb-softmmu/arch_init.o
CC sh4eb-softmmu/cpus.o
CC ppc64-softmmu/gdbstub.o
CC sh4eb-softmmu/monitor.o
CC ppc64-softmmu/balloon.o
CC ppc64-softmmu/ioport.o
CC ppc64-softmmu/numa.o
CC sh4eb-softmmu/gdbstub.o
CC ppc64-softmmu/qtest.o
CC ppc64-softmmu/memory.o
CC sh4eb-softmmu/balloon.o
CC sh4eb-softmmu/ioport.o
CC sh4eb-softmmu/numa.o
CC sh4eb-softmmu/qtest.o
CC ppc64-softmmu/memory_mapping.o
CC sh4eb-softmmu/memory.o
CC ppc64-softmmu/dump.o
CC ppc64-softmmu/migration/ram.o
CC sh4eb-softmmu/memory_mapping.o
CC sh4eb-softmmu/dump.o
CC ppc64-softmmu/accel/accel.o
CC ppc64-softmmu/accel/stubs/hax-stub.o
CC ppc64-softmmu/accel/stubs/hvf-stub.o
CC sh4eb-softmmu/migration/ram.o
CC ppc64-softmmu/accel/stubs/kvm-stub.o
CC ppc64-softmmu/accel/tcg/tcg-all.o
CC ppc64-softmmu/accel/tcg/cputlb.o
CC sh4eb-softmmu/accel/accel.o
CC sh4eb-softmmu/accel/stubs/hax-stub.o
CC sh4eb-softmmu/accel/stubs/hvf-stub.o
CC sh4eb-softmmu/accel/stubs/kvm-stub.o
CC sh4eb-softmmu/accel/tcg/tcg-all.o
CC sh4eb-softmmu/accel/tcg/cputlb.o
CC ppc64-softmmu/accel/tcg/tcg-runtime.o
CC ppc64-softmmu/accel/tcg/cpu-exec.o
CC ppc64-softmmu/accel/tcg/cpu-exec-common.o
CC ppc64-softmmu/accel/tcg/translate-all.o
CC sh4eb-softmmu/accel/tcg/tcg-runtime.o
CC ppc64-softmmu/accel/tcg/translator.o
CC sh4eb-softmmu/accel/tcg/cpu-exec.o
CC ppc64-softmmu/hw/9pfs/virtio-9p-device.o
CC sh4eb-softmmu/accel/tcg/cpu-exec-common.o
CC ppc64-softmmu/hw/block/virtio-blk.o
CC sh4eb-softmmu/accel/tcg/translate-all.o
CC sh4eb-softmmu/accel/tcg/translator.o
CC ppc64-softmmu/hw/block/vhost-user-blk.o
CC ppc64-softmmu/hw/block/dataplane/virtio-blk.o
CC sh4eb-softmmu/hw/9pfs/virtio-9p-device.o
CC sh4eb-softmmu/hw/block/tc58128.o
CC ppc64-softmmu/hw/char/spapr_vty.o
CC sh4eb-softmmu/hw/block/virtio-blk.o
CC ppc64-softmmu/hw/char/virtio-serial-bus.o
CC sh4eb-softmmu/hw/block/vhost-user-blk.o
CC ppc64-softmmu/hw/core/generic-loader.o
CC sh4eb-softmmu/hw/block/dataplane/virtio-blk.o
CC ppc64-softmmu/hw/core/null-machine.o
CC ppc64-softmmu/hw/display/sm501.o
CC sh4eb-softmmu/hw/char/sh_serial.o
CC sh4eb-softmmu/hw/char/virtio-serial-bus.o
CC ppc64-softmmu/hw/display/vga.o
CC sh4eb-softmmu/hw/core/generic-loader.o
CC sh4eb-softmmu/hw/core/null-machine.o
CC sh4eb-softmmu/hw/display/sm501.o
CC ppc64-softmmu/hw/display/virtio-gpu.o
CC sh4eb-softmmu/hw/display/vga.o
CC ppc64-softmmu/hw/display/virtio-gpu-3d.o
CC sh4eb-softmmu/hw/display/virtio-gpu.o
CC ppc64-softmmu/hw/display/virtio-gpu-pci.o
CC ppc64-softmmu/hw/display/virtio-vga.o
CC sh4eb-softmmu/hw/display/virtio-gpu-3d.o
CC ppc64-softmmu/hw/i2c/ppc4xx_i2c.o
CC ppc64-softmmu/hw/intc/xics.o
CC sh4eb-softmmu/hw/display/virtio-gpu-pci.o
CC ppc64-softmmu/hw/intc/xics_spapr.o
CC sh4eb-softmmu/hw/intc/sh_intc.o
CC ppc64-softmmu/hw/intc/xics_pnv.o
CC sh4eb-softmmu/hw/misc/ivshmem.o
CC ppc64-softmmu/hw/misc/ivshmem.o
CC sh4eb-softmmu/hw/misc/mmio_interface.o
CC ppc64-softmmu/hw/misc/mmio_interface.o
CC sh4eb-softmmu/hw/net/virtio-net.o
CC ppc64-softmmu/hw/net/spapr_llan.o
CC ppc64-softmmu/hw/net/xilinx_ethlite.o
CC sh4eb-softmmu/hw/net/vhost_net.o
CC ppc64-softmmu/hw/net/virtio-net.o
CC sh4eb-softmmu/hw/scsi/virtio-scsi.o
CC sh4eb-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC ppc64-softmmu/hw/net/vhost_net.o
CC sh4eb-softmmu/hw/scsi/vhost-scsi-common.o
CC ppc64-softmmu/hw/net/fsl_etsec/etsec.o
CC sh4eb-softmmu/hw/scsi/vhost-scsi.o
CC ppc64-softmmu/hw/net/fsl_etsec/registers.o
CC ppc64-softmmu/hw/net/fsl_etsec/rings.o
CC sh4eb-softmmu/hw/scsi/vhost-user-scsi.o
CC sh4eb-softmmu/hw/timer/sh_timer.o
CC ppc64-softmmu/hw/net/fsl_etsec/miim.o
CC ppc64-softmmu/hw/nvram/spapr_nvram.o
CC sh4eb-softmmu/hw/timer/mc146818rtc.o
CC ppc64-softmmu/hw/scsi/spapr_vscsi.o
CC sh4eb-softmmu/hw/vfio/common.o
CC ppc64-softmmu/hw/scsi/virtio-scsi.o
CC sh4eb-softmmu/hw/vfio/pci.o
CC ppc64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC ppc64-softmmu/hw/scsi/vhost-scsi-common.o
CC ppc64-softmmu/hw/scsi/vhost-scsi.o
CC sh4eb-softmmu/hw/vfio/pci-quirks.o
CC ppc64-softmmu/hw/scsi/vhost-user-scsi.o
CC ppc64-softmmu/hw/timer/mc146818rtc.o
CC sh4eb-softmmu/hw/vfio/platform.o
CC ppc64-softmmu/hw/vfio/common.o
CC sh4eb-softmmu/hw/vfio/spapr.o
CC sh4eb-softmmu/hw/virtio/virtio.o
CC ppc64-softmmu/hw/vfio/pci.o
CC sh4eb-softmmu/hw/virtio/virtio-balloon.o
CC ppc64-softmmu/hw/vfio/pci-quirks.o
CC sh4eb-softmmu/hw/virtio/vhost.o
CC ppc64-softmmu/hw/vfio/platform.o
CC ppc64-softmmu/hw/vfio/spapr.o
CC sh4eb-softmmu/hw/virtio/vhost-backend.o
CC ppc64-softmmu/hw/virtio/virtio.o
CC sh4eb-softmmu/hw/virtio/vhost-user.o
CC sh4eb-softmmu/hw/virtio/vhost-vsock.o
CC sh4eb-softmmu/hw/virtio/virtio-crypto.o
CC ppc64-softmmu/hw/virtio/virtio-balloon.o
CC sh4eb-softmmu/hw/virtio/virtio-crypto-pci.o
CC ppc64-softmmu/hw/virtio/vhost.o
CC sh4eb-softmmu/hw/sh4/shix.o
CC sh4eb-softmmu/hw/sh4/r2d.o
CC ppc64-softmmu/hw/virtio/vhost-backend.o
CC sh4eb-softmmu/hw/sh4/sh7750.o
CC ppc64-softmmu/hw/virtio/vhost-user.o
CC sh4eb-softmmu/hw/sh4/sh7750_regnames.o
CC sh4eb-softmmu/hw/sh4/sh_pci.o
CC ppc64-softmmu/hw/virtio/vhost-vsock.o
CC sh4eb-softmmu/target/sh4/translate.o
CC ppc64-softmmu/hw/virtio/virtio-crypto.o
CC ppc64-softmmu/hw/virtio/virtio-crypto-pci.o
CC ppc64-softmmu/hw/ppc/ppc.o
CC ppc64-softmmu/hw/ppc/ppc_booke.o
CC sh4eb-softmmu/target/sh4/op_helper.o
CC ppc64-softmmu/hw/ppc/fdt.o
/var/tmp/patchew-tester-tmp-z8zo58jf/src/target/sh4/op_helper.c: In function ‘superh_cpu_do_unaligned_access’:
/var/tmp/patchew-tester-tmp-z8zo58jf/src/target/sh4/op_helper.c:31:5: error: enumeration value ‘MMU_DEBUG_LOAD’ not handled in switch [-Werror=switch]
switch (access_type) {
^~~~~~
cc1: all warnings being treated as errors
make[1]: *** [/var/tmp/patchew-tester-tmp-z8zo58jf/src/rules.mak:66: target/sh4/op_helper.o] Error 1
make: *** [Makefile:391: subdir-sh4eb-softmmu] Error 2
make: *** Waiting for unfinished jobs....
CC ppc-softmmu/target/ppc/mmu_helper.o
CC ppc64-softmmu/hw/ppc/spapr.o
CC ppc-softmmu/target/ppc/mmu-hash32.o
CC ppc-softmmu/target/ppc/monitor.o
CC ppc-softmmu/target/ppc/arch_dump.o
CC ppc-softmmu/target/ppc/kvm-stub.o
CC ppc-softmmu/target/ppc/dfp_helper.o
CC ppc-softmmu/target/ppc/excp_helper.o
CC ppc64-softmmu/hw/ppc/spapr_caps.o
CC ppc-softmmu/target/ppc/fpu_helper.o
CC ppc64-softmmu/hw/ppc/spapr_vio.o
CC ppc-softmmu/target/ppc/int_helper.o
CC ppc64-softmmu/hw/ppc/spapr_events.o
CC ppc64-softmmu/hw/ppc/spapr_hcall.o
CC ppc64-softmmu/hw/ppc/spapr_iommu.o
CC ppc-softmmu/target/ppc/timebase_helper.o
CC ppc64-softmmu/hw/ppc/spapr_rtas.o
CC ppc-softmmu/target/ppc/misc_helper.o
CC ppc64-softmmu/hw/ppc/spapr_pci.o
CC ppc-softmmu/target/ppc/mem_helper.o
CC ppc-softmmu/target/ppc/gdbstub.o
CC ppc-softmmu/target/ppc/../../libdecnumber/decContext.o
CC ppc64-softmmu/hw/ppc/spapr_rtc.o
CC ppc-softmmu/target/ppc/../../libdecnumber/decNumber.o
CC ppc-softmmu/target/ppc/../../libdecnumber/dpd/decimal32.o
CC ppc64-softmmu/hw/ppc/spapr_drc.o
CC ppc-softmmu/target/ppc/../../libdecnumber/dpd/decimal64.o
CC ppc-softmmu/target/ppc/../../libdecnumber/dpd/decimal128.o
GEN trace/generated-helpers.c
CC ppc-softmmu/trace/control-target.o
CC ppc64-softmmu/hw/ppc/spapr_rng.o
CC ppc64-softmmu/hw/ppc/spapr_cpu_core.o
CC ppc64-softmmu/hw/ppc/spapr_ovec.o
CC ppc64-softmmu/hw/ppc/pnv.o
CC ppc64-softmmu/hw/ppc/pnv_xscom.o
CC ppc64-softmmu/hw/ppc/pnv_core.o
CC ppc64-softmmu/hw/ppc/pnv_lpc.o
CC ppc64-softmmu/hw/ppc/pnv_psi.o
CC ppc64-softmmu/hw/ppc/pnv_occ.o
CC ppc-softmmu/gdbstub-xml.o
CC ppc64-softmmu/hw/ppc/pnv_bmc.o
CC ppc64-softmmu/hw/ppc/spapr_pci_vfio.o
CC ppc-softmmu/trace/generated-helpers.o
CC ppc64-softmmu/hw/ppc/spapr_rtas_ddw.o
CC ppc64-softmmu/hw/ppc/ppc405_boards.o
CC ppc64-softmmu/hw/ppc/ppc4xx_devs.o
LINK ppc-softmmu/qemu-system-ppc
CC ppc64-softmmu/hw/ppc/ppc405_uc.o
CC ppc64-softmmu/hw/ppc/ppc440_bamboo.o
CC mips64-softmmu/accel/stubs/hax-stub.o
CC ppc64-softmmu/hw/ppc/ppc4xx_pci.o
CC mips64-softmmu/accel/stubs/hvf-stub.o
CC ppc64-softmmu/hw/ppc/prep.o
CC ppc64-softmmu/hw/ppc/prep_systemio.o
CC mips64-softmmu/accel/stubs/kvm-stub.o
CC ppc64-softmmu/hw/ppc/rs6000_mc.o
CC ppc64-softmmu/hw/ppc/mac_oldworld.o
CC mips64-softmmu/accel/tcg/tcg-all.o
CC ppc64-softmmu/hw/ppc/mac_newworld.o
CC mips64-softmmu/accel/tcg/cputlb.o
CC ppc64-softmmu/hw/ppc/e500.o
CC ppc64-softmmu/hw/ppc/mpc8544ds.o
CC ppc64-softmmu/hw/ppc/e500plat.o
CC ppc64-softmmu/hw/ppc/mpc8544_guts.o
CC mips64-softmmu/accel/tcg/tcg-runtime.o
CC mips64-softmmu/accel/tcg/cpu-exec.o
CC mips64-softmmu/accel/tcg/cpu-exec-common.o
CC mips64-softmmu/accel/tcg/translate-all.o
CC mips64-softmmu/accel/tcg/translator.o
CC mips64-softmmu/hw/9pfs/virtio-9p-device.o
CC mips64-softmmu/hw/block/virtio-blk.o
CC mips64-softmmu/hw/block/vhost-user-blk.o
CC mips64-softmmu/hw/block/dataplane/virtio-blk.o
CC ppc64-softmmu/hw/ppc/ppce500_spin.o
CC mips64-softmmu/hw/char/virtio-serial-bus.o
CC ppc64-softmmu/hw/ppc/virtex_ml507.o
CC mips64-softmmu/hw/core/generic-loader.o
CC ppc64-softmmu/target/ppc/cpu-models.o
CC ppc64-softmmu/target/ppc/cpu.o
CC ppc64-softmmu/target/ppc/translate.o
CC ppc64-softmmu/target/ppc/machine.o
CC ppc64-softmmu/target/ppc/mmu_helper.o
CC ppc64-softmmu/target/ppc/mmu-hash32.o
CC ppc64-softmmu/target/ppc/monitor.o
CC ppc64-softmmu/target/ppc/arch_dump.o
CC ppc64-softmmu/target/ppc/mmu-hash64.o
CC ppc64-softmmu/target/ppc/mmu-book3s-v3.o
CC ppc64-softmmu/target/ppc/compat.o
CC ppc64-softmmu/target/ppc/mmu-radix64.o
CC ppc64-softmmu/target/ppc/kvm-stub.o
CC ppc64-softmmu/target/ppc/dfp_helper.o
CC ppc64-softmmu/target/ppc/excp_helper.o
CC ppc64-softmmu/target/ppc/fpu_helper.o
CC ppc64-softmmu/target/ppc/int_helper.o
CC ppc64-softmmu/target/ppc/timebase_helper.o
CC ppc64-softmmu/target/ppc/misc_helper.o
CC ppc64-softmmu/target/ppc/mem_helper.o
CC ppc64-softmmu/target/ppc/gdbstub.o
CC ppc64-softmmu/target/ppc/../../libdecnumber/decContext.o
CC ppc64-softmmu/target/ppc/../../libdecnumber/decNumber.o
CC ppc64-softmmu/target/ppc/../../libdecnumber/dpd/decimal32.o
CC ppc64-softmmu/target/ppc/../../libdecnumber/dpd/decimal64.o
CC ppc64-softmmu/target/ppc/../../libdecnumber/dpd/decimal128.o
GEN trace/generated-helpers.c
CC ppc64-softmmu/trace/control-target.o
CC ppc64-softmmu/gdbstub-xml.o
CC ppc64-softmmu/trace/generated-helpers.o
CC mips64-softmmu/hw/core/null-machine.o
CC mips64-softmmu/hw/display/vga.o
CC mips64-softmmu/hw/display/virtio-gpu.o
CC mips64-softmmu/hw/display/virtio-gpu-3d.o
LINK ppc64-softmmu/qemu-system-ppc64
CC mips64-softmmu/hw/display/virtio-gpu-pci.o
CC mips64-softmmu/hw/intc/mips_gic.o
CC mips64-softmmu/hw/misc/ivshmem.o
CC mips64-softmmu/hw/misc/mips_cmgcr.o
CC mips64-softmmu/hw/misc/mips_cpc.o
CC mips64-softmmu/hw/misc/mips_itu.o
CC mips64-softmmu/hw/misc/mmio_interface.o
CC mips64-softmmu/hw/net/virtio-net.o
CC mips64-softmmu/hw/net/vhost_net.o
CC mips64-softmmu/hw/scsi/virtio-scsi.o
CC mips64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC mips64-softmmu/hw/scsi/vhost-scsi-common.o
CC mips64-softmmu/hw/scsi/vhost-scsi.o
CC mips64-softmmu/hw/scsi/vhost-user-scsi.o
CC mips64-softmmu/hw/timer/mips_gictimer.o
CC mips64-softmmu/hw/timer/mc146818rtc.o
CC mips64-softmmu/hw/vfio/common.o
CC mips64-softmmu/hw/vfio/pci.o
CC mips64-softmmu/hw/vfio/pci-quirks.o
CC mips64-softmmu/hw/vfio/platform.o
CC mips64-softmmu/hw/vfio/spapr.o
CC mips64-softmmu/hw/virtio/virtio.o
CC mips64-softmmu/hw/virtio/virtio-balloon.o
CC mips64-softmmu/hw/virtio/vhost.o
CC mips64-softmmu/hw/virtio/vhost-backend.o
CC mips64-softmmu/hw/virtio/vhost-user.o
CC mips64-softmmu/hw/virtio/vhost-vsock.o
CC mips64-softmmu/hw/virtio/virtio-crypto.o
CC mips64-softmmu/hw/virtio/virtio-crypto-pci.o
CC mips64-softmmu/hw/mips/mips_r4k.o
CC mips64-softmmu/hw/mips/mips_malta.o
CC mips64-softmmu/hw/mips/mips_mipssim.o
CC mips64-softmmu/hw/mips/addr.o
CC mips64-softmmu/hw/mips/mips_int.o
CC mips64-softmmu/hw/mips/mips_jazz.o
CC mips64-softmmu/hw/mips/gt64xxx_pci.o
CC mips64-softmmu/hw/mips/cps.o
CC mips64-softmmu/target/mips/translate.o
CC mips64-softmmu/target/mips/dsp_helper.o
CC mips64-softmmu/target/mips/op_helper.o
CC mips64-softmmu/target/mips/lmi_helper.o
CC mips64-softmmu/target/mips/helper.o
CC mips64-softmmu/target/mips/cpu.o
CC mips64-softmmu/target/mips/gdbstub.o
CC mips64-softmmu/target/mips/msa_helper.o
CC mips64-softmmu/target/mips/mips-semi.o
CC mips64-softmmu/target/mips/machine.o
CC mips64-softmmu/target/mips/cp0_timer.o
GEN trace/generated-helpers.c
CC mips64-softmmu/trace/control-target.o
CC mips64-softmmu/trace/generated-helpers.o
LINK mips64-softmmu/qemu-system-mips64
=== OUTPUT END ===
Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [Qemu-devel] [PULL 00/43] Add hppa-softmmu
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (44 preceding siblings ...)
2018-01-22 4:38 ` no-reply
@ 2018-01-22 4:57 ` no-reply
2018-01-23 10:14 ` Peter Maydell
46 siblings, 0 replies; 48+ messages in thread
From: no-reply @ 2018-01-22 4:57 UTC (permalink / raw)
To: richard.henderson; +Cc: famz, qemu-devel, peter.maydell
Hi,
This series failed build test on ppc host. Please find the details below.
Message-id: 20180122034217.19593-1-richard.henderson@linaro.org
Type: series
Subject: [Qemu-devel] [PULL 00/43] Add hppa-softmmu
=== TEST SCRIPT BEGIN ===
#!/bin/bash
# Testing script will be invoked under the git checkout with
# HEAD pointing to a commit that has the patches applied on top of "base"
# branch
set -e
echo "=== ENV ==="
env
echo "=== PACKAGES ==="
rpm -qa
echo "=== TEST BEGIN ==="
INSTALL=$PWD/install
BUILD=$PWD/build
mkdir -p $BUILD $INSTALL
SRC=$PWD
cd $BUILD
$SRC/configure --prefix=$INSTALL
make -j100
# XXX: we need reliable clean up
# make check -j100 V=1
make install
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
- [tag update] patchew/20180119114444.7590-1-laurent@vivier.eu -> patchew/20180119114444.7590-1-laurent@vivier.eu
* [new tag] patchew/20180122034217.19593-1-richard.henderson@linaro.org -> patchew/20180122034217.19593-1-richard.henderson@linaro.org
Submodule 'capstone' (git://git.qemu.org/capstone.git) registered for path 'capstone'
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Submodule 'roms/QemuMacDrivers' (git://git.qemu.org/QemuMacDrivers.git) registered for path 'roms/QemuMacDrivers'
Submodule 'roms/SLOF' (git://git.qemu-project.org/SLOF.git) registered for path 'roms/SLOF'
Submodule 'roms/ipxe' (git://git.qemu-project.org/ipxe.git) registered for path 'roms/ipxe'
Submodule 'roms/openbios' (git://git.qemu-project.org/openbios.git) registered for path 'roms/openbios'
Submodule 'roms/openhackware' (git://git.qemu-project.org/openhackware.git) registered for path 'roms/openhackware'
Submodule 'roms/qemu-palcode' (git://github.com/rth7680/qemu-palcode.git) registered for path 'roms/qemu-palcode'
Submodule 'roms/seabios' (git://git.qemu-project.org/seabios.git/) registered for path 'roms/seabios'
Submodule 'roms/sgabios' (git://git.qemu-project.org/sgabios.git) registered for path 'roms/sgabios'
Submodule 'roms/skiboot' (git://git.qemu.org/skiboot.git) registered for path 'roms/skiboot'
Submodule 'roms/u-boot' (git://git.qemu-project.org/u-boot.git) registered for path 'roms/u-boot'
Submodule 'roms/vgabios' (git://git.qemu-project.org/vgabios.git/) registered for path 'roms/vgabios'
Submodule 'ui/keycodemapdb' (git://git.qemu.org/keycodemapdb.git) registered for path 'ui/keycodemapdb'
Cloning into 'capstone'...
Submodule path 'capstone': checked out '22ead3e0bfdb87516656453336160e0a37b066bf'
Cloning into 'dtc'...
Submodule path 'dtc': checked out 'e54388015af1fb4bf04d0bca99caba1074d9cc42'
Cloning into 'roms/QemuMacDrivers'...
Submodule path 'roms/QemuMacDrivers': checked out 'd4e7d7ac663fcb55f1b93575445fcbca372f17a7'
Cloning into 'roms/SLOF'...
Submodule path 'roms/SLOF': checked out 'fa981320a1e0968d6fc1b8de319723ff8212b337'
Cloning into 'roms/ipxe'...
Submodule path 'roms/ipxe': checked out '0600d3ae94f93efd10fc6b3c7420a9557a3a1670'
Cloning into 'roms/openbios'...
Submodule path 'roms/openbios': checked out '83818bdb4460170621d789429ad5a75e8c73efd1'
Cloning into 'roms/openhackware'...
Submodule path 'roms/openhackware': checked out 'c559da7c8eec5e45ef1f67978827af6f0b9546f5'
Cloning into 'roms/qemu-palcode'...
Submodule path 'roms/qemu-palcode': checked out 'f3c7e44c70254975df2a00af39701eafbac4d471'
Cloning into 'roms/seabios'...
Submodule path 'roms/seabios': checked out '63451fca13c75870e1703eb3e20584d91179aebc'
Cloning into 'roms/sgabios'...
Submodule path 'roms/sgabios': checked out 'cbaee52287e5f32373181cff50a00b6c4ac9015a'
Cloning into 'roms/skiboot'...
Submodule path 'roms/skiboot': checked out 'e0ee24c27a172bcf482f6f2bc905e6211c134bcc'
Cloning into 'roms/u-boot'...
Submodule path 'roms/u-boot': checked out 'd85ca029f257b53a96da6c2fb421e78a003a9943'
Cloning into 'roms/vgabios'...
Submodule path 'roms/vgabios': checked out '19ea12c230ded95928ecaef0db47a82231c2e485'
Cloning into 'ui/keycodemapdb'...
Submodule path 'ui/keycodemapdb': checked out '10739aa26051a5d49d88132604539d3ed085e72e'
Switched to a new branch 'test'
1687407 hw/hppa: Add MAINTAINERS entry
a144cee pc-bios: Add hppa-firmware.img and git submodule
262baa1 hw/hppa: Implement DINO system board
861011f target/hppa: Enable MTTCG
a33c2a9 target/hppa: Implement STWA
a0bd1a1 target/hppa: Implement a pause instruction
dd8a2f5 target/hppa: Implement LDSID for system mode
bf83305 target/hppa: Fix comment
6573d13 target/hppa: Increase number of temp regs
233d10f target/hppa: Use MMU_DEBUG_LOAD when reloading for CR[IIR]
1e7e106 qom: Add MMU_DEBUG_LOAD
093de55 target/hppa: Only use EXCP_DTLB_MISS
abd6694 target/hppa: Implement B,GATE insn
488f643 target/hppa: Add migration for the cpu
9175ea3 target/hppa: Add system registers to gdbstub
5035093 target/hppa: Optimize for flat addressing space
a8b3128 target/hppa: Implement halt and reset instructions
2776293 target/hppa: Implement SYNCDMA insn
024b754 target/hppa: Implement LCI
f6ef83d target/hppa: Implement LPA
19a9042 target/hppa: Implement LDWA
1b1df00 target/hppa: Implement P*TLB and P*TLBE insns
40465b8 target/hppa: Implement I*TLBA and I*TLBP insns
e4f0fee target/hppa: Log unimplemented instructions
98ca5d9 target/hppa: Implement the interval timer
8d37382 target/hppa: Implement external interrupts
cd7c359 target/hppa: Implement tlb_fill
c9f5837 target/hppa: Implement IASQ
29ee03e target/hppa: Avoid privilege level decrease during branches
dfa9805 target/hppa: Use space registers in data operations
501224b target/hppa: Implement unaligned access trap
c4bc1ab target/hppa: Fill in hppa_cpu_do_interrupt/hppa_cpu_exec_interrupt
0986e07 target/hppa: Implement rfi
d0ca2d6 target/hppa: Adjust insn mask for mfctl, w
41b110f target/hppa: Add control registers
071ae8c target/hppa: Add space registers
7e834d9 target/hppa: Implement the system mask instructions
9520134 target/hppa: Implement mmu_idx from IA privilege level
b190bfe target/hppa: Split address size from register size
c20827c target/hppa: Define hardware exception types
56fea7d target/hppa: Disable gateway page emulation for system mode
264997a target/hppa: Define the rest of the PSW
d333744 target/hppa: Skeleton support for hppa-softmmu
=== OUTPUT BEGIN ===
=== ENV ===
XDG_SESSION_ID=149680
SHELL=/bin/sh
USER=patchew
PATCHEW=/home/patchew/patchew/patchew-cli -s http://patchew.org --nodebug
PATH=/usr/bin:/bin
PWD=/var/tmp/patchew-tester-tmp-c1l637im/src
LANG=en_US.UTF-8
HOME=/home/patchew
SHLVL=2
LOGNAME=patchew
XDG_RUNTIME_DIR=/run/user/1000
_=/usr/bin/env
=== PACKAGES ===
plymouth-core-libs-0.8.9-0.28.20140113.el7.centos.ppc64le
vim-common-7.4.160-2.el7.ppc64le
perl-Test-Simple-0.98-243.el7.noarch
hplip-common-3.15.9-3.el7.ppc64le
valgrind-3.12.0-8.el7.ppc64le
gamin-0.1.10-16.el7.ppc64le
libpeas-loader-python-1.20.0-1.el7.ppc64le
telepathy-filesystem-0.0.2-6.el7.noarch
colord-libs-1.3.4-1.el7.ppc64le
kbd-legacy-1.15.5-13.el7.noarch
perl-CPAN-Meta-YAML-0.008-14.el7.noarch
libvirt-daemon-driver-nwfilter-3.2.0-14.el7.ppc64le
ntsysv-1.7.4-1.el7.ppc64le
kernel-bootwrapper-3.10.0-693.el7.ppc64le
telepathy-farstream-0.6.0-5.el7.ppc64le
kdenetwork-common-4.10.5-8.el7_0.noarch
elfutils-devel-0.168-8.el7.ppc64le
pm-utils-1.4.1-27.el7.ppc64le
perl-Error-0.17020-2.el7.noarch
usbmuxd-1.1.0-1.el7.ppc64le
bzip2-devel-1.0.6-13.el7.ppc64le
blktrace-1.0.5-8.el7.ppc64le
gnome-keyring-pam-3.20.0-3.el7.ppc64le
tzdata-java-2017b-1.el7.noarch
perl-devel-5.16.3-292.el7.ppc64le
gnome-getting-started-docs-3.22.0-1.el7.noarch
perl-Log-Message-Simple-0.10-2.el7.noarch
totem-pl-parser-3.10.7-1.el7.ppc64le
lohit-oriya-fonts-2.5.4.1-3.el7.noarch
python-coverage-3.6-0.5.b3.el7.ppc64le
java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.ppc64le
mailcap-2.1.41-2.el7.noarch
perl-CPANPLUS-0.91.38-4.el7.noarch
fprintd-pam-0.5.0-4.0.el7_0.ppc64le
less-458-9.el7.ppc64le
gupnp-igd-0.2.4-1.el7.ppc64le
thai-scalable-waree-fonts-0.5.0-7.el7.noarch
python-di-0.3-2.el7.noarch
yelp-libs-3.22.0-1.el7.ppc64le
vte-profile-0.46.2-1.el7.ppc64le
gpm-libs-1.20.7-5.el7.ppc64le
gnome-clocks-3.22.1-1.el7.ppc64le
p11-kit-trust-0.23.5-3.el7.ppc64le
gssproxy-0.7.0-4.el7.ppc64le
gnu-free-mono-fonts-20120503-8.el7.noarch
python-dateutil-1.5-7.el7.noarch
gucharmap-libs-3.18.2-1.el7.ppc64le
glibc-common-2.17-196.el7.ppc64le
libreport-plugin-mantisbt-2.1.11-38.el7.centos.ppc64le
motif-devel-2.3.4-8.1.el7_3.ppc64le
celt051-0.5.1.3-8.el7.ppc64le
radvd-1.9.2-9.el7.ppc64le
lohit-tamil-fonts-2.5.3-2.el7.noarch
python-ipaddress-1.0.16-2.el7.noarch
anaconda-widgets-21.48.22.121-1.el7.centos.ppc64le
zlib-1.2.7-17.el7.ppc64le
system-config-printer-1.4.1-19.el7.ppc64le
mozjs24-24.2.0-7.el7.ppc64le
device-mapper-multipath-libs-0.4.9-111.el7.ppc64le
wqy-microhei-fonts-0.2.0-0.12.beta.el7.noarch
python-schedutils-0.4-6.el7.ppc64le
gnome-bluetooth-3.20.1-1.el7.ppc64le
nss-util-3.28.4-3.el7.ppc64le
dotconf-1.3-8.el7.ppc64le
ibus-rawcode-1.3.2-3.el7.ppc64le
abattis-cantarell-fonts-0.0.25-1.el7.noarch
sssd-common-1.15.2-50.el7.ppc64le
sil-padauk-fonts-2.8-5.el7.noarch
bind-utils-9.9.4-50.el7.ppc64le
sox-14.4.1-6.el7.ppc64le
libSM-1.2.2-2.el7.ppc64le
libtiff-devel-4.0.3-27.el7_3.ppc64le
plymouth-system-theme-0.8.9-0.28.20140113.el7.centos.ppc64le
python-libs-2.7.5-58.el7.ppc64le
sssd-1.15.2-50.el7.ppc64le
rfkill-0.4-9.el7.ppc64le
cyrus-sasl-md5-2.1.26-21.el7.ppc64le
libXtst-devel-1.2.3-1.el7.ppc64le
avahi-libs-0.6.31-17.el7.ppc64le
ruby-2.0.0.648-30.el7.ppc64le
seahorse-3.20.0-1.el7.ppc64le
python-six-1.9.0-2.el7.noarch
gpgme-1.3.2-5.el7.ppc64le
iwl7260-firmware-22.0.7.0-56.el7.noarch
libsss_certmap-1.15.2-50.el7.ppc64le
xorg-x11-drv-wacom-0.34.2-2.el7.ppc64le
libXau-1.0.8-2.1.el7.ppc64le
shadow-utils-4.1.5.1-24.el7.ppc64le
evolution-ews-3.22.6-6.el7.ppc64le
libsecret-0.18.5-2.el7.ppc64le
perl-Module-Signature-0.73-2.el7.noarch
rootfiles-8.1-11.el7.noarch
trace-cmd-2.6.0-8.el7.ppc64le
hamcrest-1.3-6.el7.noarch
gawk-4.0.2-4.el7_3.1.ppc64le
usermode-1.111-5.el7.ppc64le
gnome-terminal-nautilus-3.22.1-2.el7.ppc64le
gvfs-client-1.30.4-3.el7.ppc64le
yum-utils-1.1.31-42.el7.noarch
iwl3945-firmware-15.32.2.9-56.el7.noarch
perl-Archive-Zip-1.30-11.el7.noarch
spice-glib-0.33-6.el7.ppc64le
augeas-libs-1.4.0-2.el7.ppc64le
openlmi-providers-0.5.0-4.el7.ppc64le
gnome-color-manager-3.22.2-1.el7.ppc64le
imsettings-libs-1.6.3-9.el7.ppc64le
nss-softokn-devel-3.28.3-6.el7.ppc64le
python34-3.4.5-4.el7.ppc64le
perl-DBI-1.627-4.el7.ppc64le
plymouth-plugin-label-0.8.9-0.28.20140113.el7.centos.ppc64le
binutils-2.25.1-31.base.el7.ppc64le
libsss_nss_idmap-1.15.2-50.el7.ppc64le
gvfs-smb-1.30.4-3.el7.ppc64le
freetype-devel-2.4.11-15.el7.ppc64le
libXi-1.7.9-1.el7.ppc64le
libitm-4.8.5-16.el7_4.1.ppc64le
perl-Text-Diff-1.41-5.el7.noarch
gcr-devel-3.20.0-1.el7.ppc64le
numactl-libs-2.0.9-6.el7_2.ppc64le
hardlink-1.0-19.el7.ppc64le
gnome-disk-utility-3.22.1-1.el7.ppc64le
mariadb-libs-5.5.56-2.el7.ppc64le
libnotify-0.7.7-1.el7.ppc64le
perl-TimeDate-2.30-2.el7.noarch
soprano-devel-2.9.2-3.el7.ppc64le
pixman-0.34.0-1.el7.ppc64le
kmod-20-15.el7.ppc64le
qt3-PostgreSQL-3.3.8b-51.el7.ppc64le
python2-pyasn1-0.1.9-7.el7.noarch
libXt-1.1.5-3.el7.ppc64le
perl-Font-AFM-1.20-13.el7.noarch
ibus-1.5.3-13.el7.ppc64le
findutils-4.5.11-5.el7.ppc64le
ibus-libs-1.5.3-13.el7.ppc64le
iprutils-2.4.14.1-1.el7.ppc64le
libpwquality-1.2.3-4.el7.ppc64le
libXrender-devel-0.9.10-1.el7.ppc64le
perl-IO-stringy-2.110-22.el7.noarch
kdelibs-4.14.8-6.el7_3.ppc64le
flac-libs-1.3.0-5.el7_1.ppc64le
device-mapper-event-libs-1.02.140-8.el7.ppc64le
gnutls-devel-3.3.26-9.el7.ppc64le
libXau-devel-1.0.8-2.1.el7.ppc64le
gstreamer1-plugins-base-1.10.4-1.el7.ppc64le
perl-HTML-Tree-5.03-2.el7.noarch
kdenetwork-kopete-4.10.5-8.el7_0.ppc64le
libepoxy-1.3.1-1.el7.ppc64le
mesa-libGLES-17.0.1-6.20170307.el7.ppc64le
qt-postgresql-4.8.5-13.el7.ppc64le
fontconfig-devel-2.10.95-11.el7.ppc64le
java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.ppc64le
libXfont-1.5.2-1.el7.ppc64le
libkexiv2-4.10.5-3.el7.ppc64le
openjpeg-libs-1.5.1-17.el7.ppc64le
iscsi-initiator-utils-6.2.0.874-4.el7.ppc64le
NetworkManager-adsl-1.8.0-9.el7.ppc64le
libgtop2-2.34.2-1.el7.ppc64le
libXdamage-devel-1.1.4-4.1.el7.ppc64le
ipset-libs-6.29-1.el7.ppc64le
kde-runtime-drkonqi-4.10.5-8.el7.ppc64le
e2fsprogs-libs-1.42.9-10.el7.ppc64le
dhclient-4.2.5-58.el7.centos.ppc64le
usbutils-007-5.el7.ppc64le
python-ethtool-0.8-5.el7.ppc64le
gstreamer1-plugins-bad-free-1.10.4-2.el7.ppc64le
fftw-libs-double-3.3.3-8.el7.ppc64le
kdenetwork-krdc-4.10.5-8.el7_0.ppc64le
fuse-libs-2.9.2-8.el7.ppc64le
pciutils-3.5.1-2.el7.ppc64le
at-3.1.13-22.el7.ppc64le
python-IPy-0.75-6.el7.noarch
libXp-1.0.2-2.1.el7.ppc64le
vim-minimal-7.4.160-2.el7.ppc64le
kdesdk-kmtrace-4.10.5-6.el7.ppc64le
libraw1394-2.1.0-2.el7.ppc64le
libdrm-devel-2.4.74-1.el7.ppc64le
irqbalance-1.0.7-10.el7.ppc64le
fipscheck-lib-1.4.1-6.el7.ppc64le
gvfs-1.30.4-3.el7.ppc64le
libiscsi-1.9.0-7.el7.ppc64le
motif-2.3.4-8.1.el7_3.ppc64le
keyutils-1.5.8-3.el7.ppc64le
NetworkManager-ppp-1.8.0-9.el7.ppc64le
systemtap-3.1-3.el7.ppc64le
boost-serialization-1.53.0-27.el7.ppc64le
grilo-0.3.3-1.el7.ppc64le
rpm-4.11.3-25.el7.ppc64le
kdegraphics-libs-4.10.5-3.el7.noarch
libfontenc-1.1.3-3.el7.ppc64le
perl-Git-1.8.3.1-11.el7.noarch
rubygem-abrt-0.3.0-1.el7.noarch
tcl-8.5.13-8.el7.ppc64le
gtksourceview3-3.22.2-1.el7.ppc64le
cmake-2.8.12.2-2.el7.ppc64le
pulseaudio-utils-10.0-3.el7.ppc64le
libusal-1.1.11-23.el7.ppc64le
grub2-ppc64le-2.02-0.64.el7.centos.ppc64le
libreport-plugin-mailx-2.1.11-38.el7.centos.ppc64le
libvisual-0.4.0-16.el7.ppc64le
metacity-2.34.13-7.el7.ppc64le
redland-virtuoso-1.0.16-6.el7.ppc64le
nautilus-3.22.3-3.el7.ppc64le
pciutils-libs-3.5.1-2.el7.ppc64le
soprano-2.9.2-3.el7.ppc64le
mariadb-devel-5.5.56-2.el7.ppc64le
libxkbcommon-x11-0.7.1-1.el7.ppc64le
farstream02-0.2.3-3.el7.ppc64le
redhat-rpm-config-9.1.0-76.el7.centos.noarch
skkdic-20130104-6.T1435.el7.noarch
perl-HTTP-Tiny-0.033-3.el7.noarch
lvm2-libs-2.02.171-8.el7.ppc64le
perl-XML-Grove-0.46alpha-52.el7.noarch
boost-devel-1.53.0-27.el7.ppc64le
pycairo-1.8.10-8.el7.ppc64le
popt-devel-1.13-16.el7.ppc64le
gnome-settings-daemon-3.22.2-5.el7.ppc64le
perl-Socket-2.010-4.el7.ppc64le
numad-0.5-17.20150602git.el7.ppc64le
e2fsprogs-devel-1.42.9-10.el7.ppc64le
libsecret-devel-0.18.5-2.el7.ppc64le
libXv-devel-1.0.11-1.el7.ppc64le
libchewing-0.3.4-6.el7.ppc64le
gnome-shell-extension-places-menu-3.22.2-10.el7.noarch
perl-Time-HiRes-1.9725-3.el7.ppc64le
openchange-2.3-2.el7.ppc64le
audit-libs-devel-2.7.6-3.el7.ppc64le
python-dmidecode-3.12.2-1.el7.ppc64le
libmediaart-1.9.1-1.el7.ppc64le
elfutils-default-yama-scope-0.168-8.el7.noarch
quota-4.01-14.el7.ppc64le
perl-threads-1.87-4.el7.ppc64le
realmd-0.16.1-9.el7.ppc64le
nautilus-sendto-3.8.4-1.el7.ppc64le
gstreamer-0.10.36-7.el7.ppc64le
cairo-gobject-devel-1.14.8-2.el7.ppc64le
abrt-libs-2.1.11-48.el7.centos.ppc64le
libvirt-daemon-driver-storage-iscsi-3.2.0-14.el7.ppc64le
perl-Pod-Parser-1.61-2.el7.noarch
python-devel-2.7.5-58.el7.ppc64le
mpfr-devel-3.1.1-4.el7.ppc64le
kernel-headers-3.10.0-693.el7.ppc64le
powerpc-utils-python-1.2.1-9.el7.noarch
linux-firmware-20170606-56.gitc990aae.el7.noarch
libqmi-1.16.0-1.el7.ppc64le
libvirt-libs-3.2.0-14.el7.ppc64le
perl-Digest-1.17-245.el7.noarch
libgcab1-0.7-3.el7.ppc64le
flex-2.5.37-3.el7.ppc64le
tzdata-2017b-1.el7.noarch
phonon-4.6.0-10.el7.ppc64le
anaconda-tui-21.48.22.121-1.el7.centos.ppc64le
libmbim-utils-1.14.0-2.el7.ppc64le
gnutls-utils-3.3.26-9.el7.ppc64le
perl-Parse-CPAN-Meta-1.4404-5.el7.noarch
flite-1.3-22.el7.ppc64le
nfs4-acl-tools-0.3.3-15.el7.ppc64le
poppler-data-0.4.6-3.el7.noarch
gvfs-fuse-1.30.4-3.el7.ppc64le
gnome-software-3.22.7-1.el7.ppc64le
perl-ExtUtils-ParseXS-3.18-3.el7.noarch
libvirt-python-3.2.0-3.el7.ppc64le
perl-Module-Load-Conditional-0.54-3.el7.noarch
python-netifaces-0.10.4-3.el7.ppc64le
swig-2.0.10-5.el7.ppc64le
ipa-client-common-4.5.0-20.el7.centos.noarch
cheese-libs-3.22.1-1.el7.ppc64le
gnome-tweak-tool-3.22.0-1.el7.noarch
perl-ExtUtils-CBuilder-0.28.2.6-292.el7.noarch
libsoup-devel-2.56.0-3.el7.ppc64le
perl-IO-Zlib-1.10-292.el7.noarch
fros-1.0-2.el7.noarch
lohit-devanagari-fonts-2.5.3-4.el7.noarch
grub2-ppc64le-modules-2.02-0.64.el7.centos.noarch
libgdata-0.17.8-1.el7.ppc64le
evince-nautilus-3.22.1-5.el7.ppc64le
perl-ExtUtils-Embed-1.30-292.el7.noarch
dleyna-connector-dbus-0.2.0-2.el7.ppc64le
libiec61883-1.2.0-10.el7.ppc64le
python-lxml-3.2.1-4.el7.ppc64le
liberation-serif-fonts-1.07.2-15.el7.noarch
tigervnc-license-1.8.0-1.el7.noarch
gnome-packagekit-3.22.1-2.el7.ppc64le
hpijs-3.15.9-3.el7.ppc64le
libmodman-2.0.1-8.el7.ppc64le
ntp-4.2.6p5-25.el7.centos.2.ppc64le
gmp-devel-6.0.0-15.el7.ppc64le
pyxattr-0.5.1-5.el7.ppc64le
sil-abyssinica-fonts-1.200-6.el7.noarch
ncurses-libs-5.9-13.20130511.el7.ppc64le
gnome-dictionary-libs-3.20.0-1.el7.ppc64le
kdesdk-devel-4.10.5-6.el7.ppc64le
libreport-rhel-anaconda-bugzilla-2.1.11-38.el7.centos.ppc64le
libvirt-daemon-config-network-3.2.0-14.el7.ppc64le
boost-iostreams-1.53.0-27.el7.ppc64le
python-ply-3.4-11.el7.noarch
ucs-miscfixed-fonts-0.3-11.el7.noarch
info-5.1-4.el7.ppc64le
libXxf86misc-devel-1.0.3-7.1.el7.ppc64le
ibus-qt-1.3.2-4.el7.ppc64le
gnome-video-effects-0.4.3-1.el7.noarch
bridge-utils-1.5-9.el7.ppc64le
make-3.82-23.el7.ppc64le
pywbem-0.7.0-25.20130827svn625.el7.noarch
pnm2ppa-1.04-28.el7.ppc64le
chkconfig-1.7.4-1.el7.ppc64le
at-spi2-atk-devel-2.22.0-2.el7.ppc64le
freeglut-devel-2.8.1-3.el7.ppc64le
jbigkit-libs-2.0-11.el7.ppc64le
sssd-ipa-1.15.2-50.el7.ppc64le
openssl-libs-1.0.2k-8.el7.ppc64le
ldns-1.6.16-10.el7.ppc64le
rdate-1.4-25.el7.ppc64le
libdb-5.3.21-20.el7.ppc64le
evince-libs-3.22.1-5.el7.ppc64le
empathy-3.12.12-4.el7.ppc64le
rubygem-json-1.7.7-30.el7.ppc64le
dmraid-1.0.0.rc16-28.el7.ppc64le
libblkid-2.23.2-43.el7.ppc64le
logrotate-3.8.6-14.el7.ppc64le
iwl105-firmware-18.168.6.1-56.el7.noarch
grep-2.20-3.el7.ppc64le
xorg-x11-drv-synaptics-1.9.0-1.el7.ppc64le
iowatcher-1.0-6.el7.ppc64le
rubygem-net-http-persistent-2.8-5.el7.noarch
setroubleshoot-plugins-3.0.65-1.el7.noarch
atk-2.22.0-3.el7.ppc64le
libcacard-2.5.2-2.el7.ppc64le
iwl6050-firmware-41.28.5.1-56.el7.noarch
lcms2-2.6-3.el7.ppc64le
tigervnc-server-minimal-1.8.0-1.el7.ppc64le
gvfs-goa-1.30.4-3.el7.ppc64le
authconfig-6.2.8-30.el7.ppc64le
yum-plugin-fastestmirror-1.1.31-42.el7.noarch
dbus-python-1.1.1-9.el7.ppc64le
perl-Archive-Tar-1.92-2.el7.noarch
iwl5000-firmware-8.83.5.1_1-56.el7.noarch
libacl-2.2.51-12.el7.ppc64le
farstream-0.1.2-8.el7.ppc64le
ppc64-utils-0.14-16.el7.ppc64le
servicelog-1.1.14-3.el7.ppc64le
python2-ipaclient-4.5.0-20.el7.centos.noarch
libpeas-1.20.0-1.el7.ppc64le
perl-TermReadKey-2.30-20.el7.ppc64le
hdparm-9.43-5.el7.ppc64le
libicu-50.1.2-15.el7.ppc64le
polkit-qt-0.103.0-10.el7_0.ppc64le
gnome-weather-3.20.2-1.el7.noarch
libmspack-0.5-0.5.alpha.el7.ppc64le
libkkc-data-0.3.1-9.el7.ppc64le
hicolor-icon-theme-0.12-7.el7.noarch
perl-Newt-1.08-36.el7.ppc64le
libstdc++-devel-4.8.5-16.el7_4.1.ppc64le
libexif-0.6.21-6.el7.ppc64le
gtk3-devel-3.22.10-4.el7.ppc64le
gvfs-mtp-1.30.4-3.el7.ppc64le
ncompress-4.2.4.4-3.el7.ppc64le
libXcomposite-0.4.4-4.1.el7.ppc64le
python-decorator-3.4.0-3.el7.noarch
perl-Business-ISBN-Data-20120719.001-2.el7.noarch
gcc-gfortran-4.8.5-16.el7_4.1.ppc64le
cpio-2.11-24.el7.ppc64le
mesa-libGLU-9.0.0-4.el7.ppc64le
baobab-3.22.1-1.el7.ppc64le
device-mapper-libs-1.02.140-8.el7.ppc64le
libXtst-1.2.3-1.el7.ppc64le
ModemManager-glib-1.6.0-2.el7.ppc64le
perl-HTML-Parser-3.71-4.el7.ppc64le
libical-1.0.1-1.el7.ppc64le
xorg-x11-xinit-1.3.4-1.el7.ppc64le
gstreamer1-plugins-base-devel-1.10.4-1.el7.ppc64le
libdrm-2.4.74-1.el7.ppc64le
libXfixes-devel-5.0.3-1.el7.ppc64le
python-gssapi-1.2.0-3.el7.ppc64le
perl-Text-Unidecode-0.04-20.el7.noarch
hunspell-1.3.2-15.el7.ppc64le
kde-settings-19-23.5.el7.centos.noarch
perl-App-cpanminus-1.6922-2.el7.noarch
parted-3.1-28.el7.ppc64le
mesa-libGL-17.0.1-6.20170307.el7.ppc64le
elfutils-libelf-devel-0.168-8.el7.ppc64le
perl-Net-LibIDN-0.12-15.el7.ppc64le
apr-1.4.8-3.el7.ppc64le
kdepimlibs-4.10.5-4.el7.ppc64le
virt-top-1.0.8-23.el7.ppc64le
samba-client-libs-4.6.2-8.el7.ppc64le
gstreamer-plugins-base-0.10.36-10.el7.ppc64le
json-glib-devel-1.2.6-1.el7.ppc64le
perl-autodie-2.16-2.el7.noarch
tar-1.26-32.el7.ppc64le
ksysguard-libs-4.11.19-8.el7.ppc64le
rdma-core-devel-13-7.el7.ppc64le
accountsservice-0.6.45-2.el7.ppc64le
libxklavier-5.4-7.el7.ppc64le
libxml2-devel-2.9.1-6.el7_2.3.ppc64le
ghostscript-fonts-5.50-32.el7.noarch
libassuan-2.1.0-3.el7.ppc64le
libkipi-devel-4.10.5-3.el7.ppc64le
python-smbc-1.0.13-7.el7.ppc64le
initscripts-9.49.39-1.el7.ppc64le
qt3-3.3.8b-51.el7.ppc64le
yum-metadata-parser-1.1.4-10.el7.ppc64le
device-mapper-persistent-data-0.7.0-0.1.rc6.el7.ppc64le
adwaita-icon-theme-3.22.0-1.el7.noarch
kdepim-4.10.5-6.el7.ppc64le
postfix-2.10.1-6.el7.ppc64le
abrt-addon-pstoreoops-2.1.11-48.el7.centos.ppc64le
freerdp-libs-1.0.2-10.el7.ppc64le
langtable-python-0.0.31-3.el7.noarch
tcp_wrappers-7.6-77.el7.ppc64le
lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.ppc64le
kde-style-oxygen-4.11.19-8.el7.ppc64le
powertop-2.3-12.el7.ppc64le
wpa_supplicant-2.6-5.el7.ppc64le
gtk3-3.22.10-4.el7.ppc64le
boost-python-1.53.0-27.el7.ppc64le
keyutils-libs-devel-1.5.8-3.el7.ppc64le
libdvdread-5.0.3-3.el7.ppc64le
im-chooser-common-1.6.4-4.el7.ppc64le
aic94xx-firmware-30-6.el7.noarch
media-player-info-17-4.el7.noarch
compat-gnome-desktop314-3.14.2-1.el7.ppc64le
harfbuzz-1.3.2-1.el7.ppc64le
libgcrypt-devel-1.5.3-14.el7.ppc64le
groff-base-1.22.2-8.el7.ppc64le
sane-backends-1.0.24-9.el7.ppc64le
setuptool-1.19.11-8.el7.ppc64le
ebtables-2.0.10-15.el7.ppc64le
libchamplain-0.12.15-1.el7.ppc64le
boost-math-1.53.0-27.el7.ppc64le
libuser-0.60-7.el7_1.ppc64le
boost-date-time-1.53.0-27.el7.ppc64le
espeak-1.47.11-4.el7.ppc64le
tbb-devel-4.1-9.20130314.el7.ppc64le
grub2-tools-minimal-2.02-0.64.el7.centos.ppc64le
gjs-1.46.0-1.el7.ppc64le
libsss_autofs-1.15.2-50.el7.ppc64le
deltarpm-3.6-3.el7.ppc64le
libnl-1.1.4-3.el7.ppc64le
libgpod-0.8.2-12.el7.ppc64le
postgresql-devel-9.2.21-1.el7.ppc64le
libibcm-13-7.el7.ppc64le
abrt-gui-libs-2.1.11-48.el7.centos.ppc64le
libxkbcommon-0.7.1-1.el7.ppc64le
passwd-0.79-4.el7.ppc64le
lsvpd-1.7.8-1.el7.ppc64le
fprintd-0.5.0-4.0.el7_0.ppc64le
hunspell-en-0.20121024-6.el7.noarch
qca-ossl-2.0.0-0.19.beta3.el7.ppc64le
libdmapsharing-2.9.37-1.el7.ppc64le
ortp-0.20.0-10.el7.ppc64le
python-pycurl-7.19.0-19.el7.ppc64le
perl-Pod-Escapes-1.04-292.el7.noarch
pcp-3.11.8-7.el7.ppc64le
libblkid-devel-2.23.2-43.el7.ppc64le
dracut-network-033-502.el7.ppc64le
pyatspi-2.20.3-1.el7.noarch
systemtap-sdt-devel-3.1-3.el7.ppc64le
check-0.9.9-5.el7.ppc64le
perl-threads-shared-1.43-6.el7.ppc64le
gnome-shell-extension-common-3.22.2-10.el7.noarch
gnome-icon-theme-symbolic-3.12.0-2.el7.noarch
abrt-cli-2.1.11-48.el7.centos.ppc64le
festival-speechtools-libs-1.2.96-28.el7.ppc64le
python-slip-dbus-0.4.0-2.el7.noarch
mesa-private-llvm-3.9.1-3.el7.ppc64le
perl-Time-Local-1.2300-2.el7.noarch
yelp-3.22.0-1.el7.ppc64le
fuse-devel-2.9.2-8.el7.ppc64le
dnsmasq-2.76-2.el7.ppc64le
festvox-slt-arctic-hts-0.20061229-28.el7.noarch
libtasn1-devel-4.10-1.el7.ppc64le
libgudev1-219-42.el7.ppc64le
perl-version-0.99.07-2.el7.ppc64le
libvirt-daemon-driver-qemu-3.2.0-14.el7.ppc64le
ps_mem-3.1-7.el7.noarch
rtkit-0.11-10.el7.ppc64le
abrt-gui-2.1.11-48.el7.centos.ppc64le
nettle-devel-2.7.1-8.el7.ppc64le
perl-ExtUtils-Manifest-1.61-244.el7.noarch
libreswan-3.20-3.el7.ppc64le
python-pyudev-0.15-9.el7.noarch
appstream-data-7-20170301.el7.noarch
powerpc-utils-1.3.3-4.el7.ppc64le
setup-2.8.71-7.el7.noarch
enscript-1.6.6-6.el7.ppc64le
libgexiv2-0.10.4-2.el7.ppc64le
perl-Digest-SHA-5.85-4.el7.ppc64le
upower-0.99.4-2.el7.ppc64le
dhcp-libs-4.2.5-58.el7.centos.ppc64le
kbd-1.15.5-13.el7.ppc64le
phonon-backend-gstreamer-4.6.3-3.el7.ppc64le
dejavu-fonts-common-2.33-6.el7.noarch
libaio-devel-0.3.109-13.el7.ppc64le
grubby-8.28-23.el7.ppc64le
perl-CPAN-Meta-2.120921-5.el7.noarch
libmusicbrainz5-5.0.1-9.el7.ppc64le
liberation-mono-fonts-1.07.2-15.el7.noarch
fcoe-utils-1.0.32-1.el7.ppc64le
gvfs-afc-1.30.4-3.el7.ppc64le
m17n-db-1.6.4-3.el7.noarch
time-1.7-45.el7.ppc64le
python-configobj-4.7.2-7.el7.noarch
perl-Log-Message-0.08-3.el7.noarch
glib-networking-2.50.0-1.el7.ppc64le
gnome-classic-session-3.22.2-10.el7.noarch
libglade2-2.6.4-11.el7.ppc64le
langtable-data-0.0.31-3.el7.noarch
dejavu-serif-fonts-2.33-6.el7.noarch
python-requests-2.6.0-1.el7_1.noarch
perl-HTML-Tagset-3.20-15.el7.noarch
gssdp-1.0.1-1.el7.ppc64le
perl-CPANPLUS-Dist-Build-0.70-3.el7.noarch
brasero-nautilus-3.12.1-2.el7.ppc64le
evolution-data-server-3.22.7-6.el7.ppc64le
khmeros-fonts-common-5.0-17.el7.noarch
dejavu-sans-fonts-2.33-6.el7.noarch
python-kmod-0.9-4.el7.ppc64le
lzop-1.03-10.el7.ppc64le
telepathy-salut-0.8.1-6.el7.ppc64le
tbb-4.1-9.20130314.el7.ppc64le
kdegraphics-devel-4.10.5-3.el7.noarch
libcryptui-3.12.2-1.el7.ppc64le
ncurses-base-5.9-13.20130511.el7.noarch
lohit-nepali-fonts-2.5.3-2.el7.noarch
python-configshell-1.1.fb23-3.el7.noarch
acl-2.2.51-12.el7.ppc64le
python-rtslib-2.1.fb63-2.el7.noarch
libreport-plugin-rhtsupport-2.1.11-38.el7.centos.ppc64le
imsettings-qt-1.6.3-9.el7.ppc64le
webkitgtk3-2.4.11-2.el7.ppc64le
libsepol-2.5-6.el7.ppc64le
smc-meera-fonts-6.0-7.el7.noarch
python-mako-0.8.1-2.el7.noarch
pinentry-0.8.1-17.el7.ppc64le
alsa-tools-firmware-1.1.0-1.el7.ppc64le
libgdither-0.6-8.el7.ppc64le
ibus-libpinyin-1.6.91-4.el7.ppc64le
libXp-devel-1.0.2-2.1.el7.ppc64le
nspr-4.13.1-1.0.el7_3.ppc64le
cscope-15.8-10.el7.ppc64le
m2crypto-0.21.1-17.el7.ppc64le
libatomic-4.8.5-16.el7.ppc64le
opencc-0.4.3-3.el7.ppc64le
sbc-1.0-5.el7.ppc64le
SDL-devel-1.2.15-14.el7.ppc64le
vorbis-tools-1.4.0-12.el7.ppc64le
bzip2-libs-1.0.6-13.el7.ppc64le
google-crosextra-carlito-fonts-1.103-0.2.20130920.el7.noarch
nmap-ncat-6.40-7.el7.ppc64le
krb5-libs-1.15.1-8.el7.ppc64le
sssd-krb5-1.15.2-50.el7.ppc64le
cups-filters-libs-1.0.35-22.el7.ppc64le
virt-manager-1.4.1-7.el7.noarch
evince-3.22.1-5.el7.ppc64le
readline-6.2-10.el7.ppc64le
ctags-5.8-13.el7.ppc64le
sound-theme-freedesktop-0.8-3.el7.noarch
ruby-libs-2.0.0.648-30.el7.ppc64le
pth-2.0.7-23.el7.ppc64le
rubygems-2.0.14.1-30.el7.noarch
gnome-dictionary-3.20.0-1.el7.ppc64le
xorg-x11-drv-evdev-2.10.5-2.1.el7.ppc64le
audit-libs-2.7.6-3.el7.ppc64le
iwl135-firmware-18.168.6.1-56.el7.noarch
python-nss-0.16.0-3.el7.ppc64le
json-glib-1.2.6-1.el7.ppc64le
flatpak-libs-0.8.7-1.el7.ppc64le
libutempter-1.1.6-4.el7.ppc64le
ekiga-4.0.1-7.el7.ppc64le
easymock2-2.5.2-12.el7.noarch
keyutils-libs-1.5.8-3.el7.ppc64le
iwl1000-firmware-39.31.5.1-56.el7.noarch
teamd-1.25-5.el7.ppc64le
telepathy-glib-0.24.0-1.el7.ppc64le
PackageKit-yum-1.1.5-1.el7.centos.ppc64le
virt-what-1.13-10.el7.ppc64le
ppc64-diag-2.7.3-3.el7.ppc64le
libpurple-2.10.11-5.el7.ppc64le
libffi-3.0.13-18.el7.ppc64le
iwl2000-firmware-18.168.6.1-56.el7.noarch
perl-YAML-0.84-5.el7.noarch
libxml2-python-2.9.1-6.el7_2.3.ppc64le
lsscsi-0.27-6.el7.ppc64le
systemtap-client-3.1-3.el7.ppc64le
virt-viewer-5.0-7.el7.ppc64le
dbusmenu-qt-0.9.2-7.el7.ppc64le
libtar-1.2.11-29.el7.ppc64le
ccache-3.3.4-1.el7.ppc64le
perl-DBD-SQLite-1.39-3.el7.ppc64le
gnome-icon-theme-3.12.0-1.el7.noarch
gdk-pixbuf2-2.36.5-1.el7.ppc64le
libpath_utils-0.2.1-27.el7.ppc64le
gvfs-archive-1.30.4-3.el7.ppc64le
gnome-online-accounts-devel-3.22.5-1.el7.ppc64le
yajl-2.0.4-4.el7.ppc64le
gcc-4.8.5-16.el7_4.1.ppc64le
perl-Pod-Coverage-0.23-3.el7.noarch
libselinux-python-2.5-11.el7.ppc64le
libX11-devel-1.6.5-1.el7.ppc64le
qrencode-libs-3.4.1-3.el7.ppc64le
gnome-system-log-3.9.90-3.el7.ppc64le
mesa-libGLU-devel-9.0.0-4.el7.ppc64le
boost-system-1.53.0-27.el7.ppc64le
perl-HTTP-Message-6.06-6.el7.noarch
cracklib-2.9.0-11.el7.ppc64le
libXcursor-1.1.14-8.el7.ppc64le
dbus-1.6.12-17.el7.ppc64le
libnotify-devel-0.7.7-1.el7.ppc64le
ibus-gtk3-1.5.3-13.el7.ppc64le
libv4l-0.9.5-4.el7.ppc64le
perl-Time-Piece-1.20.1-292.el7.ppc64le
cracklib-dicts-2.9.0-11.el7.ppc64le
startup-notification-0.12-8.el7.ppc64le
dconf-0.26.0-2.el7.ppc64le
net-snmp-devel-5.7.2-28.el7.ppc64le
kate-part-4.10.5-4.el7.ppc64le
orc-0.4.26-1.el7.ppc64le
kernel-devel-3.10.0-693.el7.ppc64le
avahi-gobject-0.6.31-17.el7.ppc64le
cairo-gobject-1.14.8-2.el7.ppc64le
httpd-2.4.6-67.el7.centos.ppc64le
subversion-1.7.14-10.el7.ppc64le
kdepimlibs-akonadi-4.10.5-4.el7.ppc64le
gdbm-1.10-8.el7.ppc64le
perl-File-CheckTree-4.42-3.el7.noarch
atk-devel-2.22.0-3.el7.ppc64le
java-1.8.0-openjdk-devel-1.8.0.131-11.b12.el7.ppc64le
abrt-dbus-2.1.11-48.el7.centos.ppc64le
qt-mysql-4.8.5-13.el7.ppc64le
libkdcraw-4.10.5-4.el7.ppc64le
libaio-0.3.109-13.el7.ppc64le
urw-fonts-2.4-16.el7.noarch
libgee06-0.6.8-3.el7.ppc64le
libXrandr-devel-1.5.1-2.el7.ppc64le
cronie-anacron-1.4.11-17.el7.ppc64le
mlocate-0.26-6.el7.ppc64le
kdesdk-okteta-devel-4.10.5-6.el7.ppc64le
iso-codes-3.46-2.el7.noarch
e2fsprogs-1.42.9-10.el7.ppc64le
at-spi2-atk-2.22.0-2.el7.ppc64le
libstoragemgmt-python-clibs-1.4.0-3.el7.ppc64le
PackageKit-command-not-found-1.1.5-1.el7.centos.ppc64le
kdenetwork-kopete-devel-4.10.5-8.el7_0.ppc64le
libmnl-1.0.3-7.el7.ppc64le
tcp_wrappers-devel-7.6-77.el7.ppc64le
python-dns-1.12.0-4.20150617git465785f.el7.noarch
libXinerama-devel-1.1.3-2.1.el7.ppc64le
libibverbs-13-7.el7.ppc64le
net-tools-2.0-0.22.20131004git.el7.ppc64le
kde-workspace-libs-4.11.19-8.el7.ppc64le
libwebp-0.3.0-7.el7.ppc64le
libattr-devel-2.4.46-12.el7.ppc64le
libkadm5-1.15.1-8.el7.ppc64le
gcr-3.20.0-1.el7.ppc64le
colord-1.3.4-1.el7.ppc64le
rsyslog-8.24.0-12.el7.ppc64le
im-chooser-1.6.4-4.el7.ppc64le
boost-filesystem-1.53.0-27.el7.ppc64le
libgpg-error-devel-1.12-3.el7.ppc64le
harfbuzz-icu-1.3.2-1.el7.ppc64le
libpeas-gtk-1.20.0-1.el7.ppc64le
abrt-addon-python-2.1.11-48.el7.centos.ppc64le
selinux-policy-targeted-3.13.1-166.el7.noarch
libksane-4.10.5-4.el7.ppc64le
m4-1.4.16-10.el7.ppc64le
xmlrpc-c-client-1.32.5-1905.svn2451.el7.ppc64le
sysvinit-tools-2.88-14.dsf.el7.ppc64le
libnma-1.8.0-3.el7.ppc64le
os-prober-1.58-9.el7.ppc64le
libproxy-mozjs-0.4.11-10.el7.ppc64le
speech-dispatcher-0.7.1-15.el7.ppc64le
boost-signals-1.53.0-27.el7.ppc64le
python-ldap-2.4.15-2.el7.ppc64le
libvpx-1.3.0-5.el7_0.ppc64le
nm-connection-editor-1.8.0-3.el7.ppc64le
NetworkManager-team-1.8.0-9.el7.ppc64le
perf-3.10.0-693.el7.ppc64le
libgsf-1.14.26-7.el7.ppc64le
libpfm-4.7.0-4.el7.ppc64le
postgresql-9.2.21-1.el7.ppc64le
ethtool-4.8-1.el7.ppc64le
xorg-x11-server-utils-7.7-20.el7.ppc64le
attica-0.4.2-1.el7.ppc64le
xfsdump-3.1.4-1.el7.ppc64le
firewalld-filesystem-0.4.4.4-6.el7.noarch
libXfont2-2.0.1-2.el7.ppc64le
net-snmp-agent-libs-5.7.2-28.el7.ppc64le
tcl-devel-8.5.13-8.el7.ppc64le
libgxps-0.2.5-1.el7.ppc64le
cyrus-sasl-devel-2.1.26-21.el7.ppc64le
hmaccalc-0.9.13-4.el7.ppc64le
libwacom-data-0.24-1.el7.noarch
perl-Pod-Usage-1.63-3.el7.noarch
python-yubico-1.2.3-1.el7.noarch
libXxf86vm-devel-1.1.4-1.el7.ppc64le
abrt-tui-2.1.11-48.el7.centos.ppc64le
pinfo-0.6.10-9.el7.ppc64le
gnome-shell-extension-user-theme-3.22.2-10.el7.noarch
perl-File-Path-2.09-2.el7.noarch
xorg-x11-fonts-Type1-7.5-9.el7.noarch
python-firewall-0.4.4.4-6.el7.noarch
libXres-1.0.7-2.1.el7.ppc64le
libcgroup-tools-0.41-13.el7.ppc64le
libnl-devel-1.1.4-3.el7.ppc64le
gnome-user-docs-3.22.0-1.el7.noarch
perl-Pod-Simple-3.28-4.el7.noarch
systemd-libs-219-42.el7.ppc64le
ncurses-devel-5.9-13.20130511.el7.ppc64le
mesa-libEGL-devel-17.0.1-6.20170307.el7.ppc64le
audit-2.7.6-3.el7.ppc64le
iotop-0.6-2.el7.noarch
libvirt-daemon-driver-storage-logical-3.2.0-14.el7.ppc64le
perl-Module-CoreList-2.76.02-292.el7.noarch
libmbim-1.14.0-2.el7.ppc64le
xdg-desktop-portal-0.5-2.el7.ppc64le
perl-Module-Load-0.24-3.el7.noarch
caribou-gtk3-module-0.4.21-1.el7.ppc64le
sqlite-devel-3.7.17-8.el7.ppc64le
centos-indexhtml-7-9.el7.centos.noarch
elfutils-0.168-8.el7.ppc64le
centos-release-7-4.1708.el7.centos.ppc64le
trousers-0.3.14-2.el7.ppc64le
perl-Thread-Queue-3.02-2.el7.noarch
python-meh-gui-0.25.2-1.el7.noarch
gom-0.3.2-1.el7.ppc64le
lldpad-1.0.1-3.git036e314.el7.ppc64le
libgusb-0.2.9-1.el7.ppc64le
liberation-fonts-common-1.07.2-15.el7.noarch
libimobiledevice-1.2.0-1.el7.ppc64le
perl-Module-Pluggable-4.8-3.el7.noarch
ghostscript-cups-9.07-28.el7.ppc64le
osinfo-db-tools-1.1.0-1.el7.ppc64le
kbd-misc-1.15.5-13.el7.noarch
dhcp-common-4.2.5-58.el7.centos.ppc64le
control-center-filesystem-3.22.2-5.el7.ppc64le
libvirt-glib-1.0.0-1.el7.ppc64le
perl-CPAN-Meta-Requirements-2.122-7.el7.noarch
PyQt4-4.10.1-13.el7.ppc64le
btrfs-progs-4.9.1-1.el7.ppc64le
anaconda-gui-21.48.22.121-1.el7.centos.ppc64le
libatasmart-0.19-6.el7.ppc64le
shared-desktop-ontologies-0.11.0-2.el7.noarch
libvirt-daemon-config-nwfilter-3.2.0-14.el7.ppc64le
autoconf-2.69-11.el7.noarch
gnome-terminal-3.22.1-2.el7.ppc64le
python-cups-1.9.63-6.el7.ppc64le
intltool-0.50.2-7.el7.noarch
glibc-headers-2.17-196.el7.ppc64le
kdesdk-common-4.10.5-6.el7.noarch
libvirt-daemon-driver-secret-3.2.0-14.el7.ppc64le
perl-Locale-Maketext-Simple-0.21-292.el7.noarch
gnome-keyring-3.20.0-3.el7.ppc64le
python-sss-murmur-1.15.2-50.el7.ppc64le
vim-enhanced-7.4.160-2.el7.ppc64le
perl-ExtUtils-MakeMaker-6.68-3.el7.noarch
emacs-filesystem-24.3-19.el7_3.noarch
libvncserver-0.9.9-9.el7_0.1.ppc64le
perl-Object-Accessor-0.42-292.el7.noarch
gnome-desktop3-3.22.2-2.el7.ppc64le
python-backports-1.0-8.el7.ppc64le
evolution-help-3.22.6-10.el7.noarch
systemtap-devel-3.1-3.el7.ppc64le
langtable-0.0.31-3.el7.noarch
geocode-glib-3.20.1-1.el7.ppc64le
perl-Compress-Raw-Bzip2-2.061-3.el7.ppc64le
pygtk2-libglade-2.24.0-9.el7.ppc64le
python-urllib3-1.10.2-3.el7.noarch
orca-3.6.3-4.el7.ppc64le
perl-File-Fetch-0.42-2.el7.noarch
latencytop-common-0.5-13.el7.ppc64le
geoclue2-libs-2.4.5-1.el7.ppc64le
perl-Module-Loaded-0.08-292.el7.noarch
webkitgtk4-2.14.7-2.el7.ppc64le
python-paste-1.7.5.1-9.20111221hg1498.el7.noarch
totem-nautilus-3.22.1-1.el7.ppc64le
libtool-2.4.2-22.el7_3.ppc64le
smc-fonts-common-6.0-7.el7.noarch
libnice-0.1.3-4.el7.ppc64le
libdvdnav-5.0.3-1.el7.ppc64le
folks-0.11.3-1.el7.ppc64le
python-ipaddr-2.1.11-1.el7.noarch
xorg-x11-utils-7.5-22.el7.ppc64le
oxygen-icon-theme-4.10.5-2.el7.noarch
libkkc-common-0.3.1-9.el7.noarch
libgovirt-0.3.3-5.el7.ppc64le
boost-timer-1.53.0-27.el7.ppc64le
gnome-packagekit-common-3.22.1-2.el7.ppc64le
javapackages-tools-3.4.1-11.el7.noarch
sane-backends-devel-1.0.24-9.el7.ppc64le
konkretcmpi-0.9.1-5.el7.ppc64le
perl-srpm-macros-1-8.el7.noarch
chrony-3.1-2.el7.centos.ppc64le
fuse-2.9.2-8.el7.ppc64le
evolution-3.22.6-10.el7.ppc64le
python-urwid-1.1.1-3.el7.ppc64le
shotwell-0.24.5-1.el7.ppc64le
libreport-web-2.1.11-38.el7.centos.ppc64le
glibc-2.17-196.el7.ppc64le
usb_modeswitch-data-20160612-2.el7.noarch
patch-2.7.1-8.el7.ppc64le
file-roller-3.22.3-1.el7.ppc64le
python-netaddr-0.7.5-7.el7.noarch
ibus-table-chinese-1.4.6-3.el7.noarch
libreport-plugin-reportuploader-2.1.11-38.el7.centos.ppc64le
pcre-8.32-17.el7.ppc64le
libvirt-daemon-driver-network-3.2.0-14.el7.ppc64le
cyrus-sasl-plain-2.1.26-21.el7.ppc64le
glade-libs-3.20.0-1.el7.ppc64le
python-markupsafe-0.11-10.el7.ppc64le
kdenetwork-devel-4.10.5-8.el7_0.noarch
libreport-plugin-ureport-2.1.11-38.el7.centos.ppc64le
dbus-libs-1.6.12-17.el7.ppc64le
alsa-firmware-1.0.28-2.el7.noarch
mozjs17-17.0.0-19.el7.ppc64le
avahi-ui-gtk3-0.6.31-17.el7.ppc64le
python-cffi-1.6.0-5.el7.ppc64le
xdg-user-dirs-gtk-0.10-4.el7.ppc64le
gavl-1.4.0-4.el7.ppc64le
libjpeg-turbo-1.2.90-5.el7.ppc64le
device-mapper-multipath-0.4.9-111.el7.ppc64le
libcdio-0.92-1.el7.ppc64le
pulseaudio-module-bluetooth-10.0-3.el7.ppc64le
pytalloc-2.1.9-1.el7.ppc64le
ibus-sayura-1.3.2-3.el7.ppc64le
checkpolicy-2.5-4.el7.ppc64le
libICE-1.0.9-9.el7.ppc64le
libvirt-daemon-driver-interface-3.2.0-14.el7.ppc64le
libunistring-0.9.3-9.el7.ppc64le
libXScrnSaver-devel-1.2.2-6.1.el7.ppc64le
openlmi-python-base-0.5.0-4.el7.noarch
PyQt4-devel-4.10.1-13.el7.ppc64le
libndp-1.2-7.el7.ppc64le
libxml2-2.9.1-6.el7_2.3.ppc64le
sssd-krb5-common-1.15.2-50.el7.ppc64le
ncurses-5.9-13.20130511.el7.ppc64le
icedax-1.1.11-23.el7.ppc64le
libmsn-4.2.1-7.el7.ppc64le
evolution-data-server-devel-3.22.7-6.el7.ppc64le
poppler-0.26.5-16.el7.ppc64le
sed-4.2.2-5.el7.ppc64le
sssd-ldap-1.15.2-50.el7.ppc64le
fontconfig-2.10.95-11.el7.ppc64le
pinentry-qt-0.8.1-17.el7.ppc64le
cyrus-sasl-scram-2.1.26-21.el7.ppc64le
paps-0.6.8-28.el7.1.ppc64le
libyaml-0.1.4-11.el7_0.ppc64le
libgpg-error-1.12-3.el7.ppc64le
sgpio-1.2.0.10-13.el7.ppc64le
alsa-lib-1.1.3-3.el7.ppc64le
gutenprint-5.2.9-18.el7.ppc64le
openslp-2.0.0-6.el7.ppc64le
ruby-irb-2.0.0.648-30.el7.noarch
libgcrypt-1.5.3-14.el7.ppc64le
python-blivet-0.61.15.65-1.el7.noarch
gzip-1.5-9.el7.ppc64le
xorg-x11-drv-void-1.4.1-2.el7.ppc64le
nss-pem-1.0.3-4.el7.ppc64le
rubygem-rdoc-4.0.0-30.el7.noarch
libcap-ng-0.7.5-4.el7.ppc64le
rpm-build-libs-4.11.3-25.el7.ppc64le
shared-mime-info-1.8-3.el7.ppc64le
xorg-x11-drv-v4l-0.2.0-47.el7.ppc64le
nss-tools-3.28.4-8.el7.ppc64le
libsemanage-2.5-8.el7.ppc64le
libxcb-1.12-1.el7.ppc64le
flatpak-0.8.7-1.el7.ppc64le
gstreamer1-1.10.4-2.el7.ppc64le
xorg-x11-drv-nouveau-1.0.13-3.el7.ppc64le
sgml-common-0.6.3-39.el7.noarch
util-linux-2.23.2-43.el7.ppc64le
libtdb-1.3.12-2.el7.ppc64le
rpm-devel-4.11.3-25.el7.ppc64le
gobject-introspection-1.50.0-1.el7.ppc64le
qdox-1.12.1-10.el7.noarch
libteam-1.25-5.el7.ppc64le
openssh-clients-7.4p1-11.el7.ppc64le
libattr-2.4.46-12.el7.ppc64le
python-meh-0.25.2-1.el7.noarch
avahi-glib-0.6.31-17.el7.ppc64le
rhino-1.7R5-1.el7.noarch
perl-Pod-Checker-1.60-2.el7.noarch
rarian-0.8.1-11.el7.ppc64le
gmp-6.0.0-15.el7.ppc64le
createrepo-0.9.9-28.el7.noarch
python-gobject-base-3.22.0-1.el7.ppc64le
telepathy-haze-0.8.0-1.el7.ppc64le
perl-Version-Requirements-0.101022-244.el7.noarch
tog-pegasus-2.14.1-5.el7.ppc64le
lua-5.1.4-15.el7.ppc64le
libburn-1.2.8-4.el7.ppc64le
openssl-1.0.2k-8.el7.ppc64le
dleyna-server-0.5.0-1.el7.ppc64le
perl-IO-HTML-1.00-2.el7.noarch
libsemanage-python-2.5-8.el7.ppc64le
libidn-1.28-4.el7.ppc64le
nss-devel-3.28.4-8.el7.ppc64le
net-snmp-libs-5.7.2-28.el7.ppc64le
paps-libs-0.6.8-28.el7.1.ppc64le
perl-DBIx-Simple-1.35-7.el7.noarch
lzo-minilzo-2.06-8.el7.ppc64le
libref_array-0.1.5-27.el7.ppc64le
libX11-1.6.5-1.el7.ppc64le
xdg-utils-1.1.0-0.17.20120809git.el7.noarch
harfbuzz-devel-1.3.2-1.el7.ppc64le
perl-CGI-3.63-4.el7.noarch
libini_config-1.3.0-27.el7.ppc64le
xmlrpc-c-1.32.5-1905.svn2451.el7.ppc64le
libXfixes-5.0.3-1.el7.ppc64le
glibmm24-2.50.0-1.el7.ppc64le
webkitgtk4-devel-2.14.7-2.el7.ppc64le
perl-Devel-Symdump-2.10-2.el7.noarch
libpipeline-1.2.3-3.el7.ppc64le
mpfr-3.1.1-4.el7.ppc64le
libXrandr-1.5.1-2.el7.ppc64le
cyrus-sasl-gssapi-2.1.26-21.el7.ppc64le
gtk2-devel-2.24.31-1.el7.ppc64le
perl-URI-1.60-9.el7.noarch
kpartx-0.4.9-111.el7.ppc64le
file-libs-5.11-33.el7.ppc64le
libXext-devel-1.3.3-3.el7.ppc64le
libSM-devel-1.2.2-2.el7.ppc64le
qt-devel-4.8.5-13.el7.ppc64le
perl-HTTP-Date-6.02-8.el7.noarch
dracut-033-502.el7.ppc64le
libtool-ltdl-2.4.2-22.el7_3.ppc64le
libcanberra-0.30-5.el7.ppc64le
python-enum34-1.0.4-1.el7.noarch
libxkbfile-devel-1.0.9-3.el7.ppc64le
perl-HTTP-Cookies-6.01-5.el7.noarch
polkit-0.112-12.el7_3.ppc64le
libtheora-1.1.1-8.el7.ppc64le
libXpm-3.5.12-1.el7.ppc64le
libevent-2.0.21-4.el7.ppc64le
ibus-gtk2-1.5.3-13.el7.ppc64le
kdelibs-common-4.14.8-6.el7_3.ppc64le
systemd-sysv-219-42.el7.ppc64le
diffutils-3.3-4.el7.ppc64le
libXv-1.0.11-1.el7.ppc64le
pam-1.1.8-18.el7.ppc64le
imsettings-gsettings-1.6.3-9.el7.ppc64le
perl-YAML-Tiny-1.51-6.el7.noarch
GConf2-3.2.6-8.el7.ppc64le
libtasn1-4.10-1.el7.ppc64le
libxkbfile-1.0.9-3.el7.ppc64le
gettext-libs-0.19.8.1-2.el7.ppc64le
kdelibs-ktexteditor-4.14.8-6.el7_3.ppc64le
perl-Env-1.04-2.el7.noarch
libpciaccess-0.13.4-3.el7_3.ppc64le
nss-softokn-3.28.3-6.el7.ppc64le
pango-1.40.4-1.el7.ppc64le
telepathy-logger-0.8.0-5.el7.ppc64le
nepomuk-core-4.10.5-5.el7.ppc64le
perl-Net-HTTP-6.06-2.el7.noarch
samba-common-4.6.2-8.el7.noarch
libsigc++20-2.10.0-1.el7.ppc64le
cogl-1.22.2-1.el7.ppc64le
pcre-devel-8.32-17.el7.ppc64le
kdenetwork-kopete-libs-4.10.5-8.el7_0.ppc64le
icoutils-0.31.3-1.el7_3.ppc64le
pyparted-3.9-13.el7.ppc64le
apr-util-1.5.2-6.el7.ppc64le
giflib-4.1.6-9.el7.ppc64le
expat-devel-2.1.0-10.el7_3.ppc64le
kdesdk-okteta-4.10.5-6.el7.ppc64le
papi-5.2.0-23.el7.ppc64le
abrt-python-2.1.11-48.el7.centos.ppc64le
lzo-2.06-8.el7.ppc64le
java-1.8.0-openjdk-1.8.0.131-11.b12.el7.ppc64le
libffi-devel-3.0.13-18.el7.ppc64le
kwin-libs-4.11.19-8.el7.ppc64le
xorg-x11-font-utils-7.5-20.el7.ppc64le
iscsi-initiator-utils-iscsiuio-6.2.0.874-4.el7.ppc64le
file-5.11-33.el7.ppc64le
libXft-devel-2.3.2-2.el7.ppc64le
libipa_hbac-1.15.2-50.el7.ppc64le
kwin-gles-libs-4.11.19-8.el7.ppc64le
libsamplerate-0.1.8-6.el7.ppc64le
cronie-1.4.11-17.el7.ppc64le
xml-common-0.6.3-39.el7.noarch
ghostscript-9.07-28.el7.ppc64le
libpinyin-data-0.9.93-4.el7.ppc64le
kde-runtime-libs-4.10.5-8.el7.ppc64le
ipset-6.29-1.el7.ppc64le
plymouth-0.8.9-0.28.20140113.el7.centos.ppc64le
taglib-1.8-7.20130218git.el7.ppc64le
at-spi2-core-2.22.0-1.el7.ppc64le
xfsprogs-4.5.0-12.el7.ppc64le
kdepim-runtime-4.10.5-3.el7.ppc64le
libusbmuxd-1.0.10-5.el7.ppc64le
libstoragemgmt-python-1.4.0-3.el7.noarch
libseccomp-2.3.1-3.el7.ppc64le
gstreamer1-plugins-good-1.10.4-2.el7.ppc64le
pyusb-1.0.0-0.11.b1.el7.noarch
nepomuk-core-devel-4.10.5-5.el7.ppc64le
libofa-0.9.3-24.el7.ppc64le
device-mapper-event-1.02.140-8.el7.ppc64le
librtas-2.0.1-1.el7.ppc64le
libXcomposite-devel-0.4.4-4.1.el7.ppc64le
audit-libs-python-2.7.6-3.el7.ppc64le
okular-libs-4.10.5-4.el7.ppc64le
gdisk-0.8.6-5.el7.ppc64le
libibumad-13-7.el7.ppc64le
libsndfile-1.0.25-10.el7.ppc64le
libXxf86misc-1.0.3-7.1.el7.ppc64le
pyparsing-1.5.6-9.el7.noarch
kdesdk-kmtrace-libs-4.10.5-6.el7.ppc64le
attr-2.4.46-12.el7.ppc64le
rpcbind-0.2.0-42.el7.ppc64le
slang-2.2.4-11.el7.ppc64le
gtk2-2.24.31-1.el7.ppc64le
libssh2-1.4.3-10.el7_2.1.ppc64le
kdesdk-kompare-4.10.5-6.el7.ppc64le
openssl-devel-1.0.2k-8.el7.ppc64le
bluez-5.44-2.el7.ppc64le
boost-thread-1.53.0-27.el7.ppc64le
clutter-gtk-1.8.2-1.el7.ppc64le
soundtouch-1.4.0-9.el7.ppc64le
ibus-table-1.5.0-5.el7.noarch
setools-libs-3.3.8-1.1.el7.ppc64le
ppp-2.4.5-33.el7.ppc64le
libvpd-2.2.5-1.el7.ppc64le
clutter-gst3-3.0.22-1.el7.ppc64le
boost-test-1.53.0-27.el7.ppc64le
libgphoto2-2.5.2-5.el7.ppc64le
libcurl-7.29.0-42.el7.ppc64le
libmtp-1.1.6-5.el7.ppc64le
unzip-6.0-16.el7.ppc64le
vte291-0.46.2-1.el7.ppc64le
boost-random-1.53.0-27.el7.ppc64le
hplip-libs-3.15.9-3.el7.ppc64le
openldap-2.4.44-5.el7.ppc64le
rsync-3.0.9-18.el7.ppc64le
psmisc-22.20-15.el7.ppc64le
compat-cheese314-3.14.2-1.el7.ppc64le
dosfstools-3.0.20-9.el7.ppc64le
sane-backends-drivers-cameras-1.0.24-9.el7.ppc64le
kde-filesystem-4-47.el7.ppc64le
cryptsetup-1.7.4-3.el7.ppc64le
boost-program-options-1.53.0-27.el7.ppc64le
libgnomekbd-3.22.0.1-1.el7.ppc64le
libsrtp-1.4.4-10.20101004cvs.el7.ppc64le
speech-dispatcher-python-0.7.1-15.el7.ppc64le
raptor2-2.0.9-3.el7.ppc64le
grub2-tools-2.02-0.64.el7.centos.ppc64le
libiodbc-3.52.7-7.el7.ppc64le
gtk-vnc2-0.7.0-2.el7.ppc64le
libdv-1.0.0-17.el7.ppc64le
libXxf86dga-1.1.4-2.1.el7.ppc64le
python-deltarpm-3.6-3.el7.ppc64le
ibacm-13-7.el7.ppc64le
opus-1.0.2-6.el7.ppc64le
system-config-printer-libs-1.4.1-19.el7.noarch
libthai-0.1.14-9.el7.ppc64le
tracker-1.10.5-4.el7.ppc64le
shared-desktop-ontologies-devel-0.11.0-2.el7.noarch
qt-4.8.5-13.el7.ppc64le
pcre2-10.23-2.el7.ppc64le
gtkspell3-3.0.3-4.el7.ppc64le
libevdev-1.5.6-1.el7.ppc64le
totem-3.22.1-1.el7.ppc64le
virtuoso-opensource-6.1.6-6.el7.ppc64le
strigi-libs-0.7.7-12.20120626.el7.ppc64le
boost-wave-1.53.0-27.el7.ppc64le
libXmu-devel-1.1.2-2.el7.ppc64le
iproute-3.10.0-87.el7.ppc64le
firewalld-0.4.4.4-6.el7.noarch
color-filesystem-1-13.el7.noarch
automoc-1.0-0.20.rc3.el7.ppc64le
perl-Pod-Perldoc-3.20-4.el7.noarch
poppler-utils-0.26.5-16.el7.ppc64le
boost-1.53.0-27.el7.ppc64le
pcp-libs-3.11.8-7.el7.ppc64le
pykickstart-1.99.66.12-1.el7.noarch
openldap-devel-2.4.44-5.el7.ppc64le
perl-Encode-2.51-7.el7.ppc64le
python-gobject-3.22.0-1.el7.ppc64le
krb5-workstation-1.15.1-8.el7.ppc64le
libwacom-0.24-1.el7.ppc64le
isomd5sum-1.0.10-5.el7.ppc64le
abrt-addon-vmcore-2.1.11-48.el7.centos.ppc64le
perl-constant-1.27-2.el7.noarch
compat-libcogl12-1.14.0-3.el7.ppc64le
python-libipa_hbac-1.15.2-50.el7.ppc64le
gdm-3.22.3-11.el7.ppc64le
gstreamer1-devel-1.10.4-2.el7.ppc64le
abrt-retrace-client-2.1.11-48.el7.centos.ppc64le
perl-Exporter-5.68-3.el7.noarch
libXpm-devel-3.5.12-1.el7.ppc64le
python2-pyasn1-modules-0.1.9-7.el7.noarch
gnome-shell-extension-alternate-tab-3.22.2-10.el7.noarch
ttmkfdir-3.0.9-42.el7.ppc64le
samba-libs-4.6.2-8.el7.ppc64le
perl-File-Temp-0.23.01-3.el7.noarch
brltty-4.5-15.el7.ppc64le
sos-3.4-6.el7.centos.noarch
gnome-shell-extension-window-list-3.22.2-10.el7.noarch
clucene-core-2.3.3.4-11.el7.ppc64le
osinfo-db-20170423-2.el7.noarch
perl-macros-5.16.3-292.el7.ppc64le
python-brlapi-0.6.0-15.el7.ppc64le
libselinux-devel-2.5-11.el7.ppc64le
quota-nls-4.01-14.el7.noarch
elfutils-libs-0.168-8.el7.ppc64le
oddjob-mkhomedir-0.31.5-4.el7.ppc64le
perl-5.16.3-292.el7.ppc64le
opal-3.10.10-4.el7.ppc64le
gstreamer-tools-0.10.36-7.el7.ppc64le
libvirt-daemon-driver-storage-scsi-3.2.0-14.el7.ppc64le
satyr-0.13-14.el7.ppc64le
polkit-docs-0.112-12.el7_3.noarch
perl-Compress-Raw-Zlib-2.061-4.el7.ppc64le
compat-libcogl-pango12-1.14.0-3.el7.ppc64le
alsa-lib-devel-1.1.3-3.el7.ppc64le
libvirt-daemon-driver-storage-mpath-3.2.0-14.el7.ppc64le
NetworkManager-libnm-1.8.0-9.el7.ppc64le
tcsh-6.18.01-15.el7.ppc64le
perl-XML-Dumper-0.81-17.el7.noarch
libpfm-devel-4.7.0-4.el7.ppc64le
unixODBC-devel-2.3.1-11.el7.ppc64le
rcs-5.9.0-5.el7.ppc64le
ltrace-0.7.91-14.el7.ppc64le
ed-1.9-4.el7.ppc64le
wqy-zenhei-fonts-0.9.46-11.el7.noarch
lohit-bengali-fonts-2.5.3-4.el7.noarch
paratype-pt-sans-fonts-20101909-3.el7.noarch
paktype-naskh-basic-fonts-4.1-3.el7.noarch
lklug-fonts-0.6-10.20090803cvs.el7.noarch
lohit-kannada-fonts-2.5.3-3.el7.noarch
cjkuni-uming-fonts-0.2.20080216.1-53.el7.noarch
vlgothic-fonts-20130607-2.el7.noarch
lohit-telugu-fonts-2.5.3-3.el7.noarch
gnu-free-serif-fonts-20120503-8.el7.noarch
jomolhari-fonts-0.003-17.el7.noarch
scl-utils-20130529-17.el7_1.ppc64le
diffstat-1.57-4.el7.ppc64le
xorg-x11-drivers-7.7-6.el7.ppc64le
setserial-2.17-33.el7.ppc64le
vinagre-3.22.0-8.el7.ppc64le
man-pages-overrides-7.4.3-1.el7.ppc64le
gedit-3.22.0-3.el7.ppc64le
iwl5150-firmware-8.24.2.2-56.el7.noarch
gnome-contacts-3.22.1-1.el7.ppc64le
words-3.0-22.el7.noarch
setroubleshoot-3.2.28-3.el7.ppc64le
iwl7265-firmware-22.0.7.0-56.el7.noarch
gnome-system-monitor-3.22.2-2.el7.ppc64le
man-pages-3.53-5.el7.noarch
librsvg2-devel-2.40.16-1.el7.ppc64le
gpg-pubkey-f4a80eb5-53a7ff4b
system-config-printer-udev-1.4.1-19.el7.ppc64le
gnome-calculator-3.22.3-1.el7.ppc64le
libgcc-4.8.5-16.el7_4.1.ppc64le
gvfs-afp-1.30.4-3.el7.ppc64le
cpp-4.8.5-16.el7_4.1.ppc64le
latencytop-0.5-13.el7.ppc64le
gcc-c++-4.8.5-16.el7_4.1.ppc64le
gtk3-immodule-xim-3.22.10-4.el7.ppc64le
mousetweaks-3.12.0-1.el7.ppc64le
qt3-MySQL-3.3.8b-51.el7.ppc64le
xvattr-1.3-27.el7.ppc64le
yum-langpacks-0.4.2-7.el7.noarch
rpm-build-4.11.3-25.el7.ppc64le
virt-install-1.4.1-7.el7.noarch
samba-client-4.6.2-8.el7.ppc64le
qt-odbc-4.8.5-13.el7.ppc64le
NetworkManager-tui-1.8.0-9.el7.ppc64le
avahi-0.6.31-17.el7.ppc64le
httpd-manual-2.4.6-67.el7.centos.noarch
PackageKit-gstreamer-plugin-1.1.5-1.el7.centos.ppc64le
tuned-2.8.0-5.el7.noarch
qemu-guest-agent-2.8.0-2.el7.ppc64le
smartmontools-6.2-8.el7.ppc64le
openssh-server-7.4p1-11.el7.ppc64le
dracut-config-rescue-033-502.el7.ppc64le
openlmi-providers-devel-0.5.0-4.el7.ppc64le
oprofile-0.9.9-22.el7.ppc64le
perl-homedir-1.008010-4.el7.noarch
libgudev1-devel-219-42.el7.ppc64le
sudo-1.8.19p2-10.el7.ppc64le
libacl-devel-2.2.51-12.el7.ppc64le
perl-XML-Twig-3.44-2.el7.noarch
crash-trace-command-2.0-12.el7.ppc64le
crash-gcore-command-1.3.1-0.el7.ppc64le
libgnome-keyring-devel-3.12.0-1.el7.ppc64le
binutils-devel-2.25.1-31.base.el7.ppc64le
libcap-ng-devel-0.7.5-4.el7.ppc64le
bash-completion-2.1-6.el7.noarch
dstat-0.7.2-12.el7.noarch
wget-1.14-15.el7.ppc64le
gpg-pubkey-352c64e5-52ae6884
certmonger-0.78.4-3.el7.ppc64le
libatomic-static-4.8.5-16.el7.ppc64le
libicu-devel-50.1.2-15.el7.ppc64le
caribou-0.4.21-1.el7.ppc64le
grub2-common-2.02-0.64.el7.centos.noarch
plymouth-graphics-libs-0.8.9-0.28.20140113.el7.centos.ppc64le
kernel-3.10.0-693.el7.ppc64le
perl-Perl-OSType-1.003-3.el7.noarch
libvirt-daemon-3.2.0-14.el7.ppc64le
ledmon-0.80-2.el7.ppc64le
gupnp-av-0.12.10-1.el7.ppc64le
cups-1.6.3-29.el7.ppc64le
mozilla-filesystem-1.9-11.el7.ppc64le
libqmi-utils-1.16.0-1.el7.ppc64le
anaconda-core-21.48.22.121-1.el7.centos.ppc64le
perl-JSON-PP-2.27202-2.el7.noarch
libvirt-client-3.2.0-14.el7.ppc64le
numactl-devel-2.0.9-6.el7_2.ppc64le
cups-client-1.6.3-29.el7.ppc64le
mutter-3.22.3-11.el7.ppc64le
ipa-common-4.5.0-20.el7.centos.noarch
glibc-devel-2.17-196.el7.ppc64le
firefox-52.2.0-2.el7.centos.ppc64le
perl-Params-Check-0.38-2.el7.noarch
virt-manager-common-1.4.1-7.el7.noarch
indent-2.2.11-13.el7.ppc64le
python-linux-procfs-0.4.9-3.el7.noarch
gnome-session-3.22.3-4.el7.ppc64le
adwaita-cursor-theme-3.22.0-1.el7.noarch
perl-Archive-Extract-0.68-3.el7.noarch
gnome-initial-setup-3.22.1-4.el7.ppc64le
perl-IO-Compress-2.061-2.el7.noarch
geoclue2-2.4.5-1.el7.ppc64le
khmeros-base-fonts-5.0-17.el7.noarch
python-tempita-0.5.1-6.el7.noarch
gnome-online-accounts-3.22.5-1.el7.ppc64le
nhn-nanum-fonts-common-3.020-9.el7.noarch
gobject-introspection-devel-1.50.0-1.el7.ppc64le
rhythmbox-3.4.1-1.el7.ppc64le
libavc1394-0.5.3-14.el7.ppc64le
telepathy-gabble-0.18.1-4.el7.ppc64le
stix-fonts-1.1.0-5.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
gnome-packagekit-installer-3.22.1-2.el7.ppc64le
mesa-filesystem-17.0.1-6.20170307.el7.ppc64le
konkretcmpi-python-0.9.1-5.el7.ppc64le
libsane-hpaio-3.15.9-3.el7.ppc64le
copy-jdk-configs-2.2-3.el7.noarch
usb_modeswitch-2.4.0-5.el7.ppc64le
nhn-nanum-gothic-fonts-3.020-9.el7.noarch
pytz-2016.10-2.el7.noarch
librsvg2-tools-2.40.16-1.el7.ppc64le
bash-4.2.46-28.el7.ppc64le
libreport-plugin-bugzilla-2.1.11-38.el7.centos.ppc64le
kde-workspace-devel-4.11.19-8.el7.ppc64le
libdb-devel-5.3.21-20.el7.ppc64le
fxload-2002_04_11-16.el7.ppc64le
google-crosextra-caladea-fonts-1.002-0.4.20130214.el7.noarch
python-pycparser-2.14-1.el7.noarch
libtimezonemap-0.4.4-1.el7.ppc64le
libcom_err-1.42.9-10.el7.ppc64le
frei0r-plugins-1.3-13.el7.ppc64le
ibus-m17n-1.3.4-13.el7.ppc64le
libcdio-paranoia-10.2+0.90-11.el7.ppc64le
netcf-libs-0.2.8-4.el7.ppc64le
lohit-punjabi-fonts-2.5.3-2.el7.noarch
cmpi-bindings-pywbem-0.9.5-6.el7.ppc64le
at-spi2-core-devel-2.22.0-1.el7.ppc64le
xz-libs-5.2.2-1.el7.ppc64le
libasyncns-0.8-7.el7.ppc64le
libcanberra-devel-0.30-5.el7.ppc64le
coreutils-8.22-18.el7.ppc64le
sssd-ad-1.15.2-50.el7.ppc64le
doxygen-1.8.5-3.el7.ppc64le
httpd-tools-2.4.6-67.el7.centos.ppc64le
libspectre-0.2.8-1.el7.ppc64le
cyrus-sasl-lib-2.1.26-21.el7.ppc64le
rubygem-bigdecimal-1.2.0-30.el7.ppc64le
icedtea-web-1.6.2-4.el7.ppc64le
libarchive-3.1.2-10.el7_2.ppc64le
python-pyblock-0.53-6.el7.ppc64le
byacc-1.9.20130304-3.el7.ppc64le
wodim-1.1.11-23.el7.ppc64le
xorg-x11-drv-qxl-0.1.5-3.el7.ppc64le
elfutils-libelf-0.168-8.el7.ppc64le
rubygem-thor-0.19.1-1.el7.noarch
file-roller-nautilus-3.22.3-1.el7.ppc64le
pkgconfig-0.27.1-4.el7.ppc64le
setroubleshoot-server-3.2.28-3.el7.ppc64le
iwl2030-firmware-18.168.6.1-56.el7.noarch
mailx-12.5-16.el7.ppc64le
xorg-x11-drv-fbdev-0.4.3-25.el7.ppc64le
libtevent-0.9.31-1.el7.ppc64le
policycoreutils-2.5-17.1.el7.ppc64le
java-1.7.0-openjdk-devel-1.7.0.141-2.6.10.5.el7.ppc64le
gsettings-desktop-schemas-3.22.0-1.el7.ppc64le
yum-3.4.3-154.el7.centos.noarch
iwl6000g2a-firmware-17.168.5.3-56.el7.noarch
perl-B-Lint-1.17-3.el7.noarch
gstreamer-plugins-bad-free-0.10.23-23.el7.ppc64le
libvorbis-1.3.3-8.el7.ppc64le
rarian-compat-0.8.1-11.el7.ppc64le
abrt-desktop-2.1.11-48.el7.centos.ppc64le
desktop-file-utils-0.23-1.el7.ppc64le
libiptcdata-1.0.4-11.el7.ppc64le
gpg-pubkey-f533f4fa-56585169
perl-DB_File-1.830-6.el7.ppc64le
compat-poppler022-qt-0.22.5-4.el7.ppc64le
libldb-1.1.29-1.el7.ppc64le
http-parser-2.7.1-1.el7.ppc64le
NetworkManager-libreswan-gnome-1.2.4-2.el7.ppc64le
centos-logos-70.0.6-3.el7.centos.noarch
libX11-common-1.6.5-1.el7.noarch
libstdc++-4.8.5-16.el7_4.1.ppc64le
perl-FCGI-0.74-8.el7.ppc64le
pango-devel-1.40.4-1.el7.ppc64le
libbasicobjects-0.1.1-27.el7.ppc64le
gtk2-immodule-xim-2.24.31-1.el7.ppc64le
libgnome-keyring-3.12.0-1.el7.ppc64le
libXrender-0.9.10-1.el7.ppc64le
libitm-devel-4.8.5-16.el7_4.1.ppc64le
perl-Business-ISBN-2.06-2.el7.noarch
freeglut-2.8.1-3.el7.ppc64le
device-mapper-1.02.140-8.el7.ppc64le
xdg-desktop-portal-gtk-0.5-1.el7.ppc64le
libudisks2-2.1.2-6.el7.ppc64le
pulseaudio-libs-10.0-3.el7.ppc64le
perl-HTTP-Daemon-6.01-5.el7.noarch
xorg-x11-xauth-1.0.9-1.el7.ppc64le
nettle-2.7.1-8.el7.ppc64le
polkit-pkla-compat-0.1-4.el7.ppc64le
startup-notification-devel-0.12-8.el7.ppc64le
genisoimage-1.1.11-23.el7.ppc64le
dbus-x11-1.6.12-17.el7.ppc64le
perl-Text-Soundex-3.04-4.el7.ppc64le
xdg-user-dirs-0.15-4.el7.ppc64le
jansson-2.10-1.el7.ppc64le
NetworkManager-glib-1.8.0-9.el7.ppc64le
rpm-sign-4.11.3-25.el7.ppc64le
gettext-0.19.8.1-2.el7.ppc64le
cairo-1.14.8-2.el7.ppc64le
perl-IO-Socket-SSL-1.94-6.el7.noarch
kdepimlibs-kxmlrpcclient-4.10.5-4.el7.ppc64le
libplist-1.12-3.el7.ppc64le
libwbclient-4.6.2-8.el7.ppc64le
cgdcbxd-1.0.2-7.el7.ppc64le
glib2-devel-2.50.3-3.el7.ppc64le
gdk-pixbuf2-devel-2.36.5-1.el7.ppc64le
theora-tools-1.1.1-8.el7.ppc64le
libkipi-4.10.5-3.el7.ppc64le
libmng-1.0.10-14.el7.ppc64le
abrt-addon-kerneloops-2.1.11-48.el7.centos.ppc64le
grub2-2.02-0.64.el7.centos.ppc64le
xz-devel-5.2.2-1.el7.ppc64le
xorg-x11-xkb-utils-7.7-12.el7.ppc64le
libverto-tevent-0.2.5-4.el7.ppc64le
libkdcraw-devel-4.10.5-4.el7.ppc64le
bzip2-1.0.6-13.el7.ppc64le
iputils-20160308-10.el7.ppc64le
cifs-utils-6.2-10.el7.ppc64le
libpinyin-0.9.93-4.el7.ppc64le
libao-1.1.0-8.el7.ppc64le
gdbm-devel-1.10-8.el7.ppc64le
kdepim-libs-4.10.5-6.el7.ppc64le
libxshmfence-1.2-1.el7.ppc64le
libstoragemgmt-1.4.0-3.el7.ppc64le
psacct-6.6.1-13.el7.ppc64le
pyliblzma-0.5.3-11.el7.ppc64le
libXcursor-devel-1.1.14-8.el7.ppc64le
hesiod-3.2.1-3.el7.ppc64le
okular-devel-4.10.5-4.el7.ppc64le
gsm-1.0.13-11.el7.ppc64le
telepathy-mission-control-5.16.3-3.el7.ppc64le
rng-tools-5-11.el7.ppc64le
python-chardet-2.2.1-1.el7_1.noarch
libcanberra-gtk3-0.30-5.el7.ppc64le
krb5-devel-1.15.1-8.el7.ppc64le
kdesdk-kompare-devel-4.10.5-6.el7.ppc64le
unixODBC-2.3.1-11.el7.ppc64le
dbus-devel-1.6.12-17.el7.ppc64le
kpatch-0.4.0-1.el7.noarch
graphite2-1.3.6-1.el7_2.ppc64le
nautilus-extensions-3.22.3-3.el7.ppc64le
libdb-utils-5.3.21-20.el7.ppc64le
sane-backends-libs-1.0.24-9.el7.ppc64le
zip-3.0-11.el7.ppc64le
mdadm-4.0-5.el7.ppc64le
memstomp-0.1.4-11.el7.ppc64le
libconfig-1.4.9-5.el7.ppc64le
clutter-gst2-2.0.18-1.el7.ppc64le
postgresql-libs-9.2.21-1.el7.ppc64le
gsound-1.0.2-2.el7.ppc64le
ilmbase-1.0.3-7.el7.ppc64le
udisks2-2.1.2-6.el7.ppc64le
perl-core-5.16.3-292.el7.ppc64le
pcsc-lite-libs-1.8.8-6.el7.ppc64le
gvnc-0.7.0-2.el7.ppc64le
qemu-img-1.5.3-141.el7.ppc64le
libappstream-glib-0.6.10-1.el7.ppc64le
sg3_utils-libs-1.37-12.el7.ppc64le
librdmacm-13-7.el7.ppc64le
adcli-0.8.1-3.el7.ppc64le
libnfnetlink-1.0.1-4.el7.ppc64le
colord-gtk-0.1.25-4.el7.ppc64le
libuser-python-0.60-7.el7_1.ppc64le
libfprint-0.5.0-4.el7.ppc64le
OpenEXR-libs-1.7.1-7.el7.ppc64le
attica-devel-0.4.2-1.el7.ppc64le
papi-devel-5.2.0-23.el7.ppc64le
m17n-lib-1.6.4-14.el7.ppc64le
qimageblitz-0.0.6-7.el7.ppc64le
python-urlgrabber-3.10-8.el7.noarch
pcp-selinux-3.11.8-7.el7.ppc64le
perl-Text-ParseWords-3.29-4.el7.noarch
apr-util-devel-1.5.2-6.el7.ppc64le
readline-devel-6.2-10.el7.ppc64le
python-kitchen-1.1.1-5.el7.noarch
gnome-abrt-0.3.4-8.el7.ppc64le
check-devel-0.9.9-5.el7.ppc64le
pulseaudio-gdm-hooks-10.0-3.el7.ppc64le
perl-Scalar-List-Utils-1.27-248.el7.ppc64le
abrt-addon-ccpp-2.1.11-48.el7.centos.ppc64le
gnome-icon-theme-extras-3.12.0-1.el7.noarch
python-slip-0.4.0-2.el7.noarch
brlapi-0.6.0-15.el7.ppc64le
qpdf-libs-5.0.1-3.el7.ppc64le
yelp-xsl-3.20.1-1.el7.noarch
perl-Storable-2.45-3.el7.ppc64le
libosinfo-1.0.0-1.el7.ppc64le
libcap-devel-2.22-9.el7.ppc64le
libepoxy-devel-1.3.1-1.el7.ppc64le
festival-1.96-28.el7.ppc64le
libusbx-1.0.20-1.el7.ppc64le
libvirt-daemon-driver-storage-disk-3.2.0-14.el7.ppc64le
perl-Test-Harness-3.28-3.el7.noarch
polkit-devel-0.112-12.el7_3.ppc64le
perl-Crypt-SSLeay-0.64-5.el7.ppc64le
libverto-devel-0.2.5-4.el7.ppc64le
caribou-gtk2-module-0.4.21-1.el7.ppc64le
vim-filesystem-7.4.160-2.el7.ppc64le
procps-ng-3.3.10-16.el7.ppc64le
NetworkManager-libreswan-1.2.4-2.el7.ppc64le
perl-Module-Metadata-1.000018-2.el7.noarch
pixman-devel-0.34.0-1.el7.ppc64le
patchutils-0.3.3-4.el7.ppc64le
filesystem-3.2-21.el7.ppc64le
cups-filesystem-1.6.3-29.el7.noarch
gettext-devel-0.19.8.1-2.el7.ppc64le
usbredir-0.7.1-2.el7.ppc64le
neon-0.30.0-3.el7.ppc64le
perl-LWP-MediaTypes-6.02-2.el7.noarch
python-qrcode-core-5.0.1-1.el7.noarch
hyphen-en-2.8.6-5.el7.noarch
gnu-free-fonts-common-20120503-8.el7.noarch
gtkmm30-3.22.0-1.el7.ppc64le
initial-setup-gui-0.3.9.40-1.el7.centos.ppc64le
libhugetlbfs-2.16-12.el7.ppc64le
subversion-libs-1.7.14-10.el7.ppc64le
perl-Encode-Locale-1.03-5.el7.noarch
python-inotify-0.9.4-4.el7.noarch
nano-2.3.1-10.el7.ppc64le
mobile-broadband-provider-info-1.20170310-1.el7.noarch
adwaita-gtk2-theme-3.22.2-1.el7.ppc64le
ipa-client-4.5.0-20.el7.centos.ppc64le
perl-IPC-Cmd-0.80-4.el7.noarch
libsoup-2.56.0-3.el7.ppc64le
perl-Term-UI-0.36-2.el7.noarch
python-setuptools-0.9.8-7.el7.noarch
dejavu-sans-mono-fonts-2.33-6.el7.noarch
bind-license-9.9.4-50.el7.noarch
webkitgtk4-jsc-2.14.7-2.el7.ppc64le
firewall-config-0.4.4.4-6.el7.noarch
perl-CPAN-1.9800-292.el7.noarch
gupnp-1.0.1-1.el7.ppc64le
boost-graph-1.53.0-27.el7.ppc64le
python-perf-3.10.0-693.el7.ppc64le
overpass-fonts-2.1-1.el7.noarch
thai-scalable-fonts-common-0.5.0-7.el7.noarch
webkitgtk4-jsc-devel-2.14.7-2.el7.ppc64le
pulseaudio-module-x11-10.0-3.el7.ppc64le
marisa-0.2.4-4.el7.ppc64le
gnutls-c++-3.3.26-9.el7.ppc64le
ca-certificates-2017.2.14-71.el7.noarch
python-idna-2.4-1.el7.noarch
strace-4.12-4.el7.ppc64le
nss-softokn-freebl-3.28.3-6.el7.ppc64le
vino-3.22.0-3.el7.ppc64le
libXaw-devel-1.0.13-4.el7.ppc64le
libreport-centos-2.1.11-38.el7.centos.ppc64le
alsa-utils-1.1.3-2.el7.ppc64le
libnl3-cli-3.2.28-4.el7.ppc64le
python-iniparse-0.4-9.el7.noarch
traceroute-2.0.22-2.el7.ppc64le
libselinux-2.5-11.el7.ppc64le
keybinder3-0.3.0-1.el7.ppc64le
kdepim-devel-4.10.5-6.el7.ppc64le
pakchois-0.4-10.el7.ppc64le
cryptsetup-python-1.7.4-3.el7.ppc64le
libjpeg-turbo-devel-1.2.90-5.el7.ppc64le
python-jwcrypto-0.2.1-1.el7.noarch
lohit-malayalam-fonts-2.5.3-2.el7.noarch
libpng-1.5.13-7.el7_2.ppc64le
freerdp-plugins-1.0.2-10.el7.ppc64le
ibus-chewing-1.4.4-14.el7.ppc64le
libfastjson-0.99.4-2.el7.ppc64le
libsss_sudo-1.15.2-50.el7.ppc64le
redhat-menus-12.0.2-8.el7.noarch
bind-libs-9.9.4-50.el7.ppc64le
gnu-free-sans-fonts-20120503-8.el7.noarch
libuuid-2.23.2-43.el7.ppc64le
festival-freebsoft-utils-0.10-7.el7.noarch
unique3-devel-3.0.2-8.el7.ppc64le
compat-poppler022-0.22.5-4.el7.ppc64le
sssd-proxy-1.15.2-50.el7.ppc64le
python-2.7.5-58.el7.ppc64le
libwvstreams-4.6.1-11.el7.ppc64le
lrzsz-0.12.20-36.el7.ppc64le
sqlite-3.7.17-8.el7.ppc64le
xorg-x11-server-common-1.19.3-11.el7.ppc64le
sushi-3.21.91-1.el7.ppc64le
rubygem-psych-2.0.0-30.el7.ppc64le
gnupg2-2.0.22-4.el7.ppc64le
libmount-2.23.2-43.el7.ppc64le
nss-3.28.4-8.el7.ppc64le
iwl3160-firmware-22.0.7.0-56.el7.noarch
libnl3-3.2.28-4.el7.ppc64le
xorg-x11-drv-ati-7.7.1-3.20160928git3fc839ff.el7.ppc64le
evolution-mapi-3.22.6-1.el7.ppc64le
libservicelog-1.1.17-2.el7.ppc64le
perl-PAR-Dist-0.49-2.el7.noarch
dbus-glib-0.100-7.el7.ppc64le
docbook-style-xsl-1.78.1-3.el7.noarch
iwl100-firmware-39.31.5.1-56.el7.noarch
libxslt-1.1.28-5.el7.ppc64le
junit-4.11-8.el7.noarch
gnome-session-xsession-3.22.3-4.el7.ppc64le
selinux-policy-3.13.1-166.el7.noarch
PackageKit-1.1.5-1.el7.centos.ppc64le
zlib-devel-1.2.7-17.el7.ppc64le
perl-libxml-perl-0.08-19.el7.noarch
iwl4965-firmware-228.61.2.24-56.el7.noarch
p11-kit-0.23.5-3.el7.ppc64le
spice-gtk3-0.33-6.el7.ppc64le
pygobject3-devel-3.22.0-1.el7.ppc64le
systemtap-runtime-3.1-3.el7.ppc64le
nss-softokn-freebl-devel-3.28.3-6.el7.ppc64le
libgee-0.18.1-1.el7.ppc64le
perl-PlRPC-0.2020-14.el7.noarch
python34-libs-3.4.5-4.el7.ppc64le
json-c-0.11-4.el7_0.ppc64le
plymouth-plugin-two-step-0.8.9-0.28.20140113.el7.centos.ppc64le
gnome-font-viewer-3.22.0-1.el7.ppc64le
sssd-client-1.15.2-50.el7.ppc64le
libXext-1.3.3-3.el7.ppc64le
nspr-devel-4.13.1-1.0.el7_3.ppc64le
perl-Algorithm-Diff-1.1902-17.el7.noarch
libgomp-4.8.5-16.el7_4.1.ppc64le
tcp_wrappers-libs-7.6-77.el7.ppc64le
libgdata-devel-0.17.8-1.el7.ppc64le
gnome-screenshot-3.22.0-1.el7.ppc64le
mtdev-1.1.5-5.el7.ppc64le
mesa-libEGL-17.0.1-6.20170307.el7.ppc64le
libpng-devel-1.5.13-7.el7_2.ppc64le
perl-Digest-SHA1-2.13-9.el7.ppc64le
libdhash-0.4.3-27.el7.ppc64le
phonon-devel-4.6.0-10.el7.ppc64le
qt3-ODBC-3.3.8b-51.el7.ppc64le
systemd-219-42.el7.ppc64le
libXinerama-1.1.3-2.1.el7.ppc64le
gdb-7.6.1-100.el7.ppc64le
perl-File-Listing-6.04-7.el7.noarch
jasper-libs-1.900.1-31.el7.ppc64le
ibus-setup-1.5.3-13.el7.noarch
spice-vdagent-0.14.0-14.el7.ppc64le
PackageKit-glib-1.1.5-1.el7.centos.ppc64le
libXmu-1.1.2-2.el7.ppc64le
atkmm-2.24.2-1.el7.ppc64le
perl-Sys-Syslog-0.33-3.el7.ppc64le
libXdmcp-1.1.2-6.el7.ppc64le
kdelibs-devel-4.14.8-6.el7_3.ppc64le
targetcli-2.1.fb46-1.el7.noarch
libcgroup-0.41-13.el7.ppc64le
qt-x11-4.8.5-13.el7.ppc64le
libxcb-devel-1.12-1.el7.ppc64le
perl-HTML-Format-2.10-7.el7.noarch
libsss_idmap-1.15.2-50.el7.ppc64le
kactivities-4.10.5-3.el7.ppc64le
httpd-devel-2.4.6-67.el7.centos.ppc64le
abrt-2.1.11-48.el7.centos.ppc64le
java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.ppc64le
apr-devel-1.4.8-3.el7.ppc64le
cdparanoia-10.2-17.el7.ppc64le
libpcap-1.5.3-9.el7.ppc64le
libkworkspace-4.11.19-8.el7.ppc64le
dbus-glib-devel-0.100-7.el7.ppc64le
crontabs-1.11-6.20121102git.el7.noarch
libXi-devel-1.7.9-1.el7.ppc64le
gnome-menus-3.13.3-3.el7.ppc64le
libieee1284-devel-0.2.11-15.el7.ppc64le
kmod-libs-20-15.el7.ppc64le
kde-runtime-4.10.5-8.el7.ppc64le
mod_ssl-2.4.6-67.el7.centos.ppc64le
cyrus-sasl-2.1.26-21.el7.ppc64le
libXScrnSaver-1.2.2-6.1.el7.ppc64le
python-augeas-0.5.0-2.el7.noarch
LibRaw-0.14.8-5.el7.20120830git98d925.ppc64le
hyphen-2.8.6-5.el7.ppc64le
kdenetwork-krdc-libs-4.10.5-8.el7_0.ppc64le
opal-prd-5.5.0-1.el7.ppc64le
rdma-core-13-7.el7.ppc64le
pulseaudio-10.0-3.el7.ppc64le
python-sssdconfig-1.15.2-50.el7.noarch
libisofs-1.2.8-4.el7.ppc64le
libverto-0.2.5-4.el7.ppc64le
kdesdk-kmtrace-devel-4.10.5-6.el7.ppc64le
systemd-devel-219-42.el7.ppc64le
mesa-dri-drivers-17.0.1-6.20170307.el7.ppc64le
clutter-1.26.0-1.el7.ppc64le
fipscheck-1.4.1-6.el7.ppc64le
dwz-0.11-3.el7.ppc64le
boost-regex-1.53.0-27.el7.ppc64le
libXaw-1.0.13-4.el7.ppc64le
systemd-python-219-42.el7.ppc64le
zenity-3.22.0-1.el7.ppc64le
boost-atomic-1.53.0-27.el7.ppc64le
rpm-libs-4.11.3-25.el7.ppc64le
GeoIP-1.5.0-11.el7.ppc64le
libksane-devel-4.10.5-4.el7.ppc64le
rubygem-bundler-1.7.8-3.el7.noarch
git-1.8.3.1-11.el7.ppc64le
brasero-libs-3.12.1-2.el7.ppc64le
c-ares-1.10.0-3.el7.ppc64le
libnfsidmap-0.25-17.el7.ppc64le
cdparanoia-libs-10.2-17.el7.ppc64le
tk-8.5.13-6.el7.ppc64le
libhugetlbfs-devel-2.16-12.el7.ppc64le
NetworkManager-wifi-1.8.0-9.el7.ppc64le
libcanberra-gtk2-0.30-5.el7.ppc64le
hostname-3.13-3.el7.ppc64le
redland-1.0.16-6.el7.ppc64le
libdaemon-0.14-7.el7.ppc64le
brasero-3.12.1-2.el7.ppc64le
cups-devel-1.6.3-29.el7.ppc64le
qca2-2.0.3-7.el7.ppc64le
pangomm-2.40.1-1.el7.ppc64le
libnetfilter_conntrack-1.0.6-1.el7_3.ppc64le
sip-devel-4.14.6-4.el7.ppc64le
perl-parent-0.225-244.el7.noarch
libkkc-0.3.1-9.el7.ppc64le
crypto-utils-2.4.1-42.el7.ppc64le
lvm2-2.02.171-8.el7.ppc64le
poppler-glib-0.26.5-16.el7.ppc64le
crash-7.1.9-2.el7.ppc64le
libbluray-0.2.3-5.el7.ppc64le
perl-Filter-1.49-3.el7.ppc64le
control-center-3.22.2-5.el7.ppc64le
c-ares-devel-1.10.0-3.el7.ppc64le
sysstat-10.1.5-12.el7.ppc64le
mesa-libGL-devel-17.0.1-6.20170307.el7.ppc64le
python-pwquality-1.2.3-4.el7.ppc64le
liblouis-python-2.5.2-10.el7.noarch
perl-PathTools-3.40-5.el7.ppc64le
gnome-shell-extension-apps-menu-3.22.2-10.el7.noarch
hunspell-devel-1.3.2-15.el7.ppc64le
policycoreutils-python-2.5-17.1.el7.ppc64le
libwnck3-3.20.1-1.el7.ppc64le
gsettings-desktop-schemas-devel-3.22.0-1.el7.ppc64le
lsof-4.87-4.el7.ppc64le
perl-Getopt-Long-2.40-2.el7.noarch
nfs-utils-1.3.0-0.48.el7.ppc64le
mtr-0.85-7.el7.ppc64le
autofs-5.0.7-69.el7.ppc64le
cairo-devel-1.14.8-2.el7.ppc64le
xorg-x11-xbitmaps-1.1.1-6.el7.noarch
libreport-2.1.11-38.el7.centos.ppc64le
perl-XML-Parser-2.41-10.el7.ppc64le
libvirt-daemon-driver-storage-3.2.0-14.el7.ppc64le
python2-caribou-0.4.21-1.el7.noarch
fontpackages-filesystem-1.44-8.el7.noarch
perl-Test-Pod-1.48-3.el7.noarch
libuuid-devel-2.23.2-43.el7.ppc64le
perl-Package-Constants-0.02-292.el7.noarch
gnutls-3.3.26-9.el7.ppc64le
libreport-cli-2.1.11-38.el7.centos.ppc64le
gettext-common-devel-0.19.8.1-2.el7.noarch
cups-filters-1.0.35-22.el7.ppc64le
xkeyboard-config-2.20-1.el7.noarch
bison-3.0.4-1.el7.ppc64le
compat-libcolord1-1.0.4-1.el7.ppc64le
perl-Digest-MD5-2.52-3.el7.ppc64le
gnutls-dane-3.3.26-9.el7.ppc64le
libusbx-devel-1.0.20-1.el7.ppc64le
initial-setup-0.3.9.40-1.el7.centos.ppc64le
libchamplain-gtk-0.12.15-1.el7.ppc64le
libreport-filesystem-2.1.11-38.el7.centos.ppc64le
m17n-contrib-1.1.14-3.el7.noarch
newt-python-0.52.15-4.el7.ppc64le
perl-Locale-Maketext-1.23-3.el7.noarch
libvirt-daemon-driver-nodedev-3.2.0-14.el7.ppc64le
perl-ExtUtils-Install-1.58-292.el7.noarch
libvirt-3.2.0-14.el7.ppc64le
gnome-themes-standard-3.22.2-1.el7.ppc64le
gl-manpages-1.1-7.20130122.el7.noarch
lohit-gujarati-fonts-2.5.3-2.el7.noarch
python-backports-ssl_match_hostname-3.4.0.2-4.el7.noarch
perl-local-lib-1.008010-4.el7.noarch
rest-0.8.0-1.el7.ppc64le
perl-Module-Build-0.40.05-2.el7.noarch
ibus-kkc-1.5.18-7.el7.ppc64le
webkitgtk4-plugin-process-gtk2-2.14.7-2.el7.ppc64le
basesystem-10.0-7.el7.centos.noarch
madan-fonts-2.000-11.el7.noarch
python-beaker-1.5.4-10.el7.noarch
boost-locale-1.53.0-27.el7.ppc64le
dleyna-core-0.5.0-1.el7.ppc64le
liberation-sans-fonts-1.07.2-15.el7.noarch
tk-devel-8.5.13-6.el7.ppc64le
gnome-packagekit-updater-3.22.1-2.el7.ppc64le
cim-schema-2.33.0-6.el7.noarch
lohit-assamese-fonts-2.5.3-2.el7.noarch
tagsoup-1.2.1-8.el7.noarch
libshout-2.2.2-11.el7.ppc64le
ntpdate-4.2.6p5-25.el7.centos.2.ppc64le
libproxy-0.4.11-10.el7.ppc64le
gvfs-gphoto2-1.30.4-3.el7.ppc64le
gspell-1.2.3-1.el7.ppc64le
sil-nuosu-fonts-2.1.1-5.el7.noarch
python-ntplib-0.3.2-1.el7.noarch
bc-1.06.95-13.el7.ppc64le
libvirt-daemon-driver-lxc-3.2.0-14.el7.ppc64le
libreport-anaconda-2.1.11-38.el7.centos.ppc64le
kdepimlibs-devel-4.10.5-4.el7.ppc64le
unique3-3.0.2-8.el7.ppc64le
freetype-2.4.11-15.el7.ppc64le
lohit-marathi-fonts-2.5.3-2.el7.noarch
python2-cryptography-1.7.2-1.el7.ppc64le
libss-1.42.9-10.el7.ppc64le
kernel-tools-libs-3.10.0-693.el7.ppc64le
libsysfs-2.1.0-16.el7.ppc64le
ibus-hangul-1.4.2-10.el7.ppc64le
freerdp-1.0.2-10.el7.ppc64le
popt-1.13-16.el7.ppc64le
open-sans-fonts-1.10-1.el7.noarch
bind-libs-lite-9.9.4-50.el7.ppc64le
lksctp-tools-1.0.17-2.el7.ppc64le
sssd-common-pac-1.15.2-50.el7.ppc64le
libtiff-4.0.3-27.el7_3.ppc64le
gnome-desktop3-devel-3.22.2-2.el7.ppc64le
cdrdao-1.2.3-20.el7.ppc64le
expat-2.1.0-10.el7_3.ppc64le
latrace-0.5.11-6.1.el7.ppc64le
perl-Net-SSLeay-1.55-6.el7.ppc64le
cups-libs-1.6.3-29.el7.ppc64le
dmraid-events-1.0.0.rc16-28.el7.ppc64le
rubygem-io-console-0.4.2-30.el7.ppc64le
gutenprint-cups-5.2.9-18.el7.ppc64le
xorg-x11-server-Xorg-1.19.3-11.el7.ppc64le
libtalloc-2.1.9-1.el7.ppc64le
iwl6000g2b-firmware-17.168.5.2-56.el7.noarch
nss-sysinit-3.28.4-8.el7.ppc64le
glib2-2.50.3-3.el7.ppc64le
rpm-python-4.11.3-25.el7.ppc64le
ustr-1.0.4-16.el7.ppc64le
gucharmap-3.18.2-1.el7.ppc64le
xorg-x11-drv-dummy-0.3.7-1.el7.ppc64le
libogg-1.3.0-7.el7.ppc64le
iwl6000-firmware-9.221.4.1-56.el7.noarch
docbook-dtds-1.0-60.el7.noarch
xorg-x11-proto-devel-7.7-20.el7.noarch
pygpgme-0.3-9.el7.ppc64le
openssh-7.4p1-11.el7.ppc64le
cheese-3.22.1-1.el7.ppc64le
jline-1.0-8.el7.noarch
libcap-2.22-9.el7.ppc64le
ivtv-firmware-20080701-26.el7.noarch
perl-Pod-LaTeX-0.61-2.el7.noarch
enchant-1.6.0-8.el7.ppc64le
python2-ipalib-4.5.0-20.el7.centos.noarch
tog-pegasus-libs-2.14.1-5.el7.ppc64le
firstboot-19.12-1.el7.ppc64le
gupnp-dlna-0.10.5-1.el7.ppc64le
which-2.20-7.el7.ppc64le
epel-release-7-9.noarch
perl-Net-Daemon-0.48-5.el7.noarch
libcroco-0.6.11-1.el7.ppc64le
liboauth-devel-0.9.7-4.el7.ppc64le
libhangul-0.1.0-8.el7.ppc64le
eog-3.20.5-2.el7.ppc64le
plymouth-theme-charge-0.8.9-0.28.20140113.el7.centos.ppc64le
libcollection-0.6.2-27.el7.ppc64le
libgfortran-4.8.5-16.el7_4.1.ppc64le
perl-Locale-Codes-3.26-2.el7.noarch
pygobject2-2.28.6-11.el7.ppc64le
libXdamage-1.1.4-4.1.el7.ppc64le
libestr-0.1.9-2.el7.ppc64le
PackageKit-gtk3-module-1.1.5-1.el7.centos.ppc64le
libgweather-devel-3.20.4-1.el7.ppc64le
xz-5.2.2-1.el7.ppc64le
perl-WWW-RobotRules-6.02-5.el7.noarch
libICE-devel-1.0.9-9.el7.ppc64le
libXft-2.3.2-2.el7.ppc64le
cryptsetup-libs-1.7.4-3.el7.ppc64le
alsa-plugins-pulseaudio-1.1.1-1.el7.ppc64le
glx-utils-8.2.0-3.el7.ppc64le
speex-1.2-0.19.rc1.el7.ppc64le
perl-HTTP-Negotiate-6.01-5.el7.noarch
libtirpc-0.2.4-0.10.el7.ppc64le
pulseaudio-libs-glib2-10.0-3.el7.ppc64le
mesa-libgbm-17.0.1-6.20170307.el7.ppc64le
pulseaudio-libs-devel-10.0-3.el7.ppc64le
imsettings-1.6.3-9.el7.ppc64le
hunspell-en-US-0.20121024-6.el7.noarch
perl-IO-Socket-IP-0.21-4.el7.noarch
nss-util-devel-3.28.4-3.el7.ppc64le
libXxf86vm-1.1.4-1.el7.ppc64le
hwdata-0.252-8.6.el7.ppc64le
kernel-tools-3.10.0-693.el7.ppc64le
nepomuk-core-libs-4.10.5-5.el7.ppc64le
exiv2-libs-0.23-6.el7.ppc64le
perl-libwww-perl-6.05-2.el7.noarch
p11-kit-devel-0.23.5-3.el7.ppc64le
librsvg2-2.40.16-1.el7.ppc64le
libsmbclient-4.6.2-8.el7.ppc64le
abrt-console-notification-2.1.11-48.el7.centos.ppc64le
kdesdk-okteta-libs-4.10.5-6.el7.ppc64le
boost-chrono-1.53.0-27.el7.ppc64le
iw-4.3-1.el7.ppc64le
libcom_err-devel-1.42.9-10.el7.ppc64le
akonadi-1.9.2-4.el7.ppc64le
accountsservice-libs-0.6.45-2.el7.ppc64le
wvdial-1.61-9.el7.ppc64le
libkexiv2-devel-4.10.5-3.el7.ppc64le
libmpc-1.0.1-3.el7.ppc64le
lm_sensors-devel-3.4.0-4.20160601gitf9185e5.el7.ppc64le
meanwhile-1.1.0-12.el7.ppc64le
libXt-devel-1.1.5-3.el7.ppc64le
plymouth-scripts-0.8.9-0.28.20140113.el7.centos.ppc64le
mod_fcgid-2.3.9-4.el7.ppc64le
kdepim-runtime-libs-4.10.5-3.el7.ppc64le
mesa-libglapi-17.0.1-6.20170307.el7.ppc64le
hunspell-en-GB-0.20121024-6.el7.noarch
sip-4.14.6-4.el7.ppc64le
cairomm-1.12.0-1.el7.ppc64le
abrt-addon-xorg-2.1.11-48.el7.centos.ppc64le
ModemManager-1.6.0-2.el7.ppc64le
kdenetwork-krdc-devel-4.10.5-8.el7_0.ppc64le
libieee1284-0.2.11-15.el7.ppc64le
highlight-3.13-3.el7.ppc64le
pyOpenSSL-0.13.1-3.el7.ppc64le
gtk-update-icon-cache-3.22.10-4.el7.ppc64le
NetworkManager-1.8.0-9.el7.ppc64le
crda-3.13_2016.02.08-1.el7.ppc64le
kdesdk-kompare-libs-4.10.5-6.el7.ppc64le
newt-0.52.15-4.el7.ppc64le
xcb-util-0.4.0-2.el7.ppc64le
automake-1.13.4-3.el7.noarch
libgweather-3.20.4-1.el7.ppc64le
lockdev-1.0.4-0.13.20111007git.el7.ppc64le
man-db-2.6.3-9.el7.ppc64le
gd-2.0.35-26.el7.ppc64le
exempi-2.2.0-8.el7.ppc64le
curl-7.29.0-42.el7.ppc64le
snappy-1.1.0-3.el7.ppc64le
libreport-gtk-2.1.11-38.el7.centos.ppc64le
unbound-libs-1.4.20-34.el7.ppc64le
tcpdump-4.9.0-5.el7.ppc64le
sane-backends-drivers-scanners-1.0.24-9.el7.ppc64le
libedit-3.0-12.20121213cvs.el7.ppc64le
liboauth-0.9.7-4.el7.ppc64le
libmpcdec-1.2.6-12.el7.ppc64le
libnm-gtk-1.8.0-3.el7.ppc64le
grub2-tools-extra-2.02-0.64.el7.centos.ppc64le
libdmx-1.1.3-3.el7.ppc64le
wavpack-4.60.1-9.el7.ppc64le
rasqal-0.9.30-4.el7.ppc64le
autogen-libopts-5.18-5.el7.ppc64le
gnome-bluetooth-libs-3.20.1-1.el7.ppc64le
qt-settings-19-23.5.el7.centos.noarch
libxslt-devel-1.1.28-5.el7.ppc64le
grilo-plugins-0.3.4-1.el7.ppc64le
SDL-1.2.15-14.el7.ppc64le
sip-macros-4.14.6-4.el7.ppc64le
iptables-1.4.21-18.0.1.el7.centos.ppc64le
gstreamer-plugins-good-0.10.31-13.el7.ppc64le
qjson-0.8.1-4.el7.ppc64le
perl-Test-Pod-Coverage-1.08-21.el7.noarch
pcp-conf-3.11.8-7.el7.ppc64le
perl-podlators-2.5.1-3.el7.noarch
libcurl-devel-7.29.0-42.el7.ppc64le
graphite2-devel-1.3.6-1.el7_2.ppc64le
pygtk2-2.24.0-9.el7.ppc64le
kexec-tools-2.0.14-17.el7.ppc64le
iptables-devel-1.4.21-18.0.1.el7.centos.ppc64le
gnome-shell-3.22.3-17.el7.ppc64le
perl-Carp-1.26-244.el7.noarch
liblouis-2.5.2-10.el7.ppc64le
dvd+rw-tools-7.1-15.el7.ppc64le
ptlib-2.10.10-6.el7.ppc64le
samba-common-libs-4.6.2-8.el7.ppc64le
gvfs-devel-1.30.4-3.el7.ppc64le
gnome-shell-extension-launch-new-instance-3.22.2-10.el7.noarch
perl-libs-5.16.3-292.el7.ppc64le
libselinux-utils-2.5-11.el7.ppc64le
libsepol-devel-2.5-6.el7.ppc64le
festival-lib-1.96-28.el7.ppc64le
oddjob-0.31.5-4.el7.ppc64le
latencytop-tui-0.5-13.el7.ppc64le
libvirt-daemon-driver-storage-core-3.2.0-14.el7.ppc64le
perl-Data-Dumper-2.145-3.el7.ppc64le
libreport-python-2.1.11-38.el7.centos.ppc64le
libical-devel-1.0.1-1.el7.ppc64le
libmx-1.4.7-10.el7.ppc64le
cups-pk-helper-0.2.6-2.el7.ppc64le
=== TEST BEGIN ===
Install prefix /var/tmp/patchew-tester-tmp-c1l637im/src/install
BIOS directory /var/tmp/patchew-tester-tmp-c1l637im/src/install/share/qemu
firmware path /var/tmp/patchew-tester-tmp-c1l637im/src/install/share/qemu-firmware
binary directory /var/tmp/patchew-tester-tmp-c1l637im/src/install/bin
library directory /var/tmp/patchew-tester-tmp-c1l637im/src/install/lib
module directory /var/tmp/patchew-tester-tmp-c1l637im/src/install/lib/qemu
libexec directory /var/tmp/patchew-tester-tmp-c1l637im/src/install/libexec
include directory /var/tmp/patchew-tester-tmp-c1l637im/src/install/include
config directory /var/tmp/patchew-tester-tmp-c1l637im/src/install/etc
local state directory /var/tmp/patchew-tester-tmp-c1l637im/src/install/var
Manual directory /var/tmp/patchew-tester-tmp-c1l637im/src/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /var/tmp/patchew-tester-tmp-c1l637im/src
GIT binary git
GIT submodules ui/keycodemapdb dtc capstone
C compiler cc
Host C compiler cc
C++ compiler c++
Objective-C compiler cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -I/usr/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -Werror -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -DNCURSES_WIDECHAR -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -Wno-missing-braces -I/usr/include/p11-kit-1 -I/usr/include/libpng15 -I$(SRC_PATH)/capstone/include
LDFLAGS -Wl,--warn-common -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU ppc64
host big endian no
target list aarch64-softmmu alpha-softmmu arm-softmmu cris-softmmu hppa-softmmu i386-softmmu lm32-softmmu m68k-softmmu microblazeel-softmmu microblaze-softmmu mips64el-softmmu mips64-softmmu mipsel-softmmu mips-softmmu moxie-softmmu nios2-softmmu or1k-softmmu ppc64-softmmu ppcemb-softmmu ppc-softmmu s390x-softmmu sh4eb-softmmu sh4-softmmu sparc64-softmmu sparc-softmmu tricore-softmmu unicore32-softmmu x86_64-softmmu xtensaeb-softmmu xtensa-softmmu aarch64_be-linux-user aarch64-linux-user alpha-linux-user armeb-linux-user arm-linux-user cris-linux-user hppa-linux-user i386-linux-user m68k-linux-user microblazeel-linux-user microblaze-linux-user mips64el-linux-user mips64-linux-user mipsel-linux-user mips-linux-user mipsn32el-linux-user mipsn32-linux-user nios2-linux-user or1k-linux-user ppc64abi32-linux-user ppc64le-linux-user ppc64-linux-user ppc-linux-user s390x-linux-user sh4eb-linux-user sh4-linux-user sparc32plus-linux-user sparc64-linux-user sparc-linux-user tilegx-linux-user x86_64-linux-user
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
SDL support yes (1.2.15)
GTK support yes (3.22.10)
GTK GL support no
VTE support no
TLS priority NORMAL
GNUTLS support yes
GNUTLS rnd yes
libgcrypt no
libgcrypt kdf no
nettle yes (2.7.1)
nettle kdf yes
libtasn1 yes
curses support yes
virgl support no
curl support yes
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support yes
Multipath support no
VNC support yes
VNC SASL support yes
VNC JPEG support yes
VNC PNG support yes
xen support no
brlapi support no
bluez support no
Documentation no
PIE no
vde support no
netmap support no
Linux AIO support yes
ATTR/XATTR support yes
Install blobs yes
KVM support yes
HAX support no
HVF support no
TCG support yes
TCG debug enabled no
TCG interpreter no
malloc trim support yes
RDMA support yes
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
libcap-ng support yes
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
vhost-user support yes
Trace backends log
spice support no
rbd support no
xfsctl support no
smartcard support no
libusb yes
usb net redir no
OpenGL support no
OpenGL dmabufs no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support no
coroutine backend ucontext
coroutine pool yes
debug stack usage no
crypto afalg no
GlusterFS support no
gcov gcov
gcov enabled no
TPM support yes
libssh2 support no
TPM passthrough no
TPM emulator yes
QOM debugging yes
Live block migration yes
lzo support no
snappy support no
bzip2 support yes
NUMA host support yes
tcmalloc support no
jemalloc support no
avx2 optimization no
replication support yes
VxHS block device no
capstone git
GEN aarch64-softmmu/config-devices.mak.tmp
GEN alpha-softmmu/config-devices.mak.tmp
GEN arm-softmmu/config-devices.mak.tmp
GEN cris-softmmu/config-devices.mak.tmp
GEN hppa-softmmu/config-devices.mak.tmp
GEN i386-softmmu/config-devices.mak.tmp
GEN lm32-softmmu/config-devices.mak.tmp
GEN m68k-softmmu/config-devices.mak.tmp
GEN microblazeel-softmmu/config-devices.mak.tmp
GEN cris-softmmu/config-devices.mak
GEN alpha-softmmu/config-devices.mak
GEN arm-softmmu/config-devices.mak
GEN lm32-softmmu/config-devices.mak
GEN hppa-softmmu/config-devices.mak
GEN microblaze-softmmu/config-devices.mak.tmp
GEN aarch64-softmmu/config-devices.mak
GEN mips64el-softmmu/config-devices.mak.tmp
GEN i386-softmmu/config-devices.mak
GEN mips64-softmmu/config-devices.mak.tmp
GEN mipsel-softmmu/config-devices.mak.tmp
GEN mips-softmmu/config-devices.mak.tmp
GEN m68k-softmmu/config-devices.mak
GEN nios2-softmmu/config-devices.mak.tmp
GEN or1k-softmmu/config-devices.mak.tmp
GEN moxie-softmmu/config-devices.mak.tmp
GEN ppc64-softmmu/config-devices.mak.tmp
GEN ppcemb-softmmu/config-devices.mak.tmp
GEN ppc-softmmu/config-devices.mak.tmp
GEN microblazeel-softmmu/config-devices.mak
GEN s390x-softmmu/config-devices.mak.tmp
GEN microblaze-softmmu/config-devices.mak
GEN sparc64-softmmu/config-devices.mak.tmp
GEN or1k-softmmu/config-devices.mak
GEN sh4eb-softmmu/config-devices.mak.tmp
GEN sparc-softmmu/config-devices.mak.tmp
GEN unicore32-softmmu/config-devices.mak.tmp
GEN sh4-softmmu/config-devices.mak.tmp
GEN xtensaeb-softmmu/config-devices.mak.tmp
GEN mips64el-softmmu/config-devices.mak
GEN aarch64-linux-user/config-devices.mak.tmp
GEN x86_64-softmmu/config-devices.mak.tmp
GEN tricore-softmmu/config-devices.mak.tmp
GEN aarch64_be-linux-user/config-devices.mak.tmp
GEN xtensa-softmmu/config-devices.mak.tmp
GEN alpha-linux-user/config-devices.mak.tmp
GEN armeb-linux-user/config-devices.mak.tmp
GEN s390x-softmmu/config-devices.mak
GEN nios2-softmmu/config-devices.mak
GEN arm-linux-user/config-devices.mak.tmp
GEN cris-linux-user/config-devices.mak.tmp
GEN hppa-linux-user/config-devices.mak.tmp
GEN moxie-softmmu/config-devices.mak
GEN microblazeel-linux-user/config-devices.mak.tmp
GEN i386-linux-user/config-devices.mak.tmp
GEN m68k-linux-user/config-devices.mak.tmp
GEN microblaze-linux-user/config-devices.mak.tmp
GEN mips64el-linux-user/config-devices.mak.tmp
GEN mips64-linux-user/config-devices.mak.tmp
GEN mipsel-linux-user/config-devices.mak.tmp
GEN ppcemb-softmmu/config-devices.mak
GEN sparc-softmmu/config-devices.mak
GEN mips64-softmmu/config-devices.mak
GEN xtensaeb-softmmu/config-devices.mak
GEN unicore32-softmmu/config-devices.mak
GEN tricore-softmmu/config-devices.mak
GEN aarch64_be-linux-user/config-devices.mak
GEN mips-softmmu/config-devices.mak
GEN aarch64-linux-user/config-devices.mak
GEN arm-linux-user/config-devices.mak
GEN cris-linux-user/config-devices.mak
GEN sh4eb-softmmu/config-devices.mak
GEN hppa-linux-user/config-devices.mak
GEN mips-linux-user/config-devices.mak.tmp
GEN alpha-linux-user/config-devices.mak
GEN mips64-linux-user/config-devices.mak
GEN mipsn32el-linux-user/config-devices.mak.tmp
GEN nios2-linux-user/config-devices.mak.tmp
GEN or1k-linux-user/config-devices.mak.tmp
GEN ppc64abi32-linux-user/config-devices.mak.tmp
GEN xtensa-softmmu/config-devices.mak
GEN mips64el-linux-user/config-devices.mak
GEN i386-linux-user/config-devices.mak
GEN sparc64-softmmu/config-devices.mak
GEN armeb-linux-user/config-devices.mak
GEN ppc64le-linux-user/config-devices.mak.tmp
GEN mipsel-softmmu/config-devices.mak
GEN nios2-linux-user/config-devices.mak
GEN ppc64-linux-user/config-devices.mak.tmp
GEN mipsn32-linux-user/config-devices.mak.tmp
GEN ppc-linux-user/config-devices.mak.tmp
GEN sh4-softmmu/config-devices.mak
GEN m68k-linux-user/config-devices.mak
GEN ppc64-softmmu/config-devices.mak
GEN mipsel-linux-user/config-devices.mak
GEN microblazeel-linux-user/config-devices.mak
GEN microblaze-linux-user/config-devices.mak
GEN mips-linux-user/config-devices.mak
GEN s390x-linux-user/config-devices.mak.tmp
GEN ppc-softmmu/config-devices.mak
GEN x86_64-softmmu/config-devices.mak
GEN or1k-linux-user/config-devices.mak
GEN ppc64-linux-user/config-devices.mak
GEN ppc64le-linux-user/config-devices.mak
GEN ppc-linux-user/config-devices.mak
GEN ppc64abi32-linux-user/config-devices.mak
GEN mipsn32-linux-user/config-devices.mak
GEN mipsn32el-linux-user/config-devices.mak
GEN sh4eb-linux-user/config-devices.mak.tmp
GEN sh4-linux-user/config-devices.mak.tmp
GEN sparc32plus-linux-user/config-devices.mak.tmp
GEN sparc64-linux-user/config-devices.mak.tmp
GEN sparc-linux-user/config-devices.mak.tmp
GEN s390x-linux-user/config-devices.mak
GEN x86_64-linux-user/config-devices.mak.tmp
GEN tilegx-linux-user/config-devices.mak.tmp
GEN config-host.h
GEN sparc32plus-linux-user/config-devices.mak
GEN sh4-linux-user/config-devices.mak
GIT ui/keycodemapdb dtc capstone
GEN sparc64-linux-user/config-devices.mak
GEN qemu-options.def
GEN sh4eb-linux-user/config-devices.mak
GEN sparc-linux-user/config-devices.mak
GEN x86_64-linux-user/config-devices.mak
GEN tilegx-linux-user/config-devices.mak
GEN qmp-commands.h
GEN qapi-types.h
GEN qapi-visit.h
GEN qapi-event.h
GEN qmp-marshal.c
GEN qapi-types.c
GEN qapi-event.c
GEN qapi-visit.c
GEN qmp-introspect.h
GEN trace/generated-helpers-wrappers.h
GEN qmp-introspect.c
GEN trace/generated-helpers.h
GEN trace/generated-helpers.c
GEN trace/generated-tcg-tracers.h
GEN module_block.h
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN trace-root.h
GEN util/trace.h
GEN crypto/trace.h
GEN io/trace.h
GEN migration/trace.h
GEN block/trace.h
GEN chardev/trace.h
GEN hw/block/trace.h
GEN hw/block/dataplane/trace.h
GEN hw/char/trace.h
GEN hw/intc/trace.h
GEN hw/net/trace.h
GEN hw/virtio/trace.h
GEN hw/audio/trace.h
GEN hw/misc/trace.h
GEN hw/usb/trace.h
GEN hw/scsi/trace.h
GEN hw/nvram/trace.h
GEN hw/display/trace.h
GEN hw/input/trace.h
GEN hw/timer/trace.h
GEN hw/dma/trace.h
GEN hw/sparc/trace.h
GEN hw/sparc64/trace.h
GEN hw/sd/trace.h
GEN hw/isa/trace.h
GEN hw/mem/trace.h
GEN hw/i386/trace.h
GEN hw/i386/xen/trace.h
GEN hw/9pfs/trace.h
GEN hw/ppc/trace.h
GEN hw/pci/trace.h
GEN hw/s390x/trace.h
GEN hw/vfio/trace.h
GEN hw/acpi/trace.h
GEN hw/arm/trace.h
GEN hw/alpha/trace.h
GEN hw/hppa/trace.h
GEN hw/xen/trace.h
GEN hw/ide/trace.h
GEN ui/trace.h
GEN audio/trace.h
GEN net/trace.h
GEN target/arm/trace.h
GEN target/i386/trace.h
GEN target/mips/trace.h
GEN target/sparc/trace.h
GEN target/s390x/trace.h
GEN target/ppc/trace.h
GEN qom/trace.h
GEN linux-user/trace.h
GEN qapi/trace.h
GEN accel/tcg/trace.h
GEN accel/kvm/trace.h
GEN nbd/trace.h
GEN scsi/trace.h
GEN trace-root.c
GEN util/trace.c
GEN crypto/trace.c
GEN io/trace.c
GEN migration/trace.c
GEN block/trace.c
GEN chardev/trace.c
GEN hw/block/trace.c
GEN hw/block/dataplane/trace.c
GEN hw/char/trace.c
GEN hw/intc/trace.c
GEN hw/net/trace.c
GEN hw/virtio/trace.c
GEN hw/audio/trace.c
GEN hw/misc/trace.c
GEN hw/usb/trace.c
GEN hw/scsi/trace.c
GEN hw/nvram/trace.c
GEN hw/display/trace.c
GEN hw/input/trace.c
GEN hw/timer/trace.c
GEN hw/dma/trace.c
GEN hw/sparc/trace.c
GEN hw/sparc64/trace.c
GEN hw/sd/trace.c
GEN hw/isa/trace.c
GEN hw/mem/trace.c
GEN hw/i386/trace.c
GEN hw/i386/xen/trace.c
GEN hw/9pfs/trace.c
GEN hw/ppc/trace.c
GEN hw/pci/trace.c
GEN hw/s390x/trace.c
GEN hw/vfio/trace.c
GEN hw/acpi/trace.c
GEN hw/arm/trace.c
GEN hw/alpha/trace.c
GEN hw/hppa/trace.c
GEN hw/xen/trace.c
GEN hw/ide/trace.c
GEN ui/trace.c
GEN audio/trace.c
GEN net/trace.c
GEN target/arm/trace.c
GEN target/i386/trace.c
GEN target/mips/trace.c
GEN target/sparc/trace.c
GEN target/s390x/trace.c
GEN target/ppc/trace.c
GEN qom/trace.c
GEN linux-user/trace.c
GEN qapi/trace.c
GEN accel/tcg/trace.c
GEN accel/kvm/trace.c
GEN nbd/trace.c
GEN scsi/trace.c
GEN config-all-devices.mak
GEN ui/input-keymap-linux-to-qcode.c
GEN ui/input-keymap-qcode-to-qnum.c
GEN ui/input-keymap-qnum-to-qcode.c
GEN ui/input-keymap-qcode-to-linux.c
CC cs.o
CC utils.o
CC SStream.o
CC MCInstrDesc.o
CC MCRegisterInfo.o
CC arch/ARM/ARMDisassembler.o
CC arch/ARM/ARMInstPrinter.o
CC arch/ARM/ARMMapping.o
CC arch/ARM/ARMModule.o
CC arch/AArch64/AArch64BaseInfo.o
CC arch/AArch64/AArch64Disassembler.o
CC arch/AArch64/AArch64InstPrinter.o
CC arch/AArch64/AArch64Mapping.o
CC arch/Mips/MipsDisassembler.o
CC arch/Mips/MipsInstPrinter.o
CC arch/AArch64/AArch64Module.o
CC arch/Mips/MipsMapping.o
CC arch/Mips/MipsModule.o
CC arch/PowerPC/PPCDisassembler.o
CC arch/PowerPC/PPCInstPrinter.o
CC arch/PowerPC/PPCModule.o
CC arch/PowerPC/PPCMapping.o
CC arch/Sparc/SparcDisassembler.o
CC arch/Sparc/SparcInstPrinter.o
CC arch/Sparc/SparcMapping.o
CC arch/SystemZ/SystemZMapping.o
CC arch/SystemZ/SystemZModule.o
CC arch/SystemZ/SystemZInstPrinter.o
CC arch/SystemZ/SystemZDisassembler.o
CC arch/Sparc/SparcModule.o
CC arch/X86/X86IntelInstPrinter.o
CC arch/SystemZ/SystemZMCTargetDesc.o
CC arch/X86/X86Disassembler.o
CC arch/X86/X86ATTInstPrinter.o
CC arch/X86/X86DisassemblerDecoder.o
CC arch/X86/X86Mapping.o
CC arch/X86/X86Module.o
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/trees.S
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/dumptrees.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/testutils.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/value-labels.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/asm_tree_dump.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/truncated_property.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/check_path.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/overlay_bad_fixup.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/overlay.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/subnode_iterate.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/property_iterate.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/integer-expressions.c
CC arch/XCore/XCoreDisassembler.o
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/utilfdt_test.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/add_subnode_with_nops.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/dtbs_equal_unordered.c
CC arch/XCore/XCoreInstPrinter.o
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/path_offset_aliases.c
CC arch/XCore/XCoreModule.o
CC arch/XCore/XCoreMapping.o
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/phandle_format.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/boot-cpuid.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/incbin.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/path-references.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/references.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/propname_escapes.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/appendprop2.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/string_escapes.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/appendprop1.c
CC MCInst.o
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/del_node.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/del_property.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/dtbs_equal_ordered.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/dtb_reverse.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/set_name.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/nopulate.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/stringlist.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/mangle-layout.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/setprop_inplace.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/open_pack.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/notfound.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/addr_size_cells.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/nop_node.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/move_and_save.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/extra-terminating-null.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/sw_tree1.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/rw_tree1.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/setprop.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/nop_property.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/char_literal.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/node_offset_by_compatible.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/node_offset_by_phandle.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/node_check_compatible.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/sized_cells.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/node_offset_by_prop_value.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/get_path.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/get_name.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/parent_offset.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/get_phandle.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/supernode_atdepth_offset.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/getprop.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/path_offset.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/get_alias.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/subnode_offset.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/root_node.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/get_mem_rsv.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/libfdt/fdt_overlay.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/tests/find_property.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/libfdt/fdt_addresses.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/libfdt/fdt_strerror.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/libfdt/fdt_empty_tree.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/libfdt/fdt_rw.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/libfdt/fdt_wip.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/libfdt/fdt_sw.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/libfdt/fdt.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/fdtoverlay.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/fdtget.c
LEX convert-dtsv0-lexer.lex.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/srcpos.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/fdtdump.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/fdtput.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/util.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/libfdt/fdt_ro.c
BISON dtc-parser.tab.c
LEX dtc-lexer.lex.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/treesource.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/livetree.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/dtc.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/data.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/flattree.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/checks.c
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/fstree.c
DEP convert-dtsv0-lexer.lex.c
DEP dtc-lexer.lex.c
DEP dtc-parser.tab.c
CHK version_gen.h
UPD version_gen.h
DEP /var/tmp/patchew-tester-tmp-c1l637im/src/dtc/util.c
CC libfdt/fdt.o
CC libfdt/fdt_ro.o
CC libfdt/fdt_wip.o
CC libfdt/fdt_sw.o
CC libfdt/fdt_rw.o
CC libfdt/fdt_strerror.o
CC libfdt/fdt_empty_tree.o
CC libfdt/fdt_addresses.o
CC libfdt/fdt_overlay.o
AR libfdt/libfdt.a
ar: creating libfdt/libfdt.a
a - libfdt/fdt.o
a - libfdt/fdt_ro.o
a - libfdt/fdt_wip.o
a - libfdt/fdt_sw.o
a - libfdt/fdt_rw.o
a - libfdt/fdt_strerror.o
a - libfdt/fdt_empty_tree.o
a - libfdt/fdt_addresses.o
a - libfdt/fdt_overlay.o
AR libcapstone.a
ar: creating /var/tmp/patchew-tester-tmp-c1l637im/src/build/capstone/libcapstone.a
CC tests/qemu-iotests/socket_scm_helper.o
GEN qga/qapi-generated/qga-qapi-types.h
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qmp-commands.h
GEN qga/qapi-generated/qga-qapi-types.c
GEN qga/qapi-generated/qga-qapi-visit.c
GEN qga/qapi-generated/qga-qmp-marshal.c
CC qmp-introspect.o
CC qapi-types.o
CC qapi-visit.o
CC qapi-event.o
CC qapi/qapi-visit-core.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qobject-input-visitor.o
CC qapi/qmp-registry.o
CC qapi/qmp-dispatch.o
CC qapi/qobject-output-visitor.o
CC qapi/string-output-visitor.o
CC qapi/opts-visitor.o
CC qapi/string-input-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qnum.o
CC qobject/qstring.o
CC qobject/qdict.o
CC qobject/qlist.o
CC qobject/qbool.o
CC qobject/qlit.o
CC qobject/json-parser.o
CC qobject/qjson.o
CC trace/control.o
CC qobject/json-streamer.o
CC trace/qmp.o
CC util/osdep.o
CC qobject/qobject.o
CC qobject/json-lexer.o
CC util/unicode.o
CC util/qemu-timer-common.o
CC util/lockcnt.o
CC util/cutils.o
CC util/aiocb.o
CC util/bufferiszero.o
CC util/thread-pool.o
CC util/async.o
CC util/main-loop.o
CC util/event_notifier-posix.o
CC util/aio-posix.o
CC util/oslib-posix.o
CC util/compatfd.o
CC util/qemu-timer.o
CC util/iohandler.o
CC util/qemu-thread-posix.o
CC util/qemu-openpty.o
CC util/memfd.o
CC util/mmap-alloc.o
CC util/envlist.o
CC util/module.o
CC util/host-utils.o
CC util/bitops.o
CC util/hbitmap.o
CC util/bitmap.o
CC util/acl.o
CC util/cacheinfo.o
CC util/error.o
CC util/fifo8.o
CC util/qemu-error.o
CC util/path.o
CC util/id.o
CC util/iov.o
CC util/qemu-sockets.o
CC util/notify.o
CC util/keyval.o
CC util/hexdump.o
CC util/qemu-progress.o
CC util/qemu-option.o
CC util/crc32c.o
CC util/uri.o
CC util/qemu-config.o
CC util/uuid.o
CC util/throttle.o
CC util/getauxval.o
CC util/readline.o
CC util/qemu-coroutine.o
CC util/rcu.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-io.o
CC util/qemu-coroutine-sleep.o
CC util/coroutine-ucontext.o
CC util/buffer.o
CC util/base64.o
CC util/timed-average.o
CC util/pagesize.o
CC util/qdist.o
CC util/log.o
CC util/range.o
CC util/qht.o
CC util/stats64.o
CC trace-root.o
CC util/systemd.o
CC util/trace.o
CC crypto/trace.o
CC io/trace.o
CC migration/trace.o
CC block/trace.o
CC chardev/trace.o
CC hw/block/trace.o
CC hw/block/dataplane/trace.o
CC hw/char/trace.o
CC hw/intc/trace.o
CC hw/virtio/trace.o
CC hw/net/trace.o
CC hw/audio/trace.o
CC hw/misc/trace.o
CC hw/usb/trace.o
CC hw/scsi/trace.o
CC hw/nvram/trace.o
CC hw/display/trace.o
CC hw/input/trace.o
CC hw/timer/trace.o
CC hw/dma/trace.o
CC hw/sparc/trace.o
CC hw/isa/trace.o
CC hw/sparc64/trace.o
CC hw/sd/trace.o
CC hw/mem/trace.o
CC hw/i386/trace.o
CC hw/i386/xen/trace.o
CC hw/9pfs/trace.o
CC hw/ppc/trace.o
CC hw/pci/trace.o
CC hw/s390x/trace.o
CC hw/vfio/trace.o
CC hw/acpi/trace.o
CC hw/arm/trace.o
CC hw/alpha/trace.o
CC hw/hppa/trace.o
CC hw/xen/trace.o
CC hw/ide/trace.o
CC ui/trace.o
CC audio/trace.o
CC net/trace.o
CC target/arm/trace.o
CC target/i386/trace.o
CC target/mips/trace.o
CC target/sparc/trace.o
CC target/s390x/trace.o
CC target/ppc/trace.o
CC qom/trace.o
CC linux-user/trace.o
CC accel/tcg/trace.o
CC qapi/trace.o
CC nbd/trace.o
CC accel/kvm/trace.o
CC scsi/trace.o
CC crypto/pbkdf-stub.o
CC stubs/arch-query-cpu-def.o
CC stubs/arch-query-cpu-model-expansion.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/blk-commit-all.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-icount.o
CC stubs/cpu-get-clock.o
CC stubs/dump.o
CC stubs/error-printf.o
CC stubs/fdset.o
CC stubs/gdbstub.o
CC stubs/get-vm-name.o
CC stubs/iothread.o
CC stubs/iothread-lock.o
CC stubs/is-daemonized.o
CC stubs/linux-aio.o
CC stubs/migr-blocker.o
CC stubs/machine-init-done.o
CC stubs/change-state-handler.o
CC stubs/monitor.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/replay.o
CC stubs/runstate-check.o
CC stubs/set-fd-handler.o
CC stubs/slirp.o
CC stubs/sysbus.o
CC stubs/trace-control.o
CC stubs/tpm.o
CC stubs/uuid.o
CC stubs/vm-stop.o
CC stubs/vmstate.o
CC stubs/qmp_pc_dimm.o
CC stubs/target-monitor-defs.o
CC stubs/target-get-monitor-def.o
CC stubs/pc_madt_cpu_entry.o
CC stubs/vmgenid.o
CC stubs/xen-common.o
CC stubs/xen-hvm.o
CC stubs/pci-host-piix.o
CC contrib/ivshmem-client/ivshmem-client.o
CC contrib/ivshmem-client/main.o
CC contrib/ivshmem-server/ivshmem-server.o
CC contrib/ivshmem-server/main.o
CC qemu-nbd.o
CC block.o
CC blockjob.o
CC qemu-io-cmds.o
CC replication.o
CC block/raw-format.o
CC block/qcow.o
CC block/vdi.o
CC block/vmdk.o
CC block/cloop.o
CC block/bochs.o
CC block/vpc.o
CC block/vvfat.o
CC block/dmg.o
CC block/qcow2.o
CC block/qcow2-refcount.o
CC block/qcow2-cluster.o
CC block/qcow2-cache.o
CC block/qcow2-snapshot.o
CC block/qcow2-bitmap.o
CC block/qed.o
CC block/qed-l2-cache.o
CC block/qed-table.o
CC block/qed-cluster.o
CC block/qed-check.o
CC block/vhdx.o
CC block/vhdx-endian.o
CC block/vhdx-log.o
CC block/quorum.o
CC block/parallels.o
CC block/blkdebug.o
CC block/commit.o
CC block/linux-aio.o
CC block/blkreplay.o
CC block/null.o
CC block/snapshot.o
CC block/file-posix.o
CC block/block-backend.o
CC block/mirror.o
CC block/blkverify.o
CC block/qapi.o
CC block/io.o
CC block/throttle-groups.o
CC block/nbd.o
CC block/nbd-client.o
CC block/sheepdog.o
CC block/accounting.o
CC block/dirty-bitmap.o
CC block/write-threshold.o
CC block/backup.o
CC block/replication.o
CC block/throttle.o
CC block/crypto.o
CC nbd/server.o
CC nbd/client.o
CC scsi/pr-manager.o
CC scsi/utils.o
CC nbd/common.o
CC block/curl.o
CC scsi/pr-manager-helper.o
CC block/dmg-bz2.o
CC crypto/init.o
CC crypto/hash.o
CC crypto/hash-nettle.o
CC crypto/hmac.o
CC crypto/hmac-nettle.o
CC crypto/aes.o
CC crypto/desrfb.o
CC crypto/tlscreds.o
CC crypto/cipher.o
CC crypto/tlscredsanon.o
CC crypto/tlscredsx509.o
CC crypto/tlssession.o
CC crypto/secret.o
CC crypto/random-gnutls.o
CC crypto/pbkdf.o
CC crypto/pbkdf-nettle.o
CC crypto/ivgen.o
CC crypto/ivgen-essiv.o
CC crypto/ivgen-plain.o
CC crypto/ivgen-plain64.o
CC crypto/afsplit.o
CC crypto/xts.o
CC crypto/block.o
CC crypto/block-qcow.o
CC crypto/block-luks.o
CC io/channel.o
CC io/channel-command.o
CC io/channel-buffer.o
CC io/channel-tls.o
CC io/channel-file.o
CC io/channel-socket.o
CC io/dns-resolver.o
CC io/channel-watch.o
CC io/channel-util.o
CC io/channel-websock.o
CC io/net-listener.o
CC io/task.o
CC qom/object.o
CC qom/container.o
CC qom/qom-qobject.o
CC qom/object_interfaces.o
GEN qemu-img-cmds.h
CC qemu-io.o
CC fsdev/virtfs-proxy-helper.o
CC fsdev/9p-marshal.o
CC fsdev/9p-iov-marshal.o
CC scsi/qemu-pr-helper.o
CC qemu-bridge-helper.o
CC blockdev.o
CC blockdev-nbd.o
CC bootdevice.o
CC qdev-monitor.o
CC iothread.o
CC device-hotplug.o
CC os-posix.o
CC bt-host.o
CC bt-vhci.o
CC dma-helpers.o
CC vl.o
CC tpm.o
CC device_tree.o
CC qmp-marshal.o
CC qmp.o
CC hmp.o
CC cpus-common.o
CC audio/audio.o
CC audio/noaudio.o
CC audio/wavaudio.o
CC audio/sdlaudio.o
CC audio/mixeng.o
CC audio/wavcapture.o
CC audio/ossaudio.o
CC backends/rng.o
CC backends/rng-egd.o
CC backends/rng-random.o
CC backends/tpm.o
CC backends/hostmem.o
CC backends/hostmem-ram.o
CC backends/hostmem-file.o
CC backends/cryptodev.o
CC backends/cryptodev-builtin.o
CC block/stream.o
CC chardev/msmouse.o
CC chardev/wctablet.o
CC chardev/testdev.o
CC disas/arm.o
CXX disas/arm-a64.o
CC disas/alpha.o
CC disas/cris.o
CC disas/hppa.o
CC disas/i386.o
CC disas/m68k.o
CC disas/microblaze.o
CC disas/mips.o
CC disas/nios2.o
CC disas/moxie.o
CC disas/ppc.o
CC disas/s390.o
CC disas/sh4.o
CC disas/sparc.o
CC disas/lm32.o
CC disas/xtensa.o
CXX disas/libvixl/vixl/utils.o
CXX disas/libvixl/vixl/compiler-intrinsics.o
CXX disas/libvixl/vixl/a64/instructions-a64.o
CXX disas/libvixl/vixl/a64/decoder-a64.o
CC fsdev/qemu-fsdev.o
CXX disas/libvixl/vixl/a64/disasm-a64.o
CC fsdev/qemu-fsdev-opts.o
CC fsdev/qemu-fsdev-throttle.o
CC fsdev/qemu-fsdev-dummy.o
CC hw/9pfs/9p.o
CC hw/9pfs/9p-util.o
CC hw/9pfs/9p-local.o
CC hw/9pfs/9p-xattr.o
CC hw/9pfs/9p-xattr-user.o
CC hw/9pfs/9p-posix-acl.o
CC hw/9pfs/coth.o
CC hw/9pfs/cofs.o
CC hw/9pfs/codir.o
CC hw/9pfs/cofile.o
CC hw/9pfs/coxattr.o
CC hw/9pfs/9p-synth.o
CC hw/9pfs/9p-handle.o
CC hw/9pfs/9p-proxy.o
CC hw/acpi/core.o
CC hw/acpi/piix4.o
CC hw/acpi/pcihp.o
CC hw/acpi/ich9.o
CC hw/acpi/tco.o
CC hw/acpi/cpu_hotplug.o
CC hw/acpi/memory_hotplug.o
CC hw/acpi/cpu.o
CC hw/acpi/nvdimm.o
CC hw/acpi/vmgenid.o
CC hw/acpi/acpi_interface.o
CC hw/acpi/bios-linker-loader.o
CC hw/acpi/aml-build.o
CC hw/acpi/ipmi.o
CC hw/acpi/ipmi-stub.o
CC hw/acpi/acpi-stub.o
CC hw/audio/es1370.o
CC hw/audio/sb16.o
CC hw/audio/ac97.o
CC hw/audio/fmopl.o
CC hw/audio/adlib.o
CC hw/audio/gus.o
CC hw/audio/gusemu_hal.o
CC hw/audio/gusemu_mixer.o
CC hw/audio/cs4231a.o
CC hw/audio/intel-hda.o
CC hw/audio/hda-codec.o
CC hw/audio/pcspk.o
CC hw/audio/wm8750.o
CC hw/audio/pl041.o
CC hw/audio/lm4549.o
CC hw/audio/cs4231.o
CC hw/audio/marvell_88w8618.o
CC hw/audio/milkymist-ac97.o
CC hw/audio/soundhw.o
CC hw/block/block.o
CC hw/block/cdrom.o
CC hw/block/hd-geometry.o
CC hw/block/fdc.o
CC hw/block/m25p80.o
CC hw/block/nand.o
CC hw/block/pflash_cfi01.o
CC hw/block/pflash_cfi02.o
CC hw/block/ecc.o
CC hw/block/onenand.o
CC hw/bt/core.o
CC hw/block/nvme.o
CC hw/bt/l2cap.o
CC hw/bt/sdp.o
CC hw/bt/hci.o
CC hw/bt/hid.o
CC hw/bt/hci-csr.o
CC hw/char/ipoctal232.o
CC hw/char/escc.o
CC hw/char/parallel.o
CC hw/char/pl011.o
CC hw/char/serial.o
CC hw/char/serial-isa.o
CC hw/char/virtio-console.o
CC hw/char/serial-pci.o
CC hw/char/xilinx_uartlite.o
CC hw/char/cadence_uart.o
CC hw/char/cmsdk-apb-uart.o
CC hw/char/etraxfs_ser.o
CC hw/char/debugcon.o
CC hw/char/grlib_apbuart.o
CC hw/char/imx_serial.o
CC hw/char/lm32_juart.o
CC hw/char/lm32_uart.o
CC hw/char/milkymist-uart.o
CC hw/char/sclpconsole.o
CC hw/char/sclpconsole-lm.o
CC hw/core/qdev.o
CC hw/core/qdev-properties.o
CC hw/core/bus.o
CC hw/core/reset.o
CC hw/core/fw-path-provider.o
CC hw/core/irq.o
CC hw/core/hotplug.o
CC hw/core/stream.o
CC hw/core/nmi.o
CC hw/core/empty_slot.o
CC hw/core/ptimer.o
CC hw/core/sysbus.o
CC hw/core/machine.o
CC hw/core/loader.o
CC hw/core/loader-fit.o
CC hw/core/qdev-properties-system.o
CC hw/core/register.o
CC hw/core/or-irq.o
CC hw/core/platform-bus.o
CC hw/cpu/core.o
CC hw/display/ads7846.o
CC hw/display/cirrus_vga.o
CC hw/display/g364fb.o
CC hw/display/jazz_led.o
CC hw/display/pl110.o
CC hw/display/ssd0303.o
CC hw/display/ssd0323.o
CC hw/display/vga-pci.o
CC hw/display/vga-isa.o
CC hw/display/vga-isa-mm.o
CC hw/display/vmware_vga.o
CC hw/display/blizzard.o
CC hw/display/exynos4210_fimd.o
CC hw/display/framebuffer.o
CC hw/display/milkymist-vgafb.o
CC hw/display/tc6393xb.o
CC hw/dma/puv3_dma.o
CC hw/dma/rc4030.o
CC hw/dma/pl080.o
CC hw/dma/pl330.o
CC hw/dma/i82374.o
CC hw/dma/i8257.o
CC hw/dma/xilinx_axidma.o
CC hw/dma/xlnx-zynq-devcfg.o
CC hw/dma/etraxfs_dma.o
CC hw/dma/sparc32_dma.o
CC hw/gpio/max7310.o
CC hw/gpio/pl061.o
CC hw/gpio/puv3_gpio.o
CC hw/gpio/zaurus.o
CC hw/gpio/mpc8xxx.o
CC hw/gpio/gpio_key.o
CC hw/i2c/core.o
CC hw/i2c/smbus.o
CC hw/i2c/smbus_eeprom.o
CC hw/i2c/i2c-ddc.o
CC hw/i2c/versatile_i2c.o
CC hw/i2c/smbus_ich9.o
CC hw/i2c/pm_smbus.o
CC hw/i2c/bitbang_i2c.o
CC hw/i2c/exynos4210_i2c.o
CC hw/i2c/imx_i2c.o
CC hw/i2c/aspeed_i2c.o
CC hw/ide/core.o
CC hw/ide/atapi.o
CC hw/ide/qdev.o
CC hw/ide/pci.o
CC hw/ide/isa.o
CC hw/ide/piix.o
CC hw/ide/cmd646.o
CC hw/ide/macio.o
CC hw/ide/mmio.o
CC hw/ide/via.o
CC hw/ide/microdrive.o
CC hw/ide/ahci.o
CC hw/ide/ahci-allwinner.o
CC hw/ide/ich.o
CC hw/ide/sii3112.o
CC hw/input/adb.o
CC hw/input/adb-mouse.o
CC hw/input/adb-kbd.o
CC hw/input/hid.o
CC hw/input/lm832x.o
CC hw/input/pckbd.o
CC hw/input/pl050.o
CC hw/input/ps2.o
CC hw/input/stellaris_input.o
CC hw/input/tsc2005.o
CC hw/input/virtio-input.o
CC hw/input/virtio-input-hid.o
CC hw/input/virtio-input-host.o
CC hw/intc/heathrow_pic.o
CC hw/intc/i8259_common.o
CC hw/intc/i8259.o
CC hw/intc/pl190.o
CC hw/intc/puv3_intc.o
CC hw/intc/xilinx_intc.o
CC hw/intc/etraxfs_pic.o
CC hw/intc/imx_avic.o
CC hw/intc/lm32_pic.o
CC hw/intc/realview_gic.o
CC hw/intc/slavio_intctl.o
CC hw/intc/ioapic_common.o
CC hw/intc/arm_gic_common.o
CC hw/intc/arm_gic.o
CC hw/intc/arm_gicv2m.o
CC hw/intc/arm_gicv3_common.o
CC hw/intc/arm_gicv3.o
CC hw/intc/arm_gicv3_dist.o
CC hw/intc/arm_gicv3_redist.o
CC hw/intc/arm_gicv3_its_common.o
CC hw/intc/openpic.o
CC hw/intc/intc.o
CC hw/ipack/tpci200.o
CC hw/ipack/ipack.o
CC hw/ipmi/ipmi.o
CC hw/ipmi/ipmi_bmc_sim.o
CC hw/ipmi/ipmi_bmc_extern.o
CC hw/ipmi/isa_ipmi_kcs.o
CC hw/isa/isa-bus.o
CC hw/ipmi/isa_ipmi_bt.o
CC hw/isa/apm.o
CC hw/isa/i82378.o
CC hw/isa/piix4.o
CC hw/isa/pc87312.o
CC hw/isa/vt82c686.o
CC hw/mem/pc-dimm.o
CC hw/mem/nvdimm.o
CC hw/misc/applesmc.o
CC hw/misc/max111x.o
CC hw/misc/tmp105.o
CC hw/misc/tmp421.o
CC hw/misc/debugexit.o
CC hw/misc/sga.o
CC hw/misc/pc-testdev.o
CC hw/misc/pci-testdev.o
CC hw/misc/edu.o
CC hw/misc/unimp.o
CC hw/misc/vmcoreinfo.o
CC hw/misc/arm_l2x0.o
CC hw/misc/arm_integrator_debug.o
CC hw/misc/a9scu.o
CC hw/misc/arm11scu.o
CC hw/misc/puv3_pm.o
CC hw/misc/macio/macio.o
CC hw/misc/macio/cuda.o
CC hw/misc/macio/mac_dbdma.o
CC hw/net/dp8393x.o
CC hw/net/ne2000.o
CC hw/net/eepro100.o
CC hw/net/pcnet-pci.o
CC hw/net/pcnet.o
CC hw/net/e1000.o
CC hw/net/e1000x_common.o
CC hw/net/net_tx_pkt.o
CC hw/net/net_rx_pkt.o
CC hw/net/e1000e.o
CC hw/net/e1000e_core.o
CC hw/net/rtl8139.o
CC hw/net/vmxnet3.o
CC hw/net/smc91c111.o
CC hw/net/lan9118.o
CC hw/net/ne2000-isa.o
CC hw/net/opencores_eth.o
CC hw/net/xgmac.o
CC hw/net/xilinx_axienet.o
CC hw/net/mipsnet.o
CC hw/net/imx_fec.o
CC hw/net/allwinner_emac.o
CC hw/net/cadence_gem.o
CC hw/net/stellaris_enet.o
CC hw/net/lance.o
CC hw/net/sunhme.o
CC hw/net/ftgmac100.o
CC hw/net/sungem.o
CC hw/net/rocker/rocker.o
CC hw/net/rocker/rocker_fp.o
CC hw/net/rocker/rocker_desc.o
CC hw/net/rocker/rocker_world.o
CC hw/net/rocker/rocker_of_dpa.o
CC hw/nvram/ds1225y.o
CC hw/nvram/eeprom93xx.o
CC hw/nvram/eeprom_at24c.o
CC hw/nvram/fw_cfg.o
CC hw/nvram/chrp_nvram.o
CC hw/nvram/mac_nvram.o
CC hw/pci-bridge/pci_bridge_dev.o
CC hw/pci-bridge/pcie_root_port.o
CC hw/pci-bridge/gen_pcie_root_port.o
CC hw/pci-bridge/pcie_pci_bridge.o
CC hw/pci-bridge/pci_expander_bridge.o
CC hw/pci-bridge/xio3130_upstream.o
CC hw/pci-bridge/xio3130_downstream.o
CC hw/pci-bridge/ioh3420.o
CC hw/pci-bridge/i82801b11.o
CC hw/pci-bridge/dec.o
CC hw/pci-host/pam.o
CC hw/pci-host/prep.o
CC hw/pci-host/grackle.o
CC hw/pci-host/uninorth.o
CC hw/pci-host/ppce500.o
CC hw/pci-host/apb.o
CC hw/pci-host/versatile.o
CC hw/pci-host/bonito.o
CC hw/pci-host/piix.o
CC hw/pci-host/q35.o
CC hw/pci-host/gpex.o
CC hw/pci-host/xilinx-pcie.o
CC hw/pci/pci.o
CC hw/pci/pci_bridge.o
CC hw/pci/msix.o
CC hw/pci/msi.o
CC hw/pci/shpc.o
CC hw/pci/slotid_cap.o
CC hw/pci/pci_host.o
CC hw/pci/pcie_host.o
CC hw/pci/pcie.o
CC hw/pci/pcie_aer.o
CC hw/pci/pcie_port.o
CC hw/pci/pci-stub.o
CC hw/pcmcia/pcmcia.o
CC hw/scsi/scsi-disk.o
CC hw/scsi/scsi-generic.o
CC hw/scsi/scsi-bus.o
CC hw/scsi/lsi53c895a.o
CC hw/scsi/mptconfig.o
CC hw/scsi/mptsas.o
CC hw/scsi/mptendian.o
CC hw/scsi/megasas.o
CC hw/scsi/vmw_pvscsi.o
CC hw/scsi/esp.o
CC hw/scsi/esp-pci.o
CC hw/sd/pl181.o
CC hw/sd/ssi-sd.o
CC hw/sd/sd.o
CC hw/sd/core.o
CC hw/sd/sdhci.o
CC hw/smbios/smbios.o
CC hw/smbios/smbios_type_38.o
CC hw/smbios/smbios-stub.o
CC hw/smbios/smbios_type_38-stub.o
CC hw/ssi/pl022.o
CC hw/ssi/ssi.o
CC hw/ssi/xilinx_spi.o
CC hw/ssi/xilinx_spips.o
CC hw/ssi/aspeed_smc.o
CC hw/ssi/stm32f2xx_spi.o
CC hw/ssi/mss-spi.o
CC hw/timer/arm_timer.o
CC hw/timer/arm_mptimer.o
CC hw/timer/armv7m_systick.o
CC hw/timer/a9gtimer.o
CC hw/timer/cadence_ttc.o
CC hw/timer/ds1338.o
CC hw/timer/hpet.o
CC hw/timer/i8254.o
CC hw/timer/i8254_common.o
CC hw/timer/m48t59.o
CC hw/timer/m48t59-isa.o
CC hw/timer/pl031.o
CC hw/timer/twl92230.o
CC hw/timer/puv3_ost.o
CC hw/timer/xilinx_timer.o
CC hw/timer/slavio_timer.o
CC hw/timer/etraxfs_timer.o
CC hw/timer/grlib_gptimer.o
CC hw/timer/imx_epit.o
CC hw/timer/imx_gpt.o
CC hw/timer/lm32_timer.o
CC hw/timer/milkymist-sysctl.o
CC hw/timer/stm32f2xx_timer.o
CC hw/timer/aspeed_timer.o
CC hw/timer/sun4v-rtc.o
CC hw/timer/cmsdk-apb-timer.o
CC hw/timer/mss-timer.o
CC hw/tpm/tpm_util.o
CC hw/tpm/tpm_tis.o
CC hw/tpm/tpm_emulator.o
CC hw/usb/core.o
CC hw/usb/combined-packet.o
CC hw/usb/bus.o
CC hw/usb/libhw.o
CC hw/usb/desc.o
CC hw/usb/desc-msos.o
CC hw/usb/hcd-uhci.o
CC hw/usb/hcd-ohci.o
CC hw/usb/hcd-ehci.o
CC hw/usb/hcd-ehci-pci.o
CC hw/usb/hcd-ehci-sysbus.o
CC hw/usb/hcd-xhci.o
CC hw/usb/hcd-musb.o
CC hw/usb/hcd-xhci-nec.o
CC hw/usb/dev-hub.o
CC hw/usb/dev-hid.o
CC hw/usb/dev-wacom.o
CC hw/usb/dev-storage.o
CC hw/usb/dev-uas.o
CC hw/usb/dev-audio.o
CC hw/usb/dev-serial.o
CC hw/usb/dev-network.o
CC hw/usb/dev-bluetooth.o
CC hw/usb/dev-smartcard-reader.o
CC hw/usb/dev-mtp.o
CC hw/usb/host-libusb.o
CC hw/usb/host-legacy.o
CC hw/virtio/virtio-rng.o
CC hw/usb/host-stub.o
CC hw/virtio/virtio-pci.o
CC hw/virtio/virtio-bus.o
CC hw/virtio/vhost-stub.o
CC hw/watchdog/watchdog.o
CC hw/virtio/virtio-mmio.o
CC hw/watchdog/wdt_i6300esb.o
CC hw/watchdog/wdt_ib700.o
CC hw/watchdog/wdt_diag288.o
CC hw/watchdog/wdt_aspeed.o
CC migration/migration.o
CC migration/socket.o
CC migration/fd.o
CC migration/exec.o
CC migration/tls.o
CC migration/channel.o
CC migration/colo-comm.o
CC migration/savevm.o
CC migration/colo.o
CC migration/colo-failover.o
CC migration/vmstate.o
CC migration/vmstate-types.o
CC migration/page_cache.o
CC migration/qemu-file.o
CC migration/global_state.o
CC migration/qemu-file-channel.o
CC migration/xbzrle.o
CC migration/postcopy-ram.o
CC migration/qjson.o
CC migration/rdma.o
CC migration/block.o
CC net/net.o
CC net/queue.o
CC net/checksum.o
CC net/util.o
CC net/hub.o
CC net/socket.o
CC net/dump.o
CC net/eth.o
CC net/l2tpv3.o
CC net/vhost-user.o
CC net/slirp.o
CC net/filter.o
CC net/filter-buffer.o
CC net/filter-mirror.o
CC net/colo-compare.o
CC net/colo.o
CC net/filter-rewriter.o
CC net/filter-replay.o
CC net/tap.o
CC net/tap-linux.o
CC qom/cpu.o
CC replay/replay.o
CC replay/replay-internal.o
CC replay/replay-events.o
CC replay/replay-time.o
CC replay/replay-input.o
CC replay/replay-snapshot.o
CC replay/replay-char.o
CC replay/replay-net.o
CC replay/replay-audio.o
CC slirp/cksum.o
CC slirp/if.o
CC slirp/ip_icmp.o
CC slirp/ip6_icmp.o
CC slirp/ip6_input.o
CC slirp/ip6_output.o
CC slirp/ip_input.o
CC slirp/ip_output.o
CC slirp/dnssearch.o
CC slirp/dhcpv6.o
CC slirp/slirp.o
CC slirp/misc.o
CC slirp/mbuf.o
CC slirp/sbuf.o
CC slirp/tcp_input.o
CC slirp/socket.o
CC slirp/tcp_output.o
CC slirp/tcp_subr.o
CC slirp/tcp_timer.o
CC slirp/udp.o
CC slirp/udp6.o
CC slirp/bootp.o
CC slirp/tftp.o
CC slirp/arp_table.o
CC slirp/ncsi.o
CC slirp/ndp_table.o
CC ui/keymaps.o
CC ui/console.o
CC ui/cursor.o
CC ui/qemu-pixman.o
CC ui/input.o
CC ui/input-keymap.o
CC ui/input-legacy.o
CC ui/input-linux.o
CC ui/sdl_zoom.o
CC ui/sdl.o
CC ui/x_keymap.o
CC ui/curses.o
CC ui/vnc-enc-zlib.o
CC ui/vnc.o
CC ui/vnc-enc-hextile.o
CC ui/vnc-enc-tight.o
CC ui/vnc-palette.o
CC ui/vnc-enc-zrle.o
CC ui/vnc-auth-vencrypt.o
CC ui/vnc-auth-sasl.o
CC ui/vnc-ws.o
CC ui/gtk.o
CC ui/vnc-jobs.o
CC chardev/char.o
CC chardev/char-fd.o
CC chardev/char-fe.o
CC chardev/char-file.o
CC chardev/char-io.o
CC chardev/char-mux.o
CC chardev/char-null.o
CC chardev/char-parallel.o
CC chardev/char-pipe.o
CC chardev/char-pty.o
CC chardev/char-ringbuf.o
CC chardev/char-serial.o
CC chardev/char-socket.o
CC chardev/char-stdio.o
CC chardev/char-udp.o
CCAS spapr-rtas/spapr-rtas.o
LINK tests/qemu-iotests/socket_scm_helper
CC qga/commands.o
CC qga/guest-agent-command-state.o
Building spapr-rtas/spapr-rtas.img
CC qga/main.o
CC qga/commands-posix.o
CC qga/channel-posix.o
CC qga/qapi-generated/qga-qapi-types.o
CC qga/qapi-generated/qga-qapi-visit.o
Building spapr-rtas/spapr-rtas.bin
CC qga/qapi-generated/qga-qmp-marshal.o
CC qemu-img.o
AR libqemuutil.a
LINK qemu-ga
LINK ivshmem-client
LINK ivshmem-server
LINK qemu-nbd
LINK qemu-img
LINK qemu-io
LINK fsdev/virtfs-proxy-helper
LINK scsi/qemu-pr-helper
LINK qemu-bridge-helper
GEN microblaze-linux-user/config-target.h
CC microblaze-linux-user/exec.o
CC microblaze-linux-user/tcg/tcg.o
CC microblaze-linux-user/tcg/tcg-op.o
CC microblaze-linux-user/tcg/optimize.o
CC microblaze-linux-user/tcg/tcg-common.o
CC microblaze-linux-user/disas.o
CC microblaze-linux-user/fpu/softfloat.o
GEN m68k-linux-user/config-target.h
CC microblaze-linux-user/gdbstub.o
CC microblaze-linux-user/thunk.o
CC microblaze-linux-user/accel/stubs/hax-stub.o
CC microblaze-linux-user/accel/stubs/hvf-stub.o
CC microblaze-linux-user/accel/stubs/kvm-stub.o
CC microblaze-linux-user/accel/tcg/tcg-runtime.o
CC microblaze-linux-user/accel/tcg/cpu-exec.o
CC m68k-linux-user/exec.o
CC microblaze-linux-user/accel/tcg/cpu-exec-common.o
CC microblaze-linux-user/accel/tcg/translator.o
CC microblaze-linux-user/accel/tcg/translate-all.o
GEN aarch64_be-linux-user/config-target.h
CC microblaze-linux-user/accel/tcg/user-exec.o
CC microblaze-linux-user/accel/tcg/user-exec-stub.o
CC m68k-linux-user/tcg/tcg.o
CC m68k-linux-user/tcg/tcg-op.o
CC m68k-linux-user/tcg/optimize.o
GEN ppc64-linux-user/config-target.h
GEN alpha-linux-user/config-target.h
CC microblaze-linux-user/linux-user/main.o
GEN ppc64le-linux-user/config-target.h
CC m68k-linux-user/tcg/tcg-common.o
GEN cris-linux-user/config-target.h
CC m68k-linux-user/fpu/softfloat.o
GEN mips64-linux-user/config-target.h
CC m68k-linux-user/disas.o
CC microblaze-linux-user/linux-user/syscall.o
GEN m68k-linux-user/gdbstub-xml.c
CC microblaze-linux-user/linux-user/strace.o
CC aarch64_be-linux-user/exec.o
CC m68k-linux-user/thunk.o
CC aarch64_be-linux-user/tcg/tcg.o
CC m68k-linux-user/accel/stubs/hax-stub.o
CC m68k-linux-user/gdbstub.o
GEN sh4-linux-user/config-target.h
GEN mips64el-linux-user/config-target.h
GEN armeb-linux-user/config-target.h
GEN arm-linux-user/config-target.h
CC m68k-linux-user/accel/stubs/hvf-stub.o
GEN microblazeel-linux-user/config-target.h
CC m68k-linux-user/accel/tcg/tcg-runtime.o
CC aarch64_be-linux-user/tcg/tcg-op.o
CC aarch64_be-linux-user/tcg/tcg-common.o
CC ppc64-linux-user/exec.o
CC microblaze-linux-user/linux-user/mmap.o
CC ppc64le-linux-user/exec.o
CC m68k-linux-user/accel/stubs/kvm-stub.o
CC aarch64_be-linux-user/tcg/optimize.o
GEN mipsn32-linux-user/config-target.h
GEN mipsn32el-linux-user/config-target.h
CC alpha-linux-user/exec.o
GEN mips-linux-user/config-target.h
CC mipsn32el-linux-user/exec.o
CC cris-linux-user/exec.o
GEN ppc64abi32-linux-user/config-target.h
GEN mipsel-linux-user/config-target.h
CC sh4-linux-user/exec.o
GEN tilegx-linux-user/config-target.h
GEN sparc32plus-linux-user/config-target.h
GEN sparc64-linux-user/config-target.h
CC mips64el-linux-user/exec.o
CC mips64-linux-user/exec.o
CC mipsn32-linux-user/exec.o
CC mips-linux-user/exec.o
CC sh4-linux-user/tcg/tcg.o
CC arm-linux-user/exec.o
GEN or1k-linux-user/config-target.h
GEN aarch64-linux-user/config-target.h
CC tilegx-linux-user/exec.o
GEN hppa-linux-user/config-target.h
GEN sh4eb-linux-user/config-target.h
GEN nios2-linux-user/config-target.h
CC mipsel-linux-user/exec.o
CC armeb-linux-user/exec.o
GEN ppc-linux-user/config-target.h
CC sparc32plus-linux-user/exec.o
CC s390x-linux-user/gen-features
CC ppc64abi32-linux-user/exec.o
CC sparc64-linux-user/exec.o
GEN i386-linux-user/config-target.h
CC or1k-linux-user/exec.o
GEN x86_64-linux-user/config-target.h
CC microblazeel-linux-user/exec.o
CC hppa-linux-user/exec.o
GEN sparc-linux-user/config-target.h
CC ppc-linux-user/exec.o
CC nios2-linux-user/exec.o
CC aarch64-linux-user/exec.o
CC i386-linux-user/exec.o
CC sh4eb-linux-user/exec.o
CC x86_64-linux-user/exec.o
CC nios2-linux-user/tcg/tcg.o
CC sparc-linux-user/exec.o
CC ppc64-linux-user/tcg/tcg.o
CC mipsn32-linux-user/tcg/tcg.o
GEN s390x-linux-user/config-target.h
GEN s390x-linux-user/gen-features.h
CC alpha-linux-user/tcg/tcg.o
CC mips64el-linux-user/tcg/tcg.o
CC alpha-linux-user/tcg/tcg-op.o
CC s390x-linux-user/exec.o
CC mips-linux-user/tcg/tcg.o
CC microblaze-linux-user/linux-user/signal.o
CC s390x-linux-user/tcg/tcg.o
CC hppa-linux-user/tcg/tcg.o
CC tilegx-linux-user/tcg/tcg.o
CC mips64el-linux-user/tcg/tcg-op.o
GEN microblaze-softmmu/hmp-commands.h
GEN tricore-softmmu/hmp-commands.h
CC mipsn32el-linux-user/tcg/tcg.o
CC arm-linux-user/tcg/tcg.o
GEN microblazeel-softmmu/hmp-commands.h
GEN tricore-softmmu/hmp-commands-info.h
GEN cris-softmmu/hmp-commands.h
GEN lm32-softmmu/hmp-commands.h
GEN cris-softmmu/hmp-commands-info.h
GEN microblaze-softmmu/hmp-commands-info.h
CC sh4eb-linux-user/tcg/tcg.o
GEN hppa-softmmu/hmp-commands.h
GEN sparc-softmmu/hmp-commands.h
CC sparc-linux-user/tcg/tcg.o
GEN m68k-softmmu/hmp-commands.h
GEN hppa-softmmu/hmp-commands-info.h
GEN moxie-softmmu/hmp-commands.h
GEN hppa-softmmu/config-target.h
CC mipsn32el-linux-user/tcg/tcg-op.o
CC cris-linux-user/tcg/tcg.o
CC mipsn32el-linux-user/tcg/optimize.o
GEN nios2-softmmu/hmp-commands.h
GEN nios2-softmmu/hmp-commands-info.h
CC i386-linux-user/tcg/tcg.o
GEN or1k-softmmu/hmp-commands.h
GEN microblazeel-softmmu/hmp-commands-info.h
GEN xtensaeb-softmmu/hmp-commands.h
CC m68k-linux-user/accel/tcg/cpu-exec.o
GEN microblaze-softmmu/config-target.h
GEN tricore-softmmu/config-target.h
GEN moxie-softmmu/hmp-commands-info.h
GEN lm32-softmmu/hmp-commands-info.h
CC microblaze-softmmu/exec.o
GEN s390x-softmmu/hmp-commands.h
CC tricore-softmmu/exec.o
CC ppc64abi32-linux-user/tcg/tcg.o
GEN cris-softmmu/config-target.h
GEN i386-softmmu/hmp-commands.h
CC tilegx-linux-user/tcg/tcg-op.o
CC i386-linux-user/tcg/tcg-op.o
GEN sparc-softmmu/hmp-commands-info.h
CC hppa-softmmu/exec.o
CC or1k-linux-user/tcg/tcg.o
CC mips64-linux-user/tcg/tcg.o
GEN microblazeel-softmmu/config-target.h
CC ppc64le-linux-user/tcg/tcg.o
GEN sparc-softmmu/config-target.h
CC sparc64-linux-user/tcg/tcg.o
CC cris-softmmu/exec.o
CC mipsel-linux-user/tcg/tcg.o
GEN m68k-softmmu/hmp-commands-info.h
CC tricore-softmmu/tcg/tcg.o
CC ppc-linux-user/tcg/tcg.o
CC ppc-linux-user/tcg/tcg-op.o
GEN unicore32-softmmu/hmp-commands.h
CC sparc-linux-user/tcg/tcg-op.o
GEN lm32-softmmu/config-target.h
GEN x86_64-softmmu/hmp-commands.h
CC microblazeel-softmmu/exec.o
CC hppa-softmmu/tcg/tcg.o
GEN or1k-softmmu/hmp-commands-info.h
GEN moxie-softmmu/config-target.h
CC sparc-softmmu/exec.o
CC microblazeel-linux-user/tcg/tcg.o
CC x86_64-linux-user/tcg/tcg.o
GEN xtensaeb-softmmu/hmp-commands-info.h
CC m68k-linux-user/accel/tcg/cpu-exec-common.o
CC cris-linux-user/tcg/tcg-op.o
CC lm32-softmmu/exec.o
CC mipsel-linux-user/tcg/tcg-op.o
GEN i386-softmmu/hmp-commands-info.h
CC aarch64-linux-user/tcg/tcg.o
CC sparc32plus-linux-user/tcg/tcg.o
GEN nios2-softmmu/config-target.h
CC cris-softmmu/tcg/tcg.o
CC armeb-linux-user/tcg/tcg.o
CC moxie-softmmu/exec.o
GEN sh4-softmmu/hmp-commands.h
GEN s390x-softmmu/hmp-commands-info.h
GEN m68k-softmmu/config-target.h
GEN x86_64-softmmu/hmp-commands-info.h
CC sparc64-linux-user/tcg/tcg-op.o
GEN xtensaeb-softmmu/config-target.h
GEN mips64el-softmmu/hmp-commands.h
CC nios2-softmmu/exec.o
CC m68k-softmmu/exec.o
CC mipsn32-linux-user/tcg/tcg-op.o
CC cris-softmmu/tcg/tcg-op.o
GEN xtensa-softmmu/hmp-commands.h
CC or1k-linux-user/tcg/tcg-op.o
GEN alpha-softmmu/hmp-commands.h
CC microblazeel-linux-user/tcg/tcg-op.o
GEN or1k-softmmu/config-target.h
CC xtensaeb-softmmu/exec.o
GEN i386-softmmu/config-target.h
CC s390x-linux-user/tcg/tcg-op.o
CC s390x-softmmu/gen-features
GEN ppc-softmmu/hmp-commands.h
GEN mipsel-softmmu/hmp-commands.h
GEN ppc-softmmu/hmp-commands-info.h
CC i386-softmmu/exec.o
GEN ppcemb-softmmu/hmp-commands.h
CC or1k-softmmu/exec.o
GEN unicore32-softmmu/hmp-commands-info.h
CC ppc64-linux-user/tcg/tcg-op.o
GEN mips-softmmu/hmp-commands.h
GEN x86_64-softmmu/config-target.h
GEN mips64el-softmmu/hmp-commands-info.h
GEN sparc64-softmmu/hmp-commands.h
CC x86_64-softmmu/exec.o
GEN unicore32-softmmu/config-target.h
GEN mips64el-softmmu/config-target.h
GEN sh4-softmmu/hmp-commands-info.h
CC moxie-softmmu/tcg/tcg.o
CC x86_64-linux-user/tcg/tcg-op.o
GEN xtensa-softmmu/hmp-commands-info.h
CC unicore32-softmmu/exec.o
GEN ppc-softmmu/config-target.h
GEN s390x-softmmu/config-target.h
GEN sh4eb-softmmu/hmp-commands.h
CC ppc-softmmu/exec.o
GEN alpha-softmmu/hmp-commands-info.h
CC mips64el-softmmu/exec.o
GEN aarch64-softmmu/hmp-commands.h
GEN mipsel-softmmu/hmp-commands-info.h
GEN s390x-softmmu/gen-features.h
GEN mips-softmmu/hmp-commands-info.h
GEN sh4-softmmu/config-target.h
GEN xtensa-softmmu/config-target.h
GEN ppcemb-softmmu/hmp-commands-info.h
CC s390x-softmmu/exec.o
GEN sparc64-softmmu/hmp-commands-info.h
CC sh4-softmmu/exec.o
CC xtensa-softmmu/exec.o
GEN ppc64-softmmu/hmp-commands.h
GEN alpha-softmmu/config-target.h
GEN sparc64-softmmu/config-target.h
GEN mips-softmmu/config-target.h
CC microblaze-softmmu/tcg/tcg.o
GEN mips64-softmmu/hmp-commands.h
CC alpha-softmmu/exec.o
GEN mipsel-softmmu/config-target.h
GEN aarch64-softmmu/hmp-commands-info.h
GEN arm-softmmu/hmp-commands.h
CC tricore-softmmu/tcg/tcg-op.o
CC mips-softmmu/exec.o
GEN ppcemb-softmmu/config-target.h
GEN sh4eb-softmmu/hmp-commands-info.h
CC mipsel-softmmu/exec.o
CC sparc64-softmmu/exec.o
CC ppcemb-softmmu/exec.o
GEN sh4eb-softmmu/config-target.h
GEN ppc64-softmmu/hmp-commands-info.h
GEN aarch64-softmmu/config-target.h
CC sh4eb-softmmu/exec.o
GEN arm-softmmu/hmp-commands-info.h
GEN ppc64-softmmu/config-target.h
CC aarch64-softmmu/exec.o
CC ppc64-softmmu/exec.o
GEN mips64-softmmu/hmp-commands-info.h
CC arm-linux-user/tcg/tcg-op.o
GEN arm-softmmu/config-target.h
GEN mips64-softmmu/config-target.h
CC arm-softmmu/exec.o
CC mips64-softmmu/exec.o
CC mipsn32-linux-user/tcg/optimize.o
CC sh4eb-softmmu/tcg/tcg.o
CC cris-linux-user/tcg/optimize.o
CC mipsn32el-linux-user/tcg/tcg-common.o
CC s390x-softmmu/tcg/tcg.o
CC mips-linux-user/tcg/tcg-op.o
CC sh4eb-linux-user/tcg/tcg-op.o
CC sh4eb-linux-user/tcg/optimize.o
CC sh4-softmmu/tcg/tcg.o
CC xtensaeb-softmmu/tcg/tcg.o
CC or1k-linux-user/tcg/optimize.o
CC mips64-linux-user/tcg/tcg-op.o
CC mips64el-softmmu/tcg/tcg.o
CC ppc64le-linux-user/tcg/tcg-op.o
CC tricore-softmmu/tcg/optimize.o
CC x86_64-linux-user/tcg/optimize.o
CC alpha-linux-user/tcg/optimize.o
CC nios2-softmmu/tcg/tcg.o
CC mipsel-linux-user/tcg/optimize.o
CC mips-linux-user/tcg/optimize.o
CC nios2-softmmu/tcg/tcg-op.o
CC m68k-softmmu/tcg/tcg.o
CC xtensa-softmmu/tcg/tcg.o
CC sh4eb-linux-user/tcg/tcg-common.o
CC sh4-linux-user/tcg/tcg-op.o
CC nios2-linux-user/tcg/tcg-op.o
CC mipsel-linux-user/tcg/tcg-common.o
CC mipsn32-linux-user/tcg/tcg-common.o
CC or1k-linux-user/tcg/tcg-common.o
CC or1k-softmmu/tcg/tcg.o
CC mips64el-softmmu/tcg/tcg-op.o
CC alpha-linux-user/tcg/tcg-common.o
CC sparc64-softmmu/tcg/tcg.o
CC hppa-softmmu/tcg/tcg-op.o
CC aarch64-softmmu/tcg/tcg.o
CC xtensaeb-softmmu/tcg/tcg-op.o
CC hppa-linux-user/tcg/tcg-op.o
CC aarch64-linux-user/tcg/tcg-op.o
CC s390x-linux-user/tcg/optimize.o
CC mips-softmmu/tcg/tcg.o
CC mips-softmmu/tcg/tcg-op.o
CC aarch64_be-linux-user/fpu/softfloat.o
CC mips-softmmu/tcg/optimize.o
CC i386-linux-user/tcg/optimize.o
CC ppc64abi32-linux-user/tcg/tcg-op.o
CC nios2-softmmu/tcg/optimize.o
CC or1k-linux-user/fpu/softfloat.o
CC or1k-linux-user/disas.o
CC arm-softmmu/tcg/tcg.o
CC m68k-softmmu/tcg/tcg-op.o
CC mips-softmmu/tcg/tcg-common.o
CC unicore32-softmmu/tcg/tcg.o
CC sparc64-softmmu/tcg/tcg-op.o
CC mips64el-linux-user/tcg/optimize.o
CC cris-linux-user/tcg/tcg-common.o
CC microblazeel-linux-user/tcg/optimize.o
CC mips64-softmmu/tcg/tcg.o
CC tilegx-linux-user/tcg/optimize.o
CC sparc32plus-linux-user/tcg/tcg-op.o
CC arm-linux-user/tcg/optimize.o
CC tricore-softmmu/tcg/tcg-common.o
CC hppa-linux-user/tcg/optimize.o
CC xtensaeb-softmmu/tcg/optimize.o
CC alpha-softmmu/tcg/tcg.o
CC aarch64-linux-user/tcg/optimize.o
CC cris-linux-user/fpu/softfloat.o
CC sparc-linux-user/tcg/optimize.o
CC sparc64-linux-user/tcg/optimize.o
CC s390x-linux-user/tcg/tcg-common.o
CC ppc64-linux-user/tcg/optimize.o
CC i386-linux-user/tcg/tcg-common.o
CC ppc64-softmmu/tcg/tcg.o
CC m68k-softmmu/tcg/optimize.o
CC sh4eb-softmmu/tcg/tcg-op.o
CC armeb-linux-user/tcg/tcg-op.o
CC cris-softmmu/tcg/optimize.o
CC sh4-softmmu/tcg/tcg-op.o
CC sparc-softmmu/tcg/tcg.o
CC sh4eb-linux-user/fpu/softfloat.o
CC s390x-softmmu/tcg/tcg-op.o
CC m68k-softmmu/tcg/tcg-common.o
CC mipsn32el-linux-user/fpu/softfloat.o
CC sh4-linux-user/tcg/optimize.o
CC alpha-linux-user/fpu/softfloat.o
CC ppc-linux-user/tcg/optimize.o
CC x86_64-linux-user/tcg/tcg-common.o
CC s390x-softmmu/tcg/optimize.o
CC sh4eb-softmmu/tcg/optimize.o
CC sh4eb-softmmu/tcg/tcg-common.o
CC mipsn32-linux-user/fpu/softfloat.o
CC cris-linux-user/disas.o
CC xtensa-softmmu/tcg/tcg-op.o
CC m68k-linux-user/accel/tcg/translate-all.o
CC mips64-linux-user/tcg/optimize.o
CC or1k-linux-user/gdbstub.o
CC or1k-linux-user/thunk.o
CC x86_64-linux-user/fpu/softfloat.o
CC s390x-linux-user/fpu/softfloat.o
CC nios2-softmmu/tcg/tcg-common.o
CC lm32-softmmu/tcg/tcg.o
CC sparc32plus-linux-user/tcg/optimize.o
CC cris-softmmu/tcg/tcg-common.o
CC mipsel-linux-user/fpu/softfloat.o
CC aarch64-softmmu/tcg/tcg-op.o
CC arm-linux-user/tcg/tcg-common.o
CC sparc64-linux-user/tcg/tcg-common.o
CC mipsel-softmmu/tcg/tcg.o
CC s390x-softmmu/tcg/tcg-common.o
CC armeb-linux-user/tcg/optimize.o
CC i386-softmmu/tcg/tcg.o
CC mipsn32-linux-user/disas.o
CC tricore-softmmu/fpu/softfloat.o
CC microblazeel-softmmu/tcg/tcg.o
CC sparc64-linux-user/fpu/softfloat.o
CC sparc64-linux-user/disas.o
CC mips64el-linux-user/tcg/tcg-common.o
CC armeb-linux-user/tcg/tcg-common.o
CC microblazeel-linux-user/tcg/tcg-common.o
CC or1k-softmmu/tcg/tcg-op.o
CC s390x-linux-user/disas.o
CC ppc64-linux-user/tcg/tcg-common.o
CC ppc64-linux-user/fpu/softfloat.o
CC tilegx-linux-user/tcg/tcg-common.o
CC mips-linux-user/tcg/tcg-common.o
CC microblaze-softmmu/tcg/tcg-op.o
CC mips64el-linux-user/fpu/softfloat.o
CC moxie-softmmu/tcg/tcg-op.o
CC cris-softmmu/fpu/softfloat.o
CC x86_64-softmmu/tcg/tcg.o
CC x86_64-softmmu/tcg/tcg-op.o
CC mips64-softmmu/tcg/tcg-op.o
CC mips-linux-user/fpu/softfloat.o
CC i386-linux-user/fpu/softfloat.o
CC lm32-softmmu/tcg/tcg-op.o
CC microblazeel-linux-user/fpu/softfloat.o
CC mips64-linux-user/tcg/tcg-common.o
CC x86_64-linux-user/disas.o
CC ppcemb-softmmu/tcg/tcg.o
CC sh4-linux-user/tcg/tcg-common.o
CC hppa-linux-user/tcg/tcg-common.o
CC tricore-softmmu/disas.o
CC tilegx-linux-user/fpu/softfloat.o
CC hppa-linux-user/fpu/softfloat.o
CC i386-softmmu/tcg/tcg-op.o
CC x86_64-softmmu/tcg/optimize.o
CC aarch64-softmmu/tcg/optimize.o
CC arm-linux-user/fpu/softfloat.o
CC unicore32-softmmu/tcg/tcg-op.o
CC ppc-linux-user/tcg/tcg-common.o
CC ppc-linux-user/fpu/softfloat.o
CC ppc-linux-user/disas.o
CC sparc-softmmu/tcg/tcg-op.o
CC alpha-softmmu/tcg/tcg-op.o
CC ppc64-linux-user/disas.o
CC aarch64-softmmu/tcg/tcg-common.o
CC mips64el-linux-user/disas.o
CC ppc-softmmu/tcg/tcg.o
CC mips64el-linux-user/gdbstub.o
CC m68k-linux-user/accel/tcg/translator.o
CC xtensaeb-softmmu/tcg/tcg-common.o
CC i386-softmmu/tcg/optimize.o
CC tricore-softmmu/arch_init.o
CC microblaze-linux-user/linux-user/elfload.o
CC mipsel-softmmu/tcg/tcg-op.o
CC xtensaeb-softmmu/fpu/softfloat.o
CC sparc64-linux-user/gdbstub.o
CC armeb-linux-user/fpu/softfloat.o
CC microblazeel-softmmu/tcg/tcg-op.o
CC mips64-softmmu/tcg/optimize.o
CC sparc-linux-user/tcg/tcg-common.o
CC nios2-linux-user/tcg/optimize.o
CC sparc-linux-user/fpu/softfloat.o
CC sh4eb-softmmu/fpu/softfloat.o
CC arm-linux-user/disas.o
CC cris-softmmu/disas.o
CC mipsn32el-linux-user/disas.o
CC sparc32plus-linux-user/tcg/tcg-common.o
CC mips64-softmmu/tcg/tcg-common.o
CC moxie-softmmu/tcg/optimize.o
CC sparc32plus-linux-user/fpu/softfloat.o
CC aarch64-linux-user/tcg/tcg-common.o
CC m68k-linux-user/accel/tcg/user-exec.o
CC m68k-linux-user/accel/tcg/user-exec-stub.o
CC moxie-softmmu/tcg/tcg-common.o
CC mips64-linux-user/fpu/softfloat.o
CC sh4-linux-user/fpu/softfloat.o
CC i386-linux-user/disas.o
CC arm-softmmu/tcg/tcg-op.o
GEN i386-linux-user/gdbstub-xml.c
CC m68k-softmmu/fpu/softfloat.o
CC alpha-linux-user/disas.o
CC microblaze-linux-user/linux-user/linuxload.o
CC microblazeel-softmmu/tcg/optimize.o
CC moxie-softmmu/fpu/softfloat.o
CC hppa-softmmu/tcg/optimize.o
CC ppc64le-linux-user/tcg/optimize.o
CC aarch64-softmmu/fpu/softfloat.o
CC ppc64le-linux-user/tcg/tcg-common.o
CC mipsel-softmmu/tcg/optimize.o
CC sh4-softmmu/tcg/optimize.o
GEN ppc-linux-user/gdbstub-xml.c
CC ppc-linux-user/gdbstub.o
GEN arm-linux-user/gdbstub-xml.c
CC microblaze-linux-user/linux-user/uaccess.o
CC cris-linux-user/gdbstub.o
CC cris-linux-user/thunk.o
CC mipsn32el-linux-user/gdbstub.o
CC i386-softmmu/tcg/tcg-common.o
CC nios2-softmmu/fpu/softfloat.o
CC cris-linux-user/accel/stubs/hax-stub.o
CC cris-linux-user/accel/stubs/hvf-stub.o
CC xtensaeb-softmmu/disas.o
CC alpha-linux-user/gdbstub.o
CC mips64el-linux-user/thunk.o
CC xtensaeb-softmmu/arch_init.o
CC m68k-softmmu/disas.o
CC ppc-softmmu/tcg/tcg-op.o
GEN s390x-linux-user/gdbstub-xml.c
CC or1k-softmmu/tcg/optimize.o
CC mips64-softmmu/fpu/softfloat.o
CC sparc64-linux-user/thunk.o
CC ppc64-softmmu/tcg/tcg-op.o
CC alpha-softmmu/tcg/optimize.o
CC s390x-softmmu/fpu/softfloat.o
CC nios2-linux-user/tcg/tcg-common.o
CC arm-softmmu/tcg/optimize.o
CC nios2-softmmu/disas.o
CC moxie-softmmu/disas.o
CC arm-softmmu/tcg/tcg-common.o
CC m68k-linux-user/linux-user/main.o
CC microblazeel-linux-user/disas.o
CC sh4eb-softmmu/disas.o
CC or1k-softmmu/tcg/tcg-common.o
CC hppa-softmmu/tcg/tcg-common.o
CC ppc-softmmu/tcg/optimize.o
CC mips-linux-user/disas.o
CC sh4-softmmu/tcg/tcg-common.o
CC aarch64-linux-user/fpu/softfloat.o
CC nios2-linux-user/fpu/softfloat.o
CC mips-linux-user/gdbstub.o
CC mipsn32-linux-user/gdbstub.o
CC nios2-linux-user/disas.o
GEN m68k-softmmu/gdbstub-xml.c
CC mips64el-softmmu/tcg/optimize.o
CC alpha-softmmu/tcg/tcg-common.o
CC sparc64-softmmu/tcg/optimize.o
CC hppa-softmmu/fpu/softfloat.o
CC hppa-linux-user/disas.o
CC sh4-softmmu/fpu/softfloat.o
CC sparc64-linux-user/accel/stubs/hax-stub.o
CC cris-linux-user/accel/stubs/kvm-stub.o
CC ppc64abi32-linux-user/tcg/optimize.o
CC moxie-softmmu/arch_init.o
CC mipsel-linux-user/disas.o
CC tricore-softmmu/cpus.o
CC s390x-linux-user/gdbstub.o
CC mips64el-linux-user/accel/stubs/hax-stub.o
CC sh4-softmmu/disas.o
CC armeb-linux-user/disas.o
CC unicore32-softmmu/tcg/optimize.o
CC cris-softmmu/arch_init.o
CC sh4-linux-user/disas.o
CC unicore32-softmmu/tcg/tcg-common.o
CC ppc64-softmmu/tcg/optimize.o
CC m68k-linux-user/linux-user/syscall.o
CC i386-softmmu/fpu/softfloat.o
CC alpha-linux-user/thunk.o
CC sparc64-softmmu/tcg/tcg-common.o
CC mips64el-softmmu/tcg/tcg-common.o
CC or1k-softmmu/fpu/softfloat.o
CC ppc-softmmu/tcg/tcg-common.o
CC mipsn32el-linux-user/thunk.o
CC sh4-softmmu/arch_init.o
CC unicore32-softmmu/fpu/softfloat.o
GEN x86_64-linux-user/gdbstub-xml.c
CC ppc64-softmmu/tcg/tcg-common.o
CC mips-softmmu/fpu/softfloat.o
CC sparc-linux-user/disas.o
CC xtensa-softmmu/tcg/optimize.o
CC s390x-softmmu/disas.o
CC ppc64le-linux-user/fpu/softfloat.o
CC x86_64-softmmu/tcg/tcg-common.o
CC alpha-softmmu/fpu/softfloat.o
CC mips-linux-user/thunk.o
CC mips64-linux-user/disas.o
CC i386-softmmu/disas.o
CC aarch64-softmmu/disas.o
CC sparc64-linux-user/accel/stubs/hvf-stub.o
CC xtensa-softmmu/tcg/tcg-common.o
CC xtensa-softmmu/fpu/softfloat.o
CC xtensaeb-softmmu/cpus.o
CC microblaze-softmmu/tcg/optimize.o
CC or1k-linux-user/accel/stubs/hax-stub.o
CC alpha-linux-user/accel/stubs/hax-stub.o
CC hppa-softmmu/disas.o
CC hppa-softmmu/arch_init.o
CC xtensa-softmmu/disas.o
CC ppc-softmmu/fpu/softfloat.o
CC nios2-softmmu/arch_init.o
CC mips64el-softmmu/fpu/softfloat.o
CC mipsn32-linux-user/thunk.o
CC sparc64-softmmu/fpu/softfloat.o
CC aarch64-linux-user/disas.o
CC ppc64-softmmu/fpu/softfloat.o
GEN aarch64-linux-user/gdbstub-xml.c
CC or1k-linux-user/accel/stubs/hvf-stub.o
CC cris-linux-user/accel/tcg/tcg-runtime.o
CC x86_64-softmmu/fpu/softfloat.o
CC sparc32plus-linux-user/disas.o
CC or1k-linux-user/accel/stubs/kvm-stub.o
CC microblaze-linux-user/linux-user/uname.o
CC alpha-linux-user/accel/stubs/hvf-stub.o
CC ppc-softmmu/disas.o
CC sparc-softmmu/tcg/optimize.o
CC sh4-softmmu/cpus.o
CC ppc64abi32-linux-user/tcg/tcg-common.o
CC cris-softmmu/cpus.o
CC mips-softmmu/disas.o
CC x86_64-linux-user/gdbstub.o
CC sh4eb-softmmu/arch_init.o
CC mips-softmmu/arch_init.o
CC microblazeel-linux-user/gdbstub.o
CC cris-linux-user/accel/tcg/cpu-exec.o
CC aarch64_be-linux-user/disas.o
CC s390x-linux-user/thunk.o
CC aarch64-linux-user/gdbstub.o
CC arm-softmmu/fpu/softfloat.o
GEN i386-softmmu/gdbstub-xml.c
CC mips64-softmmu/disas.o
CC or1k-linux-user/accel/tcg/tcg-runtime.o
CC sh4eb-softmmu/cpus.o
CC mips64-linux-user/gdbstub.o
CC alpha-linux-user/accel/stubs/kvm-stub.o
CC arm-softmmu/disas.o
CC xtensaeb-softmmu/monitor.o
CC sh4-softmmu/monitor.o
CC mips64el-softmmu/disas.o
CC tilegx-linux-user/disas.o
CC nios2-softmmu/cpus.o
CC microblazeel-linux-user/thunk.o
CC sh4-softmmu/gdbstub.o
CC mipsel-softmmu/tcg/tcg-common.o
CC moxie-softmmu/cpus.o
CC microblazeel-softmmu/tcg/tcg-common.o
GEN arm-softmmu/gdbstub-xml.c
CC mips-softmmu/cpus.o
GEN aarch64_be-linux-user/gdbstub-xml.c
CC aarch64_be-linux-user/gdbstub.o
CC alpha-linux-user/accel/tcg/tcg-runtime.o
GEN armeb-linux-user/gdbstub-xml.c
CC hppa-softmmu/cpus.o
GEN ppc-softmmu/gdbstub-xml.c
CC sparc64-linux-user/accel/stubs/kvm-stub.o
CC alpha-softmmu/disas.o
CC i386-linux-user/gdbstub.o
CC lm32-softmmu/tcg/optimize.o
CC or1k-softmmu/disas.o
CC ppc64abi32-linux-user/fpu/softfloat.o
CC ppc-softmmu/arch_init.o
CC ppcemb-softmmu/tcg/tcg-op.o
CC sh4-linux-user/gdbstub.o
CC or1k-softmmu/arch_init.o
CC or1k-linux-user/accel/tcg/cpu-exec.o
CC m68k-linux-user/linux-user/strace.o
CC unicore32-softmmu/disas.o
CC alpha-linux-user/accel/tcg/cpu-exec.o
CC mipsel-softmmu/fpu/softfloat.o
GEN ppc64-linux-user/gdbstub-xml.c
CC mipsel-linux-user/gdbstub.o
CC x86_64-linux-user/thunk.o
CC ppc64-linux-user/gdbstub.o
CC sparc64-softmmu/disas.o
CC lm32-softmmu/tcg/tcg-common.o
CC sparc64-linux-user/accel/tcg/tcg-runtime.o
CC cris-linux-user/accel/tcg/cpu-exec-common.o
CC unicore32-softmmu/arch_init.o
CC microblazeel-softmmu/fpu/softfloat.o
CC sparc64-linux-user/accel/tcg/cpu-exec.o
CC arm-linux-user/gdbstub.o
CC arm-linux-user/thunk.o
CC i386-softmmu/arch_init.o
CC m68k-linux-user/linux-user/mmap.o
CC microblazeel-softmmu/disas.o
CC aarch64_be-linux-user/thunk.o
CC m68k-linux-user/linux-user/signal.o
CC sh4eb-linux-user/disas.o
CC sh4-linux-user/thunk.o
CC ppc-linux-user/thunk.o
CC sh4eb-linux-user/gdbstub.o
CC microblaze-softmmu/tcg/tcg-common.o
CC sh4-linux-user/accel/stubs/hax-stub.o
CC cris-linux-user/accel/tcg/translate-all.o
CC tricore-softmmu/monitor.o
CC or1k-linux-user/accel/tcg/cpu-exec-common.o
CC alpha-linux-user/accel/tcg/cpu-exec-common.o
CC microblaze-softmmu/fpu/softfloat.o
CC lm32-softmmu/fpu/softfloat.o
GEN s390x-softmmu/gdbstub-xml.c
CC sh4-softmmu/balloon.o
CC or1k-softmmu/cpus.o
CC microblazeel-softmmu/arch_init.o
CC sh4eb-linux-user/thunk.o
CC microblazeel-softmmu/cpus.o
CC microblazeel-softmmu/monitor.o
CC mipsn32el-linux-user/accel/stubs/hax-stub.o
CC armeb-linux-user/gdbstub.o
CC mipsn32el-linux-user/accel/stubs/hvf-stub.o
CC s390x-linux-user/accel/stubs/hax-stub.o
CC xtensa-softmmu/arch_init.o
CC hppa-softmmu/monitor.o
CC sparc-softmmu/tcg/tcg-common.o
GEN aarch64-softmmu/gdbstub-xml.c
CC or1k-linux-user/accel/tcg/translate-all.o
CC ppc64abi32-linux-user/disas.o
CC mipsn32-linux-user/accel/stubs/hax-stub.o
CC mips64el-linux-user/accel/stubs/hvf-stub.o
CC sh4-linux-user/accel/stubs/hvf-stub.o
CC sh4eb-softmmu/monitor.o
CC alpha-linux-user/accel/tcg/translate-all.o
CC m68k-softmmu/arch_init.o
CC or1k-softmmu/monitor.o
CC sparc-linux-user/gdbstub.o
CC x86_64-linux-user/accel/stubs/hax-stub.o
CC or1k-softmmu/gdbstub.o
CC microblaze-softmmu/disas.o
CC cris-linux-user/accel/tcg/translator.o
CC s390x-linux-user/accel/stubs/hvf-stub.o
CC mipsn32-linux-user/accel/stubs/hvf-stub.o
CC sparc64-linux-user/accel/tcg/cpu-exec-common.o
CC aarch64_be-linux-user/accel/stubs/hax-stub.o
CC ppc-linux-user/accel/stubs/hax-stub.o
CC i386-linux-user/thunk.o
CC mipsn32el-linux-user/accel/stubs/kvm-stub.o
CC tricore-softmmu/gdbstub.o
CC tricore-softmmu/balloon.o
CC mips64el-softmmu/arch_init.o
CC mipsel-softmmu/disas.o
CC xtensaeb-softmmu/gdbstub.o
CC mips64el-softmmu/cpus.o
CC mips64el-linux-user/accel/stubs/kvm-stub.o
CC mips64el-linux-user/accel/tcg/tcg-runtime.o
CCAS microblaze-linux-user/linux-user/safe-syscall.o
CC sparc-linux-user/thunk.o
CC mipsn32-linux-user/accel/stubs/kvm-stub.o
CC sparc64-linux-user/accel/tcg/translate-all.o
CC mips64el-softmmu/monitor.o
CC ppc64le-linux-user/disas.o
CC mips64el-linux-user/accel/tcg/cpu-exec.o
CC sparc-softmmu/fpu/softfloat.o
CC aarch64-softmmu/arch_init.o
CC moxie-softmmu/monitor.o
CC mips-linux-user/accel/stubs/hax-stub.o
CC unicore32-softmmu/cpus.o
CC x86_64-linux-user/accel/stubs/hvf-stub.o
CC unicore32-softmmu/monitor.o
CC unicore32-softmmu/gdbstub.o
CC aarch64-linux-user/thunk.o
CC mipsn32-linux-user/accel/tcg/tcg-runtime.o
CC aarch64-linux-user/accel/stubs/hax-stub.o
CC mipsn32el-linux-user/accel/tcg/tcg-runtime.o
CC mips64el-softmmu/gdbstub.o
CC aarch64_be-linux-user/accel/stubs/hvf-stub.o
CC s390x-linux-user/accel/stubs/kvm-stub.o
CC ppc-linux-user/accel/stubs/hvf-stub.o
CC tricore-softmmu/ioport.o
CC mips64el-softmmu/balloon.o
CC mipsn32el-linux-user/accel/tcg/cpu-exec.o
CC arm-softmmu/arch_init.o
CC mips64el-linux-user/accel/tcg/cpu-exec-common.o
CC arm-softmmu/cpus.o
CC ppc64-linux-user/thunk.o
CC mipsn32el-linux-user/accel/tcg/cpu-exec-common.o
CC sh4-softmmu/ioport.o
CC ppc64-linux-user/accel/stubs/hax-stub.o
CC sparc-linux-user/accel/stubs/hax-stub.o
CC x86_64-linux-user/accel/stubs/kvm-stub.o
CC m68k-softmmu/cpus.o
CC ppc-linux-user/accel/stubs/kvm-stub.o
CC cris-linux-user/accel/tcg/user-exec.o
CC microblazeel-linux-user/accel/stubs/hax-stub.o
CC hppa-linux-user/gdbstub.o
CC nios2-linux-user/gdbstub.o
CC m68k-linux-user/linux-user/elfload.o
CC aarch64-softmmu/cpus.o
CC aarch64_be-linux-user/accel/stubs/kvm-stub.o
GEN ppc64abi32-linux-user/gdbstub-xml.c
CC xtensaeb-softmmu/balloon.o
CC microblazeel-linux-user/accel/stubs/hvf-stub.o
CC i386-linux-user/accel/stubs/hax-stub.o
CC nios2-softmmu/monitor.o
CC m68k-linux-user/linux-user/linuxload.o
CC sh4-linux-user/accel/stubs/kvm-stub.o
CC cris-softmmu/monitor.o
CC lm32-softmmu/disas.o
CC s390x-linux-user/accel/tcg/tcg-runtime.o
CC mipsn32-linux-user/accel/tcg/cpu-exec.o
CC armeb-linux-user/thunk.o
CC mipsel-softmmu/arch_init.o
CC m68k-softmmu/monitor.o
CC sparc32plus-linux-user/gdbstub.o
CC mipsel-linux-user/thunk.o
CC mips-linux-user/accel/stubs/hvf-stub.o
CC tilegx-linux-user/gdbstub.o
CC sparc-linux-user/accel/stubs/hvf-stub.o
CC sparc-linux-user/accel/stubs/kvm-stub.o
CC ppc-linux-user/accel/tcg/tcg-runtime.o
CC arm-linux-user/accel/stubs/hax-stub.o
CC tilegx-linux-user/thunk.o
CC or1k-linux-user/accel/tcg/translator.o
CC x86_64-linux-user/accel/tcg/tcg-runtime.o
CC sh4eb-linux-user/accel/stubs/hax-stub.o
CC mips64el-linux-user/accel/tcg/translate-all.o
CC mips64-softmmu/arch_init.o
CC ppc64-softmmu/disas.o
CC xtensaeb-softmmu/ioport.o
CC ppc64abi32-linux-user/gdbstub.o
CC alpha-linux-user/accel/tcg/translator.o
CC sh4eb-linux-user/accel/stubs/hvf-stub.o
CC i386-linux-user/accel/stubs/hvf-stub.o
CC sparc-softmmu/disas.o
CC mipsn32el-linux-user/accel/tcg/translate-all.o
CC or1k-linux-user/accel/tcg/user-exec.o
CC microblazeel-linux-user/accel/stubs/kvm-stub.o
CC sh4-linux-user/accel/tcg/tcg-runtime.o
GEN ppc64-softmmu/gdbstub-xml.c
CC sparc64-softmmu/arch_init.o
CC aarch64_be-linux-user/accel/tcg/tcg-runtime.o
CC ppc64-linux-user/accel/stubs/hvf-stub.o
CC x86_64-softmmu/disas.o
CC mips-linux-user/accel/stubs/kvm-stub.o
CC xtensa-softmmu/cpus.o
CC mips-softmmu/monitor.o
CC sparc64-linux-user/accel/tcg/translator.o
CC sparc-linux-user/accel/tcg/tcg-runtime.o
CC sh4-linux-user/accel/tcg/cpu-exec.o
CC arm-linux-user/accel/stubs/hvf-stub.o
CC alpha-softmmu/arch_init.o
CC i386-linux-user/accel/stubs/kvm-stub.o
CC sh4eb-linux-user/accel/stubs/kvm-stub.o
CC mips64-linux-user/thunk.o
CC sh4eb-linux-user/accel/tcg/tcg-runtime.o
CC s390x-linux-user/accel/tcg/cpu-exec.o
CC alpha-linux-user/accel/tcg/user-exec.o
CC sparc64-softmmu/cpus.o
CC armeb-linux-user/accel/stubs/hax-stub.o
CC xtensa-softmmu/monitor.o
CC microblazeel-linux-user/accel/tcg/tcg-runtime.o
CC m68k-linux-user/linux-user/uaccess.o
CC mips64el-softmmu/ioport.o
CC x86_64-linux-user/accel/tcg/cpu-exec.o
CC mipsel-linux-user/accel/stubs/hax-stub.o
CC microblaze-linux-user/linux-user/flatload.o
CC sh4-softmmu/numa.o
CC ppc64-linux-user/accel/stubs/kvm-stub.o
CC x86_64-linux-user/accel/tcg/cpu-exec-common.o
CC mipsel-softmmu/cpus.o
CC s390x-softmmu/arch_init.o
CC tricore-softmmu/numa.o
CC arm-linux-user/accel/stubs/kvm-stub.o
CC ppc-linux-user/accel/tcg/cpu-exec.o
CC mips-linux-user/accel/tcg/tcg-runtime.o
CC ppc-linux-user/accel/tcg/cpu-exec-common.o
CC ppc-softmmu/cpus.o
CC i386-linux-user/accel/tcg/tcg-runtime.o
CC sh4-linux-user/accel/tcg/cpu-exec-common.o
CC mipsn32-linux-user/accel/tcg/cpu-exec-common.o
CC s390x-softmmu/cpus.o
CC or1k-linux-user/accel/tcg/user-exec-stub.o
CC sh4eb-linux-user/accel/tcg/cpu-exec.o
CC arm-softmmu/monitor.o
CC armeb-linux-user/accel/stubs/hvf-stub.o
CC s390x-softmmu/monitor.o
CC aarch64-linux-user/accel/stubs/hvf-stub.o
CC mipsn32el-linux-user/accel/tcg/translator.o
CC nios2-softmmu/gdbstub.o
CC sparc-linux-user/accel/tcg/cpu-exec.o
CC mipsel-linux-user/accel/stubs/hvf-stub.o
CC mipsn32-linux-user/accel/tcg/translate-all.o
CC aarch64_be-linux-user/accel/tcg/cpu-exec.o
CC s390x-softmmu/gdbstub.o
CC sparc32plus-linux-user/thunk.o
GEN ppc64le-linux-user/gdbstub-xml.c
CC cris-softmmu/gdbstub.o
CC mipsel-linux-user/accel/stubs/kvm-stub.o
CC sparc32plus-linux-user/accel/stubs/hax-stub.o
CC unicore32-softmmu/balloon.o
CC mipsn32el-linux-user/accel/tcg/user-exec.o
CC ppc-softmmu/monitor.o
CC xtensaeb-softmmu/numa.o
CC mips64-linux-user/accel/stubs/hax-stub.o
CC microblaze-linux-user/target/microblaze/translate.o
CC ppc64-linux-user/accel/tcg/tcg-runtime.o
CC sparc64-linux-user/accel/tcg/user-exec.o
CC or1k-softmmu/balloon.o
CC arm-linux-user/accel/tcg/tcg-runtime.o
CC nios2-softmmu/balloon.o
CC ppc64le-linux-user/gdbstub.o
CC microblazeel-linux-user/accel/tcg/cpu-exec.o
CC nios2-softmmu/ioport.o
CC armeb-linux-user/accel/stubs/kvm-stub.o
CC armeb-linux-user/accel/tcg/tcg-runtime.o
CC arm-softmmu/gdbstub.o
CC x86_64-linux-user/accel/tcg/translate-all.o
CC mips64el-linux-user/accel/tcg/translator.o
CC sparc64-softmmu/monitor.o
CC sh4-linux-user/accel/tcg/translate-all.o
CC microblaze-softmmu/arch_init.o
CC mips-linux-user/accel/tcg/cpu-exec.o
CC s390x-linux-user/accel/tcg/cpu-exec-common.o
CC hppa-linux-user/thunk.o
CC mips64-linux-user/accel/stubs/hvf-stub.o
CC mips-linux-user/accel/tcg/cpu-exec-common.o
CC xtensa-softmmu/gdbstub.o
CC alpha-linux-user/accel/tcg/user-exec-stub.o
CC sh4-softmmu/qtest.o
CC mipsel-linux-user/accel/tcg/tcg-runtime.o
CC i386-linux-user/accel/tcg/cpu-exec.o
CC or1k-softmmu/ioport.o
CC cris-linux-user/accel/tcg/user-exec-stub.o
CC hppa-softmmu/gdbstub.o
CC sparc-linux-user/accel/tcg/cpu-exec-common.o
CC m68k-linux-user/linux-user/uname.o
CC nios2-softmmu/numa.o
CC ppc64-linux-user/accel/tcg/cpu-exec.o
CC sh4eb-linux-user/accel/tcg/cpu-exec-common.o
CC mips64-linux-user/accel/stubs/kvm-stub.o
CC xtensa-softmmu/balloon.o
CC sh4-softmmu/memory.o
CC mips64-linux-user/accel/tcg/tcg-runtime.o
CC ppc-linux-user/accel/tcg/translate-all.o
CC ppc-linux-user/accel/tcg/translator.o
CC lm32-softmmu/arch_init.o
CC mips64el-softmmu/numa.o
CC aarch64-softmmu/monitor.o
CC s390x-softmmu/balloon.o
CC tilegx-linux-user/accel/stubs/hax-stub.o
CC or1k-linux-user/linux-user/main.o
CC or1k-linux-user/linux-user/syscall.o
CC ppc64le-linux-user/thunk.o
CC xtensaeb-softmmu/qtest.o
CC mips64-softmmu/cpus.o
CC mips64-softmmu/monitor.o
CC i386-softmmu/cpus.o
CCAS m68k-linux-user/linux-user/safe-syscall.o
CC ppc64-softmmu/arch_init.o
CC sparc-linux-user/accel/tcg/translate-all.o
CC microblazeel-linux-user/accel/tcg/cpu-exec-common.o
CC sparc32plus-linux-user/accel/stubs/hvf-stub.o
CC s390x-linux-user/accel/tcg/translate-all.o
CC mips64el-linux-user/accel/tcg/user-exec.o
CC sh4eb-linux-user/accel/tcg/translate-all.o
CC arm-linux-user/accel/tcg/cpu-exec.o
CC ppc-linux-user/accel/tcg/user-exec.o
CC cris-linux-user/linux-user/main.o
CC hppa-linux-user/accel/stubs/hax-stub.o
CC hppa-linux-user/accel/stubs/hvf-stub.o
CC ppc-linux-user/accel/tcg/user-exec-stub.o
CC sparc64-softmmu/gdbstub.o
CC mips64-linux-user/accel/tcg/cpu-exec.o
GEN x86_64-softmmu/gdbstub-xml.c
CC armeb-linux-user/accel/tcg/cpu-exec.o
CC ppc64-linux-user/accel/tcg/cpu-exec-common.o
CC cris-linux-user/linux-user/syscall.o
CC ppc64le-linux-user/accel/stubs/hax-stub.o
CC mipsn32-linux-user/accel/tcg/translator.o
CC alpha-softmmu/cpus.o
CC mipsel-linux-user/accel/tcg/cpu-exec.o
CC sparc-linux-user/accel/tcg/translator.o
CC sh4-linux-user/accel/tcg/translator.o
CC sh4-linux-user/accel/tcg/user-exec.o
CC sh4eb-linux-user/accel/tcg/translator.o
CC tilegx-linux-user/accel/stubs/hvf-stub.o
CC microblazeel-linux-user/accel/tcg/translate-all.o
CC aarch64_be-linux-user/accel/tcg/cpu-exec-common.o
CC ppc64abi32-linux-user/accel/stubs/hax-stub.o
CC ppc64abi32-linux-user/thunk.o
CC sparc64-softmmu/balloon.o
CC tricore-softmmu/qtest.o
CC microblazeel-linux-user/accel/tcg/translator.o
CC alpha-linux-user/linux-user/main.o
CC sh4eb-softmmu/gdbstub.o
CC sparc32plus-linux-user/accel/stubs/kvm-stub.o
CC sparc64-linux-user/accel/tcg/user-exec-stub.o
CC mips64-linux-user/accel/tcg/cpu-exec-common.o
CC mips-linux-user/accel/tcg/translate-all.o
CC arm-linux-user/accel/tcg/cpu-exec-common.o
CC hppa-linux-user/accel/stubs/kvm-stub.o
CC ppc64-linux-user/accel/tcg/translate-all.o
CC mipsel-linux-user/accel/tcg/cpu-exec-common.o
CC nios2-softmmu/qtest.o
CC x86_64-linux-user/accel/tcg/translator.o
CC nios2-softmmu/memory.o
CC sparc-linux-user/accel/tcg/user-exec.o
CC mipsel-linux-user/accel/tcg/translate-all.o
CC mips-softmmu/gdbstub.o
CC cris-linux-user/linux-user/strace.o
CC i386-linux-user/accel/tcg/cpu-exec-common.o
CC arm-linux-user/accel/tcg/translate-all.o
CC tilegx-linux-user/accel/stubs/kvm-stub.o
CC nios2-linux-user/thunk.o
CC aarch64_be-linux-user/accel/tcg/translate-all.o
CC aarch64_be-linux-user/accel/tcg/translator.o
CC aarch64_be-linux-user/accel/tcg/user-exec.o
CC xtensaeb-softmmu/memory.o
CC tilegx-linux-user/accel/tcg/tcg-runtime.o
CC mips64-linux-user/accel/tcg/translate-all.o
CC ppc64-softmmu/cpus.o
CC sparc64-softmmu/ioport.o
CC mipsn32el-linux-user/accel/tcg/user-exec-stub.o
CC hppa-softmmu/balloon.o
CC cris-linux-user/linux-user/mmap.o
CC hppa-linux-user/accel/tcg/tcg-runtime.o
CC mipsel-linux-user/accel/tcg/translator.o
CC sparc32plus-linux-user/accel/tcg/tcg-runtime.o
CC ppcemb-softmmu/tcg/optimize.o
CC ppc64-softmmu/monitor.o
CC mips64-linux-user/accel/tcg/translator.o
CC sparc64-linux-user/linux-user/main.o
CC aarch64-linux-user/accel/stubs/kvm-stub.o
CC mipsn32el-linux-user/linux-user/main.o
CC i386-linux-user/accel/tcg/translate-all.o
CC mips64el-linux-user/accel/tcg/user-exec-stub.o
CC hppa-softmmu/ioport.o
CC arm-softmmu/balloon.o
CC mipsn32-linux-user/accel/tcg/user-exec.o
CC mips-linux-user/accel/tcg/translator.o
CC ppc-linux-user/linux-user/main.o
CC armeb-linux-user/accel/tcg/cpu-exec-common.o
CC m68k-softmmu/gdbstub.o
CC tilegx-linux-user/accel/tcg/cpu-exec.o
CC ppcemb-softmmu/tcg/tcg-common.o
CC arm-softmmu/ioport.o
CC mips64-softmmu/gdbstub.o
CC ppcemb-softmmu/fpu/softfloat.o
CC x86_64-softmmu/arch_init.o
CC hppa-linux-user/accel/tcg/cpu-exec.o
CC mipsel-softmmu/monitor.o
CC aarch64-linux-user/accel/tcg/tcg-runtime.o
CC x86_64-linux-user/accel/tcg/user-exec.o
CC x86_64-linux-user/accel/tcg/user-exec-stub.o
CC i386-softmmu/monitor.o
CC hppa-softmmu/numa.o
CC mips64el-softmmu/qtest.o
CC mips64-linux-user/accel/tcg/user-exec.o
CC s390x-linux-user/accel/tcg/translator.o
CC s390x-softmmu/ioport.o
CC alpha-softmmu/monitor.o
CC or1k-linux-user/linux-user/strace.o
CC moxie-softmmu/gdbstub.o
CC nios2-linux-user/accel/stubs/hax-stub.o
CC sh4eb-linux-user/accel/tcg/user-exec.o
CC mips64-linux-user/accel/tcg/user-exec-stub.o
CC sparc64-softmmu/numa.o
CC mips64el-linux-user/linux-user/main.o
CC x86_64-linux-user/linux-user/main.o
CC sparc32plus-linux-user/accel/tcg/cpu-exec.o
CC unicore32-softmmu/ioport.o
CC sparc-linux-user/accel/tcg/user-exec-stub.o
CC nios2-softmmu/memory_mapping.o
CC armeb-linux-user/accel/tcg/translate-all.o
CC arm-softmmu/numa.o
CC ppcemb-softmmu/disas.o
CC tilegx-linux-user/accel/tcg/cpu-exec-common.o
CC nios2-linux-user/accel/stubs/hvf-stub.o
CC ppc64-softmmu/gdbstub.o
CC alpha-linux-user/linux-user/syscall.o
CC or1k-softmmu/numa.o
GEN ppcemb-softmmu/gdbstub-xml.c
CC x86_64-softmmu/cpus.o
CC tricore-softmmu/memory.o
CC tricore-softmmu/memory_mapping.o
CC cris-softmmu/balloon.o
CC mipsn32el-linux-user/linux-user/syscall.o
CC microblazeel-softmmu/gdbstub.o
CC mips64-linux-user/linux-user/main.o
CC mips64-linux-user/linux-user/syscall.o
CC ppc64abi32-linux-user/accel/stubs/hvf-stub.o
CC microblazeel-linux-user/accel/tcg/user-exec.o
CC mipsel-linux-user/accel/tcg/user-exec.o
CC lm32-softmmu/cpus.o
CC nios2-softmmu/dump.o
CC arm-softmmu/qtest.o
CC xtensa-softmmu/ioport.o
CC hppa-linux-user/accel/tcg/cpu-exec-common.o
CC sparc64-linux-user/linux-user/syscall.o
CC ppc64le-linux-user/accel/stubs/hvf-stub.o
CC s390x-linux-user/accel/tcg/user-exec.o
CC nios2-linux-user/accel/stubs/kvm-stub.o
CC sparc-linux-user/linux-user/main.o
CC mips-softmmu/balloon.o
CC tilegx-linux-user/accel/tcg/translate-all.o
CC ppc64-linux-user/accel/tcg/translator.o
CC sparc32plus-linux-user/accel/tcg/cpu-exec-common.o
CC ppc64-softmmu/balloon.o
CC mips-linux-user/accel/tcg/user-exec.o
CC ppc64abi32-linux-user/accel/stubs/kvm-stub.o
CC aarch64-linux-user/accel/tcg/cpu-exec.o
CC nios2-softmmu/migration/ram.o
CC aarch64_be-linux-user/accel/tcg/user-exec-stub.o
CC cris-softmmu/ioport.o
CC i386-linux-user/accel/tcg/translator.o
CC sh4-linux-user/accel/tcg/user-exec-stub.o
CC mips-softmmu/ioport.o
CC sparc64-linux-user/linux-user/strace.o
CC ppc64le-linux-user/accel/stubs/kvm-stub.o
CC sh4eb-softmmu/balloon.o
CC sh4-softmmu/memory_mapping.o
CC sparc64-softmmu/qtest.o
CC sparc64-softmmu/memory.o
CC i386-softmmu/gdbstub.o
CC hppa-linux-user/accel/tcg/translate-all.o
CC sparc64-softmmu/memory_mapping.o
CC hppa-softmmu/qtest.o
CC arm-linux-user/accel/tcg/translator.o
CC or1k-linux-user/linux-user/mmap.o
CC aarch64-softmmu/gdbstub.o
CC microblazeel-linux-user/accel/tcg/user-exec-stub.o
CC arm-softmmu/memory.o
CC m68k-softmmu/balloon.o
CC alpha-softmmu/gdbstub.o
CC sh4eb-linux-user/accel/tcg/user-exec-stub.o
CC arm-softmmu/memory_mapping.o
CC sh4eb-linux-user/linux-user/main.o
CC nios2-linux-user/accel/tcg/tcg-runtime.o
CC m68k-linux-user/linux-user/flatload.o
CC i386-linux-user/accel/tcg/user-exec.o
CC mips64el-linux-user/linux-user/syscall.o
CC sparc32plus-linux-user/accel/tcg/translate-all.o
CC ppcemb-softmmu/arch_init.o
CC aarch64-softmmu/balloon.o
CC mips64el-linux-user/linux-user/strace.o
CC ppc-linux-user/linux-user/syscall.o
CC or1k-softmmu/qtest.o
CC ppc64-linux-user/accel/tcg/user-exec.o
CC sh4-linux-user/linux-user/main.o
CC aarch64_be-linux-user/linux-user/main.o
CC ppc64le-linux-user/accel/tcg/tcg-runtime.o
CC unicore32-softmmu/numa.o
CC i386-softmmu/balloon.o
CC xtensa-softmmu/numa.o
CC nios2-linux-user/accel/tcg/cpu-exec.o
CC or1k-softmmu/memory.o
CC sh4eb-softmmu/ioport.o
CC unicore32-softmmu/qtest.o
CC lm32-softmmu/monitor.o
CC mips64el-softmmu/memory.o
CC m68k-softmmu/ioport.o
CC mipsn32-linux-user/accel/tcg/user-exec-stub.o
CC nios2-linux-user/accel/tcg/cpu-exec-common.o
CC mips64el-linux-user/linux-user/mmap.o
CC moxie-softmmu/balloon.o
CC moxie-softmmu/ioport.o
CC hppa-linux-user/accel/tcg/translator.o
CC sh4-softmmu/dump.o
CC moxie-softmmu/numa.o
CC armeb-linux-user/accel/tcg/translator.o
CC s390x-softmmu/numa.o
CC sparc-linux-user/linux-user/syscall.o
CC i386-softmmu/ioport.o
CC aarch64-linux-user/accel/tcg/cpu-exec-common.o
CC arm-linux-user/accel/tcg/user-exec.o
CC ppcemb-softmmu/cpus.o
CC cris-softmmu/numa.o
CC mipsn32-linux-user/linux-user/main.o
CC mips64-softmmu/balloon.o
CC mips-softmmu/numa.o
CC armeb-linux-user/accel/tcg/user-exec.o
CC mipsel-linux-user/accel/tcg/user-exec-stub.o
CC ppc64le-linux-user/accel/tcg/cpu-exec.o
CC x86_64-linux-user/linux-user/syscall.o
CC mips-linux-user/accel/tcg/user-exec-stub.o
CC x86_64-softmmu/monitor.o
CC hppa-softmmu/memory.o
CC sh4-softmmu/migration/ram.o
CC hppa-softmmu/memory_mapping.o
CC mips64el-softmmu/memory_mapping.o
CC unicore32-softmmu/memory.o
CC mipsn32-linux-user/linux-user/syscall.o
CC mipsn32-linux-user/linux-user/strace.o
CC cris-softmmu/qtest.o
CC tricore-softmmu/dump.o
CC tilegx-linux-user/accel/tcg/translator.o
CC mipsel-softmmu/gdbstub.o
CC xtensa-softmmu/qtest.o
CC aarch64_be-linux-user/linux-user/syscall.o
CC xtensa-softmmu/memory.o
CC ppc64abi32-linux-user/accel/tcg/tcg-runtime.o
CC microblaze-linux-user/target/microblaze/op_helper.o
CC arm-linux-user/accel/tcg/user-exec-stub.o
CC nios2-linux-user/accel/tcg/translate-all.o
CC sparc-softmmu/arch_init.o
CC ppc64-linux-user/accel/tcg/user-exec-stub.o
CC mips-linux-user/linux-user/main.o
CC mips-linux-user/linux-user/syscall.o
CC aarch64-linux-user/accel/tcg/translate-all.o
CC xtensa-softmmu/memory_mapping.o
CC or1k-softmmu/memory_mapping.o
CC mips64-softmmu/ioport.o
CC tilegx-linux-user/accel/tcg/user-exec.o
CC sh4eb-softmmu/numa.o
CC nios2-linux-user/accel/tcg/translator.o
CC s390x-linux-user/accel/tcg/user-exec-stub.o
CC sh4-softmmu/accel/accel.o
CC nios2-linux-user/accel/tcg/user-exec.o
CC sh4-linux-user/linux-user/syscall.o
CC ppc-softmmu/gdbstub.o
CC or1k-softmmu/dump.o
CC sh4-linux-user/linux-user/strace.o
CC ppc64le-linux-user/accel/tcg/cpu-exec-common.o
CC microblazeel-linux-user/linux-user/main.o
CC hppa-linux-user/accel/tcg/user-exec.o
CC m68k-softmmu/numa.o
CC cris-softmmu/memory.o
CC mipsel-linux-user/linux-user/main.o
CC s390x-softmmu/qtest.o
CC moxie-softmmu/qtest.o
CC ppcemb-softmmu/monitor.o
CC mips64-softmmu/numa.o
CC mips-softmmu/qtest.o
CC sh4eb-linux-user/linux-user/syscall.o
CC ppc-linux-user/linux-user/strace.o
CC microblazeel-softmmu/balloon.o
CC sparc32plus-linux-user/accel/tcg/translator.o
CC s390x-linux-user/linux-user/main.o
CC tricore-softmmu/migration/ram.o
CC tricore-softmmu/accel/accel.o
CC mips-linux-user/linux-user/strace.o
CC sparc-linux-user/linux-user/strace.o
CC mips-softmmu/memory.o
CC arm-softmmu/dump.o
CC sparc32plus-linux-user/accel/tcg/user-exec.o
CC or1k-softmmu/migration/ram.o
CC hppa-linux-user/accel/tcg/user-exec-stub.o
CC ppc64le-linux-user/accel/tcg/translate-all.o
CC microblaze-linux-user/target/microblaze/helper.o
CC sh4-softmmu/accel/stubs/hax-stub.o
CC xtensaeb-softmmu/memory_mapping.o
CC ppc64abi32-linux-user/accel/tcg/cpu-exec.o
CC hppa-softmmu/dump.o
CC cris-linux-user/linux-user/signal.o
CC nios2-softmmu/accel/accel.o
CC i386-linux-user/accel/tcg/user-exec-stub.o
CC microblazeel-linux-user/linux-user/syscall.o
CC sparc64-linux-user/linux-user/mmap.o
CC microblazeel-softmmu/ioport.o
CC xtensa-softmmu/dump.o
CC nios2-softmmu/accel/stubs/hax-stub.o
CC microblaze-softmmu/cpus.o
CC tricore-softmmu/accel/stubs/hax-stub.o
CC mipsn32-linux-user/linux-user/mmap.o
CC tilegx-linux-user/accel/tcg/user-exec-stub.o
CC ppcemb-softmmu/gdbstub.o
CC mips-linux-user/linux-user/mmap.o
CC alpha-softmmu/balloon.o
CC moxie-softmmu/memory.o
CC microblazeel-softmmu/numa.o
CC microblaze-linux-user/target/microblaze/cpu.o
CC sh4eb-softmmu/qtest.o
CC ppc64-linux-user/linux-user/main.o
CC microblazeel-softmmu/qtest.o
CC sparc64-softmmu/dump.o
CC ppc64-linux-user/linux-user/syscall.o
CC i386-linux-user/linux-user/main.o
CC ppc64abi32-linux-user/accel/tcg/cpu-exec-common.o
CC aarch64-linux-user/accel/tcg/translator.o
CC ppc64le-linux-user/accel/tcg/translator.o
CC aarch64-softmmu/ioport.o
CC tilegx-linux-user/linux-user/main.o
CC m68k-softmmu/qtest.o
CC x86_64-linux-user/linux-user/strace.o
CC ppc-softmmu/balloon.o
CC mips64-softmmu/qtest.o
CC sparc64-linux-user/linux-user/signal.o
CC hppa-linux-user/linux-user/main.o
CC sh4-linux-user/linux-user/mmap.o
CC mips-softmmu/memory_mapping.o
CC sh4eb-softmmu/memory.o
CC i386-linux-user/linux-user/syscall.o
CC s390x-linux-user/linux-user/syscall.o
CC mips64-softmmu/memory.o
CC arm-linux-user/linux-user/main.o
CC mipsn32-linux-user/linux-user/signal.o
CC aarch64-linux-user/accel/tcg/user-exec.o
CC s390x-softmmu/memory.o
CC aarch64-linux-user/accel/tcg/user-exec-stub.o
CC microblaze-linux-user/target/microblaze/gdbstub.o
CC ppc64abi32-linux-user/accel/tcg/translate-all.o
CC xtensa-softmmu/migration/ram.o
CC aarch64-linux-user/linux-user/main.o
CC armeb-linux-user/accel/tcg/user-exec-stub.o
CC microblazeel-softmmu/memory.o
CC i386-softmmu/numa.o
CC or1k-softmmu/accel/accel.o
CC ppc64-softmmu/ioport.o
CC aarch64-linux-user/linux-user/syscall.o
CC ppc64-linux-user/linux-user/strace.o
CC m68k-linux-user/linux-user/m68k-sim.o
CC tricore-softmmu/accel/stubs/hvf-stub.o
CC x86_64-softmmu/gdbstub.o
CC ppc64abi32-linux-user/accel/tcg/translator.o
CC sparc-softmmu/cpus.o
CC i386-softmmu/qtest.o
CC nios2-softmmu/accel/stubs/hvf-stub.o
CC microblazeel-linux-user/linux-user/strace.o
CC mips64el-linux-user/linux-user/signal.o
CC nios2-linux-user/accel/tcg/user-exec-stub.o
CC aarch64-softmmu/numa.o
CC mipsel-linux-user/linux-user/syscall.o
CC tricore-softmmu/accel/stubs/kvm-stub.o
CC alpha-softmmu/ioport.o
CC mipsel-softmmu/balloon.o
CC mipsel-softmmu/ioport.o
CC armeb-linux-user/linux-user/main.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/qtest.o
CC xtensaeb-softmmu/dump.o
CC mipsn32-linux-user/linux-user/elfload.o
CC mipsn32-linux-user/linux-user/linuxload.o
CC microblaze-linux-user/trace/control-target.o
CC mips64-softmmu/memory_mapping.o
CC armeb-linux-user/linux-user/syscall.o
CC cris-softmmu/memory_mapping.o
CC armeb-linux-user/linux-user/strace.o
CC hppa-linux-user/linux-user/syscall.o
CC nios2-linux-user/linux-user/main.o
CC sh4eb-linux-user/linux-user/strace.o
CC m68k-softmmu/memory.o
CC sh4-softmmu/accel/stubs/hvf-stub.o
CC nios2-softmmu/accel/stubs/kvm-stub.o
CC ppc64le-linux-user/accel/tcg/user-exec.o
CC sparc32plus-linux-user/accel/tcg/user-exec-stub.o
CC aarch64-softmmu/memory.o
CC s390x-linux-user/linux-user/strace.o
CC xtensaeb-softmmu/migration/ram.o
CC microblazeel-linux-user/linux-user/mmap.o
CC microblazeel-linux-user/linux-user/signal.o
CC or1k-linux-user/linux-user/signal.o
CC mipsn32-linux-user/linux-user/uaccess.o
CC ppc-softmmu/ioport.o
CC lm32-softmmu/gdbstub.o
CC microblaze-linux-user/trace/generated-helpers.o
CC mipsn32el-linux-user/linux-user/strace.o
CC mipsel-softmmu/numa.o
CC ppc64-softmmu/numa.o
CC ppc64le-linux-user/accel/tcg/user-exec-stub.o
CC sparc64-softmmu/migration/ram.o
CC tilegx-linux-user/linux-user/syscall.o
CC tilegx-linux-user/linux-user/strace.o
CC sh4-softmmu/accel/stubs/kvm-stub.o
CC s390x-softmmu/memory_mapping.o
CC mipsel-linux-user/linux-user/strace.o
CC mips64-linux-user/linux-user/strace.o
CC sparc32plus-linux-user/linux-user/main.o
CC s390x-softmmu/dump.o
CC s390x-softmmu/migration/ram.o
CC mipsel-softmmu/qtest.o
CC ppc-linux-user/linux-user/mmap.o
CC arm-linux-user/linux-user/syscall.o
CC microblaze-softmmu/monitor.o
CC m68k-softmmu/memory_mapping.o
CC sh4eb-softmmu/memory_mapping.o
CC nios2-softmmu/accel/tcg/tcg-all.o
CC alpha-softmmu/numa.o
CC sparc-softmmu/monitor.o
CC hppa-softmmu/migration/ram.o
CC mips64-linux-user/linux-user/mmap.o
CC sparc64-linux-user/linux-user/elfload.o
CC moxie-softmmu/memory_mapping.o
CC nios2-softmmu/accel/tcg/cputlb.o
CC arm-softmmu/migration/ram.o
CC i386-softmmu/memory.o
CC ppcemb-softmmu/balloon.o
LINK microblaze-linux-user/qemu-microblaze
CC or1k-softmmu/accel/stubs/hax-stub.o
CC m68k-linux-user/target/m68k/m68k-semi.o
CC ppc64abi32-linux-user/accel/tcg/user-exec.o
CC sh4-softmmu/accel/tcg/tcg-all.o
CC ppc-softmmu/numa.o
CC tricore-softmmu/accel/tcg/tcg-all.o
CC m68k-linux-user/target/m68k/translate.o
CC hppa-softmmu/accel/accel.o
CC unicore32-softmmu/memory_mapping.o
CC sparc64-linux-user/linux-user/linuxload.o
CC mips-softmmu/dump.o
CC xtensa-softmmu/accel/accel.o
CC ppc64abi32-linux-user/accel/tcg/user-exec-stub.o
CC lm32-softmmu/balloon.o
CC mipsel-linux-user/linux-user/mmap.o
CC mips64-softmmu/dump.o
CC aarch64-linux-user/linux-user/strace.o
CC sh4-softmmu/accel/tcg/cputlb.o
CC sparc-softmmu/gdbstub.o
CC ppc64-linux-user/linux-user/mmap.o
CC ppc64-linux-user/linux-user/signal.o
CC xtensaeb-softmmu/accel/accel.o
CC xtensaeb-softmmu/accel/stubs/hax-stub.o
CC mips-linux-user/linux-user/signal.o
CC xtensa-softmmu/accel/stubs/hax-stub.o
CC nios2-linux-user/linux-user/syscall.o
CC ppc64le-linux-user/linux-user/main.o
CC m68k-softmmu/dump.o
CC ppc64-softmmu/qtest.o
CC moxie-softmmu/dump.o
CC hppa-softmmu/accel/stubs/hax-stub.o
CC alpha-softmmu/qtest.o
CC or1k-softmmu/accel/stubs/hvf-stub.o
CC hppa-softmmu/accel/stubs/hvf-stub.o
CC ppc64le-linux-user/linux-user/syscall.o
CC alpha-softmmu/memory.o
CC sparc32plus-linux-user/linux-user/syscall.o
CC x86_64-softmmu/balloon.o
CC i386-softmmu/memory_mapping.o
CC i386-softmmu/dump.o
CC tricore-softmmu/accel/tcg/cputlb.o
CC tricore-softmmu/accel/tcg/tcg-runtime.o
CC unicore32-softmmu/dump.o
CC ppc64-softmmu/memory.o
CC unicore32-softmmu/migration/ram.o
CC alpha-linux-user/linux-user/strace.o
CC mips-linux-user/linux-user/elfload.o
CC mips64el-softmmu/dump.o
CC ppc64abi32-linux-user/linux-user/main.o
CC i386-linux-user/linux-user/strace.o
CC mipsel-linux-user/linux-user/signal.o
CC mipsel-softmmu/memory.o
CC sparc-linux-user/linux-user/mmap.o
CC or1k-softmmu/accel/stubs/kvm-stub.o
CC x86_64-linux-user/linux-user/mmap.o
CC ppc64-softmmu/memory_mapping.o
CC nios2-softmmu/accel/tcg/tcg-runtime.o
CC x86_64-linux-user/linux-user/signal.o
CC sparc64-softmmu/accel/accel.o
CC aarch64-linux-user/linux-user/mmap.o
CC cris-softmmu/dump.o
CC x86_64-softmmu/ioport.o
CC xtensa-softmmu/accel/stubs/hvf-stub.o
CC cris-softmmu/migration/ram.o
CC tilegx-linux-user/linux-user/mmap.o
CC ppc64-linux-user/linux-user/elfload.o
CC ppc-softmmu/qtest.o
CC hppa-linux-user/linux-user/strace.o
CC mips64-softmmu/migration/ram.o
CC cris-softmmu/accel/accel.o
CC lm32-softmmu/ioport.o
CC sparc-softmmu/balloon.o
CC arm-linux-user/linux-user/strace.o
CC aarch64_be-linux-user/linux-user/strace.o
CC ppc64abi32-linux-user/linux-user/syscall.o
CC alpha-softmmu/memory_mapping.o
CC alpha-softmmu/dump.o
CC sparc-linux-user/linux-user/signal.o
CC or1k-softmmu/accel/tcg/tcg-all.o
CC sparc-linux-user/linux-user/elfload.o
CC xtensa-softmmu/accel/stubs/kvm-stub.o
CC aarch64_be-linux-user/linux-user/mmap.o
CC ppc64abi32-linux-user/linux-user/strace.o
CC or1k-linux-user/linux-user/elfload.o
CC microblazeel-softmmu/memory_mapping.o
CC mips64el-linux-user/linux-user/elfload.o
CC s390x-softmmu/accel/accel.o
CC mipsn32-linux-user/linux-user/uname.o
CC x86_64-softmmu/numa.o
CC mips-linux-user/linux-user/linuxload.o
CC microblazeel-softmmu/dump.o
CC sparc32plus-linux-user/linux-user/strace.o
CC i386-softmmu/migration/ram.o
CC sh4-linux-user/linux-user/signal.o
CC hppa-linux-user/linux-user/mmap.o
CC ppc64-linux-user/linux-user/linuxload.o
CC mips-softmmu/migration/ram.o
CC mips64el-softmmu/migration/ram.o
CC or1k-softmmu/accel/tcg/cputlb.o
CC mips-linux-user/linux-user/uaccess.o
CC xtensa-softmmu/accel/tcg/tcg-all.o
CC ppcemb-softmmu/ioport.o
CC aarch64_be-linux-user/linux-user/signal.o
CC nios2-softmmu/accel/tcg/cpu-exec.o
CC m68k-linux-user/target/m68k/op_helper.o
CC hppa-linux-user/linux-user/signal.o
CC alpha-linux-user/linux-user/mmap.o
CC microblazeel-linux-user/linux-user/elfload.o
CC m68k-softmmu/migration/ram.o
CC m68k-softmmu/accel/accel.o
CC sparc32plus-linux-user/linux-user/mmap.o
CC xtensa-softmmu/accel/tcg/cputlb.o
CC sh4eb-softmmu/dump.o
CC mips64-linux-user/linux-user/signal.o
CC lm32-softmmu/numa.o
CC m68k-softmmu/accel/stubs/hax-stub.o
CC xtensaeb-softmmu/accel/stubs/hvf-stub.o
CC hppa-softmmu/accel/stubs/kvm-stub.o
CC armeb-linux-user/linux-user/mmap.o
CC mipsn32el-linux-user/linux-user/mmap.o
CC xtensaeb-softmmu/accel/stubs/kvm-stub.o
CC s390x-softmmu/accel/stubs/hax-stub.o
CC ppc64-softmmu/dump.o
CC moxie-softmmu/migration/ram.o
CC arm-softmmu/accel/accel.o
CC arm-softmmu/accel/stubs/hax-stub.o
CC ppc64-softmmu/migration/ram.o
CC mipsel-linux-user/linux-user/elfload.o
CC microblazeel-softmmu/migration/ram.o
CC sparc64-softmmu/accel/stubs/hax-stub.o
CC mipsn32el-linux-user/linux-user/signal.o
CC ppc64abi32-linux-user/linux-user/mmap.o
CC mips64el-softmmu/accel/accel.o
CC ppc-softmmu/memory.o
CC mips-linux-user/linux-user/uname.o
CC lm32-softmmu/qtest.o
CC ppc-linux-user/linux-user/signal.o
CC sh4eb-softmmu/migration/ram.o
CC sh4-softmmu/accel/tcg/tcg-runtime.o
CC ppc64abi32-linux-user/linux-user/signal.o
CC s390x-softmmu/accel/stubs/hvf-stub.o
CC ppc64-softmmu/accel/accel.o
CC microblazeel-softmmu/accel/accel.o
CC x86_64-softmmu/qtest.o
CC mipsel-linux-user/linux-user/linuxload.o
CC xtensaeb-softmmu/accel/tcg/tcg-all.o
CC m68k-linux-user/target/m68k/helper.o
CC hppa-softmmu/accel/tcg/tcg-all.o
CC sparc64-softmmu/accel/stubs/hvf-stub.o
CC aarch64_be-linux-user/linux-user/elfload.o
CC m68k-linux-user/target/m68k/cpu.o
CC x86_64-linux-user/linux-user/elfload.o
CC sh4-linux-user/linux-user/elfload.o
CC i386-softmmu/accel/accel.o
CC arm-softmmu/accel/stubs/hvf-stub.o
CC sparc-softmmu/ioport.o
CC tricore-softmmu/accel/tcg/cpu-exec.o
CC nios2-softmmu/accel/tcg/cpu-exec-common.o
CC lm32-softmmu/memory.o
CC ppc-softmmu/memory_mapping.o
CC ppcemb-softmmu/numa.o
CC m68k-linux-user/target/m68k/fpu_helper.o
CC s390x-softmmu/accel/stubs/kvm-stub.o
CC m68k-linux-user/target/m68k/gdbstub.o
CC aarch64-softmmu/memory_mapping.o
GEN trace/generated-helpers.c
CC hppa-softmmu/accel/tcg/cputlb.o
CC mips-softmmu/accel/accel.o
CC m68k-linux-user/trace/control-target.o
CC ppc64-softmmu/accel/kvm/kvm-all.o
CC sh4eb-softmmu/accel/accel.o
CC arm-linux-user/linux-user/mmap.o
CC ppc64-linux-user/linux-user/uaccess.o
CC sh4eb-softmmu/accel/stubs/hax-stub.o
CC ppc64-linux-user/linux-user/uname.o
CC xtensaeb-softmmu/accel/tcg/cputlb.o
CC alpha-softmmu/migration/ram.o
CC sparc64-softmmu/accel/stubs/kvm-stub.o
CC sparc-softmmu/numa.o
CC s390x-linux-user/linux-user/mmap.o
CC mipsel-softmmu/memory_mapping.o
CC arm-softmmu/accel/stubs/kvm-stub.o
CC microblaze-softmmu/gdbstub.o
CC nios2-linux-user/linux-user/strace.o
CC cris-softmmu/accel/stubs/hax-stub.o
CC ppc-softmmu/dump.o
CC sparc64-linux-user/linux-user/uaccess.o
CC cris-linux-user/linux-user/elfload.o
CC or1k-softmmu/accel/tcg/tcg-runtime.o
CC sh4-linux-user/linux-user/linuxload.o
CC alpha-linux-user/linux-user/signal.o
CC x86_64-softmmu/memory.o
CC tricore-softmmu/accel/tcg/cpu-exec-common.o
CC sparc-softmmu/qtest.o
CC mips64-softmmu/accel/accel.o
CC s390x-softmmu/accel/tcg/tcg-all.o
CC arm-linux-user/linux-user/signal.o
CC i386-linux-user/linux-user/mmap.o
CC mips64el-softmmu/accel/stubs/hax-stub.o
CC mips-softmmu/accel/stubs/hax-stub.o
CC or1k-softmmu/accel/tcg/cpu-exec.o
CC sparc64-linux-user/linux-user/uname.o
CC s390x-softmmu/accel/tcg/cputlb.o
CC tilegx-linux-user/linux-user/signal.o
CC aarch64-softmmu/dump.o
CC mips64-linux-user/linux-user/elfload.o
CC mips64-softmmu/accel/stubs/hax-stub.o
CC unicore32-softmmu/accel/accel.o
CC ppcemb-softmmu/qtest.o
CC alpha-linux-user/linux-user/elfload.o
CC mips64-linux-user/linux-user/linuxload.o
CC sparc-linux-user/linux-user/linuxload.o
CC arm-softmmu/accel/tcg/tcg-all.o
CC sparc64-softmmu/accel/tcg/tcg-all.o
CC armeb-linux-user/linux-user/signal.o
CC cris-linux-user/linux-user/linuxload.o
CCAS sparc64-linux-user/linux-user/safe-syscall.o
CC mips64-softmmu/accel/stubs/hvf-stub.o
CC arm-linux-user/linux-user/elfload.o
CC arm-linux-user/linux-user/linuxload.o
CC sparc64-linux-user/target/sparc/translate.o
CC mips64el-linux-user/linux-user/linuxload.o
CCAS mips-linux-user/linux-user/safe-syscall.o
CC tilegx-linux-user/linux-user/elfload.o
CC ppc64le-linux-user/linux-user/strace.o
CC tilegx-linux-user/linux-user/linuxload.o
CC microblaze-softmmu/balloon.o
CC mipsel-softmmu/dump.o
CC mips64el-linux-user/linux-user/uaccess.o
CC ppc64le-linux-user/linux-user/mmap.o
CC i386-softmmu/accel/stubs/hax-stub.o
CC mips-softmmu/accel/stubs/hvf-stub.o
CC tricore-softmmu/accel/tcg/translate-all.o
CC ppc-linux-user/linux-user/elfload.o
CC sparc-softmmu/memory.o
CC mips-softmmu/accel/stubs/kvm-stub.o
CC cris-softmmu/accel/stubs/hvf-stub.o
CC unicore32-softmmu/accel/stubs/hax-stub.o
CC sparc64-softmmu/accel/tcg/cputlb.o
CC mips64el-softmmu/accel/stubs/hvf-stub.o
CC mips-softmmu/accel/tcg/tcg-all.o
CC sparc64-softmmu/accel/tcg/tcg-runtime.o
CC mips64-softmmu/accel/stubs/kvm-stub.o
CC mips64-linux-user/linux-user/uaccess.o
CC nios2-linux-user/linux-user/mmap.o
CC nios2-softmmu/accel/tcg/translate-all.o
CC unicore32-softmmu/accel/stubs/hvf-stub.o
CCAS mipsn32-linux-user/linux-user/safe-syscall.o
CC nios2-linux-user/linux-user/signal.o
CC lm32-softmmu/memory_mapping.o
CC unicore32-softmmu/accel/stubs/kvm-stub.o
CC arm-softmmu/accel/tcg/cputlb.o
CC cris-softmmu/accel/stubs/kvm-stub.o
CC sparc32plus-linux-user/linux-user/signal.o
CC m68k-softmmu/accel/stubs/hvf-stub.o
CC m68k-linux-user/gdbstub-xml.o
CC mipsn32-linux-user/target/mips/translate.o
CC or1k-linux-user/linux-user/linuxload.o
CC hppa-softmmu/accel/tcg/tcg-runtime.o
CC tricore-softmmu/accel/tcg/translator.o
CC ppc64-softmmu/accel/stubs/hax-stub.o
CC tilegx-linux-user/linux-user/uaccess.o
CC or1k-linux-user/linux-user/uaccess.o
CC mips64-softmmu/accel/tcg/tcg-all.o
CC sparc-softmmu/memory_mapping.o
CC sparc-softmmu/dump.o
CC i386-softmmu/accel/stubs/hvf-stub.o
CC sh4eb-linux-user/linux-user/signal.o
CC sh4eb-linux-user/linux-user/mmap.o
CC i386-linux-user/linux-user/signal.o
CC mips64el-softmmu/accel/stubs/kvm-stub.o
CC sh4eb-softmmu/accel/stubs/hvf-stub.o
CC s390x-linux-user/linux-user/signal.o
CC mipsel-linux-user/linux-user/uaccess.o
CC mips-softmmu/accel/tcg/cputlb.o
CC s390x-linux-user/linux-user/elfload.o
CC s390x-linux-user/linux-user/linuxload.o
CC s390x-linux-user/linux-user/uaccess.o
CC s390x-linux-user/linux-user/uname.o
CC cris-softmmu/accel/tcg/tcg-all.o
CC armeb-linux-user/linux-user/elfload.o
CC m68k-softmmu/accel/stubs/kvm-stub.o
CC unicore32-softmmu/accel/tcg/tcg-all.o
CC mips-softmmu/accel/tcg/tcg-runtime.o
CC i386-linux-user/linux-user/elfload.o
CC armeb-linux-user/linux-user/linuxload.o
CC i386-softmmu/accel/stubs/kvm-stub.o
CC mips64-linux-user/linux-user/uname.o
CC ppcemb-softmmu/memory.o
CC nios2-softmmu/accel/tcg/translator.o
CC aarch64-linux-user/linux-user/signal.o
CC xtensaeb-softmmu/accel/tcg/tcg-runtime.o
CC mips64-softmmu/accel/tcg/cputlb.o
CC mipsel-linux-user/linux-user/uname.o
CC hppa-linux-user/linux-user/elfload.o
CC sh4-softmmu/accel/tcg/cpu-exec.o
CC cris-linux-user/linux-user/uaccess.o
CC hppa-linux-user/linux-user/linuxload.o
CC aarch64-softmmu/migration/ram.o
CC aarch64-softmmu/accel/accel.o
CC xtensaeb-softmmu/accel/tcg/cpu-exec.o
CC or1k-linux-user/linux-user/uname.o
CCAS or1k-linux-user/linux-user/safe-syscall.o
CC ppc64-softmmu/accel/stubs/hvf-stub.o
CC cris-softmmu/accel/tcg/cputlb.o
CC sh4eb-linux-user/linux-user/elfload.o
CC microblaze-softmmu/ioport.o
CC i386-softmmu/accel/tcg/tcg-all.o
CC s390x-softmmu/accel/tcg/tcg-runtime.o
CC mips64el-softmmu/accel/tcg/tcg-all.o
CC unicore32-softmmu/accel/tcg/cputlb.o
CC m68k-linux-user/trace/generated-helpers.o
CC microblazeel-softmmu/accel/stubs/hax-stub.o
CC nios2-linux-user/linux-user/elfload.o
CC lm32-softmmu/dump.o
CC alpha-linux-user/linux-user/linuxload.o
CC alpha-linux-user/linux-user/uaccess.o
CC microblaze-softmmu/numa.o
CC or1k-linux-user/target/openrisc/cpu.o
CC i386-linux-user/linux-user/linuxload.o
CCAS mipsel-linux-user/linux-user/safe-syscall.o
CC sh4-linux-user/linux-user/uaccess.o
CC mips-linux-user/target/mips/translate.o
CC ppc64le-linux-user/linux-user/signal.o
CC alpha-linux-user/linux-user/uname.o
CC i386-softmmu/accel/tcg/cputlb.o
CC mipsn32el-linux-user/linux-user/elfload.o
CC microblazeel-linux-user/linux-user/linuxload.o
CC moxie-softmmu/accel/accel.o
CC ppc-linux-user/linux-user/linuxload.o
CC nios2-linux-user/linux-user/linuxload.o
CC m68k-softmmu/accel/tcg/tcg-all.o
CC mips-linux-user/target/mips/dsp_helper.o
CC lm32-softmmu/migration/ram.o
CC moxie-softmmu/accel/stubs/hax-stub.o
CC sh4eb-softmmu/accel/stubs/kvm-stub.o
CC tricore-softmmu/hw/core/generic-loader.o
CC cris-linux-user/linux-user/uname.o
CC tricore-softmmu/hw/core/null-machine.o
CC mips64el-softmmu/accel/tcg/cputlb.o
CC mipsel-softmmu/migration/ram.o
CCAS mips64-linux-user/linux-user/safe-syscall.o
CC lm32-softmmu/accel/accel.o
CC ppc64le-linux-user/linux-user/elfload.o
CC mips64-linux-user/target/mips/translate.o
CC microblazeel-softmmu/accel/stubs/hvf-stub.o
CC microblazeel-linux-user/linux-user/uaccess.o
CC alpha-softmmu/accel/accel.o
CC mipsn32-linux-user/target/mips/dsp_helper.o
CC nios2-softmmu/hw/core/generic-loader.o
CC sparc32plus-linux-user/linux-user/elfload.o
CC alpha-softmmu/accel/stubs/hax-stub.o
CC microblazeel-softmmu/accel/stubs/kvm-stub.o
CC armeb-linux-user/linux-user/uaccess.o
CC ppc64-softmmu/accel/tcg/tcg-all.o
CC lm32-softmmu/accel/stubs/hax-stub.o
CC sh4eb-softmmu/accel/tcg/tcg-all.o
CC sh4-linux-user/linux-user/uname.o
CC moxie-softmmu/accel/stubs/hvf-stub.o
CC or1k-softmmu/accel/tcg/cpu-exec-common.o
CC sparc-linux-user/linux-user/uaccess.o
CCAS alpha-linux-user/linux-user/safe-syscall.o
CC mips64el-softmmu/accel/tcg/tcg-runtime.o
CC or1k-linux-user/target/openrisc/exception.o
CC alpha-linux-user/target/alpha/translate.o
CC s390x-softmmu/accel/tcg/cpu-exec.o
CC m68k-softmmu/accel/tcg/cputlb.o
CC tilegx-linux-user/linux-user/uname.o
CC xtensa-softmmu/accel/tcg/tcg-runtime.o
CC hppa-softmmu/accel/tcg/cpu-exec.o
CC mipsel-linux-user/target/mips/translate.o
CC mips64el-softmmu/accel/tcg/cpu-exec.o
CC moxie-softmmu/accel/stubs/kvm-stub.o
CC mips64el-softmmu/accel/tcg/cpu-exec-common.o
CCAS s390x-linux-user/linux-user/safe-syscall.o
CC mips64el-linux-user/linux-user/uname.o
CC sparc64-softmmu/accel/tcg/cpu-exec.o
CC x86_64-linux-user/linux-user/linuxload.o
CC mips64-softmmu/accel/tcg/tcg-runtime.o
CC sh4-softmmu/accel/tcg/cpu-exec-common.o
CC aarch64_be-linux-user/linux-user/linuxload.o
CC tricore-softmmu/hw/misc/mmio_interface.o
CC ppc64abi32-linux-user/linux-user/elfload.o
CCAS cris-linux-user/linux-user/safe-syscall.o
CC cris-linux-user/target/cris/translate.o
CC hppa-linux-user/linux-user/uaccess.o
CC alpha-linux-user/target/alpha/helper.o
CC alpha-softmmu/accel/stubs/hvf-stub.o
CC nios2-softmmu/hw/core/null-machine.o
CC i386-linux-user/linux-user/uaccess.o
CC microblaze-softmmu/qtest.o
CC mipsel-linux-user/target/mips/dsp_helper.o
CC aarch64-softmmu/accel/stubs/hax-stub.o
CC ppc64-softmmu/accel/tcg/cputlb.o
CC mips64el-softmmu/accel/tcg/translate-all.o
CC aarch64-softmmu/accel/stubs/hvf-stub.o
CC microblazeel-softmmu/accel/tcg/tcg-all.o
CC alpha-softmmu/accel/stubs/kvm-stub.o
CC mips-softmmu/accel/tcg/cpu-exec.o
CC or1k-linux-user/target/openrisc/interrupt.o
CC ppc-softmmu/migration/ram.o
CC sh4eb-softmmu/accel/tcg/cputlb.o
CC sparc64-linux-user/target/sparc/helper.o
CC mips64el-softmmu/accel/tcg/translator.o
CC s390x-softmmu/accel/tcg/cpu-exec-common.o
CC sh4-softmmu/accel/tcg/translate-all.o
CC nios2-softmmu/hw/intc/nios2_iic.o
CC moxie-softmmu/accel/tcg/tcg-all.o
CC mips64el-softmmu/hw/9pfs/virtio-9p-device.o
CC sh4-softmmu/accel/tcg/translator.o
CC tricore-softmmu/hw/net/vhost_net.o
CC mipsel-linux-user/target/mips/op_helper.o
CC tricore-softmmu/hw/net/rocker/qmp-norocker.o
CCAS sh4-linux-user/linux-user/safe-syscall.o
CC nios2-softmmu/hw/misc/mmio_interface.o
CC alpha-linux-user/target/alpha/cpu.o
CC aarch64_be-linux-user/linux-user/uaccess.o
CC or1k-softmmu/accel/tcg/translate-all.o
CCAS ppc64-linux-user/linux-user/safe-syscall.o
CC or1k-softmmu/accel/tcg/translator.o
CC microblazeel-softmmu/accel/tcg/cputlb.o
CC or1k-linux-user/target/openrisc/mmu.o
CC aarch64-softmmu/accel/stubs/kvm-stub.o
CC microblazeel-linux-user/linux-user/uname.o
CC ppc-softmmu/accel/accel.o
CC alpha-softmmu/accel/tcg/tcg-all.o
CC ppc-linux-user/linux-user/uaccess.o
CC mips64-softmmu/accel/tcg/cpu-exec.o
CC i386-linux-user/linux-user/uname.o
CC sparc64-linux-user/target/sparc/cpu.o
CC sh4-softmmu/hw/9pfs/virtio-9p-device.o
CC arm-linux-user/linux-user/uaccess.o
CC tricore-softmmu/hw/vfio/common.o
CC x86_64-linux-user/linux-user/uaccess.o
CC moxie-softmmu/accel/tcg/cputlb.o
CC ppc-linux-user/linux-user/uname.o
CC ppc-softmmu/accel/kvm/kvm-all.o
CCAS ppc-linux-user/linux-user/safe-syscall.o
CC m68k-softmmu/accel/tcg/tcg-runtime.o
CCAS microblazeel-linux-user/linux-user/safe-syscall.o
CC mips64-softmmu/accel/tcg/cpu-exec-common.o
CC sparc-linux-user/linux-user/uname.o
CC sh4eb-linux-user/linux-user/linuxload.o
CC sparc64-softmmu/accel/tcg/cpu-exec-common.o
CC or1k-linux-user/target/openrisc/translate.o
CC nios2-softmmu/hw/net/vhost_net.o
CC nios2-softmmu/hw/net/rocker/qmp-norocker.o
CC arm-softmmu/accel/tcg/tcg-runtime.o
CC aarch64_be-linux-user/linux-user/uname.o
CCAS i386-linux-user/linux-user/safe-syscall.o
CC ppc64le-linux-user/linux-user/linuxload.o
CC microblaze-softmmu/memory.o
CC sh4eb-linux-user/linux-user/uaccess.o
CC hppa-linux-user/linux-user/uname.o
CC x86_64-softmmu/memory_mapping.o
CC s390x-linux-user/target/s390x/cpu.o
CCAS sparc-linux-user/linux-user/safe-syscall.o
CC alpha-softmmu/accel/tcg/cputlb.o
CC mips64-softmmu/accel/tcg/translate-all.o
CC hppa-softmmu/accel/tcg/cpu-exec-common.o
CCAS tilegx-linux-user/linux-user/safe-syscall.o
CC arm-linux-user/linux-user/uname.o
CC alpha-linux-user/target/alpha/int_helper.o
CC microblazeel-softmmu/accel/tcg/tcg-runtime.o
CC sh4eb-softmmu/accel/tcg/tcg-runtime.o
CC microblazeel-softmmu/accel/tcg/cpu-exec.o
CC ppc64-linux-user/target/ppc/cpu-models.o
CCAS aarch64_be-linux-user/linux-user/safe-syscall.o
CC aarch64_be-linux-user/linux-user/flatload.o
CC sparc-softmmu/migration/ram.o
CC sparc32plus-linux-user/linux-user/linuxload.o
CC microblazeel-softmmu/accel/tcg/cpu-exec-common.o
CC moxie-softmmu/accel/tcg/tcg-runtime.o
CC mips64el-softmmu/hw/block/virtio-blk.o
CC aarch64-softmmu/accel/tcg/tcg-all.o
CC arm-softmmu/accel/tcg/cpu-exec.o
CC lm32-softmmu/accel/stubs/hvf-stub.o
CC lm32-softmmu/accel/stubs/kvm-stub.o
CC cris-softmmu/accel/tcg/tcg-runtime.o
CC sparc32plus-linux-user/linux-user/uaccess.o
CC sh4eb-linux-user/linux-user/uname.o
CC nios2-softmmu/hw/timer/altera_timer.o
CC ppc64abi32-linux-user/linux-user/linuxload.o
CC lm32-softmmu/accel/tcg/tcg-all.o
CC sh4-softmmu/hw/block/tc58128.o
CC xtensa-softmmu/accel/tcg/cpu-exec.o
CC cris-softmmu/accel/tcg/cpu-exec.o
CC sparc-softmmu/accel/accel.o
CC mips-softmmu/accel/tcg/cpu-exec-common.o
CC ppc-linux-user/target/ppc/cpu-models.o
CC mips64-linux-user/target/mips/dsp_helper.o
CC alpha-softmmu/accel/tcg/tcg-runtime.o
CC mipsel-softmmu/accel/accel.o
CCAS mips64el-linux-user/linux-user/safe-syscall.o
CC alpha-softmmu/accel/tcg/cpu-exec.o
CC or1k-softmmu/hw/core/generic-loader.o
CC alpha-softmmu/accel/tcg/cpu-exec-common.o
CC mips64-linux-user/target/mips/op_helper.o
CC microblazeel-softmmu/accel/tcg/translate-all.o
CCAS hppa-linux-user/linux-user/safe-syscall.o
CC mips64el-linux-user/target/mips/translate.o
CC hppa-linux-user/target/hppa/translate.o
CC or1k-linux-user/target/openrisc/exception_helper.o
CC m68k-softmmu/accel/tcg/cpu-exec.o
CC hppa-linux-user/target/hppa/helper.o
CC x86_64-softmmu/dump.o
CC microblazeel-linux-user/linux-user/flatload.o
CC cris-linux-user/target/cris/op_helper.o
CC mips64-linux-user/target/mips/lmi_helper.o
CC sparc64-softmmu/accel/tcg/translate-all.o
CC nios2-softmmu/hw/vfio/common.o
CC nios2-softmmu/hw/vfio/platform.o
CC armeb-linux-user/linux-user/uname.o
CC mipsn32el-linux-user/linux-user/linuxload.o
CC aarch64-softmmu/accel/tcg/cputlb.o
CC cris-softmmu/accel/tcg/cpu-exec-common.o
CC arm-softmmu/accel/tcg/cpu-exec-common.o
CC xtensaeb-softmmu/accel/tcg/cpu-exec-common.o
CC lm32-softmmu/accel/tcg/cputlb.o
CC sh4eb-softmmu/accel/tcg/cpu-exec.o
CC mips-softmmu/accel/tcg/translate-all.o
CC ppc-linux-user/target/ppc/cpu.o
CC arm-softmmu/accel/tcg/translate-all.o
CC ppc-linux-user/target/ppc/translate.o
LINK m68k-linux-user/qemu-m68k
CC or1k-softmmu/hw/core/null-machine.o
CC sh4-softmmu/hw/block/virtio-blk.o
CC mipsel-softmmu/accel/stubs/hax-stub.o
CC or1k-softmmu/hw/intc/ompic.o
CC aarch64_be-linux-user/target/arm/arm-semi.o
CC sparc64-softmmu/accel/tcg/translator.o
CC ppc64-linux-user/target/ppc/cpu.o
CC nios2-softmmu/hw/vfio/spapr.o
CC hppa-softmmu/accel/tcg/translate-all.o
CC ppc-linux-user/target/ppc/kvm-stub.o
CC s390x-linux-user/target/s390x/cpu_models.o
CC x86_64-linux-user/linux-user/uname.o
CC ppc64-linux-user/target/ppc/translate.o
CC xtensa-softmmu/accel/tcg/cpu-exec-common.o
CC nios2-softmmu/hw/nios2/boot.o
CC lm32-softmmu/accel/tcg/tcg-runtime.o
CC aarch64-linux-user/linux-user/elfload.o
CC mipsel-softmmu/accel/stubs/hvf-stub.o
CC m68k-softmmu/accel/tcg/cpu-exec-common.o
CC mipsel-linux-user/target/mips/lmi_helper.o
CC mipsn32el-linux-user/linux-user/uaccess.o
CC xtensaeb-softmmu/accel/tcg/translate-all.o
CC xtensaeb-softmmu/accel/tcg/translator.o
CC s390x-softmmu/accel/tcg/translate-all.o
CC lm32-softmmu/accel/tcg/cpu-exec.o
CC ppc-softmmu/accel/stubs/hax-stub.o
CCAS sh4eb-linux-user/linux-user/safe-syscall.o
CC hppa-softmmu/accel/tcg/translator.o
CC or1k-softmmu/hw/misc/mmio_interface.o
CC sh4eb-softmmu/accel/tcg/cpu-exec-common.o
CC sh4eb-linux-user/linux-user/flatload.o
CC sparc64-softmmu/hw/9pfs/virtio-9p-device.o
CC sh4-softmmu/hw/block/vhost-user-blk.o
CC xtensa-softmmu/accel/tcg/translate-all.o
CC xtensa-softmmu/accel/tcg/translator.o
CC tricore-softmmu/hw/vfio/platform.o
CC alpha-linux-user/target/alpha/fpu_helper.o
CCAS armeb-linux-user/linux-user/safe-syscall.o
CC mipsel-softmmu/accel/stubs/kvm-stub.o
CC sparc-linux-user/target/sparc/translate.o
CC sparc-linux-user/target/sparc/helper.o
CC sparc-softmmu/accel/stubs/hax-stub.o
CCAS x86_64-linux-user/linux-user/safe-syscall.o
CC x86_64-linux-user/target/i386/helper.o
CC aarch64-linux-user/linux-user/linuxload.o
CC mips64-linux-user/target/mips/helper.o
CC tricore-softmmu/hw/vfio/spapr.o
CC mipsel-softmmu/accel/tcg/tcg-all.o
CC mips64el-linux-user/target/mips/dsp_helper.o
CC mips64el-linux-user/target/mips/op_helper.o
CC aarch64_be-linux-user/target/arm/kvm-stub.o
CC sh4-softmmu/hw/block/dataplane/virtio-blk.o
CC ppcemb-softmmu/memory_mapping.o
CC microblazeel-softmmu/accel/tcg/translator.o
CC sh4eb-linux-user/target/sh4/translate.o
CC s390x-softmmu/accel/tcg/translator.o
CC mipsn32-linux-user/target/mips/op_helper.o
CC alpha-softmmu/accel/tcg/translate-all.o
CC x86_64-softmmu/migration/ram.o
CC or1k-softmmu/hw/net/vhost_net.o
CC mipsn32el-linux-user/linux-user/uname.o
CC aarch64-softmmu/accel/tcg/tcg-runtime.o
CC nios2-softmmu/hw/nios2/cpu_pic.o
CC ppc-softmmu/accel/stubs/hvf-stub.o
CC sparc32plus-linux-user/linux-user/uname.o
CC armeb-linux-user/linux-user/flatload.o
CC alpha-softmmu/accel/tcg/translator.o
CC nios2-linux-user/linux-user/uaccess.o
CC s390x-softmmu/hw/9pfs/virtio-9p-device.o
CC sh4eb-softmmu/accel/tcg/translate-all.o
CC ppc-linux-user/target/ppc/dfp_helper.o
CC aarch64-linux-user/linux-user/uaccess.o
CC mipsel-softmmu/accel/tcg/cputlb.o
CC sparc64-softmmu/hw/block/virtio-blk.o
CC s390x-linux-user/target/s390x/cpu_features.o
CC sh4-linux-user/linux-user/flatload.o
CC tilegx-linux-user/target/tilegx/cpu.o
CC aarch64_be-linux-user/target/arm/translate.o
CC cris-linux-user/target/cris/helper.o
CC lm32-softmmu/accel/tcg/cpu-exec-common.o
CC hppa-softmmu/hw/9pfs/virtio-9p-device.o
CC microblazeel-linux-user/target/microblaze/translate.o
CC or1k-linux-user/target/openrisc/fpu_helper.o
CC mips64-softmmu/accel/tcg/translator.o
CC arm-softmmu/accel/tcg/translator.o
CC or1k-softmmu/hw/net/rocker/qmp-norocker.o
CC alpha-linux-user/target/alpha/vax_helper.o
CC i386-linux-user/linux-user/vm86.o
CC ppcemb-softmmu/dump.o
CC aarch64-softmmu/accel/tcg/cpu-exec.o
CC ppc64le-linux-user/linux-user/uaccess.o
CC or1k-softmmu/hw/vfio/common.o
CCAS mipsn32el-linux-user/linux-user/safe-syscall.o
CC alpha-softmmu/hw/9pfs/virtio-9p-device.o
CC ppc-softmmu/accel/tcg/tcg-all.o
CC mipsn32el-linux-user/target/mips/translate.o
CC nios2-softmmu/hw/nios2/10m50_devboard.o
CC s390x-linux-user/target/s390x/gdbstub.o
CC x86_64-linux-user/target/i386/cpu.o
CC mips64-softmmu/hw/9pfs/virtio-9p-device.o
CC cris-linux-user/target/cris/cpu.o
CC sh4-softmmu/hw/char/sh_serial.o
CC alpha-softmmu/hw/block/virtio-blk.o
CC arm-softmmu/hw/9pfs/virtio-9p-device.o
CC hppa-linux-user/target/hppa/cpu.o
CC tricore-softmmu/hw/tricore/tricore_testboard.o
CC unicore32-softmmu/accel/tcg/tcg-runtime.o
CC mips64el-softmmu/hw/block/vhost-user-blk.o
CC x86_64-softmmu/accel/accel.o
CC or1k-softmmu/hw/vfio/platform.o
CC mipsel-softmmu/accel/tcg/tcg-runtime.o
CC ppc-linux-user/target/ppc/excp_helper.o
CC hppa-linux-user/target/hppa/op_helper.o
CC mips64el-softmmu/hw/block/dataplane/virtio-blk.o
CC ppc-softmmu/accel/tcg/cputlb.o
CC microblaze-softmmu/memory_mapping.o
CC ppc-softmmu/accel/tcg/tcg-runtime.o
CC unicore32-softmmu/accel/tcg/cpu-exec.o
CC ppc64-linux-user/target/ppc/kvm-stub.o
CC x86_64-softmmu/accel/stubs/hax-stub.o
CC sparc-softmmu/accel/stubs/hvf-stub.o
CC x86_64-linux-user/target/i386/gdbstub.o
CC tilegx-linux-user/target/tilegx/translate.o
CC x86_64-linux-user/target/i386/xsave_helper.o
CC nios2-softmmu/target/nios2/translate.o
CC mips-softmmu/accel/tcg/translator.o
CC aarch64-linux-user/linux-user/uname.o
CC s390x-softmmu/hw/block/virtio-blk.o
CC xtensa-softmmu/hw/core/generic-loader.o
CC ppcemb-softmmu/migration/ram.o
CC hppa-softmmu/hw/block/virtio-blk.o
CC mips-linux-user/target/mips/op_helper.o
CC xtensaeb-softmmu/hw/core/generic-loader.o
CC sh4-softmmu/hw/char/virtio-serial-bus.o
CC sh4-softmmu/hw/core/generic-loader.o
CC s390x-linux-user/target/s390x/interrupt.o
CC sh4-linux-user/target/sh4/translate.o
CC cris-softmmu/accel/tcg/translate-all.o
CC s390x-linux-user/target/s390x/helper.o
CC s390x-linux-user/target/s390x/translate.o
CC tricore-softmmu/target/tricore/translate.o
CC i386-linux-user/target/i386/helper.o
CC sparc-softmmu/accel/stubs/kvm-stub.o
CC i386-linux-user/target/i386/cpu.o
CC i386-softmmu/accel/tcg/tcg-runtime.o
CC ppc64-softmmu/accel/tcg/tcg-runtime.o
CC nios2-softmmu/target/nios2/op_helper.o
CC microblazeel-linux-user/target/microblaze/op_helper.o
CC moxie-softmmu/accel/tcg/cpu-exec.o
CC mips64el-softmmu/hw/char/virtio-serial-bus.o
CC ppc64le-linux-user/linux-user/uname.o
CC hppa-linux-user/target/hppa/gdbstub.o
CC x86_64-linux-user/target/i386/translate.o
CC sparc-softmmu/accel/tcg/tcg-all.o
CCAS aarch64-linux-user/linux-user/safe-syscall.o
CC sh4eb-softmmu/accel/tcg/translator.o
CC ppc64-softmmu/accel/tcg/cpu-exec.o
CC mips64-softmmu/hw/block/virtio-blk.o
CC sh4-linux-user/target/sh4/op_helper.o
CC xtensa-softmmu/hw/core/null-machine.o
CC mips64el-softmmu/hw/core/generic-loader.o
CC aarch64-linux-user/linux-user/flatload.o
CC alpha-linux-user/target/alpha/sys_helper.o
CC microblaze-softmmu/dump.o
CCAS arm-linux-user/linux-user/safe-syscall.o
CC ppc-softmmu/accel/tcg/cpu-exec.o
CC aarch64_be-linux-user/target/arm/op_helper.o
CC cris-softmmu/accel/tcg/translator.o
CC unicore32-softmmu/accel/tcg/cpu-exec-common.o
CC alpha-linux-user/target/alpha/mem_helper.o
CC arm-softmmu/hw/adc/stm32f2xx_adc.o
CC aarch64_be-linux-user/target/arm/helper.o
CC sparc64-softmmu/hw/block/vhost-user-blk.o
CC m68k-softmmu/accel/tcg/translate-all.o
CC s390x-softmmu/hw/block/vhost-user-blk.o
CCAS sparc32plus-linux-user/linux-user/safe-syscall.o
CC xtensa-softmmu/hw/misc/mmio_interface.o
CC cris-linux-user/target/cris/gdbstub.o
CC xtensaeb-softmmu/hw/core/null-machine.o
CC mips64el-softmmu/hw/core/null-machine.o
CC lm32-softmmu/accel/tcg/translate-all.o
CC aarch64-linux-user/target/arm/arm-semi.o
CC sparc-softmmu/accel/tcg/cputlb.o
CC x86_64-linux-user/target/i386/bpt_helper.o
CC mips64el-softmmu/hw/display/vga.o
CC nios2-softmmu/target/nios2/helper.o
CC sh4-softmmu/hw/core/null-machine.o
CC ppc64-softmmu/accel/tcg/cpu-exec-common.o
CC or1k-linux-user/target/openrisc/interrupt_helper.o
CC alpha-linux-user/target/alpha/gdbstub.o
GEN trace/generated-helpers.c
CC mips-linux-user/target/mips/lmi_helper.o
CC sparc-linux-user/target/sparc/cpu.o
CC unicore32-softmmu/accel/tcg/translate-all.o
CC arm-softmmu/hw/block/virtio-blk.o
CC microblazeel-softmmu/hw/core/generic-loader.o
CC i386-linux-user/target/i386/gdbstub.o
CC i386-linux-user/target/i386/xsave_helper.o
CC or1k-linux-user/target/openrisc/mmu_helper.o
CC nios2-linux-user/linux-user/uname.o
CC hppa-softmmu/hw/block/vhost-user-blk.o
CC xtensaeb-softmmu/hw/misc/mmio_interface.o
CC i386-softmmu/accel/tcg/cpu-exec.o
CC sparc64-softmmu/hw/block/dataplane/virtio-blk.o
CC arm-linux-user/linux-user/flatload.o
CC cris-softmmu/hw/core/generic-loader.o
CC xtensa-softmmu/hw/net/vhost_net.o
CC sparc64-linux-user/target/sparc/fop_helper.o
CC sh4eb-softmmu/hw/9pfs/virtio-9p-device.o
CC mipsel-softmmu/accel/tcg/cpu-exec.o
CC mips-softmmu/hw/9pfs/virtio-9p-device.o
CC sparc32plus-linux-user/target/sparc/translate.o
CC xtensaeb-softmmu/hw/net/vhost_net.o
CC mipsel-softmmu/accel/tcg/cpu-exec-common.o
CC sparc-linux-user/target/sparc/fop_helper.o
CC s390x-softmmu/hw/block/dataplane/virtio-blk.o
CC or1k-softmmu/hw/vfio/spapr.o
CC s390x-softmmu/hw/char/virtio-serial-bus.o
CCAS ppc64le-linux-user/linux-user/safe-syscall.o
CC mips64el-linux-user/target/mips/lmi_helper.o
CC mipsn32-linux-user/target/mips/lmi_helper.o
CC alpha-linux-user/trace/control-target.o
CC sh4-softmmu/hw/display/sm501.o
CC sh4-softmmu/hw/display/vga.o
CC microblaze-softmmu/migration/ram.o
CC unicore32-softmmu/accel/tcg/translator.o
CC ppc64-softmmu/accel/tcg/translate-all.o
CC microblazeel-linux-user/target/microblaze/helper.o
CC sh4-linux-user/target/sh4/helper.o
CC or1k-softmmu/hw/openrisc/pic_cpu.o
CC sparc64-linux-user/target/sparc/cc_helper.o
CC x86_64-softmmu/accel/stubs/hvf-stub.o
CC x86_64-softmmu/accel/stubs/kvm-stub.o
CC or1k-linux-user/target/openrisc/sys_helper.o
CC aarch64-linux-user/target/arm/kvm-stub.o
CC sparc64-softmmu/hw/char/virtio-serial-bus.o
CC sparc64-softmmu/hw/core/generic-loader.o
CC tilegx-linux-user/target/tilegx/helper.o
CC nios2-softmmu/target/nios2/cpu.o
CC mips64-softmmu/hw/block/vhost-user-blk.o
CC moxie-softmmu/accel/tcg/cpu-exec-common.o
CC microblazeel-softmmu/hw/core/null-machine.o
CC xtensaeb-softmmu/hw/net/rocker/qmp-norocker.o
CC mips64-softmmu/hw/block/dataplane/virtio-blk.o
CC mips-softmmu/hw/block/virtio-blk.o
CC cris-softmmu/hw/core/null-machine.o
CC xtensa-softmmu/hw/net/rocker/qmp-norocker.o
CC hppa-softmmu/hw/block/dataplane/virtio-blk.o
CC hppa-softmmu/hw/char/virtio-serial-bus.o
CC s390x-softmmu/hw/char/terminal3270.o
CCAS nios2-linux-user/linux-user/safe-syscall.o
CC m68k-softmmu/accel/tcg/translator.o
CC or1k-linux-user/target/openrisc/gdbstub.o
CC xtensaeb-softmmu/hw/vfio/common.o
CC ppc64-softmmu/accel/tcg/translator.o
CC lm32-softmmu/accel/tcg/translator.o
CC or1k-softmmu/hw/openrisc/cputimer.o
CC s390x-linux-user/target/s390x/cc_helper.o
CC sh4-softmmu/hw/display/virtio-gpu.o
CC x86_64-softmmu/accel/tcg/tcg-all.o
CC nios2-softmmu/target/nios2/mmu.o
CC alpha-linux-user/trace/generated-helpers.o
CC sh4eb-softmmu/hw/block/tc58128.o
CC arm-softmmu/hw/block/vhost-user-blk.o
GEN trace/generated-helpers.c
CC mips-linux-user/target/mips/helper.o
CC mips64el-softmmu/hw/display/virtio-gpu.o
CC mips-softmmu/hw/block/vhost-user-blk.o
CC aarch64-linux-user/target/arm/translate.o
CC ppc-softmmu/accel/tcg/cpu-exec-common.o
CC mipsn32el-linux-user/target/mips/dsp_helper.o
CC nios2-softmmu/target/nios2/monitor.o
CC sparc64-linux-user/target/sparc/win_helper.o
CC cris-linux-user/trace/control-target.o
CC xtensa-softmmu/hw/vfio/common.o
CC i386-linux-user/target/i386/translate.o
CC nios2-linux-user/target/nios2/translate.o
GEN trace/generated-helpers.c
CC sh4eb-softmmu/hw/block/virtio-blk.o
CC microblazeel-softmmu/hw/misc/mmio_interface.o
CC mips64-softmmu/hw/char/virtio-serial-bus.o
CC alpha-softmmu/hw/block/vhost-user-blk.o
CC unicore32-softmmu/hw/core/generic-loader.o
CC moxie-softmmu/accel/tcg/translate-all.o
CC x86_64-softmmu/accel/tcg/cputlb.o
CC cris-softmmu/hw/misc/mmio_interface.o
CC aarch64-softmmu/accel/tcg/cpu-exec-common.o
CC or1k-linux-user/trace/control-target.o
CC tilegx-linux-user/target/tilegx/simd_helper.o
CC sh4-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/accel/tcg/translate-all.o
CC i386-softmmu/accel/tcg/cpu-exec-common.o
CC arm-linux-user/linux-user/arm/nwfpe/fpa11.o
CC mips-softmmu/hw/block/dataplane/virtio-blk.o
CC lm32-softmmu/hw/core/generic-loader.o
CC or1k-softmmu/hw/openrisc/openrisc_sim.o
CC hppa-linux-user/target/hppa/mem_helper.o
CC sparc-softmmu/accel/tcg/tcg-runtime.o
CC ppc-linux-user/target/ppc/fpu_helper.o
CC xtensa-softmmu/hw/vfio/platform.o
CC hppa-softmmu/hw/core/generic-loader.o
CC ppc-linux-user/target/ppc/int_helper.o
CC hppa-softmmu/hw/core/null-machine.o
GEN trace/generated-helpers.c
CC armeb-linux-user/linux-user/arm/nwfpe/fpa11.o
CC sparc-softmmu/accel/tcg/cpu-exec.o
CC microblazeel-softmmu/hw/net/xilinx_ethlite.o
CC mips-linux-user/target/mips/cpu.o
CC tricore-softmmu/target/tricore/helper.o
CC arm-linux-user/linux-user/arm/nwfpe/fpa11_cpdo.o
CC mips-linux-user/target/mips/gdbstub.o
CC ppcemb-softmmu/accel/accel.o
CC hppa-softmmu/hw/display/vga.o
CC nios2-softmmu/trace/control-target.o
CC m68k-softmmu/hw/char/mcf_uart.o
CC tricore-softmmu/target/tricore/cpu.o
CC s390x-softmmu/hw/core/generic-loader.o
CC mipsn32-linux-user/target/mips/helper.o
LINK alpha-linux-user/qemu-alpha
CC sh4-softmmu/hw/display/virtio-gpu-pci.o
CC cris-softmmu/hw/net/etraxfs_eth.o
CC arm-softmmu/hw/block/dataplane/virtio-blk.o
CC sh4eb-softmmu/hw/block/vhost-user-blk.o
CC i386-softmmu/accel/tcg/translate-all.o
CC unicore32-softmmu/hw/core/null-machine.o
GEN trace/generated-helpers.c
CC cris-linux-user/trace/generated-helpers.o
CC tilegx-linux-user/trace/control-target.o
CC alpha-softmmu/hw/block/dataplane/virtio-blk.o
CC hppa-softmmu/hw/display/virtio-gpu.o
CC ppc64abi32-linux-user/linux-user/uaccess.o
CC microblaze-softmmu/accel/accel.o
CC i386-softmmu/accel/tcg/translator.o
CC sh4-softmmu/hw/intc/sh_intc.o
CC mips64-softmmu/hw/core/generic-loader.o
CC mipsel-softmmu/accel/tcg/translate-all.o
CC or1k-linux-user/trace/generated-helpers.o
CC sh4eb-softmmu/hw/block/dataplane/virtio-blk.o
CC lm32-softmmu/hw/core/null-machine.o
CC sparc64-softmmu/hw/core/null-machine.o
CC unicore32-softmmu/hw/misc/mmio_interface.o
CC mipsn32el-linux-user/target/mips/op_helper.o
CC sh4-linux-user/target/sh4/cpu.o
CC mips-linux-user/target/mips/msa_helper.o
CC sparc32plus-linux-user/target/sparc/helper.o
CC ppcemb-softmmu/accel/kvm/kvm-all.o
CC unicore32-softmmu/hw/net/vhost_net.o
CC armeb-linux-user/linux-user/arm/nwfpe/fpa11_cpdo.o
CC or1k-softmmu/target/openrisc/machine.o
CC sh4-linux-user/target/sh4/gdbstub.o
CC m68k-softmmu/hw/core/generic-loader.o
CC nios2-softmmu/trace/generated-helpers.o
CC s390x-linux-user/target/s390x/excp_helper.o
CC armeb-linux-user/linux-user/arm/nwfpe/fpa11_cpdt.o
CC mips-softmmu/hw/char/virtio-serial-bus.o
CC s390x-softmmu/hw/core/null-machine.o
CC microblazeel-softmmu/hw/net/vhost_net.o
CC s390x-linux-user/target/s390x/fpu_helper.o
CC ppc64-softmmu/hw/9pfs/virtio-9p-device.o
CC ppc64-softmmu/hw/block/virtio-blk.o
CC sparc-linux-user/target/sparc/cc_helper.o
CC sh4-softmmu/hw/misc/ivshmem.o
CC alpha-softmmu/hw/char/virtio-serial-bus.o
CC armeb-linux-user/linux-user/arm/nwfpe/fpa11_cprt.o
CC aarch64-softmmu/accel/tcg/translator.o
CC mips64el-softmmu/hw/display/virtio-gpu-3d.o
CC cris-softmmu/hw/net/vhost_net.o
CC arm-softmmu/hw/char/exynos4210_uart.o
CC m68k-softmmu/hw/core/null-machine.o
CC ppc64-linux-user/target/ppc/dfp_helper.o
CC arm-linux-user/linux-user/arm/nwfpe/fpa11_cpdt.o
CC arm-linux-user/linux-user/arm/nwfpe/fpa11_cprt.o
CC microblazeel-softmmu/hw/net/rocker/qmp-norocker.o
CC hppa-linux-user/target/hppa/int_helper.o
CC tilegx-linux-user/trace/generated-helpers.o
CC moxie-softmmu/accel/tcg/translator.o
CC moxie-softmmu/hw/core/generic-loader.o
CC mips-linux-user/target/mips/mips-semi.o
LINK cris-linux-user/qemu-cris
CC aarch64-softmmu/hw/9pfs/virtio-9p-device.o
CC s390x-softmmu/hw/display/virtio-gpu.o
CC sh4eb-linux-user/target/sh4/op_helper.o
CC mips64-softmmu/hw/core/null-machine.o
CC lm32-softmmu/hw/input/milkymist-softusb.o
CC x86_64-softmmu/accel/tcg/tcg-runtime.o
CC mips64el-softmmu/hw/display/virtio-gpu-pci.o
CC unicore32-softmmu/hw/net/rocker/qmp-norocker.o
CC sparc64-softmmu/hw/display/vga.o
CC or1k-softmmu/target/openrisc/cpu.o
CC microblazeel-linux-user/target/microblaze/cpu.o
CC or1k-softmmu/target/openrisc/exception.o
CC xtensa-softmmu/hw/vfio/spapr.o
CC or1k-softmmu/target/openrisc/interrupt.o
CC sh4-softmmu/hw/misc/mmio_interface.o
CC i386-softmmu/hw/9pfs/virtio-9p-device.o
CC sh4eb-softmmu/hw/char/sh_serial.o
CC ppc64-softmmu/hw/block/vhost-user-blk.o
LINK or1k-linux-user/qemu-or1k
CC tricore-softmmu/target/tricore/op_helper.o
CC ppc64le-linux-user/target/ppc/cpu-models.o
CC sparc64-linux-user/target/sparc/mmu_helper.o
CC ppc-linux-user/target/ppc/timebase_helper.o
CC sh4eb-linux-user/target/sh4/helper.o
CC microblaze-softmmu/accel/stubs/hax-stub.o
CC arm-linux-user/linux-user/arm/nwfpe/fpopcode.o
CC xtensaeb-softmmu/hw/vfio/platform.o
CC sparc64-softmmu/hw/display/virtio-gpu.o
CC xtensaeb-softmmu/hw/vfio/spapr.o
CC microblazeel-softmmu/hw/vfio/common.o
CC cris-softmmu/hw/net/rocker/qmp-norocker.o
CC sparc-linux-user/target/sparc/win_helper.o
CC tricore-softmmu/target/tricore/fpu_helper.o
CC m68k-softmmu/hw/misc/mmio_interface.o
CC aarch64-linux-user/target/arm/op_helper.o
GEN trace/generated-helpers.c
CC nios2-linux-user/target/nios2/op_helper.o
CC m68k-softmmu/hw/net/mcf_fec.o
LINK nios2-softmmu/qemu-system-nios2
CC mips64el-softmmu/hw/intc/mips_gic.o
CC hppa-linux-user/trace/control-target.o
CC sparc-softmmu/accel/tcg/cpu-exec-common.o
CC arm-softmmu/hw/char/omap_uart.o
CC unicore32-softmmu/hw/vfio/common.o
CC arm-softmmu/hw/char/digic-uart.o
CC xtensa-softmmu/hw/xtensa/pic_cpu.o
CC sparc32plus-linux-user/target/sparc/cpu.o
CC sparc-linux-user/target/sparc/mmu_helper.o
CC ppc64-linux-user/target/ppc/excp_helper.o
GEN trace/generated-helpers.c
CC mips64-softmmu/hw/display/vga.o
CC microblazeel-linux-user/target/microblaze/gdbstub.o
CC x86_64-softmmu/accel/tcg/cpu-exec.o
CC moxie-softmmu/hw/core/null-machine.o
CC unicore32-softmmu/hw/vfio/platform.o
CC mips64el-softmmu/hw/misc/ivshmem.o
CC alpha-softmmu/hw/core/generic-loader.o
CC aarch64-linux-user/target/arm/helper.o
CC cris-softmmu/hw/vfio/common.o
CC cris-softmmu/hw/vfio/platform.o
CC alpha-softmmu/hw/core/null-machine.o
CC ppc-linux-user/target/ppc/misc_helper.o
CC xtensa-softmmu/hw/xtensa/sim.o
CC sparc64-linux-user/target/sparc/ldst_helper.o
CC armeb-linux-user/linux-user/arm/nwfpe/fpopcode.o
CC microblaze-softmmu/accel/stubs/hvf-stub.o
CC lm32-softmmu/hw/misc/milkymist-hpdmc.o
CC or1k-softmmu/target/openrisc/mmu.o
LINK tilegx-linux-user/qemu-tilegx
CC sh4eb-softmmu/hw/char/virtio-serial-bus.o
CC mips-softmmu/hw/core/generic-loader.o
CC arm-linux-user/linux-user/arm/nwfpe/single_cpdo.o
CC sh4-softmmu/hw/net/virtio-net.o
CC mipsel-softmmu/accel/tcg/translator.o
CC arm-linux-user/linux-user/arm/nwfpe/double_cpdo.o
CC arm-softmmu/hw/char/stm32f2xx_usart.o
CC alpha-softmmu/hw/display/vga.o
CC moxie-softmmu/hw/display/vga.o
CC cris-softmmu/hw/vfio/spapr.o
CC microblaze-softmmu/accel/stubs/kvm-stub.o
CC i386-softmmu/hw/block/virtio-blk.o
CC mipsel-linux-user/target/mips/helper.o
CC sparc64-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/hw/adc/stm32f2xx_adc.o
CC nios2-linux-user/target/nios2/helper.o
CC moxie-softmmu/hw/misc/mmio_interface.o
CC mips64el-softmmu/hw/misc/mips_cmgcr.o
CC ppcemb-softmmu/accel/stubs/hax-stub.o
CC sparc-linux-user/target/sparc/ldst_helper.o
CC sparc64-softmmu/hw/display/virtio-gpu-pci.o
GEN trace/generated-helpers.c
CC mipsn32-linux-user/target/mips/cpu.o
CC mipsel-softmmu/hw/9pfs/virtio-9p-device.o
CC ppc-linux-user/target/ppc/mem_helper.o
CC lm32-softmmu/hw/misc/milkymist-pfpu.o
CC ppc64-softmmu/hw/block/dataplane/virtio-blk.o
CC microblazeel-linux-user/trace/control-target.o
CC i386-softmmu/hw/block/vhost-user-blk.o
CC hppa-linux-user/trace/generated-helpers.o
CC hppa-softmmu/hw/display/virtio-gpu-3d.o
CC arm-linux-user/linux-user/arm/nwfpe/extended_cpdo.o
CC armeb-linux-user/linux-user/arm/nwfpe/single_cpdo.o
CC xtensaeb-softmmu/hw/xtensa/pic_cpu.o
CC ppcemb-softmmu/accel/stubs/hvf-stub.o
CC sparc-softmmu/accel/tcg/translate-all.o
CC mips64-softmmu/hw/display/virtio-gpu.o
CC x86_64-linux-user/target/i386/cc_helper.o
CC sh4eb-softmmu/hw/core/generic-loader.o
CC aarch64-softmmu/hw/block/virtio-blk.o
CC sh4-softmmu/hw/net/vhost_net.o
CC mipsn32el-linux-user/target/mips/lmi_helper.o
CC mipsel-softmmu/hw/block/virtio-blk.o
CC armeb-linux-user/linux-user/arm/nwfpe/double_cpdo.o
CC nios2-linux-user/target/nios2/cpu.o
CC mips64el-linux-user/target/mips/helper.o
CC i386-linux-user/target/i386/bpt_helper.o
CC sparc64-linux-user/target/sparc/int64_helper.o
CC or1k-softmmu/target/openrisc/translate.o
CC m68k-softmmu/hw/net/vhost_net.o
CC sparc-linux-user/target/sparc/int32_helper.o
CC sparc-linux-user/target/sparc/gdbstub.o
CC lm32-softmmu/hw/misc/mmio_interface.o
CC aarch64-linux-user/target/arm/cpu.o
CC sparc64-linux-user/target/sparc/vis_helper.o
CC x86_64-softmmu/accel/tcg/cpu-exec-common.o
CC ppc-softmmu/accel/tcg/translate-all.o
CC mipsn32-linux-user/target/mips/gdbstub.o
CC arm-softmmu/hw/char/bcm2835_aux.o
CC mips64-linux-user/target/mips/cpu.o
CC mips-softmmu/hw/core/null-machine.o
CC xtensa-softmmu/hw/xtensa/xtfpga.o
GEN trace/generated-helpers.c
CC arm-softmmu/hw/char/virtio-serial-bus.o
CC microblaze-softmmu/accel/tcg/tcg-all.o
CC aarch64_be-linux-user/target/arm/cpu.o
CC microblazeel-softmmu/hw/vfio/platform.o
CC sh4-softmmu/hw/scsi/virtio-scsi.o
CC arm-softmmu/hw/core/generic-loader.o
CC lm32-softmmu/hw/net/milkymist-minimac2.o
GEN trace/generated-helpers.c
CC sh4eb-linux-user/target/sh4/cpu.o
CC microblazeel-linux-user/trace/generated-helpers.o
CC lm32-softmmu/hw/net/vhost_net.o
CC armeb-linux-user/linux-user/arm/nwfpe/extended_cpdo.o
CC tricore-softmmu/trace/control-target.o
CC sh4eb-softmmu/hw/core/null-machine.o
CC xtensaeb-softmmu/hw/xtensa/sim.o
CC ppc64-softmmu/hw/char/spapr_vty.o
CC ppcemb-softmmu/accel/tcg/tcg-all.o
CC microblaze-softmmu/accel/tcg/cputlb.o
CC x86_64-linux-user/target/i386/excp_helper.o
CC mips64el-softmmu/hw/misc/mips_cpc.o
CC xtensa-softmmu/target/xtensa/xtensa-semi.o
CC arm-softmmu/hw/core/null-machine.o
LINK hppa-linux-user/qemu-hppa
CC mips64-linux-user/target/mips/gdbstub.o
CC xtensa-softmmu/target/xtensa/core-dc232b.o
CC s390x-linux-user/target/s390x/int_helper.o
CC sh4eb-linux-user/target/sh4/gdbstub.o
CC ppc-softmmu/accel/tcg/translator.o
GEN trace/generated-helpers.c
CC aarch64-linux-user/target/arm/neon_helper.o
CC mips-softmmu/hw/display/vga.o
CC microblazeel-softmmu/hw/vfio/spapr.o
CC i386-linux-user/target/i386/cc_helper.o
CC ppc64-softmmu/hw/char/virtio-serial-bus.o
CC arm-linux-user/target/arm/arm-semi.o
CC m68k-softmmu/hw/net/rocker/qmp-norocker.o
CC s390x-softmmu/hw/display/virtio-gpu-3d.o
CC sparc-softmmu/accel/tcg/translator.o
CC i386-softmmu/hw/block/dataplane/virtio-blk.o
CC unicore32-softmmu/hw/vfio/spapr.o
CC ppc-linux-user/target/ppc/user_only_helper.o
CC sparc-linux-user/trace/control-target.o
CC cris-softmmu/hw/cris/boot.o
CC nios2-linux-user/target/nios2/mmu.o
CC sparc64-linux-user/target/sparc/gdbstub.o
GEN trace/generated-helpers.c
CC sparc64-linux-user/trace/control-target.o
CC hppa-softmmu/hw/display/virtio-gpu-pci.o
CC cris-softmmu/hw/cris/axis_dev88.o
CC ppc64abi32-linux-user/linux-user/uname.o
CC microblaze-softmmu/accel/tcg/tcg-runtime.o
CC mips-linux-user/trace/control-target.o
CC ppc64le-linux-user/target/ppc/cpu.o
CC ppc64le-linux-user/target/ppc/translate.o
CC mipsel-softmmu/hw/block/vhost-user-blk.o
CC ppcemb-softmmu/accel/tcg/cputlb.o
CC sh4-linux-user/trace/control-target.o
CC cris-softmmu/target/cris/translate.o
CC sparc32plus-linux-user/target/sparc/fop_helper.o
LINK microblazeel-linux-user/qemu-microblazeel
CC mips64el-softmmu/hw/misc/mips_itu.o
CC mipsel-softmmu/hw/block/dataplane/virtio-blk.o
GEN trace/generated-helpers.c
CC microblaze-softmmu/accel/tcg/cpu-exec.o
CC moxie-softmmu/hw/net/vhost_net.o
CC moxie-softmmu/hw/net/rocker/qmp-norocker.o
CC xtensaeb-softmmu/hw/xtensa/xtfpga.o
CC arm-linux-user/target/arm/kvm-stub.o
CC m68k-softmmu/hw/vfio/common.o
CC lm32-softmmu/hw/net/rocker/qmp-norocker.o
CC or1k-softmmu/target/openrisc/exception_helper.o
CC sparc-softmmu/hw/core/generic-loader.o
CC armeb-linux-user/target/arm/arm-semi.o
CC ppcemb-softmmu/accel/tcg/tcg-runtime.o
CC sh4eb-softmmu/hw/display/sm501.o
CC nios2-linux-user/trace/control-target.o
CC ppc-linux-user/target/ppc/gdbstub.o
CC ppcemb-softmmu/accel/tcg/cpu-exec.o
CC mips-softmmu/hw/display/virtio-gpu.o
CC ppcemb-softmmu/accel/tcg/cpu-exec-common.o
GEN trace/generated-helpers.c
CC sh4eb-linux-user/trace/control-target.o
CC sparc32plus-linux-user/target/sparc/cc_helper.o
CC arm-linux-user/target/arm/translate.o
CC aarch64-linux-user/target/arm/iwmmxt_helper.o
CC microblazeel-softmmu/hw/microblaze/petalogix_s3adsp1800_mmu.o
CC unicore32-softmmu/hw/unicore32/puv3.o
CC armeb-linux-user/target/arm/kvm-stub.o
CC s390x-softmmu/hw/display/virtio-gpu-pci.o
CC sparc-softmmu/hw/core/null-machine.o
CC ppc64-linux-user/target/ppc/fpu_helper.o
CC hppa-softmmu/hw/display/virtio-vga.o
CC sparc-linux-user/trace/generated-helpers.o
CC xtensaeb-softmmu/target/xtensa/xtensa-semi.o
CC mipsn32el-linux-user/target/mips/helper.o
CC sh4eb-softmmu/hw/display/vga.o
CC sparc64-linux-user/trace/generated-helpers.o
CC or1k-softmmu/target/openrisc/fpu_helper.o
CCAS ppc64abi32-linux-user/linux-user/safe-syscall.o
CC i386-softmmu/hw/char/virtio-serial-bus.o
CC i386-softmmu/hw/core/generic-loader.o
CC microblazeel-softmmu/hw/microblaze/petalogix_ml605_mmu.o
CC ppc64abi32-linux-user/target/ppc/cpu-models.o
CC xtensaeb-softmmu/target/xtensa/core-dc232b.o
CC lm32-softmmu/hw/sd/milkymist-memcard.o
CC arm-softmmu/hw/cpu/arm11mpcore.o
CC arm-softmmu/hw/cpu/realview_mpcore.o
CC lm32-softmmu/hw/vfio/common.o
CC aarch64-linux-user/target/arm/gdbstub.o
CC sparc32plus-linux-user/target/sparc/win_helper.o
CC cris-softmmu/target/cris/op_helper.o
CC alpha-softmmu/hw/display/virtio-gpu.o
CC sparc-softmmu/hw/display/tcx.o
CC ppcemb-softmmu/accel/tcg/translate-all.o
CC xtensaeb-softmmu/target/xtensa/core-dc233c.o
CC mips-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64-softmmu/hw/block/vhost-user-blk.o
CC microblaze-softmmu/accel/tcg/cpu-exec-common.o
CC microblaze-softmmu/accel/tcg/translate-all.o
CC tricore-softmmu/trace/generated-helpers.o
CC sh4eb-linux-user/trace/generated-helpers.o
CC sh4-linux-user/trace/generated-helpers.o
CC sparc64-softmmu/hw/misc/ivshmem.o
CC moxie-softmmu/hw/timer/mc146818rtc.o
CC moxie-softmmu/hw/vfio/common.o
CC mipsel-softmmu/hw/char/virtio-serial-bus.o
CC unicore32-softmmu/target/unicore32/translate.o
CC mips64-linux-user/target/mips/msa_helper.o
CC lm32-softmmu/hw/vfio/platform.o
CC nios2-linux-user/trace/generated-helpers.o
CC lm32-softmmu/hw/vfio/spapr.o
CC mips64el-softmmu/hw/misc/mmio_interface.o
CC ppc64abi32-linux-user/target/ppc/cpu.o
CC aarch64-softmmu/hw/block/dataplane/virtio-blk.o
CC x86_64-softmmu/accel/tcg/translate-all.o
CC i386-linux-user/target/i386/excp_helper.o
CC mips64el-linux-user/target/mips/cpu.o
CC ppc-softmmu/hw/9pfs/virtio-9p-device.o
CC microblaze-softmmu/accel/tcg/translator.o
CC mipsel-softmmu/hw/core/generic-loader.o
CC sh4-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC mipsn32el-linux-user/target/mips/cpu.o
CC s390x-softmmu/hw/intc/s390_flic.o
LINK sparc-linux-user/qemu-sparc
CC ppc-linux-user/target/ppc/../../libdecnumber/decContext.o
CC xtensaeb-softmmu/target/xtensa/core-fsf.o
CC i386-softmmu/hw/core/null-machine.o
CC s390x-softmmu/hw/misc/mmio_interface.o
LINK sparc64-linux-user/qemu-sparc64
CC arm-softmmu/hw/cpu/a9mpcore.o
CC s390x-softmmu/hw/net/virtio-net.o
CC sh4-softmmu/hw/scsi/vhost-scsi-common.o
CC hppa-softmmu/hw/misc/ivshmem.o
CC sh4eb-softmmu/hw/display/virtio-gpu.o
CC lm32-softmmu/hw/lm32/lm32_boards.o
CC mips64el-softmmu/hw/net/virtio-net.o
CC xtensa-softmmu/target/xtensa/core-dc233c.o
CC ppcemb-softmmu/accel/tcg/translator.o
CC ppc64-softmmu/hw/core/generic-loader.o
CC microblazeel-softmmu/hw/microblaze/boot.o
CC ppc64-softmmu/hw/core/null-machine.o
CC mipsn32-linux-user/target/mips/msa_helper.o
CC mipsn32-linux-user/target/mips/mips-semi.o
LINK sh4-linux-user/qemu-sh4
CC moxie-softmmu/hw/vfio/platform.o
LINK sh4eb-linux-user/qemu-sh4eb
CC or1k-softmmu/target/openrisc/interrupt_helper.o
CC mips64el-softmmu/hw/net/vhost_net.o
CC sparc-softmmu/hw/display/cg3.o
CC mipsn32el-linux-user/target/mips/gdbstub.o
LINK nios2-linux-user/qemu-nios2
CC hppa-softmmu/hw/misc/mmio_interface.o
CC or1k-softmmu/target/openrisc/mmu_helper.o
CC i386-softmmu/hw/display/vga.o
CC ppc-softmmu/hw/block/virtio-blk.o
CC x86_64-linux-user/target/i386/fpu_helper.o
CC sh4eb-softmmu/hw/display/virtio-gpu-3d.o
CC s390x-softmmu/hw/net/vhost_net.o
CC s390x-softmmu/hw/net/rocker/qmp-norocker.o
CC mipsel-softmmu/hw/core/null-machine.o
CC mips64el-softmmu/hw/scsi/virtio-scsi.o
CC armeb-linux-user/target/arm/translate.o
CC mips64el-linux-user/target/mips/gdbstub.o
CC x86_64-softmmu/accel/tcg/translator.o
CC sh4-softmmu/hw/scsi/vhost-scsi.o
CC s390x-linux-user/target/s390x/mem_helper.o
CC microblazeel-softmmu/target/microblaze/translate.o
CC arm-softmmu/hw/cpu/a15mpcore.o
CC mips-softmmu/hw/display/virtio-gpu-pci.o
CC mips64-softmmu/hw/display/virtio-gpu-3d.o
CC ppc-softmmu/hw/block/vhost-user-blk.o
CC ppc64-softmmu/hw/display/sm501.o
CC aarch64-softmmu/hw/char/exynos4210_uart.o
CC arm-linux-user/target/arm/op_helper.o
CC mips64el-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64_be-linux-user/target/arm/neon_helper.o
CC s390x-linux-user/target/s390x/misc_helper.o
CC hppa-softmmu/hw/net/virtio-net.o
CC ppc64-linux-user/target/ppc/int_helper.o
CC sparc64-softmmu/hw/misc/mmio_interface.o
CC mips64-softmmu/hw/display/virtio-gpu-pci.o
CC m68k-softmmu/hw/vfio/platform.o
CC s390x-softmmu/hw/scsi/virtio-scsi.o
CC s390x-linux-user/target/s390x/crypto_helper.o
CC mips64el-linux-user/target/mips/msa_helper.o
CC xtensa-softmmu/target/xtensa/core-fsf.o
CC x86_64-softmmu/hw/9pfs/virtio-9p-device.o
CC mipsel-softmmu/hw/display/vga.o
CC mips64-softmmu/hw/intc/mips_gic.o
CC ppc64-linux-user/target/ppc/timebase_helper.o
CC mips-softmmu/hw/intc/mips_gic.o
CC alpha-softmmu/hw/display/virtio-gpu-3d.o
CC aarch64_be-linux-user/target/arm/iwmmxt_helper.o
CC s390x-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC m68k-softmmu/hw/vfio/spapr.o
CC sparc-softmmu/hw/intc/grlib_irqmp.o
CC x86_64-softmmu/hw/block/virtio-blk.o
CC ppc64abi32-linux-user/target/ppc/translate.o
CC moxie-softmmu/hw/vfio/spapr.o
CC ppc64-softmmu/hw/display/vga.o
CC ppc64-linux-user/target/ppc/misc_helper.o
CC mips64el-linux-user/target/mips/mips-semi.o
CC unicore32-softmmu/target/unicore32/op_helper.o
CC sh4-softmmu/hw/scsi/vhost-user-scsi.o
CC sparc64-softmmu/hw/net/virtio-net.o
CC arm-softmmu/hw/display/omap_dss.o
CC sh4-softmmu/hw/timer/sh_timer.o
CC aarch64-softmmu/hw/char/omap_uart.o
CC lm32-softmmu/hw/lm32/milkymist.o
CC or1k-softmmu/target/openrisc/sys_helper.o
CC xtensa-softmmu/target/xtensa/monitor.o
CC ppc64-softmmu/hw/display/virtio-gpu.o
CC microblaze-softmmu/hw/core/generic-loader.o
CC sh4-softmmu/hw/timer/mc146818rtc.o
CC or1k-softmmu/target/openrisc/gdbstub.o
CC sh4-softmmu/hw/vfio/common.o
CC ppcemb-softmmu/hw/9pfs/virtio-9p-device.o
CC hppa-softmmu/hw/net/vhost_net.o
CC i386-softmmu/hw/display/virtio-gpu.o
CC cris-softmmu/target/cris/helper.o
CC arm-linux-user/target/arm/helper.o
CC mips64-softmmu/hw/misc/ivshmem.o
CC sparc64-softmmu/hw/net/vhost_net.o
CC armeb-linux-user/target/arm/op_helper.o
CC mipsel-linux-user/target/mips/cpu.o
CC moxie-softmmu/hw/moxie/moxiesim.o
CC sparc64-softmmu/hw/scsi/virtio-scsi.o
CC alpha-softmmu/hw/display/virtio-gpu-pci.o
CC alpha-softmmu/hw/misc/ivshmem.o
CC x86_64-softmmu/hw/block/vhost-user-blk.o
CC ppc64-softmmu/hw/display/virtio-gpu-3d.o
CC xtensaeb-softmmu/target/xtensa/monitor.o
CC sh4eb-softmmu/hw/display/virtio-gpu-pci.o
CC moxie-softmmu/target/moxie/translate.o
CC ppc64-linux-user/target/ppc/mem_helper.o
CC ppc64le-linux-user/target/ppc/kvm-stub.o
CC arm-softmmu/hw/display/omap_lcdc.o
CC sparc-softmmu/hw/misc/eccmemctl.o
CC mips-linux-user/trace/generated-helpers.o
CC aarch64-softmmu/hw/char/digic-uart.o
CC xtensa-softmmu/target/xtensa/xtensa-isa.o
CC mips-softmmu/hw/misc/ivshmem.o
CC alpha-softmmu/hw/misc/mmio_interface.o
CC sh4-softmmu/hw/vfio/pci.o
CC sparc-softmmu/hw/misc/slavio_misc.o
CC lm32-softmmu/target/lm32/translate.o
GEN trace/generated-helpers.c
CC mipsel-softmmu/hw/display/virtio-gpu.o
CC x86_64-linux-user/target/i386/int_helper.o
CC m68k-softmmu/hw/m68k/an5206.o
CC armeb-linux-user/target/arm/helper.o
CC i386-softmmu/hw/display/virtio-gpu-3d.o
CC cris-softmmu/target/cris/cpu.o
CC moxie-softmmu/target/moxie/helper.o
CC or1k-softmmu/trace/control-target.o
CC i386-linux-user/target/i386/fpu_helper.o
CC i386-linux-user/target/i386/int_helper.o
CC ppc64-linux-user/target/ppc/user_only_helper.o
CC ppc-softmmu/hw/block/dataplane/virtio-blk.o
CC arm-linux-user/target/arm/cpu.o
CC i386-softmmu/hw/display/virtio-gpu-pci.o
CC xtensa-softmmu/target/xtensa/translate.o
CC i386-softmmu/hw/display/virtio-vga.o
CC ppc-linux-user/target/ppc/../../libdecnumber/decNumber.o
CC s390x-softmmu/hw/scsi/vhost-scsi-common.o
CC mips64el-softmmu/hw/scsi/vhost-scsi-common.o
CC arm-softmmu/hw/display/pxa2xx_lcd.o
CC armeb-linux-user/target/arm/cpu.o
CC sh4eb-softmmu/hw/intc/sh_intc.o
CC arm-linux-user/target/arm/neon_helper.o
CC aarch64-softmmu/hw/char/stm32f2xx_usart.o
CC xtensa-softmmu/target/xtensa/op_helper.o
CC ppc64-linux-user/target/ppc/gdbstub.o
CC i386-linux-user/target/i386/mem_helper.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/decContext.o
CC s390x-softmmu/hw/scsi/vhost-scsi.o
CC aarch64_be-linux-user/target/arm/gdbstub.o
CC m68k-softmmu/hw/m68k/mcf5208.o
CC aarch64-linux-user/target/arm/cpu64.o
CC mips64-linux-user/target/mips/mips-semi.o
CC mipsel-linux-user/target/mips/gdbstub.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/decNumber.o
CC or1k-softmmu/trace/generated-helpers.o
CC sparc32plus-linux-user/target/sparc/mmu_helper.o
CC aarch64-softmmu/hw/char/bcm2835_aux.o
CC mipsel-softmmu/hw/display/virtio-gpu-3d.o
CC mipsel-softmmu/hw/display/virtio-gpu-pci.o
CC x86_64-softmmu/hw/block/dataplane/virtio-blk.o
CC mips64-softmmu/hw/misc/mips_cmgcr.o
CC mipsel-linux-user/target/mips/msa_helper.o
CC sh4eb-softmmu/hw/misc/ivshmem.o
CC x86_64-linux-user/target/i386/mem_helper.o
GEN trace/generated-helpers.c
CC sh4-softmmu/hw/vfio/pci-quirks.o
CC sparc-softmmu/hw/misc/mmio_interface.o
CC arm-linux-user/target/arm/iwmmxt_helper.o
CC mips-softmmu/hw/misc/mips_cmgcr.o
CC xtensaeb-softmmu/target/xtensa/xtensa-isa.o
CC x86_64-softmmu/hw/char/virtio-serial-bus.o
CC mips64el-softmmu/hw/scsi/vhost-scsi.o
CC s390x-softmmu/hw/scsi/vhost-user-scsi.o
CC sh4-softmmu/hw/vfio/platform.o
CC cris-softmmu/target/cris/gdbstub.o
CC unicore32-softmmu/target/unicore32/helper.o
CC aarch64-softmmu/hw/char/virtio-serial-bus.o
CC ppc64abi32-linux-user/target/ppc/kvm-stub.o
CC ppc-softmmu/hw/char/virtio-serial-bus.o
CC hppa-softmmu/hw/scsi/virtio-scsi.o
CC ppc64abi32-linux-user/target/ppc/dfp_helper.o
CC x86_64-linux-user/target/i386/misc_helper.o
CC xtensaeb-softmmu/target/xtensa/translate.o
CC sparc64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC sparc32plus-linux-user/target/sparc/ldst_helper.o
CC alpha-softmmu/hw/net/virtio-net.o
CC microblazeel-softmmu/target/microblaze/op_helper.o
CC armeb-linux-user/target/arm/neon_helper.o
CC ppc64abi32-linux-user/target/ppc/excp_helper.o
CC xtensaeb-softmmu/target/xtensa/op_helper.o
CC i386-softmmu/hw/intc/apic.o
CC ppcemb-softmmu/hw/block/virtio-blk.o
CC sparc-softmmu/hw/net/vhost_net.o
LINK or1k-softmmu/qemu-system-or1k
CC m68k-softmmu/hw/m68k/mcf5206.o
CC sparc-softmmu/hw/net/rocker/qmp-norocker.o
CC mips64-softmmu/hw/misc/mips_cpc.o
CC microblaze-softmmu/hw/core/null-machine.o
CC i386-linux-user/target/i386/misc_helper.o
CC sh4-softmmu/hw/vfio/spapr.o
CC s390x-linux-user/target/s390x/kvm-stub.o
CC mips64el-softmmu/hw/scsi/vhost-user-scsi.o
CC mips-softmmu/hw/misc/mips_cpc.o
CC ppc64-softmmu/hw/display/virtio-gpu-pci.o
CC ppc-linux-user/target/ppc/../../libdecnumber/dpd/decimal32.o
CC ppc-softmmu/hw/core/generic-loader.o
CC cris-softmmu/target/cris/mmu.o
CC mips64el-softmmu/hw/timer/mips_gictimer.o
CC sparc32plus-linux-user/target/sparc/int64_helper.o
CC s390x-softmmu/hw/vfio/common.o
CC x86_64-linux-user/target/i386/mpx_helper.o
CC microblaze-softmmu/hw/misc/mmio_interface.o
CC mips64el-softmmu/hw/timer/mc146818rtc.o
CC lm32-softmmu/target/lm32/op_helper.o
CC mips64-linux-user/trace/control-target.o
CC ppc64le-linux-user/target/ppc/dfp_helper.o
GEN trace/generated-helpers.c
CC sparc-softmmu/hw/vfio/common.o
CC moxie-softmmu/target/moxie/machine.o
CC aarch64-linux-user/target/arm/translate-a64.o
CC aarch64-linux-user/target/arm/helper-a64.o
CC sparc64-softmmu/hw/scsi/vhost-scsi-common.o
CC i386-linux-user/target/i386/mpx_helper.o
CC microblaze-softmmu/hw/net/xilinx_ethlite.o
CC sh4eb-softmmu/hw/misc/mmio_interface.o
CC sh4eb-softmmu/hw/net/virtio-net.o
CC mipsel-softmmu/hw/intc/mips_gic.o
CC cris-softmmu/target/cris/machine.o
CC mips64el-linux-user/trace/control-target.o
CC ppc64-softmmu/hw/display/virtio-vga.o
CC microblaze-softmmu/hw/net/vhost_net.o
CC mips64-softmmu/hw/misc/mips_itu.o
CC aarch64-softmmu/hw/core/generic-loader.o
CC mips-softmmu/hw/misc/mips_itu.o
CC aarch64-softmmu/hw/core/null-machine.o
CC xtensa-softmmu/target/xtensa/helper.o
CC armeb-linux-user/target/arm/iwmmxt_helper.o
CC hppa-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC mipsn32el-linux-user/target/mips/msa_helper.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/intc/apic_common.o
CC arm-softmmu/hw/display/bcm2835_fb.o
CC moxie-softmmu/target/moxie/cpu.o
CC hppa-softmmu/hw/scsi/vhost-scsi-common.o
CC aarch64_be-linux-user/target/arm/cpu64.o
CC m68k-softmmu/hw/m68k/mcf_intc.o
CC m68k-softmmu/target/m68k/m68k-semi.o
CC arm-softmmu/hw/display/vga.o
CC armeb-linux-user/target/arm/gdbstub.o
CC unicore32-softmmu/target/unicore32/cpu.o
CC alpha-softmmu/hw/net/vhost_net.o
CC mipsn32el-linux-user/target/mips/mips-semi.o
CC sh4eb-softmmu/hw/net/vhost_net.o
CC x86_64-linux-user/target/i386/seg_helper.o
CC mipsel-linux-user/target/mips/mips-semi.o
CC sparc64-softmmu/hw/scsi/vhost-scsi.o
CC x86_64-softmmu/hw/core/generic-loader.o
CC mips-softmmu/hw/misc/mmio_interface.o
CC x86_64-softmmu/hw/core/null-machine.o
CC lm32-softmmu/target/lm32/helper.o
CC microblaze-softmmu/hw/net/rocker/qmp-norocker.o
CC armeb-linux-user/target/arm/crypto_helper.o
CC sparc-softmmu/hw/vfio/platform.o
CC sparc32plus-linux-user/target/sparc/vis_helper.o
GEN trace/generated-helpers.c
CC mips64-softmmu/hw/misc/mmio_interface.o
CC ppc-softmmu/hw/core/null-machine.o
CC aarch64-linux-user/target/arm/gdbstub64.o
CC mips64el-softmmu/hw/vfio/common.o
CC sparc64-softmmu/hw/scsi/vhost-user-scsi.o
CC ppcemb-softmmu/hw/block/vhost-user-blk.o
CC ppcemb-softmmu/hw/block/dataplane/virtio-blk.o
CC unicore32-softmmu/target/unicore32/ucf64_helper.o
CC ppc64-softmmu/hw/i2c/ppc4xx_i2c.o
CC mipsel-softmmu/hw/misc/ivshmem.o
CC moxie-softmmu/target/moxie/mmu.o
CC aarch64_be-linux-user/target/arm/translate-a64.o
CC ppcemb-softmmu/hw/char/virtio-serial-bus.o
GEN trace/generated-helpers.c
CC aarch64-linux-user/target/arm/crypto_helper.o
CC hppa-softmmu/hw/scsi/vhost-scsi.o
CC mipsn32-linux-user/trace/control-target.o
CC ppc64-softmmu/hw/intc/openpic_kvm.o
GEN trace/generated-helpers.c
CC mipsel-linux-user/trace/control-target.o
CC aarch64-softmmu/hw/cpu/arm11mpcore.o
CC ppc-softmmu/hw/display/sm501.o
CC sh4-softmmu/hw/virtio/virtio.o
CC microblaze-softmmu/hw/vfio/common.o
CC sh4-softmmu/hw/virtio/virtio-balloon.o
CC alpha-softmmu/hw/scsi/virtio-scsi.o
CC ppcemb-softmmu/hw/core/generic-loader.o
CC unicore32-softmmu/target/unicore32/softmmu.o
GEN trace/generated-helpers.c
CC sh4eb-softmmu/hw/scsi/virtio-scsi.o
CC i386-softmmu/hw/intc/ioapic.o
CC cris-softmmu/trace/control-target.o
CC i386-softmmu/hw/isa/lpc_ich9.o
CC arm-softmmu/hw/display/virtio-gpu.o
CC i386-softmmu/hw/misc/ivshmem.o
CC lm32-softmmu/target/lm32/cpu.o
CC x86_64-softmmu/hw/display/vga.o
CC mips64-softmmu/hw/net/virtio-net.o
CC arm-softmmu/hw/display/virtio-gpu-3d.o
CC xtensa-softmmu/target/xtensa/cpu.o
CC m68k-softmmu/target/m68k/translate.o
CC mips-softmmu/hw/net/virtio-net.o
CC mips-softmmu/hw/net/vhost_net.o
CC ppc-softmmu/hw/display/vga.o
CC i386-linux-user/target/i386/seg_helper.o
CC xtensaeb-softmmu/target/xtensa/helper.o
CC xtensa-softmmu/target/xtensa/gdbstub.o
GEN trace/generated-helpers.c
CC mips64el-linux-user/trace/generated-helpers.o
CC moxie-softmmu/trace/control-target.o
CC sparc64-softmmu/hw/timer/mc146818rtc.o
CC aarch64_be-linux-user/target/arm/helper-a64.o
CC lm32-softmmu/target/lm32/gdbstub.o
CC mipsel-softmmu/hw/misc/mips_cmgcr.o
GEN trace/generated-helpers.c
CC arm-linux-user/target/arm/gdbstub.o
CC lm32-softmmu/target/lm32/lm32-semi.o
CC ppc64le-linux-user/target/ppc/excp_helper.o
CC aarch64-softmmu/hw/cpu/realview_mpcore.o
CC arm-softmmu/hw/display/virtio-gpu-pci.o
CC ppc-linux-user/target/ppc/../../libdecnumber/dpd/decimal64.o
CC mips64-linux-user/trace/generated-helpers.o
CC mips64-softmmu/hw/net/vhost_net.o
CC microblaze-softmmu/hw/vfio/platform.o
GEN trace/generated-helpers.c
CC hppa-softmmu/hw/scsi/vhost-user-scsi.o
CC ppc64-softmmu/hw/intc/xics.o
CC cris-softmmu/trace/generated-helpers.o
CC sh4-softmmu/hw/virtio/vhost.o
CC sh4-softmmu/hw/virtio/vhost-backend.o
CC s390x-softmmu/hw/vfio/pci.o
CC sparc32plus-linux-user/target/sparc/gdbstub.o
CC microblazeel-softmmu/target/microblaze/helper.o
CC sparc-softmmu/hw/vfio/spapr.o
CC unicore32-softmmu/trace/control-target.o
CC microblaze-softmmu/hw/vfio/spapr.o
CC lm32-softmmu/target/lm32/machine.o
GEN trace/generated-helpers.c
CC alpha-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC alpha-softmmu/hw/scsi/vhost-scsi-common.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/dpd/decimal32.o
CC sh4eb-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC aarch64_be-linux-user/target/arm/gdbstub64.o
CC s390x-linux-user/trace/control-target.o
CC microblaze-softmmu/hw/microblaze/petalogix_s3adsp1800_mmu.o
CC sh4eb-softmmu/hw/scsi/vhost-scsi-common.o
CC moxie-softmmu/trace/generated-helpers.o
CC ppc-softmmu/hw/display/virtio-gpu.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/hw/cpu/a9mpcore.o
CC i386-linux-user/target/i386/smm_helper.o
CC mips64el-softmmu/hw/vfio/pci.o
CC mipsel-softmmu/hw/misc/mips_cpc.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/dpd/decimal64.o
CC mipsel-softmmu/hw/misc/mips_itu.o
CC ppc-softmmu/hw/display/virtio-gpu-3d.o
CC ppc64abi32-linux-user/target/ppc/fpu_helper.o
CC xtensaeb-softmmu/target/xtensa/cpu.o
CC hppa-softmmu/hw/timer/mc146818rtc.o
CC xtensaeb-softmmu/target/xtensa/gdbstub.o
CC lm32-softmmu/trace/control-target.o
CC arm-softmmu/hw/dma/omap_dma.o
CC microblazeel-softmmu/target/microblaze/cpu.o
CC x86_64-linux-user/target/i386/smm_helper.o
CC sparc32plus-linux-user/trace/control-target.o
CC ppc-linux-user/target/ppc/../../libdecnumber/dpd/decimal128.o
CC arm-softmmu/hw/dma/soc_dma.o
CC sh4-softmmu/hw/virtio/vhost-user.o
CC ppcemb-softmmu/hw/core/null-machine.o
CC aarch64_be-linux-user/target/arm/crypto_helper.o
CC unicore32-softmmu/trace/generated-helpers.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/hw/display/virtio-gpu.o
CC arm-linux-user/target/arm/crypto_helper.o
CC ppc64abi32-linux-user/target/ppc/int_helper.o
CC i386-softmmu/hw/misc/pvpanic.o
CC aarch64_be-linux-user/trace/control-target.o
CC ppcemb-softmmu/hw/display/sm501.o
CC sparc-softmmu/hw/sparc/sun4m_iommu.o
CC aarch64-softmmu/hw/cpu/a15mpcore.o
CC sh4eb-softmmu/hw/scsi/vhost-scsi.o
CC ppcemb-softmmu/hw/display/vga.o
CC microblazeel-softmmu/target/microblaze/gdbstub.o
LINK cris-softmmu/qemu-system-cris
CC xtensa-softmmu/trace/control-target.o
CC hppa-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/display/omap_dss.o
CC alpha-softmmu/hw/scsi/vhost-scsi.o
CC x86_64-linux-user/target/i386/svm_helper.o
CC alpha-softmmu/hw/scsi/vhost-user-scsi.o
CC sparc-softmmu/hw/sparc/sun4m.o
CC sparc-softmmu/hw/sparc/leon3.o
CC mips64-softmmu/hw/scsi/virtio-scsi.o
CC i386-linux-user/target/i386/svm_helper.o
CC alpha-softmmu/hw/timer/mc146818rtc.o
GEN trace/generated-helpers.c
CC mipsel-linux-user/trace/generated-helpers.o
CC sparc64-softmmu/hw/vfio/common.o
LINK moxie-softmmu/qemu-system-moxie
CC i386-linux-user/target/i386/kvm-stub.o
CC mipsel-softmmu/hw/misc/mmio_interface.o
CC mipsel-softmmu/hw/net/virtio-net.o
CC microblaze-softmmu/hw/microblaze/petalogix_ml605_mmu.o
CC sparc-softmmu/target/sparc/machine.o
CC ppc64abi32-linux-user/target/ppc/timebase_helper.o
CC alpha-softmmu/hw/vfio/common.o
CC m68k-softmmu/target/m68k/op_helper.o
GEN trace/generated-helpers.c
CC hppa-softmmu/hw/vfio/pci.o
CC sparc32plus-linux-user/trace/generated-helpers.o
CC lm32-softmmu/trace/generated-helpers.o
CC m68k-softmmu/target/m68k/helper.o
CC aarch64-softmmu/hw/display/omap_lcdc.o
CC microblazeel-softmmu/target/microblaze/mmu.o
CC i386-softmmu/hw/misc/mmio_interface.o
GEN trace/generated-helpers.c
CC s390x-linux-user/gdbstub-xml.o
LINK unicore32-softmmu/qemu-system-unicore32
CC mipsn32el-linux-user/trace/control-target.o
CC microblazeel-softmmu/trace/control-target.o
CC ppc64-softmmu/hw/intc/xics_spapr.o
CC aarch64-linux-user/trace/control-target.o
CC hppa-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/display/pxa2xx_lcd.o
CC m68k-softmmu/target/m68k/cpu.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/hw/display/bcm2835_fb.o
CC mips-softmmu/hw/scsi/virtio-scsi.o
CC mips-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC sh4eb-softmmu/hw/scsi/vhost-user-scsi.o
CC ppc64-linux-user/target/ppc/../../libdecnumber/dpd/decimal128.o
CC xtensaeb-softmmu/trace/control-target.o
GEN trace/generated-helpers.c
CC sh4eb-softmmu/hw/timer/sh_timer.o
CC sparc-softmmu/target/sparc/monitor.o
CC mips64el-softmmu/hw/vfio/pci-quirks.o
CC s390x-linux-user/trace/generated-helpers.o
CC mipsel-softmmu/hw/net/vhost_net.o
CC ppc64abi32-linux-user/target/ppc/misc_helper.o
CC i386-softmmu/hw/net/virtio-net.o
GEN trace/generated-helpers.c
CC i386-softmmu/hw/net/vhost_net.o
CC ppc64-softmmu/hw/intc/xics_kvm.o
CC ppc64-softmmu/hw/intc/xics_pnv.o
CC arm-softmmu/hw/dma/pxa2xx_dma.o
LINK sparc32plus-linux-user/qemu-sparc32plus
CC microblaze-softmmu/hw/microblaze/boot.o
CC mips64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC ppc64-softmmu/hw/misc/ivshmem.o
CC sparc64-softmmu/hw/vfio/pci.o
CC hppa-softmmu/hw/vfio/platform.o
GEN trace/generated-helpers.c
CC ppc64-linux-user/trace/control-target.o
LINK lm32-softmmu/qemu-system-lm32
CC m68k-softmmu/target/m68k/fpu_helper.o
CC mips-softmmu/hw/scsi/vhost-scsi-common.o
CC i386-softmmu/hw/scsi/virtio-scsi.o
CC ppc-softmmu/hw/display/virtio-gpu-pci.o
CC mips64el-softmmu/hw/vfio/platform.o
CC ppc-softmmu/hw/i2c/ppc4xx_i2c.o
CC i386-linux-user/trace/control-target.o
CC xtensa-softmmu/trace/generated-helpers.o
GEN trace/generated-helpers.c
CC microblazeel-softmmu/trace/generated-helpers.o
CC ppc64abi32-linux-user/target/ppc/mem_helper.o
CC aarch64_be-linux-user/gdbstub-xml.o
CC i386-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC ppc64abi32-linux-user/target/ppc/user_only_helper.o
CC ppc64le-linux-user/target/ppc/fpu_helper.o
CC hppa-softmmu/hw/vfio/spapr.o
CC ppc-softmmu/hw/intc/openpic_kvm.o
CC sh4eb-softmmu/hw/timer/mc146818rtc.o
CC aarch64-linux-user/gdbstub-xml.o
CC mips-softmmu/hw/scsi/vhost-scsi.o
CC x86_64-linux-user/target/i386/kvm-stub.o
CC microblaze-softmmu/target/microblaze/translate.o
CC mipsel-softmmu/hw/scsi/virtio-scsi.o
LINK s390x-linux-user/qemu-s390x
CC sh4-softmmu/hw/virtio/vhost-vsock.o
CC hppa-softmmu/hw/virtio/virtio.o
CC arm-linux-user/trace/control-target.o
CC mipsn32el-linux-user/trace/generated-helpers.o
CC ppc64-linux-user/gdbstub-xml.o
CC aarch64-softmmu/hw/display/vga.o
CC sparc64-softmmu/hw/vfio/pci-quirks.o
CC mips-softmmu/hw/scsi/vhost-user-scsi.o
CC i386-softmmu/hw/scsi/vhost-scsi-common.o
CC mips64-softmmu/hw/scsi/vhost-scsi-common.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/hw/display/virtio-gpu-3d.o
CC x86_64-softmmu/hw/display/virtio-gpu-pci.o
CC aarch64-linux-user/trace/generated-helpers.o
CC sparc64-softmmu/hw/vfio/platform.o
CC alpha-softmmu/hw/vfio/pci.o
CC ppc64-softmmu/hw/misc/mmio_interface.o
CC arm-softmmu/hw/dma/bcm2835_dma.o
CC x86_64-linux-user/trace/control-target.o
CC ppc64-softmmu/hw/net/spapr_llan.o
CC mips64-softmmu/hw/scsi/vhost-scsi.o
CC ppc-linux-user/trace/control-target.o
CC arm-softmmu/hw/gpio/omap_gpio.o
CC x86_64-softmmu/hw/display/virtio-vga.o
CC sparc-softmmu/target/sparc/translate.o
CC ppc64abi32-linux-user/target/ppc/gdbstub.o
LINK xtensa-softmmu/qemu-system-xtensa
CC x86_64-softmmu/hw/intc/apic.o
LINK microblazeel-softmmu/qemu-system-microblazeel
CC hppa-softmmu/hw/virtio/virtio-balloon.o
CC mips64-softmmu/hw/scsi/vhost-user-scsi.o
CC ppc-softmmu/hw/misc/ivshmem.o
CC sh4-softmmu/hw/virtio/virtio-crypto.o
CC aarch64-softmmu/hw/display/virtio-gpu.o
CC s390x-softmmu/hw/vfio/pci-quirks.o
CC mipsel-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC x86_64-softmmu/hw/intc/apic_common.o
CC x86_64-linux-user/gdbstub-xml.o
CC mipsel-softmmu/hw/scsi/vhost-scsi-common.o
CC i386-linux-user/gdbstub-xml.o
CC alpha-softmmu/hw/vfio/pci-quirks.o
CC sparc-softmmu/target/sparc/helper.o
CC ppc64-softmmu/hw/net/xilinx_ethlite.o
CC m68k-softmmu/target/m68k/gdbstub.o
CC sparc-softmmu/target/sparc/cpu.o
CC mips-softmmu/hw/timer/mips_gictimer.o
CC s390x-softmmu/hw/vfio/ccw.o
CC mips-softmmu/hw/timer/mc146818rtc.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/decContext.o
CC xtensaeb-softmmu/trace/generated-helpers.o
CC hppa-softmmu/hw/virtio/vhost.o
CC microblaze-softmmu/target/microblaze/op_helper.o
CC ppc64-softmmu/hw/net/virtio-net.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/decNumber.o
CC mips64-softmmu/hw/timer/mips_gictimer.o
CC mips64-softmmu/hw/timer/mc146818rtc.o
CC sh4-softmmu/hw/virtio/virtio-crypto-pci.o
CC m68k-softmmu/target/m68k/monitor.o
CC ppc64le-linux-user/target/ppc/int_helper.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/dpd/decimal32.o
CC ppc64-softmmu/hw/net/vhost_net.o
CC mipsel-softmmu/hw/scsi/vhost-scsi.o
CC mips-softmmu/hw/vfio/common.o
CC s390x-softmmu/hw/vfio/platform.o
CC alpha-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/hw/display/virtio-gpu-3d.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/dpd/decimal64.o
CC ppc64-softmmu/hw/net/fsl_etsec/etsec.o
CC s390x-softmmu/hw/vfio/spapr.o
CC microblaze-softmmu/target/microblaze/helper.o
CC aarch64-softmmu/hw/display/virtio-gpu-pci.o
CC ppc-softmmu/hw/misc/mmio_interface.o
CC sparc64-softmmu/hw/vfio/spapr.o
CC mips64-softmmu/hw/vfio/common.o
CC sh4eb-softmmu/hw/vfio/common.o
CC sh4eb-softmmu/hw/vfio/pci.o
CC hppa-softmmu/hw/virtio/vhost-backend.o
CC mips64-softmmu/hw/vfio/pci.o
CC arm-softmmu/hw/gpio/imx_gpio.o
CC mips64el-softmmu/hw/vfio/spapr.o
CC ppc-linux-user/gdbstub-xml.o
CC mipsel-softmmu/hw/scsi/vhost-user-scsi.o
CC mipsel-softmmu/hw/timer/mips_gictimer.o
CC x86_64-softmmu/hw/intc/ioapic.o
CC ppc64abi32-linux-user/target/ppc/../../libdecnumber/dpd/decimal128.o
CC x86_64-softmmu/hw/isa/lpc_ich9.o
LINK xtensaeb-softmmu/qemu-system-xtensaeb
CC i386-softmmu/hw/scsi/vhost-scsi.o
CC x86_64-softmmu/hw/misc/ivshmem.o
CC sh4eb-softmmu/hw/vfio/pci-quirks.o
GEN trace/generated-helpers.c
CC mipsel-softmmu/hw/timer/mc146818rtc.o
CC arm-linux-user/gdbstub-xml.o
CC ppc64-softmmu/hw/net/fsl_etsec/registers.o
CC microblaze-softmmu/target/microblaze/cpu.o
CC arm-softmmu/hw/gpio/bcm2835_gpio.o
CC x86_64-linux-user/trace/generated-helpers.o
CC ppcemb-softmmu/hw/display/virtio-gpu.o
CC m68k-softmmu/trace/control-target.o
CC ppc-softmmu/hw/net/xilinx_ethlite.o
CC mips-softmmu/hw/vfio/pci.o
CC hppa-softmmu/hw/virtio/vhost-user.o
CC sparc64-softmmu/hw/virtio/virtio.o
GEN trace/generated-helpers.c
CC alpha-softmmu/hw/vfio/spapr.o
CC microblaze-softmmu/target/microblaze/gdbstub.o
CC i386-softmmu/hw/scsi/vhost-user-scsi.o
CC ppc64-softmmu/hw/net/fsl_etsec/rings.o
CC sh4-softmmu/hw/sh4/shix.o
CC ppc64-softmmu/hw/net/fsl_etsec/miim.o
CC aarch64-softmmu/hw/display/dpcd.o
CC sh4-softmmu/hw/sh4/r2d.o
CC s390x-softmmu/hw/virtio/virtio.o
CC i386-linux-user/trace/generated-helpers.o
CC microblaze-softmmu/target/microblaze/mmu.o
CC sh4eb-softmmu/hw/vfio/platform.o
CC ppc64le-linux-user/target/ppc/timebase_helper.o
CC mips64-softmmu/hw/vfio/pci-quirks.o
CC ppc-softmmu/hw/net/virtio-net.o
CC sparc-softmmu/target/sparc/fop_helper.o
CC i386-softmmu/hw/timer/mc146818rtc.o
CC mips-softmmu/hw/vfio/pci-quirks.o
CC arm-softmmu/hw/i2c/omap_i2c.o
CC ppc64le-linux-user/target/ppc/misc_helper.o
CC x86_64-softmmu/hw/misc/pvpanic.o
CC i386-softmmu/hw/vfio/common.o
CC ppc64abi32-linux-user/trace/control-target.o
CC ppc64-linux-user/trace/generated-helpers.o
CC ppc64le-linux-user/target/ppc/mem_helper.o
CC i386-softmmu/hw/vfio/pci.o
CC aarch64-softmmu/hw/display/xlnx_dp.o
CC mips64-softmmu/hw/vfio/platform.o
CC arm-softmmu/hw/input/pxa2xx_keypad.o
CC sparc64-softmmu/hw/virtio/virtio-balloon.o
CC sh4-softmmu/hw/sh4/sh7750.o
CC ppc64-softmmu/hw/nvram/spapr_nvram.o
CC ppc64abi32-linux-user/gdbstub-xml.o
CC arm-softmmu/hw/input/tsc210x.o
LINK tricore-softmmu/qemu-system-tricore
CC aarch64-softmmu/hw/dma/xlnx_dpdma.o
CC mips64el-softmmu/hw/virtio/virtio.o
CC ppc-softmmu/hw/net/vhost_net.o
CC aarch64_be-linux-user/trace/generated-helpers.o
CC sparc64-softmmu/hw/virtio/vhost.o
CC aarch64-softmmu/hw/dma/omap_dma.o
CC hppa-softmmu/hw/virtio/vhost-vsock.o
CC alpha-softmmu/hw/virtio/virtio.o
CC sparc64-softmmu/hw/virtio/vhost-backend.o
CC ppc-softmmu/hw/net/fsl_etsec/etsec.o
CC armeb-linux-user/trace/control-target.o
CC ppc-softmmu/hw/net/fsl_etsec/registers.o
CC mips64-softmmu/hw/vfio/spapr.o
GEN trace/generated-helpers.c
CC x86_64-softmmu/hw/misc/mmio_interface.o
CC s390x-softmmu/hw/virtio/virtio-balloon.o
CC arm-softmmu/hw/intc/armv7m_nvic.o
CC aarch64-softmmu/hw/dma/soc_dma.o
CC mips-softmmu/hw/vfio/platform.o
CC mips64el-softmmu/hw/virtio/virtio-balloon.o
CC mips64el-softmmu/hw/virtio/vhost.o
CC mips64-softmmu/hw/virtio/virtio.o
CC alpha-softmmu/hw/virtio/virtio-balloon.o
CC ppc64le-linux-user/target/ppc/user_only_helper.o
CC x86_64-softmmu/hw/net/virtio-net.o
CC aarch64-softmmu/hw/dma/pxa2xx_dma.o
CC sparc64-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/dma/bcm2835_dma.o
CC sparc-softmmu/target/sparc/cc_helper.o
CC mips64el-softmmu/hw/virtio/vhost-backend.o
CC ppc64le-linux-user/target/ppc/gdbstub.o
CC mipsel-softmmu/hw/vfio/common.o
CC sh4eb-softmmu/hw/vfio/spapr.o
CC mips-softmmu/hw/vfio/spapr.o
CC ppc-linux-user/trace/generated-helpers.o
CC mips-softmmu/hw/virtio/virtio.o
CC mips64el-softmmu/hw/virtio/vhost-user.o
CC arm-softmmu/hw/intc/exynos4210_gic.o
CC i386-softmmu/hw/vfio/pci-quirks.o
CC hppa-softmmu/hw/virtio/virtio-crypto.o
CC aarch64-softmmu/hw/gpio/omap_gpio.o
CC microblaze-softmmu/trace/control-target.o
CC armeb-linux-user/gdbstub-xml.o
CC sh4-softmmu/hw/sh4/sh7750_regnames.o
CC hppa-softmmu/hw/virtio/virtio-crypto-pci.o
CC mipsel-softmmu/hw/vfio/pci.o
CC sparc64-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/gpio/imx_gpio.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/decContext.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/decNumber.o
CC hppa-softmmu/hw/hppa/machine.o
CC mips64-softmmu/hw/virtio/virtio-balloon.o
CC ppc64-softmmu/hw/scsi/spapr_vscsi.o
CC aarch64-softmmu/hw/gpio/bcm2835_gpio.o
CC mipsel-softmmu/hw/vfio/pci-quirks.o
CC ppc-softmmu/hw/net/fsl_etsec/rings.o
CC sh4eb-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/i2c/omap_i2c.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/dpd/decimal32.o
CC i386-softmmu/hw/vfio/platform.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/dpd/decimal64.o
CC sh4eb-softmmu/hw/virtio/virtio-balloon.o
CC x86_64-softmmu/hw/net/vhost_net.o
CC mips64-softmmu/hw/virtio/vhost.o
CC sh4-softmmu/hw/sh4/sh_pci.o
CC ppc64abi32-linux-user/trace/generated-helpers.o
CC s390x-softmmu/hw/virtio/vhost.o
CC x86_64-softmmu/hw/scsi/virtio-scsi.o
CC aarch64-softmmu/hw/input/pxa2xx_keypad.o
CC arm-linux-user/trace/generated-helpers.o
CC alpha-softmmu/hw/virtio/vhost.o
CC x86_64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC ppc64-softmmu/hw/scsi/virtio-scsi.o
CC mips64-softmmu/hw/virtio/vhost-backend.o
CC armeb-linux-user/trace/generated-helpers.o
CC ppc-softmmu/hw/scsi/virtio-scsi.o
CC ppc-softmmu/hw/net/fsl_etsec/miim.o
CC sparc64-softmmu/hw/virtio/virtio-crypto.o
CC ppcemb-softmmu/hw/display/virtio-gpu-3d.o
CC mips64el-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/input/tsc210x.o
CC sparc-softmmu/target/sparc/win_helper.o
CC sparc-softmmu/target/sparc/mmu_helper.o
CC i386-softmmu/hw/vfio/spapr.o
CC hppa-softmmu/hw/hppa/pci.o
CC mipsel-softmmu/hw/vfio/platform.o
CC arm-softmmu/hw/intc/exynos4210_combiner.o
CC arm-softmmu/hw/intc/omap_intc.o
CC ppc64le-linux-user/target/ppc/../../libdecnumber/dpd/decimal128.o
CC s390x-softmmu/hw/virtio/vhost-backend.o
CC s390x-softmmu/hw/virtio/vhost-user.o
CC i386-softmmu/hw/virtio/virtio.o
CC mips64-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/intc/armv7m_nvic.o
CC sparc-softmmu/target/sparc/ldst_helper.o
CC m68k-softmmu/gdbstub-xml.o
CC i386-softmmu/hw/virtio/virtio-balloon.o
CC i386-softmmu/hw/virtio/vhost.o
CC mipsel-softmmu/hw/vfio/spapr.o
CC x86_64-softmmu/hw/scsi/vhost-scsi-common.o
CC ppc-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC microblaze-softmmu/trace/generated-helpers.o
CC ppc-softmmu/hw/scsi/vhost-scsi-common.o
CC hppa-softmmu/hw/hppa/dino.o
CC hppa-softmmu/target/hppa/translate.o
CC sh4-softmmu/target/sh4/translate.o
CC mips64-softmmu/hw/virtio/vhost-vsock.o
CC aarch64-softmmu/hw/intc/exynos4210_gic.o
CC i386-softmmu/hw/virtio/vhost-backend.o
CC arm-softmmu/hw/intc/bcm2835_ic.o
CC ppc-softmmu/hw/scsi/vhost-scsi.o
CC x86_64-softmmu/hw/scsi/vhost-scsi.o
CC ppc-softmmu/hw/scsi/vhost-user-scsi.o
CC s390x-softmmu/hw/virtio/vhost-vsock.o
CC sparc-softmmu/target/sparc/int32_helper.o
CC mips64-softmmu/hw/virtio/virtio-crypto.o
CC ppcemb-softmmu/hw/display/virtio-gpu-pci.o
CC sh4-softmmu/target/sh4/op_helper.o
CC arm-softmmu/hw/intc/bcm2836_control.o
CC sparc64-softmmu/hw/virtio/virtio-crypto-pci.o
GEN trace/generated-helpers.c
CC mips64el-softmmu/hw/virtio/virtio-crypto.o
CC sparc-softmmu/target/sparc/gdbstub.o
CC sh4eb-softmmu/hw/virtio/vhost.o
CC sh4eb-softmmu/hw/virtio/vhost-backend.o
CC ppc64-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC sparc64-softmmu/hw/sparc64/sparc64.o
CC mipsn32-linux-user/trace/generated-helpers.o
CC m68k-softmmu/trace/generated-helpers.o
CC sh4-softmmu/target/sh4/helper.o
CC sh4eb-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/intc/exynos4210_combiner.o
GEN trace/generated-helpers.c
CC sparc-softmmu/trace/control-target.o
CC aarch64-softmmu/hw/intc/omap_intc.o
CC sh4-softmmu/target/sh4/cpu.o
CC ppc-softmmu/hw/timer/mc146818rtc.o
/var/tmp/patchew-tester-tmp-c1l637im/src/target/sh4/op_helper.c: In function ‘superh_cpu_do_unaligned_access’:
/var/tmp/patchew-tester-tmp-c1l637im/src/target/sh4/op_helper.c:31:5: error: enumeration value ‘MMU_DEBUG_LOAD’ not handled in switch [-Werror=switch]
switch (access_type) {
^
CC ppc64le-linux-user/trace/control-target.o
CC alpha-softmmu/hw/virtio/vhost-backend.o
CC mips64el-softmmu/hw/virtio/virtio-crypto-pci.o
cc1: all warnings being treated as errors
CC arm-softmmu/hw/intc/allwinner-a10-pic.o
make[1]: *** [target/sh4/op_helper.o] Error 1
make[1]: *** Waiting for unfinished jobs....
CC arm-softmmu/hw/intc/aspeed_vic.o
CC arm-softmmu/hw/intc/arm_gicv3_cpuif.o
CC x86_64-softmmu/hw/scsi/vhost-user-scsi.o
CC x86_64-softmmu/hw/timer/mc146818rtc.o
CC arm-softmmu/hw/misc/ivshmem.o
CC sparc64-softmmu/hw/sparc64/sun4u_iommu.o
CC sh4eb-softmmu/hw/virtio/vhost-vsock.o
CC arm-softmmu/hw/misc/arm_sysctl.o
CC ppcemb-softmmu/hw/i2c/ppc4xx_i2c.o
CC ppc64-softmmu/hw/scsi/vhost-scsi-common.o
CC ppcemb-softmmu/hw/misc/ivshmem.o
CC ppc-softmmu/hw/vfio/common.o
CC ppc-softmmu/hw/vfio/pci.o
CC sh4eb-softmmu/hw/virtio/virtio-crypto.o
CC mips64-softmmu/hw/virtio/virtio-crypto-pci.o
CC i386-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/intc/bcm2835_ic.o
CC sparc64-softmmu/hw/sparc64/sun4u.o
CC mipsel-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/intc/bcm2836_control.o
CC aarch64-softmmu/hw/intc/allwinner-a10-pic.o
CC sh4eb-softmmu/hw/virtio/virtio-crypto-pci.o
CC x86_64-softmmu/hw/vfio/common.o
CC arm-softmmu/hw/misc/cbus.o
CC mips64-softmmu/hw/mips/mips_r4k.o
CC ppc-softmmu/hw/vfio/pci-quirks.o
LINK microblaze-softmmu/qemu-system-microblaze
CC x86_64-softmmu/hw/vfio/pci.o
CC ppc-softmmu/hw/vfio/platform.o
CC sh4eb-softmmu/hw/sh4/shix.o
CC mipsel-softmmu/hw/virtio/virtio-balloon.o
CC mips64-softmmu/hw/mips/mips_malta.o
CC ppc64-softmmu/hw/scsi/vhost-scsi.o
CC ppc64-softmmu/hw/scsi/vhost-user-scsi.o
CC ppcemb-softmmu/hw/misc/mmio_interface.o
CC mips64el-softmmu/hw/mips/mips_r4k.o
CC i386-softmmu/hw/virtio/vhost-vsock.o
CC mips64-softmmu/hw/mips/mips_mipssim.o
CC hppa-softmmu/target/hppa/helper.o
CC ppc-softmmu/hw/vfio/spapr.o
CC aarch64-softmmu/hw/intc/aspeed_vic.o
CC alpha-softmmu/hw/virtio/vhost-user.o
CC sparc-softmmu/trace/generated-helpers.o
CC aarch64-softmmu/hw/intc/arm_gicv3_cpuif.o
CC arm-softmmu/hw/misc/exynos4210_pmu.o
CC ppc64le-linux-user/gdbstub-xml.o
CC hppa-softmmu/target/hppa/cpu.o
CC sh4eb-softmmu/hw/sh4/r2d.o
CC hppa-softmmu/target/hppa/op_helper.o
CC mips64el-softmmu/hw/mips/mips_malta.o
CC s390x-softmmu/hw/virtio/virtio-crypto.o
CC x86_64-softmmu/hw/vfio/pci-quirks.o
CC ppcemb-softmmu/hw/net/xilinx_ethlite.o
CC mips64-softmmu/hw/mips/addr.o
CC arm-softmmu/hw/misc/exynos4210_clk.o
CC sh4eb-softmmu/hw/sh4/sh7750.o
CC mips64-softmmu/hw/mips/mips_int.o
CC sparc64-softmmu/hw/sparc64/niagara.o
CC mips64-softmmu/hw/mips/mips_jazz.o
CC sh4eb-softmmu/hw/sh4/sh7750_regnames.o
CC s390x-softmmu/hw/virtio/virtio-crypto-pci.o
CC ppc64-softmmu/hw/timer/mc146818rtc.o
CC mips-softmmu/hw/virtio/virtio-balloon.o
CC ppcemb-softmmu/hw/net/virtio-net.o
CC mips-softmmu/hw/virtio/vhost.o
CC hppa-softmmu/target/hppa/gdbstub.o
CC ppcemb-softmmu/hw/net/vhost_net.o
CC mips64-softmmu/hw/mips/gt64xxx_pci.o
CC aarch64-softmmu/hw/misc/ivshmem.o
CC sh4eb-softmmu/hw/sh4/sh_pci.o
CC mips64-softmmu/hw/mips/cps.o
CC arm-softmmu/hw/misc/exynos4210_rng.o
CC mips-softmmu/hw/virtio/vhost-backend.o
CC hppa-softmmu/target/hppa/mem_helper.o
CC arm-softmmu/hw/misc/imx_ccm.o
CC ppc-softmmu/hw/virtio/virtio.o
CC ppc64-softmmu/hw/vfio/common.o
CC mips-softmmu/hw/virtio/vhost-user.o
CC x86_64-softmmu/hw/vfio/platform.o
CC alpha-softmmu/hw/virtio/vhost-vsock.o
CC ppc64le-linux-user/trace/generated-helpers.o
CC mips-softmmu/hw/virtio/vhost-vsock.o
CC mips64el-softmmu/hw/mips/mips_mipssim.o
CC mips-softmmu/hw/virtio/virtio-crypto.o
CC s390x-softmmu/hw/s390x/s390-virtio-hcall.o
CC aarch64-softmmu/hw/misc/arm_sysctl.o
CC ppc-softmmu/hw/virtio/virtio-balloon.o
CC aarch64-softmmu/hw/misc/cbus.o
CC hppa-softmmu/target/hppa/int_helper.o
CC hppa-softmmu/target/hppa/machine.o
CC ppc-softmmu/hw/virtio/vhost.o
CC arm-softmmu/hw/misc/imx31_ccm.o
CC ppcemb-softmmu/hw/scsi/virtio-scsi.o
LINK sparc-softmmu/qemu-system-sparc
GEN trace/generated-helpers.c
CC ppcemb-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC ppcemb-softmmu/hw/scsi/vhost-scsi-common.o
CC alpha-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/misc/imx25_ccm.o
CC ppcemb-softmmu/hw/scsi/vhost-scsi.o
CC s390x-softmmu/hw/s390x/sclp.o
CC ppcemb-softmmu/hw/scsi/vhost-user-scsi.o
CC i386-softmmu/hw/virtio/virtio-crypto.o
CC aarch64-softmmu/hw/misc/exynos4210_pmu.o
CC ppcemb-softmmu/hw/vfio/common.o
CC mipsel-softmmu/hw/virtio/vhost.o
CC sparc64-softmmu/target/sparc/machine.o
CC arm-softmmu/hw/misc/imx6_ccm.o
CC i386-softmmu/hw/virtio/virtio-crypto-pci.o
CC ppc-softmmu/hw/virtio/vhost-backend.o
CC ppcemb-softmmu/hw/vfio/pci.o
CC mips64-softmmu/target/mips/translate.o
CC hppa-softmmu/trace/control-target.o
CC s390x-softmmu/hw/s390x/event-facility.o
CC sh4eb-softmmu/target/sh4/translate.o
CC ppcemb-softmmu/hw/vfio/pci-quirks.o
CC sh4eb-softmmu/target/sh4/op_helper.o
CC mips-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/misc/exynos4210_clk.o
CC ppc-softmmu/hw/virtio/vhost-user.o
CC mips64-softmmu/target/mips/dsp_helper.o
CC s390x-softmmu/hw/s390x/sclpquiesce.o
CC mips64-softmmu/target/mips/op_helper.o
CC ppcemb-softmmu/hw/vfio/platform.o
CC mips64-softmmu/target/mips/lmi_helper.o
CC mips64-softmmu/target/mips/helper.o
CC mips-softmmu/hw/mips/mips_r4k.o
CC i386-softmmu/hw/i386/multiboot.o
CC alpha-softmmu/hw/virtio/virtio-crypto-pci.o
CC sh4eb-softmmu/target/sh4/helper.o
CC sparc64-softmmu/target/sparc/monitor.o
CC sparc64-softmmu/target/sparc/translate.o
CC mipsel-softmmu/hw/virtio/vhost-backend.o
CC mips64-softmmu/target/mips/cpu.o
CC ppc-softmmu/hw/virtio/vhost-vsock.o
CC i386-softmmu/hw/i386/pc.o
/var/tmp/patchew-tester-tmp-c1l637im/src/target/sh4/op_helper.c: In function ‘superh_cpu_do_unaligned_access’:
/var/tmp/patchew-tester-tmp-c1l637im/src/target/sh4/op_helper.c:31:5: error: enumeration value ‘MMU_DEBUG_LOAD’ not handled in switch [-Werror=switch]
switch (access_type) {
^
CC ppcemb-softmmu/hw/vfio/spapr.o
cc1: all warnings being treated as errors
make[1]: *** [target/sh4/op_helper.o] Error 1
make[1]: *** Waiting for unfinished jobs....
CC i386-softmmu/hw/i386/pc_piix.o
CC ppcemb-softmmu/hw/virtio/virtio.o
CC aarch64-softmmu/hw/misc/exynos4210_rng.o
CC ppcemb-softmmu/hw/virtio/virtio-balloon.o
CC ppc-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/misc/imx6_src.o
CC s390x-softmmu/hw/s390x/sclpcpu.o
CC ppcemb-softmmu/hw/virtio/vhost.o
CC aarch64-softmmu/hw/misc/imx_ccm.o
CC sparc64-softmmu/target/sparc/helper.o
CC hppa-softmmu/trace/generated-helpers.o
CC i386-softmmu/hw/i386/pc_q35.o
CC aarch64-softmmu/hw/misc/imx31_ccm.o
CC ppcemb-softmmu/hw/virtio/vhost-backend.o
CC ppc64-softmmu/hw/vfio/pci.o
CC i386-softmmu/hw/i386/pc_sysfw.o
CC ppc64-softmmu/hw/vfio/pci-quirks.o
CC ppc64-softmmu/hw/vfio/platform.o
CC ppc-softmmu/hw/virtio/virtio-crypto-pci.o
CC mipsel-softmmu/hw/virtio/vhost-user.o
CC arm-softmmu/hw/misc/mst_fpga.o
CC mips64-softmmu/target/mips/gdbstub.o
CC mips-softmmu/hw/mips/mips_malta.o
CC sparc64-softmmu/target/sparc/cpu.o
CC i386-softmmu/hw/i386/x86-iommu.o
CC x86_64-softmmu/hw/vfio/spapr.o
CC mips64-softmmu/target/mips/msa_helper.o
CC mips64-softmmu/target/mips/mips-semi.o
CC ppcemb-softmmu/hw/virtio/vhost-user.o
CC alpha-softmmu/hw/alpha/dp264.o
CC ppc64-softmmu/hw/vfio/spapr.o
CC mips64el-softmmu/hw/mips/addr.o
CC mips64el-softmmu/hw/mips/mips_int.o
CC aarch64-softmmu/hw/misc/imx25_ccm.o
CC alpha-softmmu/hw/alpha/pci.o
CC sparc64-softmmu/target/sparc/fop_helper.o
CC x86_64-softmmu/hw/virtio/virtio.o
CC arm-softmmu/hw/misc/omap_clk.o
CC i386-softmmu/hw/i386/intel_iommu.o
CC aarch64-softmmu/hw/misc/imx6_ccm.o
CC mips-softmmu/hw/mips/mips_mipssim.o
CC s390x-softmmu/hw/s390x/ipl.o
CC aarch64-softmmu/hw/misc/imx6_src.o
CC aarch64-softmmu/hw/misc/mst_fpga.o
CC x86_64-softmmu/hw/virtio/virtio-balloon.o
CC mips-softmmu/hw/mips/addr.o
CC aarch64-softmmu/hw/misc/omap_clk.o
CC ppcemb-softmmu/hw/virtio/vhost-vsock.o
CC ppc-softmmu/hw/ppc/ppc.o
CC ppc-softmmu/hw/ppc/ppc_booke.o
CC mipsel-softmmu/hw/virtio/vhost-vsock.o
CC i386-softmmu/hw/i386/amd_iommu.o
CC aarch64-softmmu/hw/misc/omap_gpmc.o
CC sparc64-softmmu/target/sparc/cc_helper.o
CC mips64-softmmu/target/mips/machine.o
CC i386-softmmu/hw/i386/vmport.o
CC ppc64-softmmu/hw/virtio/virtio.o
CC mipsel-softmmu/hw/virtio/virtio-crypto.o
CC alpha-softmmu/hw/alpha/typhoon.o
CC aarch64-softmmu/hw/misc/omap_l4.o
CC mips64-softmmu/target/mips/cp0_timer.o
CC alpha-softmmu/target/alpha/machine.o
CC mips64el-softmmu/hw/mips/mips_jazz.o
CC ppcemb-softmmu/hw/virtio/virtio-crypto.o
CC aarch64-softmmu/hw/misc/omap_sdrc.o
CC i386-softmmu/hw/i386/vmmouse.o
CC s390x-softmmu/hw/s390x/css.o
CC ppcemb-softmmu/hw/virtio/virtio-crypto-pci.o
CC mips64el-softmmu/hw/mips/mips_fulong2e.o
CC mips-softmmu/hw/mips/mips_int.o
CC x86_64-softmmu/hw/virtio/vhost.o
CC alpha-softmmu/target/alpha/translate.o
CC aarch64-softmmu/hw/misc/omap_tap.o
GEN trace/generated-helpers.c
CC ppcemb-softmmu/hw/ppc/ppc.o
CC aarch64-softmmu/hw/misc/bcm2835_mbox.o
CC arm-softmmu/hw/misc/omap_gpmc.o
CC ppc-softmmu/hw/ppc/fdt.o
CC mips64-softmmu/trace/control-target.o
CC ppc-softmmu/hw/ppc/ppc405_boards.o
CC mips-softmmu/hw/mips/gt64xxx_pci.o
CC i386-softmmu/hw/i386/kvmvapic.o
CC aarch64-softmmu/hw/misc/bcm2835_property.o
CC mips64el-softmmu/hw/mips/gt64xxx_pci.o
CC mips-softmmu/hw/mips/cps.o
CC mipsel-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/misc/bcm2835_rng.o
CC mipsel-softmmu/hw/mips/mips_r4k.o
CC mipsel-softmmu/hw/mips/mips_malta.o
CC ppc-softmmu/hw/ppc/ppc4xx_devs.o
CC ppc-softmmu/hw/ppc/ppc405_uc.o
CC alpha-softmmu/target/alpha/helper.o
CC ppc-softmmu/hw/ppc/ppc440_bamboo.o
CC ppc64-softmmu/hw/virtio/virtio-balloon.o
CC mipsel-softmmu/hw/mips/mips_mipssim.o
CC aarch64-softmmu/hw/misc/zynq_slcr.o
CC i386-softmmu/hw/i386/acpi-build.o
CC mips-softmmu/target/mips/translate.o
CC aarch64-softmmu/hw/misc/zynq-xadc.o
CC i386-softmmu/target/i386/helper.o
CC sparc64-softmmu/target/sparc/win_helper.o
CC i386-softmmu/target/i386/cpu.o
CC ppc-softmmu/hw/ppc/ppc4xx_pci.o
CC mips-softmmu/target/mips/dsp_helper.o
CC s390x-softmmu/hw/s390x/s390-virtio-ccw.o
CC mipsel-softmmu/hw/mips/addr.o
CC i386-softmmu/target/i386/gdbstub.o
CC alpha-softmmu/target/alpha/cpu.o
CC ppcemb-softmmu/hw/ppc/ppc_booke.o
CC mips64-softmmu/trace/generated-helpers.o
CC ppcemb-softmmu/hw/ppc/fdt.o
CC i386-softmmu/target/i386/xsave_helper.o
CC arm-softmmu/hw/misc/omap_l4.o
CC mipsel-softmmu/hw/mips/mips_int.o
CC x86_64-softmmu/hw/virtio/vhost-backend.o
CC arm-softmmu/hw/misc/omap_sdrc.o
CC aarch64-softmmu/hw/misc/stm32f2xx_syscfg.o
CC sparc64-softmmu/target/sparc/mmu_helper.o
CC mips64el-softmmu/hw/mips/cps.o
CC ppcemb-softmmu/hw/ppc/ppc405_boards.o
CC mips64el-softmmu/hw/mips/boston.o
CC mips-softmmu/target/mips/op_helper.o
CC ppc-softmmu/hw/ppc/prep.o
CC aarch64-softmmu/hw/misc/mps2-scc.o
CC sparc64-softmmu/target/sparc/ldst_helper.o
CC ppc64-softmmu/hw/virtio/vhost.o
CC ppc64-softmmu/hw/virtio/vhost-backend.o
CC aarch64-softmmu/hw/misc/auxbus.o
CC ppcemb-softmmu/hw/ppc/ppc4xx_devs.o
CC aarch64-softmmu/hw/misc/aspeed_scu.o
CC mips-softmmu/target/mips/lmi_helper.o
CC mips-softmmu/target/mips/helper.o
CC mips-softmmu/target/mips/cpu.o
CC x86_64-softmmu/hw/virtio/vhost-user.o
CC ppc64-softmmu/hw/virtio/vhost-user.o
CC x86_64-softmmu/hw/virtio/vhost-vsock.o
CC ppc-softmmu/hw/ppc/prep_systemio.o
CC ppcemb-softmmu/hw/ppc/ppc405_uc.o
CC aarch64-softmmu/hw/misc/aspeed_sdmc.o
CC mipsel-softmmu/hw/mips/gt64xxx_pci.o
CC ppc-softmmu/hw/ppc/rs6000_mc.o
CC mips64el-softmmu/target/mips/translate.o
CC ppc-softmmu/hw/ppc/mac_oldworld.o
CC ppc-softmmu/hw/ppc/mac_newworld.o
CC i386-softmmu/target/i386/translate.o
CC alpha-softmmu/target/alpha/int_helper.o
CC ppc-softmmu/hw/ppc/e500.o
CC mips-softmmu/target/mips/gdbstub.o
CC i386-softmmu/target/i386/bpt_helper.o
LINK mipsel-linux-user/qemu-mipsel
CC s390x-softmmu/hw/s390x/3270-ccw.o
CC ppc-softmmu/hw/ppc/mpc8544ds.o
CC ppc64-softmmu/hw/virtio/vhost-vsock.o
CC mipsel-softmmu/hw/mips/cps.o
CC i386-softmmu/target/i386/cc_helper.o
CC ppc64-softmmu/hw/virtio/virtio-crypto.o
CC mips-softmmu/target/mips/msa_helper.o
CC x86_64-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/misc/omap_tap.o
CC s390x-softmmu/hw/s390x/virtio-ccw.o
CC mips64el-softmmu/target/mips/dsp_helper.o
CC ppc64-softmmu/hw/virtio/virtio-crypto-pci.o
CC mips64el-softmmu/target/mips/op_helper.o
CC alpha-softmmu/target/alpha/fpu_helper.o
CC ppcemb-softmmu/hw/ppc/ppc440_bamboo.o
CC mips64el-softmmu/target/mips/lmi_helper.o
CC ppc64-softmmu/hw/ppc/ppc.o
CC ppc-softmmu/hw/ppc/e500plat.o
CC i386-softmmu/target/i386/excp_helper.o
CC ppc-softmmu/hw/ppc/mpc8544_guts.o
CC alpha-softmmu/target/alpha/vax_helper.o
LINK m68k-softmmu/qemu-system-m68k
CC x86_64-softmmu/hw/virtio/virtio-crypto-pci.o
CC i386-softmmu/target/i386/fpu_helper.o
CC ppcemb-softmmu/hw/ppc/ppc4xx_pci.o
CC aarch64-softmmu/hw/misc/mmio_interface.o
CC mipsel-softmmu/target/mips/translate.o
CC ppc-softmmu/hw/ppc/ppce500_spin.o
CC sparc64-softmmu/target/sparc/int64_helper.o
CC alpha-softmmu/target/alpha/sys_helper.o
CC ppc-softmmu/hw/ppc/virtex_ml507.o
CC arm-softmmu/hw/misc/bcm2835_mbox.o
CC aarch64-softmmu/hw/misc/msf2-sysreg.o
CC i386-softmmu/target/i386/int_helper.o
CC ppc64-softmmu/hw/ppc/ppc_booke.o
CC ppcemb-softmmu/hw/ppc/virtex_ml507.o
CC s390x-softmmu/hw/s390x/css-bridge.o
CC i386-softmmu/target/i386/mem_helper.o
CC ppc-softmmu/target/ppc/cpu-models.o
CC mips64el-softmmu/target/mips/helper.o
CC ppc64-softmmu/hw/ppc/fdt.o
CC x86_64-softmmu/hw/i386/multiboot.o
CC x86_64-softmmu/hw/i386/pc.o
CC s390x-softmmu/hw/s390x/ccw-device.o
CC s390x-softmmu/hw/s390x/s390-pci-bus.o
CC s390x-softmmu/hw/s390x/s390-pci-inst.o
CC alpha-softmmu/target/alpha/mem_helper.o
CC ppc-softmmu/target/ppc/cpu.o
CC x86_64-softmmu/hw/i386/pc_piix.o
CC x86_64-softmmu/hw/i386/pc_q35.o
CC x86_64-softmmu/hw/i386/pc_sysfw.o
CC mips-softmmu/target/mips/mips-semi.o
CC aarch64-softmmu/hw/net/virtio-net.o
CC ppcemb-softmmu/target/ppc/cpu-models.o
CC aarch64-softmmu/hw/net/vhost_net.o
CC i386-softmmu/target/i386/misc_helper.o
CC ppcemb-softmmu/target/ppc/cpu.o
CC i386-softmmu/target/i386/mpx_helper.o
CC x86_64-softmmu/hw/i386/x86-iommu.o
CC mips-softmmu/target/mips/machine.o
LINK x86_64-linux-user/qemu-x86_64
CC aarch64-softmmu/hw/pcmcia/pxa2xx.o
CC mips-softmmu/target/mips/cp0_timer.o
LINK mips-linux-user/qemu-mips
CC alpha-softmmu/target/alpha/gdbstub.o
CC ppc-softmmu/target/ppc/translate.o
CC arm-softmmu/hw/misc/bcm2835_property.o
make: *** [subdir-sh4-softmmu] Error 2
make: *** Waiting for unfinished jobs....
CC mips64el-softmmu/target/mips/cpu.o
GEN trace/generated-helpers.c
CC arm-softmmu/hw/misc/bcm2835_rng.o
CC mips64el-softmmu/target/mips/gdbstub.o
GEN trace/generated-helpers.c
CC s390x-softmmu/hw/s390x/s390-skeys.o
CC i386-softmmu/target/i386/seg_helper.o
CC alpha-softmmu/trace/control-target.o
CC i386-softmmu/target/i386/smm_helper.o
CC ppc64-softmmu/hw/ppc/spapr.o
CC ppc-softmmu/target/ppc/machine.o
CC s390x-softmmu/hw/s390x/s390-stattrib.o
CC ppc64-softmmu/hw/ppc/spapr_caps.o
CC ppc64-softmmu/hw/ppc/spapr_vio.o
CC x86_64-softmmu/hw/i386/intel_iommu.o
CC sparc64-softmmu/target/sparc/vis_helper.o
CC s390x-softmmu/hw/s390x/s390-ccw.o
CC sparc64-softmmu/target/sparc/gdbstub.o
CC ppc-softmmu/target/ppc/mmu_helper.o
CC aarch64-softmmu/hw/scsi/virtio-scsi.o
CC ppcemb-softmmu/target/ppc/translate.o
CC x86_64-softmmu/hw/i386/amd_iommu.o
CC arm-softmmu/hw/misc/zynq_slcr.o
CC s390x-softmmu/target/s390x/cpu.o
CC ppc64-softmmu/hw/ppc/spapr_events.o
CC i386-softmmu/target/i386/svm_helper.o
CC mips-softmmu/trace/control-target.o
CC mipsel-softmmu/target/mips/dsp_helper.o
CC aarch64-softmmu/hw/scsi/virtio-scsi-dataplane.o
LINK hppa-softmmu/qemu-system-hppa
CC x86_64-softmmu/hw/i386/vmport.o
CC alpha-softmmu/trace/generated-helpers.o
CC mips64el-softmmu/target/mips/msa_helper.o
CC ppcemb-softmmu/target/ppc/machine.o
CC ppcemb-softmmu/target/ppc/mmu_helper.o
CC x86_64-softmmu/hw/i386/vmmouse.o
CC ppcemb-softmmu/target/ppc/mmu-hash32.o
CC arm-softmmu/hw/misc/zynq-xadc.o
CC aarch64-softmmu/hw/scsi/vhost-scsi-common.o
CC arm-softmmu/hw/misc/stm32f2xx_syscfg.o
CC i386-softmmu/target/i386/machine.o
CC arm-softmmu/hw/misc/mps2-scc.o
CC x86_64-softmmu/hw/i386/kvmvapic.o
GEN trace/generated-helpers.c
CC ppc-softmmu/target/ppc/mmu-hash32.o
CC ppc64-softmmu/hw/ppc/spapr_hcall.o
CC ppc64-softmmu/hw/ppc/spapr_iommu.o
CC sparc64-softmmu/trace/control-target.o
CC mips64el-softmmu/target/mips/mips-semi.o
CC i386-softmmu/target/i386/arch_memory_mapping.o
CC ppc-softmmu/target/ppc/monitor.o
CC x86_64-softmmu/hw/i386/acpi-build.o
CC x86_64-softmmu/target/i386/helper.o
CC mips64el-softmmu/target/mips/machine.o
CC aarch64-softmmu/hw/scsi/vhost-scsi.o
CC arm-softmmu/hw/misc/aspeed_scu.o
CC mips64el-softmmu/target/mips/cp0_timer.o
CC s390x-softmmu/target/s390x/cpu_models.o
CC s390x-softmmu/target/s390x/cpu_features.o
CC ppc64-softmmu/hw/ppc/spapr_rtas.o
CC mips-softmmu/trace/generated-helpers.o
CC i386-softmmu/target/i386/arch_dump.o
CC i386-softmmu/target/i386/monitor.o
CC i386-softmmu/target/i386/kvm-stub.o
CC x86_64-softmmu/target/i386/cpu.o
CC ppc64-softmmu/hw/ppc/spapr_pci.o
CC aarch64-softmmu/hw/scsi/vhost-user-scsi.o
CC arm-softmmu/hw/misc/aspeed_sdmc.o
GEN trace/generated-helpers.c
CC ppc64-softmmu/hw/ppc/spapr_rtc.o
CC mips64el-softmmu/trace/control-target.o
CC ppcemb-softmmu/target/ppc/monitor.o
CC s390x-softmmu/target/s390x/gdbstub.o
CC ppc64-softmmu/hw/ppc/spapr_drc.o
CC mipsel-softmmu/target/mips/op_helper.o
CC ppc-softmmu/target/ppc/arch_dump.o
CC x86_64-softmmu/target/i386/gdbstub.o
CC ppc-softmmu/target/ppc/kvm.o
CC s390x-softmmu/target/s390x/interrupt.o
CC s390x-softmmu/target/s390x/helper.o
CC arm-softmmu/hw/misc/mmio_interface.o
GEN trace/generated-helpers.c
CC ppc64-softmmu/hw/ppc/spapr_rng.o
CC x86_64-softmmu/target/i386/xsave_helper.o
CC mipsel-softmmu/target/mips/lmi_helper.o
CC s390x-softmmu/target/s390x/translate.o
CC ppcemb-softmmu/target/ppc/arch_dump.o
CC i386-softmmu/trace/control-target.o
CC aarch64-softmmu/hw/sd/omap_mmc.o
CC ppcemb-softmmu/target/ppc/kvm.o
CC x86_64-softmmu/target/i386/translate.o
CC ppcemb-softmmu/target/ppc/dfp_helper.o
CC s390x-softmmu/target/s390x/cc_helper.o
CC x86_64-softmmu/target/i386/bpt_helper.o
CC aarch64-softmmu/hw/sd/pxa2xx_mmci.o
CC mipsel-softmmu/target/mips/helper.o
CC mipsel-softmmu/target/mips/cpu.o
CC sparc64-softmmu/trace/generated-helpers.o
CC ppcemb-softmmu/target/ppc/excp_helper.o
CC ppcemb-softmmu/target/ppc/fpu_helper.o
CC ppcemb-softmmu/target/ppc/int_helper.o
CC x86_64-softmmu/target/i386/cc_helper.o
CC aarch64-softmmu/hw/sd/bcm2835_sdhost.o
CC x86_64-softmmu/target/i386/excp_helper.o
CC x86_64-softmmu/target/i386/fpu_helper.o
CC ppc-softmmu/target/ppc/dfp_helper.o
CC ppc-softmmu/target/ppc/excp_helper.o
make: *** [subdir-sh4eb-softmmu] Error 2
CC mips64el-softmmu/trace/generated-helpers.o
CC x86_64-softmmu/target/i386/int_helper.o
CC aarch64-softmmu/hw/ssi/omap_spi.o
CC ppc-softmmu/target/ppc/fpu_helper.o
CC aarch64-softmmu/hw/ssi/imx_spi.o
CC arm-softmmu/hw/misc/msf2-sysreg.o
CC s390x-softmmu/target/s390x/excp_helper.o
CC s390x-softmmu/target/s390x/fpu_helper.o
CC x86_64-softmmu/target/i386/mem_helper.o
LINK i386-linux-user/qemu-i386
CC i386-softmmu/gdbstub-xml.o
CC ppc-softmmu/target/ppc/int_helper.o
CC ppcemb-softmmu/target/ppc/timebase_helper.o
CC mipsel-softmmu/target/mips/gdbstub.o
CC x86_64-softmmu/target/i386/misc_helper.o
CC arm-softmmu/hw/net/virtio-net.o
CC ppc64-softmmu/hw/ppc/spapr_cpu_core.o
CC ppc64-softmmu/hw/ppc/spapr_ovec.o
CC ppc64-softmmu/hw/ppc/pnv.o
CC ppc-softmmu/target/ppc/timebase_helper.o
CC s390x-softmmu/target/s390x/int_helper.o
CC i386-softmmu/trace/generated-helpers.o
CC mipsel-softmmu/target/mips/msa_helper.o
CC s390x-softmmu/target/s390x/mem_helper.o
CC ppc64-softmmu/hw/ppc/pnv_xscom.o
CC ppc64-softmmu/hw/ppc/pnv_core.o
CC aarch64-softmmu/hw/timer/exynos4210_mct.o
CC ppc-softmmu/target/ppc/misc_helper.o
CC arm-softmmu/hw/net/vhost_net.o
CC x86_64-softmmu/target/i386/mpx_helper.o
CC ppc-softmmu/target/ppc/mem_helper.o
CC aarch64-softmmu/hw/timer/exynos4210_pwm.o
CC s390x-softmmu/target/s390x/misc_helper.o
CC ppc64-softmmu/hw/ppc/pnv_lpc.o
CC mipsel-softmmu/target/mips/mips-semi.o
CC ppc64-softmmu/hw/ppc/pnv_psi.o
CC aarch64-softmmu/hw/timer/exynos4210_rtc.o
CC ppcemb-softmmu/target/ppc/misc_helper.o
CC ppc64-softmmu/hw/ppc/pnv_occ.o
CC x86_64-softmmu/target/i386/seg_helper.o
CC x86_64-softmmu/target/i386/smm_helper.o
CC x86_64-softmmu/target/i386/svm_helper.o
CC mipsel-softmmu/target/mips/machine.o
CC ppcemb-softmmu/target/ppc/mem_helper.o
CC ppcemb-softmmu/target/ppc/gdbstub.o
CC ppc-softmmu/target/ppc/gdbstub.o
CC ppcemb-softmmu/target/ppc/../../libdecnumber/decContext.o
CC aarch64-softmmu/hw/timer/omap_gptimer.o
CC arm-softmmu/hw/pcmcia/pxa2xx.o
CC ppc64-softmmu/hw/ppc/pnv_bmc.o
CC s390x-softmmu/target/s390x/crypto_helper.o
CC ppc-softmmu/target/ppc/../../libdecnumber/decContext.o
CC x86_64-softmmu/target/i386/machine.o
CC ppc64-softmmu/hw/ppc/spapr_pci_vfio.o
CC ppc64-softmmu/hw/ppc/spapr_rtas_ddw.o
CC ppc64-softmmu/hw/ppc/ppc405_boards.o
CC ppcemb-softmmu/target/ppc/../../libdecnumber/decNumber.o
CC ppcemb-softmmu/target/ppc/../../libdecnumber/dpd/decimal32.o
CC ppc64-softmmu/hw/ppc/ppc4xx_devs.o
CC ppc64-softmmu/hw/ppc/ppc405_uc.o
CC s390x-softmmu/target/s390x/machine.o
CC ppc64-softmmu/hw/ppc/ppc440_bamboo.o
CC x86_64-softmmu/target/i386/arch_memory_mapping.o
CC mipsel-softmmu/target/mips/cp0_timer.o
CC x86_64-softmmu/target/i386/arch_dump.o
CC arm-softmmu/hw/scsi/virtio-scsi.o
CC ppc64-softmmu/hw/ppc/ppc4xx_pci.o
CC ppcemb-softmmu/target/ppc/../../libdecnumber/dpd/decimal64.o
CC aarch64-softmmu/hw/timer/omap_synctimer.o
CC ppcemb-softmmu/target/ppc/../../libdecnumber/dpd/decimal128.o
CC x86_64-softmmu/target/i386/monitor.o
CC x86_64-softmmu/target/i386/kvm-stub.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/hw/timer/pxa2xx_timer.o
GEN trace/generated-helpers.c
CC arm-softmmu/hw/scsi/virtio-scsi-dataplane.o
CC s390x-softmmu/target/s390x/ioinst.o
CC s390x-softmmu/target/s390x/arch_dump.o
CC mipsel-softmmu/trace/control-target.o
CC s390x-softmmu/target/s390x/mmu_helper.o
CC aarch64-softmmu/hw/timer/digic-timer.o
CC aarch64-softmmu/hw/timer/allwinner-a10-pit.o
CC ppc-softmmu/target/ppc/../../libdecnumber/decNumber.o
CC arm-softmmu/hw/scsi/vhost-scsi-common.o
CC x86_64-softmmu/trace/control-target.o
CC mipsel-softmmu/trace/generated-helpers.o
CC ppc64-softmmu/hw/ppc/prep.o
CC aarch64-softmmu/hw/usb/tusb6010.o
CC x86_64-softmmu/gdbstub-xml.o
CC ppc64-softmmu/hw/ppc/prep_systemio.o
CC aarch64-softmmu/hw/vfio/common.o
CC aarch64-softmmu/hw/vfio/pci.o
CC ppc-softmmu/target/ppc/../../libdecnumber/dpd/decimal32.o
CC ppc64-softmmu/hw/ppc/rs6000_mc.o
CC ppc64-softmmu/hw/ppc/mac_oldworld.o
CC aarch64-softmmu/hw/vfio/pci-quirks.o
CC ppc64-softmmu/hw/ppc/mac_newworld.o
CC ppc64-softmmu/hw/ppc/e500.o
CC ppc64-softmmu/hw/ppc/mpc8544ds.o
CC aarch64-softmmu/hw/vfio/platform.o
CC aarch64-softmmu/hw/vfio/calxeda-xgmac.o
CC x86_64-softmmu/trace/generated-helpers.o
CC aarch64-softmmu/hw/vfio/amd-xgbe.o
CC arm-softmmu/hw/scsi/vhost-scsi.o
CC ppc-softmmu/target/ppc/../../libdecnumber/dpd/decimal64.o
CC ppc-softmmu/target/ppc/../../libdecnumber/dpd/decimal128.o
CC ppc64-softmmu/hw/ppc/e500plat.o
CC s390x-softmmu/target/s390x/diag.o
CC arm-softmmu/hw/scsi/vhost-user-scsi.o
CC arm-softmmu/hw/sd/omap_mmc.o
GEN trace/generated-helpers.c
CC s390x-softmmu/target/s390x/sigp.o
CC s390x-softmmu/target/s390x/kvm-stub.o
GEN trace/generated-helpers.c
CC ppcemb-softmmu/trace/control-target.o
CC ppc64-softmmu/hw/ppc/mpc8544_guts.o
CC ppc64-softmmu/hw/ppc/ppce500_spin.o
GEN trace/generated-helpers.c
CC ppc-softmmu/trace/control-target.o
CC ppc64-softmmu/hw/ppc/virtex_ml507.o
CC ppc64-softmmu/target/ppc/cpu-models.o
CC aarch64-softmmu/hw/vfio/spapr.o
CC ppcemb-softmmu/gdbstub-xml.o
CC s390x-softmmu/trace/control-target.o
CC arm-softmmu/hw/sd/pxa2xx_mmci.o
CC aarch64-softmmu/hw/virtio/virtio.o
CC arm-softmmu/hw/sd/bcm2835_sdhost.o
CC ppc64-softmmu/target/ppc/cpu.o
LINK alpha-softmmu/qemu-system-alpha
CC aarch64-softmmu/hw/virtio/virtio-balloon.o
CC ppc-softmmu/gdbstub-xml.o
CC aarch64-softmmu/hw/virtio/vhost.o
CC aarch64-softmmu/hw/virtio/vhost-backend.o
CC ppc64-softmmu/target/ppc/translate.o
CC ppcemb-softmmu/trace/generated-helpers.o
CC ppc64-softmmu/target/ppc/machine.o
CC ppc-softmmu/trace/generated-helpers.o
CC ppc64-softmmu/target/ppc/mmu_helper.o
CC ppc64-softmmu/target/ppc/mmu-hash32.o
CC arm-softmmu/hw/ssi/omap_spi.o
CC aarch64-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/virtio/vhost-vsock.o
CC ppc64-softmmu/target/ppc/monitor.o
CC ppc64-softmmu/target/ppc/arch_dump.o
CC arm-softmmu/hw/ssi/imx_spi.o
CC arm-softmmu/hw/timer/exynos4210_mct.o
CC aarch64-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/timer/exynos4210_pwm.o
CC s390x-softmmu/gdbstub-xml.o
CC ppc64-softmmu/target/ppc/mmu-hash64.o
CC ppc64-softmmu/target/ppc/mmu-book3s-v3.o
CC aarch64-softmmu/hw/virtio/virtio-crypto-pci.o
CC aarch64-softmmu/hw/arm/boot.o
CC aarch64-softmmu/hw/arm/collie.o
CC arm-softmmu/hw/timer/exynos4210_rtc.o
CC ppc64-softmmu/target/ppc/compat.o
CC aarch64-softmmu/hw/arm/exynos4_boards.o
CC ppc64-softmmu/target/ppc/mmu-radix64.o
CC aarch64-softmmu/hw/arm/gumstix.o
CC s390x-softmmu/trace/generated-helpers.o
CC arm-softmmu/hw/timer/omap_gptimer.o
CC arm-softmmu/hw/timer/omap_synctimer.o
CC arm-softmmu/hw/timer/pxa2xx_timer.o
CC ppc64-softmmu/target/ppc/kvm.o
CC ppc64-softmmu/target/ppc/dfp_helper.o
CC ppc64-softmmu/target/ppc/excp_helper.o
CC arm-softmmu/hw/timer/digic-timer.o
CC aarch64-softmmu/hw/arm/highbank.o
CC aarch64-softmmu/hw/arm/digic_boards.o
CC aarch64-softmmu/hw/arm/integratorcp.o
CC arm-softmmu/hw/timer/allwinner-a10-pit.o
CC ppc64-softmmu/target/ppc/fpu_helper.o
CC aarch64-softmmu/hw/arm/mainstone.o
CC aarch64-softmmu/hw/arm/musicpal.o
CC ppc64-softmmu/target/ppc/int_helper.o
CC aarch64-softmmu/hw/arm/nseries.o
LINK aarch64-linux-user/qemu-aarch64
CC aarch64-softmmu/hw/arm/omap_sx1.o
CC arm-softmmu/hw/usb/tusb6010.o
CC ppc64-softmmu/target/ppc/timebase_helper.o
CC aarch64-softmmu/hw/arm/palm.o
CC aarch64-softmmu/hw/arm/realview.o
CC ppc64-softmmu/target/ppc/misc_helper.o
CC ppc64-softmmu/target/ppc/mem_helper.o
CC ppc64-softmmu/target/ppc/gdbstub.o
CC aarch64-softmmu/hw/arm/spitz.o
CC arm-softmmu/hw/vfio/common.o
CC ppc64-softmmu/target/ppc/../../libdecnumber/decContext.o
CC aarch64-softmmu/hw/arm/stellaris.o
CC aarch64-softmmu/hw/arm/tosa.o
CC aarch64-softmmu/hw/arm/versatilepb.o
CC ppc64-softmmu/target/ppc/../../libdecnumber/decNumber.o
CC ppc64-softmmu/target/ppc/../../libdecnumber/dpd/decimal32.o
CC arm-softmmu/hw/vfio/pci.o
CC aarch64-softmmu/hw/arm/vexpress.o
CC aarch64-softmmu/hw/arm/virt.o
CC arm-softmmu/hw/vfio/pci-quirks.o
CC aarch64-softmmu/hw/arm/xilinx_zynq.o
CC arm-softmmu/hw/vfio/platform.o
CC ppc64-softmmu/target/ppc/../../libdecnumber/dpd/decimal64.o
CC ppc64-softmmu/target/ppc/../../libdecnumber/dpd/decimal128.o
CC aarch64-softmmu/hw/arm/z2.o
CC arm-softmmu/hw/vfio/calxeda-xgmac.o
CC arm-softmmu/hw/vfio/amd-xgbe.o
CC aarch64-softmmu/hw/arm/virt-acpi-build.o
CC arm-softmmu/hw/vfio/spapr.o
LINK aarch64_be-linux-user/qemu-aarch64_be
GEN trace/generated-helpers.c
CC aarch64-softmmu/hw/arm/netduino2.o
CC arm-softmmu/hw/virtio/virtio.o
CC arm-softmmu/hw/virtio/virtio-balloon.o
CC ppc64-softmmu/trace/control-target.o
CC ppc64-softmmu/gdbstub-xml.o
CC aarch64-softmmu/hw/arm/sysbus-fdt.o
CC aarch64-softmmu/hw/arm/armv7m.o
CC ppc64-softmmu/trace/generated-helpers.o
CC aarch64-softmmu/hw/arm/exynos4210.o
CC aarch64-softmmu/hw/arm/pxa2xx.o
CC aarch64-softmmu/hw/arm/pxa2xx_gpio.o
CC arm-softmmu/hw/virtio/vhost.o
CC aarch64-softmmu/hw/arm/pxa2xx_pic.o
CC aarch64-softmmu/hw/arm/digic.o
CC aarch64-softmmu/hw/arm/omap1.o
CC arm-softmmu/hw/virtio/vhost-backend.o
CC aarch64-softmmu/hw/arm/omap2.o
CC aarch64-softmmu/hw/arm/strongarm.o
CC arm-softmmu/hw/virtio/vhost-user.o
CC aarch64-softmmu/hw/arm/allwinner-a10.o
CC arm-softmmu/hw/virtio/vhost-vsock.o
CC arm-softmmu/hw/virtio/virtio-crypto.o
CC arm-softmmu/hw/virtio/virtio-crypto-pci.o
CC arm-softmmu/hw/arm/boot.o
CC aarch64-softmmu/hw/arm/cubieboard.o
CC arm-softmmu/hw/arm/collie.o
CC aarch64-softmmu/hw/arm/bcm2835_peripherals.o
CC aarch64-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/hw/arm/raspi.o
CC aarch64-softmmu/hw/arm/stm32f205_soc.o
CC arm-softmmu/hw/arm/exynos4_boards.o
LINK mips64-linux-user/qemu-mips64
CC arm-softmmu/hw/arm/gumstix.o
CC arm-softmmu/hw/arm/highbank.o
CC arm-softmmu/hw/arm/digic_boards.o
LINK mipsn32-linux-user/qemu-mipsn32
CC arm-softmmu/hw/arm/integratorcp.o
CC aarch64-softmmu/hw/arm/xlnx-zynqmp.o
CC arm-softmmu/hw/arm/mainstone.o
CC arm-softmmu/hw/arm/musicpal.o
CC arm-softmmu/hw/arm/nseries.o
CC aarch64-softmmu/hw/arm/xlnx-zcu102.o
CC arm-softmmu/hw/arm/omap_sx1.o
CC aarch64-softmmu/hw/arm/imx25_pdk.o
CC aarch64-softmmu/hw/arm/fsl-imx25.o
CC aarch64-softmmu/hw/arm/fsl-imx31.o
CC arm-softmmu/hw/arm/palm.o
CC aarch64-softmmu/hw/arm/kzm.o
CC arm-softmmu/hw/arm/realview.o
CC aarch64-softmmu/hw/arm/fsl-imx6.o
CC arm-softmmu/hw/arm/spitz.o
CC aarch64-softmmu/hw/arm/sabrelite.o
CC arm-softmmu/hw/arm/stellaris.o
CC aarch64-softmmu/hw/arm/aspeed_soc.o
CC arm-softmmu/hw/arm/tosa.o
CC arm-softmmu/hw/arm/versatilepb.o
CC aarch64-softmmu/hw/arm/aspeed.o
CC aarch64-softmmu/hw/arm/mps2.o
CC arm-softmmu/hw/arm/vexpress.o
CC arm-softmmu/hw/arm/virt.o
CC arm-softmmu/hw/arm/xilinx_zynq.o
CC aarch64-softmmu/hw/arm/msf2-soc.o
CC arm-softmmu/hw/arm/z2.o
CC arm-softmmu/hw/arm/virt-acpi-build.o
CC arm-softmmu/hw/arm/netduino2.o
CC aarch64-softmmu/hw/arm/msf2-som.o
CC arm-softmmu/hw/arm/sysbus-fdt.o
CC arm-softmmu/hw/arm/armv7m.o
CC aarch64-softmmu/target/arm/arm-semi.o
CC aarch64-softmmu/target/arm/machine.o
CC aarch64-softmmu/target/arm/psci.o
CC aarch64-softmmu/target/arm/arch_dump.o
CC aarch64-softmmu/target/arm/monitor.o
CC arm-softmmu/hw/arm/exynos4210.o
CC aarch64-softmmu/target/arm/kvm-stub.o
CC aarch64-softmmu/target/arm/translate.o
CC aarch64-softmmu/target/arm/op_helper.o
CC arm-softmmu/hw/arm/pxa2xx.o
CC arm-softmmu/hw/arm/pxa2xx_gpio.o
CC aarch64-softmmu/target/arm/helper.o
CC aarch64-softmmu/target/arm/cpu.o
CC arm-softmmu/hw/arm/pxa2xx_pic.o
CC arm-softmmu/hw/arm/digic.o
CC aarch64-softmmu/target/arm/neon_helper.o
CC arm-softmmu/hw/arm/omap1.o
CC arm-softmmu/hw/arm/omap2.o
CC aarch64-softmmu/target/arm/iwmmxt_helper.o
CC arm-softmmu/hw/arm/strongarm.o
CC aarch64-softmmu/target/arm/gdbstub.o
CC aarch64-softmmu/target/arm/cpu64.o
CC arm-softmmu/hw/arm/allwinner-a10.o
CC aarch64-softmmu/target/arm/translate-a64.o
CC arm-softmmu/hw/arm/cubieboard.o
CC arm-softmmu/hw/arm/bcm2835_peripherals.o
CC aarch64-softmmu/target/arm/helper-a64.o
CC aarch64-softmmu/target/arm/gdbstub64.o
CC arm-softmmu/hw/arm/bcm2836.o
CC aarch64-softmmu/target/arm/arm-powerctl.o
CC aarch64-softmmu/target/arm/crypto_helper.o
CC arm-softmmu/hw/arm/raspi.o
CC arm-softmmu/hw/arm/stm32f205_soc.o
CC arm-softmmu/hw/arm/fsl-imx25.o
GEN trace/generated-helpers.c
CC aarch64-softmmu/trace/control-target.o
CC arm-softmmu/hw/arm/imx25_pdk.o
CC arm-softmmu/hw/arm/fsl-imx31.o
CC arm-softmmu/hw/arm/kzm.o
CC arm-softmmu/hw/arm/fsl-imx6.o
CC aarch64-softmmu/gdbstub-xml.o
CC arm-softmmu/hw/arm/sabrelite.o
CC arm-softmmu/hw/arm/aspeed_soc.o
CC arm-softmmu/hw/arm/aspeed.o
CC arm-softmmu/hw/arm/mps2.o
CC arm-softmmu/hw/arm/msf2-soc.o
CC arm-softmmu/hw/arm/msf2-som.o
CC arm-softmmu/target/arm/arm-semi.o
CC aarch64-softmmu/trace/generated-helpers.o
CC arm-softmmu/target/arm/machine.o
CC arm-softmmu/target/arm/psci.o
CC arm-softmmu/target/arm/arch_dump.o
CC arm-softmmu/target/arm/monitor.o
CC arm-softmmu/target/arm/kvm-stub.o
CC arm-softmmu/target/arm/translate.o
CC arm-softmmu/target/arm/op_helper.o
CC arm-softmmu/target/arm/helper.o
CC arm-softmmu/target/arm/cpu.o
LINK sparc64-softmmu/qemu-system-sparc64
CC arm-softmmu/target/arm/neon_helper.o
CC arm-softmmu/target/arm/iwmmxt_helper.o
CC arm-softmmu/target/arm/gdbstub.o
CC arm-softmmu/target/arm/crypto_helper.o
CC arm-softmmu/target/arm/arm-powerctl.o
GEN trace/generated-helpers.c
CC arm-softmmu/trace/control-target.o
CC arm-softmmu/gdbstub-xml.o
CC arm-softmmu/trace/generated-helpers.o
LINK arm-linux-user/qemu-arm
LINK mips64el-linux-user/qemu-mips64el
LINK armeb-linux-user/qemu-armeb
LINK mipsn32el-linux-user/qemu-mipsn32el
LINK s390x-softmmu/qemu-system-s390x
LINK i386-softmmu/qemu-system-i386
LINK x86_64-softmmu/qemu-system-x86_64
LINK ppc-linux-user/qemu-ppc
LINK ppc64-linux-user/qemu-ppc64
LINK mips-softmmu/qemu-system-mips
LINK aarch64-softmmu/qemu-system-aarch64
LINK mipsel-softmmu/qemu-system-mipsel
LINK ppc64abi32-linux-user/qemu-ppc64abi32
LINK mips64-softmmu/qemu-system-mips64
LINK arm-softmmu/qemu-system-arm
LINK ppc64le-linux-user/qemu-ppc64le
LINK ppcemb-softmmu/qemu-system-ppcemb
LINK mips64el-softmmu/qemu-system-mips64el
LINK ppc-softmmu/qemu-system-ppc
LINK ppc64-softmmu/qemu-system-ppc64
=== OUTPUT END ===
Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 48+ messages in thread
* Re: [Qemu-devel] [PULL 00/43] Add hppa-softmmu
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
` (45 preceding siblings ...)
2018-01-22 4:57 ` no-reply
@ 2018-01-23 10:14 ` Peter Maydell
46 siblings, 0 replies; 48+ messages in thread
From: Peter Maydell @ 2018-01-23 10:14 UTC (permalink / raw)
To: Richard Henderson; +Cc: QEMU Developers
On 22 January 2018 at 03:41, Richard Henderson
<richard.henderson@linaro.org> wrote:
> This has some improvements to the patch set posted on Dec 28.
>
> * Change cpu init as requested by Igor Mammedov.
> * Add SMP support
> * Add firmware image
> * Implement qemu-specific pause and system reset insns.
>
>
> r~
>
>
> The following changes since commit b384cd95eb9c6f73ad84ed1bb0717a26e29cc78f:
>
> Merge remote-tracking branch 'remotes/ehabkost/tags/machine-next-pull-request' into staging (2018-01-19 16:35:25 +0000)
>
> are available in the Git repository at:
>
> git://github.com/rth7680/qemu.git tags/pull-hppa-20180121
>
> for you to fetch changes up to 350e2a714ac8db559b255f9e8fe91c574f45df53:
>
> hw/hppa: Add MAINTAINERS entry (2018-01-21 14:05:03 -0800)
>
> ----------------------------------------------------------------
> Add hppa-softmmu
Hi. Patchew is complaining that this doesn't build on some hosts:
/var/tmp/patchew-tester-tmp-z8zo58jf/src/target/sh4/op_helper.c: In
function ‘superh_cpu_do_unaligned_access’:
/var/tmp/patchew-tester-tmp-z8zo58jf/src/target/sh4/op_helper.c:31:5:
error: enumeration value ‘MMU_DEBUG_LOAD’ not handled in switch
[-Werror=switch]
switch (access_type) {
^~~~~~
so I'm going to drop it from my to-process queue.
Also, the patchew coding style check seems to be showing a lot
of whitespace and similar nits which I don't think there's any
reason to have in new code. Could you also fix those, please?
thanks
-- PMM
^ permalink raw reply [flat|nested] 48+ messages in thread
end of thread, other threads:[~2018-01-23 10:15 UTC | newest]
Thread overview: 48+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-22 3:41 [Qemu-devel] [PULL 00/43] Add hppa-softmmu Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 01/43] target/hppa: Skeleton support for hppa-softmmu Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 02/43] target/hppa: Define the rest of the PSW Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 03/43] target/hppa: Disable gateway page emulation for system mode Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 04/43] target/hppa: Define hardware exception types Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 05/43] target/hppa: Split address size from register size Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 06/43] target/hppa: Implement mmu_idx from IA privilege level Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 07/43] target/hppa: Implement the system mask instructions Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 08/43] target/hppa: Add space registers Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 09/43] target/hppa: Add control registers Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 10/43] target/hppa: Adjust insn mask for mfctl, w Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 11/43] target/hppa: Implement rfi Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 12/43] target/hppa: Fill in hppa_cpu_do_interrupt/hppa_cpu_exec_interrupt Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 13/43] target/hppa: Implement unaligned access trap Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 14/43] target/hppa: Use space registers in data operations Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 15/43] target/hppa: Avoid privilege level decrease during branches Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 16/43] target/hppa: Implement IASQ Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 17/43] target/hppa: Implement tlb_fill Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 18/43] target/hppa: Implement external interrupts Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 19/43] target/hppa: Implement the interval timer Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 20/43] target/hppa: Log unimplemented instructions Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 21/43] target/hppa: Implement I*TLBA and I*TLBP insns Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 22/43] target/hppa: Implement P*TLB and P*TLBE insns Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 23/43] target/hppa: Implement LDWA Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 24/43] target/hppa: Implement LPA Richard Henderson
2018-01-22 3:41 ` [Qemu-devel] [PULL 25/43] target/hppa: Implement LCI Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 26/43] target/hppa: Implement SYNCDMA insn Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 27/43] target/hppa: Implement halt and reset instructions Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 28/43] target/hppa: Optimize for flat addressing space Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 29/43] target/hppa: Add system registers to gdbstub Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 30/43] target/hppa: Add migration for the cpu Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 31/43] target/hppa: Implement B,GATE insn Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 32/43] target/hppa: Only use EXCP_DTLB_MISS Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 33/43] qom: Add MMU_DEBUG_LOAD Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 34/43] target/hppa: Use MMU_DEBUG_LOAD when reloading for CR[IIR] Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 35/43] target/hppa: Increase number of temp regs Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 36/43] target/hppa: Fix comment Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 37/43] target/hppa: Implement LDSID for system mode Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 38/43] target/hppa: Implement a pause instruction Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 39/43] target/hppa: Implement STWA Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 40/43] target/hppa: Enable MTTCG Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 41/43] hw/hppa: Implement DINO system board Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 42/43] pc-bios: Add hppa-firmware.img and git submodule Richard Henderson
2018-01-22 3:42 ` [Qemu-devel] [PULL 43/43] hw/hppa: Add MAINTAINERS entry Richard Henderson
2018-01-22 4:27 ` [Qemu-devel] [PULL 00/43] Add hppa-softmmu no-reply
2018-01-22 4:38 ` no-reply
2018-01-22 4:57 ` no-reply
2018-01-23 10:14 ` Peter Maydell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).