Proposal Details
When the proposal for GORISCV64 was being discussed, the situation regarding compressed instructions for RISC-V was somewhat unclear and there were discussions about potentially reusing the encoding space. As such, the decision was to make the default GORISCV64 value be rva20u64 but explicitly exclude compressed instructions, effectively giving rv64g:
#61476 (comment)
There has since been a decision regarding the future of the C extension, with it remaining a mandatory part of RVA20 and RVA22:
https://lists.riscv.org/g/tech-profiles/topic/rvi_bod_decision_regarding/102522954
This means that all general purpose RISC-V hardware that Go will run on must support compressed instructions.
This proposal is to change Go's meaning of GORISCV64=rva20u64 to include compressed instructions, instead of continuing to prohibit them.
Proposal Details
When the proposal for
GORISCV64was being discussed, the situation regarding compressed instructions for RISC-V was somewhat unclear and there were discussions about potentially reusing the encoding space. As such, the decision was to make the defaultGORISCV64value berva20u64but explicitly exclude compressed instructions, effectively givingrv64g:#61476 (comment)
There has since been a decision regarding the future of the C extension, with it remaining a mandatory part of RVA20 and RVA22:
https://lists.riscv.org/g/tech-profiles/topic/rvi_bod_decision_regarding/102522954
This means that all general purpose RISC-V hardware that Go will run on must support compressed instructions.
This proposal is to change Go's meaning of
GORISCV64=rva20u64to include compressed instructions, instead of continuing to prohibit them.