summaryrefslogtreecommitdiff
path: root/elfcpp
diff options
context:
space:
mode:
Diffstat (limited to 'elfcpp')
-rw-r--r--elfcpp/ChangeLog5
-rw-r--r--elfcpp/powerpc.h26
2 files changed, 31 insertions, 0 deletions
diff --git a/elfcpp/ChangeLog b/elfcpp/ChangeLog
index d031d1b263..fa33bf16df 100644
--- a/elfcpp/ChangeLog
+++ b/elfcpp/ChangeLog
@@ -1,3 +1,8 @@
+2018-07-06 Alan Modra <amodra@gmail.com>
+
+ * powerpc.h (Tag_GNU_Power_ABI_FP): Define.
+ (Tag_GNU_Power_ABI_Vector, Tag_GNU_Power_ABI_Struct_Return): Define.
+
2018-06-24 Nick Clifton <nickc@redhat.com>
2.31 branch created.
diff --git a/elfcpp/powerpc.h b/elfcpp/powerpc.h
index 71de45970f..5996691602 100644
--- a/elfcpp/powerpc.h
+++ b/elfcpp/powerpc.h
@@ -230,6 +230,32 @@ enum
EF_PPC64_ABI = 3
};
+// Object attribute tags. 0-3 are generic.
+enum
+{
+ // FP ABI, low 2 bits:
+ // 1 for double precision hard-float,
+ // 2 for soft-float,
+ // 3 for single precision hard-float.
+ // 0 for not tagged or not using any ABIs affected by the differences.
+ // Next 2 bits:
+ // 1 for ibm long double
+ // 2 for 64-bit long double
+ // 3 for IEEE long double.
+ // 0 for not tagged or not using any ABIs affected by the differences.
+ Tag_GNU_Power_ABI_FP = 4,
+
+ // Value 1 for general purpose registers only, 2 for AltiVec
+ // registers, 3 for SPE registers; 0 for not tagged or not using any
+ // ABIs affected by the differences.
+ Tag_GNU_Power_ABI_Vector = 8,
+
+ // Value 1 for ABIs using r3/r4 for returning structures <= 8 bytes,
+ // 2 for ABIs using memory; 0 for not tagged or not using any ABIs
+ // affected by the differences.
+ Tag_GNU_Power_ABI_Struct_Return = 12
+};
+
// DT_PPC_OPT bits
enum
{