diff --git a/errata-1.4/bk_main.xml b/errata-1.4/bk_main.xml new file mode 100644 index 0000000..10660d3 --- /dev/null +++ b/errata-1.4/bk_main.xml @@ -0,0 +1,110 @@ + + + + + +]> + + + + OpenPOWER ELFv2 Errata + For ELFv2 ABI Version 1.4 + + + + + System Software Work Group + + syssw-chair@openpowerfoundation.org + + OpenPower Foundation + + + + 2018 + OpenPOWER Foundation + + Revision 1.0 + OpenPOWER + + + + + + + + + + Copyright details are filled in by the template. + + + + + + This document provides errata against version 1.4 of the + OpenPOWER ELF v2 Application Binary Interface Specification. These + errata should be considered part of said specification until such + time as a newer version of the full specification is published. + This document is a Non-standard Track, Work Group Note work + product owned by the System Software Workgroup and handled in compliance + with the requirements outlined in the OpenPOWER Foundation + Work Group (WG) Process document. It was created using the + Document Development Guide version + &template_version;. Comments, questions, etc. can be submitted to the + public mailing list for the parent specification at + syssw-elfv2abi@mailinglist.openpowerfoundation.org. + + + + + + 2018-02-05 + + + + Initial document creation + + + + + + + + + + + + + + + + + + + + + diff --git a/errata-1.4/ch_errata.xml b/errata-1.4/ch_errata.xml new file mode 100644 index 0000000..cf1dfde --- /dev/null +++ b/errata-1.4/ch_errata.xml @@ -0,0 +1,224 @@ + + + +Errata +The following statements in version 1.4 of the 64-Bit ELF V2 ABI +Specification for the Power Architecture are incorrect, and should be +considered corrected as specified. +
+ Section 2.1.2.2, Fundamental Types + + Problem: Paragraph 2 contains a + statement that makes use of undefined behavior according to the C standard. + + +
+ + Regardless of the alignment rules for the allocation of data types, + pointers to both aligned and unaligned data of each data type shall + return the value corresponding to a data type starting at the specified + address when accessed with either the pointer dereference operator * or + the array reference operator [ ]. + +
+
+ + Resolution: Paragraph 2 is stricken + from the ABI. + +
+
+ Section 6.1, Vector Data Types + + Problem 1: The following sentence + likewise makes use of undefined behavior according to the C standard. + + +
+ + While the preferred alignment for vector data types is a multiple of 16 + bytes, pointers may point to vector objects at an arbitrary alignment. + +
+
+ + As stated in Table 2.12, Vector Types, all vector + types have quadword alignment; there is no "preferred" alignment. + + + Resolution 1: The offending sentence + is stricken from the ABI. + + + Problem 2: This section contains + another sentence and an example that likewise make use of undefined + behavior according to the C standard. The offending sentence reads: + + +
+ + The use of vector built-in functions such as vec_xl and vec_xst is + discouraged except for languages where no dereference operators are + available. + +
+
+ + The offending example appears directly afterwards. + + + Resolution 2: The offending sentence + is replaced as follows: + + +
+ + The dereference operator * may not be used to + access data that is not aligned at least to a quadword boundary. + Built-in functions such as vec_xl and vec_xst are provided for + unaligned data access. + +
+
+ + The offending example is stricken from the ABI. + +
+
+ Section 6.4, Vector Built-In Functions + + Problem 1: The Note following + Table 6.1 likewise encourages undefined behavior (in this context): + + +
+ + Reminder: The assignment operator = is the preferred way to assign + values from one vector data type to another vector data type in + accordance with the C and C++ programming languages. + +
+
+ + Resolution 1: The Note is + stricken from the ABI. + + + Problem 2: The paragraph following + Table 6.2 ends with the following sentence that likewise encourages + undefined behavior: + + +
+ + It is recommended that programmers use the assignment operator = + or the vector vec_xl and vec_xst vector built-in functions to access + unaligned data streams. + +
+
+ + Resolution 2: This sentence is + replaced as follows: + + +
+ + It is recommended that programmers use the vec_xl and vec_xst + vector built-in functions to access unaligned data streams. + +
+
+ + Problem 3: The first sentence of + the second paragraph following Table 6.2 wrongly identifies vec_xl and + vec_xst as optional built-ins: + + +
+ + The set of extended mnemonics in Table 6.3, "Optional Built-In Memory + Access Functions" [127] may be provided by some compilers and are not + required by the Power SIMD programming interfaces. + +
+
+ + The title of Table 6.3 likewise calls these optional. + + + Resolution 3: The title of Table + 6.3 is changed to "VSX Memory Access Built-In Functions", and this + sentence is replaced as follows: + + +
+ + The built-in functions in Table 6.3, "VSX Memory Access Built-In + Functions" [127] provide unaligned access to data in memory that + is to be copied to or from a variable having vector data type. + +
+
+ + Problem 4: The second paragraph + following Table 6.2 contains one sentence that likewise encourages + undefined behavior, and another sentence that is simply incorrect: + + +
+ + In particular, the assignment operator = will have the same effect + of copying values between vector data types and provides a preferable + method to assign values while giving the compiler more freedom to + optimize data allocation. The only use for these functions is to + support some coding patterns enabling big-endian vector layout code + sequences in both big-endian and little-endian environments. + +
+
+ + The second sentence applies to functions in table 6.4, not 6.3. + + + Resolution 4: The offending + sentences are stricken from the ABI. + +
+
+ + Section 6.4.1, Big-Endian Vector Layout in Little-Endian Environments + + + Problem: Table 6.8, and the + sentence preceding it, wrongly identify the vec_xl and vec_xst + built-in functions as optional. + + +
+ + See Table 6.8, "Optional Built-In Memory Access Functions (BE Layout + in LE Mode)" [129]. + +
+
+ + Resolution: Table 6.8 is renamed + "VSX Built-In Memory Access Functions (BE Layout in LE Mode)" and + referenced thus in the preceding sentence. + +
+
diff --git a/errata-1.4/pom.xml b/errata-1.4/pom.xml new file mode 100644 index 0000000..18c87d4 --- /dev/null +++ b/errata-1.4/pom.xml @@ -0,0 +1,156 @@ + + + + + + org.openpowerfoundation.docs + workgroup-pom + 1.0.0-SNAPSHOT + ../pom.xml + + 4.0.0 + + elfv2-1_4-errata + + jar + + OpenPOWER ELFv2 ABI 1.4 Errata + + + + + 0 + + + + + + + + + org.openpowerfoundation.docs + + openpowerdocs-maven-plugin + + + + generate-webhelp + + generate-webhelp + + generate-sources + + + ${comments.enabled} + openpower-template-guide + 1 + UA-17511903-1 + + appendix toc,title + article/appendix nop + article toc,title + book toc,title,figure,table,example,equation + book/appendix nop + book/chapter nop + chapter toc,title + chapter/section nop + section toc + part toc,title + reference toc,title + set toc,title + + + 1 + 3 + 1 + + elfv2-1_4-errata + + elfv2-1_4-errata + + + workgroupNotes + + + + + + workgroupConfidential + + + + + draft + + + + + + + + + true + . + + bk_main.xml + + + + + ${basedir}/../glossary/glossary-terms.xml + 1 + www.openpowerfoundation.org + + + + + diff --git a/pom.xml b/pom.xml index 2c3f051..daf2050 100644 --- a/pom.xml +++ b/pom.xml @@ -18,5 +18,6 @@ specification + errata-1.4