Implement INDEX_op_qemu_ld32. Fix constraints on qemu_ld64. Signed-off-by: Richard Henderson <r...@twiddle.net> --- tcg/s390/tcg-target.c | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/tcg/s390/tcg-target.c b/tcg/s390/tcg-target.c index c45d8b5..f21a9ca 100644 --- a/tcg/s390/tcg-target.c +++ b/tcg/s390/tcg-target.c @@ -1009,6 +1009,8 @@ static inline void tcg_out_op(TCGContext *s, TCGOpcode opc, tcg_out_qemu_ld(s, args, LD_INT16); break; + case INDEX_op_qemu_ld32: + /* ??? Technically we can use a non-extending instruction. */ case INDEX_op_qemu_ld32u: tcg_out_qemu_ld(s, args, LD_UINT32); break; @@ -1088,10 +1090,13 @@ static const TCGTargetOpDef s390_op_defs[] = { { INDEX_op_qemu_ld16s, { "r", "L" } }, { INDEX_op_qemu_ld32u, { "r", "L" } }, { INDEX_op_qemu_ld32s, { "r", "L" } }, + { INDEX_op_qemu_ld32, { "r", "L" } }, + { INDEX_op_qemu_ld64, { "r", "L" } }, { INDEX_op_qemu_st8, { "L", "L" } }, { INDEX_op_qemu_st16, { "L", "L" } }, { INDEX_op_qemu_st32, { "L", "L" } }, + { INDEX_op_qemu_st64, { "L", "L" } }, #if defined(__s390x__) { INDEX_op_mov_i64, { "r", "r" } }, @@ -1110,9 +1115,6 @@ static const TCGTargetOpDef s390_op_defs[] = { { INDEX_op_st32_i64, { "r", "r" } }, { INDEX_op_st_i64, { "r", "r" } }, - { INDEX_op_qemu_ld64, { "L", "L" } }, - { INDEX_op_qemu_st64, { "L", "L" } }, - { INDEX_op_add_i64, { "r", "0", "r" } }, { INDEX_op_sub_i64, { "r", "0", "r" } }, { INDEX_op_mul_i64, { "r", "0", "r" } }, -- 1.7.0.1