Re: [Qemu-devel] [PATCH v2 08/10] target/arm: Implement the ARMv8.1-LOR extension

2018-12-06 Thread Richard Henderson
On 12/6/18 7:49 AM, Peter Maydell wrote: >> +uint64_t hcr = arm_hcr_el2_eff(env); >> +if (hcr & HCR_E2H) { >> +hcr &= HCR_TLOR; >> +} else { >> +hcr &= HCR_TGE | HCR_TLOR; > This doesn't make sense to me The logic is backward. What I was after was

Re: [Qemu-devel] [PATCH v2 08/10] target/arm: Implement the ARMv8.1-LOR extension

2018-12-06 Thread Peter Maydell
On Mon, 3 Dec 2018 at 20:38, Richard Henderson wrote: > > Provide a trivial implementation with zero limited ordering regions, > which causes the LDLAR and STLLR instructions to devolve into the > LDAR and STLR instructions from the base ARMv8.0 instruction set. > > Signed-off-by: Richard Henderso

Re: [Qemu-devel] [PATCH v2 08/10] target/arm: Implement the ARMv8.1-LOR extension

2018-12-06 Thread Richard Henderson
On 12/6/18 7:49 AM, Peter Maydell wrote: >> +static inline bool isar_feature_aa64_lor(const ARMISARegisters *id) >> +{ >> +return FIELD_EX64(id->id_aa64mmfr0, ID_AA64MMFR1, LO) != 0; > > You're testing the wrong ID register here... Oops, I thought I fixed that... >> +static CPAccessResult ac

[Qemu-devel] [PATCH v2 08/10] target/arm: Implement the ARMv8.1-LOR extension

2018-12-03 Thread Richard Henderson
Provide a trivial implementation with zero limited ordering regions, which causes the LDLAR and STLLR instructions to devolve into the LDAR and STLR instructions from the base ARMv8.0 instruction set. Signed-off-by: Richard Henderson --- v2: Mark LORID_EL1 read-only. Add TLOR access checks.