diff mbox

libgcc: Add DWARF info to aeabi_ldivmod and aeabi_uldivmod

Message ID 1362507304-9011-1-git-send-email-meadori@codesourcery.com
State New
Headers show

Commit Message

Meador Inge March 5, 2013, 6:15 p.m. UTC
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.

Comments

Meador Inge March 18, 2013, 7:20 p.m. UTC | #1
Ping.

On 03/05/2013 12:15 PM, Meador Inge wrote:
> 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 */
>  	
>
Ramana Radhakrishnan March 25, 2013, 10:49 a.m. UTC | #2
On 03/18/13 19:20, Meador Inge wrote:
> Ping.
>
> On 03/05/2013 12:15 PM, Meador Inge wrote:
>> 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?

This is OK .

R
>>
>> 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 */
>>   	
>>
>
>
diff mbox

Patch

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 */