diff --git a/qemu/target/s390x/fpu_helper.c b/qemu/target/s390x/fpu_helper.c index 1325bc57..0fc39d71 100644 --- a/qemu/target/s390x/fpu_helper.c +++ b/qemu/target/s390x/fpu_helper.c @@ -29,9 +29,9 @@ /* #define DEBUG_HELPER */ #ifdef DEBUG_HELPER -#define HELPER_LOG(x...) qemu_log(x) +#define HELPER_LOG(x, ...) qemu_log(x) #else -#define HELPER_LOG(x...) +#define HELPER_LOG(x, ...) #endif #define RET128(F) (env->retxl = F.low, F.high) diff --git a/qemu/target/s390x/int_helper.c b/qemu/target/s390x/int_helper.c index 658507dd..7bd6ac95 100644 --- a/qemu/target/s390x/int_helper.c +++ b/qemu/target/s390x/int_helper.c @@ -28,9 +28,9 @@ /* #define DEBUG_HELPER */ #ifdef DEBUG_HELPER -#define HELPER_LOG(x...) qemu_log(x) +#define HELPER_LOG(x, ...) qemu_log(x) #else -#define HELPER_LOG(x...) +#define HELPER_LOG(x, ...) #endif /* 64/32 -> 32 signed division */ diff --git a/qemu/target/s390x/mem_helper.c b/qemu/target/s390x/mem_helper.c index 3a313d51..92277634 100644 --- a/qemu/target/s390x/mem_helper.c +++ b/qemu/target/s390x/mem_helper.c @@ -36,9 +36,9 @@ /* #define DEBUG_HELPER */ #ifdef DEBUG_HELPER -#define HELPER_LOG(x...) qemu_log(x) +#define HELPER_LOG(x, ...) qemu_log(x) #else -#define HELPER_LOG(x...) +#define HELPER_LOG(x, ...) #endif static inline bool psw_key_valid(CPUS390XState *env, uint8_t psw_key) @@ -1425,7 +1425,9 @@ static inline uint32_t do_unpkau(CPUS390XState *env, uint64_t dest, switch (b & 0xf) { case 0xa: case 0xc: - case 0xe ... 0xf: + // case 0xe ... 0xf: + case 0xe: + case 0xf: cc = 0; /* plus */ break; case 0xb: @@ -1433,7 +1435,17 @@ static inline uint32_t do_unpkau(CPUS390XState *env, uint64_t dest, cc = 1; /* minus */ break; default: - case 0x0 ... 0x9: + // case 0x0 ... 0x9: + case 0x0: + case 0x1: + case 0x2: + case 0x3: + case 0x4: + case 0x5: + case 0x6: + case 0x7: + case 0x8: + case 0x9: cc = 3; /* invalid */ break; } diff --git a/qemu/target/s390x/misc_helper.c b/qemu/target/s390x/misc_helper.c index 53a34cc6..3f84403f 100644 --- a/qemu/target/s390x/misc_helper.c +++ b/qemu/target/s390x/misc_helper.c @@ -41,9 +41,9 @@ /* #define DEBUG_HELPER */ #ifdef DEBUG_HELPER -#define HELPER_LOG(x...) qemu_log(x) +#define HELPER_LOG(x, ...) qemu_log(x) #else -#define HELPER_LOG(x...) +#define HELPER_LOG(x, ...) #endif /* Raise an exception statically from a TB. */ diff --git a/qemu/target/s390x/mmu_helper.c b/qemu/target/s390x/mmu_helper.c index 829dec55..4a6bef89 100644 --- a/qemu/target/s390x/mmu_helper.c +++ b/qemu/target/s390x/mmu_helper.c @@ -508,7 +508,7 @@ int s390_cpu_virt_mem_rw(S390CPU *cpu, vaddr laddr, uint8_t ar, void *hostbuf, cpu_physical_memory_rw(env_cpu(env)->as, pages[i] | (laddr & ~TARGET_PAGE_MASK), hostbuf, currlen, is_write); laddr += currlen; - hostbuf += currlen; + hostbuf = (void *)(((char *)hostbuf) + currlen); len -= currlen; } } diff --git a/qemu/target/s390x/translate.c b/qemu/target/s390x/translate.c index 3d819f23..9903b0ca 100644 --- a/qemu/target/s390x/translate.c +++ b/qemu/target/s390x/translate.c @@ -6595,14 +6595,42 @@ static const DisasInsn *extract_insn(CPUS390XState *env, DisasContext *s) break; case 0xc5: /* MII */ case 0xc7: /* SMI */ - case 0xd0 ... 0xdf: /* SS */ + case 0xd0: + case 0xd1: + case 0xd2: + case 0xd3: + case 0xd4: + case 0xd5: + case 0xd6: + case 0xd7: + case 0xd8: + case 0xd9: + case 0xda: + case 0xdb: + case 0xdc: + case 0xdd: + case 0xde: + case 0xdf: + // case 0xd0 ... 0xdf: /* SS */ case 0xe1: /* SS */ case 0xe2: /* SS */ case 0xe8: /* SS */ case 0xe9: /* SS */ case 0xea: /* SS */ - case 0xee ... 0xf3: /* SS */ - case 0xf8 ... 0xfd: /* SS */ + case 0xee: + case 0xef: + case 0xf0: + case 0xf1: + case 0xf2: + case 0xf3: + // case 0xee ... 0xf3: /* SS */ + case 0xf8: + case 0xf9: + case 0xfa: + case 0xfb: + case 0xfc: + case 0xfd: + // case 0xf8 ... 0xfd: /* SS */ op2 = 0; break; default: