qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Andreas Färber" <andreas.faerber@web.de>
To: Khansa Butt <khansa@kics.edu.pk>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v3 5/6] target-mips: Adding support for Cavium specific instructions
Date: Mon, 31 Oct 2011 21:24:05 +0100	[thread overview]
Message-ID: <4EAF03E5.6020508@web.de> (raw)
In-Reply-To: <CAAoJSP6yc-myKAB2jcDWm6qht-a+w76-Z_qD0DEtUmSj2PMW5Q@mail.gmail.com>

Am 28.10.2011 06:42, schrieb Khansa Butt:
> 
> 
> On Sat, Oct 22, 2011 at 4:36 PM, Andreas Färber <andreas.faerber@web.de
> <mailto:andreas.faerber@web.de>> wrote:
> 
>     Am 22.10.2011 12:11, schrieb khansa@kics.edu.pk
>     <mailto:khansa@kics.edu.pk>:

HTML again :(

>     > From: Khansa Butt <khansa@kics.edu.pk <mailto:khansa@kics.edu.pk>>
> 
>     Commit message should mention here at least that new registers are
>     introduced and that load/save format is being changed.
> 
>     > Signed-off-by: Khansa Butt <khansa@kics.edu.pk
>     <mailto:khansa@kics.edu.pk>>
>     > Signed-off-by: Ehsan Ul Haq <ehsan.ulhaq@kics.edu.pk
>     <mailto:ehsan.ulhaq@kics.edu.pk>>
>     > Signed-off-by: Abdul Qadeer <qadeer@kics.edu.pk
>     <mailto:qadeer@kics.edu.pk>>
>     > Signed-off-by: Abdul Waheed <awaheed@kics.edu.pk
>     <mailto:awaheed@kics.edu.pk>>
>     > ---
> 
>     > diff --git a/target-mips/cpu.h b/target-mips/cpu.h
>     > index 79e2558..9180ee9 100644
>     > --- a/target-mips/cpu.h
>     > +++ b/target-mips/cpu.h
>     > @@ -173,6 +173,13 @@ struct TCState {
>     >      target_ulong CP0_TCSchedule;
>     >      target_ulong CP0_TCScheFBack;
>     >      int32_t CP0_Debug_tcstatus;
>     > +    /* Multiplier registers for Octeon */
>     > +    target_ulong MPL0;
>     > +    target_ulong MPL1;
>     > +    target_ulong MPL2;
>     > +    target_ulong P0;
>     > +    target_ulong P1;
>     > +    target_ulong P2;
>     >  };
>     >
>     >  typedef struct CPUMIPSState CPUMIPSState;
> 
>     > diff --git a/target-mips/machine.c b/target-mips/machine.c
>     > index be72b36..a274ce2 100644
>     > --- a/target-mips/machine.c
>     > +++ b/target-mips/machine.c
>     > @@ -25,6 +25,12 @@ static void save_tc(QEMUFile *f, TCState *tc)
>     >      qemu_put_betls(f, &tc->CP0_TCSchedule);
>     >      qemu_put_betls(f, &tc->CP0_TCScheFBack);
>     >      qemu_put_sbe32s(f, &tc->CP0_Debug_tcstatus);
>     > +    qemu_put_betls(f, &tc->MPL0);
>     > +    qemu_put_betls(f, &tc->MPL1);
> 
>     MPL2 is not being saved but loaded below.
> 
>     > +    qemu_put_betls(f, &tc->P0);
>     > +    qemu_put_betls(f, &tc->P1);
>     > +    qemu_put_betls(f, &tc->P2);
>     > +
>     >  }
>     >
>     >  static void save_fpu(QEMUFile *f, CPUMIPSFPUContext *fpu)
>     > @@ -173,6 +179,12 @@ static void load_tc(QEMUFile *f, TCState *tc)
>     >      qemu_get_betls(f, &tc->CP0_TCSchedule);
>     >      qemu_get_betls(f, &tc->CP0_TCScheFBack);
>     >      qemu_get_sbe32s(f, &tc->CP0_Debug_tcstatus);
>     > +    qemu_get_betls(f, &tc->MPL0);
>     > +    qemu_get_betls(f, &tc->MPL1);
>     > +    qemu_get_betls(f, &tc->MPL2);
>     > +    qemu_get_betls(f, &tc->P0);
>     > +    qemu_get_betls(f, &tc->P1);
>     > +    qemu_get_betls(f, &tc->P2);
>     >  }
>     >
>     >  static void load_fpu(QEMUFile *f, CPUMIPSFPUContext *fpu)
> 
>     You're saving new fields, so you'll need to bump the version somewhere.
>     For loading, since you're adding at the end, you might be able to make
>     your additions conditional on the to-be-bumped version.
> 
> 
> I 'm not able to understand " bump the version somewhere"  kindly
> explain this.

"Somewhere" indicates I don't know the exact line for mips. Compare the
recent patch to arm_gic.
The general idea is that QEMU needs to be able to load files saved with
an older version, the file format is therefore versioned. If you
unconditionally try to load your new registers, you break loading older
files that don't include them.

>     I'm wondering whether those register and serialization additions could
>     and should be limited to TARGET_MIPS64.
> 
> you want me to limit these registers to TARGET_OCTEON

No, there shouldn't be a TARGET_OCTEON, there's no Octeon-specific
executable.

My point is, IIUC, qemu-system-mips will never have Octeon registers
because they're in qemu-system-mips64 only. So without #ifdef it would
save and load unused registers.

Andreas

  reply	other threads:[~2011-10-31 21:25 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-22 10:11 [Qemu-devel] [PATCH v3 0/6] MIPS64 user mode emulation in QEMU with Cavium specific instruction support khansa
2011-10-22 10:11 ` [Qemu-devel] [PATCH v3 1/6] linux-user:Support for MIPS64 user mode emulation in QEMU khansa
2011-10-22 10:11 ` [Qemu-devel] [PATCH v3 2/6] target-mips:enabling of 64 bit user mode and floating point operations khansa
2011-10-22 10:11 ` [Qemu-devel] [PATCH v3 3/6] linux-user:Signal handling for MIPS64 khansa
2011-10-22 10:11 ` [Qemu-devel] [PATCH v3 4/6] target-mips:Octeon cpu definition khansa
2011-10-22 10:11 ` [Qemu-devel] [PATCH v3 5/6] target-mips: Adding support for Cavium specific instructions khansa
2011-10-22 11:36   ` Andreas Färber
2011-10-28  4:42     ` Khansa Butt
2011-10-31 20:24       ` Andreas Färber [this message]
2011-11-22  8:31         ` Khansa Butt
2011-11-30 11:54           ` Andreas Färber
2011-12-01  5:35             ` Khansa Butt
2011-10-22 10:11 ` [Qemu-devel] [PATCH v3 6/6] Addition of Cavium instructions in disassembler khansa
2011-10-22 11:21 ` [Qemu-devel] [PATCH v3 0/6] MIPS64 user mode emulation in QEMU with Cavium specific instruction support Andreas Färber

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EAF03E5.6020508@web.de \
    --to=andreas.faerber@web.de \
    --cc=khansa@kics.edu.pk \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).