target/s390x: Use unwind data for helper_mvpg
Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
3cc8ca3dab
commit
7cf96fca4c
|
@ -12,7 +12,7 @@ DEF_HELPER_FLAGS_3(divs64, TCG_CALL_NO_WG, s64, env, s64, s64)
|
||||||
DEF_HELPER_FLAGS_4(divu64, TCG_CALL_NO_WG, i64, env, i64, i64, i64)
|
DEF_HELPER_FLAGS_4(divu64, TCG_CALL_NO_WG, i64, env, i64, i64, i64)
|
||||||
DEF_HELPER_4(srst, i64, env, i64, i64, i64)
|
DEF_HELPER_4(srst, i64, env, i64, i64, i64)
|
||||||
DEF_HELPER_4(clst, i64, env, i64, i64, i64)
|
DEF_HELPER_4(clst, i64, env, i64, i64, i64)
|
||||||
DEF_HELPER_4(mvpg, void, env, i64, i64, i64)
|
DEF_HELPER_FLAGS_4(mvpg, TCG_CALL_NO_WG, i32, env, i64, i64, i64)
|
||||||
DEF_HELPER_4(mvst, i64, env, i64, i64, i64)
|
DEF_HELPER_4(mvst, i64, env, i64, i64, i64)
|
||||||
DEF_HELPER_5(ex, i32, env, i32, i64, i64, i64)
|
DEF_HELPER_5(ex, i32, env, i32, i64, i64, i64)
|
||||||
DEF_HELPER_FLAGS_4(stam, TCG_CALL_NO_WG, void, env, i32, i64, i32)
|
DEF_HELPER_FLAGS_4(stam, TCG_CALL_NO_WG, void, env, i32, i64, i32)
|
||||||
|
|
|
@ -398,11 +398,12 @@ uint64_t HELPER(clst)(CPUS390XState *env, uint64_t c, uint64_t s1, uint64_t s2)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* move page */
|
/* move page */
|
||||||
void HELPER(mvpg)(CPUS390XState *env, uint64_t r0, uint64_t r1, uint64_t r2)
|
uint32_t HELPER(mvpg)(CPUS390XState *env, uint64_t r0, uint64_t r1, uint64_t r2)
|
||||||
{
|
{
|
||||||
/* XXX missing r0 handling */
|
/* ??? missing r0 handling, which includes access keys, but more
|
||||||
env->cc_op = 0;
|
importantly optional suppression of the exception! */
|
||||||
fast_memmove(env, r1, r2, TARGET_PAGE_SIZE, 0);
|
fast_memmove(env, r1, r2, TARGET_PAGE_SIZE, GETPC());
|
||||||
|
return 0; /* data moved */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* string copy (c is string terminator) */
|
/* string copy (c is string terminator) */
|
||||||
|
|
|
@ -2921,8 +2921,7 @@ static ExitStatus op_mvcs(DisasContext *s, DisasOps *o)
|
||||||
|
|
||||||
static ExitStatus op_mvpg(DisasContext *s, DisasOps *o)
|
static ExitStatus op_mvpg(DisasContext *s, DisasOps *o)
|
||||||
{
|
{
|
||||||
potential_page_fault(s);
|
gen_helper_mvpg(cc_op, cpu_env, regs[0], o->in1, o->in2);
|
||||||
gen_helper_mvpg(cpu_env, regs[0], o->in1, o->in2);
|
|
||||||
set_cc_static(s);
|
set_cc_static(s);
|
||||||
return NO_EXIT;
|
return NO_EXIT;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue