[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 17/34] target-s390x: implement LAY and LAEY instructi
From: |
Alexander Graf |
Subject: |
[Qemu-devel] [PULL 17/34] target-s390x: implement LAY and LAEY instructions |
Date: |
Fri, 5 Jun 2015 01:41:47 +0200 |
From: Aurelien Jarno <address@hidden>
This complete the general-instructions-extension facility, enable it.
Signed-off-by: Aurelien Jarno <address@hidden>
[agraf: remove facility bit]
Signed-off-by: Alexander Graf <address@hidden>
---
target-s390x/insn-data.def | 3 +++
target-s390x/translate.c | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 38 insertions(+)
diff --git a/target-s390x/insn-data.def b/target-s390x/insn-data.def
index e10aa6b..7507062 100644
--- a/target-s390x/insn-data.def
+++ b/target-s390x/insn-data.def
@@ -357,6 +357,9 @@
/* LOAD ADDRESS */
C(0x4100, LA, RX_a, Z, 0, a2, 0, r1, mov2, 0)
C(0xe371, LAY, RXY_a, LD, 0, a2, 0, r1, mov2, 0)
+/* LOAD ADDRESS EXTENDED */
+ C(0x5100, LAE, RX_a, Z, 0, a2, 0, r1, mov2e, 0)
+ C(0xe375, LAEY, RXY_a, GIE, 0, a2, 0, r1, mov2e, 0)
/* LOAD ADDRESS RELATIVE LONG */
C(0xc000, LARL, RIL_b, Z, 0, ri2, 0, r1, mov2, 0)
/* LOAD AND ADD */
diff --git a/target-s390x/translate.c b/target-s390x/translate.c
index 63885f8..d508bc2 100644
--- a/target-s390x/translate.c
+++ b/target-s390x/translate.c
@@ -2596,6 +2596,41 @@ static ExitStatus op_mov2(DisasContext *s, DisasOps *o)
return NO_EXIT;
}
+static ExitStatus op_mov2e(DisasContext *s, DisasOps *o)
+{
+ int b2 = get_field(s->fields, b2);
+ TCGv ar1 = tcg_temp_new_i64();
+
+ o->out = o->in2;
+ o->g_out = o->g_in2;
+ TCGV_UNUSED_I64(o->in2);
+ o->g_in2 = false;
+
+ switch (s->tb->flags & FLAG_MASK_ASC) {
+ case PSW_ASC_PRIMARY >> 32:
+ tcg_gen_movi_i64(ar1, 0);
+ break;
+ case PSW_ASC_ACCREG >> 32:
+ tcg_gen_movi_i64(ar1, 1);
+ break;
+ case PSW_ASC_SECONDARY >> 32:
+ if (b2) {
+ tcg_gen_ld32u_i64(ar1, cpu_env, offsetof(CPUS390XState,
aregs[b2]));
+ } else {
+ tcg_gen_movi_i64(ar1, 0);
+ }
+ break;
+ case PSW_ASC_HOME >> 32:
+ tcg_gen_movi_i64(ar1, 2);
+ break;
+ }
+
+ tcg_gen_st32_i64(ar1, cpu_env, offsetof(CPUS390XState, aregs[1]));
+ tcg_temp_free_i64(ar1);
+
+ return NO_EXIT;
+}
+
static ExitStatus op_movx(DisasContext *s, DisasOps *o)
{
o->out = o->in1;
--
1.7.12.4
- [Qemu-devel] [PULL 33/34] target-s390x: fix MVC instruction when areas overlap, (continued)
- [Qemu-devel] [PULL 33/34] target-s390x: fix MVC instruction when areas overlap, Alexander Graf, 2015/06/04
- [Qemu-devel] [PULL 22/34] target-s390x: move SET DFP ROUNDING MODE to the correct facility, Alexander Graf, 2015/06/04
- [Qemu-devel] [PULL 10/34] target-s390x: fix LOAD MULTIPLE instruction on page boundary, Alexander Graf, 2015/06/04
- [Qemu-devel] [PULL 18/34] target-s390x: fix exception for invalid operation code, Alexander Graf, 2015/06/04
- [Qemu-devel] [PULL 27/34] target-s390x: implement miscellaneous-instruction-extensions facility, Alexander Graf, 2015/06/04
- [Qemu-devel] [PULL 23/34] target-s390x: implement LOAD FP INTEGER instructions, Alexander Graf, 2015/06/04
- [Qemu-devel] [PULL 21/34] target-s390x: move STORE CLOCK FAST to the correct facility, Alexander Graf, 2015/06/04
- [Qemu-devel] [PULL 32/34] target-s390x: use softmmu functions for mvcp/mvcs, Alexander Graf, 2015/06/04
- [Qemu-devel] [PULL 19/34] target-s390x: fix CLGIT instruction, Alexander Graf, 2015/06/04
- [Qemu-devel] [PULL 34/34] target-s390x: Only access allocated storage keys, Alexander Graf, 2015/06/04
- [Qemu-devel] [PULL 17/34] target-s390x: implement LAY and LAEY instructions,
Alexander Graf <=
- [Qemu-devel] [PULL 29/34] target-s390x: implement high-word facility, Alexander Graf, 2015/06/04
- [Qemu-devel] [PULL 26/34] target-s390x: implement LPDFR and LNDFR instructions, Alexander Graf, 2015/06/04
- [Qemu-devel] [PULL 28/34] target-s390x: implement load-and-trap facility, Alexander Graf, 2015/06/04
- [Qemu-devel] [PULL 31/34] target-s390x: support non current ASC in s390_cpu_handle_mmu_fault, Alexander Graf, 2015/06/04
- [Qemu-devel] [PULL 25/34] target-s390x: implement TRANSLATE EXTENDED instruction, Alexander Graf, 2015/06/04
- Re: [Qemu-devel] [PULL 00/34] s390 patch queue 2015-06-05, Peter Maydell, 2015/06/05