All of lore.kernel.org
 help / color / mirror / Atom feed
From: James Hogan <james.hogan@mips.com>
To: <linux-mips@linux-mips.org>
Cc: Marcin Nowakowski <marcin.nowakowski@mips.com>,
	James Hogan <jhogan@kernel.org>,
	Ralf Baechle <ralf@linux-mips.org>
Subject: [PATCH 0/7] MIPS: Add asm macros for unsupported instructions
Date: Wed, 22 Nov 2017 11:30:26 +0000	[thread overview]
Message-ID: <cover.41391a6cc5670b90bb8e77eadd07c712793eab03.1511349998.git-series.jhogan@kernel.org> (raw)

From: James Hogan <jhogan@kernel.org>

This patch series implements Ralf's idea[1] for better supporting older
assembler versions which don't implement newer instructions, in inline
assembly. It has a number of benefits which are described in the
individual patches, but its also particularly beneficial for Marcin's
CRC patchset.

So far I've converted the VZ, XPA, and MSA abstractions to use it.
Old style abstractions remain for MT and DSP instructions, which are
left for future patches.

There are also other abstraction macros in <asm/asmmacro.h> for use in
.S files (particularly for MSA), which similarly don't handle $n
register naming and use the $at move trick. Cleaning these up to use
something like parse_r is also left for future patches.

[1] https://www.linux-mips.org/archives/linux-mips/2017-10/msg00043.html

Patch overview:

Patch 1 adds some helpers to streamline the construction of assembler
macros for instructions unimplemented in the current assembler. It is
needed for the other patches.

Patches 2-3 update the VZ helpers to make use of the new assembler macro
helpers, and make the VZ helpers consistent with the normal c0 register
helpers now that it is possible to do so.

Patches 4-6 update the XPA helpers to make use of the new assembler
macro helpers, and to use the instructions provided by the assembler if
they are available. These are also changed to be consistent with the
normal register helpers now that it is possible to do so.

Patch 7 updates the MSA control register helpers to make use of the new
assembler macro helpers.

Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Marcin Nowakowski <marcin.nowakowski@mips.com>
Cc: linux-mips@linux-mips.org

James Hogan (7):
  MIPS: Add helpers for assembler macro instructions
  MIPS: VZ: Update helpers to use new asm macros
  MIPS: VZ: Pass GC0 register names in $n format
  MIPS: XPA: Use XPA instructions in assembly
  MIPS: XPA: Allow use of $0 (zero) to MTHC0
  MIPS: XPA: Standardise readx/writex accessors
  MIPS: MSA: Update helpers to use new asm macros

 arch/mips/Makefile               |   6 +-
 arch/mips/include/asm/mipsregs.h | 663 +++++++++++++++-----------------
 arch/mips/include/asm/msa.h      |  63 +---
 3 files changed, 356 insertions(+), 376 deletions(-)

base-commit: e0c5f36b2a638fc3298200c385af7f196d3b5cd4
-- 
git-series 0.9.1

WARNING: multiple messages have this Message-ID (diff)
From: James Hogan <james.hogan@mips.com>
To: linux-mips@linux-mips.org
Cc: Marcin Nowakowski <marcin.nowakowski@mips.com>,
	James Hogan <jhogan@kernel.org>,
	Ralf Baechle <ralf@linux-mips.org>
Subject: [PATCH 0/7] MIPS: Add asm macros for unsupported instructions
Date: Wed, 22 Nov 2017 11:30:26 +0000	[thread overview]
Message-ID: <cover.41391a6cc5670b90bb8e77eadd07c712793eab03.1511349998.git-series.jhogan@kernel.org> (raw)
Message-ID: <20171122113026.kGYeoTC4i1adYaDTe2_vPLDqc3ub83QJyHYCeicN7tQ@z> (raw)

From: James Hogan <jhogan@kernel.org>

This patch series implements Ralf's idea[1] for better supporting older
assembler versions which don't implement newer instructions, in inline
assembly. It has a number of benefits which are described in the
individual patches, but its also particularly beneficial for Marcin's
CRC patchset.

So far I've converted the VZ, XPA, and MSA abstractions to use it.
Old style abstractions remain for MT and DSP instructions, which are
left for future patches.

There are also other abstraction macros in <asm/asmmacro.h> for use in
.S files (particularly for MSA), which similarly don't handle $n
register naming and use the $at move trick. Cleaning these up to use
something like parse_r is also left for future patches.

[1] https://www.linux-mips.org/archives/linux-mips/2017-10/msg00043.html

Patch overview:

Patch 1 adds some helpers to streamline the construction of assembler
macros for instructions unimplemented in the current assembler. It is
needed for the other patches.

Patches 2-3 update the VZ helpers to make use of the new assembler macro
helpers, and make the VZ helpers consistent with the normal c0 register
helpers now that it is possible to do so.

Patches 4-6 update the XPA helpers to make use of the new assembler
macro helpers, and to use the instructions provided by the assembler if
they are available. These are also changed to be consistent with the
normal register helpers now that it is possible to do so.

Patch 7 updates the MSA control register helpers to make use of the new
assembler macro helpers.

Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Marcin Nowakowski <marcin.nowakowski@mips.com>
Cc: linux-mips@linux-mips.org

James Hogan (7):
  MIPS: Add helpers for assembler macro instructions
  MIPS: VZ: Update helpers to use new asm macros
  MIPS: VZ: Pass GC0 register names in $n format
  MIPS: XPA: Use XPA instructions in assembly
  MIPS: XPA: Allow use of $0 (zero) to MTHC0
  MIPS: XPA: Standardise readx/writex accessors
  MIPS: MSA: Update helpers to use new asm macros

 arch/mips/Makefile               |   6 +-
 arch/mips/include/asm/mipsregs.h | 663 +++++++++++++++-----------------
 arch/mips/include/asm/msa.h      |  63 +---
 3 files changed, 356 insertions(+), 376 deletions(-)

base-commit: e0c5f36b2a638fc3298200c385af7f196d3b5cd4
-- 
git-series 0.9.1

             reply	other threads:[~2017-11-22 11:32 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-22 11:30 James Hogan [this message]
2017-11-22 11:30 ` [PATCH 0/7] MIPS: Add asm macros for unsupported instructions James Hogan
2017-11-22 11:30 ` [PATCH 1/7] MIPS: Add helpers for assembler macro instructions James Hogan
2017-11-22 11:30   ` James Hogan
2018-05-24 19:47   ` Hauke Mehrtens
2017-11-22 11:30 ` [PATCH 2/7] MIPS: VZ: Update helpers to use new asm macros James Hogan
2017-11-22 11:30   ` James Hogan
2017-11-22 11:30 ` [PATCH 3/7] MIPS: VZ: Pass GC0 register names in $n format James Hogan
2017-11-22 11:30   ` James Hogan
2017-11-22 11:30 ` [PATCH 4/7] MIPS: XPA: Use XPA instructions in assembly James Hogan
2017-11-22 11:30   ` James Hogan
2017-11-22 11:30 ` [PATCH 5/7] MIPS: XPA: Allow use of $0 (zero) to MTHC0 James Hogan
2017-11-22 11:30   ` James Hogan
2017-11-22 11:30 ` [PATCH 6/7] MIPS: XPA: Standardise readx/writex accessors James Hogan
2017-11-22 11:30   ` James Hogan
2017-11-22 11:30 ` [PATCH 7/7] MIPS: MSA: Update helpers to use new asm macros James Hogan
2017-11-22 11:30   ` James Hogan

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=cover.41391a6cc5670b90bb8e77eadd07c712793eab03.1511349998.git-series.jhogan@kernel.org \
    --to=james.hogan@mips.com \
    --cc=jhogan@kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=marcin.nowakowski@mips.com \
    --cc=ralf@linux-mips.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 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.