diff mbox series

tcg: Fix info_in_idx increment in layout_arg_by_ref

Message ID 20230707102955.5607-1-richard.henderson@linaro.org
State Superseded
Headers show
Series tcg: Fix info_in_idx increment in layout_arg_by_ref | expand

Commit Message

Richard Henderson July 7, 2023, 10:29 a.m. UTC
Off by one error, failing to take into account that layout_arg_1
already incremeneted info_in_idx for the first piece.  We only
need care for the n-1 TCG_CALL_ARG_BY_REF_N pieces here.

Cc: qemu-stable@nongnu.org
Fixes: 313bdea84d2 ("tcg: Add TCG_CALL_{RET,ARG}_BY_REF")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1751
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 tcg/tcg.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Philippe Mathieu-Daudé July 7, 2023, 1:29 p.m. UTC | #1
On 7/7/23 12:29, Richard Henderson wrote:
> Off by one error, failing to take into account that layout_arg_1
> already incremeneted info_in_idx for the first piece.  We only
> need care for the n-1 TCG_CALL_ARG_BY_REF_N pieces here.
> 
> Cc: qemu-stable@nongnu.org
> Fixes: 313bdea84d2 ("tcg: Add TCG_CALL_{RET,ARG}_BY_REF")
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1751
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>   tcg/tcg.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Philippe Mathieu-Daudé July 7, 2023, 1:30 p.m. UTC | #2
On 7/7/23 12:29, Richard Henderson wrote:
> Off by one error, failing to take into account that layout_arg_1
> already incremeneted info_in_idx for the first piece.  We only

"incremented"

> need care for the n-1 TCG_CALL_ARG_BY_REF_N pieces here.
> 
> Cc: qemu-stable@nongnu.org
> Fixes: 313bdea84d2 ("tcg: Add TCG_CALL_{RET,ARG}_BY_REF")
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1751
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
>   tcg/tcg.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
Peter Maydell July 13, 2023, 12:37 p.m. UTC | #3
On Fri, 7 Jul 2023 at 11:29, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> Off by one error, failing to take into account that layout_arg_1
> already incremeneted info_in_idx for the first piece.  We only
> need care for the n-1 TCG_CALL_ARG_BY_REF_N pieces here.
>
> Cc: qemu-stable@nongnu.org
> Fixes: 313bdea84d2 ("tcg: Add TCG_CALL_{RET,ARG}_BY_REF")
> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1751
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---

Tested-by: Peter Maydell <peter.maydell@linaro.org>

-- PMM
diff mbox series

Patch

diff --git a/tcg/tcg.c b/tcg/tcg.c
index a0628fe424..652e8ea6b9 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -1083,7 +1083,7 @@  static void layout_arg_by_ref(TCGCumulativeArgs *cum, TCGHelperInfo *info)
             .ref_slot = cum->ref_slot + i,
         };
     }
-    cum->info_in_idx += n;
+    cum->info_in_idx += n - 1;  /* i=0 accounted for in layout_arg_1 */
     cum->ref_slot += n;
 }