diff --git a/.github/workflows/cw308t-stm32f3.yml b/.github/workflows/cw308t-stm32f3.yml index a084d441..36bbd573 100644 --- a/.github/workflows/cw308t-stm32f3.yml +++ b/.github/workflows/cw308t-stm32f3.yml @@ -14,8 +14,8 @@ jobs: with: submodules: recursive - name: Install Toolchain - uses: carlosperate/arm-none-eabi-gcc-action@v1.8.0 + uses: carlosperate/arm-none-eabi-gcc-action@v1.11.0 with: - release: 13.2.Rel1 + release: 14.3.Rel1 - name: Build All (cw308t-stm32f3) run: make PLATFORM=cw308t-stm32f3 -j2 diff --git a/.github/workflows/cw308t-stm32f415.yml b/.github/workflows/cw308t-stm32f415.yml index 17180c87..46eb3fd9 100644 --- a/.github/workflows/cw308t-stm32f415.yml +++ b/.github/workflows/cw308t-stm32f415.yml @@ -14,8 +14,8 @@ jobs: with: submodules: recursive - name: Install Toolchain - uses: carlosperate/arm-none-eabi-gcc-action@v1.8.0 + uses: carlosperate/arm-none-eabi-gcc-action@v1.11.0 with: - release: 13.2.Rel1 + release: 14.3.Rel1 - name: Build All (cw308t-stm32f415) run: make PLATFORM=cw308t-stm32f415 -j2 \ No newline at end of file diff --git a/.github/workflows/mps2-an386.yml b/.github/workflows/mps2-an386.yml index c1ce929c..5e5a35da 100644 --- a/.github/workflows/mps2-an386.yml +++ b/.github/workflows/mps2-an386.yml @@ -14,8 +14,8 @@ jobs: with: submodules: recursive - name: Install Toolchain - uses: carlosperate/arm-none-eabi-gcc-action@v1.8.0 + uses: carlosperate/arm-none-eabi-gcc-action@v1.11.0 with: - release: 13.2.Rel1 + release: 14.3.Rel1 - name: Build All (mps2-an386) run: make PLATFORM=mps2-an386 -j2 \ No newline at end of file diff --git a/.github/workflows/nucleo-l476rg.yml b/.github/workflows/nucleo-l476rg.yml index 0c284a24..0cf0df60 100644 --- a/.github/workflows/nucleo-l476rg.yml +++ b/.github/workflows/nucleo-l476rg.yml @@ -14,8 +14,8 @@ jobs: with: submodules: recursive - name: Install Toolchain - uses: carlosperate/arm-none-eabi-gcc-action@v1.8.0 + uses: carlosperate/arm-none-eabi-gcc-action@v1.11.0 with: - release: 13.2.Rel1 + release: 14.3.Rel1 - name: Build All (nucleo-l476rg) run: make PLATFORM=nucleo-l476rg -j2 \ No newline at end of file diff --git a/.github/workflows/nucleo-l4r5zi.yml b/.github/workflows/nucleo-l4r5zi.yml index 7af21121..7e10926d 100644 --- a/.github/workflows/nucleo-l4r5zi.yml +++ b/.github/workflows/nucleo-l4r5zi.yml @@ -14,8 +14,8 @@ jobs: with: submodules: recursive - name: Install Toolchain - uses: carlosperate/arm-none-eabi-gcc-action@v1.8.0 + uses: carlosperate/arm-none-eabi-gcc-action@v1.11.0 with: - release: 13.2.Rel1 + release: 14.3.Rel1 - name: Build All (nucleo-l4r5zi) run: make PLATFORM=nucleo-l4r5zi -j2 \ No newline at end of file diff --git a/.github/workflows/stm32f4discovery.yml b/.github/workflows/stm32f4discovery.yml index 6a5030b1..5045d394 100644 --- a/.github/workflows/stm32f4discovery.yml +++ b/.github/workflows/stm32f4discovery.yml @@ -14,8 +14,8 @@ jobs: with: submodules: recursive - name: Install Toolchain - uses: carlosperate/arm-none-eabi-gcc-action@v1.8.0 + uses: carlosperate/arm-none-eabi-gcc-action@v1.11.0 with: - release: 13.2.Rel1 + release: 14.3.Rel1 - name: Build All (stm32f4discovery) run: make PLATFORM=stm32f4discovery -j2 \ No newline at end of file diff --git a/common/keccakf1600.S b/common/keccakf1600.S index 7075ed07..cffb293a 100644 --- a/common/keccakf1600.S +++ b/common/keccakf1600.S @@ -871,6 +871,7 @@ @ .align 8 .global KeccakF1600_Initialize +.type KeccakF1600_Initialize, %function KeccakF1600_Initialize: bx lr @@ -882,6 +883,7 @@ KeccakF1600_Initialize: @ .align 8 .global KeccakF1600_StateXORBytes +.type KeccakF1600_StateXORBytes, %function KeccakF1600_StateXORBytes: cbz r3, KeccakF1600_StateXORBytes_Exit1 push {r4 - r8, lr} @ then @@ -985,6 +987,7 @@ __KeccakF1600_StateXORBytesInLane_Loop: @ .align 8 .global KeccakF1600_StateExtractBytes +.type KeccakF1600_StateExtractBytes, %function KeccakF1600_StateExtractBytes: cbz r3, KeccakF1600_StateExtractBytes_Exit1 @ .if length != 0 push {r4 - r8, lr} @ then @@ -1118,6 +1121,7 @@ KeccakF1600_StatePermute_RoundConstantsWithTerminator: @ .align 8 .global KeccakF1600_StatePermute +.type KeccakF1600_StatePermute, %function KeccakF1600_StatePermute: adr r1, KeccakF1600_StatePermute_RoundConstantsWithTerminator push { r4 - r12, lr } diff --git a/common/mps2/startup_MPS2.S b/common/mps2/startup_MPS2.S index fd38c397..f0b134ab 100644 --- a/common/mps2/startup_MPS2.S +++ b/common/mps2/startup_MPS2.S @@ -26,7 +26,7 @@ .section .vector_table,"a",%progbits .align 2 - .globl __isr_vector + .global __isr_vector __isr_vector: .long __StackTop /* Top of Stack */ .long Reset_Handler /* Reset Handler */ @@ -85,7 +85,7 @@ __isr_vector: .thumb .thumb_func .align 2 - .globl Reset_Handler + .global Reset_Handler .type Reset_Handler, %function Reset_Handler: /* diff --git a/crypto_kem/bikel1/m4f/cshift.s b/crypto_kem/bikel1/m4f/cshift.s index 6a85fc39..cbae2621 100644 --- a/crypto_kem/bikel1/m4f/cshift.s +++ b/crypto_kem/bikel1/m4f/cshift.s @@ -5,6 +5,7 @@ // void cshift_asm(uint32_t *array, int s) .global cshift_asm +.type cshift_asm, %function cshift_asm: ptr_a .req r0 s .req r1 diff --git a/crypto_kem/bikel1/m4f/gfv_tower_asm.s b/crypto_kem/bikel1/m4f/gfv_tower_asm.s index 7accdc56..1376e89c 100644 --- a/crypto_kem/bikel1/m4f/gfv_tower_asm.s +++ b/crypto_kem/bikel1/m4f/gfv_tower_asm.s @@ -44,6 +44,7 @@ //void gf4v_mul_2_asm( sto_t *c, const sto_t *a ) .global gf4v_mul_2_asm +.type gf4v_mul_2_asm, %function gf4v_mul_2_asm: ldr r3, [r1] //load a0 ldr r2, [r1, #4] //load a1 @@ -55,6 +56,7 @@ gf4v_mul_2_asm: //void gf4v_mul_asm( sto_t *c, const sto_t *a , const sto_t *b) .global gf4v_mul_asm +.type gf4v_mul_asm, %function gf4v_mul_asm: push {r4-r5} ptr_c .req r0 @@ -98,6 +100,7 @@ b_1 .req r12 //void gf4v_mulscalar_asm( sto_t *c, const sto_t *a , uint8_t b) .global gf4v_mulscalar_asm +.type gf4v_mulscalar_asm, %function gf4v_mulscalar_asm: push {r4-r5} ptr_c .req r0 @@ -179,6 +182,7 @@ buf1 .req r12 //void gf16v_mul_asm( sto_t *c, const sto_t *a , const sto_t *b ) // does not preserve pointers, uses all registers .global gf16v_mul_asm +.type gf16v_mul_asm, %function gf16v_mul_asm: push {r4-r11, lr} ptr_c .req r0 @@ -234,6 +238,7 @@ buf0 .req r14 // void gf16v_mulscalar_asm( sto_t *c, const sto_t *a , uint8_t b ) // preserves pointers, uses all registers .global gf16v_mulscalar_asm +.type gf16v_mulscalar_asm, %function gf16v_mulscalar_asm: push {r4-r11, lr} ptr_c .req r0 @@ -276,6 +281,7 @@ buf2 .req r14 //void gf16v_mul_0x4_asm( sto_t *c, const sto_t *a ) //does not preserve pointer a, uses only caller-saved registers .global gf16v_mul_0x4_asm +.type gf16v_mul_0x4_asm, %function gf16v_mul_0x4_asm: ptr_c .req r0 ptr_a .req r1 @@ -306,6 +312,7 @@ c_3 .req r12 //void gf16v_mul_0x5_asm( sto_t *c, const sto_t *a ) //does not preserve pointer a, uses only caller-saved registers .global gf16v_mul_0x5_asm +.type gf16v_mul_0x5_asm, %function gf16v_mul_0x5_asm: ptr_c .req r0 ptr_a .req r1 @@ -336,6 +343,7 @@ c_3 .req r12 //void gf16v_mul_8_asm( sto_t *c, const sto_t *a ) //does not preserve pointer a, uses only caller-saved registers .global gf16v_mul_8_asm +.type gf16v_mul_8_asm, %function gf16v_mul_8_asm: ptr_c .req r0 ptr_a .req r1 @@ -590,6 +598,7 @@ buf2 .req r14 //void void gf256v_mul_asm( sto_t *c, const sto_t *a , const sto_t *b ) .global gf256v_mul_asm +.type gf256v_mul_asm, %function gf256v_mul_asm: push {r4-r11, lr} m_gf256v_mul @@ -597,6 +606,7 @@ gf256v_mul_asm: //void gf256v_mulscalar_asm( sto_t *c, const sto_t *a , uint8_t b ) .global gf256v_mulscalar_asm +.type gf256v_mulscalar_asm, %function gf256v_mulscalar_asm: push {r4-r11, lr} m_gf256v_mulscalar_asm @@ -604,6 +614,7 @@ gf256v_mulscalar_asm: //void gf256v_mul_0x80_asm( sto_t *c, const sto_t *a) .global gf256v_mul_0x80_asm +.type gf256v_mul_0x80_asm, %function gf256v_mul_0x80_asm: push {r4, r5, r10, r11, lr} ptr_c .req r0 @@ -732,6 +743,7 @@ c_7 .req r14 //void gf216v_mul( sto_t *c, const sto_t *a , const sto_t *b ) .global gf216v_mul_asm +.type gf216v_mul_asm, %function gf216v_mul_asm: push {r4-r11, lr} m_gf216v_mul @@ -739,6 +751,7 @@ gf216v_mul_asm: //void void gf216v_mul_0x8000_asm( sto_t *c, const sto_t *a ) .global gf216v_mul_0x8000_asm +.type gf216v_mul_0x8000_asm, %function gf216v_mul_0x8000_asm: push {r4-r11, lr} m_gf216v_mul_0x8000 @@ -920,6 +933,7 @@ buf3 .req r14 //void gf232v_mul( sto_t *c, const sto_t *a , const sto_t *b ) .global gf232v_mul_asm +.type gf232v_mul_asm, %function gf232v_mul_asm: push {r4-r11, lr} vpush {s16-s19} @@ -930,6 +944,7 @@ gf232v_mul_asm: //void void gf232v_mul_0x2_asm( sto_t *c, const sto_t *a ) .global gf232v_mul_0x2_asm +.type gf232v_mul_0x2_asm, %function gf232v_mul_0x2_asm: push {r4, r5, r10, r11, lr} ptr_c .req r0 @@ -964,6 +979,7 @@ c_7 .req r14 // void gf232v_mul_0x5_asm( sto_t *c, const sto_t *a ) .global gf232v_mul_0x5_asm +.type gf232v_mul_0x5_asm, %function gf232v_mul_0x5_asm: push {r4, r5, r10, r11, lr} ptr_c .req r0 @@ -998,6 +1014,7 @@ c_7 .req r14 // void gf232v_mul_gf16_asm( sto_t *c, const sto_t *a , const sto_t *b_gf16 ) .global gf232v_mul_gf16_asm +.type gf232v_mul_gf16_asm, %function gf232v_mul_gf16_asm: push {r4-r11, lr} ptr_c .req r0 @@ -1125,6 +1142,7 @@ buf0 .req r14 // void gf232v_mul_gf256_asm( sto_t *c, const sto_t *a , const sto_t *b_gf256 ) .global gf232v_mul_gf256_asm +.type gf232v_mul_gf256_asm, %function gf232v_mul_gf256_asm: push {r4-r11, lr} push {r1, r2} @@ -1145,6 +1163,7 @@ gf232v_mul_gf256_asm: // void gf232v_mul_gf216_asm( sto_t *c, const sto_t *a , const sto_t *b_gf216 ) .global gf232v_mul_gf216_asm +.type gf232v_mul_gf216_asm, %function gf232v_mul_gf216_asm: push {r4-r11, lr} push {r0, r1, r2} @@ -1157,6 +1176,7 @@ gf232v_mul_gf216_asm: // void gf232v_mulscalar_gf16_asm( sto_t *c, const sto_t *a , uint8_t b ) .global gf232v_mulscalar_gf16_asm +.type gf232v_mulscalar_gf16_asm, %function gf232v_mulscalar_gf16_asm: push {r4-r11, lr} ptr_c .req r0 @@ -1239,6 +1259,7 @@ buf2 .req r14 // void gf232v_mulscalar_gf256_asm( sto_t *c, const sto_t *a , uint8_t b ) .global gf232v_mulscalar_gf256_asm +.type gf232v_mulscalar_gf256_asm, %function gf232v_mulscalar_gf256_asm: push {r4-r11, lr} vmov s5, r2 @@ -1259,6 +1280,7 @@ gf232v_mulscalar_gf256_asm: // void gf232v_mulscalar_asm( sto_t *c, const sto_t *a , uint32_t _b ); .global gf232v_mulscalar_asm +.type gf232v_mulscalar_asm, %function gf232v_mulscalar_asm: push {r4-r11, lr} vpush {s16-s19} diff --git a/crypto_kem/bikel3/m4f/cshift.s b/crypto_kem/bikel3/m4f/cshift.s index 717d980c..9d8cfb23 100644 --- a/crypto_kem/bikel3/m4f/cshift.s +++ b/crypto_kem/bikel3/m4f/cshift.s @@ -5,6 +5,7 @@ // void cshift_asm(uint32_t *array, int s) .global cshift_asm +.type cshift_asm, %function cshift_asm: ptr_a .req r0 s .req r1 diff --git a/crypto_kem/bikel3/m4f/gfv_tower_asm.s b/crypto_kem/bikel3/m4f/gfv_tower_asm.s index 426f1917..5327b23a 100644 --- a/crypto_kem/bikel3/m4f/gfv_tower_asm.s +++ b/crypto_kem/bikel3/m4f/gfv_tower_asm.s @@ -43,6 +43,7 @@ //void gf4v_mul_2_asm( sto_t *c, const sto_t *a ) .global gf4v_mul_2_asm +.type gf4v_mul_2_asm, %function gf4v_mul_2_asm: ldr r3, [r1] //load a0 ldr r2, [r1, #4] //load a1 @@ -54,6 +55,7 @@ gf4v_mul_2_asm: //void gf4v_mul_asm( sto_t *c, const sto_t *a , const sto_t *b) .global gf4v_mul_asm +.type gf4v_mul_asm, %function gf4v_mul_asm: push {r4-r5} ptr_c .req r0 @@ -97,6 +99,7 @@ b_1 .req r12 //void gf4v_mulscalar_asm( sto_t *c, const sto_t *a , uint8_t b) .global gf4v_mulscalar_asm +.type gf4v_mulscalar_asm, %function gf4v_mulscalar_asm: push {r4-r5} ptr_c .req r0 @@ -178,6 +181,7 @@ buf1 .req r12 //void gf16v_mul_asm( sto_t *c, const sto_t *a , const sto_t *b ) // does not preserve pointers, uses all registers .global gf16v_mul_asm +.type gf16v_mul_asm, %function gf16v_mul_asm: push {r4-r11, lr} ptr_c .req r0 @@ -233,6 +237,7 @@ buf0 .req r14 // void gf16v_mulscalar_asm( sto_t *c, const sto_t *a , uint8_t b ) // preserves pointers, uses all registers .global gf16v_mulscalar_asm +.type gf16v_mulscalar_asm, %function gf16v_mulscalar_asm: push {r4-r11, lr} ptr_c .req r0 @@ -275,6 +280,7 @@ buf2 .req r14 //void gf16v_mul_0x4_asm( sto_t *c, const sto_t *a ) //does not preserve pointer a, uses only caller-saved registers .global gf16v_mul_0x4_asm +.type gf16v_mul_0x4_asm, %function gf16v_mul_0x4_asm: ptr_c .req r0 ptr_a .req r1 @@ -305,6 +311,7 @@ c_3 .req r12 //void gf16v_mul_0x5_asm( sto_t *c, const sto_t *a ) //does not preserve pointer a, uses only caller-saved registers .global gf16v_mul_0x5_asm +.type gf16v_mul_0x5_asm, %function gf16v_mul_0x5_asm: ptr_c .req r0 ptr_a .req r1 @@ -335,6 +342,7 @@ c_3 .req r12 //void gf16v_mul_8_asm( sto_t *c, const sto_t *a ) //does not preserve pointer a, uses only caller-saved registers .global gf16v_mul_8_asm +.type gf16v_mul_8_asm, %function gf16v_mul_8_asm: ptr_c .req r0 ptr_a .req r1 @@ -589,6 +597,7 @@ buf2 .req r14 //void void gf256v_mul_asm( sto_t *c, const sto_t *a , const sto_t *b ) .global gf256v_mul_asm +.type gf256v_mul_asm, %function gf256v_mul_asm: push {r4-r11, lr} m_gf256v_mul @@ -596,6 +605,7 @@ gf256v_mul_asm: //void gf256v_mulscalar_asm( sto_t *c, const sto_t *a , uint8_t b ) .global gf256v_mulscalar_asm +.type gf256v_mulscalar_asm, %function gf256v_mulscalar_asm: push {r4-r11, lr} m_gf256v_mulscalar_asm @@ -603,6 +613,7 @@ gf256v_mulscalar_asm: //void gf256v_mul_0x80_asm( sto_t *c, const sto_t *a) .global gf256v_mul_0x80_asm +.type gf256v_mul_0x80_asm, %function gf256v_mul_0x80_asm: push {r4, r5, r10, r11, lr} ptr_c .req r0 @@ -731,6 +742,7 @@ c_7 .req r14 //void gf216v_mul( sto_t *c, const sto_t *a , const sto_t *b ) .global gf216v_mul_asm +.type gf216v_mul_asm, %function gf216v_mul_asm: push {r4-r11, lr} m_gf216v_mul @@ -738,6 +750,7 @@ gf216v_mul_asm: //void void gf216v_mul_0x8000_asm( sto_t *c, const sto_t *a ) .global gf216v_mul_0x8000_asm +.type gf216v_mul_0x8000_asm, %function gf216v_mul_0x8000_asm: push {r4-r11, lr} m_gf216v_mul_0x8000 @@ -919,6 +932,7 @@ buf3 .req r14 //void gf232v_mul( sto_t *c, const sto_t *a , const sto_t *b ) .global gf232v_mul_asm +.type gf232v_mul_asm, %function gf232v_mul_asm: push {r4-r11, lr} vpush {s16-s19} @@ -929,6 +943,7 @@ gf232v_mul_asm: //void void gf232v_mul_0x2_asm( sto_t *c, const sto_t *a ) .global gf232v_mul_0x2_asm +.type gf232v_mul_0x2_asm, %function gf232v_mul_0x2_asm: push {r4, r5, r10, r11, lr} ptr_c .req r0 @@ -963,6 +978,7 @@ c_7 .req r14 // void gf232v_mul_0x5_asm( sto_t *c, const sto_t *a ) .global gf232v_mul_0x5_asm +.type gf232v_mul_0x5_asm, %function gf232v_mul_0x5_asm: push {r4, r5, r10, r11, lr} ptr_c .req r0 @@ -997,6 +1013,7 @@ c_7 .req r14 // void gf232v_mul_gf16_asm( sto_t *c, const sto_t *a , const sto_t *b_gf16 ) .global gf232v_mul_gf16_asm +.type gf232v_mul_gf16_asm, %function gf232v_mul_gf16_asm: push {r4-r11, lr} ptr_c .req r0 @@ -1124,6 +1141,7 @@ buf0 .req r14 // void gf232v_mul_gf256_asm( sto_t *c, const sto_t *a , const sto_t *b_gf256 ) .global gf232v_mul_gf256_asm +.type gf232v_mul_gf256_asm, %function gf232v_mul_gf256_asm: push {r4-r11, lr} push {r1, r2} @@ -1144,6 +1162,7 @@ gf232v_mul_gf256_asm: // void gf232v_mul_gf216_asm( sto_t *c, const sto_t *a , const sto_t *b_gf216 ) .global gf232v_mul_gf216_asm +.type gf232v_mul_gf216_asm, %function gf232v_mul_gf216_asm: push {r4-r11, lr} push {r0, r1, r2} @@ -1156,6 +1175,7 @@ gf232v_mul_gf216_asm: // void gf232v_mulscalar_gf16_asm( sto_t *c, const sto_t *a , uint8_t b ) .global gf232v_mulscalar_gf16_asm +.type gf232v_mulscalar_gf16_asm, %function gf232v_mulscalar_gf16_asm: push {r4-r11, lr} ptr_c .req r0 @@ -1238,6 +1258,7 @@ buf2 .req r14 // void gf232v_mulscalar_gf256_asm( sto_t *c, const sto_t *a , uint8_t b ) .global gf232v_mulscalar_gf256_asm +.type gf232v_mulscalar_gf256_asm, %function gf232v_mulscalar_gf256_asm: push {r4-r11, lr} vmov s5, r2 @@ -1258,6 +1279,7 @@ gf232v_mulscalar_gf256_asm: // void gf232v_mulscalar_asm( sto_t *c, const sto_t *a , uint32_t _b ); .global gf232v_mulscalar_asm +.type gf232v_mulscalar_asm, %function gf232v_mulscalar_asm: push {r4-r11, lr} vpush {s16-s19} diff --git a/libopencm3 b/libopencm3 index 1f3abd43..3a85f91e 160000 --- a/libopencm3 +++ b/libopencm3 @@ -1 +1 @@ -Subproject commit 1f3abd43763fa39d23e737602b6d0011a45c70b2 +Subproject commit 3a85f91ed8bfe3322cda4ccec63eae2717f67f00 diff --git a/mupq b/mupq index ddcccedb..f57a5b22 160000 --- a/mupq +++ b/mupq @@ -1 +1 @@ -Subproject commit ddcccedb2db9d0250856bd58ee5c46c61e506c5d +Subproject commit f57a5b223a3ec4e034bf01fef1ce65e537cc0971