From patchwork Fri Apr 27 00:26:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Henderson X-Patchwork-Id: 134537 Delivered-To: patch@linaro.org Received: by 10.46.151.6 with SMTP id r6csp88056lji; Thu, 26 Apr 2018 17:27:31 -0700 (PDT) X-Google-Smtp-Source: AB8JxZq2im2Trfw0uw9BOVEFBV2qghRgUb4WA5YLINmSikvx/Tz8PucsFZvRhAF8D0kP7nJFIpMN X-Received: by 2002:aed:30af:: with SMTP id 44-v6mr162692qtf.335.1524788851326; Thu, 26 Apr 2018 17:27:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524788851; cv=none; d=google.com; s=arc-20160816; b=rUFH9RJYHIt5tOBFVvA6OZNNjs0KV6nit3OzX5k1wuzuHf3nrJ+yFpvm6Xo1zVFR1G jU3uWQHWS2g2/OS3nQS3M2f+5Xjt37U6DADWY2rQsSfx6+RWg39d1vn0Qeqa66p0uUyg eItY++V0OAUM93dC6kXVlJsnxJ1+qzL1/YjfyevCRdnloT5cEVxFRHDyrqB6DK+cdp63 0eq0QwTl/hH+j7H/mhboyiTRnFB7WnH1YbpvJSc+4nq5RB/afRw0PD8h+sIeCDPnQyts NdurtP0bBm7ohZUIy0skkqoy5vA1i409dbY1X6ETvVKmbh/wgI7zRFQ7RI+2kWvgqP7Z KyrA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:message-id:date:to:from :dkim-signature:arc-authentication-results; bh=ISA6sXf01iU83rynk6P57VZzQ8PJr5R2j4ueWJh+z64=; b=xyCmXtTWB2gG59xO0OjXq1BiVKnM8qz4GLQTMR+jZi6Lg4fbnRzuUP/MrsW2Wjso7Q bChteu1H5mvdkf/NCIZr3HM7VVF0crFnv3ys3psM9fcABhP34RxnsS7Uk6p60VuniAhp OPIwTL51jn3AqancNIK98jrl0/Q/34Xb1wfFjUpcbkxo5jFq8ZMd7KBaVm8+UhU5wmGi cKLpT233hnDuU/9TAX/5TYw9KGEUgXxXco0Ezs1sLSJr8CO7PeQL2p1+EYRWuXogRutg uYQhMthVNsSkIv8XbQG74jP+hgyKDXMsQ31ScYKJs5+Oh1qzfdoRmXtHFwWkkpMJe8IL xJnw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Pj5QAtRF; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [2001:4830:134:3::11]) by mx.google.com with ESMTPS id q8si98733qkj.267.2018.04.26.17.27.31 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 26 Apr 2018 17:27:31 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) client-ip=2001:4830:134:3::11; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=Pj5QAtRF; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 2001:4830:134:3::11 as permitted sender) smtp.mailfrom=qemu-devel-bounces+patch=linaro.org@nongnu.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([::1]:45099 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBrEY-0001y6-O8 for patch@linaro.org; Thu, 26 Apr 2018 20:27:30 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51587) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fBrE6-0001x2-HF for qemu-devel@nongnu.org; Thu, 26 Apr 2018 20:27:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fBrE5-0004OR-JN for qemu-devel@nongnu.org; Thu, 26 Apr 2018 20:27:02 -0400 Received: from mail-pg0-x243.google.com ([2607:f8b0:400e:c05::243]:36463) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fBrE5-0004O1-Dm for qemu-devel@nongnu.org; Thu, 26 Apr 2018 20:27:01 -0400 Received: by mail-pg0-x243.google.com with SMTP id i6-v6so152368pgv.3 for ; Thu, 26 Apr 2018 17:27:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=ISA6sXf01iU83rynk6P57VZzQ8PJr5R2j4ueWJh+z64=; b=Pj5QAtRFqouDfIigdkFPhzsjSdSvOMBQ7Ly/QlndkUPZ39efqiwV6pyZB7RMT1DVAA OFe44K8BdoMmlhMA+Vo0ezOniMpNwG77/d0jOGgZFTOmcqs20u7/hMT4Y5mzvjygT9hj 0QPEJEddI9KfTHMsp+jlkb/q9jJMeYuA/u958= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=ISA6sXf01iU83rynk6P57VZzQ8PJr5R2j4ueWJh+z64=; b=aBYAGyQWwOqS7y8ZKV+F5cWS0NNSLj2mQCpwLthxCzkHZ6dnLRly1sZlKuUQB2X8Wd xivc+kjLgBP/HzAnrmwJEhYTvriByiM63mvq97ckX0Bj+qnhEyyF3OvTxm8ra6s/Piz4 rGArBX6lWsda4hJwHwQef21/q18B13Z2TBWbj37XuFG4zre0XTWOHNWrXMZyhGB+ZMLh baiYWkd8f3OvIqbhKDNWD5bh6A+mVl8QqPbqDbabc3/K/uWmng6HgiuP1G/GGyZFa9aW jgjCkhn0zOgUDj6PRqxT1uqRvvkA5GVziRyurWx8F0MvbYEI92XTwV6KrX3OPC0jMvZY Z7Dg== X-Gm-Message-State: ALQs6tDpkV3jmvYq3WhsUKb7WM5F3+KwU5h1mX1dG0Ko4O0KVMDlznAT 3nduLEaHFF2WoS7S2FTibQ2+YltT0J0= X-Received: by 2002:a63:8348:: with SMTP id h69-v6mr168395pge.378.1524788819963; Thu, 26 Apr 2018 17:26:59 -0700 (PDT) Received: from cloudburst.twiddle.net.com ([2605:e000:112b:41da:c94c:5ee7:de92:7d78]) by smtp.gmail.com with ESMTPSA id g76sm86338pfj.102.2018.04.26.17.26.58 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 26 Apr 2018 17:26:58 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Date: Thu, 26 Apr 2018 14:26:42 -1000 Message-Id: <20180427002651.28356-1-richard.henderson@linaro.org> X-Mailer: git-send-email 2.14.3 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:400e:c05::243 Subject: [Qemu-devel] [PATCH 0/9] target/arm: Implement v8.1-Atomics X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-arm@nongnu.org Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This implements the Atomics extension, which is mandatory for v8.1. While testing the v8.2-SVE extension, I've run into issues with the GCC testsuite expecting this to exist. Missing is the wiring up of the system registers to indicate that the extension exists, but we have no system CPU model that would exercise such a setting. r~ PS: Given the extension is mandatory, it might be better to save feature bits and file this under ARM_FEATURE_V8_1. Thoughts? PPS: Testing for this will proceed overnight. It takes a while to run the gcc testsuite and I'm ready to stop for the day. ;-) Richard Henderson (9): tcg: Introduce helpers for integer min/max target/arm: Use new min/max expanders target/xtensa: Use new min/max expanders tcg: Introduce atomic helpers for integer min/max target/riscv: Use new atomic min/max expanders target/arm: Introduce ARM_FEATURE_V8_ATOMICS and initial decode target/arm: Fill in disas_ldst_atomic target/arm: Implement CAS and CASP target/arm: Enable ARM_FEATURE_V8_ATOMICS for user-only accel/tcg/atomic_template.h | 71 +++++++++ accel/tcg/tcg-runtime.h | 8 + target/arm/cpu.h | 1 + target/arm/helper-a64.h | 2 + tcg/tcg-op.h | 50 ++++++ tcg/tcg.h | 8 + linux-user/elfload.c | 1 + target/arm/cpu64.c | 1 + target/arm/helper-a64.c | 43 +++++ target/arm/translate-a64.c | 375 +++++++++++++++++++++++++++++++++++--------- target/riscv/translate.c | 72 +++------ target/xtensa/translate.c | 50 ++++-- tcg/tcg-op.c | 48 ++++++ 13 files changed, 583 insertions(+), 147 deletions(-) -- 2.14.3