From d5feb71b50b5d7c87ddb0ac9f8fc9378d701900a Mon Sep 17 00:00:00 2001 From: xinyangli Date: Tue, 26 Mar 2024 01:53:17 +0800 Subject: [PATCH] nemu: try difftest --- .gitea/workflows/abstract-machine-build.yml | 5 ++--- nemu/default.nix | 4 +++- nemu/src/isa/riscv32/difftest/dut.c | 5 ++++- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/abstract-machine-build.yml b/.gitea/workflows/abstract-machine-build.yml index ded6e88..af10d43 100644 --- a/.gitea/workflows/abstract-machine-build.yml +++ b/.gitea/workflows/abstract-machine-build.yml @@ -10,9 +10,8 @@ jobs: name: ysyx signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' - uses: actions/checkout@v4 - sparse-checkout: | - flake.nix - abstract-machine + with: + submodules: true - name: Build abstract-machine run: | nix build .#abstract-machine diff --git a/nemu/default.nix b/nemu/default.nix index e746a7c..d3d5a70 100644 --- a/nemu/default.nix +++ b/nemu/default.nix @@ -1,7 +1,8 @@ { pkgs, lib, stdenv, - am-kernels + am-kernels, + dtc }: stdenv.mkDerivation rec { @@ -15,6 +16,7 @@ stdenv.mkDerivation rec { pkg-config flex bison + dtc ]; buildInputs = with pkgs; [ diff --git a/nemu/src/isa/riscv32/difftest/dut.c b/nemu/src/isa/riscv32/difftest/dut.c index c5ebf13..06748ce 100644 --- a/nemu/src/isa/riscv32/difftest/dut.c +++ b/nemu/src/isa/riscv32/difftest/dut.c @@ -18,7 +18,10 @@ #include "../local-include/reg.h" bool isa_difftest_checkregs(CPU_state *ref_r, vaddr_t pc) { - return false; + for(int i = 0; i < MUXDEF(CONFIG_RVE, 16, 32); i++) { + if(!difftest_check_reg(reg_name(i), pc, ref_r->gpr[i], gpr(i))) return false; + } + return true; } void isa_difftest_attach() {