All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Philippe Mathieu-Daudé" <philmd@linaro.org>
Subject: [PATCH v3 19/34] tcg: Introduce TCGCallReturnKind and TCGCallArgumentKind
Date: Thu,  1 Dec 2022 21:39:43 -0800	[thread overview]
Message-ID: <20221202053958.223890-20-richard.henderson@linaro.org> (raw)
In-Reply-To: <20221202053958.223890-1-richard.henderson@linaro.org>

Prepare to replace a bunch of separate ifdefs with a
consistent way to describe the ABI of a function call.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 tcg/tcg-internal.h | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/tcg/tcg-internal.h b/tcg/tcg-internal.h
index 2c06b5116a..f574743ff8 100644
--- a/tcg/tcg-internal.h
+++ b/tcg/tcg-internal.h
@@ -27,6 +27,21 @@
 
 #define TCG_HIGHWATER 1024
 
+/*
+ * Describe the calling convention of a given argument type.
+ */
+typedef enum {
+    TCG_CALL_RET_NORMAL,         /* by registers */
+} TCGCallReturnKind;
+
+typedef enum {
+    TCG_CALL_ARG_NORMAL,         /* by registers (continuing onto stack) */
+    TCG_CALL_ARG_EVEN,           /* like normal, but skipping odd slots */
+    TCG_CALL_ARG_EXTEND,         /* for i32, as a sign/zero-extended i64 */
+    TCG_CALL_ARG_EXTEND_U,       /*      ... as a zero-extended i64 */
+    TCG_CALL_ARG_EXTEND_S,       /*      ... as a sign-extended i64 */
+} TCGCallArgumentKind;
+
 typedef struct TCGHelperInfo {
     void *func;
     const char *name;
-- 
2.34.1



  parent reply	other threads:[~2022-12-02  5:54 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-02  5:39 [PATCH for-8.0 v3 00/34] tcg misc patches Richard Henderson
2022-12-02  5:39 ` [PATCH v3 01/34] tcg: convert tcg/README to rst Richard Henderson
2022-12-02  5:39 ` [PATCH v3 02/34] meson: Move CONFIG_TCG_INTERPRETER to config_host Richard Henderson
2022-12-02  9:42   ` Paolo Bonzini
2022-12-02  5:39 ` [PATCH v3 03/34] tcg/s390x: Fix coding style Richard Henderson
2022-12-02  5:39 ` [PATCH v3 04/34] tcg: Cleanup trailing whitespace Richard Henderson
2022-12-02  7:33   ` Philippe Mathieu-Daudé
2022-12-02  5:39 ` [PATCH v3 05/34] tcg: Fix tcg_reg_alloc_dup* Richard Henderson
2022-12-02  5:39 ` [PATCH v3 06/34] tcg: Centralize updates to reg_to_temp Richard Henderson
2022-12-02  5:39 ` [PATCH v3 07/34] tcg: Remove check_regs Richard Henderson
2022-12-02  5:39 ` [PATCH v3 08/34] tcg: Tidy tcg_reg_alloc_op Richard Henderson
2022-12-02  5:39 ` [PATCH v3 09/34] tcg: Introduce paired register allocation Richard Henderson
2022-12-02  5:39 ` [PATCH v3 10/34] tcg: Remove TCG_TARGET_STACK_GROWSUP Richard Henderson
2022-12-02  5:39 ` [PATCH v3 11/34] accel/tcg: Set cflags_next_tb in cpu_common_initfn Richard Henderson
2022-12-02  5:39 ` [PATCH v3 12/34] target/sparc: Avoid TCGV_{LOW,HIGH} Richard Henderson
2022-12-02  5:39 ` [PATCH v3 13/34] tcg: Move TCG_{LOW,HIGH} to tcg-internal.h Richard Henderson
2022-12-02  5:39 ` [PATCH v3 14/34] tcg: Add temp_subindex to TCGTemp Richard Henderson
2022-12-02  5:39 ` [PATCH v3 15/34] tcg: Simplify calls to temp_sync vs mem_coherent Richard Henderson
2022-12-02  5:39 ` [PATCH v3 16/34] tcg: Allocate TCGTemp pairs in host memory order Richard Henderson
2022-12-02  5:39 ` [PATCH v3 17/34] tcg: Move TCG_TYPE_COUNT outside enum Richard Henderson
2022-12-02  5:39 ` [PATCH v3 18/34] tcg: Introduce tcg_type_size Richard Henderson
2022-12-02  5:39 ` Richard Henderson [this message]
2022-12-02  5:39 ` [PATCH v3 20/34] tcg: Replace TCG_TARGET_CALL_ALIGN_ARGS with TCG_TARGET_CALL_ARG_I64 Richard Henderson
2022-12-02  5:39 ` [PATCH v3 21/34] tcg: Replace TCG_TARGET_EXTEND_ARGS with TCG_TARGET_CALL_ARG_I32 Richard Henderson
2022-12-02  5:39 ` [PATCH v3 22/34] tcg: Use TCG_CALL_ARG_EVEN for TCI special case Richard Henderson
2022-12-02  5:39 ` [PATCH v3 23/34] accel/tcg/plugin: Don't search for the function pointer index Richard Henderson
2022-12-02  5:39 ` [PATCH v3 24/34] accel/tcg/plugin: Avoid duplicate copy in copy_call Richard Henderson
2022-12-02  5:39 ` [PATCH v3 25/34] accel/tcg/plugin: Use copy_op in append_{udata, mem}_cb Richard Henderson
2022-12-02  5:39 ` [PATCH v3 26/34] tci: MAX_OPC_PARAM_IARGS is no longer used Richard Henderson
2022-12-02  5:39 ` [PATCH v3 27/34] tcg: Vary the allocation size for TCGOp Richard Henderson
2022-12-02  5:39 ` [PATCH v3 28/34] tcg: Use output_pref wrapper function Richard Henderson
2022-12-02  5:39 ` [PATCH v3 29/34] tcg: Reorg function calls Richard Henderson
2022-12-06 15:28   ` Ilya Leoshkevich
2022-12-06 15:49     ` Richard Henderson
2022-12-06 15:58       ` Ilya Leoshkevich
2022-12-02  5:39 ` [PATCH v3 30/34] tcg: Convert typecode_to_ffi from array to function Richard Henderson
2022-12-02  5:39 ` [PATCH v3 31/34] tcg: Factor init_ffi_layouts() out of tcg_context_init() Richard Henderson
2022-12-02  5:39 ` [PATCH v3 32/34] tcg: Move ffi_cif pointer into TCGHelperInfo Richard Henderson
2022-12-02  5:39 ` [PATCH v3 33/34] tcg/aarch64: Merge tcg_out_callr into tcg_out_call Richard Henderson
2022-12-02  5:39 ` [PATCH v3 34/34] tcg: Add TCGHelperInfo argument to tcg_out_call Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221202053958.223890-20-richard.henderson@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.