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

crypto: arm/chacha-scalar - switch to common rev_l macro

Drop the local definition of a byte swapping macro and use the common
one instead.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Nicolas Pitre <nico@fluxnic.net>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Ard Biesheuvel and committed by
Herbert Xu
e0ba808d d5adb9d1

+13 -30
+13 -30
arch/arm/crypto/chacha-scalar-core.S
··· 41 41 X14 .req r12 42 42 X15 .req r14 43 43 44 - .macro __rev out, in, t0, t1, t2 45 - .if __LINUX_ARM_ARCH__ >= 6 46 - rev \out, \in 47 - .else 48 - lsl \t0, \in, #24 49 - and \t1, \in, #0xff00 50 - and \t2, \in, #0xff0000 51 - orr \out, \t0, \in, lsr #24 52 - orr \out, \out, \t1, lsl #8 53 - orr \out, \out, \t2, lsr #8 54 - .endif 55 - .endm 56 - 57 - .macro _le32_bswap x, t0, t1, t2 44 + .macro _le32_bswap_4x a, b, c, d, tmp 58 45 #ifdef __ARMEB__ 59 - __rev \x, \x, \t0, \t1, \t2 46 + rev_l \a, \tmp 47 + rev_l \b, \tmp 48 + rev_l \c, \tmp 49 + rev_l \d, \tmp 60 50 #endif 61 - .endm 62 - 63 - .macro _le32_bswap_4x a, b, c, d, t0, t1, t2 64 - _le32_bswap \a, \t0, \t1, \t2 65 - _le32_bswap \b, \t0, \t1, \t2 66 - _le32_bswap \c, \t0, \t1, \t2 67 - _le32_bswap \d, \t0, \t1, \t2 68 51 .endm 69 52 70 53 .macro __ldrd a, b, src, offset ··· 183 200 add X1, X1, r9 184 201 add X2, X2, r10 185 202 add X3, X3, r11 186 - _le32_bswap_4x X0, X1, X2, X3, r8, r9, r10 203 + _le32_bswap_4x X0, X1, X2, X3, r8 187 204 ldmia r12!, {r8-r11} 188 205 eor X0, X0, r8 189 206 eor X1, X1, r9 ··· 199 216 ldmia r12!, {X0-X3} 200 217 add X6, r10, X6, ror #brot 201 218 add X7, r11, X7, ror #brot 202 - _le32_bswap_4x X4, X5, X6, X7, r8, r9, r10 219 + _le32_bswap_4x X4, X5, X6, X7, r8 203 220 eor X4, X4, X0 204 221 eor X5, X5, X1 205 222 eor X6, X6, X2 ··· 214 231 add r1, r1, r9 // x9 215 232 add r6, r6, r10 // x10 216 233 add r7, r7, r11 // x11 217 - _le32_bswap_4x r0, r1, r6, r7, r8, r9, r10 234 + _le32_bswap_4x r0, r1, r6, r7, r8 218 235 ldmia r12!, {r8-r11} 219 236 eor r0, r0, r8 // x8 220 237 eor r1, r1, r9 // x9 ··· 228 245 add r3, r9, r3, ror #drot // x13 229 246 add r4, r10, r4, ror #drot // x14 230 247 add r5, r11, r5, ror #drot // x15 231 - _le32_bswap_4x r2, r3, r4, r5, r9, r10, r11 248 + _le32_bswap_4x r2, r3, r4, r5, r9 232 249 ldr r9, [sp, #72] // load LEN 233 250 eor r2, r2, r0 // x12 234 251 eor r3, r3, r1 // x13 ··· 284 301 add X1, X1, r9 285 302 add X2, X2, r10 286 303 add X3, X3, r11 287 - _le32_bswap_4x X0, X1, X2, X3, r8, r9, r10 304 + _le32_bswap_4x X0, X1, X2, X3, r8 288 305 stmia r14!, {X0-X3} 289 306 290 307 // Save keystream for x4-x7 ··· 294 311 add X5, r9, X5, ror #brot 295 312 add X6, r10, X6, ror #brot 296 313 add X7, r11, X7, ror #brot 297 - _le32_bswap_4x X4, X5, X6, X7, r8, r9, r10 314 + _le32_bswap_4x X4, X5, X6, X7, r8 298 315 add r8, sp, #64 299 316 stmia r14!, {X4-X7} 300 317 ··· 306 323 add r1, r1, r9 // x9 307 324 add r6, r6, r10 // x10 308 325 add r7, r7, r11 // x11 309 - _le32_bswap_4x r0, r1, r6, r7, r8, r9, r10 326 + _le32_bswap_4x r0, r1, r6, r7, r8 310 327 stmia r14!, {r0,r1,r6,r7} 311 328 __ldrd r8, r9, sp, 144 312 329 __ldrd r10, r11, sp, 152 ··· 314 331 add r3, r9, r3, ror #drot // x13 315 332 add r4, r10, r4, ror #drot // x14 316 333 add r5, r11, r5, ror #drot // x15 317 - _le32_bswap_4x r2, r3, r4, r5, r9, r10, r11 334 + _le32_bswap_4x r2, r3, r4, r5, r9 318 335 stmia r14, {r2-r5} 319 336 320 337 // Stack: ks0-ks15 unused0-unused7 x0-x15 OUT IN LEN