Revision 3e98dc8e
b/target-i386/helper2.c | ||
---|---|---|
119 | 119 |
|
120 | 120 |
typedef struct x86_def_t { |
121 | 121 |
const char *name; |
122 |
uint32_t level; |
|
122 | 123 |
uint32_t vendor1, vendor2, vendor3; |
123 | 124 |
int family; |
124 | 125 |
int model; |
... | ... | |
135 | 136 |
#ifdef TARGET_X86_64 |
136 | 137 |
{ |
137 | 138 |
.name = "qemu64", |
139 |
.level = 2, |
|
138 | 140 |
.vendor1 = 0x68747541, /* "Auth" */ |
139 | 141 |
.vendor2 = 0x69746e65, /* "enti" */ |
140 | 142 |
.vendor3 = 0x444d4163, /* "cAMD" */ |
... | ... | |
155 | 157 |
#endif |
156 | 158 |
{ |
157 | 159 |
.name = "qemu32", |
160 |
.level = 2, |
|
158 | 161 |
.family = 6, |
159 | 162 |
.model = 3, |
160 | 163 |
.stepping = 3, |
... | ... | |
164 | 167 |
}, |
165 | 168 |
{ |
166 | 169 |
.name = "486", |
170 |
.level = 0, |
|
167 | 171 |
.family = 4, |
168 | 172 |
.model = 0, |
169 | 173 |
.stepping = 0, |
... | ... | |
172 | 176 |
}, |
173 | 177 |
{ |
174 | 178 |
.name = "pentium", |
179 |
.level = 1, |
|
175 | 180 |
.family = 5, |
176 | 181 |
.model = 4, |
177 | 182 |
.stepping = 3, |
... | ... | |
180 | 185 |
}, |
181 | 186 |
{ |
182 | 187 |
.name = "pentium2", |
188 |
.level = 2, |
|
183 | 189 |
.family = 6, |
184 | 190 |
.model = 5, |
185 | 191 |
.stepping = 2, |
... | ... | |
188 | 194 |
}, |
189 | 195 |
{ |
190 | 196 |
.name = "pentium3", |
197 |
.level = 2, |
|
191 | 198 |
.family = 6, |
192 | 199 |
.model = 7, |
193 | 200 |
.stepping = 3, |
... | ... | |
306 | 313 |
env->cpuid_vendor2 = 0x49656e69; /* "ineI" */ |
307 | 314 |
env->cpuid_vendor3 = 0x6c65746e; /* "ntel" */ |
308 | 315 |
} |
309 |
env->cpuid_level = 2;
|
|
316 |
env->cpuid_level = def->level;
|
|
310 | 317 |
env->cpuid_version = (def->family << 8) | (def->model << 4) | def->stepping; |
311 | 318 |
env->cpuid_features = def->features; |
312 | 319 |
env->pat = 0x0007040600070406ULL; |
Also available in: Unified diff