在 2023/6/28 17:51, WANG Xuerui 写道:
Hi,"lu12i.w+srli.w" can be replaced by "li.w t0, KVM_GPGD"
On 2023/6/28 16:34, zhaotianrui wrote:
在 2023/6/28 上午11:42, Jinyang He 写道:
On 2023-06-26 16:47, Tianrui Zhao wrote:Thanks for your advice, and I think it need not to replace it with "li.w" there, as it has the same meaning with "ori" instruction, and "ori" instruction is simple and clear enough. The same as the following "move" instructions. What do you think of it.
[snip]
+ ldx.d t0, t1, t0li.w t0, CSR_PRMD_PIE
+ csrwr t0, LOONGARCH_CSR_PGDL
+
+ /* Mix GID and RID */
+ csrrd t1, LOONGARCH_CSR_GSTAT
+ bstrpick.w t1, t1, CSR_GSTAT_GID_SHIFT_END, CSR_GSTAT_GID_SHIFT
+ csrrd t0, LOONGARCH_CSR_GTLBC
+ bstrins.w t0, t1, CSR_GTLBC_TGID_SHIFT_END, CSR_GTLBC_TGID_SHIFT
+ csrwr t0, LOONGARCH_CSR_GTLBC
+
+ /*
+ * Switch to guest:
+ * GSTAT.PGM = 1, ERRCTL.ISERR = 0, TLBRPRMD.ISTLBR = 0
+ * ertn
+ */
+
+ /*
+ * Enable intr in root mode with future ertn so that host interrupt
+ * can be responsed during VM runs
+ * guest crmd comes from separate gcsr_CRMD register
+ */
+ ori t0, zero, CSR_PRMD_PIE
Just my 2c: I'd agree that pseudo-instructions should be used wherever possible and helping readability.
we accept the suggestion two instructions should be replaced with pseudo-instruction.
For the instruction "ori t0, zero, CSR_PRMD_PIE"
what is advantage of this pseudo-instruction
li.w t0, CSR_PRMD_PIE
is "ori t0, zero, CSR_PRMD_PIE" hard to understand? It is basic arithmetic instr and easy to understand also. To be frank I do not see the advantage of using li.w, also there is no document that pseudo-instruction should be used with high priority.