diff --git a/arch_init.c b/arch_init.c
index 1973037..212c90a 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -40,9 +40,9 @@
 #include "hw/audiodev.h"
 #include "kvm.h"
 #include "migration.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include "hw/smbios.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "hw/pcspk.h"
 #include "qemu/page_cache.h"
 #include "qemu-config.h"
diff --git a/balloon.c b/balloon.c
index 211b93d..a8d2c46 100644
--- a/balloon.c
+++ b/balloon.c
@@ -25,7 +25,7 @@
  */
 
 #include "monitor.h"
-#include "cpu-common.h"
+#include "exec/cpu-common.h"
 #include "kvm.h"
 #include "balloon.h"
 #include "trace.h"
diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
index 8a5ee3d..ef53e68 100644
--- a/bsd-user/qemu.h
+++ b/bsd-user/qemu.h
@@ -23,7 +23,7 @@ extern enum BSDType bsd_type;
 #include "syscall_defs.h"
 #include "syscall.h"
 #include "target_signal.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 
 #if defined(CONFIG_USE_NPTL)
 #define THREAD __thread
diff --git a/cpus.c b/cpus.c
index 191cbf5..866cb28 100644
--- a/cpus.c
+++ b/cpus.c
@@ -27,7 +27,7 @@
 
 #include "monitor.h"
 #include "sysemu.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include "dma.h"
 #include "kvm.h"
 #include "qmp-commands.h"
diff --git a/cputlb.c b/cputlb.c
index 9027557..e9d1c89 100644
--- a/cputlb.c
+++ b/cputlb.c
@@ -19,9 +19,9 @@
 
 #include "config.h"
 #include "cpu.h"
-#include "exec-all.h"
+#include "exec/exec-all.h"
 #include "memory.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #include "cputlb.h"
 
@@ -347,15 +347,15 @@ tb_page_addr_t get_page_addr_code(CPUArchState *env1, target_ulong addr)
 #define SOFTMMU_CODE_ACCESS
 
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #undef env
diff --git a/dump.c b/dump.c
index 8826e8e..8f5a36f 100644
--- a/dump.c
+++ b/dump.c
@@ -14,8 +14,8 @@
 #include "qemu-common.h"
 #include "elf.h"
 #include "cpu.h"
-#include "cpu-all.h"
-#include "targphys.h"
+#include "exec/cpu-all.h"
+#include "exec/targphys.h"
 #include "monitor.h"
 #include "kvm.h"
 #include "dump.h"
@@ -23,7 +23,7 @@
 #include "memory_mapping.h"
 #include "qapi/error.h"
 #include "qmp-commands.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 
 static uint16_t cpu_convert_to_target16(uint16_t val, int endian)
 {
diff --git a/exec.c b/exec.c
index 1821aef..8c17728 100644
--- a/exec.c
+++ b/exec.c
@@ -35,7 +35,7 @@
 #include "qemu-timer.h"
 #include "qemu-config.h"
 #include "memory.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #if defined(CONFIG_USER_ONLY)
 #include <qemu.h>
 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
diff --git a/gdbstub.c b/gdbstub.c
index d02ec75..70ad79a 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -32,7 +32,7 @@
 #include "monitor.h"
 #include "qemu-char.h"
 #include "sysemu.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #endif
 
 #define MAX_PACKET_LENGTH 4096
diff --git a/hw/alpha_typhoon.c b/hw/alpha_typhoon.c
index b7cf4e2..87c4588 100644
--- a/hw/alpha_typhoon.c
+++ b/hw/alpha_typhoon.c
@@ -7,12 +7,12 @@
  */
 
 #include "cpu.h"
-#include "exec-all.h"
+#include "exec/exec-all.h"
 #include "hw.h"
 #include "devices.h"
 #include "sysemu.h"
 #include "alpha_sys.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 
 #define TYPE_TYPHOON_PCI_HOST_BRIDGE "typhoon-pcihost"
diff --git a/hw/an5206.c b/hw/an5206.c
index 042c5fc..5eb31f5 100644
--- a/hw/an5206.c
+++ b/hw/an5206.c
@@ -11,7 +11,7 @@
 #include "boards.h"
 #include "loader.h"
 #include "elf.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define KERNEL_LOAD_ADDR 0x10000
 #define AN5206_MBAR_ADDR 0x10000000
diff --git a/hw/apb_pci.c b/hw/apb_pci.c
index c28411a..e4d2c3e 100644
--- a/hw/apb_pci.c
+++ b/hw/apb_pci.c
@@ -33,7 +33,7 @@
 #include "pci_internals.h"
 #include "apb_pci.h"
 #include "sysemu.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 /* debug APB */
 //#define DEBUG_APB
diff --git a/hw/armv7m_nvic.c b/hw/armv7m_nvic.c
index c449e08..154cc5e 100644
--- a/hw/armv7m_nvic.c
+++ b/hw/armv7m_nvic.c
@@ -13,7 +13,7 @@
 #include "sysbus.h"
 #include "qemu-timer.h"
 #include "arm-misc.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "arm_gic_internal.h"
 
 typedef struct {
diff --git a/hw/axis_dev88.c b/hw/axis_dev88.c
index b5d8882..c666d0b 100644
--- a/hw/axis_dev88.c
+++ b/hw/axis_dev88.c
@@ -31,7 +31,7 @@
 #include "elf.h"
 #include "cris-boot.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define D(x)
 #define DNAND(x)
diff --git a/hw/bonito.c b/hw/bonito.c
index 6084ac4..76a0a32 100644
--- a/hw/bonito.c
+++ b/hw/bonito.c
@@ -45,7 +45,7 @@
 #include "mips.h"
 #include "pci_host.h"
 #include "sysemu.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 //#define DEBUG_BONITO
 
diff --git a/hw/collie.c b/hw/collie.c
index 695982a..70f8cbf 100644
--- a/hw/collie.c
+++ b/hw/collie.c
@@ -16,7 +16,7 @@
 #include "arm-misc.h"
 #include "flash.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 static struct arm_boot_info collie_binfo = {
     .loader_start = SA_SDCS0,
diff --git a/hw/dummy_m68k.c b/hw/dummy_m68k.c
index f436a0c..2137efd 100644
--- a/hw/dummy_m68k.c
+++ b/hw/dummy_m68k.c
@@ -10,7 +10,7 @@
 #include "boards.h"
 #include "loader.h"
 #include "elf.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define KERNEL_LOAD_ADDR 0x10000
 
diff --git a/hw/etraxfs_dma.c b/hw/etraxfs_dma.c
index 332525c..ad30390 100644
--- a/hw/etraxfs_dma.c
+++ b/hw/etraxfs_dma.c
@@ -24,7 +24,7 @@
 #include <stdio.h>
 #include <sys/time.h>
 #include "hw.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "qemu-common.h"
 #include "sysemu.h"
 
diff --git a/hw/exynos4210_fimd.c b/hw/exynos4210_fimd.c
index 35ed48c..1ec80ae 100644
--- a/hw/exynos4210_fimd.c
+++ b/hw/exynos4210_fimd.c
@@ -23,7 +23,7 @@
  */
 
 #include "qemu-common.h"
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 #include "sysbus.h"
 #include "ui/console.h"
 #include "pixel_ops.h"
diff --git a/hw/exynos4_boards.c b/hw/exynos4_boards.c
index 7eb004f..7a4f950 100644
--- a/hw/exynos4_boards.c
+++ b/hw/exynos4_boards.c
@@ -25,7 +25,7 @@
 #include "sysbus.h"
 #include "net/net.h"
 #include "arm-misc.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "exynos4210.h"
 #include "boards.h"
 
diff --git a/hw/gt64xxx.c b/hw/gt64xxx.c
index e95e664..f8da353 100644
--- a/hw/gt64xxx.c
+++ b/hw/gt64xxx.c
@@ -27,7 +27,7 @@
 #include "pci.h"
 #include "pci_host.h"
 #include "pc.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 //#define DEBUG
 
diff --git a/hw/gumstix.c b/hw/gumstix.c
index 545b92f..b250bb5 100644
--- a/hw/gumstix.c
+++ b/hw/gumstix.c
@@ -41,7 +41,7 @@
 #include "devices.h"
 #include "boards.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 static const int sector_len = 128 * 1024;
 
diff --git a/hw/highbank.c b/hw/highbank.c
index 7b97de0..6210ef6 100644
--- a/hw/highbank.c
+++ b/hw/highbank.c
@@ -26,7 +26,7 @@
 #include "boards.h"
 #include "sysbus.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define SMP_BOOT_ADDR 0x100
 #define SMP_BOOT_REG  0x40
diff --git a/hw/hw.h b/hw/hw.h
index b337ee3..cf93e93 100644
--- a/hw/hw.h
+++ b/hw/hw.h
@@ -5,7 +5,7 @@
 #include "qemu-common.h"
 
 #if !defined(CONFIG_USER_ONLY) && !defined(NEED_CPU_H)
-#include "cpu-common.h"
+#include "exec/cpu-common.h"
 #endif
 
 #include "ioport.h"
diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c
index 68671bc..6c068ad 100644
--- a/hw/ide/ahci.c
+++ b/hw/ide/ahci.c
@@ -29,7 +29,7 @@
 
 #include "monitor.h"
 #include "dma.h"
-#include "cpu-common.h"
+#include "exec/cpu-common.h"
 #include "internal.h"
 #include <hw/ide/pci.h>
 #include <hw/ide/ahci.h>
diff --git a/hw/integratorcp.c b/hw/integratorcp.c
index df68105..866075e 100644
--- a/hw/integratorcp.c
+++ b/hw/integratorcp.c
@@ -12,7 +12,7 @@
 #include "boards.h"
 #include "arm-misc.h"
 #include "net/net.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "sysemu.h"
 
 typedef struct {
diff --git a/hw/isa-bus.c b/hw/isa-bus.c
index 214f194..a54456d 100644
--- a/hw/isa-bus.c
+++ b/hw/isa-bus.c
@@ -21,7 +21,7 @@
 #include "sysbus.h"
 #include "sysemu.h"
 #include "isa.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 static ISABus *isabus;
 target_phys_addr_t isa_mem_base = 0;
diff --git a/hw/isa_mmio.c b/hw/isa_mmio.c
index fd755ab..aa626fd 100644
--- a/hw/isa_mmio.c
+++ b/hw/isa_mmio.c
@@ -24,7 +24,7 @@
 
 #include "hw.h"
 #include "isa.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 static void isa_mmio_writeb (void *opaque, target_phys_addr_t addr,
                                   uint32_t val)
diff --git a/hw/kzm.c b/hw/kzm.c
index a27ecbb..d3c1fb3 100644
--- a/hw/kzm.c
+++ b/hw/kzm.c
@@ -14,7 +14,7 @@
  */
 
 #include "sysbus.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "hw.h"
 #include "arm-misc.h"
 #include "devices.h"
diff --git a/hw/leon3.c b/hw/leon3.c
index 7742738..449b9b5 100644
--- a/hw/leon3.c
+++ b/hw/leon3.c
@@ -30,7 +30,7 @@
 #include "loader.h"
 #include "elf.h"
 #include "trace.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #include "grlib.h"
 
diff --git a/hw/lm32_boards.c b/hw/lm32_boards.c
index 8417ed3..fe92592 100644
--- a/hw/lm32_boards.c
+++ b/hw/lm32_boards.c
@@ -27,7 +27,7 @@
 #include "elf.h"
 #include "lm32_hwsetup.h"
 #include "lm32.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 typedef struct {
     LM32CPU *cpu;
diff --git a/hw/loader.c b/hw/loader.c
index 172fdd1..2800f3e 100644
--- a/hw/loader.c
+++ b/hw/loader.c
@@ -50,7 +50,7 @@
 #include "loader.h"
 #include "fw_cfg.h"
 #include "memory.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #include <zlib.h>
 
diff --git a/hw/mainstone.c b/hw/mainstone.c
index 1315a29..178bf7a 100644
--- a/hw/mainstone.c
+++ b/hw/mainstone.c
@@ -20,7 +20,7 @@
 #include "flash.h"
 #include "blockdev.h"
 #include "sysbus.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 /* Device addresses */
 #define MST_FPGA_PHYS	0x08000000
diff --git a/hw/mcf5206.c b/hw/mcf5206.c
index 27753e2..42575e4 100644
--- a/hw/mcf5206.c
+++ b/hw/mcf5206.c
@@ -10,7 +10,7 @@
 #include "qemu-timer.h"
 #include "ptimer.h"
 #include "sysemu.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 /* General purpose timer module.  */
 typedef struct {
diff --git a/hw/mcf5208.c b/hw/mcf5208.c
index 60b311a..4e73c50 100644
--- a/hw/mcf5208.c
+++ b/hw/mcf5208.c
@@ -14,7 +14,7 @@
 #include "boards.h"
 #include "loader.h"
 #include "elf.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define SYS_FREQ 66000000
 
diff --git a/hw/mcf_fec.c b/hw/mcf_fec.c
index 0e23f0a..a21aa81 100644
--- a/hw/mcf_fec.c
+++ b/hw/mcf_fec.c
@@ -10,7 +10,7 @@
 #include "mcf.h"
 /* For crc32 */
 #include <zlib.h>
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 //#define DEBUG_FEC 1
 
diff --git a/hw/mcf_intc.c b/hw/mcf_intc.c
index cc1a5f3..f50dcad 100644
--- a/hw/mcf_intc.c
+++ b/hw/mcf_intc.c
@@ -7,7 +7,7 @@
  */
 #include "hw.h"
 #include "mcf.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 typedef struct {
     MemoryRegion iomem;
diff --git a/hw/mcf_uart.c b/hw/mcf_uart.c
index ec6a87f..afdb3be 100644
--- a/hw/mcf_uart.c
+++ b/hw/mcf_uart.c
@@ -8,7 +8,7 @@
 #include "hw.h"
 #include "mcf.h"
 #include "qemu-char.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 typedef struct {
     MemoryRegion iomem;
diff --git a/hw/milkymist.c b/hw/milkymist.c
index 1cf7f05..7cb9989 100644
--- a/hw/milkymist.c
+++ b/hw/milkymist.c
@@ -28,7 +28,7 @@
 #include "blockdev.h"
 #include "milkymist-hw.h"
 #include "lm32.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define BIOS_FILENAME    "mmone-bios.bin"
 #define BIOS_OFFSET      0x00860000
diff --git a/hw/mips_fulong2e.c b/hw/mips_fulong2e.c
index a47e1e4..5a2e3b3 100644
--- a/hw/mips_fulong2e.c
+++ b/hw/mips_fulong2e.c
@@ -42,7 +42,7 @@
 #include "mc146818rtc.h"
 #include "i8254.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define DEBUG_FULONG2E_INIT
 
diff --git a/hw/mips_jazz.c b/hw/mips_jazz.c
index 4509cb4..4cc233e 100644
--- a/hw/mips_jazz.c
+++ b/hw/mips_jazz.c
@@ -41,7 +41,7 @@
 #include "pcspk.h"
 #include "blockdev.h"
 #include "sysbus.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 enum jazz_model_e
 {
diff --git a/hw/mips_malta.c b/hw/mips_malta.c
index 5b6064e..c6dd7e2 100644
--- a/hw/mips_malta.c
+++ b/hw/mips_malta.c
@@ -46,7 +46,7 @@
 #include "mc146818rtc.h"
 #include "i8254.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "sysbus.h"             /* SysBusDevice */
 
 //#define DEBUG_BOARD_INIT
diff --git a/hw/mips_mipssim.c b/hw/mips_mipssim.c
index 484e2f7..51705f9 100644
--- a/hw/mips_mipssim.c
+++ b/hw/mips_mipssim.c
@@ -36,7 +36,7 @@
 #include "loader.h"
 #include "elf.h"
 #include "sysbus.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 static struct _loaderparams {
     int ram_size;
diff --git a/hw/mips_r4k.c b/hw/mips_r4k.c
index b84ca64..4fff980 100644
--- a/hw/mips_r4k.c
+++ b/hw/mips_r4k.c
@@ -25,7 +25,7 @@
 #include "mc146818rtc.h"
 #include "i8254.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define MAX_IDE_BUS 2
 
diff --git a/hw/musicpal.c b/hw/musicpal.c
index 924dd11..6e7990a 100644
--- a/hw/musicpal.c
+++ b/hw/musicpal.c
@@ -23,7 +23,7 @@
 #include "ui/console.h"
 #include "i2c.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define MP_MISC_BASE            0x80002000
 #define MP_MISC_SIZE            0x00001000
diff --git a/hw/ne2000-isa.c b/hw/ne2000-isa.c
index 99477a4..b092450 100644
--- a/hw/ne2000-isa.c
+++ b/hw/ne2000-isa.c
@@ -27,7 +27,7 @@
 #include "qdev.h"
 #include "net/net.h"
 #include "ne2000.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 typedef struct ISANE2000State {
     ISADevice dev;
diff --git a/hw/nseries.c b/hw/nseries.c
index 371f52e..76db6ce 100644
--- a/hw/nseries.c
+++ b/hw/nseries.c
@@ -33,7 +33,7 @@
 #include "loader.h"
 #include "blockdev.h"
 #include "sysbus.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 /* Nokia N8x0 support */
 struct n800_s {
diff --git a/hw/omap_gpmc.c b/hw/omap_gpmc.c
index 2fc4137..6625ffe 100644
--- a/hw/omap_gpmc.c
+++ b/hw/omap_gpmc.c
@@ -22,7 +22,7 @@
 #include "flash.h"
 #include "omap.h"
 #include "memory.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 /* General-Purpose Memory Controller */
 struct omap_gpmc_s {
diff --git a/hw/omap_sx1.c b/hw/omap_sx1.c
index 30e02bb..8012a90 100644
--- a/hw/omap_sx1.c
+++ b/hw/omap_sx1.c
@@ -32,7 +32,7 @@
 #include "arm-misc.h"
 #include "flash.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 /*****************************************************************************/
 /* Siemens SX1 Cellphone V1 */
diff --git a/hw/omap_uart.c b/hw/omap_uart.c
index 1c16a54..1a47836 100644
--- a/hw/omap_uart.c
+++ b/hw/omap_uart.c
@@ -21,7 +21,7 @@
 #include "hw.h"
 #include "omap.h"
 #include "serial.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 /* UARTs */
 struct omap_uart_s {
diff --git a/hw/onenand.c b/hw/onenand.c
index 0f7b755..0b93690 100644
--- a/hw/onenand.c
+++ b/hw/onenand.c
@@ -24,7 +24,7 @@
 #include "irq.h"
 #include "blockdev.h"
 #include "memory.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "sysbus.h"
 #include "qemu-error.h"
 
diff --git a/hw/openrisc_sim.c b/hw/openrisc_sim.c
index e0e487c..b146fb5 100644
--- a/hw/openrisc_sim.c
+++ b/hw/openrisc_sim.c
@@ -24,7 +24,7 @@
 #include "serial.h"
 #include "net/net.h"
 #include "loader.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "sysemu.h"
 #include "sysbus.h"
 #include "qtest.h"
diff --git a/hw/palm.c b/hw/palm.c
index 37dde1e..e388cb0 100644
--- a/hw/palm.c
+++ b/hw/palm.c
@@ -25,7 +25,7 @@
 #include "arm-misc.h"
 #include "devices.h"
 #include "loader.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 static uint32_t static_readb(void *opaque, target_phys_addr_t offset)
 {
diff --git a/hw/pc.c b/hw/pc.c
index 805e8ca..c88d2c5 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -48,7 +48,7 @@
 #include "hw/block-common.h"
 #include "ui/qemu-spice.h"
 #include "memory.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "arch_init.h"
 #include "bitmap.h"
 
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index ea63fa1..a3f8ae3 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -42,7 +42,7 @@
 #include "smbus.h"
 #include "xen.h"
 #include "memory.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #ifdef CONFIG_XEN
 #  include <xen/hvm/hvm_info_table.h>
 #endif
diff --git a/hw/pci.c b/hw/pci.c
index f6ac1c4..40d29c9 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -33,7 +33,7 @@
 #include "qmp-commands.h"
 #include "msi.h"
 #include "msix.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 //#define DEBUG_PCI
 #ifdef DEBUG_PCI
diff --git a/hw/pcie_host.c b/hw/pcie_host.c
index 28bbe72..185b770 100644
--- a/hw/pcie_host.c
+++ b/hw/pcie_host.c
@@ -22,7 +22,7 @@
 #include "hw.h"
 #include "pci.h"
 #include "pcie_host.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 /*
  * PCI express mmcfig address
diff --git a/hw/petalogix_ml605_mmu.c b/hw/petalogix_ml605_mmu.c
index 787abee..2fa9152 100644
--- a/hw/petalogix_ml605_mmu.c
+++ b/hw/petalogix_ml605_mmu.c
@@ -35,7 +35,7 @@
 #include "xilinx.h"
 #include "blockdev.h"
 #include "serial.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "ssi.h"
 
 #include "microblaze_boot.h"
diff --git a/hw/petalogix_s3adsp1800_mmu.c b/hw/petalogix_s3adsp1800_mmu.c
index b2e2dd7..4d81c82 100644
--- a/hw/petalogix_s3adsp1800_mmu.c
+++ b/hw/petalogix_s3adsp1800_mmu.c
@@ -32,7 +32,7 @@
 #include "boards.h"
 #include "xilinx.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #include "microblaze_boot.h"
 #include "microblaze_pic_cpu.h"
diff --git a/hw/pflash_cfi01.c b/hw/pflash_cfi01.c
index 4751fc2..78e1e24 100644
--- a/hw/pflash_cfi01.c
+++ b/hw/pflash_cfi01.c
@@ -40,7 +40,7 @@
 #include "flash.h"
 #include "block/block.h"
 #include "qemu-timer.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "host-utils.h"
 
 #define PFLASH_BUG(fmt, ...) \
diff --git a/hw/pflash_cfi02.c b/hw/pflash_cfi02.c
index 962f78b..9387901 100644
--- a/hw/pflash_cfi02.c
+++ b/hw/pflash_cfi02.c
@@ -39,7 +39,7 @@
 #include "flash.h"
 #include "qemu-timer.h"
 #include "block/block.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "host-utils.h"
 
 //#define PFLASH_DEBUG
diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index 846f53a..470f7c3 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -31,7 +31,7 @@
 #include "hw/loader.h"
 #include "elf.h"
 #include "hw/sysbus.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "host-utils.h"
 
 #define BINARY_DEVICE_TREE_FILE    "mpc8544ds.dtb"
diff --git a/hw/ppc405_boards.c b/hw/ppc405_boards.c
index 686dbce..a691139 100644
--- a/hw/ppc405_boards.c
+++ b/hw/ppc405_boards.c
@@ -32,7 +32,7 @@
 #include "qemu-log.h"
 #include "loader.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define BIOS_FILENAME "ppc405_rom.bin"
 #define BIOS_SIZE (2048 * 1024)
diff --git a/hw/ppc405_uc.c b/hw/ppc405_uc.c
index e81409d..544192d 100644
--- a/hw/ppc405_uc.c
+++ b/hw/ppc405_uc.c
@@ -28,7 +28,7 @@
 #include "qemu-timer.h"
 #include "sysemu.h"
 #include "qemu-log.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define DEBUG_OPBA
 #define DEBUG_SDRAM
diff --git a/hw/ppc440_bamboo.c b/hw/ppc440_bamboo.c
index 6a525c8..762d40f 100644
--- a/hw/ppc440_bamboo.c
+++ b/hw/ppc440_bamboo.c
@@ -22,7 +22,7 @@
 #include "device_tree.h"
 #include "loader.h"
 #include "elf.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "serial.h"
 #include "ppc.h"
 #include "ppc405.h"
diff --git a/hw/ppc4xx_devs.c b/hw/ppc4xx_devs.c
index 41163e6..e9e334b 100644
--- a/hw/ppc4xx_devs.c
+++ b/hw/ppc4xx_devs.c
@@ -25,7 +25,7 @@
 #include "ppc.h"
 #include "ppc4xx.h"
 #include "qemu-log.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 //#define DEBUG_MMIO
 //#define DEBUG_UNASSIGNED
diff --git a/hw/ppc4xx_pci.c b/hw/ppc4xx_pci.c
index a14fd42..cf03426 100644
--- a/hw/ppc4xx_pci.c
+++ b/hw/ppc4xx_pci.c
@@ -24,7 +24,7 @@
 #include "ppc4xx.h"
 #include "pci.h"
 #include "pci_host.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #undef DEBUG
 #ifdef DEBUG
diff --git a/hw/ppc_newworld.c b/hw/ppc_newworld.c
index bf309a7..1080e33 100644
--- a/hw/ppc_newworld.c
+++ b/hw/ppc_newworld.c
@@ -66,7 +66,7 @@
 #include "kvm_ppc.h"
 #include "hw/usb.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define MAX_IDE_BUS 2
 #define CFG_ADDR 0xf0000510
diff --git a/hw/ppc_oldworld.c b/hw/ppc_oldworld.c
index f3b75cd..3011143 100644
--- a/hw/ppc_oldworld.c
+++ b/hw/ppc_oldworld.c
@@ -42,7 +42,7 @@
 #include "kvm.h"
 #include "kvm_ppc.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define MAX_IDE_BUS 2
 #define CFG_ADDR 0xf0000510
diff --git a/hw/ppc_prep.c b/hw/ppc_prep.c
index 7ad3b17..d431395 100644
--- a/hw/ppc_prep.c
+++ b/hw/ppc_prep.c
@@ -39,7 +39,7 @@
 #include "mc146818rtc.h"
 #include "blockdev.h"
 #include "arch_init.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 //#define HARD_DEBUG_PPC_IO
 //#define DEBUG_PPC_IO
diff --git a/hw/ppce500_pci.c b/hw/ppce500_pci.c
index 92b1dc0..ab1fe4b 100644
--- a/hw/ppce500_pci.c
+++ b/hw/ppce500_pci.c
@@ -305,7 +305,7 @@ static const VMStateDescription vmstate_ppce500_pci = {
     }
 };
 
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 static int e500_pcihost_initfn(SysBusDevice *dev)
 {
diff --git a/hw/prep_pci.c b/hw/prep_pci.c
index cc44e61..f04fab8 100644
--- a/hw/prep_pci.c
+++ b/hw/prep_pci.c
@@ -26,7 +26,7 @@
 #include "pci.h"
 #include "pci_host.h"
 #include "pc.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define TYPE_RAVEN_PCI_HOST_BRIDGE "raven-pcihost"
 
diff --git a/hw/puv3.c b/hw/puv3.c
index 887a37a..57eab89 100644
--- a/hw/puv3.c
+++ b/hw/puv3.c
@@ -10,7 +10,7 @@
  */
 #include "ui/console.h"
 #include "elf.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "sysbus.h"
 #include "boards.h"
 #include "loader.h"
diff --git a/hw/qdev-addr.c b/hw/qdev-addr.c
index b711b6b..6c3fb82 100644
--- a/hw/qdev-addr.c
+++ b/hw/qdev-addr.c
@@ -1,6 +1,6 @@
 #include "qdev.h"
 #include "qdev-addr.h"
-#include "targphys.h"
+#include "exec/targphys.h"
 
 /* --- target physical address --- */
 
diff --git a/hw/r2d.c b/hw/r2d.c
index d002f05..e0831d1 100644
--- a/hw/r2d.c
+++ b/hw/r2d.c
@@ -37,7 +37,7 @@
 #include "usb.h"
 #include "flash.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define FLASH_BASE 0x00000000
 #define FLASH_SIZE 0x02000000
diff --git a/hw/realview.c b/hw/realview.c
index 68df94e..21633e5 100644
--- a/hw/realview.c
+++ b/hw/realview.c
@@ -17,7 +17,7 @@
 #include "boards.h"
 #include "i2c.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define SMP_BOOT_ADDR 0xe0000000
 #define SMP_BOOTREG_ADDR 0x10000030
diff --git a/hw/s390-virtio.c b/hw/s390-virtio.c
index f295925..9d879d4 100644
--- a/hw/s390-virtio.c
+++ b/hw/s390-virtio.c
@@ -29,7 +29,7 @@
 #include "hw/virtio.h"
 #include "hw/sysbus.h"
 #include "kvm.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #include "hw/s390-virtio-bus.h"
 
diff --git a/hw/sh7750.c b/hw/sh7750.c
index e712928..8ace676 100644
--- a/hw/sh7750.c
+++ b/hw/sh7750.c
@@ -30,7 +30,7 @@
 #include "sh7750_regnames.h"
 #include "sh_intc.h"
 #include "cpu.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define NB_DEVICES 4
 
diff --git a/hw/sh_intc.h b/hw/sh_intc.h
index 80c9430..43973b8 100644
--- a/hw/sh_intc.h
+++ b/hw/sh_intc.h
@@ -3,7 +3,7 @@
 
 #include "qemu-common.h"
 #include "irq.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 typedef unsigned char intc_enum;
 
diff --git a/hw/sh_pci.c b/hw/sh_pci.c
index 0cfac46..c0e4e7f 100644
--- a/hw/sh_pci.c
+++ b/hw/sh_pci.c
@@ -26,7 +26,7 @@
 #include "pci.h"
 #include "pci_host.h"
 #include "bswap.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 typedef struct SHPCIState {
     SysBusDevice busdev;
diff --git a/hw/sh_serial.c b/hw/sh_serial.c
index 1d1883d..e918da0 100644
--- a/hw/sh_serial.c
+++ b/hw/sh_serial.c
@@ -27,7 +27,7 @@
 #include "hw.h"
 #include "sh.h"
 #include "qemu-char.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 //#define DEBUG_SERIAL
 
diff --git a/hw/sh_timer.c b/hw/sh_timer.c
index 64bf604..d9d7bf2 100644
--- a/hw/sh_timer.c
+++ b/hw/sh_timer.c
@@ -11,7 +11,7 @@
 #include "hw.h"
 #include "sh.h"
 #include "qemu-timer.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "ptimer.h"
 
 //#define DEBUG_TIMER
diff --git a/hw/shix.c b/hw/shix.c
index b56dd54..9cc4512 100644
--- a/hw/shix.c
+++ b/hw/shix.c
@@ -32,7 +32,7 @@
 #include "sysemu.h"
 #include "boards.h"
 #include "loader.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define BIOS_FILENAME "shix_bios.bin"
 #define BIOS_ADDRESS 0xA0000000
diff --git a/hw/spapr.c b/hw/spapr.c
index 5ebc542..ef486f7 100644
--- a/hw/spapr.c
+++ b/hw/spapr.c
@@ -47,7 +47,7 @@
 #include "kvm_ppc.h"
 #include "pci.h"
 
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "hw/usb.h"
 
 #include <libfdt.h>
diff --git a/hw/spapr_iommu.c b/hw/spapr_iommu.c
index 33f84e2..eae1f64 100644
--- a/hw/spapr_iommu.c
+++ b/hw/spapr_iommu.c
@@ -21,7 +21,7 @@
 #include "qdev.h"
 #include "kvm_ppc.h"
 #include "dma.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #include "hw/spapr.h"
 
diff --git a/hw/spapr_pci.c b/hw/spapr_pci.c
index b628f89..360ca63 100644
--- a/hw/spapr_pci.c
+++ b/hw/spapr_pci.c
@@ -29,7 +29,7 @@
 #include "pci_host.h"
 #include "hw/spapr.h"
 #include "hw/spapr_pci.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include <libfdt.h>
 #include "trace.h"
 
diff --git a/hw/spitz.c b/hw/spitz.c
index dd430c9..7e1b258 100644
--- a/hw/spitz.c
+++ b/hw/spitz.c
@@ -27,7 +27,7 @@
 #include "boards.h"
 #include "blockdev.h"
 #include "sysbus.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #undef REG_FMT
 #define REG_FMT			"0x%02lx"
diff --git a/hw/stellaris.c b/hw/stellaris.c
index 24a9b41..8662566 100644
--- a/hw/stellaris.c
+++ b/hw/stellaris.c
@@ -15,7 +15,7 @@
 #include "i2c.h"
 #include "net/net.h"
 #include "boards.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define GPIO_A 0
 #define GPIO_B 1
diff --git a/hw/sun4u.c b/hw/sun4u.c
index a922046..1d20b37 100644
--- a/hw/sun4u.c
+++ b/hw/sun4u.c
@@ -39,7 +39,7 @@
 #include "loader.h"
 #include "elf.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 //#define DEBUG_IRQ
 //#define DEBUG_EBUS
diff --git a/hw/sysbus.c b/hw/sysbus.c
index c173840..7b16eac 100644
--- a/hw/sysbus.c
+++ b/hw/sysbus.c
@@ -19,7 +19,7 @@
 
 #include "sysbus.h"
 #include "monitor.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 static void sysbus_dev_print(Monitor *mon, DeviceState *dev, int indent);
 static char *sysbus_get_fw_dev_path(DeviceState *dev);
diff --git a/hw/tosa.c b/hw/tosa.c
index 3991a90..25370fd 100644
--- a/hw/tosa.c
+++ b/hw/tosa.c
@@ -23,7 +23,7 @@
 #include "ssi.h"
 #include "blockdev.h"
 #include "sysbus.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define TOSA_RAM    0x04000000
 #define TOSA_ROM	0x00800000
diff --git a/hw/usb/libhw.c b/hw/usb/libhw.c
index 703e2d2..f826a42 100644
--- a/hw/usb/libhw.c
+++ b/hw/usb/libhw.c
@@ -20,7 +20,7 @@
  * THE SOFTWARE.
  */
 #include "qemu-common.h"
-#include "cpu-common.h"
+#include "exec/cpu-common.h"
 #include "hw/usb.h"
 #include "dma.h"
 
diff --git a/hw/versatile_pci.c b/hw/versatile_pci.c
index ae53a8b..507febc 100644
--- a/hw/versatile_pci.c
+++ b/hw/versatile_pci.c
@@ -10,7 +10,7 @@
 #include "sysbus.h"
 #include "pci.h"
 #include "pci_host.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 typedef struct {
     SysBusDevice busdev;
diff --git a/hw/versatilepb.c b/hw/versatilepb.c
index ad1e730..55a9a1f 100644
--- a/hw/versatilepb.c
+++ b/hw/versatilepb.c
@@ -16,7 +16,7 @@
 #include "i2c.h"
 #include "boards.h"
 #include "blockdev.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "flash.h"
 
 #define VERSATILE_FLASH_ADDR 0x34000000
diff --git a/hw/vexpress.c b/hw/vexpress.c
index 6f1f0c9..1090db6 100644
--- a/hw/vexpress.c
+++ b/hw/vexpress.c
@@ -28,7 +28,7 @@
 #include "net/net.h"
 #include "sysemu.h"
 #include "boards.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "blockdev.h"
 #include "flash.h"
 
diff --git a/hw/vfio_pci.c b/hw/vfio_pci.c
index f5db4a8..3dd09b8 100644
--- a/hw/vfio_pci.c
+++ b/hw/vfio_pci.c
@@ -28,7 +28,7 @@
 
 #include "config.h"
 #include "event_notifier.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "kvm.h"
 #include "memory.h"
 #include "msi.h"
diff --git a/hw/vhost.c b/hw/vhost.c
index 0b4ac3f..c431990 100644
--- a/hw/vhost.c
+++ b/hw/vhost.c
@@ -18,7 +18,7 @@
 #include "hw/hw.h"
 #include "range.h"
 #include <linux/vhost.h>
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 static void vhost_dev_sync_region(struct vhost_dev *dev,
                                   MemoryRegionSection *section,
diff --git a/hw/virtex_ml507.c b/hw/virtex_ml507.c
index c7b446c..62d3f99 100644
--- a/hw/virtex_ml507.c
+++ b/hw/virtex_ml507.c
@@ -33,7 +33,7 @@
 #include "loader.h"
 #include "elf.h"
 #include "qemu-log.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #include "ppc.h"
 #include "ppc4xx.h"
diff --git a/hw/virtio-balloon.c b/hw/virtio-balloon.c
index dd1a650..996f3ca 100644
--- a/hw/virtio-balloon.c
+++ b/hw/virtio-balloon.c
@@ -21,7 +21,7 @@
 #include "balloon.h"
 #include "virtio-balloon.h"
 #include "kvm.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #if defined(__linux__)
 #include <sys/mman.h>
diff --git a/hw/xen_platform.c b/hw/xen_platform.c
index c0f0caa..3b8ed70 100644
--- a/hw/xen_platform.c
+++ b/hw/xen_platform.c
@@ -32,7 +32,7 @@
 #include "xen_common.h"
 #include "xen_backend.h"
 #include "trace.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #include <xenguest.h>
 
diff --git a/hw/xen_pt.c b/hw/xen_pt.c
index d3d7c8b..42c643d 100644
--- a/hw/xen_pt.c
+++ b/hw/xen_pt.c
@@ -59,7 +59,7 @@
 #include "xen_backend.h"
 #include "xen_pt.h"
 #include "range.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #define XEN_PT_NR_IRQS (256)
 static uint8_t xen_pt_mapped_machine_irq[XEN_PT_NR_IRQS] = {0};
diff --git a/hw/xilinx_zynq.c b/hw/xilinx_zynq.c
index 491a9a9..c650404 100644
--- a/hw/xilinx_zynq.c
+++ b/hw/xilinx_zynq.c
@@ -18,7 +18,7 @@
 #include "sysbus.h"
 #include "arm-misc.h"
 #include "net/net.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "sysemu.h"
 #include "boards.h"
 #include "flash.h"
diff --git a/hw/xtensa_lx60.c b/hw/xtensa_lx60.c
index ba0d3d7..a775979 100644
--- a/hw/xtensa_lx60.c
+++ b/hw/xtensa_lx60.c
@@ -30,7 +30,7 @@
 #include "loader.h"
 #include "elf.h"
 #include "memory.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "serial.h"
 #include "net/net.h"
 #include "sysbus.h"
diff --git a/hw/xtensa_sim.c b/hw/xtensa_sim.c
index 2e846d8..569141e 100644
--- a/hw/xtensa_sim.c
+++ b/hw/xtensa_sim.c
@@ -30,7 +30,7 @@
 #include "loader.h"
 #include "elf.h"
 #include "memory.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 static uint64_t translate_phys_addr(void *env, uint64_t addr)
 {
diff --git a/hw/z2.c b/hw/z2.c
index d461864..316922e 100644
--- a/hw/z2.c
+++ b/hw/z2.c
@@ -23,7 +23,7 @@
 #include "blockdev.h"
 #include "ui/console.h"
 #include "audio/audio.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #ifdef DEBUG_Z2
 #define DPRINTF(fmt, ...) \
diff --git a/cpu-all.h b/include/exec/cpu-all.h
similarity index 99%
rename from cpu-all.h
rename to include/exec/cpu-all.h
index 6aa7e58..45b044f 100644
--- a/cpu-all.h
+++ b/include/exec/cpu-all.h
@@ -21,7 +21,7 @@
 
 #include "qemu-common.h"
 #include "qemu-tls.h"
-#include "cpu-common.h"
+#include "exec/cpu-common.h"
 
 /* some important defines:
  *
diff --git a/cpu-common.h b/include/exec/cpu-common.h
similarity index 98%
rename from cpu-common.h
rename to include/exec/cpu-common.h
index c0d27af..922d2c4 100644
--- a/cpu-common.h
+++ b/include/exec/cpu-common.h
@@ -3,10 +3,10 @@
 
 /* CPU interfaces that are target independent.  */
 
-#include "targphys.h"
+#include "exec/targphys.h"
 
 #ifndef NEED_CPU_H
-#include "poison.h"
+#include "exec/poison.h"
 #endif
 
 #include "bswap.h"
diff --git a/cpu-defs.h b/include/exec/cpu-defs.h
similarity index 99%
rename from cpu-defs.h
rename to include/exec/cpu-defs.h
index 4018b88..47702dd 100644
--- a/cpu-defs.h
+++ b/include/exec/cpu-defs.h
@@ -29,7 +29,7 @@
 #include <signal.h>
 #include "osdep.h"
 #include "qemu-queue.h"
-#include "targphys.h"
+#include "exec/targphys.h"
 
 #ifndef TARGET_LONG_BITS
 #error TARGET_LONG_BITS must be defined before including this header
diff --git a/def-helper.h b/include/exec/def-helper.h
similarity index 100%
rename from def-helper.h
rename to include/exec/def-helper.h
diff --git a/exec-all.h b/include/exec/exec-all.h
similarity index 98%
rename from exec-all.h
rename to include/exec/exec-all.h
index 16caf49..d377925 100644
--- a/exec-all.h
+++ b/include/exec/exec-all.h
@@ -283,7 +283,7 @@ static inline void tb_add_jump(TranslationBlock *tb, int n,
 
 TranslationBlock *tb_find_pc(uintptr_t pc_ptr);
 
-#include "qemu-lock.h"
+#include "exec/spinlock.h"
 
 extern spinlock_t tb_lock;
 
@@ -321,22 +321,22 @@ void io_mem_write(struct MemoryRegion *mr, target_phys_addr_t addr,
 void tlb_fill(CPUArchState *env1, target_ulong addr, int is_write, int mmu_idx,
               uintptr_t retaddr);
 
-#include "softmmu_defs.h"
+#include "exec/softmmu_defs.h"
 
 #define ACCESS_TYPE (NB_MMU_MODES + 1)
 #define MEMSUFFIX _code
 
 #define DATA_SIZE 1
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 2
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 4
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 8
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #undef ACCESS_TYPE
 #undef MEMSUFFIX
diff --git a/exec-memory.h b/include/exec/exec-memory.h
similarity index 100%
rename from exec-memory.h
rename to include/exec/exec-memory.h
diff --git a/gdbstub.h b/include/exec/gdbstub.h
similarity index 100%
rename from gdbstub.h
rename to include/exec/gdbstub.h
diff --git a/gen-icount.h b/include/exec/gen-icount.h
similarity index 100%
rename from gen-icount.h
rename to include/exec/gen-icount.h
diff --git a/poison.h b/include/exec/poison.h
similarity index 100%
rename from poison.h
rename to include/exec/poison.h
diff --git a/softmmu-semi.h b/include/exec/softmmu-semi.h
similarity index 100%
rename from softmmu-semi.h
rename to include/exec/softmmu-semi.h
diff --git a/softmmu_defs.h b/include/exec/softmmu_defs.h
similarity index 100%
rename from softmmu_defs.h
rename to include/exec/softmmu_defs.h
diff --git a/softmmu_exec.h b/include/exec/softmmu_exec.h
similarity index 72%
rename from softmmu_exec.h
rename to include/exec/softmmu_exec.h
index 8c73985..3e4e886 100644
--- a/softmmu_exec.h
+++ b/include/exec/softmmu_exec.h
@@ -19,37 +19,37 @@
 #define ldul_executive  ldl_executive
 #define ldul_supervisor ldl_supervisor
 
-#include "softmmu_defs.h"
+#include "exec/softmmu_defs.h"
 
 #define ACCESS_TYPE 0
 #define MEMSUFFIX MMU_MODE0_SUFFIX
 #define DATA_SIZE 1
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 2
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 4
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 8
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 #undef ACCESS_TYPE
 #undef MEMSUFFIX
 
 #define ACCESS_TYPE 1
 #define MEMSUFFIX MMU_MODE1_SUFFIX
 #define DATA_SIZE 1
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 2
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 4
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 8
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 #undef ACCESS_TYPE
 #undef MEMSUFFIX
 
@@ -58,16 +58,16 @@
 #define ACCESS_TYPE 2
 #define MEMSUFFIX MMU_MODE2_SUFFIX
 #define DATA_SIZE 1
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 2
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 4
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 8
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 #undef ACCESS_TYPE
 #undef MEMSUFFIX
 #endif /* (NB_MMU_MODES >= 3) */
@@ -77,16 +77,16 @@
 #define ACCESS_TYPE 3
 #define MEMSUFFIX MMU_MODE3_SUFFIX
 #define DATA_SIZE 1
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 2
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 4
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 8
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 #undef ACCESS_TYPE
 #undef MEMSUFFIX
 #endif /* (NB_MMU_MODES >= 4) */
@@ -96,16 +96,16 @@
 #define ACCESS_TYPE 4
 #define MEMSUFFIX MMU_MODE4_SUFFIX
 #define DATA_SIZE 1
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 2
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 4
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 8
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 #undef ACCESS_TYPE
 #undef MEMSUFFIX
 #endif /* (NB_MMU_MODES >= 5) */
@@ -115,16 +115,16 @@
 #define ACCESS_TYPE 5
 #define MEMSUFFIX MMU_MODE5_SUFFIX
 #define DATA_SIZE 1
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 2
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 4
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 8
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 #undef ACCESS_TYPE
 #undef MEMSUFFIX
 #endif /* (NB_MMU_MODES >= 6) */
@@ -137,16 +137,16 @@
 #define ACCESS_TYPE (NB_MMU_MODES)
 #define MEMSUFFIX _data
 #define DATA_SIZE 1
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 2
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 4
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 
 #define DATA_SIZE 8
-#include "softmmu_header.h"
+#include "exec/softmmu_header.h"
 #undef ACCESS_TYPE
 #undef MEMSUFFIX
 
diff --git a/softmmu_header.h b/include/exec/softmmu_header.h
similarity index 100%
rename from softmmu_header.h
rename to include/exec/softmmu_header.h
diff --git a/softmmu_template.h b/include/exec/softmmu_template.h
similarity index 100%
rename from softmmu_template.h
rename to include/exec/softmmu_template.h
diff --git a/qemu-lock.h b/include/exec/spinlock.h
similarity index 100%
rename from qemu-lock.h
rename to include/exec/spinlock.h
diff --git a/targphys.h b/include/exec/targphys.h
similarity index 100%
rename from targphys.h
rename to include/exec/targphys.h
diff --git a/kvm-all.c b/kvm-all.c
index c2c6909..0aeb5f1 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -27,11 +27,11 @@
 #include "sysemu.h"
 #include "hw/hw.h"
 #include "hw/msi.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include "kvm.h"
 #include "bswap.h"
 #include "memory.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "event_notifier.h"
 
 /* This check must be after config-host.h is included */
diff --git a/kvm-stub.c b/kvm-stub.c
index a3455e2..4184fb4 100644
--- a/kvm-stub.c
+++ b/kvm-stub.c
@@ -14,7 +14,7 @@
 #include "hw/hw.h"
 #include "hw/msi.h"
 #include "cpu.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include "kvm.h"
 
 KVMState *kvm_state;
diff --git a/linux-user/qemu.h b/linux-user/qemu.h
index 5e53dca..2cf7937 100644
--- a/linux-user/qemu.h
+++ b/linux-user/qemu.h
@@ -17,7 +17,7 @@
 #include "syscall_defs.h"
 #include "syscall.h"
 #include "target_signal.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include "qemu-queue.h"
 
 #if defined(CONFIG_USE_NPTL)
diff --git a/memory.c b/memory.c
index 2f68d67..7e9b90e 100644
--- a/memory.c
+++ b/memory.c
@@ -14,7 +14,7 @@
  */
 
 #include "memory.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 #include "ioport.h"
 #include "bitops.h"
 #include "kvm.h"
diff --git a/memory.h b/memory.h
index 79393f1..6adcc40 100644
--- a/memory.h
+++ b/memory.h
@@ -19,8 +19,8 @@
 #include <stdint.h>
 #include <stdbool.h>
 #include "qemu-common.h"
-#include "cpu-common.h"
-#include "targphys.h"
+#include "exec/cpu-common.h"
+#include "exec/targphys.h"
 #include "qemu-queue.h"
 #include "iorange.h"
 #include "ioport.h"
diff --git a/memory_mapping-stub.c b/memory_mapping-stub.c
index 76be34d..5f5fb99 100644
--- a/memory_mapping-stub.c
+++ b/memory_mapping-stub.c
@@ -12,7 +12,7 @@
  */
 
 #include "cpu.h"
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 #include "memory_mapping.h"
 
 int qemu_get_guest_memory_mapping(MemoryMappingList *list)
diff --git a/memory_mapping.c b/memory_mapping.c
index 6f5a2e3..bcf02ca 100644
--- a/memory_mapping.c
+++ b/memory_mapping.c
@@ -12,7 +12,7 @@
  */
 
 #include "cpu.h"
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 #include "memory_mapping.h"
 
 static void memory_mapping_list_add_mapping_sorted(MemoryMappingList *list,
diff --git a/monitor.c b/monitor.c
index 9a29d10..81a58c2 100644
--- a/monitor.c
+++ b/monitor.c
@@ -30,7 +30,7 @@
 #include "hw/pci.h"
 #include "hw/watchdog.h"
 #include "hw/loader.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include "net/net.h"
 #include "net/slirp.h"
 #include "qemu-char.h"
diff --git a/scripts/feature_to_c.sh b/scripts/feature_to_c.sh
index b62da8a..888548e 100644
--- a/scripts/feature_to_c.sh
+++ b/scripts/feature_to_c.sh
@@ -38,7 +38,7 @@ for input; do
   ${AWK:-awk} 'BEGIN { n = 0
       printf "#include \"config.h\"\n"
       printf "#include \"qemu-common.h\"\n"
-      printf "#include \"gdbstub.h\"\n"
+      printf "#include \"exec/gdbstub.h\"\n"
       print "static const char '$arrayname'[] = {"
       for (i = 0; i < 255; i++)
         _ord_[sprintf("%c", i)] = i
diff --git a/target-alpha/cpu.h b/target-alpha/cpu.h
index 5689760..ac61fe4 100644
--- a/target-alpha/cpu.h
+++ b/target-alpha/cpu.h
@@ -27,7 +27,7 @@
 
 #define CPUArchState struct CPUAlphaState
 
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 
 #include "softfloat.h"
 
@@ -302,7 +302,7 @@ struct CPUAlphaState {
 #define cpu_gen_code cpu_alpha_gen_code
 #define cpu_signal_handler cpu_alpha_signal_handler
 
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 #include "cpu-qom.h"
 
 enum {
@@ -525,7 +525,7 @@ static inline bool cpu_has_work(CPUAlphaState *env)
                                      | CPU_INTERRUPT_MCHK);
 }
 
-#include "exec-all.h"
+#include "exec/exec-all.h"
 
 static inline void cpu_pc_from_tb(CPUAlphaState *env, TranslationBlock *tb)
 {
diff --git a/target-alpha/helper.h b/target-alpha/helper.h
index a184def..db385ef 100644
--- a/target-alpha/helper.h
+++ b/target-alpha/helper.h
@@ -1,4 +1,4 @@
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 DEF_HELPER_3(excp, noreturn, env, int, int)
 DEF_HELPER_FLAGS_1(load_pcc, TCG_CALL_CONST | TCG_CALL_PURE, i64, env)
@@ -119,4 +119,4 @@ DEF_HELPER_FLAGS_0(get_time, TCG_CALL_CONST, i64)
 DEF_HELPER_FLAGS_2(set_alarm, TCG_CALL_CONST, void, env, i64)
 #endif
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-alpha/mem_helper.c b/target-alpha/mem_helper.c
index 87cada4..a05f0c2 100644
--- a/target-alpha/mem_helper.c
+++ b/target-alpha/mem_helper.c
@@ -115,22 +115,22 @@ void cpu_unassigned_access(CPUAlphaState *env, target_phys_addr_t addr,
     dynamic_excp(env, 0, EXCP_MCHK, 0);
 }
 
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 
 #define MMUSUFFIX _mmu
 #define ALIGNED_ONLY
 
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 /* try to fill the TLB and return an exception if error. If retaddr is
    NULL, it means that the function was called in C code (i.e. not
diff --git a/target-alpha/translate.c b/target-alpha/translate.c
index 17d6458..8d73b4b 100644
--- a/target-alpha/translate.c
+++ b/target-alpha/translate.c
@@ -88,7 +88,7 @@ static TCGv cpu_usp;
 /* register names */
 static char cpu_reg_names[10*4+21*5 + 10*5+21*6];
 
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 
 static void alpha_translate_init(void)
 {
diff --git a/target-arm/arm-semi.c b/target-arm/arm-semi.c
index 73bde58..43803c3 100644
--- a/target-arm/arm-semi.c
+++ b/target-arm/arm-semi.c
@@ -33,7 +33,7 @@
 #define ARM_ANGEL_HEAP_SIZE (128 * 1024 * 1024)
 #else
 #include "qemu-common.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include "hw/arm-misc.h"
 #endif
 
@@ -113,7 +113,7 @@ static inline uint32_t set_swi_errno(CPUARMState *env, uint32_t code)
     return code;
 }
 
-#include "softmmu-semi.h"
+#include "exec/softmmu-semi.h"
 #endif
 
 static target_ulong arm_semi_syscall_len;
diff --git a/target-arm/cpu.h b/target-arm/cpu.h
index ff4de10..e0bda5f 100644
--- a/target-arm/cpu.h
+++ b/target-arm/cpu.h
@@ -27,7 +27,7 @@
 
 #include "config.h"
 #include "qemu-common.h"
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 
 #include "softfloat.h"
 
@@ -659,7 +659,7 @@ static inline void cpu_clone_regs(CPUARMState *env, target_ulong newsp)
 }
 #endif
 
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 
 /* Bit usage in the TB flags field: */
 #define ARM_TBFLAG_THUMB_SHIFT      0
@@ -724,7 +724,7 @@ static inline bool cpu_has_work(CPUARMState *env)
         (CPU_INTERRUPT_FIQ | CPU_INTERRUPT_HARD | CPU_INTERRUPT_EXITTB);
 }
 
-#include "exec-all.h"
+#include "exec/exec-all.h"
 
 static inline void cpu_pc_from_tb(CPUARMState *env, TranslationBlock *tb)
 {
diff --git a/target-arm/helper.c b/target-arm/helper.c
index 58340bd..138f817 100644
--- a/target-arm/helper.c
+++ b/target-arm/helper.c
@@ -1,5 +1,5 @@
 #include "cpu.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include "helper.h"
 #include "host-utils.h"
 #include "sysemu.h"
diff --git a/target-arm/helper.h b/target-arm/helper.h
index 8b9adf1..aef8ca2 100644
--- a/target-arm/helper.h
+++ b/target-arm/helper.h
@@ -1,4 +1,4 @@
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 DEF_HELPER_FLAGS_1(clz, TCG_CALL_CONST | TCG_CALL_PURE, i32, i32)
 DEF_HELPER_FLAGS_1(sxtb16, TCG_CALL_CONST | TCG_CALL_PURE, i32, i32)
@@ -465,4 +465,4 @@ DEF_HELPER_3(neon_qzip8, void, env, i32, i32)
 DEF_HELPER_3(neon_qzip16, void, env, i32, i32)
 DEF_HELPER_3(neon_qzip32, void, env, i32, i32)
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-arm/iwmmxt_helper.c b/target-arm/iwmmxt_helper.c
index 1dd8d1a..7953b53 100644
--- a/target-arm/iwmmxt_helper.c
+++ b/target-arm/iwmmxt_helper.c
@@ -23,7 +23,7 @@
 #include <stdio.h>
 
 #include "cpu.h"
-#include "exec-all.h"
+#include "exec/exec-all.h"
 #include "helper.h"
 
 /* iwMMXt macros extracted from GNU gdb.  */
diff --git a/target-arm/neon_helper.c b/target-arm/neon_helper.c
index 9aa920d..1d48e30 100644
--- a/target-arm/neon_helper.c
+++ b/target-arm/neon_helper.c
@@ -10,7 +10,7 @@
 #include <stdio.h>
 
 #include "cpu.h"
-#include "exec-all.h"
+#include "exec/exec-all.h"
 #include "helper.h"
 
 #define SIGNBIT (uint32_t)0x80000000
diff --git a/target-arm/op_helper.c b/target-arm/op_helper.c
index aef592a..b3eeb3b 100644
--- a/target-arm/op_helper.c
+++ b/target-arm/op_helper.c
@@ -52,21 +52,21 @@ uint32_t HELPER(neon_tbl)(CPUARMState *env, uint32_t ireg, uint32_t def,
 
 #if !defined(CONFIG_USER_ONLY)
 
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 
 #define MMUSUFFIX _mmu
 
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 /* try to fill the TLB and return an exception if error. If retaddr is
    NULL, it means that the function was called in C code (i.e. not
diff --git a/target-arm/translate.c b/target-arm/translate.c
index 6f2914d..a11f245 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -98,7 +98,7 @@ static TCGv_i32 cpu_exclusive_info;
 static TCGv cpu_F0s, cpu_F1s;
 static TCGv_i64 cpu_F0d, cpu_F1d;
 
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 
 static const char *regnames[] =
     { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
diff --git a/target-cris/cpu.h b/target-cris/cpu.h
index 4f4df6d..bea6756 100644
--- a/target-cris/cpu.h
+++ b/target-cris/cpu.h
@@ -27,7 +27,7 @@
 
 #define CPUArchState struct CPUCRISState
 
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 
 #define TARGET_HAS_ICE 1
 
@@ -270,7 +270,7 @@ static inline void cpu_set_tls(CPUCRISState *env, target_ulong newtls)
 #define SFR_RW_MM_TLB_LO   env->pregs[PR_SRS]][5
 #define SFR_RW_MM_TLB_HI   env->pregs[PR_SRS]][6
 
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 
 static inline void cpu_get_tb_cpu_state(CPUCRISState *env, target_ulong *pc,
                                         target_ulong *cs_base, int *flags)
@@ -290,7 +290,7 @@ static inline bool cpu_has_work(CPUCRISState *env)
     return env->interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_NMI);
 }
 
-#include "exec-all.h"
+#include "exec/exec-all.h"
 
 static inline void cpu_pc_from_tb(CPUCRISState *env, TranslationBlock *tb)
 {
diff --git a/target-cris/helper.h b/target-cris/helper.h
index 99fb326..a762c08 100644
--- a/target-cris/helper.h
+++ b/target-cris/helper.h
@@ -1,4 +1,4 @@
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 DEF_HELPER_2(raise_exception, void, env, i32)
 DEF_HELPER_2(tlb_flush_pid, void, env, i32)
@@ -26,4 +26,4 @@ DEF_HELPER_FLAGS_3(evaluate_flags_move_2, TCG_CALL_PURE, i32, env, i32, i32)
 DEF_HELPER_1(evaluate_flags, void, env)
 DEF_HELPER_1(top_evaluate_flags, void, env)
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-cris/op_helper.c b/target-cris/op_helper.c
index a7468d4..dc9aad9 100644
--- a/target-cris/op_helper.c
+++ b/target-cris/op_helper.c
@@ -35,21 +35,21 @@
 #endif
 
 #if !defined(CONFIG_USER_ONLY)
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 
 #define MMUSUFFIX _mmu
 
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 /* Try to fill the TLB and return an exception if error. If retaddr is
    NULL, it means that the function was called in C code (i.e. not
diff --git a/target-cris/translate.c b/target-cris/translate.c
index 4a4224d..efce6d4 100644
--- a/target-cris/translate.c
+++ b/target-cris/translate.c
@@ -70,7 +70,7 @@ static TCGv env_btaken;
 static TCGv env_btarget;
 static TCGv env_pc;
 
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 
 /* This is the state at translation time.  */
 typedef struct DisasContext {
diff --git a/target-i386/arch_dump.c b/target-i386/arch_dump.c
index 4240278..50d866f 100644
--- a/target-i386/arch_dump.c
+++ b/target-i386/arch_dump.c
@@ -12,7 +12,7 @@
  */
 
 #include "cpu.h"
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 #include "dump.h"
 #include "elf.h"
 
diff --git a/target-i386/arch_memory_mapping.c b/target-i386/arch_memory_mapping.c
index 8e5a56a..217e09d 100644
--- a/target-i386/arch_memory_mapping.c
+++ b/target-i386/arch_memory_mapping.c
@@ -12,7 +12,7 @@
  */
 
 #include "cpu.h"
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 #include "memory_mapping.h"
 
 /* PAE Paging or IA-32e Paging */
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index 871c270..470d426 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -44,7 +44,7 @@
 
 #define CPUArchState struct CPUX86State
 
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 
 #include "softfloat.h"
 
@@ -1091,7 +1091,7 @@ static inline void cpu_clone_regs(CPUX86State *env, target_ulong newsp)
 }
 #endif
 
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 #include "svm.h"
 
 #if !defined(CONFIG_USER_ONLY)
@@ -1109,7 +1109,7 @@ static inline bool cpu_has_work(CPUX86State *env)
                                       CPU_INTERRUPT_MCE));
 }
 
-#include "exec-all.h"
+#include "exec/exec-all.h"
 
 static inline void cpu_pc_from_tb(CPUX86State *env, TranslationBlock *tb)
 {
diff --git a/target-i386/fpu_helper.c b/target-i386/fpu_helper.c
index dfc34a6..44f3d27 100644
--- a/target-i386/fpu_helper.c
+++ b/target-i386/fpu_helper.c
@@ -22,7 +22,7 @@
 #include "helper.h"
 
 #if !defined(CONFIG_USER_ONLY)
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 #endif /* !defined(CONFIG_USER_ONLY) */
 
 #define FPU_RC_MASK         0xc00
diff --git a/target-i386/helper.h b/target-i386/helper.h
index 93850ce..72ef6b1 100644
--- a/target-i386/helper.h
+++ b/target-i386/helper.h
@@ -1,4 +1,4 @@
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 DEF_HELPER_FLAGS_2(cc_compute_all, TCG_CALL_PURE, i32, env, int)
 DEF_HELPER_FLAGS_2(cc_compute_c, TCG_CALL_PURE, i32, env, int)
@@ -220,4 +220,4 @@ DEF_HELPER_3(rclq, tl, env, tl, tl)
 DEF_HELPER_3(rcrq, tl, env, tl, tl)
 #endif
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index c918276..3a24153 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -25,7 +25,7 @@
 #include "kvm.h"
 #include "kvm_i386.h"
 #include "cpu.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include "host-utils.h"
 #include "qemu-config.h"
 #include "hw/pc.h"
diff --git a/target-i386/mem_helper.c b/target-i386/mem_helper.c
index 7f99c7c..554ea52 100644
--- a/target-i386/mem_helper.c
+++ b/target-i386/mem_helper.c
@@ -21,7 +21,7 @@
 #include "helper.h"
 
 #if !defined(CONFIG_USER_ONLY)
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 #endif /* !defined(CONFIG_USER_ONLY) */
 
 /* broken thread support */
@@ -114,16 +114,16 @@ void helper_boundl(CPUX86State *env, target_ulong a0, int v)
 #define MMUSUFFIX _mmu
 
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #endif
 
diff --git a/target-i386/misc_helper.c b/target-i386/misc_helper.c
index a020379..3aac1e5 100644
--- a/target-i386/misc_helper.c
+++ b/target-i386/misc_helper.c
@@ -22,7 +22,7 @@
 #include "helper.h"
 
 #if !defined(CONFIG_USER_ONLY)
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 #endif /* !defined(CONFIG_USER_ONLY) */
 
 /* check if Port I/O is allowed in TSS */
diff --git a/target-i386/seg_helper.c b/target-i386/seg_helper.c
index ff93374..be795d7 100644
--- a/target-i386/seg_helper.c
+++ b/target-i386/seg_helper.c
@@ -25,7 +25,7 @@
 //#define DEBUG_PCALL
 
 #if !defined(CONFIG_USER_ONLY)
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 #endif /* !defined(CONFIG_USER_ONLY) */
 
 #ifdef DEBUG_PCALL
diff --git a/target-i386/svm_helper.c b/target-i386/svm_helper.c
index 4943c37..0834608 100644
--- a/target-i386/svm_helper.c
+++ b/target-i386/svm_helper.c
@@ -18,11 +18,11 @@
  */
 
 #include "cpu.h"
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 #include "helper.h"
 
 #if !defined(CONFIG_USER_ONLY)
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 #endif /* !defined(CONFIG_USER_ONLY) */
 
 /* Secure Virtual Machine helpers */
diff --git a/target-i386/translate.c b/target-i386/translate.c
index eac1c17..5b6d71a 100644
--- a/target-i386/translate.c
+++ b/target-i386/translate.c
@@ -65,7 +65,7 @@ static TCGv cpu_tmp5;
 
 static uint8_t gen_opc_cc_op[OPC_BUF_SIZE];
 
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 
 #ifdef TARGET_X86_64
 static int x86_64_hregs;
diff --git a/target-lm32/cpu.h b/target-lm32/cpu.h
index da80469..67abaed 100644
--- a/target-lm32/cpu.h
+++ b/target-lm32/cpu.h
@@ -26,7 +26,7 @@
 
 #include "config.h"
 #include "qemu-common.h"
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 struct CPULM32State;
 typedef struct CPULM32State CPULM32State;
 
@@ -238,7 +238,7 @@ static inline int cpu_interrupts_enabled(CPULM32State *env)
     return env->ie & IE_IE;
 }
 
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 
 static inline target_ulong cpu_get_pc(CPULM32State *env)
 {
@@ -258,7 +258,7 @@ static inline bool cpu_has_work(CPULM32State *env)
     return env->interrupt_request & CPU_INTERRUPT_HARD;
 }
 
-#include "exec-all.h"
+#include "exec/exec-all.h"
 
 static inline void cpu_pc_from_tb(CPULM32State *env, TranslationBlock *tb)
 {
diff --git a/target-lm32/helper.h b/target-lm32/helper.h
index 07f5670..3ea15a6 100644
--- a/target-lm32/helper.h
+++ b/target-lm32/helper.h
@@ -1,4 +1,4 @@
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 DEF_HELPER_2(raise_exception, void, env, i32)
 DEF_HELPER_1(hlt, void, env)
@@ -11,4 +11,4 @@ DEF_HELPER_1(rcsr_ip, i32, env)
 DEF_HELPER_1(rcsr_jtx, i32, env)
 DEF_HELPER_1(rcsr_jrx, i32, env)
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-lm32/op_helper.c b/target-lm32/op_helper.c
index 7b91d8c..d5ff156 100644
--- a/target-lm32/op_helper.c
+++ b/target-lm32/op_helper.c
@@ -9,13 +9,13 @@
 #if !defined(CONFIG_USER_ONLY)
 #define MMUSUFFIX _mmu
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 void helper_raise_exception(CPULM32State *env, uint32_t index)
 {
diff --git a/target-lm32/translate.c b/target-lm32/translate.c
index 8df04de..f39696c 100644
--- a/target-lm32/translate.c
+++ b/target-lm32/translate.c
@@ -53,7 +53,7 @@ static TCGv cpu_deba;
 static TCGv cpu_bp[4];
 static TCGv cpu_wp[4];
 
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 
 enum {
     OP_FMT_RI,
diff --git a/target-m68k/cpu.h b/target-m68k/cpu.h
index 5e6ee50..7e5523f 100644
--- a/target-m68k/cpu.h
+++ b/target-m68k/cpu.h
@@ -26,7 +26,7 @@
 
 #include "config.h"
 #include "qemu-common.h"
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 
 #include "softfloat.h"
 
@@ -245,7 +245,7 @@ static inline void cpu_clone_regs(CPUM68KState *env, target_ulong newsp)
 }
 #endif
 
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 
 static inline void cpu_get_tb_cpu_state(CPUM68KState *env, target_ulong *pc,
                                         target_ulong *cs_base, int *flags)
@@ -262,7 +262,7 @@ static inline bool cpu_has_work(CPUM68KState *env)
     return env->interrupt_request & CPU_INTERRUPT_HARD;
 }
 
-#include "exec-all.h"
+#include "exec/exec-all.h"
 
 static inline void cpu_pc_from_tb(CPUM68KState *env, TranslationBlock *tb)
 {
diff --git a/target-m68k/helper.c b/target-m68k/helper.c
index eac0053..f7d7a32 100644
--- a/target-m68k/helper.c
+++ b/target-m68k/helper.c
@@ -19,7 +19,7 @@
  */
 
 #include "cpu.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 
 #include "helpers.h"
 
diff --git a/target-m68k/helpers.h b/target-m68k/helpers.h
index 8112b44..2b02450 100644
--- a/target-m68k/helpers.h
+++ b/target-m68k/helpers.h
@@ -1,4 +1,4 @@
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 DEF_HELPER_1(bitrev, i32, i32)
 DEF_HELPER_1(ff1, i32, i32)
@@ -51,4 +51,4 @@ DEF_HELPER_3(set_mac_extu, void, env, i32, i32)
 DEF_HELPER_2(flush_flags, void, env, i32)
 DEF_HELPER_2(raise_exception, void, env, i32)
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-m68k/m68k-semi.c b/target-m68k/m68k-semi.c
index 3bb30cd..17e649f 100644
--- a/target-m68k/m68k-semi.c
+++ b/target-m68k/m68k-semi.c
@@ -33,8 +33,8 @@
 #define SEMIHOSTING_HEAP_SIZE (128 * 1024 * 1024)
 #else
 #include "qemu-common.h"
-#include "gdbstub.h"
-#include "softmmu-semi.h"
+#include "exec/gdbstub.h"
+#include "exec/softmmu-semi.h"
 #endif
 #include "sysemu.h"
 
diff --git a/target-m68k/op_helper.c b/target-m68k/op_helper.c
index aa00504..70735ae 100644
--- a/target-m68k/op_helper.c
+++ b/target-m68k/op_helper.c
@@ -34,21 +34,21 @@ void do_interrupt_m68k_hardirq(CPUM68KState *env)
 
 extern int semihosting_enabled;
 
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 
 #define MMUSUFFIX _mmu
 
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 /* Try to fill the TLB and return an exception if error. If retaddr is
    NULL, it means that the function was called in C code (i.e. not
diff --git a/target-m68k/translate.c b/target-m68k/translate.c
index d60cd6e..71fb762 100644
--- a/target-m68k/translate.c
+++ b/target-m68k/translate.c
@@ -61,7 +61,7 @@ static TCGv NULL_QREG;
 /* Used to distinguish stores from bad addressing modes.  */
 static TCGv store_dummy;
 
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 
 void m68k_tcg_init(void)
 {
diff --git a/target-microblaze/cpu.h b/target-microblaze/cpu.h
index 88430b5..2ee2318 100644
--- a/target-microblaze/cpu.h
+++ b/target-microblaze/cpu.h
@@ -26,7 +26,7 @@
 
 #define CPUArchState struct CPUMBState
 
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 #include "softfloat.h"
 struct CPUMBState;
 typedef struct CPUMBState CPUMBState;
@@ -353,7 +353,7 @@ static inline int cpu_interrupts_enabled(CPUMBState *env)
     return env->sregs[SR_MSR] & MSR_IE;
 }
 
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 
 static inline target_ulong cpu_get_pc(CPUMBState *env)
 {
@@ -379,7 +379,7 @@ static inline bool cpu_has_work(CPUMBState *env)
     return env->interrupt_request & (CPU_INTERRUPT_HARD | CPU_INTERRUPT_NMI);
 }
 
-#include "exec-all.h"
+#include "exec/exec-all.h"
 
 static inline void cpu_pc_from_tb(CPUMBState *env, TranslationBlock *tb)
 {
diff --git a/target-microblaze/helper.h b/target-microblaze/helper.h
index a1a732c..469cf9e 100644
--- a/target-microblaze/helper.h
+++ b/target-microblaze/helper.h
@@ -1,4 +1,4 @@
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 DEF_HELPER_2(raise_exception, void, env, i32)
 DEF_HELPER_1(debug, void, env)
@@ -38,4 +38,4 @@ DEF_HELPER_2(stackprot, void, env, i32)
 DEF_HELPER_2(get, i32, i32, i32)
 DEF_HELPER_3(put, void, i32, i32, i32)
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-microblaze/op_helper.c b/target-microblaze/op_helper.c
index c9789f4..52755e0 100644
--- a/target-microblaze/op_helper.c
+++ b/target-microblaze/op_helper.c
@@ -26,17 +26,17 @@
 #define D(x)
 
 #if !defined(CONFIG_USER_ONLY)
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 
 #define MMUSUFFIX _mmu
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 /* Try to fill the TLB and return an exception if error. If retaddr is
    NULL, it means that the function was called in C code (i.e. not
diff --git a/target-microblaze/translate.c b/target-microblaze/translate.c
index e9a5d32..bd65854 100644
--- a/target-microblaze/translate.c
+++ b/target-microblaze/translate.c
@@ -50,7 +50,7 @@ static TCGv env_btaken;
 static TCGv env_btarget;
 static TCGv env_iflags;
 
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 
 /* This is the state at translation time.  */
 typedef struct DisasContext {
diff --git a/target-mips/cpu.h b/target-mips/cpu.h
index b7a5112..13fdd83 100644
--- a/target-mips/cpu.h
+++ b/target-mips/cpu.h
@@ -12,7 +12,7 @@
 #include "config.h"
 #include "qemu-common.h"
 #include "mips-defs.h"
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 #include "softfloat.h"
 
 struct CPUMIPSState;
@@ -557,7 +557,7 @@ static inline int cpu_mips_hw_interrupts_pending(CPUMIPSState *env)
     return r;
 }
 
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 
 /* Memory access type :
  * may be needed for precise access rights control and precise exceptions.
@@ -733,7 +733,7 @@ static inline int cpu_has_work(CPUMIPSState *env)
     return has_work;
 }
 
-#include "exec-all.h"
+#include "exec/exec-all.h"
 
 static inline void cpu_pc_from_tb(CPUMIPSState *env, TranslationBlock *tb)
 {
diff --git a/target-mips/helper.h b/target-mips/helper.h
index f35ed78..b43d996 100644
--- a/target-mips/helper.h
+++ b/target-mips/helper.h
@@ -1,4 +1,4 @@
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 DEF_HELPER_3(raise_exception_err, noreturn, env, i32, int)
 DEF_HELPER_2(raise_exception, noreturn, env, i32)
@@ -362,4 +362,4 @@ DEF_HELPER_FLAGS_2(pasubub, TCG_CALL_CONST | TCG_CALL_PURE, i64, i64, i64)
 DEF_HELPER_FLAGS_1(biadd, TCG_CALL_CONST | TCG_CALL_PURE, i64, i64)
 DEF_HELPER_FLAGS_1(pmovmskb, TCG_CALL_CONST | TCG_CALL_PURE, i64, i64)
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c
index 05b7730..044eb7d 100644
--- a/target-mips/op_helper.c
+++ b/target-mips/op_helper.c
@@ -23,7 +23,7 @@
 #include "helper.h"
 
 #if !defined(CONFIG_USER_ONLY)
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 #endif /* !defined(CONFIG_USER_ONLY) */
 
 #ifndef CONFIG_USER_ONLY
@@ -2280,16 +2280,16 @@ static void QEMU_NORETURN do_unaligned_access(CPUMIPSState *env,
 #define ALIGNED_ONLY
 
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 static void do_unaligned_access(CPUMIPSState *env, target_ulong addr,
                                 int is_write, int is_user, uintptr_t retaddr)
diff --git a/target-mips/translate.c b/target-mips/translate.c
index bd1ad10..f36f351 100644
--- a/target-mips/translate.c
+++ b/target-mips/translate.c
@@ -578,7 +578,7 @@ static TCGv_i32 fpu_fcr0, fpu_fcr31;
 
 static uint32_t gen_opc_hflags[OPC_BUF_SIZE];
 
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 
 #define gen_helper_0e0i(name, arg) do {                           \
     TCGv_i32 helper_tmp = tcg_const_i32(arg);                     \
diff --git a/target-openrisc/cpu.h b/target-openrisc/cpu.h
index f118718..2b280c8 100644
--- a/target-openrisc/cpu.h
+++ b/target-openrisc/cpu.h
@@ -30,7 +30,7 @@ struct OpenRISCCPU;
 
 #include "config.h"
 #include "qemu-common.h"
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 #include "softfloat.h"
 #include "qemu/cpu.h"
 #include "qapi/error.h"
@@ -416,7 +416,7 @@ static inline void cpu_clone_regs(CPUOpenRISCState *env, target_ulong newsp)
 }
 #endif
 
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 
 static inline void cpu_get_tb_cpu_state(CPUOpenRISCState *env,
                                         target_ulong *pc,
@@ -443,7 +443,7 @@ static inline bool cpu_has_work(CPUOpenRISCState *env)
                                      CPU_INTERRUPT_TIMER);
 }
 
-#include "exec-all.h"
+#include "exec/exec-all.h"
 
 static inline target_ulong cpu_get_pc(CPUOpenRISCState *env)
 {
diff --git a/target-openrisc/helper.h b/target-openrisc/helper.h
index 404d464..2af9790 100644
--- a/target-openrisc/helper.h
+++ b/target-openrisc/helper.h
@@ -17,7 +17,7 @@
  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 /* exception */
 DEF_HELPER_FLAGS_2(exception, 0, void, env, i32)
@@ -67,4 +67,4 @@ DEF_HELPER_FLAGS_1(rfe, 0, void, env)
 DEF_HELPER_FLAGS_4(mtspr, 0, void, env, tl, tl, tl)
 DEF_HELPER_FLAGS_4(mfspr, 0, tl, env, tl, tl, tl)
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-openrisc/interrupt.c b/target-openrisc/interrupt.c
index 642da7d..226ce43 100644
--- a/target-openrisc/interrupt.c
+++ b/target-openrisc/interrupt.c
@@ -19,7 +19,7 @@
 
 #include "cpu.h"
 #include "qemu-common.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include "host-utils.h"
 #ifndef CONFIG_USER_ONLY
 #include "hw/loader.h"
diff --git a/target-openrisc/mmu.c b/target-openrisc/mmu.c
index 0be1d41..f507c7f 100644
--- a/target-openrisc/mmu.c
+++ b/target-openrisc/mmu.c
@@ -20,7 +20,7 @@
 
 #include "cpu.h"
 #include "qemu-common.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include "host-utils.h"
 #ifndef CONFIG_USER_ONLY
 #include "hw/loader.h"
diff --git a/target-openrisc/mmu_helper.c b/target-openrisc/mmu_helper.c
index 59ed371..b197182 100644
--- a/target-openrisc/mmu_helper.c
+++ b/target-openrisc/mmu_helper.c
@@ -21,20 +21,20 @@
 #include "cpu.h"
 
 #ifndef CONFIG_USER_ONLY
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 #define MMUSUFFIX _mmu
 
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 void tlb_fill(CPUOpenRISCState *env, target_ulong addr, int is_write,
               int mmu_idx, uintptr_t retaddr)
diff --git a/target-openrisc/translate.c b/target-openrisc/translate.c
index ba2efd4..15f1629 100644
--- a/target-openrisc/translate.c
+++ b/target-openrisc/translate.c
@@ -19,7 +19,7 @@
  */
 
 #include "cpu.h"
-#include "exec-all.h"
+#include "exec/exec-all.h"
 #include "disas/disas.h"
 #include "tcg-op.h"
 #include "qemu-common.h"
@@ -61,7 +61,7 @@ static TCGv_i32 fpcsr;
 static TCGv machi, maclo;
 static TCGv fpmaddhi, fpmaddlo;
 static TCGv_i32 env_flags;
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 
 void openrisc_translate_init(void)
 {
diff --git a/target-ppc/cpu.h b/target-ppc/cpu.h
index faf4404..1e746b6 100644
--- a/target-ppc/cpu.h
+++ b/target-ppc/cpu.h
@@ -73,7 +73,7 @@
 
 #define CPUArchState struct CPUPPCState
 
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 
 #include "softfloat.h"
 
@@ -1257,7 +1257,7 @@ static inline void cpu_clone_regs(CPUPPCState *env, target_ulong newsp)
 }
 #endif
 
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 
 /*****************************************************************************/
 /* CRF definitions */
@@ -2228,7 +2228,7 @@ static inline bool cpu_has_work(CPUPPCState *env)
     return msr_ee && (env->interrupt_request & CPU_INTERRUPT_HARD);
 }
 
-#include "exec-all.h"
+#include "exec/exec-all.h"
 
 static inline void cpu_pc_from_tb(CPUPPCState *env, TranslationBlock *tb)
 {
diff --git a/target-ppc/helper.h b/target-ppc/helper.h
index fd04c06..5a68df6 100644
--- a/target-ppc/helper.h
+++ b/target-ppc/helper.h
@@ -1,4 +1,4 @@
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 DEF_HELPER_3(raise_exception_err, void, env, i32, i32)
 DEF_HELPER_2(raise_exception, void, env, i32)
@@ -414,4 +414,4 @@ DEF_HELPER_3(store_601_batl, void, env, i32, tl)
 DEF_HELPER_3(store_601_batu, void, env, i32, tl)
 #endif
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-ppc/mem_helper.c b/target-ppc/mem_helper.c
index 5b5f1bd..215d5fe 100644
--- a/target-ppc/mem_helper.c
+++ b/target-ppc/mem_helper.c
@@ -23,7 +23,7 @@
 #include "helper_regs.h"
 
 #if !defined(CONFIG_USER_ONLY)
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 #endif /* !defined(CONFIG_USER_ONLY) */
 
 //#define DEBUG_OP
@@ -257,16 +257,16 @@ STVE(stvewx, cpu_stl_data, bswap32, u32)
 #define MMUSUFFIX _mmu
 
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 /* try to fill the TLB and return an exception if error. If retaddr is
    NULL, it means that the function was called in C code (i.e. not
diff --git a/target-ppc/translate.c b/target-ppc/translate.c
index 4f5ecff..33d12bc 100644
--- a/target-ppc/translate.c
+++ b/target-ppc/translate.c
@@ -71,7 +71,7 @@ static TCGv cpu_reserve;
 static TCGv_i32 cpu_fpscr;
 static TCGv_i32 cpu_access_type;
 
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 
 void ppc_translate_init(void)
 {
diff --git a/target-ppc/translate_init.c b/target-ppc/translate_init.c
index bc9a21e..67b021f 100644
--- a/target-ppc/translate_init.c
+++ b/target-ppc/translate_init.c
@@ -24,7 +24,7 @@
  */
 
 #include "disas/bfd.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include <kvm.h>
 #include "kvm_ppc.h"
 #include "arch_init.h"
diff --git a/target-s390x/cpu.h b/target-s390x/cpu.h
index ed81af3..ffc2c51 100644
--- a/target-s390x/cpu.h
+++ b/target-s390x/cpu.h
@@ -28,13 +28,13 @@
 
 #define CPUArchState struct CPUS390XState
 
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 #define TARGET_PAGE_BITS 12
 
 #define TARGET_PHYS_ADDR_SPACE_BITS 64
 #define TARGET_VIRT_ADDR_SPACE_BITS 64
 
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 
 #include "softfloat.h"
 
@@ -350,7 +350,7 @@ static inline void cpu_set_tls(CPUS390XState *env, target_ulong newtls)
 #define cpu_gen_code cpu_s390x_gen_code
 #define cpu_signal_handler cpu_s390x_signal_handler
 
-#include "exec-all.h"
+#include "exec/exec-all.h"
 
 #ifdef CONFIG_USER_ONLY
 
diff --git a/target-s390x/fpu_helper.c b/target-s390x/fpu_helper.c
index ee9420d..173f820 100644
--- a/target-s390x/fpu_helper.c
+++ b/target-s390x/fpu_helper.c
@@ -22,7 +22,7 @@
 #include "helper.h"
 
 #if !defined(CONFIG_USER_ONLY)
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 #endif
 
 /* #define DEBUG_HELPER */
diff --git a/target-s390x/helper.c b/target-s390x/helper.c
index 22256b0..c40ab47 100644
--- a/target-s390x/helper.c
+++ b/target-s390x/helper.c
@@ -19,7 +19,7 @@
  */
 
 #include "cpu.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include "qemu-timer.h"
 #ifndef CONFIG_USER_ONLY
 #include "sysemu.h"
diff --git a/target-s390x/helper.h b/target-s390x/helper.h
index 5419f37..fe0937c 100644
--- a/target-s390x/helper.h
+++ b/target-s390x/helper.h
@@ -1,4 +1,4 @@
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 DEF_HELPER_2(exception, void, env, i32)
 DEF_HELPER_4(nc, i32, env, i32, i64, i64)
@@ -149,4 +149,4 @@ DEF_HELPER_3(cksm, void, env, i32, i32)
 DEF_HELPER_FLAGS_5(calc_cc, TCG_CALL_PURE|TCG_CALL_CONST,
                    i32, env, i32, i64, i64, i64)
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-s390x/mem_helper.c b/target-s390x/mem_helper.c
index b21b37c..b8fb5fd 100644
--- a/target-s390x/mem_helper.c
+++ b/target-s390x/mem_helper.c
@@ -24,21 +24,21 @@
 /*****************************************************************************/
 /* Softmmu support */
 #if !defined(CONFIG_USER_ONLY)
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 
 #define MMUSUFFIX _mmu
 
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 /* try to fill the TLB and return an exception if error. If retaddr is
    NULL, it means that the function was called in C code (i.e. not
diff --git a/target-s390x/misc_helper.c b/target-s390x/misc_helper.c
index fdccd58..e542e0c 100644
--- a/target-s390x/misc_helper.c
+++ b/target-s390x/misc_helper.c
@@ -30,7 +30,7 @@
 #endif
 
 #if !defined(CONFIG_USER_ONLY)
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 #include "sysemu.h"
 #endif
 
diff --git a/target-s390x/translate.c b/target-s390x/translate.c
index 443912e..17932ac 100644
--- a/target-s390x/translate.c
+++ b/target-s390x/translate.c
@@ -37,7 +37,7 @@
 /* global register indexes */
 static TCGv_ptr cpu_env;
 
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 #include "helper.h"
 #define GEN_HELPER 1
 #include "helper.h"
diff --git a/target-sh4/cpu.h b/target-sh4/cpu.h
index bf59222..756e9f1 100644
--- a/target-sh4/cpu.h
+++ b/target-sh4/cpu.h
@@ -39,7 +39,7 @@
 
 #define CPUArchState struct CPUSH4State
 
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 
 #include "softfloat.h"
 
@@ -264,7 +264,7 @@ static inline void cpu_clone_regs(CPUSH4State *env, target_ulong newsp)
 }
 #endif
 
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 
 /* Memory access type */
 enum {
@@ -376,7 +376,7 @@ static inline bool cpu_has_work(CPUSH4State *env)
     return env->interrupt_request & CPU_INTERRUPT_HARD;
 }
 
-#include "exec-all.h"
+#include "exec/exec-all.h"
 
 static inline void cpu_pc_from_tb(CPUSH4State *env, TranslationBlock *tb)
 {
diff --git a/target-sh4/helper.h b/target-sh4/helper.h
index 6c1a47d..0e46dac 100644
--- a/target-sh4/helper.h
+++ b/target-sh4/helper.h
@@ -1,4 +1,4 @@
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 DEF_HELPER_1(ldtlb, void, env)
 DEF_HELPER_1(raise_illegal_instruction, noreturn, env)
@@ -47,4 +47,4 @@ DEF_HELPER_2(ftrc_DT, i32, env, f64)
 DEF_HELPER_3(fipr, void, env, i32, i32)
 DEF_HELPER_2(ftrv, void, env, i32)
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-sh4/op_helper.c b/target-sh4/op_helper.c
index 60ec4cb..55e2b25 100644
--- a/target-sh4/op_helper.c
+++ b/target-sh4/op_helper.c
@@ -37,21 +37,21 @@ static inline void cpu_restore_state_from_retaddr(CPUSH4State *env,
 }
 
 #ifndef CONFIG_USER_ONLY
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 
 #define MMUSUFFIX _mmu
 
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 void tlb_fill(CPUSH4State *env, target_ulong addr, int is_write, int mmu_idx,
               uintptr_t retaddr)
diff --git a/target-sh4/translate.c b/target-sh4/translate.c
index ba6b127..979ff3e 100644
--- a/target-sh4/translate.c
+++ b/target-sh4/translate.c
@@ -69,7 +69,7 @@ static TCGv cpu_flags, cpu_delayed_pc;
 
 static uint32_t gen_opc_hflags[OPC_BUF_SIZE];
 
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 
 static void sh4_translate_init(void)
 {
diff --git a/target-sparc/cpu.h b/target-sparc/cpu.h
index 214d01d..9e7bce3 100644
--- a/target-sparc/cpu.h
+++ b/target-sparc/cpu.h
@@ -25,7 +25,7 @@
 
 #define CPUArchState struct CPUSPARCState
 
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 
 #include "softfloat.h"
 
@@ -702,7 +702,7 @@ static inline void cpu_clone_regs(CPUSPARCState *env, target_ulong newsp)
 }
 #endif
 
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 
 #ifdef TARGET_SPARC64
 /* sun4u.c */
@@ -770,7 +770,7 @@ static inline bool cpu_has_work(CPUSPARCState *env1)
            cpu_interrupts_enabled(env1);
 }
 
-#include "exec-all.h"
+#include "exec/exec-all.h"
 
 static inline void cpu_pc_from_tb(CPUSPARCState *env, TranslationBlock *tb)
 {
diff --git a/target-sparc/helper.h b/target-sparc/helper.h
index e1ae3c7..50c13cf 100644
--- a/target-sparc/helper.h
+++ b/target-sparc/helper.h
@@ -1,4 +1,4 @@
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 #ifndef TARGET_SPARC64
 DEF_HELPER_1(rett, void, env)
@@ -173,4 +173,4 @@ VIS_CMPHELPER(cmpne);
 DEF_HELPER_1(compute_psr, void, env);
 DEF_HELPER_1(compute_C_icc, i32, env);
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-sparc/ldst_helper.c b/target-sparc/ldst_helper.c
index 2ca9a5c..101deec 100644
--- a/target-sparc/ldst_helper.c
+++ b/target-sparc/ldst_helper.c
@@ -65,21 +65,21 @@
 #define QT1 (env->qt1)
 
 #if !defined(CONFIG_USER_ONLY)
-#include "softmmu_exec.h"
+#include "exec/softmmu_exec.h"
 #define MMUSUFFIX _mmu
 #define ALIGNED_ONLY
 
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 #endif
 
 #if defined(TARGET_SPARC64) && !defined(CONFIG_USER_ONLY)
diff --git a/target-sparc/mmu_helper.c b/target-sparc/mmu_helper.c
index cb73c44..7fcac3f 100644
--- a/target-sparc/mmu_helper.c
+++ b/target-sparc/mmu_helper.c
@@ -19,7 +19,7 @@
 
 #include "cpu.h"
 #include "trace.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 /* Sparc MMU emulation */
 
diff --git a/target-sparc/translate.c b/target-sparc/translate.c
index 705ab6e..c24b5c3 100644
--- a/target-sparc/translate.c
+++ b/target-sparc/translate.c
@@ -64,7 +64,7 @@ static TCGv_i64 cpu_fpr[TARGET_DPREGS];
 static target_ulong gen_opc_npc[OPC_BUF_SIZE];
 static target_ulong gen_opc_jump_pc[2];
 
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 
 typedef struct DisasContext {
     target_ulong pc;    /* current Program Counter: integer or DYNAMIC_PC */
diff --git a/target-unicore32/cpu.h b/target-unicore32/cpu.h
index 06508a1..c8abef1 100644
--- a/target-unicore32/cpu.h
+++ b/target-unicore32/cpu.h
@@ -23,7 +23,7 @@
 
 #include "config.h"
 #include "qemu-common.h"
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 #include "softfloat.h"
 
 #define NB_MMU_MODES            2
@@ -157,9 +157,9 @@ static inline void cpu_set_tls(CPUUniCore32State *env, target_ulong newtls)
     env->regs[16] = newtls;
 }
 
-#include "cpu-all.h"
+#include "exec/cpu-all.h"
 #include "cpu-qom.h"
-#include "exec-all.h"
+#include "exec/exec-all.h"
 
 static inline void cpu_pc_from_tb(CPUUniCore32State *env, TranslationBlock *tb)
 {
diff --git a/target-unicore32/helper.c b/target-unicore32/helper.c
index 4b68561..2adbd16 100644
--- a/target-unicore32/helper.c
+++ b/target-unicore32/helper.c
@@ -10,7 +10,7 @@
  */
 
 #include "cpu.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include "helper.h"
 #include "host-utils.h"
 #include "ui/console.h"
diff --git a/target-unicore32/helper.h b/target-unicore32/helper.h
index a4b8149..e85ce6c 100644
--- a/target-unicore32/helper.h
+++ b/target-unicore32/helper.h
@@ -6,7 +6,7 @@
  * published by the Free Software Foundation, or (at your option) any
  * later version. See the COPYING file in the top-level directory.
  */
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 #ifndef CONFIG_USER_ONLY
 DEF_HELPER_4(cp0_set, void, env, i32, i32, i32)
@@ -65,4 +65,4 @@ DEF_HELPER_2(ucf64_si2df, f64, f32, env)
 DEF_HELPER_2(ucf64_sf2si, f32, f32, env)
 DEF_HELPER_2(ucf64_df2si, f32, f64, env)
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-unicore32/op_helper.c b/target-unicore32/op_helper.c
index f474d1b..cc4aa37 100644
--- a/target-unicore32/op_helper.c
+++ b/target-unicore32/op_helper.c
@@ -242,16 +242,16 @@ uint32_t HELPER(ror_cc)(CPUUniCore32State *env, uint32_t x, uint32_t i)
 #define MMUSUFFIX _mmu
 
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 void tlb_fill(CPUUniCore32State *env, target_ulong addr, int is_write,
               int mmu_idx, uintptr_t retaddr)
diff --git a/target-unicore32/translate.c b/target-unicore32/translate.c
index 03c28f1..93583b1 100644
--- a/target-unicore32/translate.c
+++ b/target-unicore32/translate.c
@@ -55,7 +55,7 @@ static TCGv_i32 cpu_R[32];
 static TCGv cpu_F0s, cpu_F1s;
 static TCGv_i64 cpu_F0d, cpu_F1d;
 
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 
 static const char *regnames[] = {
       "r00", "r01", "r02", "r03", "r04", "r05", "r06", "r07",
diff --git a/target-xtensa/core-dc232b.c b/target-xtensa/core-dc232b.c
index 804fdef..d1a594c 100644
--- a/target-xtensa/core-dc232b.c
+++ b/target-xtensa/core-dc232b.c
@@ -26,8 +26,8 @@
  */
 
 #include "cpu.h"
-#include "exec-all.h"
-#include "gdbstub.h"
+#include "exec/exec-all.h"
+#include "exec/gdbstub.h"
 #include "host-utils.h"
 
 #include "core-dc232b/core-isa.h"
diff --git a/target-xtensa/core-dc233c.c b/target-xtensa/core-dc233c.c
index d643f41..ead6b3b 100644
--- a/target-xtensa/core-dc233c.c
+++ b/target-xtensa/core-dc233c.c
@@ -26,8 +26,8 @@
  */
 
 #include "cpu.h"
-#include "exec-all.h"
-#include "gdbstub.h"
+#include "exec/exec-all.h"
+#include "exec/gdbstub.h"
 #include "qemu-common.h"
 #include "host-utils.h"
 
diff --git a/target-xtensa/core-fsf.c b/target-xtensa/core-fsf.c
index e36b0de..a387aee 100644
--- a/target-xtensa/core-fsf.c
+++ b/target-xtensa/core-fsf.c
@@ -26,8 +26,8 @@
  */
 
 #include "cpu.h"
-#include "exec-all.h"
-#include "gdbstub.h"
+#include "exec/exec-all.h"
+#include "exec/gdbstub.h"
 #include "host-utils.h"
 
 #include "core-fsf/core-isa.h"
diff --git a/target-xtensa/cpu.h b/target-xtensa/cpu.h
index 7348277..f355ca3 100644
--- a/target-xtensa/cpu.h
+++ b/target-xtensa/cpu.h
@@ -35,7 +35,7 @@
 
 #include "config.h"
 #include "qemu-common.h"
-#include "cpu-defs.h"
+#include "exec/cpu-defs.h"
 #include "fpu/softfloat.h"
 
 #define TARGET_HAS_ICE 1
@@ -498,8 +498,8 @@ static inline void cpu_get_tb_cpu_state(CPUXtensaState *env, target_ulong *pc,
     }
 }
 
-#include "cpu-all.h"
-#include "exec-all.h"
+#include "exec/cpu-all.h"
+#include "exec/exec-all.h"
 
 static inline int cpu_has_work(CPUXtensaState *env)
 {
diff --git a/target-xtensa/helper.c b/target-xtensa/helper.c
index d5bb171..8a3783a 100644
--- a/target-xtensa/helper.c
+++ b/target-xtensa/helper.c
@@ -26,8 +26,8 @@
  */
 
 #include "cpu.h"
-#include "exec-all.h"
-#include "gdbstub.h"
+#include "exec/exec-all.h"
+#include "exec/gdbstub.h"
 #include "host-utils.h"
 #if !defined(CONFIG_USER_ONLY)
 #include "hw/loader.h"
diff --git a/target-xtensa/helper.h b/target-xtensa/helper.h
index 4cc0088..93859cb 100644
--- a/target-xtensa/helper.h
+++ b/target-xtensa/helper.h
@@ -1,4 +1,4 @@
-#include "def-helper.h"
+#include "exec/def-helper.h"
 
 DEF_HELPER_2(exception, noreturn, env, i32)
 DEF_HELPER_3(exception_cause, noreturn, env, i32, i32)
@@ -57,4 +57,4 @@ DEF_HELPER_4(ult_s, void, env, i32, f32, f32)
 DEF_HELPER_4(ole_s, void, env, i32, f32, f32)
 DEF_HELPER_4(ule_s, void, env, i32, f32, f32)
 
-#include "def-helper.h"
+#include "exec/def-helper.h"
diff --git a/target-xtensa/op_helper.c b/target-xtensa/op_helper.c
index ae0c099..c5ad4d0 100644
--- a/target-xtensa/op_helper.c
+++ b/target-xtensa/op_helper.c
@@ -36,16 +36,16 @@ static void do_unaligned_access(CPUXtensaState *env,
 #define MMUSUFFIX _mmu
 
 #define SHIFT 0
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 1
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 2
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 #define SHIFT 3
-#include "softmmu_template.h"
+#include "exec/softmmu_template.h"
 
 static void do_restore_state(CPUXtensaState *env, uintptr_t pc)
 {
diff --git a/target-xtensa/translate.c b/target-xtensa/translate.c
index 03e5451..15d5203 100644
--- a/target-xtensa/translate.c
+++ b/target-xtensa/translate.c
@@ -31,7 +31,7 @@
 #include <stdio.h>
 
 #include "cpu.h"
-#include "exec-all.h"
+#include "exec/exec-all.h"
 #include "disas/disas.h"
 #include "tcg-op.h"
 #include "qemu-log.h"
@@ -76,7 +76,7 @@ static TCGv_i32 cpu_FR[16];
 static TCGv_i32 cpu_SR[256];
 static TCGv_i32 cpu_UR[256];
 
-#include "gen-icount.h"
+#include "exec/gen-icount.h"
 
 static const char * const sregnames[256] = {
     [LBEG] = "LBEG",
diff --git a/tcg/arm/tcg-target.c b/tcg/arm/tcg-target.c
index e790bf0..51b147b 100644
--- a/tcg/arm/tcg-target.c
+++ b/tcg/arm/tcg-target.c
@@ -960,7 +960,7 @@ static inline void tcg_out_goto_label(TCGContext *s, int cond, int label_index)
 
 #ifdef CONFIG_SOFTMMU
 
-#include "../../softmmu_defs.h"
+#include "exec/softmmu_defs.h"
 
 /* helper signature: helper_ld_mmu(CPUState *env, target_ulong addr,
    int mmu_idx) */
diff --git a/tcg/hppa/tcg-target.c b/tcg/hppa/tcg-target.c
index de500ae..5b27cf6 100644
--- a/tcg/hppa/tcg-target.c
+++ b/tcg/hppa/tcg-target.c
@@ -906,7 +906,7 @@ static void tcg_out_movcond(TCGContext *s, int cond, TCGArg ret,
 }
 
 #if defined(CONFIG_SOFTMMU)
-#include "../../softmmu_defs.h"
+#include "exec/softmmu_defs.h"
 
 /* helper signature: helper_ld_mmu(CPUState *env, target_ulong addr,
    int mmu_idx) */
diff --git a/tcg/i386/tcg-target.c b/tcg/i386/tcg-target.c
index 4952c05..927a30a 100644
--- a/tcg/i386/tcg-target.c
+++ b/tcg/i386/tcg-target.c
@@ -981,7 +981,7 @@ static void tcg_out_jmp(TCGContext *s, tcg_target_long dest)
 
 #if defined(CONFIG_SOFTMMU)
 
-#include "../../softmmu_defs.h"
+#include "exec/softmmu_defs.h"
 
 /* helper signature: helper_ld_mmu(CPUState *env, target_ulong addr,
    int mmu_idx) */
diff --git a/tcg/ia64/tcg-target.c b/tcg/ia64/tcg-target.c
index 06570be..2373d9e 100644
--- a/tcg/ia64/tcg-target.c
+++ b/tcg/ia64/tcg-target.c
@@ -1491,7 +1491,7 @@ static inline void tcg_out_movcond(TCGContext *s, TCGCond cond, TCGArg ret,
 
 #if defined(CONFIG_SOFTMMU)
 
-#include "../../softmmu_defs.h"
+#include "exec/softmmu_defs.h"
 
 /* Load and compare a TLB entry, and return the result in (p6, p7).
    R2 is loaded with the address of the addend TLB entry.
diff --git a/tcg/mips/tcg-target.c b/tcg/mips/tcg-target.c
index 7e4013e..b8f89ed 100644
--- a/tcg/mips/tcg-target.c
+++ b/tcg/mips/tcg-target.c
@@ -917,7 +917,7 @@ static void tcg_out_setcond2(TCGContext *s, TCGCond cond, TCGReg ret,
 
 #if defined(CONFIG_SOFTMMU)
 
-#include "../../softmmu_defs.h"
+#include "exec/softmmu_defs.h"
 
 /* helper signature: helper_ld_mmu(CPUState *env, target_ulong addr,
    int mmu_idx) */
diff --git a/tcg/ppc/tcg-target.c b/tcg/ppc/tcg-target.c
index 60b7b92..a7e48ec 100644
--- a/tcg/ppc/tcg-target.c
+++ b/tcg/ppc/tcg-target.c
@@ -520,7 +520,7 @@ static void tcg_out_call (TCGContext *s, tcg_target_long arg, int const_arg)
 
 #if defined(CONFIG_SOFTMMU)
 
-#include "../../softmmu_defs.h"
+#include "exec/softmmu_defs.h"
 
 /* helper signature: helper_ld_mmu(CPUState *env, target_ulong addr,
    int mmu_idx) */
diff --git a/tcg/ppc64/tcg-target.c b/tcg/ppc64/tcg-target.c
index 5403fc1..833fe0c 100644
--- a/tcg/ppc64/tcg-target.c
+++ b/tcg/ppc64/tcg-target.c
@@ -546,7 +546,7 @@ static void tcg_out_ldsta (TCGContext *s, int ret, int addr,
 
 #if defined (CONFIG_SOFTMMU)
 
-#include "../../softmmu_defs.h"
+#include "exec/softmmu_defs.h"
 
 /* helper signature: helper_ld_mmu(CPUState *env, target_ulong addr,
    int mmu_idx) */
diff --git a/tcg/s390/tcg-target.c b/tcg/s390/tcg-target.c
index fd9286f..e12a152 100644
--- a/tcg/s390/tcg-target.c
+++ b/tcg/s390/tcg-target.c
@@ -299,7 +299,7 @@ static const uint8_t tcg_cond_to_ltr_cond[] = {
 
 #ifdef CONFIG_SOFTMMU
 
-#include "../../softmmu_defs.h"
+#include "exec/softmmu_defs.h"
 
 /* helper signature: helper_ld_mmu(CPUState *env, target_ulong addr,
    int mmu_idx) */
diff --git a/tcg/sparc/tcg-target.c b/tcg/sparc/tcg-target.c
index f146647..03db514 100644
--- a/tcg/sparc/tcg-target.c
+++ b/tcg/sparc/tcg-target.c
@@ -831,7 +831,7 @@ static void tcg_target_qemu_prologue(TCGContext *s)
 
 #if defined(CONFIG_SOFTMMU)
 
-#include "../../softmmu_defs.h"
+#include "exec/softmmu_defs.h"
 
 /* helper signature: helper_ld_mmu(CPUState *env, target_ulong addr,
    int mmu_idx) */
diff --git a/tci.c b/tci.c
index 98f5f71..0038ea9 100644
--- a/tci.c
+++ b/tci.c
@@ -25,7 +25,7 @@
 #endif
 
 #include "qemu-common.h"
-#include "exec-all.h"           /* MAX_OPC_PARAM_IARGS */
+#include "exec/exec-all.h"           /* MAX_OPC_PARAM_IARGS */
 #include "tcg-op.h"
 
 /* Marker for missing code. */
diff --git a/vl.c b/vl.c
index 04fa990..9597912 100644
--- a/vl.c
+++ b/vl.c
@@ -132,7 +132,7 @@ int main(int argc, char **argv)
 #include "monitor.h"
 #include "ui/console.h"
 #include "sysemu.h"
-#include "gdbstub.h"
+#include "exec/gdbstub.h"
 #include "qemu-timer.h"
 #include "qemu-char.h"
 #include "cache-utils.h"
diff --git a/xen-all.c b/xen-all.c
index 9d1e168..11485db 100644
--- a/xen-all.c
+++ b/xen-all.c
@@ -19,7 +19,7 @@
 #include "range.h"
 #include "xen-mapcache.h"
 #include "trace.h"
-#include "exec-memory.h"
+#include "exec/exec-memory.h"
 
 #include <xen/hvm/ioreq.h>
 #include <xen/hvm/params.h>
