qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 07/10] tcg: implement bulletproof JIT


From: Richard Henderson
Subject: Re: [PATCH 07/10] tcg: implement bulletproof JIT
Date: Wed, 14 Oct 2020 14:49:28 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0

On 10/14/20 1:58 PM, Joelle van Dyne wrote:
> Much of the code that uses the macro is like the following (from
> aarch64/tcg-include.inc.c)
> 
>         *TCG_CODE_PTR_RW(s, code_ptr) =
>             deposit32(*TCG_CODE_PTR_RW(s, code_ptr), 0, 26, offset);
> 
> Before the change, it was just *code_ptr. I'm saying the alternative
> was to have to write "tcg_insn_unit *rw_code_ptr = (tcg_insn_unit
> *)TCG_CODE_PTR_RW(s, code_ptr)" everywhere or else inline cast it.
> Whereas making it return tcg_insn_unit * means only three instances of
> casting to uint8_t *. Using void * means casting at every instance.

I should have done more than skim, I suppose.

Well, without going back to look, how many of these are there, really?
Virtually all of the writes should be via tcg_out32().

If there's < 5 of the above per tcg/foo/ -- particularly if they're all
restricted to relocations as in the above -- then I'm ok with local variable
assignment to "rw_ptr".  Especially since the replacement isn't exactly small,
and you're having to split to two separate lines anyway.

I'll have a real look when you've split this into parts, because otherwise it's
just too big.


r~



reply via email to

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