aboutsummaryrefslogtreecommitdiff
path: root/target/s390x/translate.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@twiddle.net>2017-06-16 16:47:51 -0700
committerRichard Henderson <rth@twiddle.net>2017-06-23 09:17:44 -0700
commitc2a5c1d718eabfde04ebabf2434168b0716107cb (patch)
treedb6c045119028337f25f314bfb2a81af456ef5e9 /target/s390x/translate.c
parent45aa9aa3b7730b38403553355b36a29f8905916a (diff)
target/s390x: Implement load-and-zero-rightmost-byte insns
Reviewed-by: Aurelien Jarno <aurelien@aurel32.net> Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'target/s390x/translate.c')
-rw-r--r--target/s390x/translate.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/target/s390x/translate.c b/target/s390x/translate.c
index 9932afb0f9..5275c77036 100644
--- a/target/s390x/translate.c
+++ b/target/s390x/translate.c
@@ -2906,6 +2906,12 @@ static ExitStatus op_lurag(DisasContext *s, DisasOps *o)
}
#endif
+static ExitStatus op_lzrb(DisasContext *s, DisasOps *o)
+{
+ tcg_gen_andi_i64(o->out, o->in2, -256);
+ return NO_EXIT;
+}
+
static ExitStatus op_mov2(DisasContext *s, DisasOps *o)
{
o->out = o->in2;
@@ -5437,6 +5443,7 @@ enum DisasInsnEnum {
#define FAC_LPP S390_FEAT_SET_PROGRAM_PARAMETERS /* load-program-parameter */
#define FAC_DAT_ENH S390_FEAT_DAT_ENH
#define FAC_E2 S390_FEAT_EXTENDED_TRANSLATION_2
+#define FAC_LZRB S390_FEAT_STFLE_53 /* load-and-zero-rightmost-byte */
static const DisasInsn insn_info[] = {
#include "insn-data.def"