Adding CFI statements to ARM's assembly code
Thomas Schwinge
thomas@codesourcery.com
Fri Mar 26 11:40:00 GMT 2010
Hello!
On 2010-01-13 13:56, Daniel Jacobowitz wrote:
> On Wed, Jan 13, 2010 at 10:55:03AM +0100, Thomas Schwinge wrote:
>> On 2010-01-12 14:52, Daniel Jacobowitz wrote:
>>> On Tue, Jan 12, 2010 at 02:35:41PM +0100, Thomas Schwinge wrote:
>>>> In sysdeps/unix/sysv/linux/arm/eabi/sysdep.h:INTERNAL_SYSCALL_RAW for
>>>> [__thumb__], should we, depending on defined (__GCC_HAVE_DWARF2_CFI_ASM),
>>>> emit CFI statements to handle r7's modification and restoral? We can't
>>>> emit CFI statements unconditionally, as it's GCC's decision whether to
>>>> emit .cfi_startproc or not, and in the latter case we're not allowed to
>>>> using them in inline assembly.
>>>
>>> In theory, we ought to. It's not very important since only r7 is
>>> affected.
>>
>> Shall I put a comment into the code then?
>
> Sounds fine.
(No ChangeLog.)
diff --git a/glibc-ports-trunk-2.11/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h b/glibc-ports-trunk-2.11/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h
index f3fe1f6..9d90f3e 100644
--- a/glibc-ports-trunk-2.11/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h
+++ b/glibc-ports-trunk-2.11/sysdeps/unix/sysv/linux/arm/eabi/sysdep.h
@@ -50,6 +50,7 @@
For the moment the LOAD_ARGS_7 is sacrificed.
We can't use push/pop inside the asm because that breaks
unwinding (ie. thread cancellation). */
+/* FIXME: the str / ldr of r7 are not covered by CFI information. */
#undef LOAD_ARGS_7
#undef INTERNAL_SYSCALL_RAW
#define INTERNAL_SYSCALL_RAW(name, err, nr, args...) \
Regards,
Thomas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-ports/attachments/20100326/be7d594d/attachment.sig>
More information about the Libc-ports
mailing list