On 06/08/2021 08.19, Thomas Huth wrote:
On 05/08/2021 17.27, David Hildenbrand wrote:
The last bit has to be ignored.
Signed-off-by: David Hildenbrand <da...@redhat.com>
---
target/s390x/tcg/mem_helper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/s390x/tcg/mem_helper.c b/target/s390x/tcg/mem_helper.c
index e0befd0f03..3c0820dd74 100644
--- a/target/s390x/tcg/mem_helper.c
+++ b/target/s390x/tcg/mem_helper.c
@@ -2210,7 +2210,7 @@ void HELPER(sske)(CPUS390XState *env, uint64_t r1,
uint64_t r2)
skeyclass = S390_SKEYS_GET_CLASS(ss);
}
- key = (uint8_t) r1;
+ key = r1 & 0xfe;
I'm not sure about this one ... could you cite a sentence in the PoP where
this is declared? For me it rather sounds like SSKE always sets the whole
storage key...
Ah, never mind, I missed that the rightmost bit is undefined and thus this
is likely ok. Did you check this on a real CPU, though?
Thomas