diff --git a/msvc/unicorn.sln b/msvc/unicorn.sln index 778f73ec..3c533e77 100644 --- a/msvc/unicorn.sln +++ b/msvc/unicorn.sln @@ -130,6 +130,7 @@ Global {F67EB1EA-DCFA-4758-A2AA-4B570BA78036}.Release|Win32.ActiveCfg = Release|Win32 {F67EB1EA-DCFA-4758-A2AA-4B570BA78036}.Release|x64.ActiveCfg = Release|x64 {2C5AD347-6E34-463B-8289-00578E43B255}.Debug|Win32.ActiveCfg = Debug|Win32 + {2C5AD347-6E34-463B-8289-00578E43B255}.Debug|Win32.Build.0 = Debug|Win32 {2C5AD347-6E34-463B-8289-00578E43B255}.Debug|x64.ActiveCfg = Debug|x64 {2C5AD347-6E34-463B-8289-00578E43B255}.Release|Win32.ActiveCfg = Release|Win32 {2C5AD347-6E34-463B-8289-00578E43B255}.Release|x64.ActiveCfg = Release|x64 @@ -154,10 +155,12 @@ Global {006A7908-ABF3-4D18-BC35-0A29E39B95F9}.Release|Win32.ActiveCfg = Release|Win32 {006A7908-ABF3-4D18-BC35-0A29E39B95F9}.Release|x64.ActiveCfg = Release|x64 {698C2D54-475C-446F-B879-F629BBEF75FE}.Debug|Win32.ActiveCfg = Debug|Win32 + {698C2D54-475C-446F-B879-F629BBEF75FE}.Debug|Win32.Build.0 = Debug|Win32 {698C2D54-475C-446F-B879-F629BBEF75FE}.Debug|x64.ActiveCfg = Debug|x64 {698C2D54-475C-446F-B879-F629BBEF75FE}.Release|Win32.ActiveCfg = Release|Win32 {698C2D54-475C-446F-B879-F629BBEF75FE}.Release|x64.ActiveCfg = Release|x64 {8804AD29-E398-480C-AC0F-98EC1B7A51CB}.Debug|Win32.ActiveCfg = Debug|Win32 + {8804AD29-E398-480C-AC0F-98EC1B7A51CB}.Debug|Win32.Build.0 = Debug|Win32 {8804AD29-E398-480C-AC0F-98EC1B7A51CB}.Debug|x64.ActiveCfg = Debug|x64 {8804AD29-E398-480C-AC0F-98EC1B7A51CB}.Release|Win32.ActiveCfg = Release|Win32 {8804AD29-E398-480C-AC0F-98EC1B7A51CB}.Release|x64.ActiveCfg = Release|x64 diff --git a/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj b/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj index bb77e79a..2d13308b 100644 --- a/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj +++ b/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj @@ -18,6 +18,9 @@ x64 + + + {2A7F483F-CD19-4F84-BBDA-B6A1865E2773} Win32Proj diff --git a/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj.filters b/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj.filters index 9cd85105..fe67d289 100644 --- a/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj.filters +++ b/msvc/unicorn/aarch64-softmmu/aarch64-softmmu.vcxproj.filters @@ -1,2 +1,6 @@  - \ No newline at end of file + + + + + \ 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 789572dc..8c6ddbfa 100644 --- a/msvc/unicorn/arm-softmmu/arm-softmmu.vcxproj +++ b/msvc/unicorn/arm-softmmu/arm-softmmu.vcxproj @@ -18,6 +18,9 @@ x64 + + + {F67EB1EA-DCFA-4758-A2AA-4B570BA78036} Win32Proj diff --git a/msvc/unicorn/arm-softmmu/arm-softmmu.vcxproj.filters b/msvc/unicorn/arm-softmmu/arm-softmmu.vcxproj.filters index 9cd85105..fe67d289 100644 --- a/msvc/unicorn/arm-softmmu/arm-softmmu.vcxproj.filters +++ b/msvc/unicorn/arm-softmmu/arm-softmmu.vcxproj.filters @@ -1,2 +1,6 @@  - \ No newline at end of file + + + + + \ 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 a791ab27..48c746f1 100644 --- a/msvc/unicorn/m68k-softmmu/m68k-softmmu.vcxproj +++ b/msvc/unicorn/m68k-softmmu/m68k-softmmu.vcxproj @@ -18,6 +18,50 @@ x64 + + + + + + + + + + + true + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {2C5AD347-6E34-463B-8289-00578E43B255} Win32Proj diff --git a/msvc/unicorn/m68k-softmmu/m68k-softmmu.vcxproj.filters b/msvc/unicorn/m68k-softmmu/m68k-softmmu.vcxproj.filters index 9cd85105..c07af74e 100644 --- a/msvc/unicorn/m68k-softmmu/m68k-softmmu.vcxproj.filters +++ b/msvc/unicorn/m68k-softmmu/m68k-softmmu.vcxproj.filters @@ -1,2 +1,110 @@  - \ No newline at end of file + + + + {45b613c4-9fdb-482c-b94f-0138ea9907c3} + + + {14f99bfc-becf-403c-9100-1612ab30a848} + + + {63d2e327-f759-4757-a44b-90513ce433f7} + + + {574ebec7-47db-49de-8f59-3365337e42a7} + + + {484590c4-abd5-4db4-8b06-b34087856c27} + + + {476366de-d432-4ce4-8e04-64aa34326aa0} + + + + + fpu + + + tcg + + + tcg + + + tcg\i386 + + + + + + + + + + + hw\m68k + + + target-m68k + + + target-m68k + + + target-m68k + + + target-m68k + + + target-m68k + + + + + fpu + + + fpu + + + tcg + + + tcg + + + tcg + + + tcg + + + tcg + + + tcg + + + tcg\i386 + + + + + target-m68k + + + target-m68k + + + target-m68k + + + target-m68k + + + target-m68k + + + + \ No newline at end of file diff --git a/msvc/unicorn/mips-softmmu/mips-softmmu.vcxproj.filters b/msvc/unicorn/mips-softmmu/mips-softmmu.vcxproj.filters index 4fe4cf12..e0410ec1 100644 --- a/msvc/unicorn/mips-softmmu/mips-softmmu.vcxproj.filters +++ b/msvc/unicorn/mips-softmmu/mips-softmmu.vcxproj.filters @@ -81,7 +81,6 @@ - fpu @@ -124,5 +123,6 @@ target-mips + \ No newline at end of file diff --git a/msvc/unicorn/mips64-softmmu/mips64-softmmu.vcxproj.filters b/msvc/unicorn/mips64-softmmu/mips64-softmmu.vcxproj.filters index 52799b95..cf105ff7 100644 --- a/msvc/unicorn/mips64-softmmu/mips64-softmmu.vcxproj.filters +++ b/msvc/unicorn/mips64-softmmu/mips64-softmmu.vcxproj.filters @@ -3,7 +3,6 @@ - fpu @@ -46,6 +45,7 @@ target-mips + diff --git a/msvc/unicorn/mips64el-softmmu/mips64el-softmmu.vcxproj.filters b/msvc/unicorn/mips64el-softmmu/mips64el-softmmu.vcxproj.filters index 3cfe41ac..c2a1926e 100644 --- a/msvc/unicorn/mips64el-softmmu/mips64el-softmmu.vcxproj.filters +++ b/msvc/unicorn/mips64el-softmmu/mips64el-softmmu.vcxproj.filters @@ -3,7 +3,6 @@ - fpu @@ -46,6 +45,7 @@ target-mips + diff --git a/msvc/unicorn/mipsel-softmmu/mipsel-softmmu.vcxproj.filters b/msvc/unicorn/mipsel-softmmu/mipsel-softmmu.vcxproj.filters index f9942f55..af4a067e 100644 --- a/msvc/unicorn/mipsel-softmmu/mipsel-softmmu.vcxproj.filters +++ b/msvc/unicorn/mipsel-softmmu/mipsel-softmmu.vcxproj.filters @@ -3,7 +3,6 @@ - fpu @@ -46,6 +45,7 @@ target-mips + diff --git a/msvc/unicorn/sparc-softmmu/sparc-softmmu.vcxproj b/msvc/unicorn/sparc-softmmu/sparc-softmmu.vcxproj index 2e8dbc0b..97005ae0 100644 --- a/msvc/unicorn/sparc-softmmu/sparc-softmmu.vcxproj +++ b/msvc/unicorn/sparc-softmmu/sparc-softmmu.vcxproj @@ -60,7 +60,11 @@ - + + + + + {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 de4c9bfc..585584ce 100644 --- a/msvc/unicorn/sparc-softmmu/sparc-softmmu.vcxproj.filters +++ b/msvc/unicorn/sparc-softmmu/sparc-softmmu.vcxproj.filters @@ -104,7 +104,19 @@ tcg\i386 - + + target-sparc + + + target-sparc + + + target-sparc + + + target-sparc + + \ No newline at end of file diff --git a/msvc/unicorn/sparc64-softmmu/sparc64-softmmu.vcxproj b/msvc/unicorn/sparc64-softmmu/sparc64-softmmu.vcxproj index 8bc2c504..e6fa323e 100644 --- a/msvc/unicorn/sparc64-softmmu/sparc64-softmmu.vcxproj +++ b/msvc/unicorn/sparc64-softmmu/sparc64-softmmu.vcxproj @@ -61,7 +61,11 @@ - + + + + + {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 0e5b0c35..67c5aa92 100644 --- a/msvc/unicorn/sparc64-softmmu/sparc64-softmmu.vcxproj.filters +++ b/msvc/unicorn/sparc64-softmmu/sparc64-softmmu.vcxproj.filters @@ -106,8 +106,20 @@ tcg\i386 - + + target-sparc + + + target-sparc + + + target-sparc + + + target-sparc + + \ No newline at end of file diff --git a/msvc/unicorn/unicorn/unicorn.vcxproj b/msvc/unicorn/unicorn/unicorn.vcxproj index cb955f45..d949c10b 100644 --- a/msvc/unicorn/unicorn/unicorn.vcxproj +++ b/msvc/unicorn/unicorn/unicorn.vcxproj @@ -166,8 +166,8 @@ - - + + {B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96} @@ -237,7 +237,7 @@ Level3 Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__i386__;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_SPARC;UNICORN_HAS_X86 + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__i386__;UNICORN_HAS_M68K;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_SPARC;UNICORN_HAS_X86 MultiThreadedDebug .;..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg /wd4018 /wd4244 /wd4267 %(AdditionalOptions) @@ -249,7 +249,7 @@ $(SolutionDir)$(Platform)\$(Configuration)\ - ws2_32.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;sparc-softmmu.lib;sparc64-softmmu.lib;x86_64-softmmu.lib + ws2_32.lib;m68k-softmmu.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;sparc-softmmu.lib;sparc64-softmmu.lib;x86_64-softmmu.lib ..\prebuild_script.bat @@ -261,7 +261,7 @@ Level3 Disabled - WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__x86_64__;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_SPARC;UNICORN_HAS_X86 + WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__x86_64__;UNICORN_HAS_M68K;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_SPARC;UNICORN_HAS_X86 MultiThreadedDebug .;..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg /wd4018 /wd4244 /wd4267 %(AdditionalOptions) @@ -273,7 +273,7 @@ $(SolutionDir)$(Platform)\$(Configuration)\ - ws2_32.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;sparc-softmmu.lib;sparc64-softmmu.lib;x86_64-softmmu.lib + ws2_32.lib;m68k-softmmu.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;sparc-softmmu.lib;sparc64-softmmu.lib;x86_64-softmmu.lib ..\prebuild_script.bat @@ -287,7 +287,7 @@ MaxSpeed true true - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__i386__;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_SPARC;UNICORN_HAS_X86 + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__i386__;UNICORN_HAS_M68K;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_SPARC;UNICORN_HAS_X86 MultiThreaded .;..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg /wd4018 /wd4244 /wd4267 %(AdditionalOptions) @@ -301,7 +301,7 @@ $(SolutionDir)$(Platform)\$(Configuration)\ - ws2_32.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;sparc-softmmu.lib;sparc64-softmmu.lib;x86_64-softmmu.lib + ws2_32.lib;m68k-softmmu.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;sparc-softmmu.lib;sparc64-softmmu.lib;x86_64-softmmu.lib ..\prebuild_script.bat @@ -315,7 +315,7 @@ MaxSpeed true true - WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__x86_64__;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_SPARC;UNICORN_HAS_X86 + WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__x86_64__;UNICORN_HAS_M68K;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_SPARC;UNICORN_HAS_X86 MultiThreaded .;..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg /wd4018 /wd4244 /wd4267 %(AdditionalOptions) @@ -329,7 +329,7 @@ $(SolutionDir)$(Platform)\$(Configuration)\ - ws2_32.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;sparc-softmmu.lib;sparc64-softmmu.lib;x86_64-softmmu.lib + ws2_32.lib;m68k-softmmu.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;sparc-softmmu.lib;sparc64-softmmu.lib;x86_64-softmmu.lib ..\prebuild_script.bat diff --git a/msvc/unicorn/unicorn/unicorn.vcxproj.filters b/msvc/unicorn/unicorn/unicorn.vcxproj.filters index f03098bd..20b07da6 100644 --- a/msvc/unicorn/unicorn/unicorn.vcxproj.filters +++ b/msvc/unicorn/unicorn/unicorn.vcxproj.filters @@ -488,14 +488,14 @@ - - qemu - - - qemu - qemu + + qemu + + + qemu + \ No newline at end of file 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 8531d5c2..99c047de 100644 --- a/msvc/unicorn/x86_64-softmmu/x86_64-softmmu.vcxproj.filters +++ b/msvc/unicorn/x86_64-softmmu/x86_64-softmmu.vcxproj.filters @@ -131,7 +131,6 @@ tcg\i386 - target-i386 @@ -160,5 +159,6 @@ target-i386 + \ No newline at end of file diff --git a/qemu/hw/m68k/dummy_m68k.c b/qemu/hw/m68k/dummy_m68k.c index 5fd6ecb0..d1558579 100644 --- a/qemu/hw/m68k/dummy_m68k.c +++ b/qemu/hw/m68k/dummy_m68k.c @@ -39,12 +39,11 @@ static int dummy_m68k_init(struct uc_struct *uc, MachineState *machine) void dummy_m68k_machine_init(struct uc_struct *uc) { - static QEMUMachine dummy_m68k_machine = { - .name = "dummy", - .init = dummy_m68k_init, - .is_default = 1, - .arch = UC_ARCH_M68K, - }; + static QEMUMachine dummy_m68k_machine = { 0 }; + dummy_m68k_machine.name = "dummy", + dummy_m68k_machine.init = dummy_m68k_init, + dummy_m68k_machine.is_default = 1, + dummy_m68k_machine.arch = UC_ARCH_M68K, //printf(">>> dummy_m68k_machine_init\n"); qemu_register_machine(uc, &dummy_m68k_machine, TYPE_MACHINE, NULL); diff --git a/qemu/target-m68k/cpu.c b/qemu/target-m68k/cpu.c index 19e00067..f000648f 100644 --- a/qemu/target-m68k/cpu.c +++ b/qemu/target-m68k/cpu.c @@ -140,10 +140,10 @@ typedef struct M68kCPUInfo { } M68kCPUInfo; static const M68kCPUInfo m68k_cpus[] = { - { .name = "m5206", .instance_init = m5206_cpu_initfn }, - { .name = "m5208", .instance_init = m5208_cpu_initfn }, - { .name = "cfv4e", .instance_init = cfv4e_cpu_initfn }, - { .name = "any", .instance_init = any_cpu_initfn }, + { "m5206", m5206_cpu_initfn }, + { "m5208", m5208_cpu_initfn }, + { "cfv4e", cfv4e_cpu_initfn }, + { "any", any_cpu_initfn }, }; static int m68k_cpu_realizefn(struct uc_struct *uc, DeviceState *dev, Error **errp) @@ -201,10 +201,9 @@ static void m68k_cpu_class_init(struct uc_struct *uc, ObjectClass *c, void *data static void register_cpu_type(void *opaque, const M68kCPUInfo *info) { - TypeInfo type_info = { - .parent = TYPE_M68K_CPU, - .instance_init = info->instance_init, - }; + TypeInfo type_info = {0}; + type_info.parent = TYPE_M68K_CPU, + type_info.instance_init = info->instance_init, type_info.name = g_strdup_printf("%s-" TYPE_M68K_CPU, info->name); type_register(opaque, &type_info); @@ -213,15 +212,25 @@ static void register_cpu_type(void *opaque, const M68kCPUInfo *info) void m68k_cpu_register_types(void *opaque) { - TypeInfo m68k_cpu_type_info = { - .name = TYPE_M68K_CPU, - .parent = TYPE_CPU, - .instance_userdata = opaque, - .instance_size = sizeof(M68kCPU), - .instance_init = m68k_cpu_initfn, - .abstract = true, - .class_size = sizeof(M68kCPUClass), - .class_init = m68k_cpu_class_init, + const TypeInfo m68k_cpu_type_info = { + TYPE_M68K_CPU, + TYPE_CPU, + + sizeof(M68kCPUClass), + sizeof(M68kCPU), + opaque, + + m68k_cpu_initfn, + NULL, + NULL, + + NULL, + + m68k_cpu_class_init, + NULL, + NULL, + + true, }; int i; diff --git a/qemu/target-m68k/translate.c b/qemu/target-m68k/translate.c index 7dab921f..2ef8819b 100644 --- a/qemu/target-m68k/translate.c +++ b/qemu/target-m68k/translate.c @@ -60,7 +60,7 @@ void m68k_tcg_init(struct uc_struct *uc) // tcg_ctx->QREG_FP_RESULT = tcg_global_mem_new_i64(tcg_ctx, TCG_AREG0, offsetof(CPUM68KState, fp_result), "FP_RESULT"); tcg_ctx->cpu_halted = tcg_global_mem_new_i32(tcg_ctx, TCG_AREG0, - -offsetof(M68kCPU, env) + + 0-offsetof(M68kCPU, env) + offsetof(CPUState, halted), "HALTED"); tcg_ctx->cpu_env = tcg_global_reg_new_ptr(tcg_ctx, TCG_AREG0, "env"); diff --git a/qemu/target-m68k/unicorn.c b/qemu/target-m68k/unicorn.c index 0eb30b84..f63d742a 100644 --- a/qemu/target-m68k/unicorn.c +++ b/qemu/target-m68k/unicorn.c @@ -20,8 +20,11 @@ static void m68k_set_pc(struct uc_struct *uc, uint64_t address) void m68k_release(void* ctx); void m68k_release(void* ctx) { + TCGContext *tcg_ctx; + int i; + release_common(ctx); - TCGContext *tcg_ctx = (TCGContext *) ctx; + tcg_ctx = (TCGContext *) ctx; g_free(tcg_ctx->tb_ctx.tbs); g_free(tcg_ctx->QREG_PC); g_free(tcg_ctx->QREG_SR); @@ -33,7 +36,6 @@ void m68k_release(void* ctx) g_free(tcg_ctx->QREG_DIV2); g_free(tcg_ctx->QREG_MACSR); g_free(tcg_ctx->QREG_MAC_MASK); - int i; for (i = 0; i < 8; i++) { g_free(tcg_ctx->cpu_dregs[i]); g_free(tcg_ctx->cpu_aregs[i]);