Thanks Peter

> 在 2023年3月18日,上午12:18,Peter Maydell <peter.mayd...@linaro.org> 写道:
> 
> On Fri, 17 Mar 2023 at 15:17, 沈梦姣 <shen.mengji...@icloud.com> wrote:
>> 
>> Hi,
>> When generating host code, sometimes it has to jmp to qemu common
>> code(e.g. memory management code to get host virtual address), but
>> it seems before the jmp the caller saved registers haven’t been
>> pushed to stack, qemu common code is function so it can use caller
>> saved registers.
> 
> TCG knows what registers may be clobbered by a call into
> host C code (this is set up in the tcg_target_call_clobber_regs
> regset by code in tcg_target_init()), so the register allocator
> will either avoid using those registers
Look at tcg_target_reg_alloc_order in i386 host, it has these clobber registers 
though it first allocates callee saved registers.
> for values that must
> be preserved across the call, or else it will spill them to
> memory.
I didn’t see these clobber registers being saved to memory before call/jmp Host 
C code in i386(x86-64) host, and copy these memory value back to these registers
> 
> -- PMM

Reply via email to