On 12/21/19 6:51 AM, Alex Bennée wrote:
>> --- a/target/ppc/mem_helper.c
>> +++ b/target/ppc/mem_helper.c
>> @@ -177,14 +177,7 @@ static void dcbz_common(CPUPPCState *env, target_ulong
>> addr,
>> } else {
>> /* Slow path */
>> for (i = 0; i < dcbz_size; i += 8) {
>> - if (epid) {
>> -#if !defined(CONFIG_USER_ONLY)
>> - /* Does not make sense on USER_ONLY config */
>> - cpu_stq_eps_ra(env, addr + i, 0, retaddr);
>> -#endif
>> - } else {
>> - cpu_stq_data_ra(env, addr + i, 0, retaddr);
>> - }
>> + cpu_stq_mmuidx_ra(env, addr + i, 0, mmu_idx, retaddr);
>
> I assume the possibility of a user-mode with epid is elided in the
> translation phase by avoiding gen_dcbzep although I can't quite see
> where they get called from. Anyway:
I suspect that dcbzep (vs dcbze) is supposed to be privileged, but I can't see
that enforced anywhere. Certainly one can't write to the EPSC register from
userspace...
r~