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 |
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>
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(-)
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 --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; }
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(-)