mbox series

[v3,0/9] tcg: Reorg 128-bit atomic operations

Message ID 20181003193931.18096-1-richard.henderson@linaro.org
Headers show
Series tcg: Reorg 128-bit atomic operations | expand

Message

Richard Henderson Oct. 3, 2018, 7:39 p.m. UTC
For v2, and history, see
  http://lists.nongnu.org/archive/html/qemu-devel/2018-08/msg04533.html

Changes since v2:
  * Fixed a typo noticed by Emilio.
  * Brought the target/s390x changes back, as the patches with
    which they conflicted are now in mainline.


r~


Richard Henderson (9):
  tcg: Split CONFIG_ATOMIC128
  target/i386: Convert to HAVE_CMPXCHG128
  target/arm: Convert to HAVE_CMPXCHG128
  target/arm: Check HAVE_CMPXCHG128 at translate time
  target/ppc: Convert to HAVE_CMPXCHG128 and HAVE_ATOMIC128
  target/s390x: Convert to HAVE_CMPXCHG128 and HAVE_ATOMIC128
  target/s390x: Split do_cdsg, do_lpq, do_stpq
  target/s390x: Skip wout, cout helpers if op helper does not return
  target/s390x: Check HAVE_ATOMIC128 and HAVE_CMPXCHG128 at translate

 accel/tcg/atomic_template.h |  20 ++-
 include/qemu/atomic128.h    | 155 ++++++++++++++++++++++
 target/ppc/helper.h         |   2 +-
 tcg/tcg.h                   |  16 ++-
 accel/tcg/cputlb.c          |   3 +-
 accel/tcg/user-exec.c       |   5 +-
 target/arm/helper-a64.c     | 251 ++++++++++++++++++------------------
 target/arm/translate-a64.c  |  38 +++---
 target/i386/mem_helper.c    |   9 +-
 target/ppc/mem_helper.c     |  33 ++++-
 target/ppc/translate.c      | 115 +++++++++--------
 target/s390x/mem_helper.c   | 202 +++++++++++++----------------
 target/s390x/translate.c    |  37 ++++--
 configure                   |  19 +++
 14 files changed, 561 insertions(+), 344 deletions(-)
 create mode 100644 include/qemu/atomic128.h

-- 
2.17.1

Comments

Emilio Cota Oct. 9, 2018, 6:51 p.m. UTC | #1
On Wed, Oct 03, 2018 at 14:39:22 -0500, Richard Henderson wrote:
(snip)
> Richard Henderson (9):

>   tcg: Split CONFIG_ATOMIC128

>   target/i386: Convert to HAVE_CMPXCHG128

>   target/arm: Convert to HAVE_CMPXCHG128

>   target/arm: Check HAVE_CMPXCHG128 at translate time

>   target/ppc: Convert to HAVE_CMPXCHG128 and HAVE_ATOMIC128

>   target/s390x: Convert to HAVE_CMPXCHG128 and HAVE_ATOMIC128

>   target/s390x: Split do_cdsg, do_lpq, do_stpq

>   target/s390x: Skip wout, cout helpers if op helper does not return

>   target/s390x: Check HAVE_ATOMIC128 and HAVE_CMPXCHG128 at translate


Cc'ing ppc/s390x maintainers -- I'm not sure they've seen this series.
Link to this thread (v3):
  https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg00598.html

I'm eager to get this merged, particularly for i386 where it is
fixing unnecessary exits via exec_atomic for cmpxchg16 emulation.

Thanks,

		Emilio
David Hildenbrand Oct. 11, 2018, 8:10 a.m. UTC | #2
On 09/10/2018 20:51, Emilio G. Cota wrote:
> On Wed, Oct 03, 2018 at 14:39:22 -0500, Richard Henderson wrote:

> (snip)

>> Richard Henderson (9):

>>   tcg: Split CONFIG_ATOMIC128

>>   target/i386: Convert to HAVE_CMPXCHG128

>>   target/arm: Convert to HAVE_CMPXCHG128

>>   target/arm: Check HAVE_CMPXCHG128 at translate time

>>   target/ppc: Convert to HAVE_CMPXCHG128 and HAVE_ATOMIC128

>>   target/s390x: Convert to HAVE_CMPXCHG128 and HAVE_ATOMIC128

>>   target/s390x: Split do_cdsg, do_lpq, do_stpq

>>   target/s390x: Skip wout, cout helpers if op helper does not return

>>   target/s390x: Check HAVE_ATOMIC128 and HAVE_CMPXCHG128 at translate

> 

> Cc'ing ppc/s390x maintainers -- I'm not sure they've seen this series.

> Link to this thread (v3):

>   https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg00598.html

> 

> I'm eager to get this merged, particularly for i386 where it is

> fixing unnecessary exits via exec_atomic for cmpxchg16 emulation.

> 

> Thanks,

> 

> 		Emilio

> 


Thanks for the CC, I indeed haven't seen it.

-- 

Thanks,

David / dhildenb