more rsa improvement

This commit is contained in:
NIIBE Yutaka
2011-05-27 11:11:41 +09:00
parent ede8bdc2c0
commit 450807e8bf
2 changed files with 52 additions and 1 deletions

View File

@@ -496,6 +496,52 @@
#if defined(__arm__)
#define MULADDC_HUIT \
asm( "ldmia r0!, { r4, r5 } " ); \
asm( "ldmia r1, { r8, r9 } " ); \
asm( "umull r6, r7, r3, r4 " ); \
asm( "adcs r6, r6, r2 " ); \
asm( "adc r7, r7, #0 " ); \
asm( "adds r8, r8, r6 " ); \
asm( "umull r6, r2, r3, r5 " ); \
asm( "adcs r6, r6, r7 " ); \
asm( "adc r2, r2, #0 " ); \
asm( "adds r9, r9, r6 " ); \
asm( "stmia r1!, { r8, r9 } " ); \
asm( "ldmia r0!, { r4, r5 } " ); \
asm( "ldmia r1, { r8, r9 } " ); \
asm( "umull r6, r7, r3, r4 " ); \
asm( "adcs r6, r6, r2 " ); \
asm( "adc r7, r7, #0 " ); \
asm( "adds r8, r8, r6 " ); \
asm( "umull r6, r2, r3, r5 " ); \
asm( "adcs r6, r6, r7 " ); \
asm( "adc r2, r2, #0 " ); \
asm( "adds r9, r9, r6 " ); \
asm( "stmia r1!, { r8, r9 } " ); \
asm( "ldmia r0!, { r4, r5 } " ); \
asm( "ldmia r1, { r8, r9 } " ); \
asm( "umull r6, r7, r3, r4 " ); \
asm( "adcs r6, r6, r2 " ); \
asm( "adc r7, r7, #0 " ); \
asm( "adds r8, r8, r6 " ); \
asm( "umull r6, r2, r3, r5 " ); \
asm( "adcs r6, r6, r7 " ); \
asm( "adc r2, r2, #0 " ); \
asm( "adds r9, r9, r6 " ); \
asm( "stmia r1!, { r8, r9 } " ); \
asm( "ldmia r0!, { r4, r5 } " ); \
asm( "ldmia r1, { r8, r9 } " ); \
asm( "umull r6, r7, r3, r4 " ); \
asm( "adcs r6, r6, r2 " ); \
asm( "adc r7, r7, #0 " ); \
asm( "adds r8, r8, r6 " ); \
asm( "umull r6, r2, r3, r5 " ); \
asm( "adcs r6, r6, r7 " ); \
asm( "adc r2, r2, #0 " ); \
asm( "adds r9, r9, r6 " ); \
asm( "stmia r1!, { r8, r9 } " );
#define MULADDC_INIT \
asm( "ldr r0, %0 " :: "m" (s)); \
asm( "ldr r1, %0 " :: "m" (d)); \
@@ -516,7 +562,7 @@
asm( "str r2, %0 " : "=m" (c)); \
asm( "str r1, %0 " : "=m" (d)); \
asm( "str r0, %0 " : "=m" (s) :: \
"r0", "r1", "r2", "r3", "r4", "r5" );
"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8", "r9");
#endif /* ARMv3 */