mirror of https://github.com/xemu-project/xemu.git
target/hppa: Implement LDSID for system mode
Signed-off-by: Helge Deller <deller@gmx.de> Message-Id: <20180102203145.GA17059@ls3530.fritz.box> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
3f7367e2cc
commit
2330504cee
|
@ -2211,8 +2211,20 @@ static DisasJumpType trans_ldsid(DisasContext *ctx, uint32_t insn,
|
|||
unsigned rt = extract32(insn, 0, 5);
|
||||
TCGv_reg dest = dest_gpr(ctx, rt);
|
||||
|
||||
/* Since we don't implement space registers, this returns zero. */
|
||||
#ifdef CONFIG_USER_ONLY
|
||||
/* We don't implement space registers in user mode. */
|
||||
tcg_gen_movi_reg(dest, 0);
|
||||
#else
|
||||
unsigned rb = extract32(insn, 21, 5);
|
||||
unsigned sp = extract32(insn, 14, 2);
|
||||
TCGv_i64 t0 = tcg_temp_new_i64();
|
||||
|
||||
tcg_gen_mov_i64(t0, space_select(ctx, sp, load_gpr(ctx, rb)));
|
||||
tcg_gen_shri_i64(t0, t0, 32);
|
||||
tcg_gen_trunc_i64_reg(dest, t0);
|
||||
|
||||
tcg_temp_free_i64(t0);
|
||||
#endif
|
||||
save_gpr(ctx, rt, dest);
|
||||
|
||||
cond_free(&ctx->null_cond);
|
||||
|
|
Loading…
Reference in New Issue