qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] d257e0: tcg: Use TCGMemOp for TCGLabelQemuLds


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] d257e0: tcg: Use TCGMemOp for TCGLabelQemuLdst.opc
Date: Mon, 14 Oct 2013 11:00:05 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: d257e0d7aeb72f4280666590f81ca5f0a38697f8
      
https://github.com/qemu/qemu/commit/d257e0d7aeb72f4280666590f81ca5f0a38697f8
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

  Changed paths:
    M tcg/tcg-be-ldst.h

  Log Message:
  -----------
  tcg: Use TCGMemOp for TCGLabelQemuLdst.opc

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


  Commit: 37c5d0d5d1ad4e603dc50411c85bad6f726357a2
      
https://github.com/qemu/qemu/commit/37c5d0d5d1ad4e603dc50411c85bad6f726357a2
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-i386: Use TCGMemOp within qemu_ldst routines

Step one in the transition, with constants passed down from tcg_out_op.

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


  Commit: 7352ee546ce0aba261d0e64595eae6e74e75e49d
      
https://github.com/qemu/qemu/commit/7352ee546ce0aba261d0e64595eae6e74e75e49d
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-i386: Tidy softmmu routines

Pass two TCGReg to tcg_out_tlb_load, rather than idx+args.

Move ldst_optimization routines just below tcg_out_tlb_load to avoid
the need for forward declarations.

Use TCGReg enum in preference to int where apprpriate.

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


  Commit: b3e2bc500f5fe09763a107e2e28cb0e2d39ffb7c
      
https://github.com/qemu/qemu/commit/b3e2bc500f5fe09763a107e2e28cb0e2d39ffb7c
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-i386: Remove "cb" output restriction from qemu_st8 for i386

Once we form a combined qemu_st_i32 opcode, we won't be able to
have separate constraints based on size.  This one is fairly easy
to work around, since eax is available as a scratch register.

When storing variable data, this tends to merely exchange one mov
for another.  E.g.

-:  mov    %esi,%ecx
...
-:  mov    %cl,(%edx)
+:  mov    %esi,%eax
+:  mov    %al,(%edx)

Where we do have a regression is when storing constant data, in which
we may load the constant into edi, when only ecx/ebx ought to be used.

The proper way to recover this regression is to allow constants as
arguments to qemu_st_i32, so that we never load the constant data into
a register at all, must less the wrong register.  TBD.

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


  Commit: 8221a267fdc6e8eebbeb8d810b58efbe3a7d913e
      
https://github.com/qemu/qemu/commit/8221a267fdc6e8eebbeb8d810b58efbe3a7d913e
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-i386: Support new ldst opcodes

No support for helpers with non-default endianness yet,
but good enough to test the opcodes.

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


  Commit: 099fcf2e3689a702a0948b53f3cd42926bbe044a
      
https://github.com/qemu/qemu/commit/099fcf2e3689a702a0948b53f3cd42926bbe044a
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-arm: Use TCGMemOp within qemu_ldst routines

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


  Commit: 0315c51ea954766df8ab6697502dff22f5364f77
      
https://github.com/qemu/qemu/commit/0315c51ea954766df8ab6697502dff22f5364f77
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-arm: Convert to le/be ldst helpers

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


  Commit: a485cff09c44fffea121401cd3dcea13b8d1fe27
      
https://github.com/qemu/qemu/commit/a485cff09c44fffea121401cd3dcea13b8d1fe27
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-arm: Tidy variable naming convention in qemu_ld/st

s/addr_reg2/addrhi/
s/addr_reg/addrlo/
s/data_reg2/datahi/
s/data_reg/datalo/

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


  Commit: 15ecf6e3946b0d2f0b6deb95c321604b8741a882
      
https://github.com/qemu/qemu/commit/15ecf6e3946b0d2f0b6deb95c321604b8741a882
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-arm: Convert to new ldst opcodes

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


  Commit: 091d5677713d5e8e48ad670655d6bf1bac0b064d
      
https://github.com/qemu/qemu/commit/091d5677713d5e8e48ad670655d6bf1bac0b064d
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-arm: Improve GUEST_BASE qemu_ld/st

If we pull the code to emit the actual load/store into a subroutine,
we can share the reg+reg addressing mode code between softmmu and
usermode.  This lets us load GUEST_BASE into a temporary register
rather than attempting to add it piece-wise to the address.

Which lets us use movw+movt for armv7, rather than (up to) 4 adds.
Code size for pre-armv7 stays the same.

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


  Commit: f1a16dcdd5d52aa92563c8798d1b3e304c1245f9
      
https://github.com/qemu/qemu/commit/f1a16dcdd5d52aa92563c8798d1b3e304c1245f9
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-ppc: Use TCGMemOp within qemu_ldst routines

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


  Commit: a058557381e6bb4c7688572bba7b3a4c01234955
      
https://github.com/qemu/qemu/commit/a058557381e6bb4c7688572bba7b3a4c01234955
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-ppc64: Use TCGMemOp within qemu_ldst routines

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


  Commit: 92d0acda271f54a96956b9aef5031e702e12a700
      
https://github.com/qemu/qemu/commit/92d0acda271f54a96956b9aef5031e702e12a700
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-ppc: Convert to le/be ldst helpers

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


  Commit: e349a8d4ffb63e8e16c67d1702dd728d781424d6
      
https://github.com/qemu/qemu/commit/e349a8d4ffb63e8e16c67d1702dd728d781424d6
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-ppc64: Convert to le/be ldst helpers

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


  Commit: 5dd391604f590938dd9fd335102442f1612e5eed
      
https://github.com/qemu/qemu/commit/5dd391604f590938dd9fd335102442f1612e5eed
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-ppc: Support new ldst opcodes

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


  Commit: 1768ec0623c1253df3bf1424b07fbccb164e85fb
      
https://github.com/qemu/qemu/commit/1768ec0623c1253df3bf1424b07fbccb164e85fb
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

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

  Log Message:
  -----------
  tcg-ppc64: Support new ldst opcodes

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


  Commit: f8da40aefbd1b40a0c5ab6fb25987943fe01125c
      
https://github.com/qemu/qemu/commit/f8da40aefbd1b40a0c5ab6fb25987943fe01125c
  Author: Richard Henderson <address@hidden>
  Date:   2013-10-12 (Sat, 12 Oct 2013)

  Changed paths:
    M target-alpha/translate.c

  Log Message:
  -----------
  target-alpha: Convert to new ldst opcodes

Or, partially.  The fundamental primitives for the port are gen_load_mem
and gen_store_mem, which take a callback to emit the memory operation.
For that, we continue to use the original inline functions that forward
to the new ops, rather than replicate the same thing privately.

That said, all free-standing calls to tcg_gen_qemu_* have been converted.
The 32-bit floating-point references now use _i32 opcodes, eliminating
a truncate or extension.

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


  Commit: 1680d485777ecf436d724631ea8722cc0c66990e
      
https://github.com/qemu/qemu/commit/1680d485777ecf436d724631ea8722cc0c66990e
  Author: Anthony Liguori <address@hidden>
  Date:   2013-10-14 (Mon, 14 Oct 2013)

  Changed paths:
    M target-alpha/translate.c
    M tcg/arm/tcg-target.c
    M tcg/arm/tcg-target.h
    M tcg/i386/tcg-target.c
    M tcg/i386/tcg-target.h
    M tcg/ppc/tcg-target.c
    M tcg/ppc/tcg-target.h
    M tcg/ppc64/tcg-target.c
    M tcg/ppc64/tcg-target.h
    M tcg/tcg-be-ldst.h

  Log Message:
  -----------
  Merge remote-tracking branch 'rth/tcg-ldst-6' into staging

# By Richard Henderson
# Via Richard Henderson
* rth/tcg-ldst-6:
  target-alpha: Convert to new ldst opcodes
  tcg-ppc64: Support new ldst opcodes
  tcg-ppc: Support new ldst opcodes
  tcg-ppc64: Convert to le/be ldst helpers
  tcg-ppc: Convert to le/be ldst helpers
  tcg-ppc64: Use TCGMemOp within qemu_ldst routines
  tcg-ppc: Use TCGMemOp within qemu_ldst routines
  tcg-arm: Improve GUEST_BASE qemu_ld/st
  tcg-arm: Convert to new ldst opcodes
  tcg-arm: Tidy variable naming convention in qemu_ld/st
  tcg-arm: Convert to le/be ldst helpers
  tcg-arm: Use TCGMemOp within qemu_ldst routines
  tcg-i386: Support new ldst opcodes
  tcg-i386: Remove "cb" output restriction from qemu_st8 for i386
  tcg-i386: Tidy softmmu routines
  tcg-i386: Use TCGMemOp within qemu_ldst routines
  tcg: Use TCGMemOp for TCGLabelQemuLdst.opc

Message-id: address@hidden
Signed-off-by: Anthony Liguori <address@hidden>


Compare: https://github.com/qemu/qemu/compare/ded77da3cd6b...1680d485777e

reply via email to

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