From 88a29e867528c57151103e64a966a9cbaeec852f Mon Sep 17 00:00:00 2001 From: David Hildenbrand Date: Fri, 31 May 2019 16:31:44 +0200 Subject: [PATCH] s390x/tcg: Fix max_byte detection for stfle used_stfl_bytes is 0, before initialized via prepare_stfl() on the first invocation. We have to move the calculation of max_bytes after prepare_stfl(). Reviewed-by: Richard Henderson Signed-off-by: David Hildenbrand --- target/s390x/misc_helper.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c index ee67c1fa0c..34476134a4 100644 --- a/target/s390x/misc_helper.c +++ b/target/s390x/misc_helper.c @@ -669,7 +669,7 @@ uint32_t HELPER(stfle)(CPUS390XState *env, uint64_t addr) { const uintptr_t ra = GETPC(); const int count_bytes = ((env->regs[0] & 0xff) + 1) * 8; - const int max_bytes = ROUND_UP(used_stfl_bytes, 8); + int max_bytes; int i; if (addr & 0x7) { @@ -677,6 +677,7 @@ uint32_t HELPER(stfle)(CPUS390XState *env, uint64_t addr) } prepare_stfl(); + max_bytes = ROUND_UP(used_stfl_bytes, 8); for (i = 0; i < count_bytes; ++i) { cpu_stb_data_ra(env, addr + i, stfl_bytes[i], ra); } -- 2.49.0