On 9/22/22 07:04, Peter Maydell wrote:
On Tue, 6 Sept 2022 at 11:13, Richard Henderson
<richard.hender...@linaro.org> wrote:

In preparation for TARGET_TB_PCREL, reduce reliance on
absolute values by passing in pc difference.

Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---



@@ -263,14 +263,14 @@ static inline int curr_insn_len(DisasContext *s)

  #ifdef TARGET_AARCH64
  void a64_translate_init(void);
-void gen_a64_set_pc_im(uint64_t val);
+void gen_a64_update_pc(DisasContext *s, int diff);

AArch64 addresses are 64-bit, so there's no guarantee the diff
between two of them will fit in an int... We pass pc values around
as uint64_t, so I think we should pass diffs around in int64_t.

I'll make the change, but it's also true that no single insn can generate a displacement more than INT32_MIN away from pc (adrp).


r~

Reply via email to