This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] libgcc: Add DWARF info to aeabi_ldivmod and aeabi_uldivmod


Hi All,

This patch fixes a minor annoyance that causes backtraces to disappear
inside of aeabi_ldivmod and aeabi_uldivmod due to the lack of appropriate
DWARF information.  I fixed the problem by adding the necessary cfi_*
macros in these functions.

OK?

2013-03-05  Meador Inge  <meadori@codesourcery.com>

	* config/arm/bpabi.S (aeabi_ldivmod): Add DWARF information for
	computing the location of the link register.
	(aeabi_uldivmod): Ditto.

Index: libgcc/config/arm/bpabi.S
===================================================================
--- libgcc/config/arm/bpabi.S	(revision 196470)
+++ libgcc/config/arm/bpabi.S	(working copy)
@@ -123,6 +123,7 @@ ARM_FUNC_START aeabi_ulcmp
 #ifdef L_aeabi_ldivmod
 
 ARM_FUNC_START aeabi_ldivmod
+	cfi_start	__aeabi_ldivmod, LSYM(Lend_aeabi_ldivmod)
 	test_div_by_zero signed
 
 	sub sp, sp, #8
@@ -132,17 +133,20 @@ ARM_FUNC_START aeabi_ldivmod
 #else
 	do_push {sp, lr}
 #endif
+98:	cfi_push 98b - __aeabi_ldivmod, 0xe, -0xc, 0x10
 	bl SYM(__gnu_ldivmod_helper) __PLT__
 	ldr lr, [sp, #4]
 	add sp, sp, #8
 	do_pop {r2, r3}
 	RET
+	cfi_end	LSYM(Lend_aeabi_ldivmod)
 	
 #endif /* L_aeabi_ldivmod */
 
 #ifdef L_aeabi_uldivmod
 
 ARM_FUNC_START aeabi_uldivmod
+	cfi_start	__aeabi_uldivmod, LSYM(Lend_aeabi_uldivmod)
 	test_div_by_zero unsigned
 
 	sub sp, sp, #8
@@ -152,11 +156,13 @@ ARM_FUNC_START aeabi_uldivmod
 #else
 	do_push {sp, lr}
 #endif
+98:	cfi_push 98b - __aeabi_uldivmod, 0xe, -0xc, 0x10
 	bl SYM(__gnu_uldivmod_helper) __PLT__
 	ldr lr, [sp, #4]
 	add sp, sp, #8
 	do_pop {r2, r3}
 	RET
-	
+	cfi_end	LSYM(Lend_aeabi_uldivmod)
+
 #endif /* L_aeabi_divmod */
 	


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]