Open bluewww opened 3 years ago
Thank you for your test, I had reported it in yesterday's meeting to Mark, and now asking our simulator collegue to fix it.
I think we can constrains it like:
We had fix the register reserves problem, and here still exist qemu problem cause execution result errors. I commulated with the qemu team to fix them, maybe it will fix within Sep I guess, and I will keep catch this.
@bluewww We had fix all known bugs in qemu and you can check it with the qemu support in— https://github.com/plctlab/plct-qemu/commits/plct-zfinx-dev, here is a shell for test zdinx on rv32:
#!/bin/bash
apt-get install git build-essential tcl expect flex texinfo bison libpixman-1-dev libglib2.0-dev pkg-config zlib1g-dev ninja-build
git clone https://github.com/riscv/riscv-gnu-toolchain
cd riscv-gnu-toolchain
git submodule update --init
cd riscv-gcc
git remote | grep -q zfinx || git remote add zfinx https://github.com/pz9115/riscv-gcc.git
git fetch zfinx
git checkout -f zfinx/riscv-gcc-10.2.0-zfinx
cd ../riscv-binutils
git remote | grep -q zfinx || git remote add zfinx https://github.com/pz9115/riscv-binutils-gdb.git
git fetch zfinx
git checkout zfinx/riscv-binutils-2.35-zfinx
cd ../qemu
git remote | grep -q plct-qemu || git remote add plct-qemu https://github.com/plctlab/plct-qemu.git || true
git fetch plct-qemu
git checkout plct-qemu/plct-zfinx-dev
cd ..
## set QEMU args
sed -i '15c qemu-riscv$xlen -cpu rv32,Zdinx=true -r 5.10 "${qemu_args[@]}" -L ${RISC_V_SYSROOT} "$@"' scripts/wrapper/qemu/riscv32-unknown-elf-run
make clean || echo "No need to clean"
# for rv32:
./configure --prefix=$PWD/opt-rv32/ --with-arch=rv32imaczdinx --with-abi=ilp32 --with-multilib-generator="rv32imaczdinx-ilp32--"
# you can use make -j* to make speed up
make -j $(nproc) report-gcc-newlib
make -j $(nproc) report-binutils-newlib
@pz9115 thanks for the update. I see if I find time to run this since I have only centos7 machines available and probably will need to change this script a bit.
This seems to happen in some gcc tests. The current draft of the zfinx reserves passing double arguments in odd offset register pairs.
Here are some tests I saw failing: