This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports 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]

Adding CFI statements to ARM's assembly code: syscall function


Hello!

This patch adds CFI statements to the syscall function.


2009-12-22  Thomas Schwinge  <thomas@codesourcery.com>

	* sysdeps/unix/sysv/linux/arm/eabi/syscall.S (syscall): Add CFI
	statements.

diff --git a/glibc-ports-mainline/sysdeps/unix/sysv/linux/arm/eabi/syscall.S b/glibc-ports-mainline/sysdeps/unix/sysv/linux/arm/eabi/syscall.S
index 59ca051..f6d775e 100644
--- a/glibc-ports-mainline/sysdeps/unix/sysv/linux/arm/eabi/syscall.S
+++ b/glibc-ports-mainline/sysdeps/unix/sysv/linux/arm/eabi/syscall.S
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2005, 2009 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -25,6 +25,11 @@
 ENTRY (syscall)
 	mov	ip, sp
 	stmfd	sp!, {r4, r5, r6, r7}
+	cfi_adjust_cfa_offset (16)
+	cfi_rel_offset (r4, 0)
+	cfi_rel_offset (r5, 4)
+	cfi_rel_offset (r6, 8)
+	cfi_rel_offset (r7, 12)
 	mov	r7, r0
 	mov	r0, r1
 	mov	r1, r2
@@ -32,6 +37,11 @@ ENTRY (syscall)
 	ldmfd	ip, {r3, r4, r5, r6}
 	swi	0x0
 	ldmfd	sp!, {r4, r5, r6, r7}
+	cfi_adjust_cfa_offset (-16)
+	cfi_restore (r4)
+	cfi_restore (r5)
+	cfi_restore (r6)
+	cfi_restore (r7)
 	cmn	r0, #4096
 	RETINSTR(cc, lr)
 	b	PLTJMP(syscall_error)


Regards,
 Thomas

Attachment: pgp00000.pgp
Description: PGP signature


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