qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v6 00/10] tcg mips64 and mips r6 improvements


From: Jin Guojie
Subject: Re: [Qemu-devel] [PATCH v6 00/10] tcg mips64 and mips r6 improvements
Date: Tue, 20 Dec 2016 14:01:51 +0800

ping     http://patchwork.ozlabs.org/patch/704829/

Please give me any advice and comment for speeding up the review process.
Thank you all!

Jin Guojie

------------------ Original ------------------
From:  "jinguojie";<address@hidden>;
Send time: Sunday, Dec 11, 2016 9:36 PM
To: "qemu-devel"<address@hidden>; 
Cc: "Aurelien Jarno"<address@hidden>; "James Hogan"<address@hidden>; "YunQiang 
Su"<address@hidden>; "Richard Henderson"<address@hidden>; "Jin 
Guojie"<address@hidden>; 
Subject:  [PATCH v6 00/10] tcg mips64 and mips r6 improvements



Changes in v6:
  * Update against master(v2.8.0-rc3)
  * Fix two bugs according to Richard Henderson's review comments
    (1) mask: extend TARGET_PAGE_MASK to the proper type
    (2) zero-extend the guest address, not the address loaded from CMP_OFF
  * MIPS R6: tested successfully on a qemu mipsel64r6 host (emulating I6400)
    - Debian amd64 with qemu-system-x86_64

Changes in v5:
  * Update against master(v2.8.0-rc2)
  * Fix a bug: 64-bit big-endian guests hang on mips64 little-endian
      hosts, and vice versa. This bug was first introduced in v2 patch,
      due to obvious misuse of ret/arg registers in tcg_out_bswap64().

        tcg_out_opc_reg(s, OPC_DSBH, ret, 0, arg);
      - tcg_out_opc_reg(s, OPC_DSHD, ret, 0, arg);
      + tcg_out_opc_reg(s, OPC_DSHD, ret, 0, ret);

  * Fix a style problem: checkpatch.pl forbids 'extern' to be used in .c.

      ERROR: externs should be avoided in .c files
      #28: FILE: tcg/mips/tcg-target.inc.c:39:
      +extern int link_error(void);

      Simply comment the type identifier to pass the check.

  * Tested successfully on following machines:
  
    | HOST        | qemu-system | Debian ISO  |
    |-----------------------------------------|
    | mips 32 le  |    i386     |    i386     |
    | mips 32 le  |    x86_64   |    i386     |
    | mips 32 le  |    x86_64   |    amd64    |
    | mips 64 le  |    i386     |    i386     |
    | mips 64 le  |    x86_64   |    i386     |
    | mips 64 le  |    x86_64   |    amd64    |
    | mips 64 le  |  mips 64 be |  mips 64 be |
    |-----------------------------------------|
    | mips 32 be  |    i386     |     i386    |
    | mips 32 be  |    x86_64   |     i386    |
    | mips 32 be  |    x86_64   |     amd64   |
    | mips 64 be  |    i386     |     i386    |
    | mips 64 be  |    x86_64   |     i386    |
    | mips 64 be  |    x86_64   |     amd64   |
    | mips n32 be |    386      |     i386    |
    | mips n32 be |    x86_64   |     i386    |
    | mips n32 be |    x86_64   |     amd64   |

    (No plan to test MIPS R6 in this patch.)

  Summary of changes from v4:

  | tcg-mips: Support 64-bit opcodes       | Fix tcg_out_bswap64() |
  | tcg-mips: Adjust qemu_ld/st for mips64 | Fix a style problem   |


Changes in v4:
  * 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.

Changes in v3:
  * 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. 

Tested-by: Aurelien Jarno <address@hidden>
Tested-by: James Hogan <address@hidden>
Tested-by: YunQiang Su <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>
Signed-off-by: Jin Guojie <address@hidden>

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

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

-- 
2.1.0

reply via email to

[Prev in Thread] Current Thread [Next in Thread]