Re: [RFC PATCH v7 07/29] target/loongarch: Add LoongArch CSR instruction

2022-03-30 Thread Richard Henderson
On 3/30/22 04:01, yangxiaojuan wrote: trans_csrrd { ...     switch(a->csr) {     case LOONGARCH_CSR_PGD:         gen_helper_csrrd_pgd();         break;     case LOONGARCH_CSR_TVAL:         gen_helper_csrrd_tval();         break;     case LOONGARCH_CSR_CPUID:         ...     default:   

Re: [RFC PATCH v7 07/29] target/loongarch: Add LoongArch CSR instruction

2022-03-30 Thread yangxiaojuan
On 2022/3/29 上午2:34, Richard Henderson wrote: +target_ulong helper_csr_rdq(CPULoongArchState *env, uint64_t csr) +{ +    LoongArchCPU *cpu; +    int64_t v; + +    switch (csr) { +    case LOONGARCH_CSR_PGD: +    if (env->CSR_TLBRERA & 0x1) { +    v = env->CSR_TLBRBADV; +    } els

Re: [RFC PATCH v7 07/29] target/loongarch: Add LoongArch CSR instruction

2022-03-28 Thread Richard Henderson
On 3/28/22 06:57, Xiaojuan Yang wrote: +#define CSR_OFF(X) \ + [LOONGARCH_CSR_##X] = offsetof(CPULoongArchState, CSR_##X) +#define CSR_OFF_ARRAY(X, N) \ + [LOONGARCH_CSR_##X(N)] = offsetof(CPULoongArchState, CSR_##X[N]) + +static const int csr_offsets[] = { You cannot put

[RFC PATCH v7 07/29] target/loongarch: Add LoongArch CSR instruction

2022-03-28 Thread Xiaojuan Yang
This includes: - CSRRD - CSRWR - CSRXCHG Signed-off-by: Xiaojuan Yang Signed-off-by: Song Gao --- target/loongarch/cpu.h| 88 target/loongarch/csr_helper.c | 112 target/loongarch/disas.c | 15 +++ targ