Yesterday I  successfully got in touch with a Debian developer from imgtec. 
Welcome Su Yunqiang.
V4 patch can be tested on mips64 be hosts now.
The following guests on a mips64
big-endian host is OK:
  - Debian i386 with qemu-system-i386
  - Debian i386 with qemu-system-x86_64

However, Debian amd64 with qemu-system-x86_64 fails to boot kernel.
A 'rep movsq' instruction is wrongly emulated.
I will fix this bug within one or two days.

But even Su cannot provide an R6 machine.

Jin Guojie

---Original---
From: "Jin Guojie"<jinguo...@loongson.cn>
Date: 2016/11/29 14:08:16
To: "qemu-devel"<qemu-devel@nongnu.org>;
Cc: "Richard Henderson"<r...@twiddle.net>;"James 
Hogan"<james.ho...@imgtec.com>;"Aurelien Jarno"<aurel...@aurel32.net>;"Jin 
Guojie"<jinguo...@loongson.cn>;
Subject: [PATCH v4 00/10] tcg mips64 and mips r6 improvements


Changes since v3:
  * tcg_out_qemu_ld_slow_path: always sign-extend 32-bit loads.
    Provide a better solution than patch11 in v3.
    Fix the blocking bug when emulating i386 kernel on mips64el.
  * Redefine LO_OFF/HI_OFF as v2.
    On mips64 host, they are defined as link_error, to ensure that 
    all paths that lead to the use of the symbol are eliminated by
    the compiler.

Other info:
  * Update against master(v2.8.0-rc1)
  * Tested on Loongson as mips32r2(el) and mips64r2(el) hosts.
    Loongson only implements little-endian mips32/mips64 ISA.
  * Fully work for 32-bit and 64-bit guests.
    Fix two bugs??segmentation fault on mips64el with 32-bit guests,
                  blocking when emulating i386 kernel on mips64el.
  * Fix some minor style problems.
  * PATCH v2 12~16 are not examined due to the lack of R6 machine.

To be tested:
  * big-endian mips32 and mips64 hosts.
  * MIPS R6.

Summary of changes from v3:

  | tcg-mips: Always use tcg_debug_assert      | merged previously   |
  | tcg-mips: Move bswap code to a subroutine  | no change           |
  | tcg-mips: Add mips64 opcodes               | no change           |
  | tcg-mips: Support 64-bit opcodes           | no change           |
  | tcg-mips: Add bswap32u and bswap64         | no change           |
  | tcg-mips: Adjust move functions for mips64 | no change           |
  | tcg-mips: Adjust load/store functions for  | no change           |
  | tcg-mips: Adjust prologue for mips64       | no change           |
  | tcg-mips: Add tcg unwind info              | no change           |
  | tcg-mips: Adjust calling conventions for   | no change           |
  | tcg-mips: Adjust qemu_ld/st for mips64                           |
  |   (1) tcg_out_qemu_st_slow_path??fix the crash on mips64el with  |
  |       i386 guest, when executing seabios                         |
  |   (2) tcg_out_qemu_ld_slow_path: always sign-extend 32-bit loads |
  |       Fix the blocking when emulating i386 kernel on mips64el    |
  | tcg-mips: Adjust condition functions for mips64 (abandoned)      |

Jin Guojie (10):
  tcg-mips: Move bswap code to a subroutine
  tcg-mips: Add mips64 opcodes
  tcg-mips: Support 64-bit opcodes
  tcg-mips: Add bswap32u and bswap64
  tcg-mips: Adjust move functions for mips64
  tcg-mips: Adjust load/store functions for mips64
  tcg-mips: Adjust prologue for mips64
  tcg-mips: Add tcg unwind info
  tcg-mips: Adjust calling conventions for mips64
  tcg-mips: Adjust qemu_ld/st for mips64

Cc: Aurelien Jarno <aurel...@aurel32.net>
Cc: James Hogan <james.ho...@imgtec.com>
Signed-off-by: Richard Henderson <r...@twiddle.net>
Signed-off-by: Jin Guojie <jinguo...@loongson.cn>

 tcg/mips/tcg-target.h     |   60 ++-
 tcg/mips/tcg-target.inc.c | 1168 +++++++++++++++++++++++++++++++++++----------
 2 files changed, 975 insertions(+), 253 deletions(-)

-- 
2.1.0

Reply via email to