diff --git a/CHANGELOG.md b/CHANGELOG.md index a5bd6dbfa..94a687277 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # CHANGELOG +## [3.8.10] -- 2024-03-24 +- Updated TEST_JALR_OP in test_macros.h +- The macro no longer works when rd = x0 in versions of GCC newer than 2023.12.20 +- riscof throws a message /home/jstine/cvw/addins/riscv-arch-test/riscv-test-suite/rv32i_m/I/src/jalr-01.S:72: Error: illegal operands `la x0,5b' +- The TEST_JALR_OP macro invokes LA, which does not like x0 as an operand +- replacing LA(rd, 5b) with auipc rd, 0 in test_macros.h solves the compiler issue and produces similar code but without a bunch of preceeding nops + ## [3.8.9] -- 2024-01-12 - Fixed Check ISA fields to include 32/64 in Zicond tests. Note that the riscv-ctg CGFs have not been updated. diff --git a/riscv-test-suite/env/test_macros.h b/riscv-test-suite/env/test_macros.h index be19bf88e..2dbdac398 100644 --- a/riscv-test-suite/env/test_macros.h +++ b/riscv-test-suite/env/test_macros.h @@ -401,7 +401,7 @@ #define TEST_JALR_OP(tempreg, rd, rs1, imm, swreg, offset,adj) ;\ 5: ;\ - LA(rd,5b) ;\ + auipc rd, 0 ;\ .if adj & 1 == 1 ;\ LA(rs1, 3f-imm+adj-1) ;\ jalr rd, imm+1(rs1) ;\