-
Notifications
You must be signed in to change notification settings - Fork 39
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
Fix inline assembly test #241
Conversation
@@ -111,25 +110,25 @@ macro_rules! check_explicit_reg { | |||
|
|||
// CHECK-LABEL: a5_i8: | |||
// CHECK: #APP | |||
// CHECK: mov a5, a5 | |||
// CHECK: or a5, a5, a5 | |||
// CHECK: #NO_APP | |||
check_explicit_reg!(a5_i8 i8 "a5" "mov"); |
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.
Btw, this test actually appears to be doing what the ISA says it should not do.
Xtensa Instruction Set Architecture (ISA) Reference Manual (436 page) says:
ar
andas
should not specify the same register due to theMOV.N
restriction.
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.
Interestingly the official ISA from cadence omits this line: https://www.cadence.com/content/dam/cadence-www/global/en_US/documents/tools/silicon-solutions/compute-ip/isa-summary.pdf (page 495). I'll ask the LLVM team what their reference is.
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.
Ah, it seems that what I was looking at was an old manual.
https://web.archive.org/web/20241005102231/https://0x04.net/~mwk/doc/xtensa.pdf (page 2)
Issue Date: 4/2010
RC-2010.1 Release
PD-09-0801-10-01
Product Release:RI-2021.8
Last Updated:04/2022
Modification: 737871
Thanks for the PRs! I've rolled your changes into the current Xtensa asm commit and added you as a co-author so you still get the credit. I've started the 1.82.0.2 release, I'll ping you wen the builds are complete and you can try it out before I set it to latest. |
Some of the builds are starting to finish: https://github.com/esp-rs/rust-build/releases/tag/v1.82.0.2 You can install manually with Let me know if you run into any issues :) |
Depends on #240. (The first commit is from it.)
inline assembly test (tests/assembly/asm/xtensa-types.rs) is currently broken due to some issues. This PR fixes them:
reg
tests usemov
assembler macro that usingor
instruction. The assembler emitsor
, but "CHECK:" usesmov
.mov.n
(narrow move) instruction instead ofmov
.freg
tests are broken due to an issue will be fixed by Add XTENSA_ALLOWED_FEATURES to supported_target_features #240.