mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
s390/nmi: use vector instruction macros instead of byte patterns
Use vector instruction macros instead of byte patterns to increase readability. The generated code is nearly identical: - 1e8: e7 0f 10 00 00 36 vlm %v0,%v15,0(%r1) - 1ee: e7 0f 11 00 0c 36 vlm %v16,%v31,256(%r1) + 1e8: e7 0f 10 00 30 36 vlm %v0,%v15,0(%r1),3 + 1ee: e7 0f 11 00 3c 36 vlm %v16,%v31,256(%r1),3 By using the VLM macro the alignment hint is automatically specified too. Even though from a performance perspective it doesn't matter at all for the machine check code, this shows yet another benefit when using the macros. Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
This commit is contained in:
parent
706f2ada82
commit
5720aab289
1 changed files with 4 additions and 5 deletions
|
@ -19,7 +19,7 @@
|
||||||
#include <linux/time.h>
|
#include <linux/time.h>
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/sched/signal.h>
|
#include <linux/sched/signal.h>
|
||||||
|
#include <linux/kvm_host.h>
|
||||||
#include <linux/export.h>
|
#include <linux/export.h>
|
||||||
#include <asm/lowcore.h>
|
#include <asm/lowcore.h>
|
||||||
#include <asm/smp.h>
|
#include <asm/smp.h>
|
||||||
|
@ -31,8 +31,7 @@
|
||||||
#include <asm/ctl_reg.h>
|
#include <asm/ctl_reg.h>
|
||||||
#include <asm/asm-offsets.h>
|
#include <asm/asm-offsets.h>
|
||||||
#include <asm/pai.h>
|
#include <asm/pai.h>
|
||||||
|
#include <asm/vx-insn.h>
|
||||||
#include <linux/kvm_host.h>
|
|
||||||
|
|
||||||
struct mcck_struct {
|
struct mcck_struct {
|
||||||
unsigned int kill_task : 1;
|
unsigned int kill_task : 1;
|
||||||
|
@ -293,8 +292,8 @@ static int notrace s390_validate_registers(union mci mci, int umode)
|
||||||
__ctl_load(cr0.val, 0, 0);
|
__ctl_load(cr0.val, 0, 0);
|
||||||
asm volatile(
|
asm volatile(
|
||||||
" la 1,%0\n"
|
" la 1,%0\n"
|
||||||
" .word 0xe70f,0x1000,0x0036\n" /* vlm 0,15,0(1) */
|
" VLM 0,15,0,1\n"
|
||||||
" .word 0xe70f,0x1100,0x0c36\n" /* vlm 16,31,256(1) */
|
" VLM 16,31,256,1\n"
|
||||||
:
|
:
|
||||||
: "Q" (*(struct vx_array *)mcesa->vector_save_area)
|
: "Q" (*(struct vx_array *)mcesa->vector_save_area)
|
||||||
: "1");
|
: "1");
|
||||||
|
|
Loading…
Reference in a new issue