All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aurelien Jarno <aurelien@aurel32.net>
To: Leon Alrae <leon.alrae@imgtec.com>
Cc: yongbok.kim@imgtec.com, cristian.cuna@imgtec.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH] target-mips: fix decoding of microMIPS POOL32Axf instructions
Date: Mon, 5 Aug 2013 12:50:00 +0200	[thread overview]
Message-ID: <20130805105000.GC4193@ohm.aurel32.net> (raw)
In-Reply-To: <51FF5740.4090504@imgtec.com>

On Mon, Aug 05, 2013 at 08:41:52AM +0100, Leon Alrae wrote:
> On 03/08/13 23:01, Aurelien Jarno wrote:
> > On Thu, Aug 01, 2013 at 11:02:27AM +0100, Leon Alrae wrote:
> >> These are not DSP instructions, thus there is no "ac" field.
> >>
> >> For more details please refer to instruction encoding of
> >> MULT, MULTU, MADD, MADDU, MSUB, MSUBU, MFHI, MFLO, MTHI, MTLO in
> >> MIPS Architecture for Programmers Volume II-B: The microMIPS32 Instruction Set
> > 
> > These instructions have both a non DSP version without the "ac" field,
> > and a DSP version with the "ac" field. The encoding of the "ac" field is
> > done in bits 14 and 15, so the current QEMU code is correct.
> > 
> > Please refer to the  MIPS32® Architecture Manual Volume IV-e: The
> > MIPS® DSP Application-Specific Extension to the microMIPS32®
> > Architecture (document MD00764).
> >  
> 
> Please note that the patch modifies non-DSP version of listed
> instructions, where "ac" field doesn't exist. In this case reading bits

This is correct, except for MFHI, MFLO, MTHI, MTLO which share the same
opcode for the DSP and non-DSP version. Theses instructions have bits 14
and 15 set to 0 for the non-DSP version, so they are working as expected
and thus your patch should not modify them.

> 14 and 15 and passing it as acc argument to gen_muldiv() or gen_HILO()
> is not correct. If those bits are not 0 (and for most of the listed
> instructions this is true) then check_dsp() is called which will cause
> an exception if DSP is not supported / disabled.
> 

This is correct. The current code assumes that all instructions using
gen_muldiv() have the same opcode for non-DSP and DSP version (actually
it's weird that they have a different encoding, it's just wasting some
opcode space).

Therefore what should be done:
- The part concerning MFHI, MFLO, MTHI, MTLO should be dropped from your
  patch as it already works correctly.
- The part of your patch concerning instructions calling gen_muldiv() is
  correct and should be kept to handle the non-DSP version of these
  instructions.
- An entry with for the DSP version of these instructions should be
  created, calling gen_muldiv() passing the ac field from bits 14 and
  15. This is basically the same code than now, just with extension 0x32
  instead of 0x2c.

-- 
Aurelien Jarno                          GPG: 1024D/F1BCDB73
aurelien@aurel32.net                 http://www.aurel32.net

  reply	other threads:[~2013-08-05 10:50 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-01 10:02 [Qemu-devel] [PATCH] target-mips: fix decoding of microMIPS POOL32Axf instructions Leon Alrae
2013-08-03 22:01 ` Aurelien Jarno
2013-08-05  7:41   ` Leon Alrae
2013-08-05 10:50     ` Aurelien Jarno [this message]
2013-08-05 12:51       ` Leon Alrae
2013-09-13 16:42         ` Maciej W. Rozycki

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=20130805105000.GC4193@ohm.aurel32.net \
    --to=aurelien@aurel32.net \
    --cc=cristian.cuna@imgtec.com \
    --cc=leon.alrae@imgtec.com \
    --cc=qemu-devel@nongnu.org \
    --cc=yongbok.kim@imgtec.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.