-
Notifications
You must be signed in to change notification settings - Fork 233
Add remaining b-ext insns #255
Add remaining b-ext insns #255
Conversation
e761ec1
to
a224df9
Compare
a224df9
to
73f6b56
Compare
f3fde2b
to
41b5aa9
Compare
1f98bde
to
058cf13
Compare
c4c19e6
to
8ada63b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like we also need the b pseudos, but they can be added in the future patches. Otherwise, this looks OK to me.
@@ -1,4 +1,4 @@ | |||
#as: -march=rv64i_zba_zbb_zbc | |||
#as: -march=rv64i_zba_zbb_zbc_zbe_zbf_zbm_zbp_zbr_zbs_zbt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we can use rv64ib, but this doesn't really matter
a328ec1
to
f2455ea
Compare
@pz9115 Oh I guess I forgot to confirm with you in the afternoon meeting, does binutils/gas testsuite is all pass now? |
I am still debugging, sorry for that. |
I used the --debug option, but it seems not work rightly, here is the log: =====================================================
rv64gc_zba_zbb_zbc_zbe_zbf_zbm_zbp_zbr_zbs_zbt/ lp64d/ medlow | 0 | 0 | 2 | ===================================================== |
I guess it need to pass |
I think I am missing some context here on the dejagnu failure. I didn't see the original question. Normally all you need to do is look at the gas/testsuite/gas.log file in the build tree to see what was run and what failed. Just search for the FAIL string and ignore XFAIL. If using riscv-gnu-toolchain, this is inside build-binutils-{newlib,linux}. If you need more info in the gas.log file, you can add a -v (verbose) option to RUNTESTFLAGS. The more -v options you add the more verbose the output. I think it goes up to 4 -v options. -v is sometimes useful for gcc, if running the testsuite on a board and you need to see communication between dejagnu and the target board. But for running the gas testsuite I doubt that it is necessary. If using riscv-gnu-toolchain, it sets RUNTESTFLAGS itself, to set the target board to a simulator so that testcases can be executed. So you will need to hack the Makefile to add the -v options. Or else rewrite the source Makefile.in so that the user has a way to add options to dejagnu RUNTESTFLAGS. |
Thank you Jim, I will try it. |
https://www.gnu.org/software/dejagnu/manual/Debugging-a-test-case.html For example, |
786cf12
to
85dd8e0
Compare
I had fix the testcase errors, now it works right, thank you all. |
Add Pseudo-instructions of 'grevi' ‘gorci’ 'shfli/unshfli' in spec table 2.4-2.9.
Sorry for I missed of adding those instructions in table, I had added them. |
Thanks. It looks like you marked them all as zbb. Only rev8 and orc.b are zbb. The rest are zbp, same as grev/grevi and gorc/gorc.i. |
Update testcase with pseudo-instructions and fix their class set in ZBP, except rev8 and orc.b follow to ZBB.
Thank you Jim, I had update the testcase and fix the class set. |
I tested after the pseudo-instructions added and found three bugs here, test source (the error part form b-ext-64.s)
test step:
test result:
|
It seems not bugs? I guess you just need |
a13c4d1
to
a48a9e8
Compare
I use the arch and update the testcases, thanks. |
ebfbb3d
to
ade9f69
Compare
Update testcases with aliases for pseudo-instructions.
ade9f69
to
77ffe98
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same GNU coding standard problems. It would be great if these draft stuff are contributed to FSF integration branch, so that the coding standards are important. But if you just want to keep them downstream, then I have no objection to merge them into riscv-binutils-experiment branch.
#define MATCH_SHAMT_REV8_32 (0b11000 << OP_SH_SHAMT) | ||
#define MATCH_SHAMT_REV8_64 (0b111000 << OP_SH_SHAMT) | ||
#define MATCH_SHAMT_ORC_B (0b00111 << OP_SH_SHAMT) | ||
#define MATCH_SHAMT_REV_32 (0b11111 << OP_SH_SHAMT) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would suggest encode the (0b11111 << OP_SH_SHAMT) into riscv_opcodes directly, since these defines looks redundant.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am not sure how to do this, it is mean compute the result "MATCH_GORCI | MATCH_SHAMT_REV_32" and send it into riscv_opcodes or compute the result (0b11111 << OP_SH_SHAMT) and send it "MATCH_GORCI | res" ?
Fix the indents problems and update INSN_ALIAS FLAG for pseudo instructions.
Use 5bit coding for imm shamt part
#define MATCH_FSRW 0x400503B #define MATCH_FSRIW 0x400501B
This bug is locate to this commit: 85dd8e0 Where operands case 'r' was accidentally put under case 'C': /* RVC */ switch (*++d) {...} which caused print_insn_args() to print (info->stream, _("# internal error, undefined modifier (V%c)"), *d);
For shfli/unshfli alias, 5bit << OP_SH_SHAMT is enough
riscv_fpr_names to riscv_gpr_names
Fix [un]shfli shamt coding
e1d39fc
to
62e1569
Compare
Update testcase and fix merge errors with duplicate defines.
ae3bfc5
to
2420bb0
Compare
We had merge b-ext 1.0.0-rc with k-ext 1.0.0-rc in #254, you can find the dev branch for old version use in https://github.com/pz9115/riscv-binutils-gdb/tree/riscv-binutils-b-ext, thanks. |
Add remain b-ext insns with zbe zbf zbm zbr zbs zbt and their combine