|
|
5544c1 |
From 208547c7afbe6ee8a9a1f81095e67a6cbe4a37ec Mon Sep 17 00:00:00 2001
|
|
|
5544c1 |
From: Blue Swirl <blauwirbel@gmail.com>
|
|
|
5544c1 |
Date: Sun, 2 Sep 2012 07:33:39 +0000
|
|
|
5544c1 |
Subject: [PATCH] target-s390x: avoid AREG0 for misc helpers
|
|
|
5544c1 |
|
|
|
5544c1 |
Make misc helpers take a parameter for CPUState instead
|
|
|
5544c1 |
of relying on global env.
|
|
|
5544c1 |
|
|
|
5544c1 |
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
|
|
|
5544c1 |
[agraf: fix conflict]
|
|
|
5544c1 |
Signed-off-by: Alexander Graf <agraf@suse.de>
|
|
|
5544c1 |
|
|
|
5544c1 |
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
|
|
|
5544c1 |
---
|
|
|
5544c1 |
target-s390x/Makefile.objs | 1 -
|
|
|
5544c1 |
target-s390x/helper.h | 26 +++++++++++-----------
|
|
|
5544c1 |
target-s390x/mem_helper.c | 2 +-
|
|
|
5544c1 |
target-s390x/misc_helper.c | 55 +++++++++++++++++++++++++---------------------
|
|
|
5544c1 |
target-s390x/translate.c | 32 +++++++++++++--------------
|
|
|
5544c1 |
5 files changed, 60 insertions(+), 56 deletions(-)
|
|
|
5544c1 |
|
|
|
5544c1 |
diff --git a/target-s390x/Makefile.objs b/target-s390x/Makefile.objs
|
|
|
5544c1 |
index 736cf33..156d946 100644
|
|
|
5544c1 |
--- a/target-s390x/Makefile.objs
|
|
|
5544c1 |
+++ b/target-s390x/Makefile.objs
|
|
|
5544c1 |
@@ -4,4 +4,3 @@ obj-$(CONFIG_SOFTMMU) += machine.o
|
|
|
5544c1 |
obj-$(CONFIG_KVM) += kvm.o
|
|
|
5544c1 |
|
|
|
5544c1 |
$(obj)/mem_helper.o: QEMU_CFLAGS += $(HELPER_CFLAGS)
|
|
|
5544c1 |
-$(obj)/misc_helper.o: QEMU_CFLAGS += $(HELPER_CFLAGS)
|
|
|
5544c1 |
diff --git a/target-s390x/helper.h b/target-s390x/helper.h
|
|
|
5544c1 |
index 876b88e..f4e0b37 100644
|
|
|
5544c1 |
--- a/target-s390x/helper.h
|
|
|
5544c1 |
+++ b/target-s390x/helper.h
|
|
|
5544c1 |
@@ -1,6 +1,6 @@
|
|
|
5544c1 |
#include "def-helper.h"
|
|
|
5544c1 |
|
|
|
5544c1 |
-DEF_HELPER_1(exception, void, i32)
|
|
|
5544c1 |
+DEF_HELPER_2(exception, void, env, i32)
|
|
|
5544c1 |
DEF_HELPER_3(nc, i32, i32, i64, i64)
|
|
|
5544c1 |
DEF_HELPER_3(oc, i32, i32, i64, i64)
|
|
|
5544c1 |
DEF_HELPER_3(xc, i32, i32, i64, i64)
|
|
|
5544c1 |
@@ -113,20 +113,20 @@ DEF_HELPER_FLAGS_1(cvd, TCG_CALL_PURE|TCG_CALL_CONST, i64, s32)
|
|
|
5544c1 |
DEF_HELPER_3(unpk, void, i32, i64, i64)
|
|
|
5544c1 |
DEF_HELPER_3(tr, void, i32, i64, i64)
|
|
|
5544c1 |
|
|
|
5544c1 |
-DEF_HELPER_2(servc, i32, i32, i64)
|
|
|
5544c1 |
-DEF_HELPER_3(diag, i64, i32, i64, i64)
|
|
|
5544c1 |
+DEF_HELPER_3(servc, i32, env, i32, i64)
|
|
|
5544c1 |
+DEF_HELPER_4(diag, i64, env, i32, i64, i64)
|
|
|
5544c1 |
DEF_HELPER_3(load_psw, void, env, i64, i64)
|
|
|
5544c1 |
DEF_HELPER_1(program_interrupt, void, i32)
|
|
|
5544c1 |
-DEF_HELPER_FLAGS_1(stidp, TCG_CALL_CONST, void, i64)
|
|
|
5544c1 |
-DEF_HELPER_FLAGS_1(spx, TCG_CALL_CONST, void, i64)
|
|
|
5544c1 |
+DEF_HELPER_FLAGS_2(stidp, TCG_CALL_CONST, void, env, i64)
|
|
|
5544c1 |
+DEF_HELPER_FLAGS_2(spx, TCG_CALL_CONST, void, env, i64)
|
|
|
5544c1 |
DEF_HELPER_FLAGS_1(sck, TCG_CALL_CONST, i32, i64)
|
|
|
5544c1 |
-DEF_HELPER_1(stck, i32, i64)
|
|
|
5544c1 |
-DEF_HELPER_1(stcke, i32, i64)
|
|
|
5544c1 |
-DEF_HELPER_FLAGS_1(sckc, TCG_CALL_CONST, void, i64)
|
|
|
5544c1 |
-DEF_HELPER_FLAGS_1(stckc, TCG_CALL_CONST, void, i64)
|
|
|
5544c1 |
-DEF_HELPER_FLAGS_1(spt, TCG_CALL_CONST, void, i64)
|
|
|
5544c1 |
-DEF_HELPER_FLAGS_1(stpt, TCG_CALL_CONST, void, i64)
|
|
|
5544c1 |
-DEF_HELPER_3(stsi, i32, i64, i32, i32)
|
|
|
5544c1 |
+DEF_HELPER_2(stck, i32, env, i64)
|
|
|
5544c1 |
+DEF_HELPER_2(stcke, i32, env, i64)
|
|
|
5544c1 |
+DEF_HELPER_FLAGS_2(sckc, TCG_CALL_CONST, void, env, i64)
|
|
|
5544c1 |
+DEF_HELPER_FLAGS_2(stckc, TCG_CALL_CONST, void, env, i64)
|
|
|
5544c1 |
+DEF_HELPER_FLAGS_2(spt, TCG_CALL_CONST, void, env, i64)
|
|
|
5544c1 |
+DEF_HELPER_FLAGS_2(stpt, TCG_CALL_CONST, void, env, i64)
|
|
|
5544c1 |
+DEF_HELPER_4(stsi, i32, env, i64, i32, i32)
|
|
|
5544c1 |
DEF_HELPER_3(lctl, void, i32, i64, i32)
|
|
|
5544c1 |
DEF_HELPER_3(lctlg, void, i32, i64, i32)
|
|
|
5544c1 |
DEF_HELPER_3(stctl, void, i32, i64, i32)
|
|
|
5544c1 |
@@ -138,7 +138,7 @@ DEF_HELPER_FLAGS_2(rrbe, TCG_CALL_CONST, i32, i32, i64)
|
|
|
5544c1 |
DEF_HELPER_2(csp, i32, i32, i32)
|
|
|
5544c1 |
DEF_HELPER_3(mvcs, i32, i64, i64, i64)
|
|
|
5544c1 |
DEF_HELPER_3(mvcp, i32, i64, i64, i64)
|
|
|
5544c1 |
-DEF_HELPER_3(sigp, i32, i64, i32, i64)
|
|
|
5544c1 |
+DEF_HELPER_4(sigp, i32, env, i64, i32, i64)
|
|
|
5544c1 |
DEF_HELPER_2(sacf, void, env, i64)
|
|
|
5544c1 |
DEF_HELPER_FLAGS_2(ipte, TCG_CALL_CONST, void, i64, i64)
|
|
|
5544c1 |
DEF_HELPER_FLAGS_0(ptlb, TCG_CALL_CONST, void)
|
|
|
5544c1 |
diff --git a/target-s390x/mem_helper.c b/target-s390x/mem_helper.c
|
|
|
5544c1 |
index 3f8b3ba..52f2602 100644
|
|
|
5544c1 |
--- a/target-s390x/mem_helper.c
|
|
|
5544c1 |
+++ b/target-s390x/mem_helper.c
|
|
|
5544c1 |
@@ -595,7 +595,7 @@ uint32_t HELPER(ex)(uint32_t cc, uint64_t v1, uint64_t addr, uint64_t ret)
|
|
|
5544c1 |
env->psw.addr = ret - 4;
|
|
|
5544c1 |
env->int_svc_code = (insn | v1) & 0xff;
|
|
|
5544c1 |
env->int_svc_ilc = 4;
|
|
|
5544c1 |
- helper_exception(EXCP_SVC);
|
|
|
5544c1 |
+ helper_exception(env, EXCP_SVC);
|
|
|
5544c1 |
} else if ((insn & 0xff00) == 0xbf00) {
|
|
|
5544c1 |
uint32_t insn2, r1, r3, b2, d2;
|
|
|
5544c1 |
|
|
|
5544c1 |
diff --git a/target-s390x/misc_helper.c b/target-s390x/misc_helper.c
|
|
|
5544c1 |
index 1d5137f..ced26c6 100644
|
|
|
5544c1 |
--- a/target-s390x/misc_helper.c
|
|
|
5544c1 |
+++ b/target-s390x/misc_helper.c
|
|
|
5544c1 |
@@ -21,7 +21,6 @@
|
|
|
5544c1 |
#include "cpu.h"
|
|
|
5544c1 |
#include "memory.h"
|
|
|
5544c1 |
#include "cputlb.h"
|
|
|
5544c1 |
-#include "dyngen-exec.h"
|
|
|
5544c1 |
#include "host-utils.h"
|
|
|
5544c1 |
#include "helper.h"
|
|
|
5544c1 |
#include <string.h>
|
|
|
5544c1 |
@@ -32,7 +31,10 @@
|
|
|
5544c1 |
#endif
|
|
|
5544c1 |
|
|
|
5544c1 |
#if !defined(CONFIG_USER_ONLY)
|
|
|
5544c1 |
+/* temporarily disabled due to wrapper use */
|
|
|
5544c1 |
+#if 0
|
|
|
5544c1 |
#include "softmmu_exec.h"
|
|
|
5544c1 |
+#endif
|
|
|
5544c1 |
#include "sysemu.h"
|
|
|
5544c1 |
#endif
|
|
|
5544c1 |
|
|
|
5544c1 |
@@ -44,7 +46,7 @@
|
|
|
5544c1 |
#endif
|
|
|
5544c1 |
|
|
|
5544c1 |
/* raise an exception */
|
|
|
5544c1 |
-void HELPER(exception)(uint32_t excp)
|
|
|
5544c1 |
+void HELPER(exception)(CPUS390XState *env, uint32_t excp)
|
|
|
5544c1 |
{
|
|
|
5544c1 |
HELPER_LOG("%s: exception %d\n", __func__, excp);
|
|
|
5544c1 |
env->exception_index = excp;
|
|
|
5544c1 |
@@ -112,7 +114,7 @@ int sclp_service_call(CPUS390XState *env, uint32_t sccb, uint64_t code)
|
|
|
5544c1 |
}
|
|
|
5544c1 |
|
|
|
5544c1 |
/* SCLP service call */
|
|
|
5544c1 |
-uint32_t HELPER(servc)(uint32_t r1, uint64_t r2)
|
|
|
5544c1 |
+uint32_t HELPER(servc)(CPUS390XState *env, uint32_t r1, uint64_t r2)
|
|
|
5544c1 |
{
|
|
|
5544c1 |
int r;
|
|
|
5544c1 |
|
|
|
5544c1 |
@@ -125,7 +127,8 @@ uint32_t HELPER(servc)(uint32_t r1, uint64_t r2)
|
|
|
5544c1 |
}
|
|
|
5544c1 |
|
|
|
5544c1 |
/* DIAG */
|
|
|
5544c1 |
-uint64_t HELPER(diag)(uint32_t num, uint64_t mem, uint64_t code)
|
|
|
5544c1 |
+uint64_t HELPER(diag)(CPUS390XState *env, uint32_t num, uint64_t mem,
|
|
|
5544c1 |
+ uint64_t code)
|
|
|
5544c1 |
{
|
|
|
5544c1 |
uint64_t r;
|
|
|
5544c1 |
|
|
|
5544c1 |
@@ -155,17 +158,17 @@ uint64_t HELPER(diag)(uint32_t num, uint64_t mem, uint64_t code)
|
|
|
5544c1 |
}
|
|
|
5544c1 |
|
|
|
5544c1 |
/* Store CPU ID */
|
|
|
5544c1 |
-void HELPER(stidp)(uint64_t a1)
|
|
|
5544c1 |
+void HELPER(stidp)(CPUS390XState *env, uint64_t a1)
|
|
|
5544c1 |
{
|
|
|
5544c1 |
- stq(a1, env->cpu_num);
|
|
|
5544c1 |
+ cpu_stq_data(env, a1, env->cpu_num);
|
|
|
5544c1 |
}
|
|
|
5544c1 |
|
|
|
5544c1 |
/* Set Prefix */
|
|
|
5544c1 |
-void HELPER(spx)(uint64_t a1)
|
|
|
5544c1 |
+void HELPER(spx)(CPUS390XState *env, uint64_t a1)
|
|
|
5544c1 |
{
|
|
|
5544c1 |
uint32_t prefix;
|
|
|
5544c1 |
|
|
|
5544c1 |
- prefix = ldl(a1);
|
|
|
5544c1 |
+ prefix = cpu_ldl_data(env, a1);
|
|
|
5544c1 |
env->psa = prefix & 0xfffff000;
|
|
|
5544c1 |
qemu_log("prefix: %#x\n", prefix);
|
|
|
5544c1 |
tlb_flush_page(env, 0);
|
|
|
5544c1 |
@@ -191,31 +194,31 @@ static inline uint64_t clock_value(CPUS390XState *env)
|
|
|
5544c1 |
}
|
|
|
5544c1 |
|
|
|
5544c1 |
/* Store Clock */
|
|
|
5544c1 |
-uint32_t HELPER(stck)(uint64_t a1)
|
|
|
5544c1 |
+uint32_t HELPER(stck)(CPUS390XState *env, uint64_t a1)
|
|
|
5544c1 |
{
|
|
|
5544c1 |
- stq(a1, clock_value(env));
|
|
|
5544c1 |
+ cpu_stq_data(env, a1, clock_value(env));
|
|
|
5544c1 |
|
|
|
5544c1 |
return 0;
|
|
|
5544c1 |
}
|
|
|
5544c1 |
|
|
|
5544c1 |
/* Store Clock Extended */
|
|
|
5544c1 |
-uint32_t HELPER(stcke)(uint64_t a1)
|
|
|
5544c1 |
+uint32_t HELPER(stcke)(CPUS390XState *env, uint64_t a1)
|
|
|
5544c1 |
{
|
|
|
5544c1 |
- stb(a1, 0);
|
|
|
5544c1 |
+ cpu_stb_data(env, a1, 0);
|
|
|
5544c1 |
/* basically the same value as stck */
|
|
|
5544c1 |
- stq(a1 + 1, clock_value(env) | env->cpu_num);
|
|
|
5544c1 |
+ cpu_stq_data(env, a1 + 1, clock_value(env) | env->cpu_num);
|
|
|
5544c1 |
/* more fine grained than stck */
|
|
|
5544c1 |
- stq(a1 + 9, 0);
|
|
|
5544c1 |
+ cpu_stq_data(env, a1 + 9, 0);
|
|
|
5544c1 |
/* XXX programmable fields */
|
|
|
5544c1 |
- stw(a1 + 17, 0);
|
|
|
5544c1 |
+ cpu_stw_data(env, a1 + 17, 0);
|
|
|
5544c1 |
|
|
|
5544c1 |
return 0;
|
|
|
5544c1 |
}
|
|
|
5544c1 |
|
|
|
5544c1 |
/* Set Clock Comparator */
|
|
|
5544c1 |
-void HELPER(sckc)(uint64_t a1)
|
|
|
5544c1 |
+void HELPER(sckc)(CPUS390XState *env, uint64_t a1)
|
|
|
5544c1 |
{
|
|
|
5544c1 |
- uint64_t time = ldq(a1);
|
|
|
5544c1 |
+ uint64_t time = cpu_ldq_data(env, a1);
|
|
|
5544c1 |
|
|
|
5544c1 |
if (time == -1ULL) {
|
|
|
5544c1 |
return;
|
|
|
5544c1 |
@@ -230,16 +233,16 @@ void HELPER(sckc)(uint64_t a1)
|
|
|
5544c1 |
}
|
|
|
5544c1 |
|
|
|
5544c1 |
/* Store Clock Comparator */
|
|
|
5544c1 |
-void HELPER(stckc)(uint64_t a1)
|
|
|
5544c1 |
+void HELPER(stckc)(CPUS390XState *env, uint64_t a1)
|
|
|
5544c1 |
{
|
|
|
5544c1 |
/* XXX implement */
|
|
|
5544c1 |
- stq(a1, 0);
|
|
|
5544c1 |
+ cpu_stq_data(env, a1, 0);
|
|
|
5544c1 |
}
|
|
|
5544c1 |
|
|
|
5544c1 |
/* Set CPU Timer */
|
|
|
5544c1 |
-void HELPER(spt)(uint64_t a1)
|
|
|
5544c1 |
+void HELPER(spt)(CPUS390XState *env, uint64_t a1)
|
|
|
5544c1 |
{
|
|
|
5544c1 |
- uint64_t time = ldq(a1);
|
|
|
5544c1 |
+ uint64_t time = cpu_ldq_data(env, a1);
|
|
|
5544c1 |
|
|
|
5544c1 |
if (time == -1ULL) {
|
|
|
5544c1 |
return;
|
|
|
5544c1 |
@@ -252,14 +255,15 @@ void HELPER(spt)(uint64_t a1)
|
|
|
5544c1 |
}
|
|
|
5544c1 |
|
|
|
5544c1 |
/* Store CPU Timer */
|
|
|
5544c1 |
-void HELPER(stpt)(uint64_t a1)
|
|
|
5544c1 |
+void HELPER(stpt)(CPUS390XState *env, uint64_t a1)
|
|
|
5544c1 |
{
|
|
|
5544c1 |
/* XXX implement */
|
|
|
5544c1 |
- stq(a1, 0);
|
|
|
5544c1 |
+ cpu_stq_data(env, a1, 0);
|
|
|
5544c1 |
}
|
|
|
5544c1 |
|
|
|
5544c1 |
/* Store System Information */
|
|
|
5544c1 |
-uint32_t HELPER(stsi)(uint64_t a0, uint32_t r0, uint32_t r1)
|
|
|
5544c1 |
+uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0, uint32_t r0,
|
|
|
5544c1 |
+ uint32_t r1)
|
|
|
5544c1 |
{
|
|
|
5544c1 |
int cc = 0;
|
|
|
5544c1 |
int sel1, sel2;
|
|
|
5544c1 |
@@ -384,7 +388,8 @@ uint32_t HELPER(stsi)(uint64_t a0, uint32_t r0, uint32_t r1)
|
|
|
5544c1 |
return cc;
|
|
|
5544c1 |
}
|
|
|
5544c1 |
|
|
|
5544c1 |
-uint32_t HELPER(sigp)(uint64_t order_code, uint32_t r1, uint64_t cpu_addr)
|
|
|
5544c1 |
+uint32_t HELPER(sigp)(CPUS390XState *env, uint64_t order_code, uint32_t r1,
|
|
|
5544c1 |
+ uint64_t cpu_addr)
|
|
|
5544c1 |
{
|
|
|
5544c1 |
int cc = 0;
|
|
|
5544c1 |
|
|
|
5544c1 |
diff --git a/target-s390x/translate.c b/target-s390x/translate.c
|
|
|
5544c1 |
index 1d87272..0c61e63 100644
|
|
|
5544c1 |
--- a/target-s390x/translate.c
|
|
|
5544c1 |
+++ b/target-s390x/translate.c
|
|
|
5544c1 |
@@ -312,7 +312,7 @@ static inline void gen_debug(DisasContext *s)
|
|
|
5544c1 |
TCGv_i32 tmp = tcg_const_i32(EXCP_DEBUG);
|
|
|
5544c1 |
update_psw_addr(s);
|
|
|
5544c1 |
gen_op_calc_cc(s);
|
|
|
5544c1 |
- gen_helper_exception(tmp);
|
|
|
5544c1 |
+ gen_helper_exception(cpu_env, tmp);
|
|
|
5544c1 |
tcg_temp_free_i32(tmp);
|
|
|
5544c1 |
s->is_jmp = DISAS_EXCP;
|
|
|
5544c1 |
}
|
|
|
5544c1 |
@@ -324,7 +324,7 @@ static void gen_illegal_opcode(DisasContext *s, int ilc)
|
|
|
5544c1 |
TCGv_i32 tmp = tcg_const_i32(EXCP_SPEC);
|
|
|
5544c1 |
update_psw_addr(s);
|
|
|
5544c1 |
gen_op_calc_cc(s);
|
|
|
5544c1 |
- gen_helper_exception(tmp);
|
|
|
5544c1 |
+ gen_helper_exception(cpu_env, tmp);
|
|
|
5544c1 |
tcg_temp_free_i32(tmp);
|
|
|
5544c1 |
s->is_jmp = DISAS_EXCP;
|
|
|
5544c1 |
}
|
|
|
5544c1 |
@@ -377,7 +377,7 @@ static void gen_program_exception(DisasContext *s, int ilc, int code)
|
|
|
5544c1 |
|
|
|
5544c1 |
/* trigger exception */
|
|
|
5544c1 |
tmp = tcg_const_i32(EXCP_PGM);
|
|
|
5544c1 |
- gen_helper_exception(tmp);
|
|
|
5544c1 |
+ gen_helper_exception(cpu_env, tmp);
|
|
|
5544c1 |
tcg_temp_free_i32(tmp);
|
|
|
5544c1 |
|
|
|
5544c1 |
/* end TB here */
|
|
|
5544c1 |
@@ -2712,7 +2712,7 @@ static void disas_b2(DisasContext *s, int op, uint32_t insn)
|
|
|
5544c1 |
decode_rs(s, insn, &r1, &r3, &b2, &d2;;
|
|
|
5544c1 |
tmp = get_address(s, 0, b2, d2);
|
|
|
5544c1 |
potential_page_fault(s);
|
|
|
5544c1 |
- gen_helper_stidp(tmp);
|
|
|
5544c1 |
+ gen_helper_stidp(cpu_env, tmp);
|
|
|
5544c1 |
tcg_temp_free_i64(tmp);
|
|
|
5544c1 |
break;
|
|
|
5544c1 |
case 0x04: /* SCK D2(B2) [S] */
|
|
|
5544c1 |
@@ -2730,7 +2730,7 @@ static void disas_b2(DisasContext *s, int op, uint32_t insn)
|
|
|
5544c1 |
decode_rs(s, insn, &r1, &r3, &b2, &d2;;
|
|
|
5544c1 |
tmp = get_address(s, 0, b2, d2);
|
|
|
5544c1 |
potential_page_fault(s);
|
|
|
5544c1 |
- gen_helper_stck(cc_op, tmp);
|
|
|
5544c1 |
+ gen_helper_stck(cc_op, cpu_env, tmp);
|
|
|
5544c1 |
set_cc_static(s);
|
|
|
5544c1 |
tcg_temp_free_i64(tmp);
|
|
|
5544c1 |
break;
|
|
|
5544c1 |
@@ -2740,7 +2740,7 @@ static void disas_b2(DisasContext *s, int op, uint32_t insn)
|
|
|
5544c1 |
decode_rs(s, insn, &r1, &r3, &b2, &d2;;
|
|
|
5544c1 |
tmp = get_address(s, 0, b2, d2);
|
|
|
5544c1 |
potential_page_fault(s);
|
|
|
5544c1 |
- gen_helper_sckc(tmp);
|
|
|
5544c1 |
+ gen_helper_sckc(cpu_env, tmp);
|
|
|
5544c1 |
tcg_temp_free_i64(tmp);
|
|
|
5544c1 |
break;
|
|
|
5544c1 |
case 0x07: /* STCKC D2(B2) [S] */
|
|
|
5544c1 |
@@ -2749,7 +2749,7 @@ static void disas_b2(DisasContext *s, int op, uint32_t insn)
|
|
|
5544c1 |
decode_rs(s, insn, &r1, &r3, &b2, &d2;;
|
|
|
5544c1 |
tmp = get_address(s, 0, b2, d2);
|
|
|
5544c1 |
potential_page_fault(s);
|
|
|
5544c1 |
- gen_helper_stckc(tmp);
|
|
|
5544c1 |
+ gen_helper_stckc(cpu_env, tmp);
|
|
|
5544c1 |
tcg_temp_free_i64(tmp);
|
|
|
5544c1 |
break;
|
|
|
5544c1 |
case 0x08: /* SPT D2(B2) [S] */
|
|
|
5544c1 |
@@ -2758,7 +2758,7 @@ static void disas_b2(DisasContext *s, int op, uint32_t insn)
|
|
|
5544c1 |
decode_rs(s, insn, &r1, &r3, &b2, &d2;;
|
|
|
5544c1 |
tmp = get_address(s, 0, b2, d2);
|
|
|
5544c1 |
potential_page_fault(s);
|
|
|
5544c1 |
- gen_helper_spt(tmp);
|
|
|
5544c1 |
+ gen_helper_spt(cpu_env, tmp);
|
|
|
5544c1 |
tcg_temp_free_i64(tmp);
|
|
|
5544c1 |
break;
|
|
|
5544c1 |
case 0x09: /* STPT D2(B2) [S] */
|
|
|
5544c1 |
@@ -2767,7 +2767,7 @@ static void disas_b2(DisasContext *s, int op, uint32_t insn)
|
|
|
5544c1 |
decode_rs(s, insn, &r1, &r3, &b2, &d2;;
|
|
|
5544c1 |
tmp = get_address(s, 0, b2, d2);
|
|
|
5544c1 |
potential_page_fault(s);
|
|
|
5544c1 |
- gen_helper_stpt(tmp);
|
|
|
5544c1 |
+ gen_helper_stpt(cpu_env, tmp);
|
|
|
5544c1 |
tcg_temp_free_i64(tmp);
|
|
|
5544c1 |
break;
|
|
|
5544c1 |
case 0x0a: /* SPKA D2(B2) [S] */
|
|
|
5544c1 |
@@ -2793,7 +2793,7 @@ static void disas_b2(DisasContext *s, int op, uint32_t insn)
|
|
|
5544c1 |
decode_rs(s, insn, &r1, &r3, &b2, &d2;;
|
|
|
5544c1 |
tmp = get_address(s, 0, b2, d2);
|
|
|
5544c1 |
potential_page_fault(s);
|
|
|
5544c1 |
- gen_helper_spx(tmp);
|
|
|
5544c1 |
+ gen_helper_spx(cpu_env, tmp);
|
|
|
5544c1 |
tcg_temp_free_i64(tmp);
|
|
|
5544c1 |
break;
|
|
|
5544c1 |
case 0x11: /* STPX D2(B2) [S] */
|
|
|
5544c1 |
@@ -2906,7 +2906,7 @@ static void disas_b2(DisasContext *s, int op, uint32_t insn)
|
|
|
5544c1 |
decode_rs(s, insn, &r1, &r3, &b2, &d2;;
|
|
|
5544c1 |
tmp = get_address(s, 0, b2, d2);
|
|
|
5544c1 |
potential_page_fault(s);
|
|
|
5544c1 |
- gen_helper_stcke(cc_op, tmp);
|
|
|
5544c1 |
+ gen_helper_stcke(cc_op, cpu_env, tmp);
|
|
|
5544c1 |
set_cc_static(s);
|
|
|
5544c1 |
tcg_temp_free_i64(tmp);
|
|
|
5544c1 |
break;
|
|
|
5544c1 |
@@ -2930,7 +2930,7 @@ static void disas_b2(DisasContext *s, int op, uint32_t insn)
|
|
|
5544c1 |
tmp32_1 = load_reg32(0);
|
|
|
5544c1 |
tmp32_2 = load_reg32(1);
|
|
|
5544c1 |
potential_page_fault(s);
|
|
|
5544c1 |
- gen_helper_stsi(cc_op, tmp, tmp32_1, tmp32_2);
|
|
|
5544c1 |
+ gen_helper_stsi(cc_op, cpu_env, tmp, tmp32_1, tmp32_2);
|
|
|
5544c1 |
set_cc_static(s);
|
|
|
5544c1 |
tcg_temp_free_i64(tmp);
|
|
|
5544c1 |
tcg_temp_free_i32(tmp32_1);
|
|
|
5544c1 |
@@ -2980,7 +2980,7 @@ static void disas_b2(DisasContext *s, int op, uint32_t insn)
|
|
|
5544c1 |
potential_page_fault(s);
|
|
|
5544c1 |
tmp32_1 = load_reg32(r2);
|
|
|
5544c1 |
tmp = load_reg(r1);
|
|
|
5544c1 |
- gen_helper_servc(cc_op, tmp32_1, tmp);
|
|
|
5544c1 |
+ gen_helper_servc(cc_op, cpu_env, tmp32_1, tmp);
|
|
|
5544c1 |
set_cc_static(s);
|
|
|
5544c1 |
tcg_temp_free_i32(tmp32_1);
|
|
|
5544c1 |
tcg_temp_free_i64(tmp);
|
|
|
5544c1 |
@@ -3926,7 +3926,7 @@ static void disas_s390_insn(DisasContext *s)
|
|
|
5544c1 |
tmp32_3 = tcg_const_i32(EXCP_SVC);
|
|
|
5544c1 |
tcg_gen_st_i32(tmp32_1, cpu_env, offsetof(CPUS390XState, int_svc_code));
|
|
|
5544c1 |
tcg_gen_st_i32(tmp32_2, cpu_env, offsetof(CPUS390XState, int_svc_ilc));
|
|
|
5544c1 |
- gen_helper_exception(tmp32_3);
|
|
|
5544c1 |
+ gen_helper_exception(cpu_env, tmp32_3);
|
|
|
5544c1 |
s->is_jmp = DISAS_EXCP;
|
|
|
5544c1 |
tcg_temp_free_i32(tmp32_1);
|
|
|
5544c1 |
tcg_temp_free_i32(tmp32_2);
|
|
|
5544c1 |
@@ -4543,7 +4543,7 @@ static void disas_s390_insn(DisasContext *s)
|
|
|
5544c1 |
tmp32_1 = tcg_const_i32(insn & 0xfff);
|
|
|
5544c1 |
tmp2 = load_reg(2);
|
|
|
5544c1 |
tmp3 = load_reg(1);
|
|
|
5544c1 |
- gen_helper_diag(tmp2, tmp32_1, tmp2, tmp3);
|
|
|
5544c1 |
+ gen_helper_diag(tmp2, cpu_env, tmp32_1, tmp2, tmp3);
|
|
|
5544c1 |
store_reg(2, tmp2);
|
|
|
5544c1 |
tcg_temp_free_i32(tmp32_1);
|
|
|
5544c1 |
tcg_temp_free_i64(tmp2);
|
|
|
5544c1 |
@@ -4777,7 +4777,7 @@ static void disas_s390_insn(DisasContext *s)
|
|
|
5544c1 |
tmp2 = load_reg(r3);
|
|
|
5544c1 |
tmp32_1 = tcg_const_i32(r1);
|
|
|
5544c1 |
potential_page_fault(s);
|
|
|
5544c1 |
- gen_helper_sigp(cc_op, tmp, tmp32_1, tmp2);
|
|
|
5544c1 |
+ gen_helper_sigp(cc_op, cpu_env, tmp, tmp32_1, tmp2);
|
|
|
5544c1 |
set_cc_static(s);
|
|
|
5544c1 |
tcg_temp_free_i64(tmp);
|
|
|
5544c1 |
tcg_temp_free_i64(tmp2);
|
|
|
5544c1 |
--
|
|
|
5544c1 |
1.7.12.1
|
|
|
5544c1 |
|