qemu

less than 1 minute read

Published:

How to add an intrustion to qemu:

  • Add an encoding this path qemu/target/riscv/insn32-cheri.decode according to three oeprand or second operand
  • qemu/build/libqemu-riscv64cheri-softmmu.fa.p/decode-insn32.c.inc add here
  • qemu/disas/riscv.c
  • qemu/target/cheri-common/cheri-helper-common.h
  • qemu/target/riscv/insn_trans/trans_cheri.c.inc
  • qemu/target/cheri-common/op_helper_cheri_common.c

How to encode this in the llvm and add its own intrinsic

  • $(HOME)/cheri/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfoXCheri.td
  • $(HOME)/cheri/llvm-project/clang/lib/CodeGen/CGBuiltin.cpp
  • $(HOME)/cheri/llvm-project/llvm/include/llvm/IR/IntrinsicsCHERICap.td
  • $(HOME)/cheri/llvm-project/clang/include/clang/Basic/Builtins.def