diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2024-02-14 13:00:11 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2024-02-14 13:00:11 +0000 |
commit | 2766e3668c29a5757aa426fc0b8391e55f69e13e (patch) | |
tree | 819a6661e884bcbeb336b9f673be574572ffbdd9 | |
parent | 62357c047a5abc6ede992159ed7c0aaaeb50617a (diff) | |
parent | e41f1825b43796c3508ef309ed0b150ef89acc44 (diff) | |
download | qemu-2766e3668c29a5757aa426fc0b8391e55f69e13e.zip qemu-2766e3668c29a5757aa426fc0b8391e55f69e13e.tar.gz qemu-2766e3668c29a5757aa426fc0b8391e55f69e13e.tar.bz2 |
Merge tag 'pull-tcg-20240213' of https://gitlab.com/rth7680/qemu into staging
tcg: Increase width of temp_subindex
tcg/arm: Fix goto_tb for large translation blocks
# -----BEGIN PGP SIGNATURE-----
#
# iQFRBAABCgA7FiEEekgeeIaLTbaoWgXAZN846K9+IV8FAmXMFdUdHHJpY2hhcmQu
# aGVuZGVyc29uQGxpbmFyby5vcmcACgkQZN846K9+IV+WbwgAsl+6/JTasUNgfJ/d
# ufSRMb6MIwzQoGK9CMAiy489Sct+MGF2eEmV49vCEUSX/Kh6kkekJ3oWVOg9BJKp
# 2U+LUgRdQIBExuk5mb1DV2zErV/VJw/8Ybm/kfzkDNzUwoZHmzDQti+KkewefMXa
# OesRVQxHOVKZo4BlZ+hrcPREOfcQfEE8QjpmL0k/nova6QHHYu41ZRpxrOcelxgM
# RuuoE5LAjCXq5P9SII3DjoIDOVoWdqb1TOtc3mx11PHcZnLAjKVZfe8wozJRpNgz
# ZlJ9N+GjOTz1iY5aAj5DG3UK7TcJN2n0ABhUJbxhu6z6agrmEV3s4bngKWbNHq7h
# NPyNpg==
# =Ryxw
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 14 Feb 2024 01:22:29 GMT
# gpg: using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F
# gpg: issuer "richard.henderson@linaro.org"
# gpg: Good signature from "Richard Henderson <richard.henderson@linaro.org>" [full]
# Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A 05C0 64DF 38E8 AF7E 215F
* tag 'pull-tcg-20240213' of https://gitlab.com/rth7680/qemu:
tcg/arm: Fix goto_tb for large translation blocks
tcg: Increase width of temp_subindex
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r-- | include/tcg/tcg.h | 2 | ||||
-rw-r--r-- | tcg/arm/tcg-target.c.inc | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h index daf2a5b..451f3fe 100644 --- a/include/tcg/tcg.h +++ b/include/tcg/tcg.h @@ -412,7 +412,7 @@ typedef struct TCGTemp { unsigned int mem_coherent:1; unsigned int mem_allocated:1; unsigned int temp_allocated:1; - unsigned int temp_subindex:1; + unsigned int temp_subindex:2; int64_t val; struct TCGTemp *mem_base; diff --git a/tcg/arm/tcg-target.c.inc b/tcg/arm/tcg-target.c.inc index ffd23ef..6a04c73 100644 --- a/tcg/arm/tcg-target.c.inc +++ b/tcg/arm/tcg-target.c.inc @@ -1771,9 +1771,9 @@ static void tcg_out_goto_tb(TCGContext *s, int which) * shifted immediate from pc. */ int h = -i_disp; - int l = h & 0xfff; + int l = -(h & 0xfff); - h = encode_imm_nofail(h - l); + h = encode_imm_nofail(h + l); tcg_out_dat_imm(s, COND_AL, ARITH_SUB, TCG_REG_R0, TCG_REG_PC, h); tcg_out_ld32_12(s, COND_AL, TCG_REG_PC, TCG_REG_R0, l); } |