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

s390/lib: Use exrl instead of ex in string functions

exrl is present in all machines currently supported in the linux
kernel, therefore prefer it over ex. This saves one instruction
and doesn't need an additional register to hold the address of the
target instruction.

Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>

authored by

Sven Schnelle and committed by
Alexander Gordeev
807e39ed f8107a8b

+5 -10
+5 -10
arch/s390/lib/mem.S
··· 34 34 la %r3,256(%r3) 35 35 brctg %r0,.Lmemmove_forward_loop 36 36 .Lmemmove_forward_remainder: 37 - larl %r5,.Lmemmove_mvc 38 - ex %r4,0(%r5) 37 + exrl %r4,.Lmemmove_mvc 39 38 .Lmemmove_exit: 40 39 BR_EX %r14 41 40 .Lmemmove_reverse: ··· 82 83 la %r1,256(%r1) 83 84 brctg %r3,.Lmemset_clear_loop 84 85 .Lmemset_clear_remainder: 85 - larl %r3,.Lmemset_xc 86 - ex %r4,0(%r3) 86 + exrl %r4,.Lmemset_xc 87 87 .Lmemset_exit: 88 88 BR_EX %r14 89 89 .Lmemset_fill: ··· 100 102 brctg %r5,.Lmemset_fill_loop 101 103 .Lmemset_fill_remainder: 102 104 stc %r3,0(%r1) 103 - larl %r5,.Lmemset_mvc 104 - ex %r4,0(%r5) 105 + exrl %r4,.Lmemset_mvc 105 106 BR_EX %r14 106 107 .Lmemset_fill_exit: 107 108 stc %r3,0(%r1) ··· 129 132 lgr %r1,%r2 130 133 jnz .Lmemcpy_loop 131 134 .Lmemcpy_remainder: 132 - larl %r5,.Lmemcpy_mvc 133 - ex %r4,0(%r5) 135 + exrl %r4,.Lmemcpy_mvc 134 136 .Lmemcpy_exit: 135 137 BR_EX %r14 136 138 .Lmemcpy_loop: ··· 171 175 brctg %r5,.L__memset_loop\bits 172 176 .L__memset_remainder\bits: 173 177 \insn %r3,0(%r1) 174 - larl %r5,.L__memset_mvc\bits 175 - ex %r4,0(%r5) 178 + exrl %r4,.L__memset_mvc\bits 176 179 BR_EX %r14 177 180 .L__memset_store\bits: 178 181 \insn %r3,0(%r2)