Revision bbc5c5fa
b/target-arm/helper.c | ||
---|---|---|
123 | 123 |
env->cp15.c0_cachetype = 0x1dd20d2; |
124 | 124 |
break; |
125 | 125 |
case ARM_CPUID_CORTEXA8: |
126 |
set_feature(env, ARM_FEATURE_V6K); |
|
127 | 126 |
set_feature(env, ARM_FEATURE_V7); |
128 | 127 |
set_feature(env, ARM_FEATURE_AUXCR); |
129 | 128 |
set_feature(env, ARM_FEATURE_THUMB2); |
... | ... | |
144 | 143 |
env->cp15.c1_sys = 0x00c50078; |
145 | 144 |
break; |
146 | 145 |
case ARM_CPUID_CORTEXA9: |
147 |
set_feature(env, ARM_FEATURE_V6K); |
|
148 | 146 |
set_feature(env, ARM_FEATURE_V7); |
149 | 147 |
set_feature(env, ARM_FEATURE_AUXCR); |
150 | 148 |
set_feature(env, ARM_FEATURE_THUMB2); |
... | ... | |
170 | 168 |
env->cp15.c1_sys = 0x00c50078; |
171 | 169 |
break; |
172 | 170 |
case ARM_CPUID_CORTEXM3: |
173 |
set_feature(env, ARM_FEATURE_V6); |
|
174 | 171 |
set_feature(env, ARM_FEATURE_THUMB2); |
175 | 172 |
set_feature(env, ARM_FEATURE_V7); |
176 | 173 |
set_feature(env, ARM_FEATURE_M); |
177 | 174 |
set_feature(env, ARM_FEATURE_THUMB_DIV); |
178 | 175 |
break; |
179 | 176 |
case ARM_CPUID_ANY: /* For userspace emulation. */ |
180 |
set_feature(env, ARM_FEATURE_V6K); |
|
181 | 177 |
set_feature(env, ARM_FEATURE_V7); |
182 | 178 |
set_feature(env, ARM_FEATURE_THUMB2); |
183 | 179 |
set_feature(env, ARM_FEATURE_VFP); |
... | ... | |
237 | 233 |
/* Some features automatically imply others: */ |
238 | 234 |
if (arm_feature(env, ARM_FEATURE_V7)) { |
239 | 235 |
set_feature(env, ARM_FEATURE_VAPA); |
236 |
if (!arm_feature(env, ARM_FEATURE_M)) { |
|
237 |
set_feature(env, ARM_FEATURE_V6K); |
|
238 |
} else { |
|
239 |
set_feature(env, ARM_FEATURE_V6); |
|
240 |
} |
|
240 | 241 |
} |
241 | 242 |
if (arm_feature(env, ARM_FEATURE_V6K)) { |
242 | 243 |
set_feature(env, ARM_FEATURE_V6); |
Also available in: Unified diff