
On Saturday 01 April 2023 15:17:59 Tony Dinh wrote:
Hi Francis,
On Sat, Apr 1, 2023 at 2:55 PM Francis Laniel francis.laniel@amarulasolutions.com wrote:
The assembly for __gnu_thumb1_case_si was taken from upstream gcc and adapted as width suffix was removed for the add instruction [1].
Signed-off-by: Francis Laniel francis.laniel@amarulasolutions.com Tested-by: Tony Dinh mibodhi@gmail.com [1] https://github.com/gcc-mirror/gcc/blob/4f181f9c7ee3efc509d185fdfda33be9018f1...
Thanks for the patch! I've added Tom, Pali, and Stefan.
Looks good,
Acked-by: Pali Rohár pali@kernel.org
I think we need to do some more testing for other boards that have CONFIG_HAS_THUMB2 and CONFIG_SPL_SYS_THUMB_BUILD. My test target (Marvell Armada 385 SoC) is somewhat broken right now. So it will take some time for me to get that back running to run this test.
All the best, Tony
arch/arm/lib/lib1funcs.S | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
diff --git a/arch/arm/lib/lib1funcs.S b/arch/arm/lib/lib1funcs.S index 7ff4446dd6..79cedc0aad 100644 --- a/arch/arm/lib/lib1funcs.S +++ b/arch/arm/lib/lib1funcs.S @@ -424,4 +424,21 @@ ENTRY(__gnu_thumb1_case_uhi) ret lr ENDPROC(__gnu_thumb1_case_uhi) .popsection
+/* Taken and adapted from: https://github.com/gcc-mirror/gcc/blob/4f181f9c7ee3efc509d185fdfda33be9018f1... */ +.pushsection .text.__gnu_thumb1_case_si, "ax" +ENTRY(__gnu_thumb1_case_si)
push {r0, r1}
mov r1, lr
adds r1, r1, #2 /* Align to word. */
lsrs r1, r1, #2
lsls r0, r0, #2
lsls r1, r1, #2
ldr r0, [r1, r0]
adds r0, r0, r1
mov lr, r0
pop {r0, r1}
mov pc, lr /* We know we were called from thumb code. */
+ENDPROC(__gnu_thumb1_case_si) +.popsection
#endif
2.34.1