s390x-z17: Implement load indexed address instruction#12707
s390x-z17: Implement load indexed address instruction#12707theotherjimmy wants to merge 1 commit intobytecodealliance:mainfrom
Conversation
|
cc @uweigand |
Subscribe to Label ActionDetailsThis issue or pull request has been labeled: "cranelift", "isle"Thus the following users have been cc'd because of the following labels:
To subscribe or unsubscribe from this label, edit the |
b7410c0 to
ee70f7f
Compare
|
Big refactor to avoid expanding the Inst enum. Still needs some runtests, and running said tests. |
|
I added rustfmt check to my auto-test script. Sorry I missed that earlier. |
|
I Wrote tests and verified with a Z17 system. |
|
@theotherjimmy I think this will need a rebase; we did a big refactor to add type-parameters to instruction terms in the lowering ISLE environment. @uweigand would you be willing to review this for correctness? I'm happy to rubber-stamp it (it looks reasonable superficially) once we've got an ISA domain expert approval. Thanks! |
|
I'm working on the rebase right now. |
Starting with Z17, s390x includes some specialized indexed address computation instruction that allow for computing addresses in a way that could map to finding an element within an array, skipping over a structure header of a constant size. While this does not also load the address, it is usually more efficient, at least in terms of code size, to use this newer load indexed address (lxa, llxa) instruction instead of expanded address computations using add instructions.
This is currently created as a draft, as I'm figuring out how to test this. I think testing is needed, as it's a specific sequence of IR instructions, and while I'm confident that I have them correct, it's better to be certain with testing.