From 0bfe89a6bde864ec89245d49ebb5e68d17ff71bd Mon Sep 17 00:00:00 2001
From: Yanjing Zhou <zhouyanjing@hygon.cn>
Date: Mon, 19 May 2025 08:19:07 +0000
Subject: [PATCH] cpu: Add new Chengdu CPU model

Add Hygon Chengdu CPU model to the processor model.

Signed-off-by: Yanjing Zhou <zhouyanjing@hygon.cn>
---
 src/cpu_map/index.xml       |   1 +
 src/cpu_map/meson.build     |   1 +
 src/cpu_map/x86_Chengdu.xml | 100 ++++++++++++++++++++++++++++++++++++
 3 files changed, 102 insertions(+)
 create mode 100644 src/cpu_map/x86_Chengdu.xml

diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 5d18a4aed6..dd65e38554 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -75,6 +75,7 @@
     <!-- Hygon CPU models -->
     <include filename='x86_Dhyana.xml'/>
     <include filename='x86_Dharma.xml'/>
+    <include filename='x86_Chengdu.xml'/>
   </arch>
 
   <arch name='ppc64'>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index ca4934d363..ee1a10270e 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -36,6 +36,7 @@ cpumap_data = [
   'x86_coreduo.xml',
   'x86_cpu64-rhel5.xml',
   'x86_cpu64-rhel6.xml',
+  'x86_Chengdu.xml',
   'x86_Dharma.xml',
   'x86_Dhyana.xml',
   'x86_EPYC-IBPB.xml',
diff --git a/src/cpu_map/x86_Chengdu.xml b/src/cpu_map/x86_Chengdu.xml
new file mode 100644
index 0000000000..ab6cf268ab
--- /dev/null
+++ b/src/cpu_map/x86_Chengdu.xml
@@ -0,0 +1,100 @@
+<cpus>
+  <model name='Chengdu'>
+    <decode host='on' guest='on'/>
+    <signature family='24' model='7'/>
+    <vendor name='Hygon'/>
+    <feature name='3dnowprefetch'/>
+    <feature name='abm'/>
+    <feature name='adx'/>
+    <feature name='aes'/>
+    <feature name='amd-ssbd'/>
+    <feature name='amd-stibp'/>
+    <feature name='apic'/>
+    <feature name='arat'/>
+    <feature name='avx'/>
+    <feature name='avx2'/>
+    <feature name='avx512-bf16'/>
+    <feature name='avx512-vpopcntdq'/>
+    <feature name='avx512bitalg'/>
+    <feature name='avx512bw'/>
+    <feature name='avx512cd'/>
+    <feature name='avx512dq'/>
+    <feature name='avx512f'/>
+    <feature name='avx512ifma'/>
+    <feature name='avx512vbmi'/>
+    <feature name='avx512vbmi2'/>
+    <feature name='avx512vl'/>
+    <feature name='avx512vnni'/>
+    <feature name='bmi1'/>
+    <feature name='bmi2'/>
+    <feature name='clflush'/>
+    <feature name='clflushopt'/>
+    <feature name='clwb'/>
+    <feature name='clzero'/>
+    <feature name='cmov'/>
+    <feature name='cr8legacy'/>
+    <feature name='cx16'/>
+    <feature name='cx8'/>
+    <feature name='de'/>
+    <feature name='f16c'/>
+    <feature name='fma'/>
+    <feature name='fpu'/>
+    <feature name='fsgsbase'/>
+    <feature name='fxsr'/>
+    <feature name='fxsr_opt'/>
+    <feature name='gfni'/>
+    <feature name='ibpb'/>
+    <feature name='ibrs'/>
+    <feature name='lahf_lm'/>
+    <feature name='lm'/>
+    <feature name='mca'/>
+    <feature name='mce'/>
+    <feature name='misalignsse'/>
+    <feature name='mmx'/>
+    <feature name='mmxext'/>
+    <feature name='monitor' removed='yes'/>
+    <feature name='movbe'/>
+    <feature name='msr'/>
+    <feature name='mtrr'/>
+    <feature name='npt'/>
+    <feature name='nrip-save'/>
+    <feature name='nx'/>
+    <feature name='osvw'/>
+    <feature name='pae'/>
+    <feature name='pat'/>
+    <feature name='pclmuldq'/>
+    <feature name='pdpe1gb'/>
+    <feature name='perfctr_core'/>
+    <feature name='pge'/>
+    <feature name='pni'/>
+    <feature name='popcnt'/>
+    <feature name='pse'/>
+    <feature name='pse36'/>
+    <feature name='rdrand'/>
+    <feature name='rdseed'/>
+    <feature name='rdtscp'/>
+    <feature name='sep'/>
+    <feature name='sha-ni'/>
+    <feature name='smap'/>
+    <feature name='smep'/>
+    <feature name='sse'/>
+    <feature name='sse2'/>
+    <feature name='sse4.1'/>
+    <feature name='sse4.2'/>
+    <feature name='sse4a'/>
+    <feature name='ssse3'/>
+    <feature name='svm'/>
+    <feature name='syscall'/>
+    <feature name='tsc'/>
+    <feature name='umip'/>
+    <feature name='vaes'/>
+    <feature name='vme'/>
+    <feature name='vpclmulqdq'/>
+    <feature name='wbnoinvd'/>
+    <feature name='xgetbv1'/>
+    <feature name='xsave'/>
+    <feature name='xsavec'/>
+    <feature name='xsaveerptr'/>
+    <feature name='xsaveopt'/>
+  </model>
+</cpus>
-- 
2.33.0