mbox series

[0/4] arm64: insn: cleanups

Message ID 20221114135928.3000571-1-mark.rutland@arm.com (mailing list archive)
Headers show
Series arm64: insn: cleanups | expand

Message

Mark Rutland Nov. 14, 2022, 1:59 p.m. UTC
This series makes some minor cleanups to the insn code. Largely this
changes a number of trivial functions to be __always_inline, making them
safe to use in noinstr code, and permitting the compiler to better
optimize sequences of aarch64_insn_is_*() checks.

I've split this out from a larger set of changes I was planning to send
this cycle (refactoring the bulk of the insn code) as that's not quite
complete and I'm still writing tests for the larger changes those come
with.


The changes in this series are all relatively trivial, and should result
in no functional change, so I'm hoping they're good-to-go as-is.

Thanks,
Mark.

Mark Rutland (4):
  arm64: insn: remove aarch64_insn_gen_prefetch()
  arm64: insn: always inline predicates
  arm64: insn: simplify insn group identification
  arm64: insn: always inline hint generation

 arch/arm64/include/asm/insn.h          | 156 ++++++++++++++++-------
 arch/arm64/kernel/probes/decode-insn.c |   2 +-
 arch/arm64/lib/insn.c                  | 165 -------------------------
 3 files changed, 110 insertions(+), 213 deletions(-)

Comments

Joey Gouly Nov. 15, 2022, 11:09 a.m. UTC | #1
Hi,

On Mon, Nov 14, 2022 at 01:59:24PM +0000, Mark Rutland wrote:
> This series makes some minor cleanups to the insn code. Largely this
> changes a number of trivial functions to be __always_inline, making them
> safe to use in noinstr code, and permitting the compiler to better
> optimize sequences of aarch64_insn_is_*() checks.
> 
> I've split this out from a larger set of changes I was planning to send
> this cycle (refactoring the bulk of the insn code) as that's not quite
> complete and I'm still writing tests for the larger changes those come
> with.
> 
> 
> The changes in this series are all relatively trivial, and should result
> in no functional change, so I'm hoping they're good-to-go as-is.
> 
> Thanks,
> Mark.
> 
> Mark Rutland (4):
>   arm64: insn: remove aarch64_insn_gen_prefetch()
>   arm64: insn: always inline predicates
>   arm64: insn: simplify insn group identification
>   arm64: insn: always inline hint generation
> 
>  arch/arm64/include/asm/insn.h          | 156 ++++++++++++++++-------
>  arch/arm64/kernel/probes/decode-insn.c |   2 +-
>  arch/arm64/lib/insn.c                  | 165 -------------------------
>  3 files changed, 110 insertions(+), 213 deletions(-)
> 

For the series:

Reviewed-by: Joey Gouly <joey.gouly@arm.com>

Thanks,
Joey
Will Deacon Nov. 15, 2022, 6:32 p.m. UTC | #2
On Mon, 14 Nov 2022 13:59:24 +0000, Mark Rutland wrote:
> This series makes some minor cleanups to the insn code. Largely this
> changes a number of trivial functions to be __always_inline, making them
> safe to use in noinstr code, and permitting the compiler to better
> optimize sequences of aarch64_insn_is_*() checks.
> 
> I've split this out from a larger set of changes I was planning to send
> this cycle (refactoring the bulk of the insn code) as that's not quite
> complete and I'm still writing tests for the larger changes those come
> with.
> 
> [...]

Applied to arm64 (for-next/insn), thanks!

[1/4] arm64: insn: remove aarch64_insn_gen_prefetch()
      https://git.kernel.org/arm64/c/1b6bf2da7b1d
[2/4] arm64: insn: always inline predicates
      https://git.kernel.org/arm64/c/9b948e79d536
[3/4] arm64: insn: simplify insn group identification
      https://git.kernel.org/arm64/c/4488f90c8609
[4/4] arm64: insn: always inline hint generation
      https://git.kernel.org/arm64/c/f750255fdad3

Cheers,