3333#if !defined(__aarch64__) && defined(__arm__)
3434#ifndef WOLFSSL_ARMASM_INLINE
3535#ifndef NO_AES
36+ #ifdef HAVE_AES_DECRYPT
3637 .text
3738 .type L_AES_ARM32_td_data , %object
3839 .size L_AES_ARM32_td_data , 1024
@@ -294,6 +295,8 @@ L_AES_ARM32_td_data:
294295 . word 0x70d532b6
295296 . word 0x74486c5c
296297 . word 0x42d0b857
298+ #endif / * HAVE_AES_DECRYPT * /
299+ #if defined(HAVE_AES_DECRYPT) || defined(HAVE_AES_CBC) || defined(HAVE_AESCCM) || defined(HAVE_AESGCM) || defined(WOLFSSL_AES_DIRECT) || defined(WOLFSSL_AES_COUNTER)
297300 .text
298301 .type L_AES_ARM32_te_data , %object
299302 .size L_AES_ARM32_te_data , 1024
@@ -555,27 +558,34 @@ L_AES_ARM32_te_data:
555558 . word 0xfca85454
556559 . word 0xd66dbbbb
557560 . word 0x3a2c1616
561+ #endif / * HAVE_AES_DECRYPT || HAVE_AES_CBC || HAVE_AESCCM || HAVE_AESGCM || WOLFSSL_AES_DIRECT || WOLFSSL_AES_COUNTER * /
562+ #ifdef HAVE_AES_DECRYPT
558563 .text
559564 .type L_AES_ARM32_td , %object
560565 .size L_AES_ARM32_td , 12
561566 . align 4
562567L_AES_ARM32_td:
563568 . word L_AES_ARM32_td_data
569+ #endif / * HAVE_AES_DECRYPT * /
570+ #if defined(HAVE_AES_DECRYPT) || defined(HAVE_AES_CBC) || defined(HAVE_AESCCM) || defined(HAVE_AESGCM) || defined(WOLFSSL_AES_DIRECT) || defined(WOLFSSL_AES_COUNTER)
564571 .text
565572 .type L_AES_ARM32_te , %object
566573 .size L_AES_ARM32_te , 12
567574 . align 4
568575L_AES_ARM32_te:
569576 . word L_AES_ARM32_te_data
577+ #endif / * HAVE_AES_DECRYPT || HAVE_AES_CBC || HAVE_AESCCM || HAVE_AESGCM || WOLFSSL_AES_DIRECT || WOLFSSL_AES_COUNTER * /
570578#ifdef HAVE_AES_DECRYPT
571579 .text
572580 . align 4
573581 .globl AES_invert_key
574582 .type AES_invert_key , %function
575583AES_invert_key:
576584 push {r4 , r5 , r6 , r7 , r8 , r9 , r10 , r11 , lr}
577- ldr r12 , L_AES_ARM32_te
578- ldr lr , L_AES_ARM32_td
585+ adr r12 , L_AES_ARM32_te
586+ ldr r12 , [ r12 ]
587+ adr lr , L_AES_ARM32_td
588+ ldr lr , [ lr ]
579589 add r10 , r0 , r1 , lsl # 4
580590 mov r11 , r1
581591L_AES_invert_key_loop:
@@ -681,7 +691,8 @@ L_AES_ARM32_rcon:
681691 .type AES_set_encrypt_key , %function
682692AES_set_encrypt_key:
683693 push {r4 , r5 , r6 , r7 , r8 , lr}
684- ldr r8 , L_AES_ARM32_te
694+ adr r8 , L_AES_ARM32_te
695+ ldr r8 , [ r8 ]
685696 adr lr , L_AES_ARM32_rcon
686697 cmp r1 , # 0x80
687698 beq L_AES_set_encrypt_key_start_128
@@ -911,7 +922,6 @@ L_AES_set_encrypt_key_loop_128:
911922L_AES_set_encrypt_key_end:
912923 pop {r4 , r5 , r6 , r7 , r8 , pc}
913924 .size AES_set_encrypt_key , . - AES_set_encrypt_key
914- #if defined(HAVE_AESCCM) || defined(HAVE_AESGCM) || defined(WOLFSSL_AES_DIRECT) || defined(WOLFSSL_AES_COUNTER)
915925 .text
916926 . align 4
917927 .globl AES_encrypt_block
@@ -1123,12 +1133,14 @@ L_AES_encrypt_block_nr:
11231133 eor r7 , r7 , r11
11241134 pop {pc}
11251135 .size AES_encrypt_block , . - AES_encrypt_block
1136+ #if defined(HAVE_AES_CBC) || defined(HAVE_AESCCM) || defined(HAVE_AESGCM) || defined(WOLFSSL_AES_DIRECT) || defined(WOLFSSL_AES_COUNTER)
11261137 .text
11271138 .type L_AES_ARM32_te_ecb , %object
11281139 .size L_AES_ARM32_te_ecb , 12
11291140 . align 4
11301141L_AES_ARM32_te_ecb:
11311142 . word L_AES_ARM32_te_data
1143+ #endif / * HAVE_AES_CBC || HAVE_AESCCM || HAVE_AESGCM || WOLFSSL_AES_DIRECT || WOLFSSL_AES_COUNTER * /
11321144#if defined(HAVE_AESCCM) || defined(HAVE_AESGCM) || defined(WOLFSSL_AES_DIRECT) || defined(WOLFSSL_AES_COUNTER)
11331145 .text
11341146 . align 4
@@ -1137,7 +1149,8 @@ L_AES_ARM32_te_ecb:
11371149AES_ECB_encrypt:
11381150 push {r4 , r5 , r6 , r7 , r8 , r9 , r10 , r11 , lr}
11391151 mov lr , r0
1140- ldr r0 , L_AES_ARM32_te_ecb
1152+ adr r0 , L_AES_ARM32_te_ecb
1153+ ldr r0 , [ r0 ]
11411154 ldr r12 , [ sp , # 36 ]
11421155 push {r3}
11431156 cmp r12 , # 10
@@ -1259,7 +1272,8 @@ AES_CBC_encrypt:
12591272 ldr r8 , [ sp , # 36 ]
12601273 ldr r9 , [ sp , # 40 ]
12611274 mov lr , r0
1262- ldr r0 , L_AES_ARM32_te_ecb
1275+ adr r0 , L_AES_ARM32_te_ecb
1276+ ldr r0 , [ r0 ]
12631277 ldm r9 , {r4 , r5 , r6 , r7}
12641278 push {r3 , r9 }
12651279 cmp r8 , # 10
@@ -1394,7 +1408,8 @@ AES_CTR_encrypt:
13941408 ldr r12 , [ sp , # 36 ]
13951409 ldr r8 , [ sp , # 40 ]
13961410 mov lr , r0
1397- ldr r0 , L_AES_ARM32_te_ecb
1411+ adr r0 , L_AES_ARM32_te_ecb
1412+ ldr r0 , [ r0 ]
13981413 ldm r8 , {r4 , r5 , r6 , r7}
13991414 rev r4 , r4
14001415 rev r5 , r5
@@ -1540,7 +1555,6 @@ L_AES_CTR_encrypt_end:
15401555 pop {r4 , r5 , r6 , r7 , r8 , r9 , r10 , r11 , pc}
15411556 .size AES_CTR_encrypt , . - AES_CTR_encrypt
15421557#endif / * WOLFSSL_AES_COUNTER * /
1543- #endif / * HAVE_AESCCM || HAVE_AESGCM || WOLFSSL_AES_DIRECT || WOLFSSL_AES_COUNTER * /
15441558#ifdef HAVE_AES_DECRYPT
15451559#if defined(WOLFSSL_AES_DIRECT) || defined(WOLFSSL_AES_COUNTER) || defined(HAVE_AES_CBC)
15461560 .text
@@ -2030,7 +2044,8 @@ AES_ECB_decrypt:
20302044 push {r4 , r5 , r6 , r7 , r8 , r9 , r10 , r11 , lr}
20312045 ldr r8 , [ sp , # 36 ]
20322046 mov lr , r0
2033- ldr r0 , L_AES_ARM32_td_ecb
2047+ adr r0 , L_AES_ARM32_td_ecb
2048+ ldr r0 , [ r0 ]
20342049 adr r12 , L_AES_ARM32_td4
20352050 cmp r8 , # 10
20362051 beq L_AES_ECB_decrypt_start_block_128
@@ -2147,7 +2162,8 @@ AES_CBC_decrypt:
21472162 ldr r8 , [ sp , # 36 ]
21482163 ldr r4 , [ sp , # 40 ]
21492164 mov lr , r0
2150- ldr r0 , L_AES_ARM32_td_ecb
2165+ adr r0 , L_AES_ARM32_td_ecb
2166+ ldr r0 , [ r0 ]
21512167 adr r12 , L_AES_ARM32_td4
21522168 push {r3 , r4}
21532169 cmp r8 , # 10
@@ -3118,7 +3134,8 @@ AES_GCM_encrypt:
31183134 ldr r12 , [ sp , # 36 ]
31193135 ldr r8 , [ sp , # 40 ]
31203136 mov lr , r0
3121- ldr r0 , L_AES_ARM32_te_gcm
3137+ adr r0 , L_AES_ARM32_te_gcm
3138+ ldr r0 , [ r0 ]
31223139 ldm r8 , {r4 , r5 , r6 , r7}
31233140 rev r4 , r4
31243141 rev r5 , r5
0 commit comments