qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 13/14] tcg/arm: Reserve a register for guest_base


From: Richard Henderson
Subject: Re: [PATCH v3 13/14] tcg/arm: Reserve a register for guest_base
Date: Fri, 20 Aug 2021 08:47:08 -1000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

On 8/20/21 2:03 AM, Peter Maydell wrote:
-        } else if (datalo != addend) {
+        } else if (scratch_addend) {
              tcg_out_ld32_rwb(s, COND_AL, datalo, addend, addrlo);
              tcg_out_ld32_12(s, COND_AL, datahi, addend, 4);
          } else {

I don't understand this change. Yes, we can trash the addend
register, but if it's the same as 'datalo' then the second load
is not going to DTRT... Shouldn't this be
   if (scratch_addend && datalo != addend)
?

Previously, addend was *always* a scratch register, TCG_REG_TMP or such.
Afterward, addend may be TCG_REG_GUEST_BASE, which should not be modified.
At no point is there overlap between addend and data{hi,lo}.

r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]