pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/emulators/qemu Add two fixes accepted upstream to supp...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/2e55ab7dae15
branches:  trunk
changeset: 322593:2e55ab7dae15
user:      skrll <skrll%pkgsrc.org@localhost>
date:      Thu Apr 25 11:33:02 2019 +0000

description:
Add two fixes accepted upstream to support NetBSD/hppa

diffstat:

 emulators/qemu/Makefile                                |   4 +-
 emulators/qemu/distinfo                                |   5 +-
 emulators/qemu/patches/patch-target_hppa_insns.decode  |  14 ++++
 emulators/qemu/patches/patch-target_hppa_mem__helper.c |  14 ++++
 emulators/qemu/patches/patch-target_hppa_translate.c   |  63 ++++++++++++++++++
 5 files changed, 97 insertions(+), 3 deletions(-)

diffs (134 lines):

diff -r 4ee33d37f2a8 -r 2e55ab7dae15 emulators/qemu/Makefile
--- a/emulators/qemu/Makefile   Thu Apr 25 10:14:47 2019 +0000
+++ b/emulators/qemu/Makefile   Thu Apr 25 11:33:02 2019 +0000
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.203 2019/04/25 07:32:53 maya Exp $
+# $NetBSD: Makefile,v 1.204 2019/04/25 11:33:02 skrll Exp $
 
 DISTNAME=      qemu-4.0.0
-PKGREVISION=   1
+PKGREVISION=   2
 CATEGORIES=    emulators
 MASTER_SITES=  https://download.qemu.org/
 EXTRACT_SUFX=  .tar.xz
diff -r 4ee33d37f2a8 -r 2e55ab7dae15 emulators/qemu/distinfo
--- a/emulators/qemu/distinfo   Thu Apr 25 10:14:47 2019 +0000
+++ b/emulators/qemu/distinfo   Thu Apr 25 11:33:02 2019 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.145 2019/04/24 17:09:43 adam Exp $
+$NetBSD: distinfo,v 1.146 2019/04/25 11:33:02 skrll Exp $
 
 SHA1 (qemu-4.0.0.tar.xz) = 74cfb8f4724d9651fdd354560f2d291887b32cad
 RMD160 (qemu-4.0.0.tar.xz) = 58135f00c391823edce780d55a816f29dd73c34b
@@ -17,5 +17,8 @@
 SHA1 (patch-hw_usb_dev-mtp.c) = c48e11fbe3a017f0e9f8dbd7bf46898b758ab79c
 SHA1 (patch-include_sysemu_kvm.h) = f99e8ad021f6c8e89e3ca52538bd9b0656e6f619
 SHA1 (patch-roms_u-boot_tools_imx8m__image.sh) = e4c452062f40569e33aa93eec4a65bd3af2e74fc
+SHA1 (patch-target_hppa_insns.decode) = 111ad3d5db1c46fd42bb033ac09db377303d352e
+SHA1 (patch-target_hppa_mem__helper.c) = 080d99b2a6dc7f5ab1df04ef6c316e5dcd133753
+SHA1 (patch-target_hppa_translate.c) = 8bdeaba3f19204ffd5465d33a44380bbcbfd7a57
 SHA1 (patch-target_i386_kvm-stub.c) = 4cd2b7a8d8d8a317829f982b5acff7fdf2479d9f
 SHA1 (patch-ui_curses.c) = 436815cb8cd679b8f86cbae6c5f070e6ff158a6d
diff -r 4ee33d37f2a8 -r 2e55ab7dae15 emulators/qemu/patches/patch-target_hppa_insns.decode
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/emulators/qemu/patches/patch-target_hppa_insns.decode     Thu Apr 25 11:33:02 2019 +0000
@@ -0,0 +1,14 @@
+$NetBSD: patch-target_hppa_insns.decode,v 1.1 2019/04/25 11:33:02 skrll Exp $
+
+--- target/hppa/insns.decode.orig      2019-04-23 18:14:46.000000000 +0000
++++ target/hppa/insns.decode
+@@ -133,6 +133,9 @@ ixtlbx          000001 b:5 r:5 sp:2 0100
+ ixtlbx          000001 b:5 r:5 ... 000000 addr:1 0 00000        \
+                 sp=%assemble_sr3x data=0
+ 
++# pcxl and pcxl2 Fast TLB Insert instructions
++ixtlbxf         000001 00000 r:5 00 0 data:1 01000 addr:1 0 00000
++
+ pxtlbx          000001 b:5 x:5 sp:2 0100100 local:1 m:1 -----   data=1
+ pxtlbx          000001 b:5 x:5 ... 000100 local:1 m:1 -----     \
+                 sp=%assemble_sr3x data=0
diff -r 4ee33d37f2a8 -r 2e55ab7dae15 emulators/qemu/patches/patch-target_hppa_mem__helper.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/emulators/qemu/patches/patch-target_hppa_mem__helper.c    Thu Apr 25 11:33:02 2019 +0000
@@ -0,0 +1,14 @@
+$NetBSD: patch-target_hppa_mem__helper.c,v 1.1 2019/04/25 11:33:02 skrll Exp $
+
+--- target/hppa/mem_helper.c.orig      2019-04-23 18:14:46.000000000 +0000
++++ target/hppa/mem_helper.c
+@@ -154,8 +154,7 @@ int hppa_get_physical_address(CPUHPPASta
+ 
+     if (unlikely(!(prot & type))) {
+         /* The access isn't allowed -- Inst/Data Memory Protection Fault.  */
+-        ret = (type & PAGE_EXEC ? EXCP_IMP :
+-               prot & PAGE_READ ? EXCP_DMP : EXCP_DMAR);
++        ret = (type & PAGE_EXEC) ? EXCP_IMP : EXCP_DMAR;
+         goto egress;
+     }
+ 
diff -r 4ee33d37f2a8 -r 2e55ab7dae15 emulators/qemu/patches/patch-target_hppa_translate.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/emulators/qemu/patches/patch-target_hppa_translate.c      Thu Apr 25 11:33:02 2019 +0000
@@ -0,0 +1,63 @@
+$NetBSD: patch-target_hppa_translate.c,v 1.1 2019/04/25 11:33:02 skrll Exp $
+
+--- target/hppa/translate.c.orig       2019-04-23 18:14:46.000000000 +0000
++++ target/hppa/translate.c
+@@ -2518,6 +2518,58 @@ static bool trans_pxtlbx(DisasContext *c
+ #endif
+ }
+ 
++/* Implement the pcxl and pcxl2 Fast TLB Insert instructions.
++ * See
++ *     https://parisc.wiki.kernel.org/images-parisc/a/a9/Pcxl2_ers.pdf
++ *     page 13-9 (195/206) */
++static bool trans_ixtlbxf(DisasContext *ctx, arg_ixtlbxf *a)
++{
++    CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR);
++#ifndef CONFIG_USER_ONLY
++    TCGv_tl addr;
++    TCGv_reg reg;
++    TCGv_reg ar, sr;
++    TCGv_tl atl, stl;
++
++    nullify_over(ctx);
++
++/*    if (not (pcxl or pcxl2))
++          return gen_illegal(ctx); */
++
++    ar = get_temp(ctx);
++    sr = get_temp(ctx);
++    atl = get_temp_tl(ctx);
++    stl = get_temp_tl(ctx);
++    addr = get_temp_tl(ctx);
++
++
++    if (a->data) {
++        tcg_gen_ld_reg(sr, cpu_env, offsetof(CPUHPPAState, cr[CR_ISR]));
++        tcg_gen_ld_reg(ar, cpu_env, offsetof(CPUHPPAState, cr[CR_IOR]));
++    } else {
++        tcg_gen_ld_reg(sr, cpu_env, offsetof(CPUHPPAState, cr[CR_IIASQ]));
++        tcg_gen_ld_reg(ar, cpu_env, offsetof(CPUHPPAState, cr[CR_IIAOQ]));
++    }
++
++    tcg_gen_extu_reg_tl(atl, ar);
++    tcg_gen_extu_reg_tl(stl, sr);
++    tcg_gen_shli_i64(stl, stl, 32);
++    tcg_gen_or_tl(addr, atl, stl);
++    reg = load_gpr(ctx, a->r);
++    if (a->addr) {
++        gen_helper_itlba(cpu_env, addr, reg);
++    } else {
++        gen_helper_itlbp(cpu_env, addr, reg);
++    }
++
++    /* Exit TB for TLB change if mmu is enabled.  */
++    if (ctx->tb_flags & PSW_C) {
++        ctx->base.is_jmp = DISAS_IAQ_N_STALE;
++    }
++    return nullify_end(ctx);
++#endif
++}
++
+ static bool trans_lpa(DisasContext *ctx, arg_ldst *a)
+ {
+     CHECK_MOST_PRIVILEGED(EXCP_PRIV_OPR);



Home | Main Index | Thread Index | Old Index