1656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.ident "sparcv8.s, Version 1.4" 2656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.ident "SPARC v8 ISA artwork by Andy Polyakov <appro@fy.chalmers.se>" 3656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 4656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 5656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ==================================================================== 6656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Written by Andy Polyakov <appro@fy.chalmers.se> for the OpenSSL 7656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * project. 8656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 9656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Rights for redistribution and usage in source and binary forms are 10656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * granted according to the OpenSSL license. Warranty of any kind is 11656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * disclaimed. 12656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * ==================================================================== 13656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 14656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 15656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 16656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * This is my modest contributon to OpenSSL project (see 17656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * http://www.openssl.org/ for more information about it) and is 18656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * a drop-in SuperSPARC ISA replacement for crypto/bn/bn_asm.c 19656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * module. For updates see http://fy.chalmers.se/~appro/hpe/. 20656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 21656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * See bn_asm.sparc.v8plus.S for more details. 22656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 23656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 24656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 25656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Revision history. 26656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 27656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 1.1 - new loop unrolling model(*); 28656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 1.2 - made gas friendly; 29656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 1.3 - fixed problem with /usr/ccs/lib/cpp; 30656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 1.4 - some retunes; 31656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * 32656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * (*) see bn_asm.sparc.v8plus.S for details 33656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 34656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 35656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.section ".text",#alloc,#execinstr 36656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.file "bn_asm.sparc.v8.S" 37656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 38656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align 32 39656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 40656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global bn_mul_add_words 41656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 42656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG bn_mul_add_words(rp,ap,num,w) 43656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG *rp,*ap; 44656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * int num; 45656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG w; 46656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 47656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectbn_mul_add_words: 48656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cmp %o2,0 49656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bg,a .L_bn_mul_add_words_proceed 50656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%g2 51656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 52656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project clr %o0 53656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 54656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_mul_add_words_proceed: 55656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project andcc %o2,-4,%g0 56656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_mul_add_words_tail 57656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project clr %o5 58656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 59656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_mul_add_words_loop: 60656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o0],%o4 61656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+4],%g3 62656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %o3,%g2,%g2 63656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%g1 64656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %o4,%o5,%o4 65656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%g1 66656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %o4,%g2,%o4 67656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o4,[%o0] 68656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%o5 69656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 70656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o0+4],%o4 71656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+8],%g2 72656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %o3,%g3,%g3 73656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project dec 4,%o2 74656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%g1 75656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %o4,%o5,%o4 76656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%g1 77656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %o4,%g3,%o4 78656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o4,[%o0+4] 79656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%o5 80656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 81656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o0+8],%o4 82656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+12],%g3 83656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %o3,%g2,%g2 84656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project inc 16,%o1 85656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%g1 86656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %o4,%o5,%o4 87656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%g1 88656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %o4,%g2,%o4 89656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o4,[%o0+8] 90656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%o5 91656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 92656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o0+12],%o4 93656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %o3,%g3,%g3 94656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project inc 16,%o0 95656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%g1 96656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %o4,%o5,%o4 97656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%g1 98656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %o4,%g3,%o4 99656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o4,[%o0-4] 100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%o5 101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project andcc %o2,-4,%g0 102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bnz,a .L_bn_mul_add_words_loop 103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%g2 104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tst %o2 106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bnz,a .L_bn_mul_add_words_tail 107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%g2 108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_mul_add_words_return: 109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov %o5,%o0 111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project nop 112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_mul_add_words_tail: 114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o0],%o4 115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %o3,%g2,%g2 116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %o4,%o5,%o4 117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%g1 118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%g1 119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %o4,%g2,%o4 120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%o5 121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project deccc %o2 122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_mul_add_words_return 123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o4,[%o0] 124656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 125656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+4],%g2 126656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o0+4],%o4 127656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %o3,%g2,%g2 128656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%g1 129656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %o4,%o5,%o4 130656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%g1 131656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %o4,%g2,%o4 132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%o5 133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project deccc %o2 134656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_mul_add_words_return 135656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o4,[%o0+4] 136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 137656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+8],%g2 138656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o0+8],%o4 139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %o3,%g2,%g2 140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%g1 141656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %o4,%o5,%o4 142656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%g1 143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %o4,%g2,%o4 144656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o4,[%o0+8] 145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 146656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%o0 147656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type bn_mul_add_words,#function 149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size bn_mul_add_words,(.-bn_mul_add_words) 150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align 32 152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global bn_mul_words 154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG bn_mul_words(rp,ap,num,w) 156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG *rp,*ap; 157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * int num; 158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG w; 159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectbn_mul_words: 161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cmp %o2,0 162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bg,a .L_bn_mul_words_proceeed 163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%g2 164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project clr %o0 166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_mul_words_proceeed: 168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project andcc %o2,-4,%g0 169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_mul_words_tail 170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project clr %o5 171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_mul_words_loop: 173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+4],%g3 174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %o3,%g2,%g2 175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g2,%o5,%g2 176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%g1 177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%o5 178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %g2,[%o0] 179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+8],%g2 181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %o3,%g3,%g3 182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g3,%o5,%g3 183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%g1 184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project dec 4,%o2 185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%o5 186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %g3,[%o0+4] 187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 188656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+12],%g3 189656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %o3,%g2,%g2 190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g2,%o5,%g2 191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%g1 192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project inc 16,%o1 193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %g2,[%o0+8] 194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%o5 195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %o3,%g3,%g3 197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g3,%o5,%g3 198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%g1 199656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project inc 16,%o0 200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%o5 201656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %g3,[%o0-4] 202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project andcc %o2,-4,%g0 203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project nop 204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bnz,a .L_bn_mul_words_loop 205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%g2 206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tst %o2 208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bnz,a .L_bn_mul_words_tail 209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%g2 210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_mul_words_return: 211656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov %o5,%o0 213656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project nop 214656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_mul_words_tail: 216656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %o3,%g2,%g2 217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g2,%o5,%g2 218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%g1 219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%o5 220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project deccc %o2 221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_mul_words_return 222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %g2,[%o0] 223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project nop 224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+4],%g2 226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %o3,%g2,%g2 227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g2,%o5,%g2 228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%g1 229656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%o5 230656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project deccc %o2 231656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_mul_words_return 232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %g2,[%o0+4] 233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+8],%g2 235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %o3,%g2,%g2 236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g2,%o5,%g2 237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%g1 238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %g2,[%o0+8] 239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g1,0,%o0 241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type bn_mul_words,#function 243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size bn_mul_words,(.-bn_mul_words) 244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align 32 246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global bn_sqr_words 247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * void bn_sqr_words(r,a,n) 249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG *r,*a; 250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * int n; 251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectbn_sqr_words: 253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cmp %o2,0 254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bg,a .L_bn_sqr_words_proceeed 255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%g2 256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project clr %o0 258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 259656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_sqr_words_proceeed: 260656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project andcc %o2,-4,%g0 261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_sqr_words_tail 262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project clr %o5 263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_sqr_words_loop: 265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+4],%g3 266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %g2,%g2,%o4 267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o4,[%o0] 268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%o5 269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0+4] 270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+8],%g2 272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %g3,%g3,%o4 273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project dec 4,%o2 274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o4,[%o0+8] 275656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%o5 276656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0+12] 277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project nop 278656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+12],%g3 280656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %g2,%g2,%o4 281656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o4,[%o0+16] 282656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%o5 283656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project inc 16,%o1 284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0+20] 285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %g3,%g3,%o4 287656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project inc 32,%o0 288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o4,[%o0-8] 289656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%o5 290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0-4] 291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project andcc %o2,-4,%g2 292656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bnz,a .L_bn_sqr_words_loop 293656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%g2 294656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tst %o2 296656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project nop 297656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bnz,a .L_bn_sqr_words_tail 298656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%g2 299656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_sqr_words_return: 300656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 301656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project clr %o0 302656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 303656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_sqr_words_tail: 304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %g2,%g2,%o4 305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o4,[%o0] 306656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project deccc %o2 307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%o5 308656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_sqr_words_return 309656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0+4] 310656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 311656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+4],%g2 312656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %g2,%g2,%o4 313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o4,[%o0+8] 314656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project deccc %o2 315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%o5 316656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project nop 317656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_sqr_words_return 318656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0+12] 319656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 320656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+8],%g2 321656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul %g2,%g2,%o4 322656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o4,[%o0+16] 323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,%o5 324656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0+20] 325656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 326656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project clr %o0 327656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 328656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type bn_sqr_words,#function 329656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size bn_sqr_words,(.-bn_sqr_words) 330656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 331656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align 32 332656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 333656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global bn_div_words 334656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 335656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG bn_div_words(h,l,d) 336656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG h,l,d; 337656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectbn_div_words: 339656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project wr %o0,%y 340656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project udiv %o1,%o2,%o0 341656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 342656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project nop 343656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 344656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type bn_div_words,#function 345656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size bn_div_words,(.-bn_div_words) 346656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 347656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align 32 348656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 349656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global bn_add_words 350656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 351656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG bn_add_words(rp,ap,bp,n) 352656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG *rp,*ap,*bp; 353656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * int n; 354656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 355656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectbn_add_words: 356656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cmp %o3,0 357656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bg,a .L_bn_add_words_proceed 358656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%o4 359656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 360656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project clr %o0 361656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 362656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_add_words_proceed: 363656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project andcc %o3,-4,%g0 364656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_add_words_tail 365656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project clr %g1 366656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ba .L_bn_add_words_warn_loop 367656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g0,0,%g0 ! clear carry flag 368656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_add_words_loop: 370656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%o4 371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_add_words_warn_loop: 372656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o2],%o5 373656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+4],%g3 374656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o2+4],%g4 375656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project dec 4,%o3 376656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc %o5,%o4,%o5 377656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0] 378656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 379656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+8],%o4 380656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o2+8],%o5 381656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project inc 16,%o1 382656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc %g3,%g4,%g3 383656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %g3,[%o0+4] 384656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 385656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1-4],%g3 386656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o2+12],%g4 387656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project inc 16,%o2 388656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc %o5,%o4,%o5 389656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0+8] 390656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 391656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project inc 16,%o0 392656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc %g3,%g4,%g3 393656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %g3,[%o0-4] 394656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,0,%g1 395656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project andcc %o3,-4,%g0 396656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bnz,a .L_bn_add_words_loop 397656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g1,-1,%g0 398656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 399656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tst %o3 400656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bnz,a .L_bn_add_words_tail 401656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%o4 402656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_add_words_return: 403656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 404656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov %g1,%o0 405656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 406656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_add_words_tail: 407656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g1,-1,%g0 408656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o2],%o5 409656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc %o5,%o4,%o5 410656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,0,%g1 411656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project deccc %o3 412656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_add_words_return 413656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0] 414656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 415656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+4],%o4 416656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g1,-1,%g0 417656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o2+4],%o5 418656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc %o5,%o4,%o5 419656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,0,%g1 420656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project deccc %o3 421656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_add_words_return 422656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0+4] 423656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 424656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+8],%o4 425656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g1,-1,%g0 426656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o2+8],%o5 427656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc %o5,%o4,%o5 428656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0+8] 429656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 430656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,0,%o0 431656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 432656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type bn_add_words,#function 433656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size bn_add_words,(.-bn_add_words) 434656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 435656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align 32 436656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 437656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global bn_sub_words 438656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 439656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG bn_sub_words(rp,ap,bp,n) 440656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG *rp,*ap,*bp; 441656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * int n; 442656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 443656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectbn_sub_words: 444656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project cmp %o3,0 445656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bg,a .L_bn_sub_words_proceed 446656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%o4 447656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 448656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project clr %o0 449656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 450656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_sub_words_proceed: 451656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project andcc %o3,-4,%g0 452656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_sub_words_tail 453656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project clr %g1 454656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ba .L_bn_sub_words_warm_loop 455656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g0,0,%g0 ! clear carry flag 456656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 457656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_sub_words_loop: 458656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%o4 459656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_sub_words_warm_loop: 460656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o2],%o5 461656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+4],%g3 462656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o2+4],%g4 463656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project dec 4,%o3 464656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project subxcc %o4,%o5,%o5 465656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0] 466656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 467656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+8],%o4 468656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o2+8],%o5 469656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project inc 16,%o1 470656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project subxcc %g3,%g4,%g4 471656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %g4,[%o0+4] 472656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 473656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1-4],%g3 474656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o2+12],%g4 475656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project inc 16,%o2 476656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project subxcc %o4,%o5,%o5 477656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0+8] 478656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 479656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project inc 16,%o0 480656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project subxcc %g3,%g4,%g4 481656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %g4,[%o0-4] 482656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,0,%g1 483656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project andcc %o3,-4,%g0 484656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bnz,a .L_bn_sub_words_loop 485656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g1,-1,%g0 486656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 487656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project tst %o3 488656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project nop 489656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bnz,a .L_bn_sub_words_tail 490656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1],%o4 491656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_sub_words_return: 492656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 493656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project mov %g1,%o0 494656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 495656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.L_bn_sub_words_tail: 496656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g1,-1,%g0 497656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o2],%o5 498656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project subxcc %o4,%o5,%o5 499656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,0,%g1 500656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project deccc %o3 501656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_sub_words_return 502656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0] 503656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project nop 504656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 505656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+4],%o4 506656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g1,-1,%g0 507656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o2+4],%o5 508656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project subxcc %o4,%o5,%o5 509656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,0,%g1 510656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project deccc %o3 511656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project bz .L_bn_sub_words_return 512656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0+4] 513656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 514656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o1+8],%o4 515656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc %g1,-1,%g0 516656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld [%o2+8],%o5 517656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project subxcc %o4,%o5,%o5 518656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st %o5,[%o0+8] 519656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project retl 520656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,0,%o0 521656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 522656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type bn_sub_words,#function 523656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size bn_sub_words,(.-bn_sub_words) 524656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 525656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define FRAME_SIZE -96 526656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 527656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 528656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * Here is register usage map for *all* routines below. 529656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 530656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define t_1 %o0 531656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define t_2 %o1 532656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define c_1 %o2 533656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define c_2 %o3 534656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define c_3 %o4 535656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 536656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define ap(I) [%i1+4*I] 537656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define bp(I) [%i2+4*I] 538656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define rp(I) [%i0+4*I] 539656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 540656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define a_0 %l0 541656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define a_1 %l1 542656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define a_2 %l2 543656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define a_3 %l3 544656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define a_4 %l4 545656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define a_5 %l5 546656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define a_6 %l6 547656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define a_7 %l7 548656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 549656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define b_0 %i3 550656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define b_1 %i4 551656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define b_2 %i5 552656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define b_3 %o5 553656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define b_4 %g1 554656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define b_5 %g2 555656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define b_6 %g3 556656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project#define b_7 %g4 557656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 558656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align 32 559656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global bn_mul_comba8 560656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 561656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * void bn_mul_comba8(r,a,b) 562656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG *r,*a,*b; 563656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 564656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectbn_mul_comba8: 565656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project save %sp,FRAME_SIZE,%sp 566656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(0),a_0 567656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld bp(0),b_0 568656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,b_0,c_1 !=!mul_add_c(a[0],b[0],c1,c2,c3); 569656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld bp(1),b_1 570656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,c_2 571656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(0) !r[0]=c1; 572656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 573656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,b_1,t_1 !=!mul_add_c(a[0],b[1],c2,c3,c1); 574656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(1),a_1 575656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 576656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 577656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc %g0,t_2,c_3 != 578656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_1 579656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(2),a_2 580656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,b_0,t_1 !mul_add_c(a[1],b[0],c2,c3,c1); 581656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 != 582656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 583656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 584656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(1) !r[1]=c2; 585656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 != 586656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 587656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,b_0,t_1 !mul_add_c(a[2],b[0],c3,c1,c2); 588656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 589656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 590656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 != 591656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_2 592656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld bp(2),b_2 593656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,b_1,t_1 !mul_add_c(a[1],b[1],c3,c1,c2); 594656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 595656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 596656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 597656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld bp(3),b_3 598656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 599656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,b_2,t_1 !mul_add_c(a[0],b[2],c3,c1,c2); 600656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 601656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 602656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 != 603656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 604656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_3,rp(2) !r[2]=c3; 605656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 606656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,b_3,t_1 !mul_add_c(a[0],b[3],c1,c2,c3); 607656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 != 608656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 609656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 610656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_3 611656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,b_2,t_1 !=!mul_add_c(a[1],b[2],c1,c2,c3); 612656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 613656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 614656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 615656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 616656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(3),a_3 617656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,b_1,t_1 !mul_add_c(a[2],b[1],c1,c2,c3); 618656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 619656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 620656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 621656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 622656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(4),a_4 623656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,b_0,t_1 !mul_add_c(a[3],b[0],c1,c2,c3);!= 624656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 625656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 626656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 627656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 628656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(3) !r[3]=c1; 629656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 630656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_4,b_0,t_1 !mul_add_c(a[4],b[0],c2,c3,c1); 631656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 632656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 633656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 634656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_1 635656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,b_1,t_1 !mul_add_c(a[3],b[1],c2,c3,c1); 636656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 != 637656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 638656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 639656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 640656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,b_2,t_1 !=!mul_add_c(a[2],b[2],c2,c3,c1); 641656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 642656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 643656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 644656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 != 645656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld bp(4),b_4 646656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,b_3,t_1 !mul_add_c(a[1],b[3],c2,c3,c1); 647656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 648656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 649656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 650656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 651656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld bp(5),b_5 652656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,b_4,t_1 !=!mul_add_c(a[0],b[4],c2,c3,c1); 653656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 654656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 655656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 656656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 != 657656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(4) !r[4]=c2; 658656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 659656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,b_5,t_1 !mul_add_c(a[0],b[5],c3,c1,c2); 660656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 661656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 662656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 663656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_2 664656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,b_4,t_1 !mul_add_c(a[1],b[4],c3,c1,c2); 665656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 666656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 667656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 668656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 669656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,b_3,t_1 !=!mul_add_c(a[2],b[3],c3,c1,c2); 670656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 671656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 672656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 673656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 674656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,b_2,t_1 !mul_add_c(a[3],b[2],c3,c1,c2); 675656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 676656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 677656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 != 678656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 679656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(5),a_5 680656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_4,b_1,t_1 !mul_add_c(a[4],b[1],c3,c1,c2); 681656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 682656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 683656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 684656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(6),a_6 685656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 686656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_5,b_0,t_1 !mul_add_c(a[5],b[0],c3,c1,c2); 687656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 688656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 689656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 != 690656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 691656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_3,rp(5) !r[5]=c3; 692656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 693656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_6,b_0,t_1 !mul_add_c(a[6],b[0],c1,c2,c3); 694656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 != 695656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 696656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 697656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_3 698656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_5,b_1,t_1 !=!mul_add_c(a[5],b[1],c1,c2,c3); 699656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 700656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 701656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 702656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 703656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_4,b_2,t_1 !mul_add_c(a[4],b[2],c1,c2,c3); 704656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 705656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 706656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 707656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 708656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,b_3,t_1 !mul_add_c(a[3],b[3],c1,c2,c3); 709656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 710656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 711656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 712656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 713656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,b_4,t_1 !mul_add_c(a[2],b[4],c1,c2,c3); 714656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 != 715656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 716656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 717656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld bp(6),b_6 718656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 719656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,b_5,t_1 !mul_add_c(a[1],b[5],c1,c2,c3); 720656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 721656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 722656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 723656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 724656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld bp(7),b_7 725656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,b_6,t_1 !mul_add_c(a[0],b[6],c1,c2,c3); 726656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 != 727656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 728656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 729656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(6) !r[6]=c1; 730656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 731656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 732656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,b_7,t_1 !mul_add_c(a[0],b[7],c2,c3,c1); 733656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 734656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 735656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 != 736656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_1 737656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,b_6,t_1 !mul_add_c(a[1],b[6],c2,c3,c1); 738656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 739656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 740656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 741656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 742656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,b_5,t_1 !mul_add_c(a[2],b[5],c2,c3,c1); 743656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 != 744656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 745656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 746656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 747656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,b_4,t_1 !=!mul_add_c(a[3],b[4],c2,c3,c1); 748656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 749656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 750656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 751656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 != 752656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_4,b_3,t_1 !mul_add_c(a[4],b[3],c2,c3,c1); 753656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 754656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 755656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 != 756656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 757656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_5,b_2,t_1 !mul_add_c(a[5],b[2],c2,c3,c1); 758656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 759656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 760656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 761656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 762656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(7),a_7 763656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_6,b_1,t_1 !=!mul_add_c(a[6],b[1],c2,c3,c1); 764656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 765656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 766656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 767656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 != 768656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_7,b_0,t_1 !mul_add_c(a[7],b[0],c2,c3,c1); 769656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 770656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 771656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 != 772656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 773656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(7) !r[7]=c2; 774656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 775656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_7,b_1,t_1 !mul_add_c(a[7],b[1],c3,c1,c2); 776656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 777656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 778656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 779656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_2 780656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_6,b_2,t_1 !=!mul_add_c(a[6],b[2],c3,c1,c2); 781656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 782656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 783656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 784656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 785656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_5,b_3,t_1 !mul_add_c(a[5],b[3],c3,c1,c2); 786656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 787656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 788656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 != 789656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 790656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_4,b_4,t_1 !mul_add_c(a[4],b[4],c3,c1,c2); 791656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 792656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 793656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 794656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 795656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,b_5,t_1 !mul_add_c(a[3],b[5],c3,c1,c2); 796656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 797656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 798656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 799656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 800656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,b_6,t_1 !=!mul_add_c(a[2],b[6],c3,c1,c2); 801656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 802656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 803656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 804656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 805656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,b_7,t_1 !mul_add_c(a[1],b[7],c3,c1,c2); 806656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 807656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 808656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 ! 809656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 810656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_3,rp(8) !r[8]=c3; 811656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 812656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,b_7,t_1 !mul_add_c(a[2],b[7],c1,c2,c3); 813656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 != 814656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 815656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 816656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_3 817656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,b_6,t_1 !=!mul_add_c(a[3],b[6],c1,c2,c3); 818656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 819656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 820656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 821656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 822656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_4,b_5,t_1 !mul_add_c(a[4],b[5],c1,c2,c3); 823656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 824656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 825656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 826656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 827656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_5,b_4,t_1 !mul_add_c(a[5],b[4],c1,c2,c3); 828656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 829656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 830656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 831656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 832656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_6,b_3,t_1 !mul_add_c(a[6],b[3],c1,c2,c3); 833656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 != 834656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 835656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 836656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 837656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_7,b_2,t_1 !=!mul_add_c(a[7],b[2],c1,c2,c3); 838656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 839656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 840656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 841656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 842656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(9) !r[9]=c1; 843656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 844656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_7,b_3,t_1 !mul_add_c(a[7],b[3],c2,c3,c1); 845656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 846656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 847656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 848656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_1 849656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_6,b_4,t_1 !mul_add_c(a[6],b[4],c2,c3,c1); 850656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 != 851656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 852656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 853656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 854656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_5,b_5,t_1 !=!mul_add_c(a[5],b[5],c2,c3,c1); 855656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 856656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 857656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 858656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 != 859656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_4,b_6,t_1 !mul_add_c(a[4],b[6],c2,c3,c1); 860656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 861656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 862656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 != 863656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 864656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,b_7,t_1 !mul_add_c(a[3],b[7],c2,c3,c1); 865656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 866656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 867656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 868656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 869656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(10) !r[10]=c2; 870656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 871656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_4,b_7,t_1 !=!mul_add_c(a[4],b[7],c3,c1,c2); 872656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 873656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 874656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 875656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_2 != 876656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_5,b_6,t_1 !mul_add_c(a[5],b[6],c3,c1,c2); 877656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 878656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 879656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 != 880656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 881656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_6,b_5,t_1 !mul_add_c(a[6],b[5],c3,c1,c2); 882656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 883656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 884656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 885656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 886656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_7,b_4,t_1 !mul_add_c(a[7],b[4],c3,c1,c2); 887656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 888656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 889656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 890656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_3,rp(11) !r[11]=c3; 891656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 892656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 893656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_7,b_5,t_1 !mul_add_c(a[7],b[5],c1,c2,c3); 894656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 895656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 896656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 897656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_3 898656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_6,b_6,t_1 !mul_add_c(a[6],b[6],c1,c2,c3); 899656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 900656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 901656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 902656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 903656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_5,b_7,t_1 !mul_add_c(a[5],b[7],c1,c2,c3); 904656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 != 905656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 906656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 907656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(12) !r[12]=c1; 908656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 909656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 910656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_6,b_7,t_1 !mul_add_c(a[6],b[7],c2,c3,c1); 911656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 912656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 913656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 != 914656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_1 915656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_7,b_6,t_1 !mul_add_c(a[7],b[6],c2,c3,c1); 916656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 917656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 918656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 919656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 920656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(13) !r[13]=c2; 921656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 922656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_7,b_7,t_1 !=!mul_add_c(a[7],b[7],c3,c1,c2); 923656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 924656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 925656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 926656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project nop != 927656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_3,rp(14) !r[14]=c3; 928656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(15) !r[15]=c1; 929656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 930656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret 931656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project restore %g0,%g0,%o0 932656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 933656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type bn_mul_comba8,#function 934656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size bn_mul_comba8,(.-bn_mul_comba8) 935656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 936656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align 32 937656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 938656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global bn_mul_comba4 939656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 940656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * void bn_mul_comba4(r,a,b) 941656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG *r,*a,*b; 942656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 943656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectbn_mul_comba4: 944656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project save %sp,FRAME_SIZE,%sp 945656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(0),a_0 946656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld bp(0),b_0 947656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,b_0,c_1 !=!mul_add_c(a[0],b[0],c1,c2,c3); 948656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld bp(1),b_1 949656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,c_2 950656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(0) !r[0]=c1; 951656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 952656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,b_1,t_1 !=!mul_add_c(a[0],b[1],c2,c3,c1); 953656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(1),a_1 954656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 955656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 956656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc %g0,t_2,c_3 957656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_1 958656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(2),a_2 959656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,b_0,t_1 !=!mul_add_c(a[1],b[0],c2,c3,c1); 960656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 961656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 962656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 963656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 != 964656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(1) !r[1]=c2; 965656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 966656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,b_0,t_1 !mul_add_c(a[2],b[0],c3,c1,c2); 967656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 968656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 969656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 970656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_2 971656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld bp(2),b_2 972656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,b_1,t_1 !=!mul_add_c(a[1],b[1],c3,c1,c2); 973656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 974656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 975656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 976656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 977656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld bp(3),b_3 978656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,b_2,t_1 !mul_add_c(a[0],b[2],c3,c1,c2); 979656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 980656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 981656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 982656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 983656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_3,rp(2) !r[2]=c3; 984656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 985656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,b_3,t_1 !=!mul_add_c(a[0],b[3],c1,c2,c3); 986656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 987656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 988656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 989656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_3 != 990656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,b_2,t_1 !mul_add_c(a[1],b[2],c1,c2,c3); 991656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 992656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 993656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 994656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 995656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(3),a_3 996656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,b_1,t_1 !mul_add_c(a[2],b[1],c1,c2,c3); 997656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 != 998656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 999656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1000656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 1001656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,b_0,t_1 !=!mul_add_c(a[3],b[0],c1,c2,c3); 1002656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1003656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1004656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1005656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 1006656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(3) !r[3]=c1; 1007656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1008656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,b_1,t_1 !mul_add_c(a[3],b[1],c2,c3,c1); 1009656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1010656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1011656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1012656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_1 1013656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,b_2,t_1 !mul_add_c(a[2],b[2],c2,c3,c1); 1014656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 != 1015656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1016656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1017656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1018656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,b_3,t_1 !=!mul_add_c(a[1],b[3],c2,c3,c1); 1019656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1020656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1021656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1022656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 != 1023656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(4) !r[4]=c2; 1024656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1025656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,b_3,t_1 !mul_add_c(a[2],b[3],c3,c1,c2); 1026656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1027656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1028656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1029656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_2 1030656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,b_2,t_1 !mul_add_c(a[3],b[2],c3,c1,c2); 1031656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 1032656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1033656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1034656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_3,rp(5) !r[5]=c3; 1035656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 1036656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1037656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,b_3,t_1 !mul_add_c(a[3],b[3],c1,c2,c3); 1038656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1039656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1040656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 1041656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(6) !r[6]=c1; 1042656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(7) !r[7]=c2; 1043656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1044656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret 1045656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project restore %g0,%g0,%o0 1046656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1047656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type bn_mul_comba4,#function 1048656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size bn_mul_comba4,(.-bn_mul_comba4) 1049656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1050656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align 32 1051656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1052656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global bn_sqr_comba8 1053656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectbn_sqr_comba8: 1054656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project save %sp,FRAME_SIZE,%sp 1055656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(0),a_0 1056656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(1),a_1 1057656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,a_0,c_1 !=!sqr_add_c(a,0,c1,c2,c3); 1058656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,c_2 1059656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(0) !r[0]=c1; 1060656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1061656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(2),a_2 1062656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,a_1,t_1 !=!sqr_add_c2(a,1,0,c2,c3,c1); 1063656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1064656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1065656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc %g0,t_2,c_3 1066656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_1 != 1067656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1068656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1069656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(1) !r[1]=c2; 1070656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 != 1071656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1072656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,a_0,t_1 !sqr_add_c2(a,2,0,c3,c1,c2); 1073656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1074656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1075656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 != 1076656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_2 1077656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1078656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1079656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 1080656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(3),a_3 1081656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,a_1,t_1 !sqr_add_c(a,1,c3,c1,c2); 1082656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1083656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1084656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1085656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 1086656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_3,rp(2) !r[2]=c3; 1087656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1088656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,a_3,t_1 !=!sqr_add_c2(a,3,0,c1,c2,c3); 1089656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1090656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1091656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1092656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_3 != 1093656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1094656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1095656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(4),a_4 1096656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 1097656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,a_2,t_1 !sqr_add_c2(a,2,1,c1,c2,c3); 1098656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1099656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1100656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 1101656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 1102656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1103656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1104656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 1105656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(3) !r[3]=c1; 1106656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1107656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_4,a_0,t_1 !sqr_add_c2(a,4,0,c2,c3,c1); 1108656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1109656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1110656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1111656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_1 1112656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1113656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 != 1114656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1115656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,a_1,t_1 !sqr_add_c2(a,3,1,c2,c3,c1); 1116656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1117656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1118656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1119656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1120656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1121656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 != 1122656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1123656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(5),a_5 1124656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,a_2,t_1 !sqr_add_c(a,2,c2,c3,c1); 1125656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 != 1126656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1127656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1128656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(4) !r[4]=c2; 1129656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 != 1130656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1131656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,a_5,t_1 !sqr_add_c2(a,5,0,c3,c1,c2); 1132656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1133656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1134656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 != 1135656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_2 1136656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1137656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1138656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 1139656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,a_4,t_1 !sqr_add_c2(a,4,1,c3,c1,c2); 1140656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1141656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1142656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 != 1143656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 1144656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1145656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1146656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 1147656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(6),a_6 1148656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,a_3,t_1 !sqr_add_c2(a,3,2,c3,c1,c2); 1149656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1150656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1151656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1152656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 1153656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1154656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 != 1155656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 1156656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_3,rp(5) !r[5]=c3; 1157656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1158656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_6,a_0,t_1 !sqr_add_c2(a,6,0,c1,c2,c3); 1159656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 != 1160656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1161656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1162656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_3 1163656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 != 1164656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1165656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 1166656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_5,a_1,t_1 !sqr_add_c2(a,5,1,c1,c2,c3); 1167656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 != 1168656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1169656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1170656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 1171656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 != 1172656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1173656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 1174656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_4,a_2,t_1 !sqr_add_c2(a,4,2,c1,c2,c3); 1175656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 != 1176656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1177656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1178656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 1179656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 != 1180656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1181656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 1182656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(7),a_7 1183656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,a_3,t_1 !=!sqr_add_c(a,3,c1,c2,c3); 1184656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1185656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1186656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1187656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 1188656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(6) !r[6]=c1; 1189656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1190656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,a_7,t_1 !sqr_add_c2(a,7,0,c2,c3,c1); 1191656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1192656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1193656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1194656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_1 1195656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1196656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 != 1197656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1198656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,a_6,t_1 !sqr_add_c2(a,6,1,c2,c3,c1); 1199656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1200656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1201656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1202656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1203656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1204656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 != 1205656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1206656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,a_5,t_1 !sqr_add_c2(a,5,2,c2,c3,c1); 1207656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1208656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1209656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1210656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1211656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1212656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 != 1213656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1214656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,a_4,t_1 !sqr_add_c2(a,4,3,c2,c3,c1); 1215656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1216656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1217656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1218656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1219656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1220656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 != 1221656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1222656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(7) !r[7]=c2; 1223656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1224656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_7,a_1,t_1 !sqr_add_c2(a,7,1,c3,c1,c2); 1225656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 1226656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1227656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1228656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_2 1229656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 1230656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1231656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 1232656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_6,a_2,t_1 !sqr_add_c2(a,6,2,c3,c1,c2); 1233656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 1234656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1235656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1236656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 1237656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 1238656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1239656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 1240656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_5,a_3,t_1 !sqr_add_c2(a,5,3,c3,c1,c2); 1241656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 1242656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1243656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1244656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 1245656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 1246656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1247656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 1248656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_4,a_4,t_1 !sqr_add_c(a,4,c3,c1,c2); 1249656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 1250656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1251656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1252656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_3,rp(8) !r[8]=c3; 1253656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 1254656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1255656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,a_7,t_1 !sqr_add_c2(a,7,2,c1,c2,c3); 1256656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1257656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1258656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 1259656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_3 1260656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1261656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1262656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 1263656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,a_6,t_1 !sqr_add_c2(a,6,3,c1,c2,c3); 1264656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1265656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1266656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 1267656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 1268656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1269656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1270656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 1271656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_4,a_5,t_1 !sqr_add_c2(a,5,4,c1,c2,c3); 1272656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1273656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1274656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 1275656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 1276656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1277656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1278656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 1279656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(9) !r[9]=c1; 1280656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1281656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_7,a_3,t_1 !sqr_add_c2(a,7,3,c2,c3,c1); 1282656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1283656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1284656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1285656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_1 1286656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1287656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 != 1288656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1289656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_6,a_4,t_1 !sqr_add_c2(a,6,4,c2,c3,c1); 1290656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1291656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1292656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1293656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1294656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1295656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 != 1296656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1297656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_5,a_5,t_1 !sqr_add_c(a,5,c2,c3,c1); 1298656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1299656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1300656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1301656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1302656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(10) !r[10]=c2; 1303656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1304656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_4,a_7,t_1 !=!sqr_add_c2(a,7,4,c3,c1,c2); 1305656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1306656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1307656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1308656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_2 != 1309656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1310656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1311656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 1312656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_5,a_6,t_1 !=!sqr_add_c2(a,6,5,c3,c1,c2); 1313656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1314656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1315656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1316656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 1317656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1318656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1319656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_3,rp(11) !r[11]=c3; 1320656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 1321656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1322656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_7,a_5,t_1 !sqr_add_c2(a,7,5,c1,c2,c3); 1323656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1324656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1325656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 1326656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_3 1327656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1328656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1329656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 1330656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_6,a_6,t_1 !sqr_add_c(a,6,c1,c2,c3); 1331656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1332656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1333656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 1334656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 1335656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(12) !r[12]=c1; 1336656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1337656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_6,a_7,t_1 !sqr_add_c2(a,7,6,c2,c3,c1); 1338656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 != 1339656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1340656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1341656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_1 1342656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 != 1343656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1344656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(13) !r[13]=c2; 1345656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 != 1346656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1347656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_7,a_7,t_1 !sqr_add_c(a,7,c3,c1,c2); 1348656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1349656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1350656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 != 1351656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_3,rp(14) !r[14]=c3; 1352656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(15) !r[15]=c1; 1353656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1354656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret 1355656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project restore %g0,%g0,%o0 1356656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1357656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type bn_sqr_comba8,#function 1358656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size bn_sqr_comba8,(.-bn_sqr_comba8) 1359656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1360656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align 32 1361656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1362656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.global bn_sqr_comba4 1363656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project/* 1364656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * void bn_sqr_comba4(r,a) 1365656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project * BN_ULONG *r,*a; 1366656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project */ 1367656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Projectbn_sqr_comba4: 1368656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project save %sp,FRAME_SIZE,%sp 1369656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(0),a_0 1370656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,a_0,c_1 !sqr_add_c(a,0,c1,c2,c3); 1371656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(1),a_1 != 1372656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,c_2 1373656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(0) !r[0]=c1; 1374656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1375656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(2),a_2 1376656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,a_1,t_1 !=!sqr_add_c2(a,1,0,c2,c3,c1); 1377656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1378656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1379656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc %g0,t_2,c_3 1380656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_1 != 1381656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1382656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1383656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 != 1384656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(1) !r[1]=c2; 1385656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1386656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,a_0,t_1 !sqr_add_c2(a,2,0,c3,c1,c2); 1387656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1388656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1389656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1390656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_2 1391656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1392656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 != 1393656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 1394656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ld ap(3),a_3 1395656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,a_1,t_1 !sqr_add_c(a,1,c3,c1,c2); 1396656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 != 1397656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1398656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1399656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_3,rp(2) !r[2]=c3; 1400656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 1401656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1402656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_0,a_3,t_1 !sqr_add_c2(a,3,0,c1,c2,c3); 1403656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1404656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1405656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 1406656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_3 1407656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1408656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1409656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 1410656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_1,a_2,t_1 !sqr_add_c2(a,2,1,c1,c2,c3); 1411656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1412656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1413656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 1414656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 1415656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1416656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 1417656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_3,%g0,c_3 != 1418656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(3) !r[3]=c1; 1419656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1420656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,a_1,t_1 !sqr_add_c2(a,3,1,c2,c3,c1); 1421656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1422656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1423656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1424656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_1 1425656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1426656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 != 1427656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1428656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,a_2,t_1 !sqr_add_c(a,2,c2,c3,c1); 1429656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_2,t_1,c_2 1430656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 != 1431656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_3,t_2,c_3 1432656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_1,%g0,c_1 1433656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(4) !r[4]=c2; 1434656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1435656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_2,a_3,t_1 !=!sqr_add_c2(a,3,2,c3,c1,c2); 1436656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1437656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1438656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1439656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx %g0,%g0,c_2 != 1440656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_3,t_1,c_3 1441656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_1,t_2,c_1 1442656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_3,rp(5) !r[5]=c3; 1443656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addx c_2,%g0,c_2 != 1444656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1445656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project umul a_3,a_3,t_1 !sqr_add_c(a,3,c1,c2,c3); 1446656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addcc c_1,t_1,c_1 1447656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project rd %y,t_2 1448656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project addxcc c_2,t_2,c_2 != 1449656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_1,rp(6) !r[6]=c1; 1450656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project st c_2,rp(7) !r[7]=c2; 1451656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1452656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project ret 1453656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project restore %g0,%g0,%o0 1454656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1455656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.type bn_sqr_comba4,#function 1456656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.size bn_sqr_comba4,(.-bn_sqr_comba4) 1457656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project 1458656d9c7f52f88b3a3daccafa7655dec086c4756eThe Android Open Source Project.align 32 1459