diff options
| author | 2026-03-23 18:51:08 +0100 | |
|---|---|---|
| committer | 2026-03-23 18:51:17 +0100 | |
| commit | e922f604ad085e1134f582121492e9ae3576b470 (patch) | |
| tree | 7429e41ef339843e5936d0b42ab29532bd4dec2d /src/devices/cpu | |
| parent | 5fc5f5ad612a2f03c02cae539f9a964449bb0139 (diff) | |
cpu/i386/i386.cpp: add CPUID brand ID for Pentium 3 and 4
Diffstat (limited to 'src/devices/cpu')
| -rw-r--r-- | src/devices/cpu/i386/i386.cpp | 3 | ||||
| -rw-r--r-- | src/devices/cpu/i386/i386.h | 1 | ||||
| -rw-r--r-- | src/devices/cpu/i386/i486ops.hxx | 1 |
3 files changed, 5 insertions, 0 deletions
diff --git a/src/devices/cpu/i386/i386.cpp b/src/devices/cpu/i386/i386.cpp index 80af52f6baa..5e21bb126f3 100644 --- a/src/devices/cpu/i386/i386.cpp +++ b/src/devices/cpu/i386/i386.cpp @@ -2483,6 +2483,7 @@ void i386_device::zero_state() m_cpuid_id1 = 0; m_cpuid_id2 = 0; m_cpu_version = 0; + m_brand_id = 0; // Pentium III model 8 onward m_feature_flags = 0; m_tsc = 0; m_perfctr[0] = m_perfctr[1] = 0; @@ -3425,6 +3426,7 @@ void pentium3_device::device_reset() // [15:15] CMOV and FCMOV // [18:18] PSN (Processor Serial Number, P3 only) m_feature_flags = 0x0004a111; // TODO: enable relevant flags here + m_brand_id = 0x02; CHANGE_PC(m_eip); } @@ -3518,6 +3520,7 @@ void pentium4_device::device_reset() // [ 8:8] CMPXCHG8B instruction // [15:15] CMOV and FCMOV m_feature_flags = 0x00008101; // TODO: enable relevant flags here + m_brand_id = 0x08; CHANGE_PC(m_eip); } diff --git a/src/devices/cpu/i386/i386.h b/src/devices/cpu/i386/i386.h index 7a0ac627429..ba6302a3a31 100644 --- a/src/devices/cpu/i386/i386.h +++ b/src/devices/cpu/i386/i386.h @@ -354,6 +354,7 @@ protected: int m_cpuid_max_input_value_eax; // Highest CPUID standard function available uint32_t m_cpuid_id0, m_cpuid_id1, m_cpuid_id2; uint32_t m_cpu_version; + uint32_t m_brand_id; uint32_t m_feature_flags; uint64_t m_tsc; uint64_t m_perfctr[2]; diff --git a/src/devices/cpu/i386/i486ops.hxx b/src/devices/cpu/i386/i486ops.hxx index df8dc08c4ed..2131e15b717 100644 --- a/src/devices/cpu/i386/i486ops.hxx +++ b/src/devices/cpu/i386/i486ops.hxx @@ -27,6 +27,7 @@ void i386_device::i486_cpuid() // Opcode 0x0F A2 case 1: { REG32(EAX) = m_cpu_version; + REG32(EBX) = m_brand_id; REG32(EDX) = m_feature_flags; CYCLES(CYCLES_CPUID_EAX1); break; |
