From 96e38289f2887ddb8e6d2fb91ea04bdbdf034ab5 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Wed, 21 Aug 2019 17:00:30 +0800
Subject: [PATCH 2/2] mips_cfi

Upstream-Status: Pending [from debian]

Rebase to 0.177

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
 backends/Makefile.am |  2 +-
 backends/mips_cfi.c  | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 backends/mips_init.c |  1 +
 3 files changed, 82 insertions(+), 1 deletion(-)
 create mode 100644 backends/mips_cfi.c

diff --git a/backends/Makefile.am b/backends/Makefile.am
index aba8a4a..6ac0eec 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -145,7 +145,7 @@ csky_SRCS = csky_attrs.c csky_init.c csky_symbol.c csky_cfi.c \
 libebl_csky_pic_a_SOURCES = $(csky_SRCS)
 am_libebl_csky_pic_a_OBJECTS = $(csky_SRCS:.c=.os)
 
-mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c
+mips_SRCS = mips_init.c mips_symbol.c mips_regs.c mips_retval.c mips_cfi.c
 libebl_mips_pic_a_SOURCES = $(mips_SRCS)
 am_libebl_mips_pic_a_OBJECTS = $(mips_SRCS:.c=.os)
 
diff --git a/backends/mips_cfi.c b/backends/mips_cfi.c
new file mode 100644
index 0000000..9ffdab5
--- /dev/null
+++ b/backends/mips_cfi.c
@@ -0,0 +1,80 @@
+/* MIPS ABI-specified defaults for DWARF CFI.
+   Copyright (C) 2018 Kurt Roeckx, Inc.
+   This file is part of elfutils.
+
+   This file is free software; you can redistribute it and/or modify
+   it under the terms of either
+
+     * the GNU Lesser General Public License as published by the Free
+       Software Foundation; either version 3 of the License, or (at
+       your option) any later version
+
+   or
+
+     * the GNU General Public License as published by the Free
+       Software Foundation; either version 2 of the License, or (at
+       your option) any later version
+
+   or both in parallel, as here.
+
+   elfutils is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received copies of the GNU General Public License and
+   the GNU Lesser General Public License along with this program.  If
+   not, see <http://www.gnu.org/licenses/>.  */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <dwarf.h>
+
+#define BACKEND mips_
+#include "libebl_CPU.h"
+
+int
+mips_abi_cfi (Ebl *ebl __attribute__ ((unused)), Dwarf_CIE *abi_info)
+{
+  static const uint8_t abi_cfi[] =
+    {
+      /* Call-saved regs.  */
+      DW_CFA_same_value, ULEB128_7 (16), /* $16 */
+      DW_CFA_same_value, ULEB128_7 (17), /* $17 */
+      DW_CFA_same_value, ULEB128_7 (18), /* $18 */
+      DW_CFA_same_value, ULEB128_7 (19), /* $19 */
+      DW_CFA_same_value, ULEB128_7 (20), /* $20 */
+      DW_CFA_same_value, ULEB128_7 (21), /* $21 */
+      DW_CFA_same_value, ULEB128_7 (22), /* $22 */
+      DW_CFA_same_value, ULEB128_7 (23), /* $23 */
+      DW_CFA_same_value, ULEB128_7 (28), /* $28 */
+      DW_CFA_same_value, ULEB128_7 (29), /* $29 */
+      DW_CFA_same_value, ULEB128_7 (30), /* $30 */
+
+      DW_CFA_same_value, ULEB128_7 (52), /* $f20 */
+      DW_CFA_same_value, ULEB128_7 (53), /* $f21 */
+      DW_CFA_same_value, ULEB128_7 (54), /* $f22 */
+      DW_CFA_same_value, ULEB128_7 (55), /* $f23 */
+      DW_CFA_same_value, ULEB128_7 (56), /* $f24 */
+      DW_CFA_same_value, ULEB128_7 (57), /* $f25 */
+      DW_CFA_same_value, ULEB128_7 (58), /* $f26 */
+      DW_CFA_same_value, ULEB128_7 (59), /* $f27 */
+      DW_CFA_same_value, ULEB128_7 (60), /* $f28 */
+      DW_CFA_same_value, ULEB128_7 (61), /* $f29 */
+      DW_CFA_same_value, ULEB128_7 (62), /* $f30 */
+      DW_CFA_same_value, ULEB128_7 (63), /* $f31 */
+
+      /* The CFA is the SP.  */
+      DW_CFA_def_cfa, ULEB128_7 (29), ULEB128_7 (0),
+    };
+
+  abi_info->initial_instructions = abi_cfi;
+  abi_info->initial_instructions_end = &abi_cfi[sizeof abi_cfi];
+  abi_info->data_alignment_factor = 4;
+
+  abi_info->return_address_register = 31; /* $31 */
+
+  return 0;
+}
diff --git a/backends/mips_init.c b/backends/mips_init.c
index 8482e7f..bce5abe 100644
--- a/backends/mips_init.c
+++ b/backends/mips_init.c
@@ -50,6 +50,7 @@ mips_init (Elf *elf __attribute__ ((unused)),
   HOOK (eh, reloc_simple_type);
   HOOK (eh, return_value_location);
   HOOK (eh, register_info);
+  HOOK (eh, abi_cfi);
 
   return MODVERSION;
 }
-- 
2.7.4

