summaryrefslogtreecommitdiffstats
path: root/backends
diff options
context:
space:
mode:
authorMark Wielaard <mark@klomp.org>2017-02-15 14:30:27 +0100
committerMark Wielaard <mark@klomp.org>2017-03-24 17:34:33 +0100
commitb1042ce216eaef96099f263fb81141dbdec004fd (patch)
tree07692fa3099233546ab9e1415a03ea599c08767b /backends
parente22cc80923f94e54c9384421904461958899db5b (diff)
backends: Add support for EM_PPC64 GNU_ATTRIBUTES.
ppc64 and ppc64le ELF files can also contain a power specific .gnu.attributes section. Add support for those and recognize the new GNU_Power_ABI_FP Single-precision hard float value. Signed-off-by: Mark Wielaard <mark@klomp.org>
Diffstat (limited to 'backends')
-rw-r--r--backends/ChangeLog6
-rw-r--r--backends/ppc64_init.c1
-rw-r--r--backends/ppc_attrs.c1
3 files changed, 8 insertions, 0 deletions
diff --git a/backends/ChangeLog b/backends/ChangeLog
index 1c561b50..39390cb8 100644
--- a/backends/ChangeLog
+++ b/backends/ChangeLog
@@ -1,3 +1,9 @@
+2017-02-15 Mark Wielaard <mark@klomp.org>
+
+ * ppc64_init.c (ppc64_init): Add check_object_attribute HOOK.
+ * ppc_attrs.c (ppc_check_object_attribute): Add Single-precision hard
+ float.
+
2016-11-02 Mark Wielaard <mjw@redhat.com>
* i386_regs.c (i386_register_info): Add fallthrough comment.
diff --git a/backends/ppc64_init.c b/backends/ppc64_init.c
index 2ba82327..11d3a77f 100644
--- a/backends/ppc64_init.c
+++ b/backends/ppc64_init.c
@@ -67,6 +67,7 @@ ppc64_init (Elf *elf __attribute__ ((unused)),
HOOK (eh, syscall_abi);
HOOK (eh, core_note);
HOOK (eh, auxv_info);
+ HOOK (eh, check_object_attribute);
HOOK (eh, abi_cfi);
/* gcc/config/ #define DWARF_FRAME_REGISTERS. */
eh->frame_nregs = (114 - 1) + 32;
diff --git a/backends/ppc_attrs.c b/backends/ppc_attrs.c
index 612c5769..48d7129d 100644
--- a/backends/ppc_attrs.c
+++ b/backends/ppc_attrs.c
@@ -51,6 +51,7 @@ ppc_check_object_attribute (Ebl *ebl __attribute__ ((unused)),
"Hard or soft float",
"Hard float",
"Soft float",
+ "Single-precision hard float",
};
if (value < sizeof fp_kinds / sizeof fp_kinds[0])
*value_name = fp_kinds[value];