Merge remote-tracking branch 'origin/master' into cdrom_changes

This commit is contained in:
OBattler
2025-03-06 00:45:43 +01:00
12 changed files with 19 additions and 36 deletions

View File

@@ -163,7 +163,6 @@ endif()
cmake_dependent_option(AMD_K5 "AMD K5" 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(CYRIX_6X86 "Cyrix 6x86" 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(ISAMEM_RAMPAGE "AST Rampage" ON "DEV_BRANCH" OFF)

View File

@@ -1,6 +1,7 @@
#include <stdarg.h>
#include <stdio.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
#include <math.h>

View File

@@ -1385,7 +1385,6 @@ const OpFn OP_TABLE(pentium_0f)[1024] = {
// clang-format on
};
# ifdef USE_CYRIX_6X86
const OpFn OP_TABLE(c6x86_0f)[1024] = {
// clang-format off
/*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,
// clang-format on
};
# endif /* USE_CYRIX_6X86 */
const OpFn OP_TABLE(pentiummmx_0f)[1024] = {
// clang-format off
@@ -1847,7 +1845,6 @@ const OpFn OP_TABLE(k62_0f)[1024] = {
// clang-format on
};
# ifdef USE_CYRIX_6X86
const OpFn OP_TABLE(c6x86mx_0f)[1024] = {
// clang-format off
/*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,
// clang-format on
};
# endif /* USE_CYRIX_6X86 */
const OpFn OP_TABLE(pentiumpro_0f)[1024] = {
// clang-format off

View File

@@ -42,20 +42,12 @@ 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)
target_sources(cpu PRIVATE 386_dynarec_ops.c)
add_library(cgt OBJECT
codegen_timing_486.c
codegen_timing_686.c
codegen_timing_common.c
codegen_timing_k6.c
codegen_timing_pentium.c

View File

@@ -1420,7 +1420,6 @@ cpu_set(void)
#endif /* USE_DYNAREC */
break;
#ifdef USE_CYRIX_6X86
case CPU_Cx6x86:
case CPU_Cx6x86L:
case CPU_CxGX1:
@@ -1541,7 +1540,6 @@ cpu_set(void)
else if (CPU_Cx6x86)
CPUID = 0; /* Disabled on powerup by default */
break;
#endif /* USE_CYRIX_6X86 */
#ifdef USE_AMD_K5
case CPU_K5:
@@ -2386,7 +2384,6 @@ cpu_CPUID(void)
EAX = EBX = ECX = EDX = 0;
break;
#ifdef USE_CYRIX_6X86
case CPU_Cx6x86:
if (!EAX) {
EAX = 0x00000001;
@@ -2447,7 +2444,6 @@ cpu_CPUID(void)
} else
EAX = EBX = ECX = EDX = 0;
break;
#endif /* USE_CYRIX_6X86 */
case CPU_PENTIUMPRO:
if (!EAX) {
@@ -3124,7 +3120,6 @@ pentium_invalid_rdmsr:
cpu_log("RDMSR: ECX = %08X, val = %08X%08X\n", ECX, EDX, EAX);
break;
#ifdef USE_CYRIX_6X86
case CPU_Cx6x86:
case CPU_Cx6x86L:
case CPU_CxGX1:
@@ -3164,7 +3159,6 @@ pentium_invalid_rdmsr:
}
cpu_log("RDMSR: ECX = %08X, val = %08X%08X\n", ECX, EDX, EAX);
break;
#endif /* USE_CYRIX_6X86 */
case CPU_PENTIUMPRO:
case CPU_PENTIUM2:
@@ -3945,7 +3939,6 @@ pentium_invalid_wrmsr:
}
break;
#ifdef USE_CYRIX_6X86
case CPU_Cx6x86:
case CPU_Cx6x86L:
case CPU_CxGX1:
@@ -3979,7 +3972,6 @@ pentium_invalid_wrmsr:
break;
}
break;
#endif /* USE_CYRIX_6X86 */
case CPU_PENTIUMPRO:
case CPU_PENTIUM2:
@@ -4283,14 +4275,12 @@ cpu_write(uint16_t addr, uint8_t val, UNUSED(void *priv))
case 0xe8: /* CCR4 */
if ((ccr3 & 0xf0) == 0x10) {
ccr4 = val;
#ifdef USE_CYRIX_6X86
if (cpu_s->cpu_type >= CPU_Cx6x86) {
if (val & 0x80)
CPUID = cpu_s->cpuid_model;
else
CPUID = 0;
}
#endif /* USE_CYRIX_6X86 */
}
break;
case 0xe9: /* CCR5 */

View File

@@ -6095,7 +6095,6 @@ const cpu_family_t cpu_families[] = {
{ .name = "", 0 }
}
},
#ifdef USE_CYRIX_6X86
{
.package = CPU_PKG_SOCKET5_7,
.manufacturer = "Cyrix",
@@ -6455,7 +6454,6 @@ const cpu_family_t cpu_families[] = {
{ .name = "", 0 }
}
},
#endif /* USE_CYRIX_6X86 */
{
.package = CPU_PKG_SOCKET8,
.manufacturer = "Intel",

View File

@@ -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_pentiummmx_0f[1024];
# ifdef USE_CYRIX_6X86
extern const OpFn dynarec_ops_c6x86_0f[1024];
extern const OpFn dynarec_ops_c6x86l_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_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_pentiummmx_0f[1024];
#ifdef USE_CYRIX_6X86
extern const OpFn ops_c6x86_0f[1024];
extern const OpFn ops_c6x86l_0f[1024];
extern const OpFn ops_c6x86mx_0f[1024];
#endif /* USE_CYRIX_6X86 */
extern const OpFn ops_k6_0f[1024];
extern const OpFn ops_k62_0f[1024];

View File

@@ -110,7 +110,6 @@ opMOVD_mm_l_a32(uint32_t fetchdat)
return 0;
}
#ifdef USE_CYRIX_6X86
/*Cyrix maps both MOVD and SMINT to the same opcode*/
static int
opMOVD_mm_l_a16_cx(uint32_t fetchdat)
@@ -170,7 +169,6 @@ opMOVD_mm_l_a32_cx(uint32_t fetchdat)
return 0;
}
#endif /* USE_CYRIX_6X86 */
static int
opMOVQ_q_mm_a16(uint32_t fetchdat)

View File

@@ -554,6 +554,7 @@ opFTST(UNUSED(uint32_t fetchdat))
return 0;
}
#ifndef FPU_8087
static int
opFTSTP(UNUSED(uint32_t fetchdat))
{
@@ -569,6 +570,7 @@ opFTSTP(UNUSED(uint32_t fetchdat))
CONCURRENCY_CYCLES((fpu_type >= FPU_487SX) ? (x87_concurrency.ftst) : (x87_concurrency.ftst * cpu_multi));
return 0;
}
#endif
static int
opFXAM(UNUSED(uint32_t fetchdat))
@@ -854,6 +856,8 @@ opFRNDINT(UNUSED(uint32_t fetchdat))
return 0;
}
#ifndef FPU_8087
#ifndef OPS_286_386
static int
opFRINT2(UNUSED(uint32_t fetchdat))
{
@@ -882,7 +886,6 @@ opFRINT2(UNUSED(uint32_t fetchdat))
static int
opFRINEAR(UNUSED(uint32_t fetchdat))
{
double dst0, st0, integral, frac;
int prevRound;
FP_ENTER();
@@ -896,11 +899,11 @@ opFRINEAR(UNUSED(uint32_t fetchdat))
CONCURRENCY_CYCLES((fpu_type >= FPU_487SX) ? (x87_concurrency.frndint) : (x87_concurrency.frndint * cpu_multi));
return 0;
}
#endif
static int
opFRICHOP(UNUSED(uint32_t fetchdat))
{
double dst0, st0, integral, frac;
int prevRound;
FP_ENTER();
@@ -914,6 +917,7 @@ opFRICHOP(UNUSED(uint32_t fetchdat))
CONCURRENCY_CYCLES((fpu_type >= FPU_487SX) ? (x87_concurrency.frndint) : (x87_concurrency.frndint * cpu_multi));
return 0;
}
#endif
static int
opFSCALE(UNUSED(uint32_t fetchdat))

View File

@@ -801,6 +801,8 @@ next_ins:
return 0;
}
#ifndef FPU_8087
#ifndef OPS_286_386
static int
sf_FRINT2(uint32_t fetchdat)
{
@@ -854,6 +856,7 @@ next_ins:
CONCURRENCY_CYCLES((fpu_type >= FPU_487SX) ? (x87_concurrency.frndint) : (x87_concurrency.frndint * cpu_multi));
return 0;
}
#endif
static int
sf_FRICHOP(uint32_t fetchdat)
@@ -881,3 +884,4 @@ next_ins:
CONCURRENCY_CYCLES((fpu_type >= FPU_487SX) ? (x87_concurrency.frndint) : (x87_concurrency.frndint * cpu_multi));
return 0;
}
#endif

View File

@@ -459,6 +459,7 @@ sf_FTST(uint32_t fetchdat)
return 0;
}
#ifndef FPU_8087
static int
sf_FTSTP(uint32_t fetchdat)
{
@@ -484,6 +485,7 @@ sf_FTSTP(uint32_t fetchdat)
CONCURRENCY_CYCLES((fpu_type >= FPU_487SX) ? (x87_concurrency.ftst) : (x87_concurrency.ftst * cpu_multi));
return 0;
}
#endif
static int
sf_FXAM(UNUSED(uint32_t fetchdat))

View File

@@ -489,7 +489,10 @@ es137x_reset(void *priv)
/* Serial Interface Control Register, Address 20H
Addressable as byte, word, longword */
dev->si_cr = 0xff800000;
if (dev->type == AUDIOPCI_ES1370)
dev->si_cr = 0x00000000;
else
dev->si_cr = 0xff800000;
/* DAC1 Channel Sample Count Register, Address 24H
Addressable as word, longword */