qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] cpu_regs in target-i386


From: Xin Tong
Subject: Re: [Qemu-devel] cpu_regs in target-i386
Date: Sun, 27 Nov 2011 10:23:45 -0500

This is a bit confusing then

in target-i386/translate.c

void optimize_flags_init(void)
{
  ...
  cpu_regs[15] = tcg_global_mem_new_i64(TCG_AREG0,
                                          offsetof(CPUState, regs[15]), "r15");
  printf("offsetof(CPUState, regs[15]) is %ld\n", offsetof(CPUState, regs[15]));

  ...
}

output is cpu_regs[15] is 20, offsetof(CPUState, regs[15]) is 120,
should not cpu_regs[15] == 120 ?


Thanks

Xin






On Sun, Nov 27, 2011 at 9:53 AM, Andreas Färber <address@hidden> wrote:
> Am 27.11.2011 15:36, schrieb Xin Tong:
>> If i understand correctly here, those are just array of offsets for
>> the emulated registers such that the tcg can easily get access to the
>> address of the emulated registers. This is, however, different from
>> the env (CPUx86State) variable which will always have a host register
>> pointing to it ( host register is made to point to env in the tb enter
>> prologue).
>
> Yes:
>
> host register pointed to by cpu_env contains address of env
> +
> offset stored in cpu_* variable
> =
> address of corresponding struct member in env
>
> Andreas
>
>> On Sun, Nov 27, 2011 at 9:12 AM, Andreas Färber <address@hidden> wrote:
>>> Am 27.11.2011 14:46, schrieb Xin Tong:
>>>> When the x86 vcpu is initialized, a CPUX86State is qemu_mallocz'ed.
>>>> env is used to point to it and modifications to the CPUX86State can
>>>> thereby be done via the register that contains the env. I do not get
>>>> what the cpu_regs[CPU_NB_REGS] are for, do not we already have a set
>>>> of emulated x86 registers when we allocate the CPUX86State ?
>>>
>>> I assume in i386, too, it will be a TCGv array and will be initialized
>>> to point to individual memory offsets inside CPU*State.
>>> So they're for convenience and readability.
>>>
>>> HTE,
>>> Andreas
>
> --
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
>



reply via email to

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