diff --git a/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj b/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj
index 08f64b61..bbcc1434 100644
--- a/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj
+++ b/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj
@@ -32,11 +32,11 @@
+
-
@@ -45,14 +45,16 @@
+
+
-
-
+
+
+
+
+
-
-
-
@@ -84,8 +86,6 @@
-
-
{2A7F483F-CD19-4F84-BBDA-B6A1865E2773}
diff --git a/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj.filters b/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj.filters
index 7cce78a3..85f4c8f3 100644
--- a/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj.filters
+++ b/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj.filters
@@ -69,8 +69,8 @@
tcg
-
- tcg
+
+ accel\tcg
tcg
@@ -158,17 +158,18 @@
tcg\i386
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
\ No newline at end of file
diff --git a/msvc/unicorn/aarch64eb-softmmu/aarch64eb-softmmu.vcxproj b/msvc/unicorn/aarch64eb-softmmu/aarch64eb-softmmu.vcxproj
index 82a4a257..5d64c495 100644
--- a/msvc/unicorn/aarch64eb-softmmu/aarch64eb-softmmu.vcxproj
+++ b/msvc/unicorn/aarch64eb-softmmu/aarch64eb-softmmu.vcxproj
@@ -32,11 +32,11 @@
+
-
@@ -45,14 +45,16 @@
+
+
-
-
+
+
+
+
+
-
-
-
@@ -84,8 +86,6 @@
-
-
{340D86A5-E53C-490B-880A-8EB1F5BDE947}
diff --git a/msvc/unicorn/aarch64eb-softmmu/aarch64eb-softmmu.vcxproj.filters b/msvc/unicorn/aarch64eb-softmmu/aarch64eb-softmmu.vcxproj.filters
index 9f1e8696..fc8fd273 100644
--- a/msvc/unicorn/aarch64eb-softmmu/aarch64eb-softmmu.vcxproj.filters
+++ b/msvc/unicorn/aarch64eb-softmmu/aarch64eb-softmmu.vcxproj.filters
@@ -75,8 +75,8 @@
tcg
-
- tcg
+
+ accel\tcg
tcg
@@ -158,17 +158,18 @@
tcg\i386
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
\ No newline at end of file
diff --git a/msvc/unicorn/arm-softmmu/arm-softmmu.vcxproj b/msvc/unicorn/arm-softmmu/arm-softmmu.vcxproj
index bb50b71f..94b36c29 100644
--- a/msvc/unicorn/arm-softmmu/arm-softmmu.vcxproj
+++ b/msvc/unicorn/arm-softmmu/arm-softmmu.vcxproj
@@ -31,11 +31,11 @@
+
-
@@ -44,14 +44,16 @@
+
+
-
-
+
+
+
+
+
-
-
-
@@ -80,8 +82,6 @@
-
-
{F67EB1EA-DCFA-4758-A2AA-4B570BA78036}
diff --git a/msvc/unicorn/arm-softmmu/arm-softmmu.vcxproj.filters b/msvc/unicorn/arm-softmmu/arm-softmmu.vcxproj.filters
index 9b7f7c80..3f0ead98 100644
--- a/msvc/unicorn/arm-softmmu/arm-softmmu.vcxproj.filters
+++ b/msvc/unicorn/arm-softmmu/arm-softmmu.vcxproj.filters
@@ -42,8 +42,8 @@
tcg
-
- tcg
+
+ accel\tcg
tcg
@@ -86,18 +86,19 @@
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
fpu
diff --git a/msvc/unicorn/armeb-softmmu/armeb-softmmu.vcxproj b/msvc/unicorn/armeb-softmmu/armeb-softmmu.vcxproj
index db8ea8b5..2576ffb7 100644
--- a/msvc/unicorn/armeb-softmmu/armeb-softmmu.vcxproj
+++ b/msvc/unicorn/armeb-softmmu/armeb-softmmu.vcxproj
@@ -31,11 +31,11 @@
+
-
@@ -44,14 +44,16 @@
+
+
-
-
+
+
+
+
+
-
-
-
@@ -80,8 +82,6 @@
-
-
{740F3007-7BF0-4C0C-8FA5-2587C794EF31}
diff --git a/msvc/unicorn/armeb-softmmu/armeb-softmmu.vcxproj.filters b/msvc/unicorn/armeb-softmmu/armeb-softmmu.vcxproj.filters
index b0ea8431..bd64e962 100644
--- a/msvc/unicorn/armeb-softmmu/armeb-softmmu.vcxproj.filters
+++ b/msvc/unicorn/armeb-softmmu/armeb-softmmu.vcxproj.filters
@@ -72,8 +72,8 @@
tcg
-
- tcg
+
+ accel\tcg
tcg
@@ -146,17 +146,18 @@
tcg\i386
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
\ No newline at end of file
diff --git a/msvc/unicorn/m68k-softmmu/m68k-softmmu.vcxproj b/msvc/unicorn/m68k-softmmu/m68k-softmmu.vcxproj
index ff0c4387..38329980 100644
--- a/msvc/unicorn/m68k-softmmu/m68k-softmmu.vcxproj
+++ b/msvc/unicorn/m68k-softmmu/m68k-softmmu.vcxproj
@@ -21,11 +21,11 @@
+
-
@@ -40,14 +40,16 @@
+
+
-
-
+
+
+
+
+
-
-
-
@@ -63,8 +65,6 @@
-
-
diff --git a/msvc/unicorn/m68k-softmmu/m68k-softmmu.vcxproj.filters b/msvc/unicorn/m68k-softmmu/m68k-softmmu.vcxproj.filters
index 669200fb..008e20ec 100644
--- a/msvc/unicorn/m68k-softmmu/m68k-softmmu.vcxproj.filters
+++ b/msvc/unicorn/m68k-softmmu/m68k-softmmu.vcxproj.filters
@@ -42,8 +42,8 @@
tcg
-
- tcg
+
+ accel\tcg
tcg
@@ -95,18 +95,19 @@
tcg\i386
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
hw\m68k
diff --git a/msvc/unicorn/mips-softmmu/mips-softmmu.vcxproj b/msvc/unicorn/mips-softmmu/mips-softmmu.vcxproj
index 6390de61..fe0d56e8 100644
--- a/msvc/unicorn/mips-softmmu/mips-softmmu.vcxproj
+++ b/msvc/unicorn/mips-softmmu/mips-softmmu.vcxproj
@@ -26,11 +26,11 @@
+
-
@@ -39,14 +39,16 @@
+
+
-
-
+
+
+
+
+
-
-
-
@@ -79,8 +81,6 @@
-
-
{63050112-E486-4396-B5E4-303C3BC12D39}
diff --git a/msvc/unicorn/mips-softmmu/mips-softmmu.vcxproj.filters b/msvc/unicorn/mips-softmmu/mips-softmmu.vcxproj.filters
index 9c44aade..0369ae2f 100644
--- a/msvc/unicorn/mips-softmmu/mips-softmmu.vcxproj.filters
+++ b/msvc/unicorn/mips-softmmu/mips-softmmu.vcxproj.filters
@@ -45,7 +45,7 @@
tcg
-
+
tcg
@@ -71,18 +71,19 @@
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
fpu
diff --git a/msvc/unicorn/mips64-softmmu/mips64-softmmu.vcxproj b/msvc/unicorn/mips64-softmmu/mips64-softmmu.vcxproj
index 6e4df14c..76005361 100644
--- a/msvc/unicorn/mips64-softmmu/mips64-softmmu.vcxproj
+++ b/msvc/unicorn/mips64-softmmu/mips64-softmmu.vcxproj
@@ -26,11 +26,11 @@
+
-
@@ -39,14 +39,16 @@
+
+
-
-
+
+
+
+
+
-
-
-
@@ -79,8 +81,6 @@
-
-
{4A9F9353-DB63-460A-BB1C-9CB519DFD414}
diff --git a/msvc/unicorn/mips64-softmmu/mips64-softmmu.vcxproj.filters b/msvc/unicorn/mips64-softmmu/mips64-softmmu.vcxproj.filters
index 04e554f2..0a2221ec 100644
--- a/msvc/unicorn/mips64-softmmu/mips64-softmmu.vcxproj.filters
+++ b/msvc/unicorn/mips64-softmmu/mips64-softmmu.vcxproj.filters
@@ -45,8 +45,8 @@
tcg
-
- tcg
+
+ accel\tcg
tcg\i386
@@ -71,17 +71,19 @@
-
+
+
+
+
+
+
+
+
-
-
-
-
-
fpu
diff --git a/msvc/unicorn/mips64el-softmmu/mips64el-softmmu.vcxproj b/msvc/unicorn/mips64el-softmmu/mips64el-softmmu.vcxproj
index df8ce7af..98f86fd2 100644
--- a/msvc/unicorn/mips64el-softmmu/mips64el-softmmu.vcxproj
+++ b/msvc/unicorn/mips64el-softmmu/mips64el-softmmu.vcxproj
@@ -39,14 +39,16 @@
+
+
+
+
+
+
+
-
-
-
-
-
@@ -79,8 +81,6 @@
-
-
{4478909E-6983-425C-9D9F-558CF258E61E}
diff --git a/msvc/unicorn/mips64el-softmmu/mips64el-softmmu.vcxproj.filters b/msvc/unicorn/mips64el-softmmu/mips64el-softmmu.vcxproj.filters
index 5d26aeb6..040699bd 100644
--- a/msvc/unicorn/mips64el-softmmu/mips64el-softmmu.vcxproj.filters
+++ b/msvc/unicorn/mips64el-softmmu/mips64el-softmmu.vcxproj.filters
@@ -45,8 +45,8 @@
tcg
-
- tcg
+
+ accel\tcg
tcg\i386
@@ -71,18 +71,19 @@
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
fpu
diff --git a/msvc/unicorn/mipsel-softmmu/mipsel-softmmu.vcxproj b/msvc/unicorn/mipsel-softmmu/mipsel-softmmu.vcxproj
index fd6c846e..2e8bc63f 100644
--- a/msvc/unicorn/mipsel-softmmu/mipsel-softmmu.vcxproj
+++ b/msvc/unicorn/mipsel-softmmu/mipsel-softmmu.vcxproj
@@ -26,11 +26,11 @@
+
-
@@ -39,14 +39,16 @@
+
+
+
+
+
+
+
-
-
-
-
-
@@ -79,8 +81,6 @@
-
-
{006A7908-ABF3-4D18-BC35-0A29E39B95F9}
diff --git a/msvc/unicorn/sparc-softmmu/sparc-softmmu.vcxproj b/msvc/unicorn/sparc-softmmu/sparc-softmmu.vcxproj
index 43e7f15c..8d46333f 100644
--- a/msvc/unicorn/sparc-softmmu/sparc-softmmu.vcxproj
+++ b/msvc/unicorn/sparc-softmmu/sparc-softmmu.vcxproj
@@ -19,13 +19,13 @@
+
-
@@ -39,14 +39,16 @@
+
+
+
+
+
+
+
-
-
-
-
-
@@ -73,8 +75,6 @@
-
-
{698C2D54-475C-446F-B879-F629BBEF75FE}
diff --git a/msvc/unicorn/sparc-softmmu/sparc-softmmu.vcxproj.filters b/msvc/unicorn/sparc-softmmu/sparc-softmmu.vcxproj.filters
index 3703f4a4..301b5169 100644
--- a/msvc/unicorn/sparc-softmmu/sparc-softmmu.vcxproj.filters
+++ b/msvc/unicorn/sparc-softmmu/sparc-softmmu.vcxproj.filters
@@ -42,8 +42,8 @@
tcg
-
- tcg
+
+ accel\tcg
tcg
@@ -92,18 +92,19 @@
tcg\i386
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
hw\sparc
diff --git a/msvc/unicorn/sparc64-softmmu/sparc64-softmmu.vcxproj b/msvc/unicorn/sparc64-softmmu/sparc64-softmmu.vcxproj
index 25b8ed3d..02703646 100644
--- a/msvc/unicorn/sparc64-softmmu/sparc64-softmmu.vcxproj
+++ b/msvc/unicorn/sparc64-softmmu/sparc64-softmmu.vcxproj
@@ -25,7 +25,7 @@
-
+
@@ -39,14 +39,16 @@
+
+
+
+
+
+
+
-
-
-
-
-
@@ -74,8 +76,6 @@
-
-
{8804AD29-E398-480C-AC0F-98EC1B7A51CB}
diff --git a/msvc/unicorn/sparc64-softmmu/sparc64-softmmu.vcxproj.filters b/msvc/unicorn/sparc64-softmmu/sparc64-softmmu.vcxproj.filters
index a6cb8611..2cf9e9c2 100644
--- a/msvc/unicorn/sparc64-softmmu/sparc64-softmmu.vcxproj.filters
+++ b/msvc/unicorn/sparc64-softmmu/sparc64-softmmu.vcxproj.filters
@@ -42,8 +42,8 @@
tcg
-
- tcg
+
+ accel\tcg
tcg
@@ -125,18 +125,19 @@
tcg\i386
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
hw\sparc64
diff --git a/msvc/unicorn/x86_64-softmmu/x86_64-softmmu.vcxproj b/msvc/unicorn/x86_64-softmmu/x86_64-softmmu.vcxproj
index 9a7a6ab2..00cdb43f 100644
--- a/msvc/unicorn/x86_64-softmmu/x86_64-softmmu.vcxproj
+++ b/msvc/unicorn/x86_64-softmmu/x86_64-softmmu.vcxproj
@@ -35,7 +35,7 @@
-
+
@@ -44,14 +44,16 @@
+
+
+
+
+
+
+
-
-
-
-
-
@@ -87,8 +89,6 @@
-
-
{17077E86-AE7C-41AF-86ED-2BAC03B019BC}
diff --git a/msvc/unicorn/x86_64-softmmu/x86_64-softmmu.vcxproj.filters b/msvc/unicorn/x86_64-softmmu/x86_64-softmmu.vcxproj.filters
index f50eb0d8..6fe4de5a 100644
--- a/msvc/unicorn/x86_64-softmmu/x86_64-softmmu.vcxproj.filters
+++ b/msvc/unicorn/x86_64-softmmu/x86_64-softmmu.vcxproj.filters
@@ -42,8 +42,8 @@
tcg
-
- tcg
+
+ accel\tcg
fpu
@@ -89,18 +89,19 @@
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
fpu
diff --git a/qemu/Makefile.target b/qemu/Makefile.target
index 80139cee..5990d5d7 100644
--- a/qemu/Makefile.target
+++ b/qemu/Makefile.target
@@ -40,14 +40,11 @@ all: $(PROGS)
#########################################################
# cpu emulator library
-obj-y = exec.o translate-all.o cpu-exec.o
-obj-y += translate-common.o
-obj-y += cpu-exec-common.o
+obj-y = exec.o
obj-$(CONFIG_TCG) += tcg/tcg.o tcg/tcg-op.o tcg/tcg-op-vec.o tcg/tcg-op-gvec.o
obj-$(CONFIG_TCG) += tcg/tcg-common.o tcg/optimize.o
obj-y += fpu/softfloat.o
obj-y += target/$(TARGET_BASE_ARCH)/
-obj-y += tcg-runtime.o tcg-runtime-gvec.o
obj-y += accel/
#########################################################
@@ -55,7 +52,7 @@ obj-y += accel/
ifdef CONFIG_SOFTMMU
obj-y += cpus.o ioport.o
obj-y += hw/
-obj-y += memory.o cputlb.o
+obj-y += memory.o
obj-y += memory_mapping.o
LIBS+=$(libs_softmmu)
diff --git a/qemu/accel/tcg/Makefile.objs b/qemu/accel/tcg/Makefile.objs
index 0a02117e..072f900f 100644
--- a/qemu/accel/tcg/Makefile.objs
+++ b/qemu/accel/tcg/Makefile.objs
@@ -1 +1,4 @@
+obj-$(CONFIG_SOFTMMU) += cputlb.o
+obj-y += tcg-runtime.o tcg-runtime-gvec.o
+obj-y += cpu-exec.o cpu-exec-common.o translate-all.o translate-common.o
obj-y += translator.o
diff --git a/qemu/cpu-exec-common.c b/qemu/accel/tcg/cpu-exec-common.c
similarity index 100%
rename from qemu/cpu-exec-common.c
rename to qemu/accel/tcg/cpu-exec-common.c
diff --git a/qemu/cpu-exec.c b/qemu/accel/tcg/cpu-exec.c
similarity index 100%
rename from qemu/cpu-exec.c
rename to qemu/accel/tcg/cpu-exec.c
diff --git a/qemu/cputlb.c b/qemu/accel/tcg/cputlb.c
similarity index 100%
rename from qemu/cputlb.c
rename to qemu/accel/tcg/cputlb.c
diff --git a/qemu/tcg-runtime-gvec.c b/qemu/accel/tcg/tcg-runtime-gvec.c
similarity index 100%
rename from qemu/tcg-runtime-gvec.c
rename to qemu/accel/tcg/tcg-runtime-gvec.c
diff --git a/qemu/tcg-runtime.c b/qemu/accel/tcg/tcg-runtime.c
similarity index 100%
rename from qemu/tcg-runtime.c
rename to qemu/accel/tcg/tcg-runtime.c
diff --git a/qemu/tcg/tcg-runtime.h b/qemu/accel/tcg/tcg-runtime.h
similarity index 100%
rename from qemu/tcg/tcg-runtime.h
rename to qemu/accel/tcg/tcg-runtime.h
diff --git a/qemu/translate-all.c b/qemu/accel/tcg/translate-all.c
similarity index 100%
rename from qemu/translate-all.c
rename to qemu/accel/tcg/translate-all.c
diff --git a/qemu/translate-all.h b/qemu/accel/tcg/translate-all.h
similarity index 100%
rename from qemu/translate-all.h
rename to qemu/accel/tcg/translate-all.h
diff --git a/qemu/translate-common.c b/qemu/accel/tcg/translate-common.c
similarity index 100%
rename from qemu/translate-common.c
rename to qemu/accel/tcg/translate-common.c
diff --git a/qemu/configure b/qemu/configure
index 4b9c4234..ace25010 100755
--- a/qemu/configure
+++ b/qemu/configure
@@ -244,7 +244,7 @@ QEMU_CFLAGS="-fno-strict-aliasing -fno-common -fwrapv $QEMU_CFLAGS"
QEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
-QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/include"
+QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/accel/tcg -I\$(SRC_PATH)/include"
if test "$debug_info" = "yes"; then
CFLAGS="-g $CFLAGS"
LDFLAGS="-g $LDFLAGS"