From nobody Tue Feb 10 06:25:26 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=philmd@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1621363067; cv=none; d=zohomail.com; s=zohoarc; b=nXnGIdGa2kzymD9pYLNLhAW0zYkT9EtMaD7V5Vatl9BKnmFzCpnP0Yto450q5IBqj7NLX14T97AeHJMaAkrn6iMx4RcR46UItnl25iGVIAFjZlbzT0Ic+TZPM7cjjA922eJaBsjkkKjRJJjQ7ESV1Ny0yT2hTih56DL8Ek6fi2A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621363067; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=L4UOKckP4V9oUzE7TpxZ0flVen5pbcGekiky6msHo58=; b=UgnbMe24N+sddkKHNeXRx+cC8DfhBb+rvj2Drc6NC7hJLZBL+W3YRFkVqEOA70vgsTEBkbRda/j9Fb1NVFlCOVRzU55pt1X0aiRMRlCc1i1jjFVU79C0fHEIIzeqK4N8OSHehxeYfCABFbMS7ombng/iHQ7y2MXLkAmCQz7ahdU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=philmd@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1621363067436728.1360381456673; Tue, 18 May 2021 11:37:47 -0700 (PDT) Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-253-6cWqbppzOtmqnMH3l3Y5rA-1; Tue, 18 May 2021 14:37:44 -0400 Received: by mail-ej1-f72.google.com with SMTP id i23-20020a17090685d7b02903d089ab83fcso2734829ejy.19 for ; Tue, 18 May 2021 11:37:44 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.redhat.com (31.red-83-51-215.dynamicip.rima-tde.net. [83.51.215.31]) by smtp.gmail.com with ESMTPSA id d11sm5184859ejr.58.2021.05.18.11.37.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 May 2021 11:37:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1621363066; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=L4UOKckP4V9oUzE7TpxZ0flVen5pbcGekiky6msHo58=; b=ILaTOsnyIOz3hFK/MX5KaEyLipq1wJtVA0jK2vZ9K8jMIrwnZuZYIcK++cP7bylp0sMyZg HcCx7HT/Ur/ug95GMjKY2jWsrLcMxt682hk+CPWlcyAxSHlZ7Tg/+GgqBVRkcy+TxJTu6n XODVQmoDkiHkU1uVs3cbu/NpKAFAk/c= X-MC-Unique: 6cWqbppzOtmqnMH3l3Y5rA-1 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=L4UOKckP4V9oUzE7TpxZ0flVen5pbcGekiky6msHo58=; b=qFYFKe6T53pSNzK4RNHVDw59XlQ40Z2KF0IaIn+Hf0TxkFsp1nG7WAX8kf6GcF8MjU VXBpeg6supfbMuRGtFusfHpNiz7OvWFcuDox2O97DD2FhUzT74+CNl6zQ8lJw981SHhk 1SKxCOOUelC7jkokgAvnBdrQl8FOz78d5eH7yLzrlkyWRTy9K5dBY3ebqC/5xGrKVKIM WlJuXX83mD6puwLZX9ZmibVahgiaT4pqBS7wCtP/lU82Ku6mMYQphqqcWtCYltWYfNbr zhK/D3RMCNQnPOKUSeOE4o+nUeLWvmYJpOHRHrSUtjZg19PU5reiOrBjM0YJy5M3t7Wu a+gg== X-Gm-Message-State: AOAM531xKQWRa5nz5Z89d9Un6+OOX6zE3NMIvE+7n0RU9qxvQJk0dkdx iPq3FwJureAQVX17snBhIajUYgiQEvtKqVsorujedwOKDNS4hazxlTCu8WRfQpfJs8PV6sxwPoM vBpYiz3TK4R8wzw== X-Received: by 2002:a17:906:1c46:: with SMTP id l6mr7488881ejg.328.1621363063408; Tue, 18 May 2021 11:37:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyqtEhOspP41DPZl6H/khJhmutvLtF3+XqB6Cf1cI3Y7PnU/TrJhpIdULKfyUr5/8vL3YheXA== X-Received: by 2002:a17:906:1c46:: with SMTP id l6mr7488869ejg.328.1621363063273; Tue, 18 May 2021 11:37:43 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Bibo Mao , "Michael S. Tsirkin" , Richard Henderson , Paolo Bonzini , Jiaxun Yang , Peter Xu , Huacai Chen , Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [RFC PATCH 09/25] qemu/bswap: Introduce LD_CONVERT() macro Date: Tue, 18 May 2021 20:36:39 +0200 Message-Id: <20210518183655.1711377-10-philmd@redhat.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210518183655.1711377-1-philmd@redhat.com> References: <20210518183655.1711377-1-philmd@redhat.com> MIME-Version: 1.0 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=philmd@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) To be able to add more load/store operations, introduce the LD_CONVERT() macro. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- include/qemu/bswap.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h index 4e2bd2e97ee..c2fd4f31d20 100644 --- a/include/qemu/bswap.h +++ b/include/qemu/bswap.h @@ -434,18 +434,37 @@ static inline void stq_be_p(void *ptr, uint64_t v) stq_he_p(ptr, be_bswap(v, 64)); } =20 +#define LD_CONVERT_UNALIGNED(bits, rtype, vtype, size)\ +static inline rtype ld ## size ## _he_p(const void *ptr)\ +{\ + vtype r;\ + __builtin_memcpy(&r, ptr, sizeof(r));\ + return r;\ +} + #define ST_CONVERT_UNALIGNED(bits, vtype, size)\ static inline void st ## size ## _he_p(void *ptr, vtype v)\ {\ __builtin_memcpy(ptr, &v, sizeof(v));\ } =20 +#define LD_CONVERT_END(endian, bits, rtype, vtype, size)\ +static inline rtype ld ## size ## _ ## endian ## _p(const void *ptr)\ +{\ + return (vtype)glue(endian, _bswap)(ld ## size ## _he_p(ptr), bits);\ +} + #define ST_CONVERT_END(endian, bits, vtype, size)\ static inline void st ## size ## _ ## endian ## _p(void *ptr, vtype v)\ {\ st ## size ## _he_p(ptr, glue(endian, _bswap)(v, bits));\ } =20 +#define LD_CONVERT(bits, rtype, vtype, size)\ + LD_CONVERT_UNALIGNED(bits, rtype, vtype, size)\ + LD_CONVERT_END(le, bits, rtype, vtype, size)\ + LD_CONVERT_END(be, bits, rtype, vtype, size) + #define ST_CONVERT(bits, vtype, size)\ ST_CONVERT_UNALIGNED(bits, vtype, size)\ ST_CONVERT_END(le, bits, vtype, size)\ --=20 2.26.3