1*b2441318SGreg Kroah-Hartman/* SPDX-License-Identifier: GPL-2.0 */ 2775e0c69SDavid S. Miller#include <linux/linkage.h> 3775e0c69SDavid S. Miller#include <asm/visasm.h> 4775e0c69SDavid S. Miller 57cff82f5SDavid S. Miller#include "opcodes.h" 67cff82f5SDavid S. Miller 7775e0c69SDavid S. MillerENTRY(sha512_sparc64_transform) 8775e0c69SDavid S. Miller /* %o0 = digest, %o1 = data, %o2 = rounds */ 9775e0c69SDavid S. Miller VISEntry 10775e0c69SDavid S. Miller ldd [%o0 + 0x00], %f0 11775e0c69SDavid S. Miller ldd [%o0 + 0x08], %f2 12775e0c69SDavid S. Miller ldd [%o0 + 0x10], %f4 13775e0c69SDavid S. Miller ldd [%o0 + 0x18], %f6 14775e0c69SDavid S. Miller ldd [%o0 + 0x20], %f8 15775e0c69SDavid S. Miller ldd [%o0 + 0x28], %f10 16775e0c69SDavid S. Miller andcc %o1, 0x7, %g0 17775e0c69SDavid S. Miller ldd [%o0 + 0x30], %f12 18775e0c69SDavid S. Miller bne,pn %xcc, 10f 19775e0c69SDavid S. Miller ldd [%o0 + 0x38], %f14 20775e0c69SDavid S. Miller 21775e0c69SDavid S. Miller1: 22775e0c69SDavid S. Miller ldd [%o1 + 0x00], %f16 23775e0c69SDavid S. Miller ldd [%o1 + 0x08], %f18 24775e0c69SDavid S. Miller ldd [%o1 + 0x10], %f20 25775e0c69SDavid S. Miller ldd [%o1 + 0x18], %f22 26775e0c69SDavid S. Miller ldd [%o1 + 0x20], %f24 27775e0c69SDavid S. Miller ldd [%o1 + 0x28], %f26 28775e0c69SDavid S. Miller ldd [%o1 + 0x30], %f28 29775e0c69SDavid S. Miller ldd [%o1 + 0x38], %f30 30775e0c69SDavid S. Miller ldd [%o1 + 0x40], %f32 31775e0c69SDavid S. Miller ldd [%o1 + 0x48], %f34 32775e0c69SDavid S. Miller ldd [%o1 + 0x50], %f36 33775e0c69SDavid S. Miller ldd [%o1 + 0x58], %f38 34775e0c69SDavid S. Miller ldd [%o1 + 0x60], %f40 35775e0c69SDavid S. Miller ldd [%o1 + 0x68], %f42 36775e0c69SDavid S. Miller ldd [%o1 + 0x70], %f44 37775e0c69SDavid S. Miller ldd [%o1 + 0x78], %f46 38775e0c69SDavid S. Miller 397cff82f5SDavid S. Miller SHA512 40775e0c69SDavid S. Miller 41775e0c69SDavid S. Miller subcc %o2, 1, %o2 42775e0c69SDavid S. Miller bne,pt %xcc, 1b 43775e0c69SDavid S. Miller add %o1, 0x80, %o1 44775e0c69SDavid S. Miller 45775e0c69SDavid S. Miller5: 46775e0c69SDavid S. Miller std %f0, [%o0 + 0x00] 47775e0c69SDavid S. Miller std %f2, [%o0 + 0x08] 48775e0c69SDavid S. Miller std %f4, [%o0 + 0x10] 49775e0c69SDavid S. Miller std %f6, [%o0 + 0x18] 50775e0c69SDavid S. Miller std %f8, [%o0 + 0x20] 51775e0c69SDavid S. Miller std %f10, [%o0 + 0x28] 52775e0c69SDavid S. Miller std %f12, [%o0 + 0x30] 53775e0c69SDavid S. Miller std %f14, [%o0 + 0x38] 54775e0c69SDavid S. Miller retl 55775e0c69SDavid S. Miller VISExit 56775e0c69SDavid S. Miller10: 57775e0c69SDavid S. Miller alignaddr %o1, %g0, %o1 58775e0c69SDavid S. Miller 59775e0c69SDavid S. Miller ldd [%o1 + 0x00], %f18 60775e0c69SDavid S. Miller1: 61775e0c69SDavid S. Miller ldd [%o1 + 0x08], %f20 62775e0c69SDavid S. Miller ldd [%o1 + 0x10], %f22 63775e0c69SDavid S. Miller ldd [%o1 + 0x18], %f24 64775e0c69SDavid S. Miller ldd [%o1 + 0x20], %f26 65775e0c69SDavid S. Miller ldd [%o1 + 0x28], %f28 66775e0c69SDavid S. Miller ldd [%o1 + 0x30], %f30 67775e0c69SDavid S. Miller ldd [%o1 + 0x38], %f32 68775e0c69SDavid S. Miller ldd [%o1 + 0x40], %f34 69775e0c69SDavid S. Miller ldd [%o1 + 0x48], %f36 70775e0c69SDavid S. Miller ldd [%o1 + 0x50], %f38 71775e0c69SDavid S. Miller ldd [%o1 + 0x58], %f40 72775e0c69SDavid S. Miller ldd [%o1 + 0x60], %f42 73775e0c69SDavid S. Miller ldd [%o1 + 0x68], %f44 74775e0c69SDavid S. Miller ldd [%o1 + 0x70], %f46 75775e0c69SDavid S. Miller ldd [%o1 + 0x78], %f48 76775e0c69SDavid S. Miller ldd [%o1 + 0x80], %f50 77775e0c69SDavid S. Miller 78775e0c69SDavid S. Miller faligndata %f18, %f20, %f16 79775e0c69SDavid S. Miller faligndata %f20, %f22, %f18 80775e0c69SDavid S. Miller faligndata %f22, %f24, %f20 81775e0c69SDavid S. Miller faligndata %f24, %f26, %f22 82775e0c69SDavid S. Miller faligndata %f26, %f28, %f24 83775e0c69SDavid S. Miller faligndata %f28, %f30, %f26 84775e0c69SDavid S. Miller faligndata %f30, %f32, %f28 85775e0c69SDavid S. Miller faligndata %f32, %f34, %f30 86775e0c69SDavid S. Miller faligndata %f34, %f36, %f32 87775e0c69SDavid S. Miller faligndata %f36, %f38, %f34 88775e0c69SDavid S. Miller faligndata %f38, %f40, %f36 89775e0c69SDavid S. Miller faligndata %f40, %f42, %f38 90775e0c69SDavid S. Miller faligndata %f42, %f44, %f40 91775e0c69SDavid S. Miller faligndata %f44, %f46, %f42 92775e0c69SDavid S. Miller faligndata %f46, %f48, %f44 93775e0c69SDavid S. Miller faligndata %f48, %f50, %f46 94775e0c69SDavid S. Miller 957cff82f5SDavid S. Miller SHA512 96775e0c69SDavid S. Miller 97775e0c69SDavid S. Miller subcc %o2, 1, %o2 9845dfe237SDavid S. Miller fsrc2 %f50, %f18 99775e0c69SDavid S. Miller bne,pt %xcc, 1b 100775e0c69SDavid S. Miller add %o1, 0x80, %o1 101775e0c69SDavid S. Miller 102775e0c69SDavid S. Miller ba,a,pt %xcc, 5b 103775e0c69SDavid S. MillerENDPROC(sha512_sparc64_transform) 104