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