- Implements an example fuzzer (llvm-mc-assemble-proto-fuzzer-example), with example Protobuf representation (example_asm_proto.proto) of a subset of RISC-V ASM, and corresponding example_proto_to_asm. Also includes example_mcfuzz.py Python driver script, to run the fuzzer and verify its output against a golden assembler GNU.
- Also contains fuzzer (llvm-mc-assemble-proto-fuzzer-riscv), which fuzzes RISC-V's RV32 and RV64 base ISAs (the I, M, A, F, D extensions; the C extension; and also pseudo instructions).
- Contains a third, more constrained version of the fuzzer, (llvm-mc-assemble-proto-fuzzer-riscv-fuzz-opnd-values). Fuzzes the same base ISAs (RISC-V I,M,A,F,D,C, and pseudo instructions), but restricts instructions' operands to the valid types; only mutates their values.
- Contains driver script mcfuzz.py, which should be used to: (a) run the fuzzer a certain number of times; (b) run the fuzzer a specified number of times, and then verify the fuzzer's results against a golden assembler; or, (c) verify the fuzzer's results on a pre-generated test corpus, generated by previous fuzzer runs.
Please list one ninja target per line.