Skip to content

Commit cf1f8e1

Browse files
committed
Various fixes for Aarch64/ARM32/Thumb2 ASM
cpuid.c: hwcaps not used. thumb2-*: ldm -> LDM sp_arm32.c: No register assignment, fix sp_*_from_bin sp_armthumb.c: fix sp_*_from_bin sp_cotexm.c: fix line lengths, fix sp_*_from_bin
1 parent 83d134e commit cf1f8e1

9 files changed

Lines changed: 4774 additions & 1304 deletions

File tree

wolfcrypt/src/cpuid.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@
187187
cpuid_flags |= CPUID_SM4;
188188
#endif
189189

190+
(void)hwcaps;
190191
cpuid_check = 1;
191192
}
192193
}

wolfcrypt/src/port/arm/thumb2-aes-asm_c.c

Lines changed: 87 additions & 87 deletions
Large diffs are not rendered by default.

wolfcrypt/src/port/arm/thumb2-chacha-asm_c.c

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ void wc_chacha_setkey(word32* x, const byte* key, word32 keySz)
103103
"SUBS %[keySz], %[keySz], #0x10\n\t"
104104
"ADD r7, r7, %[keySz]\n\t"
105105
/* Start state with constants */
106-
"ldm r7, {r3, r4, r5, r6}\n\t"
106+
"LDM r7, {r3, r4, r5, r6}\n\t"
107107
"STM %[x]!, {r3, r4, r5, r6}\n\t"
108108
/* Next is first 16 bytes of key. */
109109
"LDR r3, [%[key]]\n\t"
@@ -176,7 +176,7 @@ void wc_chacha_crypt_bytes(ChaCha* ctx, byte* c, const byte* m, word32 len)
176176
"STRD r4, r5, [sp, #16]\n\t"
177177
"STRD r6, r7, [sp, #24]\n\t"
178178
/* Load x[0]..x[12] into registers. */
179-
"ldm lr, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12}\n\t"
179+
"LDM lr, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12}\n\t"
180180
/* 10x 2 full rounds to perform. */
181181
"MOV lr, #0xa\n\t"
182182
"STR lr, [sp, #48]\n\t"
@@ -315,35 +315,35 @@ void wc_chacha_crypt_bytes(ChaCha* ctx, byte* c, const byte* m, word32 len)
315315
"LDR lr, [sp, #32]\n\t"
316316
"MOV r12, sp\n\t"
317317
/* Add in original state */
318-
"ldm lr!, {r8, r9, r10, r11}\n\t"
318+
"LDM lr!, {r8, r9, r10, r11}\n\t"
319319
"ADD %[ctx], %[ctx], r8\n\t"
320320
"ADD %[c], %[c], r9\n\t"
321321
"ADD %[m], %[m], r10\n\t"
322322
"ADD %[len], %[len], r11\n\t"
323-
"ldm lr!, {r8, r9, r10, r11}\n\t"
323+
"LDM lr!, {r8, r9, r10, r11}\n\t"
324324
"ADD r4, r4, r8\n\t"
325325
"ADD r5, r5, r9\n\t"
326326
"ADD r6, r6, r10\n\t"
327327
"ADD r7, r7, r11\n\t"
328-
"ldm r12, {r8, r9}\n\t"
329-
"ldm lr!, {r10, r11}\n\t"
328+
"LDM r12, {r8, r9}\n\t"
329+
"LDM lr!, {r10, r11}\n\t"
330330
"ADD r8, r8, r10\n\t"
331331
"ADD r9, r9, r11\n\t"
332332
"STM r12!, {r8, r9}\n\t"
333-
"ldm r12, {r8, r9}\n\t"
334-
"ldm lr!, {r10, r11}\n\t"
333+
"LDM r12, {r8, r9}\n\t"
334+
"LDM lr!, {r10, r11}\n\t"
335335
"ADD r8, r8, r10\n\t"
336336
"ADD r9, r9, r11\n\t"
337337
"STM r12!, {r8, r9}\n\t"
338-
"ldm r12, {r8, r9}\n\t"
339-
"ldm lr!, {r10, r11}\n\t"
338+
"LDM r12, {r8, r9}\n\t"
339+
"LDM lr!, {r10, r11}\n\t"
340340
"ADD r8, r8, r10\n\t"
341341
"ADD r9, r9, r11\n\t"
342342
"ADD r10, r10, #0x1\n\t"
343343
"STM r12!, {r8, r9}\n\t"
344344
"STR r10, [lr, #-8]\n\t"
345-
"ldm r12, {r8, r9}\n\t"
346-
"ldm lr, {r10, r11}\n\t"
345+
"LDM r12, {r8, r9}\n\t"
346+
"LDM lr, {r10, r11}\n\t"
347347
"ADD r8, r8, r10\n\t"
348348
"ADD r9, r9, r11\n\t"
349349
"STM r12, {r8, r9}\n\t"
@@ -447,7 +447,7 @@ void wc_chacha_crypt_bytes(ChaCha* ctx, byte* c, const byte* m, word32 len)
447447
"LDR lr, [sp, #32]\n\t"
448448
"ADD r12, lr, #0x44\n\t"
449449
"STM r12!, {%[ctx], %[c], %[m], %[len], r4, r5, r6, r7}\n\t"
450-
"ldm sp, {r0, r1, r2, r3, r4, r5, r6, r7}\n\t"
450+
"LDM sp, {r0, r1, r2, r3, r4, r5, r6, r7}\n\t"
451451
"STM r12, {%[ctx], %[c], %[m], %[len], r4, r5, r6, r7}\n\t"
452452
"LDRD %[m], %[len], [sp, #40]\n\t"
453453
"LDR %[c], [sp, #36]\n\t"
@@ -469,7 +469,7 @@ void wc_chacha_crypt_bytes(ChaCha* ctx, byte* c, const byte* m, word32 len)
469469
"BLT.N L_chacha_thumb2_crypt_word_loop_%=\n\t"
470470
#endif
471471
/* 16 bytes of state XORed into message. */
472-
"ldm lr!, {r4, r5, r6, r7}\n\t"
472+
"LDM lr!, {r4, r5, r6, r7}\n\t"
473473
"LDR r8, [%[m]]\n\t"
474474
"LDR r9, [%[m], #4]\n\t"
475475
"LDR r10, [%[m], #8]\n\t"

0 commit comments

Comments
 (0)