[RISCV] More validations on the input value of -march=
- RISC-V ISA strings must be lowercase.
E.g.: rv32IMC is not supported, rv32imc is correct.
- Multi-letter extensions are to be separated by a single underscore '_'.
The extension prefix counts as a letter.
This means extensions that start with S, X and SX are all multi-letter.
E.g.:
xasb is a single non-standard extension named 'xasb'
xa_sb are two extensions, the non-standard user level extension 'xa',
and the supervisor level extension 'sb'.
- Extensions might have a version number.
Underscores may be used to separate ISA subset components to improve
readability and to provide disambiguation.
E.g.: rv32i2_m3_a1_f2_d2
- Additional checks for dependent extensions and invalid extensions combinations. E.g.: 'e' requires rv32 'e' can't be combined with 'f' nor 'd' 'q' requires rv64