@ -57,8 +57,7 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
<para>A specific OpenPOWER-compliant processor implementation must
<para>A specific OpenPOWER-compliant processor implementation must
state which type of byte ordering is to be used.</para>
state which type of byte ordering is to be used.</para>
<note>
<note>
<para>MSR[LE
<para>MSR[LE|SLE]: Although it may be possible to modify the
<emphasis>|</emphasis> SLE]: Although it may be possible to modify the
active byte ordering of an application process that uses
active byte ordering of an application process that uses
application-accessible configuration controls or that uses system
application-accessible configuration controls or that uses system
calls on some systems, applications that change active byte ordering
calls on some systems, applications that change active byte ordering
@ -2547,7 +2546,7 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
</entry>
</entry>
<entry>
<entry>
<para>Vector of 16 bytes with a value of either 0 or 2
<para>Vector of 16 bytes with a value of either 0 or 2
<emphasis>8</emphasis>- 1.</para>
<superscript>8</superscript>- 1.</para>
</entry>
</entry>
</row>
</row>
<row>
<row>
@ -2599,7 +2598,7 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
</entry>
</entry>
<entry>
<entry>
<para>Vector of 8 halfwords with a value of either 0 or 2
<para>Vector of 8 halfwords with a value of either 0 or 2
<emphasis>16</emphasis>- 1.</para>
<superscript>16</superscript>- 1.</para>
</entry>
</entry>
</row>
</row>
<row>
<row>
@ -2651,7 +2650,7 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
</entry>
</entry>
<entry>
<entry>
<para>Vector of 4 words with a value of either 0 or 2
<para>Vector of 4 words with a value of either 0 or 2
<emphasis>32</emphasis>- 1.</para>
<superscript>32</superscript>- 1.</para>
</entry>
</entry>
</row>
</row>
<row>
<row>
@ -2713,7 +2712,7 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
</entry>
</entry>
<entry>
<entry>
<para>Vector of 2 doublewords with a value of either 0 or 2
<para>Vector of 2 doublewords with a value of either 0 or 2
<emphasis>64</emphasis>- 1.</para>
<superscript>64</superscript>- 1.</para>
</entry>
</entry>
</row>
</row>
<row revisionflag="changed">
<row revisionflag="changed">
@ -3141,8 +3140,8 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
<listitem>
<listitem>
<para>IBM EXTENDED PRECISION form provides the same range as double
<para>IBM EXTENDED PRECISION form provides the same range as double
precision (about 10
precision (about 10
<emphasis>-308</emphasis> to 10
<superscript>-308</superscript> to 10
<emphasis>308</emphasis>) but more precision (a variable amount,
<superscript>308</superscript>) but more precision (a variable amount,
about 31 decimal digits or more).</para>
about 31 decimal digits or more).</para>
</listitem>
</listitem>
<listitem>
<listitem>
@ -3322,9 +3321,9 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
union where the number of bits in the bit field is specified.</para>
union where the number of bits in the bit field is specified.</para>
<para>In
<para>In
<xref linkend="dbdoclet.50655240_47126" />, a signed range goes from -2
<xref linkend="dbdoclet.50655240_47126" />, a signed range goes from -2
<emphasis>w - 1</emphasis> to 2
<superscript>w - 1</superscript> to 2
<emphasis>w - 1</emphasis>- 1 and an unsigned range goes from 0 to 2
<superscript>w - 1</superscript>- 1 and an unsigned range goes from 0 to 2
<emphasis>w</emphasis>- 1.</para>
<superscript>w</superscript>- 1.</para>
<table frame="all" pgwide="1" xml:id="dbdoclet.50655240_47126">
<table frame="all" pgwide="1" xml:id="dbdoclet.50655240_47126">
<title>Bit Field Types</title>
<title>Bit Field Types</title>
@ -4060,7 +4059,7 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
functions use these conventions, except as documented for the register save
functions use these conventions, except as documented for the register save
and restore functions.</para>
and restore functions.</para>
<para>The conventions given in this section are adhered to by C programs.
<para>The conventions given in this section are adhered to by C programs.
For more information about the implementation of C, See
For more information about the implementation of C, See https://apps.na.collabserv.com/meetings/join?id=2897-3986
<xref linkend="dbdoclet.50655240___RefHeading___Toc377640591" />.</para>
<xref linkend="dbdoclet.50655240___RefHeading___Toc377640591" />.</para>
<note>
<note>
<para>While it is recommended that all functions use the standard
<para>While it is recommended that all functions use the standard
@ -4479,7 +4478,7 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
<para>This ABI requires OpenPOWER-compliant processors to implement
<para>This ABI requires OpenPOWER-compliant processors to implement
<emphasis role="bold">mfocr</emphasis> instructions in a manner that initializes
<emphasis role="bold">mfocr</emphasis> instructions in a manner that initializes
undefined bits of the RT result register of
undefined bits of the RT result register of
<emphasis>mfocr</emphasis> instructions to one of the following
<emphasis role="bold">mfocr</emphasis> instructions to one of the following
values:</para>
values:</para>
<itemizedlist>
<itemizedlist>
<listitem>
<listitem>
@ -4498,23 +4497,23 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
<emphasis role="bold">mfocr</emphasis> instruction, the POWER8 processor does not
<emphasis role="bold">mfocr</emphasis> instruction, the POWER8 processor does not
implement the behavior described in the "Fixed-Point Invalid Forms
implement the behavior described in the "Fixed-Point Invalid Forms
and Undefined Conditions" section of
and Undefined Conditions" section of
<emphasis>POWER8 Processor User's Manual for the Single-Chip
<citetitle>POWER8 Processor User's Manual for the Single-Chip
Module</emphasis>. Instead, it replicates the selected condition
Module</citetitle>. Instead, it replicates the selected condition
register field within the byte that contains it rather than
register field within the byte that contains it rather than
initializing to 0 the bits corresponding to the nonselected bits of
initializing to 0 the bits corresponding to the nonselected bits of
the byte that contains it. When generating code to save two condition
the byte that contains it. When generating code to save two condition
register fields that are stored in the same byte, the compiler must
register fields that are stored in the same byte, the compiler must
mask the value received from
mask the value received from
<emphasis>mfocr</emphasis> to avoid corruption of the resulting
<emphasis role="bold">mfocr</emphasis> to avoid corruption of the resulting
(partial) condition register word.</para>
(partial) condition register word.</para>
<para>This erratum does not apply to the POWER9 processor.</para>
<para>This erratum does not apply to the POWER9 processor.</para>
<para>
<para>
<anchor xml:id="dbdoclet.50655240_Power-ISA-version-and-the-user-s-manual"
<anchor xml:id="dbdoclet.50655240_Power-ISA-version-and-the-user-s-manual"
xreflabel="" /> For more information, see
xreflabel="" /> For more information, see
<emphasis>Power ISA</emphasis>, version 3.0 and "Fixed-Point Invalid
<citetitle>Power ISA</citetitle>, version 3.0 and "Fixed-Point Invalid
Forms and Undefined Conditions" in
Forms and Undefined Conditions" in
<emphasis>POWER9 Processor User's Manual.</emphasis></para>
<citetitle>POWER9 Processor User's Manual.</citetitle></para>
<para>
<para>
<anchor xml:id="dbdoclet.50655240_page33" xreflabel="" /> In
<anchor xml:id="dbdoclet.50655240_page33" xreflabel="" /> In
OpenPOWER-compliant processors, floating-point and vector functions are
OpenPOWER-compliant processors, floating-point and vector functions are
@ -4574,10 +4573,10 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
</entry>
</entry>
<entry nameend="c3" namest="c2" align="center">
<entry nameend="c3" namest="c2" align="center">
<para>
<para>
<emphasis>...</emphasis>
<emphasis role="bold">...</emphasis>
</para>
</para>
<para>
<para>
<emphasis>...</emphasis>
<emphasis role="bold">...</emphasis>
</para>
</para>
</entry>
</entry>
<entry nameend="c5" namest="c4" colsep="1">
<entry nameend="c5" namest="c4" colsep="1">
@ -4646,10 +4645,10 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
<?dbhtml bgcolor="#EEEEEE" ?>
<?dbhtml bgcolor="#EEEEEE" ?>
<?dbfo bgcolor="#EEEEEE" ?>
<?dbfo bgcolor="#EEEEEE" ?>
<para>
<para>
<emphasis>...</emphasis>
<emphasis role="bold">...</emphasis>
</para>
</para>
<para>
<para>
<emphasis>...</emphasis>
<emphasis role="bold">...</emphasis>
</para>
</para>
</entry>
</entry>
<entry rowsep="0"></entry>
<entry rowsep="0"></entry>
@ -4735,10 +4734,10 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
</entry>
</entry>
<entry nameend="c3" namest="c2" align="center">
<entry nameend="c3" namest="c2" align="center">
<para>
<para>
<emphasis>...</emphasis>
<emphasis role="bold">...</emphasis>
</para>
</para>
<para>
<para>
<emphasis>...</emphasis>
<emphasis role="bold">...</emphasis>
</para>
</para>
<?dbhtml bgcolor="#EEEEEE" ?>
<?dbhtml bgcolor="#EEEEEE" ?>
<?dbfo bgcolor="#EEEEEE" ?>
<?dbfo bgcolor="#EEEEEE" ?>
@ -4792,10 +4791,10 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
</entry>
</entry>
<entry nameend="c3" namest="c2" align="center">
<entry nameend="c3" namest="c2" align="center">
<para>
<para>
<emphasis>...</emphasis>
<emphasis role="bold">...</emphasis>
</para>
</para>
<para>
<para>
<emphasis>...</emphasis>
<emphasis role="bold">...</emphasis>
</para>
</para>
</entry>
</entry>
<entry rowsep="0"></entry>
<entry rowsep="0"></entry>
@ -5552,7 +5551,7 @@ xml:id="dbdoclet.50655240_pgfId-1156194">
caller to determine the called function's characteristics (for
caller to determine the called function's characteristics (for
example, functions in C without a prototype in scope, in accordance
example, functions in C without a prototype in scope, in accordance
with Brian Kernighan and Dennis Ritche,
with Brian Kernighan and Dennis Ritche,
<emphasis>The C Programming Language</emphasis>, 1st
<citetitle>The C Programming Language</citetitle>, 1st
edition).</para>
edition).</para>
</listitem>
</listitem>
</itemizedlist>
</itemizedlist>
@ -6727,10 +6726,10 @@ addi r2, r2, .TOC.@l</programlisting>
</itemizedlist>
</itemizedlist>
<para>This ABI shall be used in conjunction with the Power Architecture
<para>This ABI shall be used in conjunction with the Power Architecture
that implements the
that implements the
<emphasis>mfocrf</emphasis> architecture level. Further,
<emphasis role="bold">mfocrf</emphasis> architecture level. Further,
OpenPOWER-compliant processors shall implement implementation-defined
OpenPOWER-compliant processors shall implement implementation-defined
bits in a manner to allow the combination of multiple
bits in a manner to allow the combination of multiple
<emphasis>mfocrf</emphasis> results with an OR instruction; for example,
<emphasis role="bold">mfocrf</emphasis> results with an OR instruction; for example,
to yield a word in r0 including all three preserved CRs as
to yield a word in r0 including all three preserved CRs as
follows:</para>
follows:</para>
<programlisting>mfocrf r0, crf2
<programlisting>mfocrf r0, crf2
@ -6741,7 +6740,7 @@ or r0, r0, r1</programlisting>
<para>Specifically, this allows each OpenPOWER-compliant processor
<para>Specifically, this allows each OpenPOWER-compliant processor
implementation to set each field to hold either 0 or the correct
implementation to set each field to hold either 0 or the correct
in-order value of the corresponding CR field at the point where the
in-order value of the corresponding CR field at the point where the
<emphasis>mfocrf</emphasis> instruction is performed.</para>
<emphasis role="bold">mfocrf</emphasis> instruction is performed.</para>
<para> </para>
<para> </para>
<bridgehead>Assembly Language Syntax for Defining Entry
<bridgehead>Assembly Language Syntax for Defining Entry
Points</bridgehead>
Points</bridgehead>
@ -7522,7 +7521,7 @@ stw r0,0,(r7)</programlisting>
</listitem>
</listitem>
</itemizedlist>
</itemizedlist>
<para>If the instruction using symbol@got@
<para>If the instruction using symbol@got@
<emphasis>l</emphasis> has a signed immediate operand (for example,
<emphasis role="bold">l</emphasis> has a signed immediate operand (for example,
addi), use symbol@got@
addi), use symbol@got@
<emphasis role="bold">ha</emphasis>(high adjusted) for the high part of the offset.
<emphasis role="bold">ha</emphasis>(high adjusted) for the high part of the offset.
If it has an unsigned immediate operand (for example, ori), use
If it has an unsigned immediate operand (for example, ori), use