qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] ed6051: tcg: fix deposit_i64 op on 32-bit tar


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] ed6051: tcg: fix deposit_i64 op on 32-bit targets
Date: Fri, 26 Apr 2013 17:30:09 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: ed605126a8d826e60587cc21d9e7b95e8c49b6f6
      
https://github.com/qemu/qemu/commit/ed605126a8d826e60587cc21d9e7b95e8c49b6f6
  Author: Aurelien Jarno <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/tcg-op.h

  Log Message:
  -----------
  tcg: fix deposit_i64 op on 32-bit targets

On 32-bit TCG targets, when emulating deposit_i64 with a mov_i32 +
deposit_i32, care should be taken to not overwrite the low part of
the second argument before the deposit when it is the same the
destination.

This fixes the shld instruction in qemu-system-x86_64, which in turns
fixes booting "system rescue CD version 2.8.0" on this target.

Reported-by: Michael S. Tsirkin <address@hidden>
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>


  Commit: fc4d60ee16e9c20404e9970b421ac3e96df4c214
      
https://github.com/qemu/qemu/commit/fc4d60ee16e9c20404e9970b421ac3e96df4c214
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Fix local stack frame

We were not allocating TCG_STATIC_CALL_ARGS_SIZE, so this meant that
any helper with more than 4 arguments would clobber the saved regs.
Realizing that we're supposed to have this memory pre-allocated means
we can clean up the tcg_out_arg functions, which were trying to do
more stack allocation.

Allocate stack memory for the TCG temporaries while we're at it.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: d6b64b2b606fe0fe5f2208e84ff7a28445de666a
      
https://github.com/qemu/qemu/commit/d6b64b2b606fe0fe5f2208e84ff7a28445de666a
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/tcg.c

  Log Message:
  -----------
  tcg: Log the contents of the prologue with -d out_asm

This makes it easier to verify changes to the code
generating the prologue.

[Aurelien: change the format from %i to %zu]

Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 19b62bf4148d834c709c464f6fb1c6b72f906250
      
https://github.com/qemu/qemu/commit/19b62bf4148d834c709c464f6fb1c6b72f906250
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c
    M tcg/arm/tcg-target.h

  Log Message:
  -----------
  tcg-arm: Use bic to implement and with constant

This greatly improves the code we can produce for deposit
without armv7 support.

Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: a9a86ae95d24c587285856405dffc9cacdf2b683
      
https://github.com/qemu/qemu/commit/a9a86ae95d24c587285856405dffc9cacdf2b683
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Handle negated constant arguments to and/sub

This greatly improves code generation for addition of small
negative constants.

Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: d9fda57549877045aa0ec91d2a067a67cb41a29f
      
https://github.com/qemu/qemu/commit/d9fda57549877045aa0ec91d2a067a67cb41a29f
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Allow constant first argument to sub

This allows the generation of RSB instructions.

Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 5d53b4c93caf16531e65a95a9b5c93228fe48f8b
      
https://github.com/qemu/qemu/commit/5d53b4c93caf16531e65a95a9b5c93228fe48f8b
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Use tcg_out_dat_rIN for compares

This allows us to emit CMN instructions.

Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 2df3f1ee68269d40f5dcb5e8d9aba0869e150896
      
https://github.com/qemu/qemu/commit/2df3f1ee68269d40f5dcb5e8d9aba0869e150896
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Handle constant arguments to add2/sub2

We get to re-use the _rIN and _rIK subroutines to handle the various
combinations of add vs sub.  Fold the << 21 into the opcode enum values
so that we can explicitly add TO_CPSR as desired.

Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: e86e0f2807fbadee09d9e06f11df69339cbbd94c
      
https://github.com/qemu/qemu/commit/e86e0f2807fbadee09d9e06f11df69339cbbd94c
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Improve constant generation

Try fully rotated arguments to mov and mvn before trying movt
or full decomposition.  Begin decomposition with mvn when it
looks like it'll help.  Examples include

-:        mov   r9, #0x00000fa0
-:        orr   r9, r9, #0x000ee000
-:        orr   r9, r9, #0x0ff00000
-:        orr   r9, r9, #0xf0000000
+:        mvn   r9, #0x0000005f
+:        eor   r9, r9, #0x00011000

Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: b6b24cb031d1d6e6f50abf0c8bdc1c309e549156
      
https://github.com/qemu/qemu/commit/b6b24cb031d1d6e6f50abf0c8bdc1c309e549156
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c
    M tcg/arm/tcg-target.h

  Log Message:
  -----------
  tcg-arm: Implement deposit for armv7

We have BFI and BFC available for implementing it.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 0637c56c99be1c73f5814c7f02c0735242b757e5
      
https://github.com/qemu/qemu/commit/0637c56c99be1c73f5814c7f02c0735242b757e5
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M disas/arm.c
    M tcg/arm/tcg-target.c
    M tcg/arm/tcg-target.h

  Log Message:
  -----------
  tcg-arm: Implement division instructions

An armv7 extension implements division, present on Cortex A15.

Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 4346457a47732cc0bd3a8f36d743624dc277ea55
      
https://github.com/qemu/qemu/commit/4346457a47732cc0bd3a8f36d743624dc277ea55
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Use TCG_REG_TMP name for the tcg temporary

Don't hard-code R8.

Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 13dd6fb962930a4b1d74f9b22342d1eb15e9194e
      
https://github.com/qemu/qemu/commit/13dd6fb962930a4b1d74f9b22342d1eb15e9194e
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Use R12 for the tcg temporary

R12 is call clobbered, while R8 is call saved.  This change
gives tcg one more call saved register for real data.

Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 34358a12c8a8f2f85a1420fa0a1112de1c6a55af
      
https://github.com/qemu/qemu/commit/34358a12c8a8f2f85a1420fa0a1112de1c6a55af
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Cleanup multiply subroutines

Make the code more readable by only having one copy of the magic
numbers, swapping registers as needed prior to that.  Speed the
compiler by not applying the rd == rn avoidance for v6 or later.

Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 9feac1d77010b371501728256be96bf91b641985
      
https://github.com/qemu/qemu/commit/9feac1d77010b371501728256be96bf91b641985
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Cleanup most primitive load store subroutines

Use even more primitive helper functions to avoid lots of duplicated code.

Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: cee87be80a6e9cc853e07a4d3afc694604c9ac8d
      
https://github.com/qemu/qemu/commit/cee87be80a6e9cc853e07a4d3afc694604c9ac8d
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Split out tcg_out_tlb_read

Share code between qemu_ld and qemu_st to process the tlb.

Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: 702b33b1d5f8fee7e5799af450375671264a9ebd
      
https://github.com/qemu/qemu/commit/702b33b1d5f8fee7e5799af450375671264a9ebd
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Improve scheduling of tcg_out_tlb_read

The schedule was fully serial, with no possibility for dual issue.
The old schedule had a minimal issue of 7 cycles; the new schedule
has a minimal issue of 5 cycles.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 595b5397cc589d694ec3af660b21f483e8142f69
      
https://github.com/qemu/qemu/commit/595b5397cc589d694ec3af660b21f483e8142f69
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Delete the 'S' constraint

After the previous patch, 's' and 'S' are the same.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 302fdde73f88fd958acfa18b670eed092eab21a0
      
https://github.com/qemu/qemu/commit/302fdde73f88fd958acfa18b670eed092eab21a0
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Use movi32 + blx for calls on v7

Work better with branch predition when we have movw+movt,
as the size of the code is the same.  Perhaps re-evaluate
when we have a proper constant pool.

Reviewed-by: Aurelien Jarno <address@hidden>
Signed-off-by: Richard Henderson <address@hidden>


  Commit: df5e0ef711cdd2ebfd4bdf420bfde17aa28df8b1
      
https://github.com/qemu/qemu/commit/df5e0ef711cdd2ebfd4bdf420bfde17aa28df8b1
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M configure
    M include/exec/exec-all.h
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Convert to CONFIG_QEMU_LDST_OPTIMIZATION

Move the slow path out of line, as the TODO's mention.
This allows the fast path to be unconditional, which can
speed up the fast path as well, depending on the core.

Signed-off-by: Richard Henderson <address@hidden>


  Commit: 96fbd7de3656583d647c204c4138bbdcc3e35d2b
      
https://github.com/qemu/qemu/commit/96fbd7de3656583d647c204c4138bbdcc3e35d2b
  Author: Richard Henderson <address@hidden>
  Date:   2013-04-26 (Fri, 26 Apr 2013)

  Changed paths:
    M tcg/arm/tcg-target.c

  Log Message:
  -----------
  tcg-arm: Remove long jump from tcg_out_goto_label

Branches within a TB will always be within 16MB.

Signed-off-by: Richard Henderson <address@hidden>


Compare: https://github.com/qemu/qemu/compare/909eedb74f88...96fbd7de3656

reply via email to

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