Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

s390: add alignment hints to vector load and store

The z14 introduced alignment hints to increase the performance of
vector loads and stores. The kernel uses an implicit alignmenet
of 8 bytes for the vector registers, set the alignment hint to 3.

Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

+4 -4
+4 -4
arch/s390/include/asm/vx-insn.h
··· 363 363 .endm 364 364 365 365 /* VECTOR LOAD MULTIPLE */ 366 - .macro VLM vfrom, vto, disp, base 366 + .macro VLM vfrom, vto, disp, base, hint=3 367 367 VX_NUM v1, \vfrom 368 368 VX_NUM v3, \vto 369 369 GR_NUM b2, \base /* Base register */ 370 370 .word 0xE700 | ((v1&15) << 4) | (v3&15) 371 371 .word (b2 << 12) | (\disp) 372 - MRXBOPC 0, 0x36, v1, v3 372 + MRXBOPC \hint, 0x36, v1, v3 373 373 .endm 374 374 375 375 /* VECTOR STORE MULTIPLE */ 376 - .macro VSTM vfrom, vto, disp, base 376 + .macro VSTM vfrom, vto, disp, base, hint=3 377 377 VX_NUM v1, \vfrom 378 378 VX_NUM v3, \vto 379 379 GR_NUM b2, \base /* Base register */ 380 380 .word 0xE700 | ((v1&15) << 4) | (v3&15) 381 381 .word (b2 << 12) | (\disp) 382 - MRXBOPC 0, 0x3E, v1, v3 382 + MRXBOPC \hint, 0x3E, v1, v3 383 383 .endm 384 384 385 385 /* VECTOR PERMUTE */