aboutsummaryrefslogtreecommitdiff
path: root/meta-aarch64
diff options
context:
space:
mode:
authorRiku Voipio <riku.voipio@linaro.org>2013-05-20 16:31:35 +0300
committerRiku Voipio <riku.voipio@linaro.org>2013-05-20 16:31:35 +0300
commit25ab248042e966908502fe9e1943777df77c0552 (patch)
tree275645125d9f7499c13d080a636d9f5297fc5f8d /meta-aarch64
parent8a2388ceaf2a34256e98d0054a84b6097fec19ab (diff)
libunwind: update to latest
Update to the version of patch from upstream.
Diffstat (limited to 'meta-aarch64')
-rw-r--r--meta-aarch64/recipes-support/libunwind/files/0001-AArch64-port.patch337
1 files changed, 174 insertions, 163 deletions
diff --git a/meta-aarch64/recipes-support/libunwind/files/0001-AArch64-port.patch b/meta-aarch64/recipes-support/libunwind/files/0001-AArch64-port.patch
index 387d1833..475085fd 100644
--- a/meta-aarch64/recipes-support/libunwind/files/0001-AArch64-port.patch
+++ b/meta-aarch64/recipes-support/libunwind/files/0001-AArch64-port.patch
@@ -1,58 +1,59 @@
-From 1c0a3b8bfe45eebe16cb034bb3f911f869840f33 Mon Sep 17 00:00:00 2001
+From 7852e18a504f8224cb3f8fa0127b885a7d5e3844 Mon Sep 17 00:00:00 2001
From: Yvan Roux <yvan.roux@linaro.org>
-Date: Thu, 25 Apr 2013 12:26:20 +0200
+Date: Fri, 3 May 2013 15:51:14 +0200
Subject: [PATCH] AArch64 port.
-Edited-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+Edited-by: Riku Voipio <riku.voipio@linaro.org>
s/unreachable/_builtin_unreachable/ to get it working.
-Upstream-status: pending
+Upstream-status: Accepted (expected 1.2)
+
---
- Makefile.am | 6 +
- README | 1 +
- configure.ac | 7 +-
- include/libunwind-aarch64.h | 186 ++++++++++++++++++++++
- include/libunwind.h.in | 4 +-
- include/tdep-aarch64/dwarf-config.h | 51 ++++++
- include/tdep-aarch64/jmpbuf.h | 32 ++++
- include/tdep-aarch64/libunwind_i.h | 294 +++++++++++++++++++++++++++++++++++
- include/tdep/dwarf-config.h | 4 +-
- include/tdep/jmpbuf.h | 2 +
- include/tdep/libunwind_i.h.in | 4 +-
- src/Makefile.am | 38 ++++-
- src/aarch64/Gcreate_addr_space.c | 59 +++++++
- src/aarch64/Gget_proc_info.c | 39 +++++
- src/aarch64/Gget_save_loc.c | 99 ++++++++++++
- src/aarch64/Gglobal.c | 56 +++++++
- src/aarch64/Ginit.c | 186 ++++++++++++++++++++++
- src/aarch64/Ginit_local.c | 55 +++++++
- src/aarch64/Ginit_remote.c | 45 ++++++
- src/aarch64/Gis_signal_frame.c | 63 ++++++++
- src/aarch64/Gregs.c | 112 +++++++++++++
- src/aarch64/Gresume.c | 182 ++++++++++++++++++++++
- src/aarch64/Gstep.c | 129 +++++++++++++++
- src/aarch64/Lcreate_addr_space.c | 5 +
- src/aarch64/Lget_proc_info.c | 5 +
- src/aarch64/Lget_save_loc.c | 5 +
- src/aarch64/Lglobal.c | 5 +
- src/aarch64/Linit.c | 5 +
- src/aarch64/Linit_local.c | 5 +
- src/aarch64/Linit_remote.c | 5 +
- src/aarch64/Lis_signal_frame.c | 5 +
- src/aarch64/Lregs.c | 5 +
- src/aarch64/Lresume.c | 5 +
- src/aarch64/Lstep.c | 5 +
- src/aarch64/gen-offsets.c | 68 ++++++++
- src/aarch64/init.h | 125 +++++++++++++++
- src/aarch64/is_fpreg.c | 31 ++++
- src/aarch64/offsets.h | 49 ++++++
- src/aarch64/regname.c | 105 +++++++++++++
- src/aarch64/siglongjmp.S | 12 ++
- src/aarch64/unwind_i.h | 42 +++++
- src/coredump/_UCD_access_reg_linux.c | 5 +-
- src/ptrace/_UPT_reg_offset.c | 35 +++++
- 43 files changed, 2174 insertions(+), 7 deletions(-)
+ Makefile.am | 6 +
+ README | 1 +
+ configure.ac | 6 +-
+ include/libunwind-aarch64.h | 187 +++++++++++++++++++++
+ include/libunwind.h.in | 4 +-
+ include/tdep-aarch64/dwarf-config.h | 52 ++++++
+ include/tdep-aarch64/jmpbuf.h | 33 ++++
+ include/tdep-aarch64/libunwind_i.h | 294 ++++++++++++++++++++++++++++++++++
+ include/tdep/dwarf-config.h | 4 +-
+ include/tdep/jmpbuf.h | 2 +
+ include/tdep/libunwind_i.h.in | 4 +-
+ src/Makefile.am | 39 ++++-
+ src/aarch64/Gcreate_addr_space.c | 60 +++++++
+ src/aarch64/Gget_proc_info.c | 39 +++++
+ src/aarch64/Gget_save_loc.c | 100 ++++++++++++
+ src/aarch64/Gglobal.c | 57 +++++++
+ src/aarch64/Ginit.c | 187 +++++++++++++++++++++
+ src/aarch64/Ginit_local.c | 55 +++++++
+ src/aarch64/Ginit_remote.c | 45 ++++++
+ src/aarch64/Gis_signal_frame.c | 64 ++++++++
+ src/aarch64/Gregs.c | 113 +++++++++++++
+ src/aarch64/Gresume.c | 177 ++++++++++++++++++++
+ src/aarch64/Gstep.c | 129 +++++++++++++++
+ src/aarch64/Lcreate_addr_space.c | 5 +
+ src/aarch64/Lget_proc_info.c | 5 +
+ src/aarch64/Lget_save_loc.c | 5 +
+ src/aarch64/Lglobal.c | 5 +
+ src/aarch64/Linit.c | 5 +
+ src/aarch64/Linit_local.c | 5 +
+ src/aarch64/Linit_remote.c | 5 +
+ src/aarch64/Lis_signal_frame.c | 5 +
+ src/aarch64/Lregs.c | 5 +
+ src/aarch64/Lresume.c | 5 +
+ src/aarch64/Lstep.c | 5 +
+ src/aarch64/gen-offsets.c | 68 ++++++++
+ src/aarch64/init.h | 127 +++++++++++++++
+ src/aarch64/is_fpreg.c | 32 ++++
+ src/aarch64/offsets.h | 49 ++++++
+ src/aarch64/regname.c | 106 ++++++++++++
+ src/aarch64/siglongjmp.S | 12 ++
+ src/aarch64/unwind_i.h | 43 +++++
+ src/coredump/_UCD_access_reg_linux.c | 5 +-
+ src/ptrace/_UPT_reg_offset.c | 36 +++++
+ 43 files changed, 2184 insertions(+), 7 deletions(-)
create mode 100644 include/libunwind-aarch64.h
create mode 100644 include/tdep-aarch64/dwarf-config.h
create mode 100644 include/tdep-aarch64/jmpbuf.h
@@ -124,7 +125,7 @@ index 71a631f..511fb0c 100644
Linux/SuperH: Newly added.
FreeBSD/i386: Newly added.
diff --git a/configure.ac b/configure.ac
-index f7e95ad..d05a663 100644
+index f7e95ad..425991c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -104,7 +104,7 @@ SET_ARCH([$target_cpu],[target_arch])
@@ -132,7 +133,7 @@ index f7e95ad..d05a663 100644
AC_ARG_ENABLE(coredump,
AS_HELP_STRING([--enable-coredump],[building libunwind-coredump library]),,
- [AS_CASE([$host_arch], [arm*|mips*|sh*|x86*], [enable_coredump=yes], [enable_coredump=no])]
-+ [AS_CASE([$host_arch], [aarch64|arm*|mips*|sh*|x86*], [enable_coredump=yes], [enable_coredump=no])]
++ [AS_CASE([$host_arch], [aarch64*|arm*|mips*|sh*|x86*], [enable_coredump=yes], [enable_coredump=no])]
)
AC_MSG_CHECKING([if we should build libunwind-coredump])
@@ -161,23 +162,16 @@ index f7e95ad..d05a663 100644
arm*) enable_cxx_exceptions=no;;
mips*) enable_cxx_exceptions=no;;
*) enable_cxx_exceptions=yes;;
-@@ -217,6 +219,7 @@ AC_MSG_CHECKING([whether to load .debug_frame sections])
- AC_ARG_ENABLE(debug_frame,
- AS_HELP_STRING([--enable-debug-frame],[Load the ".debug_frame" section if available]),, [
- case "${target_arch}" in
-+ (aarch64) enable_debug_frame=yes;;
- (arm) enable_debug_frame=yes;;
- (*) enable_debug_frame=no;;
- esac])
diff --git a/include/libunwind-aarch64.h b/include/libunwind-aarch64.h
new file mode 100644
-index 0000000..274dde1
+index 0000000..d50da8f
--- /dev/null
+++ b/include/libunwind-aarch64.h
-@@ -0,0 +1,186 @@
+@@ -0,0 +1,187 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2001-2004 Hewlett-Packard Co
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
++ Copyright (C) 2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -330,7 +324,7 @@ index 0000000..274dde1
+
+ UNW_TDEP_IP = UNW_AARCH64_X30,
+ UNW_TDEP_SP = UNW_AARCH64_SP,
-+ UNW_TDEP_EH = UNW_AARCH64_X0, /* FIXME. */
++ UNW_TDEP_EH = UNW_AARCH64_X0,
+
+ }
+aarch64_regnum_t;
@@ -378,13 +372,14 @@ index 25c4e3b..64b1457 100644
# include "libunwind-hppa.h"
diff --git a/include/tdep-aarch64/dwarf-config.h b/include/tdep-aarch64/dwarf-config.h
new file mode 100644
-index 0000000..0e1fade
+index 0000000..c3bbed5
--- /dev/null
+++ b/include/tdep-aarch64/dwarf-config.h
-@@ -0,0 +1,51 @@
+@@ -0,0 +1,52 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2008 CodeSourcery
+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -435,12 +430,13 @@ index 0000000..0e1fade
+#endif /* dwarf_config_h */
diff --git a/include/tdep-aarch64/jmpbuf.h b/include/tdep-aarch64/jmpbuf.h
new file mode 100644
-index 0000000..8a9d585
+index 0000000..2eb53a7
--- /dev/null
+++ b/include/tdep-aarch64/jmpbuf.h
-@@ -0,0 +1,32 @@
+@@ -0,0 +1,33 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2008 CodeSourcery
++ Copyright (C) 2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -473,13 +469,14 @@ index 0000000..8a9d585
+#define JB_MASK 16
diff --git a/include/tdep-aarch64/libunwind_i.h b/include/tdep-aarch64/libunwind_i.h
new file mode 100644
-index 0000000..8c2ad6a
+index 0000000..28943db
--- /dev/null
+++ b/include/tdep-aarch64/libunwind_i.h
@@ -0,0 +1,294 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2001-2005 Hewlett-Packard Co
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
++ Copyright (C) 2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -557,7 +554,6 @@ index 0000000..8c2ad6a
+ enum
+ {
+ AARCH64_SCF_NONE,
-+ AARCH64_SCF_LINUX_SIGFRAME,
+ AARCH64_SCF_LINUX_RT_SIGFRAME,
+ }
+ sigcontext_format;
@@ -815,10 +811,10 @@ index 2ad6269..475f828 100644
#elif defined __hppa__
# include "tdep-hppa/libunwind_i.h"
diff --git a/src/Makefile.am b/src/Makefile.am
-index 3daa246..95e11f0 100644
+index 3daa246..9ad0020 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
-@@ -180,6 +180,27 @@ libunwind_elfxx_la_SOURCES = elfxx.c
+@@ -180,6 +180,28 @@ libunwind_elfxx_la_SOURCES = elfxx.c
noinst_LTLIBRARIES += $(LIBUNWIND_ELF)
libunwind_la_LIBADD += $(LIBUNWIND_ELF)
@@ -836,17 +832,18 @@ index 3daa246..95e11f0 100644
+ aarch64/Lis_signal_frame.c aarch64/Lregs.c aarch64/Lresume.c \
+ aarch64/Lstep.c
+
-+libunwind_aarch64_la_SOURCES_aarch64 = $(libunwind_la_SOURCES_aarch64_common) \
-+ $(libunwind_la_SOURCES_generic) \
-+ aarch64/Gcreate_addr_space.c aarch64/Gget_proc_info.c \
-+ aarch64/Gget_save_loc.c aarch64/Gglobal.c aarch64/Ginit.c \
-+ aarch64/Ginit_local.c aarch64/Ginit_remote.c \
-+ aarch64/Gis_signal_frame.c aarch64/Gregs.c aarch64/Gresume.c aarch64/Gstep.c
++libunwind_aarch64_la_SOURCES_aarch64 = $(libunwind_la_SOURCES_aarch64_common) \
++ $(libunwind_la_SOURCES_generic) \
++ aarch64/Gcreate_addr_space.c aarch64/Gget_proc_info.c \
++ aarch64/Gget_save_loc.c aarch64/Gglobal.c aarch64/Ginit.c \
++ aarch64/Ginit_local.c aarch64/Ginit_remote.c \
++ aarch64/Gis_signal_frame.c aarch64/Gregs.c aarch64/Gresume.c \
++ aarch64/Gstep.c
+
# The list of files that go into libunwind and libunwind-arm:
noinst_HEADERS += arm/init.h arm/offsets.h arm/unwind_i.h
libunwind_la_SOURCES_arm_common = $(libunwind_la_SOURCES_common) \
-@@ -428,6 +449,18 @@ if OS_FREEBSD
+@@ -428,6 +450,18 @@ if OS_FREEBSD
libunwind_coredump_la_SOURCES += coredump/_UCD_access_reg_freebsd.c
endif
@@ -865,7 +862,7 @@ index 3daa246..95e11f0 100644
if ARCH_ARM
lib_LTLIBRARIES += libunwind-arm.la
libunwind_la_SOURCES = $(libunwind_la_SOURCES_arm)
-@@ -555,6 +588,7 @@ endif # ARCH_MIPS
+@@ -555,6 +589,7 @@ endif # ARCH_MIPS
endif # ARCH_HPPA
endif # ARCH_IA64
endif # ARCH_ARM
@@ -873,7 +870,7 @@ index 3daa246..95e11f0 100644
# libunwind-setjmp depends on libunwind-$(arch). Therefore must be added
# at the end.
-@@ -577,7 +611,8 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/tdep-$(arch) -I.
+@@ -577,7 +612,8 @@ AM_CPPFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/include/tdep-$(arch) -I.
AM_CCASFLAGS = $(AM_CPPFLAGS)
noinst_HEADERS += unwind/unwind-internal.h
@@ -883,7 +880,7 @@ index 3daa246..95e11f0 100644
$(libunwind_la_SOURCES_hppa) \
$(libunwind_la_SOURCES_ia64) \
$(libunwind_la_SOURCES_mips) \
-@@ -589,6 +624,7 @@ EXTRA_DIST = $(libunwind_la_SOURCES_arm) \
+@@ -589,6 +625,7 @@ EXTRA_DIST = $(libunwind_la_SOURCES_arm) \
$(libunwind_la_SOURCES_common) \
$(libunwind_la_SOURCES_local) \
$(libunwind_la_SOURCES_generic) \
@@ -893,12 +890,13 @@ index 3daa246..95e11f0 100644
$(libunwind_ia64_la_SOURCES_ia64) \
diff --git a/src/aarch64/Gcreate_addr_space.c b/src/aarch64/Gcreate_addr_space.c
new file mode 100644
-index 0000000..cc77a19
+index 0000000..b0f2b04
--- /dev/null
+++ b/src/aarch64/Gcreate_addr_space.c
-@@ -0,0 +1,59 @@
+@@ -0,0 +1,60 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -1003,13 +1001,14 @@ index 0000000..de9199f
+}
diff --git a/src/aarch64/Gget_save_loc.c b/src/aarch64/Gget_save_loc.c
new file mode 100644
-index 0000000..548b348
+index 0000000..c76eb9c
--- /dev/null
+++ b/src/aarch64/Gget_save_loc.c
-@@ -0,0 +1,99 @@
+@@ -0,0 +1,100 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2008 CodeSourcery
+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -1108,13 +1107,14 @@ index 0000000..548b348
+}
diff --git a/src/aarch64/Gglobal.c b/src/aarch64/Gglobal.c
new file mode 100644
-index 0000000..f3803dd
+index 0000000..b0a7e26
--- /dev/null
+++ b/src/aarch64/Gglobal.c
-@@ -0,0 +1,56 @@
+@@ -0,0 +1,57 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2008 CodeSourcery
+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -1170,13 +1170,14 @@ index 0000000..f3803dd
+}
diff --git a/src/aarch64/Ginit.c b/src/aarch64/Ginit.c
new file mode 100644
-index 0000000..9d63780
+index 0000000..449b417
--- /dev/null
+++ b/src/aarch64/Ginit.c
-@@ -0,0 +1,186 @@
+@@ -0,0 +1,187 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2008 CodeSourcery
+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -1362,13 +1363,13 @@ index 0000000..9d63780
+#endif /* !UNW_REMOTE_ONLY */
diff --git a/src/aarch64/Ginit_local.c b/src/aarch64/Ginit_local.c
new file mode 100644
-index 0000000..e1cc30c
+index 0000000..dee6fd3
--- /dev/null
+++ b/src/aarch64/Ginit_local.c
@@ -0,0 +1,55 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2008 CodeSourcery
-+ Copyright 2011 Linaro Limited
++ Copyright (C) 2011-2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -1474,12 +1475,13 @@ index 0000000..f284e99
+}
diff --git a/src/aarch64/Gis_signal_frame.c b/src/aarch64/Gis_signal_frame.c
new file mode 100644
-index 0000000..79c42b2
+index 0000000..53e32de
--- /dev/null
+++ b/src/aarch64/Gis_signal_frame.c
-@@ -0,0 +1,63 @@
+@@ -0,0 +1,64 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -1543,13 +1545,14 @@ index 0000000..79c42b2
+}
diff --git a/src/aarch64/Gregs.c b/src/aarch64/Gregs.c
new file mode 100644
-index 0000000..315109c
+index 0000000..0f6b9c6
--- /dev/null
+++ b/src/aarch64/Gregs.c
-@@ -0,0 +1,112 @@
+@@ -0,0 +1,113 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2008 CodeSourcery
+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -1661,13 +1664,13 @@ index 0000000..315109c
+}
diff --git a/src/aarch64/Gresume.c b/src/aarch64/Gresume.c
new file mode 100644
-index 0000000..2593ad7
+index 0000000..07f2f2b
--- /dev/null
+++ b/src/aarch64/Gresume.c
-@@ -0,0 +1,182 @@
+@@ -0,0 +1,177 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2008 CodeSourcery
-+ Copyright 2011 Linaro Limited
++ Copyright (C) 2011-2013 Linaro Limited
+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
+
+This file is part of libunwind.
@@ -1726,16 +1729,11 @@ index 0000000..2593ad7
+ };
+
+ asm volatile (
-+ "ldr x19, [%0]\n"
-+ "ldr x20, [%0,8]\n"
-+ "ldr x21, [%0,16]\n"
-+ "ldr x22, [%0,24]\n"
-+ "ldr x23, [%0,32]\n"
-+ "ldr x24, [%0,40]\n"
-+ "ldr x25, [%0,48]\n"
-+ "ldr x26, [%0,56]\n"
-+ "ldr x27, [%0,64]\n"
-+ "ldr x28, [%0,72]\n"
++ "ldp x19, x20, [%0]\n"
++ "ldp x21, x22, [%0,16]\n"
++ "ldp x23, x24, [%0,32]\n"
++ "ldp x25, x26, [%0,48]\n"
++ "ldp x27, x28, [%0,64]\n"
+ "ldr x30, [%0,80]\n"
+ "mov sp, %1\n"
+ "ret \n"
@@ -1849,13 +1847,13 @@ index 0000000..2593ad7
+}
diff --git a/src/aarch64/Gstep.c b/src/aarch64/Gstep.c
new file mode 100644
-index 0000000..4ca07f8
+index 0000000..4aa15d1
--- /dev/null
+++ b/src/aarch64/Gstep.c
@@ -0,0 +1,129 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2008 CodeSourcery
-+ Copyright 2011 Linaro Limited
++ Copyright (C) 2011-2013 Linaro Limited
+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
+
+This file is part of libunwind.
@@ -2179,12 +2177,13 @@ index 0000000..eadc237
+}
diff --git a/src/aarch64/init.h b/src/aarch64/init.h
new file mode 100644
-index 0000000..eec07ea
+index 0000000..0cedc1a
--- /dev/null
+++ b/src/aarch64/init.h
-@@ -0,0 +1,125 @@
+@@ -0,0 +1,127 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -2224,30 +2223,31 @@ index 0000000..eec07ea
+ c->dwarf.loc[UNW_AARCH64_X7] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X7);
+ c->dwarf.loc[UNW_AARCH64_X8] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X8);
+ c->dwarf.loc[UNW_AARCH64_X9] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X9);
-+ c->dwarf.loc[UNW_AARCH64_X10] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X10);
-+ c->dwarf.loc[UNW_AARCH64_X11] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X11);
-+ c->dwarf.loc[UNW_AARCH64_X12] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X12);
-+ c->dwarf.loc[UNW_AARCH64_X13] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X13);
-+ c->dwarf.loc[UNW_AARCH64_X14] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X14);
-+ c->dwarf.loc[UNW_AARCH64_X15] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X15);
-+ c->dwarf.loc[UNW_AARCH64_X16] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X16);
-+ c->dwarf.loc[UNW_AARCH64_X17] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X17);
-+ c->dwarf.loc[UNW_AARCH64_X18] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X18);
-+ c->dwarf.loc[UNW_AARCH64_X19] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X19);
-+ c->dwarf.loc[UNW_AARCH64_X20] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X20);
-+ c->dwarf.loc[UNW_AARCH64_X21] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X21);
-+ c->dwarf.loc[UNW_AARCH64_X22] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X22);
-+ c->dwarf.loc[UNW_AARCH64_X23] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X23);
-+ c->dwarf.loc[UNW_AARCH64_X24] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X24);
-+ c->dwarf.loc[UNW_AARCH64_X25] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X25);
-+ c->dwarf.loc[UNW_AARCH64_X26] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X26);
-+ c->dwarf.loc[UNW_AARCH64_X27] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X27);
-+ c->dwarf.loc[UNW_AARCH64_X28] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X28);
-+ c->dwarf.loc[UNW_AARCH64_X29] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X29);
-+ c->dwarf.loc[UNW_AARCH64_X30] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X30);
++ c->dwarf.loc[UNW_AARCH64_X10] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X10);
++ c->dwarf.loc[UNW_AARCH64_X11] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X11);
++ c->dwarf.loc[UNW_AARCH64_X12] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X12);
++ c->dwarf.loc[UNW_AARCH64_X13] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X13);
++ c->dwarf.loc[UNW_AARCH64_X14] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X14);
++ c->dwarf.loc[UNW_AARCH64_X15] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X15);
++ c->dwarf.loc[UNW_AARCH64_X16] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X16);
++ c->dwarf.loc[UNW_AARCH64_X17] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X17);
++ c->dwarf.loc[UNW_AARCH64_X18] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X18);
++ c->dwarf.loc[UNW_AARCH64_X19] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X19);
++ c->dwarf.loc[UNW_AARCH64_X20] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X20);
++ c->dwarf.loc[UNW_AARCH64_X21] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X21);
++ c->dwarf.loc[UNW_AARCH64_X22] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X22);
++ c->dwarf.loc[UNW_AARCH64_X23] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X23);
++ c->dwarf.loc[UNW_AARCH64_X24] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X24);
++ c->dwarf.loc[UNW_AARCH64_X25] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X25);
++ c->dwarf.loc[UNW_AARCH64_X26] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X26);
++ c->dwarf.loc[UNW_AARCH64_X27] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X27);
++ c->dwarf.loc[UNW_AARCH64_X28] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X28);
++ c->dwarf.loc[UNW_AARCH64_X29] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X29);
++ c->dwarf.loc[UNW_AARCH64_X30] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_X30);
+ c->dwarf.loc[UNW_AARCH64_SP] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_SP);
+ c->dwarf.loc[UNW_AARCH64_PC] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_PC);
-+ c->dwarf.loc[UNW_AARCH64_PSTATE] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_PSTATE);
++ c->dwarf.loc[UNW_AARCH64_PSTATE] = DWARF_REG_LOC (&c->dwarf,
++ UNW_AARCH64_PSTATE);
+ c->dwarf.loc[UNW_AARCH64_V0] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V0);
+ c->dwarf.loc[UNW_AARCH64_V1] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V1);
+ c->dwarf.loc[UNW_AARCH64_V2] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V2);
@@ -2258,28 +2258,28 @@ index 0000000..eec07ea
+ c->dwarf.loc[UNW_AARCH64_V7] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V7);
+ c->dwarf.loc[UNW_AARCH64_V8] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V8);
+ c->dwarf.loc[UNW_AARCH64_V9] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V9);
-+ c->dwarf.loc[UNW_AARCH64_V10] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V10);
-+ c->dwarf.loc[UNW_AARCH64_V11] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V11);
-+ c->dwarf.loc[UNW_AARCH64_V12] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V12);
-+ c->dwarf.loc[UNW_AARCH64_V13] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V13);
-+ c->dwarf.loc[UNW_AARCH64_V14] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V14);
-+ c->dwarf.loc[UNW_AARCH64_V15] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V15);
-+ c->dwarf.loc[UNW_AARCH64_V16] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V16);
-+ c->dwarf.loc[UNW_AARCH64_V17] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V17);
-+ c->dwarf.loc[UNW_AARCH64_V18] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V18);
-+ c->dwarf.loc[UNW_AARCH64_V19] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V19);
-+ c->dwarf.loc[UNW_AARCH64_V20] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V20);
-+ c->dwarf.loc[UNW_AARCH64_V21] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V21);
-+ c->dwarf.loc[UNW_AARCH64_V22] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V22);
-+ c->dwarf.loc[UNW_AARCH64_V23] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V23);
-+ c->dwarf.loc[UNW_AARCH64_V24] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V24);
-+ c->dwarf.loc[UNW_AARCH64_V25] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V25);
-+ c->dwarf.loc[UNW_AARCH64_V26] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V26);
-+ c->dwarf.loc[UNW_AARCH64_V27] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V27);
-+ c->dwarf.loc[UNW_AARCH64_V28] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V28);
-+ c->dwarf.loc[UNW_AARCH64_V29] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V29);
-+ c->dwarf.loc[UNW_AARCH64_V30] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V30);
-+ c->dwarf.loc[UNW_AARCH64_V31] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V31);
++ c->dwarf.loc[UNW_AARCH64_V10] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V10);
++ c->dwarf.loc[UNW_AARCH64_V11] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V11);
++ c->dwarf.loc[UNW_AARCH64_V12] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V12);
++ c->dwarf.loc[UNW_AARCH64_V13] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V13);
++ c->dwarf.loc[UNW_AARCH64_V14] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V14);
++ c->dwarf.loc[UNW_AARCH64_V15] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V15);
++ c->dwarf.loc[UNW_AARCH64_V16] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V16);
++ c->dwarf.loc[UNW_AARCH64_V17] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V17);
++ c->dwarf.loc[UNW_AARCH64_V18] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V18);
++ c->dwarf.loc[UNW_AARCH64_V19] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V19);
++ c->dwarf.loc[UNW_AARCH64_V20] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V20);
++ c->dwarf.loc[UNW_AARCH64_V21] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V21);
++ c->dwarf.loc[UNW_AARCH64_V22] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V22);
++ c->dwarf.loc[UNW_AARCH64_V23] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V23);
++ c->dwarf.loc[UNW_AARCH64_V24] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V24);
++ c->dwarf.loc[UNW_AARCH64_V25] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V25);
++ c->dwarf.loc[UNW_AARCH64_V26] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V26);
++ c->dwarf.loc[UNW_AARCH64_V27] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V27);
++ c->dwarf.loc[UNW_AARCH64_V28] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V28);
++ c->dwarf.loc[UNW_AARCH64_V29] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V29);
++ c->dwarf.loc[UNW_AARCH64_V30] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V30);
++ c->dwarf.loc[UNW_AARCH64_V31] = DWARF_REG_LOC (&c->dwarf, UNW_AARCH64_V31);
+
+ for (i = UNW_AARCH64_PSTATE + 1; i < UNW_AARCH64_V0; ++i)
+ c->dwarf.loc[i] = DWARF_NULL_LOC;
@@ -2310,12 +2310,13 @@ index 0000000..eec07ea
+}
diff --git a/src/aarch64/is_fpreg.c b/src/aarch64/is_fpreg.c
new file mode 100644
-index 0000000..47f5cda
+index 0000000..7c32693
--- /dev/null
+++ b/src/aarch64/is_fpreg.c
-@@ -0,0 +1,31 @@
+@@ -0,0 +1,32 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2008 CodeSourcery
++ Copyright (C) 2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -2402,12 +2403,13 @@ index 0000000..81aa74f
+#define LINUX_SC_PSTATE_OFF 0x110
diff --git a/src/aarch64/regname.c b/src/aarch64/regname.c
new file mode 100644
-index 0000000..0599030
+index 0000000..8c97342
--- /dev/null
+++ b/src/aarch64/regname.c
-@@ -0,0 +1,105 @@
+@@ -0,0 +1,106 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2012 Tommi Rantala <tt.rantala@gmail.com>
++ Copyright (C) 2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -2531,12 +2533,13 @@ index 0000000..9985c4b
+#endif
diff --git a/src/aarch64/unwind_i.h b/src/aarch64/unwind_i.h
new file mode 100644
-index 0000000..78282f1
+index 0000000..e4947a3
--- /dev/null
+++ b/src/aarch64/unwind_i.h
-@@ -0,0 +1,42 @@
+@@ -0,0 +1,43 @@
+/* libunwind - a platform-independent unwind library
+ Copyright (C) 2008 CodeSourcery
++ Copyright (C) 2013 Linaro Limited
+
+This file is part of libunwind.
+
@@ -2594,10 +2597,18 @@ index bc360ad..9dc0904 100644
goto badreg;
#elif defined(UNW_TARGET_SH)
diff --git a/src/ptrace/_UPT_reg_offset.c b/src/ptrace/_UPT_reg_offset.c
-index 765f7d5..c12a05c 100644
+index 765f7d5..ced4896 100644
--- a/src/ptrace/_UPT_reg_offset.c
+++ b/src/ptrace/_UPT_reg_offset.c
-@@ -501,6 +501,41 @@ const int _UPT_reg_offset[UNW_REG_LAST + 1] =
+@@ -1,6 +1,7 @@
+ /* libunwind - a platform-independent unwind library
+ Copyright (C) 2003-2004 Hewlett-Packard Co
+ Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
++ Copyright (C) 2013 Linaro Limited
+
+ This file is part of libunwind.
+
+@@ -501,6 +502,41 @@ const int _UPT_reg_offset[UNW_REG_LAST + 1] =
[UNW_ARM_R15] = 0x3c,
#elif defined(UNW_TARGET_MIPS)
#elif defined(UNW_TARGET_SH)
@@ -2640,5 +2651,5 @@ index 765f7d5..c12a05c 100644
# error Fix me.
#endif
--
-1.8.1.2
+1.7.9.5