Open ssecatch-w opened 6 months ago
Looks like an extra character got introduced in the macro name. Try deleting the "M" in "#define RVTEST_SAVE_GPRSM" (line 633 I think) and see if that fixes it.
On Wed, Apr 3, 2024 at 12:30 PM ssecatch-w @.***> wrote:
Assembler messages: Error: unrecognized opcode `rvtest_save_gprs x1 gpr_save'
The line with the error is RVTEST_CODE_END
looking at the definition: .macro RVTEST_CODE_END // test is ended, but in no particular mode .option push .option norvc .global rvtest_code_end // define the label and make it available .global cleanup_epilogs // ALERT: tests must populate x1 with a point to the end of regular sig area / MPRV must be clear here !!! ****/ rvtest_code_end: // RVMODEL_HALT should get here
ifdef rvtest_gpr_save // gpr_save area is instantiated at end of signature
RVTEST_SAVE_GPRS x1 gpr_save
endif
RVTEST_GOTO_MMODE // if only Mmode used by tests, this has no effect cleanup_epilogs: // jump here to quit, will restore state for each mode
RVTEST_SAVE_GPRS used to be a macro: .macro RVTEST_SAVE_GPRS BASEREG REG_SV_ADDR // optionally save GPRs
But now it's been replaced with a define which doesn't match the call
define RVTEST_SAVE_GPRSM(_BR, _LBL, ...) ;\
— Reply to this email directly, view it on GitHub https://github.com/riscv-non-isa/riscv-arch-test/issues/450, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHPXVJREYNWUNFDUZYEOARTY3RKGJAVCNFSM6AAAAABFV55DO2VHI2DSMVQWIX3LMV43ASLTON2WKOZSGIZDGNZUGY3TCMY . You are receiving this because you are subscribed to this thread.Message ID: @.***>
Same error. I suspect the problem is that that macro definition expects at least two parameters (if not more).
Out of curiosity, I also fixed the "call" along with removing the "M": RVTEST_SAVE_GPRS(x1, gpr_save)
And that does compile, though I haven't tested to see if it works yet functionally
That's what I thought, but ... where is arch_test.c?? There are no .c files in the arch_test repo that come to mind
On Wed, Apr 3, 2024 at 3:45 PM ssecatch-w @.***> wrote:
Same error. I suspect the problem is that that macro definition expects at least two parameters (if not more).
Out of curiosity, I fixed the "call": RVTEST_SAVE_GPRS(x1, gpr_save)
And that does compile, though I haven't tested to see if it works yet functionally
— Reply to this email directly, view it on GitHub https://github.com/riscv-non-isa/riscv-arch-test/issues/450#issuecomment-2035733221, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHPXVJQCTTH3VCXG4GMVL73Y3SBB3AVCNFSM6AAAAABFV55DO2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZVG4ZTGMRSGE . You are receiving this because you commented.Message ID: @.***>
My apologies! arch_test.h https://github.com/riscv-non-isa/riscv-arch-test/blob/main/riscv-test-suite/env/arch_test.h
Assembler messages: Error: unrecognized opcode `rvtest_save_gprs x1 gpr_save'
The line with the error is RVTEST_CODE_END
looking at the definition: .macro RVTEST_CODE_END // test is ended, but in no particular mode .option push .option norvc .global rvtest_code_end // define the label and make it available .global cleanup_epilogs // ALERT: tests must populate x1 with a point to the end of regular sig area / MPRV must be clear here !!! ****/ rvtest_code_end: // RVMODEL_HALT should get here
ifdef rvtest_gpr_save // gpr_save area is instantiated at end of signature
endif
cleanup_epilogs: // jump here to quit, will restore state for each mode
RVTEST_SAVE_GPRS used to be a macro: .macro RVTEST_SAVE_GPRS BASEREG REG_SV_ADDR // optionally save GPRs
But now it's been replaced with a define which doesn't match the call
define RVTEST_SAVE_GPRSM(_BR, _LBL, ...) ;\