On 21.03.2025 17:17, Oleksii Kurochko wrote: > H provides additional instructions and CSRs that control the new stage of > address translation and support hosting a guest OS in virtual S-mode > (VS-mode). > > According to the Unprivileged Architecture (version 20240411) specification: > ``` > Table 74 summarizes the standardized extension names. The table also defines > the canonical order in which extension names must appear in the name string, > with top-to-bottom in table indicating first-to-last in the name string, e.g., > RV32IMACV is legal, whereas RV32IMAVC is not. > ``` > According to Table 74, the h extension is placed last in the one-letter > extensions name part of the ISA string. > > `h` is a standalone extension based on the patch [1] but it wasn't so > before. > As the minimal supported GCC version to build Xen for RISC-V is 12.2.0, > and for that version it will be needed to encode H extensions instructions > explicitly by checking if __risv_h is defined.
Leaving aside the typo, what is this about? There's no use of __riscv_h in the patch here, and ... > @@ -25,10 +24,13 @@ $(eval $(1) := \ > $(call as-insn,$(CC) $(riscv-generic-flags)_$(1),$(value > $(1)-insn),_$(1))) > endef > > +h-insn := "hfence.gvma" > +$(call check-extension,h) ... this, if it fails, will not have any effect on the build right now afaics. Jan