- Define SubtargetFeature and Predicate for C extension
- Add IsRV64 Predicate for RV64 only C extension instructions
- Support decode 16-bit instructions
- Support encode 16-bit instructions
- Add GPRC, SP,GPRNonX0 register class for C extension load/store instructions
- Add compress InstFormat enum format
- TSFlags in RISCVInstrFormats.td/RISCVInstrFormatsC.td have increase 1 bit
- Add CI CSS CL CS instruction format for C extension load/store instructions
- Add C extension load/store instructions
- Support decode GPRC,GPRNonX0 register class
- Identify/check UImm8Lsb00/UImm7Lsb00/UImm8Lsb000/UImm9Lsb000 operands by RISCVAsmParser
- Add imply SP operand while decoding CLWSP/CLWLP/CLDSP/CSDSP
- Add rv32c-valid.s, rv32c-invalid.s, rv64c-valid.s, rv64c-invalid.s MC testcases
These methods are sorted by bit-width of the operand, so should be in the order isUImm5, isUImm6Lsb00, isUImm8Lsb00.