summaryrefslogtreecommitdiffstats
path: root/src/backends/ia64_regs.c
diff options
context:
space:
mode:
authorChih-hung Hsieh <chh@google.com>2015-09-25 14:51:48 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-09-25 14:51:48 +0000
commitb0121c5547604527aaeea297b54047cd14b234df (patch)
tree7d9031ee3d5796de4a1825892fc6e04ba6e36ae2 /src/backends/ia64_regs.c
parentd03895cf5f8b77c6a85abcd84ea0d80ff56be846 (diff)
parent5eafdf0f9bfd9a3c5f93414ac16bb399b6da0b7f (diff)
downloadandroid_external_elfutils-b0121c5547604527aaeea297b54047cd14b234df.tar.gz
android_external_elfutils-b0121c5547604527aaeea297b54047cd14b234df.tar.bz2
android_external_elfutils-b0121c5547604527aaeea297b54047cd14b234df.zip
Merge "Move files up to match upstream source structure."
Diffstat (limited to 'src/backends/ia64_regs.c')
-rw-r--r--src/backends/ia64_regs.c273
1 files changed, 0 insertions, 273 deletions
diff --git a/src/backends/ia64_regs.c b/src/backends/ia64_regs.c
deleted file mode 100644
index a27fe63d..00000000
--- a/src/backends/ia64_regs.c
+++ /dev/null
@@ -1,273 +0,0 @@
-/* Register names and numbers for IA64 DWARF.
- Copyright (C) 2006 Red Hat, 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 <string.h>
-#include <dwarf.h>
-
-#define BACKEND i386_
-#include "libebl_CPU.h"
-
-ssize_t
-ia64_register_info (Ebl *ebl __attribute__ ((unused)),
- int regno, char *name, size_t namelen,
- const char **prefix, const char **setname,
- int *bits, int *type)
-{
- if (name == NULL)
- return 687 + 64;
-
- if (regno < 0 || regno > 687 + 63 || namelen < 12)
- return -1;
-
- *prefix = "ar.";
- *setname = "application";
- *bits = 64;
- *type = DW_ATE_signed;
- switch (regno)
- {
- case 0 ... 9:
- name[0] = 'r';
- name[1] = (regno - 0) + '0';
- namelen = 2;
- *setname = "integer";
- *prefix = "";
- break;
-
- case 10 ... 99:
- name[0] = 'r';
- name[1] = (regno - 0) / 10 + '0';
- name[2] = (regno - 0) % 10 + '0';
- namelen = 3;
- *setname = "integer";
- *prefix = "";
- break;
-
- case 100 ... 127:
- name[0] = 'r';
- name[1] = '1';
- name[2] = (regno - 100) / 10 + '0';
- name[3] = (regno - 0) % 10 + '0';
- namelen = 4;
- *setname = "integer";
- *prefix = "";
- break;
-
- case 128 + 0 ... 128 + 9:
- name[0] = 'f';
- name[1] = (regno - 128) + '0';
- namelen = 2;
- *type = DW_ATE_float;
- *bits = 128;
- *setname = "FPU";
- *prefix = "";
- break;
-
- case 128 + 10 ... 128 + 99:
- name[0] = 'f';
- name[1] = (regno - 128) / 10 + '0';
- name[2] = (regno - 128) % 10 + '0';
- namelen = 3;
- *setname = "FPU";
- *prefix = "";
- break;
-
- case 128 + 100 ... 128 + 127:
- name[0] = 'f';
- name[1] = '1';
- name[2] = (regno - 128 - 100) / 10 + '0';
- name[3] = (regno - 128) % 10 + '0';
- namelen = 4;
- *type = DW_ATE_float;
- *bits = 128;
- *setname = "FPU";
- *prefix = "";
- break;
-
- case 320 + 0 ... 320 + 7:
- name[0] = 'b';
- name[1] = (regno - 320) + '0';
- namelen = 2;
- *type = DW_ATE_address;
- *setname = "branch";
- *prefix = "";
- break;
-
- case 328 ... 333:
- {
- static const char named_special[][5] =
- {
- "vfp", "vrap", "pr", "ip", "psr", "cfm"
- };
- *setname = "special";
- *prefix = "";
- *type = regno == 331 ? DW_ATE_address : DW_ATE_unsigned;
- return stpcpy (name, named_special[regno - 328]) + 1 - name;
- }
-
- case 590:
- *setname = "special";
- *prefix = "";
- *type = DW_ATE_unsigned;
- return stpcpy (name, "bof") + 1 - name;
-
- case 334 + 0 ... 334 + 7:
- name[0] = 'k';
- name[1] = 'r';
- name[2] = (regno - 334) + '0';
- namelen = 3;
- *prefix = "";
- break;
-
- case 334 + 8 ... 334 + 127:
- {
- static const char named_ar[][9] =
- {
- [16 - 8] = "rsc",
- [17 - 8] = "bsp",
- [18 - 8] = "bspstore",
- [19 - 8] = "rnat",
- [21 - 8] = "fcr",
- [24 - 8] = "eflag",
- [25 - 8] = "csd",
- [26 - 8] = "ssd",
- [27 - 8] = "cflg",
- [28 - 8] = "fsr",
- [29 - 8] = "fir",
- [30 - 8] = "fdr",
- [32 - 8] = "ccv",
- [36 - 8] = "unat",
- [40 - 8] = "fpsr",
- [44 - 8] = "itc",
- [64 - 8] = "pfs",
- [65 - 8] = "lc",
- [66 - 8] = "ec",
- };
- const size_t idx = regno - (334 + 8);
- *type = DW_ATE_unsigned;
- if (idx == 1 || idx == 2)
- *type = DW_ATE_address;
- if (idx < sizeof named_ar / sizeof named_ar[0]
- && named_ar[idx][0] != '\0')
- return stpcpy (name, named_ar[idx]) + 1 - name;
-
- name[0] = 'a';
- name[1] = 'r';
- switch (regno - 334)
- {
- case 0 ... 9:
- name[2] = (regno - 334) + '0';
- namelen = 3;
- break;
- case 10 ... 99:
- name[2] = (regno - 334) / 10 + '0';
- name[3] = (regno - 334) % 10 + '0';
- namelen = 4;
- break;
- case 100 ... 127:
- name[2] = '1';
- name[3] = (regno - 334 - 100) / 10 + '0';
- name[4] = (regno - 334) % 10 + '0';
- namelen = 5;
- break;
- }
- *prefix = "";
- break;
- }
-
- case 462 + 0 ... 462 + 9:
- name[0] = 'n';
- name[1] = 'a';
- name[2] = 't';
- name[3] = (regno - 462) + '0';
- namelen = 4;
- *setname = "NAT";
- *type = DW_ATE_boolean;
- *bits = 1;
- *prefix = "";
- break;
-
- case 462 + 10 ... 462 + 99:
- name[0] = 'n';
- name[1] = 'a';
- name[2] = 't';
- name[3] = (regno - 462) / 10 + '0';
- name[4] = (regno - 462) % 10 + '0';
- namelen = 5;
- *setname = "NAT";
- *type = DW_ATE_boolean;
- *bits = 1;
- *prefix = "";
- break;
-
- case 462 + 100 ... 462 + 127:
- name[0] = 'n';
- name[1] = 'a';
- name[2] = 't';
- name[3] = '1';
- name[4] = (regno - 462 - 100) / 10 + '0';
- name[5] = (regno - 462) % 10 + '0';
- namelen = 6;
- *setname = "NAT";
- *type = DW_ATE_boolean;
- *bits = 1;
- *prefix = "";
- break;
-
- case 687 + 0 ... 687 + 9:
- name[0] = 'p';
- name[1] = (regno - 687) + '0';
- namelen = 2;
- *setname = "predicate";
- *type = DW_ATE_boolean;
- *bits = 1;
- *prefix = "";
- break;
-
- case 687 + 10 ... 687 + 63:
- name[0] = 'p';
- name[1] = (regno - 687) / 10 + '0';
- name[2] = (regno - 687) % 10 + '0';
- namelen = 3;
- *setname = "predicate";
- *type = DW_ATE_boolean;
- *bits = 1;
- *prefix = "";
- break;
-
- default:
- *setname = NULL;
- return 0;
- }
-
- name[namelen++] = '\0';
- return namelen;
-}