[Top][All Lists]

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

Re: Generating host code in TCG mode

From: 沈梦姣
Subject: Re: Generating host code in TCG mode
Date: Sat, 18 Mar 2023 05:01:10 +0800

Thanks Peter

在 2023年3月18日,上午12:18,Peter Maydell <peter.maydell@linaro.org> 写道:

On Fri, 17 Mar 2023 at 15:17, 沈梦姣 <shen.mengjiao3@icloud.com> wrote:

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
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

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