Move the Cyrix 6x86 out of the Dev branch.
This commit is contained in:
@@ -163,7 +163,6 @@ endif()
|
|||||||
cmake_dependent_option(AMD_K5 "AMD K5" ON "DEV_BRANCH" OFF)
|
cmake_dependent_option(AMD_K5 "AMD K5" ON "DEV_BRANCH" OFF)
|
||||||
cmake_dependent_option(AN430TX "Intel AN430TX" ON "DEV_BRANCH" OFF)
|
cmake_dependent_option(AN430TX "Intel AN430TX" ON "DEV_BRANCH" OFF)
|
||||||
cmake_dependent_option(CDROM_MITSUMI "Mitsumi CDROM" ON "DEV_BRANCH" OFF)
|
cmake_dependent_option(CDROM_MITSUMI "Mitsumi CDROM" ON "DEV_BRANCH" OFF)
|
||||||
cmake_dependent_option(CYRIX_6X86 "Cyrix 6x86" ON "DEV_BRANCH" OFF)
|
|
||||||
cmake_dependent_option(G100 "Matrox Productiva G100" ON "DEV_BRANCH" OFF)
|
cmake_dependent_option(G100 "Matrox Productiva G100" ON "DEV_BRANCH" OFF)
|
||||||
cmake_dependent_option(GUSMAX "Gravis UltraSound MAX" ON "DEV_BRANCH" OFF)
|
cmake_dependent_option(GUSMAX "Gravis UltraSound MAX" ON "DEV_BRANCH" OFF)
|
||||||
cmake_dependent_option(ISAMEM_RAMPAGE "AST Rampage" ON "DEV_BRANCH" OFF)
|
cmake_dependent_option(ISAMEM_RAMPAGE "AST Rampage" ON "DEV_BRANCH" OFF)
|
||||||
|
|||||||
@@ -1385,7 +1385,6 @@ const OpFn OP_TABLE(pentium_0f)[1024] = {
|
|||||||
// clang-format on
|
// clang-format on
|
||||||
};
|
};
|
||||||
|
|
||||||
# ifdef USE_CYRIX_6X86
|
|
||||||
const OpFn OP_TABLE(c6x86_0f)[1024] = {
|
const OpFn OP_TABLE(c6x86_0f)[1024] = {
|
||||||
// clang-format off
|
// clang-format off
|
||||||
/*16-bit data, 16-bit addr*/
|
/*16-bit data, 16-bit addr*/
|
||||||
@@ -1569,7 +1568,6 @@ const OpFn OP_TABLE(c6x86l_0f)[1024] = {
|
|||||||
/*f0*/ ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL,
|
/*f0*/ ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL, ILLEGAL,
|
||||||
// clang-format on
|
// clang-format on
|
||||||
};
|
};
|
||||||
# endif /* USE_CYRIX_6X86 */
|
|
||||||
|
|
||||||
const OpFn OP_TABLE(pentiummmx_0f)[1024] = {
|
const OpFn OP_TABLE(pentiummmx_0f)[1024] = {
|
||||||
// clang-format off
|
// clang-format off
|
||||||
@@ -1847,7 +1845,6 @@ const OpFn OP_TABLE(k62_0f)[1024] = {
|
|||||||
// clang-format on
|
// clang-format on
|
||||||
};
|
};
|
||||||
|
|
||||||
# ifdef USE_CYRIX_6X86
|
|
||||||
const OpFn OP_TABLE(c6x86mx_0f)[1024] = {
|
const OpFn OP_TABLE(c6x86mx_0f)[1024] = {
|
||||||
// clang-format off
|
// clang-format off
|
||||||
/*16-bit data, 16-bit addr*/
|
/*16-bit data, 16-bit addr*/
|
||||||
@@ -1939,7 +1936,6 @@ const OpFn OP_TABLE(c6x86mx_0f)[1024] = {
|
|||||||
/*f0*/ ILLEGAL, opPSLLW_a32, opPSLLD_a32, opPSLLQ_a32, ILLEGAL, opPMADDWD_a32, ILLEGAL, ILLEGAL, opPSUBB_a32, opPSUBW_a32, opPSUBD_a32, ILLEGAL, opPADDB_a32, opPADDW_a32, opPADDD_a32, ILLEGAL,
|
/*f0*/ ILLEGAL, opPSLLW_a32, opPSLLD_a32, opPSLLQ_a32, ILLEGAL, opPMADDWD_a32, ILLEGAL, ILLEGAL, opPSUBB_a32, opPSUBW_a32, opPSUBD_a32, ILLEGAL, opPADDB_a32, opPADDW_a32, opPADDD_a32, ILLEGAL,
|
||||||
// clang-format on
|
// clang-format on
|
||||||
};
|
};
|
||||||
# endif /* USE_CYRIX_6X86 */
|
|
||||||
|
|
||||||
const OpFn OP_TABLE(pentiumpro_0f)[1024] = {
|
const OpFn OP_TABLE(pentiumpro_0f)[1024] = {
|
||||||
// clang-format off
|
// clang-format off
|
||||||
|
|||||||
@@ -42,20 +42,12 @@ endif()
|
|||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CYRIX_6X86)
|
|
||||||
target_compile_definitions(cpu PRIVATE USE_CYRIX_6X86)
|
|
||||||
|
|
||||||
if(DYNAREC)
|
|
||||||
add_library(ct686 OBJECT codegen_timing_686.c)
|
|
||||||
target_link_libraries(86Box ct686)
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(DYNAREC)
|
if(DYNAREC)
|
||||||
target_sources(cpu PRIVATE 386_dynarec_ops.c)
|
target_sources(cpu PRIVATE 386_dynarec_ops.c)
|
||||||
|
|
||||||
add_library(cgt OBJECT
|
add_library(cgt OBJECT
|
||||||
codegen_timing_486.c
|
codegen_timing_486.c
|
||||||
|
codegen_timing_686.c
|
||||||
codegen_timing_common.c
|
codegen_timing_common.c
|
||||||
codegen_timing_k6.c
|
codegen_timing_k6.c
|
||||||
codegen_timing_pentium.c
|
codegen_timing_pentium.c
|
||||||
|
|||||||
@@ -1420,7 +1420,6 @@ cpu_set(void)
|
|||||||
#endif /* USE_DYNAREC */
|
#endif /* USE_DYNAREC */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef USE_CYRIX_6X86
|
|
||||||
case CPU_Cx6x86:
|
case CPU_Cx6x86:
|
||||||
case CPU_Cx6x86L:
|
case CPU_Cx6x86L:
|
||||||
case CPU_CxGX1:
|
case CPU_CxGX1:
|
||||||
@@ -1541,7 +1540,6 @@ cpu_set(void)
|
|||||||
else if (CPU_Cx6x86)
|
else if (CPU_Cx6x86)
|
||||||
CPUID = 0; /* Disabled on powerup by default */
|
CPUID = 0; /* Disabled on powerup by default */
|
||||||
break;
|
break;
|
||||||
#endif /* USE_CYRIX_6X86 */
|
|
||||||
|
|
||||||
#ifdef USE_AMD_K5
|
#ifdef USE_AMD_K5
|
||||||
case CPU_K5:
|
case CPU_K5:
|
||||||
@@ -2386,7 +2384,6 @@ cpu_CPUID(void)
|
|||||||
EAX = EBX = ECX = EDX = 0;
|
EAX = EBX = ECX = EDX = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef USE_CYRIX_6X86
|
|
||||||
case CPU_Cx6x86:
|
case CPU_Cx6x86:
|
||||||
if (!EAX) {
|
if (!EAX) {
|
||||||
EAX = 0x00000001;
|
EAX = 0x00000001;
|
||||||
@@ -2447,7 +2444,6 @@ cpu_CPUID(void)
|
|||||||
} else
|
} else
|
||||||
EAX = EBX = ECX = EDX = 0;
|
EAX = EBX = ECX = EDX = 0;
|
||||||
break;
|
break;
|
||||||
#endif /* USE_CYRIX_6X86 */
|
|
||||||
|
|
||||||
case CPU_PENTIUMPRO:
|
case CPU_PENTIUMPRO:
|
||||||
if (!EAX) {
|
if (!EAX) {
|
||||||
@@ -3124,7 +3120,6 @@ pentium_invalid_rdmsr:
|
|||||||
cpu_log("RDMSR: ECX = %08X, val = %08X%08X\n", ECX, EDX, EAX);
|
cpu_log("RDMSR: ECX = %08X, val = %08X%08X\n", ECX, EDX, EAX);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef USE_CYRIX_6X86
|
|
||||||
case CPU_Cx6x86:
|
case CPU_Cx6x86:
|
||||||
case CPU_Cx6x86L:
|
case CPU_Cx6x86L:
|
||||||
case CPU_CxGX1:
|
case CPU_CxGX1:
|
||||||
@@ -3164,7 +3159,6 @@ pentium_invalid_rdmsr:
|
|||||||
}
|
}
|
||||||
cpu_log("RDMSR: ECX = %08X, val = %08X%08X\n", ECX, EDX, EAX);
|
cpu_log("RDMSR: ECX = %08X, val = %08X%08X\n", ECX, EDX, EAX);
|
||||||
break;
|
break;
|
||||||
#endif /* USE_CYRIX_6X86 */
|
|
||||||
|
|
||||||
case CPU_PENTIUMPRO:
|
case CPU_PENTIUMPRO:
|
||||||
case CPU_PENTIUM2:
|
case CPU_PENTIUM2:
|
||||||
@@ -3945,7 +3939,6 @@ pentium_invalid_wrmsr:
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef USE_CYRIX_6X86
|
|
||||||
case CPU_Cx6x86:
|
case CPU_Cx6x86:
|
||||||
case CPU_Cx6x86L:
|
case CPU_Cx6x86L:
|
||||||
case CPU_CxGX1:
|
case CPU_CxGX1:
|
||||||
@@ -3979,7 +3972,6 @@ pentium_invalid_wrmsr:
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif /* USE_CYRIX_6X86 */
|
|
||||||
|
|
||||||
case CPU_PENTIUMPRO:
|
case CPU_PENTIUMPRO:
|
||||||
case CPU_PENTIUM2:
|
case CPU_PENTIUM2:
|
||||||
@@ -4283,14 +4275,12 @@ cpu_write(uint16_t addr, uint8_t val, UNUSED(void *priv))
|
|||||||
case 0xe8: /* CCR4 */
|
case 0xe8: /* CCR4 */
|
||||||
if ((ccr3 & 0xf0) == 0x10) {
|
if ((ccr3 & 0xf0) == 0x10) {
|
||||||
ccr4 = val;
|
ccr4 = val;
|
||||||
#ifdef USE_CYRIX_6X86
|
|
||||||
if (cpu_s->cpu_type >= CPU_Cx6x86) {
|
if (cpu_s->cpu_type >= CPU_Cx6x86) {
|
||||||
if (val & 0x80)
|
if (val & 0x80)
|
||||||
CPUID = cpu_s->cpuid_model;
|
CPUID = cpu_s->cpuid_model;
|
||||||
else
|
else
|
||||||
CPUID = 0;
|
CPUID = 0;
|
||||||
}
|
}
|
||||||
#endif /* USE_CYRIX_6X86 */
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 0xe9: /* CCR5 */
|
case 0xe9: /* CCR5 */
|
||||||
|
|||||||
@@ -6095,7 +6095,6 @@ const cpu_family_t cpu_families[] = {
|
|||||||
{ .name = "", 0 }
|
{ .name = "", 0 }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
#ifdef USE_CYRIX_6X86
|
|
||||||
{
|
{
|
||||||
.package = CPU_PKG_SOCKET5_7,
|
.package = CPU_PKG_SOCKET5_7,
|
||||||
.manufacturer = "Cyrix",
|
.manufacturer = "Cyrix",
|
||||||
@@ -6455,7 +6454,6 @@ const cpu_family_t cpu_families[] = {
|
|||||||
{ .name = "", 0 }
|
{ .name = "", 0 }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
#endif /* USE_CYRIX_6X86 */
|
|
||||||
{
|
{
|
||||||
.package = CPU_PKG_SOCKET8,
|
.package = CPU_PKG_SOCKET8,
|
||||||
.manufacturer = "Intel",
|
.manufacturer = "Intel",
|
||||||
|
|||||||
@@ -90,11 +90,9 @@ extern const OpFn dynarec_ops_winchip2_0f[1024];
|
|||||||
extern const OpFn dynarec_ops_pentium_0f[1024];
|
extern const OpFn dynarec_ops_pentium_0f[1024];
|
||||||
extern const OpFn dynarec_ops_pentiummmx_0f[1024];
|
extern const OpFn dynarec_ops_pentiummmx_0f[1024];
|
||||||
|
|
||||||
# ifdef USE_CYRIX_6X86
|
|
||||||
extern const OpFn dynarec_ops_c6x86_0f[1024];
|
extern const OpFn dynarec_ops_c6x86_0f[1024];
|
||||||
extern const OpFn dynarec_ops_c6x86l_0f[1024];
|
extern const OpFn dynarec_ops_c6x86l_0f[1024];
|
||||||
extern const OpFn dynarec_ops_c6x86mx_0f[1024];
|
extern const OpFn dynarec_ops_c6x86mx_0f[1024];
|
||||||
# endif /* USE_CYRIX_6X86 */
|
|
||||||
|
|
||||||
extern const OpFn dynarec_ops_k6_0f[1024];
|
extern const OpFn dynarec_ops_k6_0f[1024];
|
||||||
extern const OpFn dynarec_ops_k62_0f[1024];
|
extern const OpFn dynarec_ops_k62_0f[1024];
|
||||||
@@ -233,11 +231,9 @@ extern const OpFn ops_winchip2_0f[1024];
|
|||||||
extern const OpFn ops_pentium_0f[1024];
|
extern const OpFn ops_pentium_0f[1024];
|
||||||
extern const OpFn ops_pentiummmx_0f[1024];
|
extern const OpFn ops_pentiummmx_0f[1024];
|
||||||
|
|
||||||
#ifdef USE_CYRIX_6X86
|
|
||||||
extern const OpFn ops_c6x86_0f[1024];
|
extern const OpFn ops_c6x86_0f[1024];
|
||||||
extern const OpFn ops_c6x86l_0f[1024];
|
extern const OpFn ops_c6x86l_0f[1024];
|
||||||
extern const OpFn ops_c6x86mx_0f[1024];
|
extern const OpFn ops_c6x86mx_0f[1024];
|
||||||
#endif /* USE_CYRIX_6X86 */
|
|
||||||
|
|
||||||
extern const OpFn ops_k6_0f[1024];
|
extern const OpFn ops_k6_0f[1024];
|
||||||
extern const OpFn ops_k62_0f[1024];
|
extern const OpFn ops_k62_0f[1024];
|
||||||
|
|||||||
@@ -110,7 +110,6 @@ opMOVD_mm_l_a32(uint32_t fetchdat)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef USE_CYRIX_6X86
|
|
||||||
/*Cyrix maps both MOVD and SMINT to the same opcode*/
|
/*Cyrix maps both MOVD and SMINT to the same opcode*/
|
||||||
static int
|
static int
|
||||||
opMOVD_mm_l_a16_cx(uint32_t fetchdat)
|
opMOVD_mm_l_a16_cx(uint32_t fetchdat)
|
||||||
@@ -170,7 +169,6 @@ opMOVD_mm_l_a32_cx(uint32_t fetchdat)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif /* USE_CYRIX_6X86 */
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
opMOVQ_q_mm_a16(uint32_t fetchdat)
|
opMOVQ_q_mm_a16(uint32_t fetchdat)
|
||||||
|
|||||||
Reference in New Issue
Block a user