aboutsummaryrefslogtreecommitdiff
path: root/target-s390x
diff options
context:
space:
mode:
authorAlexander Graf <agraf@suse.de>2011-05-30 12:09:12 +0200
committerAlexander Graf <agraf@suse.de>2011-06-03 13:34:02 +0200
commite1b45cca620bf33168914283f81f6f3d8847f76b (patch)
tree3ecc05f2b9a74be67d33dda04dc01027649dd252 /target-s390x
parent5b185639c5740998de403415c749ac98e13418fd (diff)
s390x: implement lrvgr
The LRVGR instruction was missing. Implement it, so everyone's happy. Reported-by: Balazs Kutil <bkutil@novell.com> Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'target-s390x')
-rw-r--r--target-s390x/translate.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/target-s390x/translate.c b/target-s390x/translate.c
index afeb5e6fd7..eda4624d11 100644
--- a/target-s390x/translate.c
+++ b/target-s390x/translate.c
@@ -3473,6 +3473,9 @@ static void disas_b9(DisasContext *s, int op, int r1, int r2)
tcg_temp_free_i64(tmp2);
tcg_temp_free_i64(tmp3);
break;
+ case 0x0f: /* LRVGR R1,R2 [RRE] */
+ tcg_gen_bswap64_i64(regs[r1], regs[r2]);
+ break;
case 0x1f: /* LRVR R1,R2 [RRE] */
tmp32_1 = load_reg32(r2);
tcg_gen_bswap32_i32(tmp32_1, tmp32_1);