-
Notifications
You must be signed in to change notification settings - Fork 199
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RVTEST_CODE_END use of RVTEST_SAVE_GPRS in env/arch_test.h doesn't work #450
Comments
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
<#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": 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
<#450 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AHPXVJQCTTH3VCXG4GMVL73Y3SBB3AVCNFSM6AAAAABFV55DO2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMZVG4ZTGMRSGE>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
My apologies! 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
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, ...) ;\
The text was updated successfully, but these errors were encountered: