Add zNext support - #7525
Conversation
|
@joransiu @0xdaryl Can we please get review on these changes ? This PR should be merge with OpenJ9 PR : eclipse-openj9/openj9#20507 |
|
I can review for general structural correctness, but for the actual architectural changes I will defer to Joran's expertise. |
| */ | ||
| bool yankIndexScalingOp() | ||
| { | ||
| return false; |
There was a problem hiding this comment.
This should probably return arch < zNext or check for LXA support instead of always returning false
There was a problem hiding this comment.
I will update this.
There was a problem hiding this comment.
@r30shah : Does @Spencer-Comin's comment still need to be added w/ the zNext check?
There was a problem hiding this comment.
@joransiu @Spencer-Comin I added a codegen flag in 0b0086b to be set if the LXA instruction is available (zNext or can emulate those) to be used throughout.
7cbf69b to
5b84c92
Compare
5b84c92 to
3ba6ccd
Compare
Sorry for the delay @r30shah. I'm looking at it now. |
joransiu
left a comment
There was a problem hiding this comment.
Changes LGTM besides the outstanding comment from Spencer.
| */ | ||
| bool yankIndexScalingOp() | ||
| { | ||
| return false; |
There was a problem hiding this comment.
@r30shah : Does @Spencer-Comin's comment still need to be added w/ the zNext check?
|
Please fix the merge conflicts. |
Changes in this commit adds support for zNext instructions as well as adds processor recognition and facility checks. Signed-off-by: Spencer Comin <spencer.comin@ibm.com>
Emulating the instructions when support is not availble on hardware allows testing of exploitation that uses zNext instructions on older IBM Z hardware. Changes in this commits adds necessary changes for emulating zNext instructions. Signed-off-by: Spencer Comin <spencer.comin@ibm.com>
Adds support for generating load indexed address instructions for the add tree in axaddEvaluator when the tree has the correct shape. Signed-off-by: Spencer Comin <spencer.comin@ibm.com>
Changes in this commit adds exploitation of Count leading and trailing zeros on zNext for opcodes i/lnolz and i/lnotz respectively. Apart from using the zNext instructions for these opcodes, this commit also adds supporting changes to enable zNext emulation for these zNext instructions. Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
Accelerate Integer.expand, Integer.compress, Long.expand, and Long.compress using the BDEPG and BEXTG instructions in zNext. Signed-off-by: Spencer Comin <spencer.comin@ibm.com>
Moving canEmulate enables us to check if emulation is enabled and if the instruction op code supports emulation through a single call. Signed-off-by: Shubham Verma <shubhamv.sv@gmail.com>
Accelerate DAA ExternalDecimal.checkExternalDecimal api for verifying Zoned/External decimals using zNext instruction, Vector Test Zoned. This commit also includes changes required for generating Vector Test Zoned instruction. Signed-off-by: Shubham Verma <shubhamv.sv@gmail.com>
Load indexed address register instructions are used to generate address to access element in the array. This commit adds a code-gen query for using LXA instruction to used at various places while doing pattern matching. Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
0b0086b to
2657050
Compare
|
Looking into the changes - I see that in PR - #7603 DAA related changes were moved to OpenJ9 which was causing the merge conflict. I have resolved this from this PR and looking to port that to OpenJ9. |
|
Jenkins build all |
Changes in this PR adds following supporting changes for zNext processor and its
exploitation.
-Adds support for generating load indexed address instructions for the
add tree in axaddEvaluator when the tree has the correct shape.
OpenJ9.