IBM Support

IV11642: INCORRECT DFP INSTRUCTION IN -QLIST

Fixes are available

April 2012 PTF for XL C for AIX, V11.1
April 2012 PTF for XL C/C++ for AIX, V11.1
July 2012 PTF for XL C/C++ for AIX, V11.1
October 2012 PTF for XL C/C++ for AIX, V11.1
October 2012 PTF for XL C for AIX, V11.1
February 2013 PTF for XL C for AIX, V11.1
February 2013 PTF for XL C/C++ for AIX, V11.1
XL C/C++ for AIX Fix Pack 14 (May 2013 PTF) for 11.1
XL C for AIX Fix Pack 14 (May 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 15 (August 2013 PTF) for 11.1
XL C for AIX Fix Pack 15 (August 2013 PTF) for 11.1
XL C/C++ for AIX Fix Pack 16 (November 2013 PTF) for 11.1
XL C for AIX Fix Pack 17 (February 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 17 (February 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 18 (May 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 19 (August 2014 PTF) for 11.1
XL C/C++ for AIX Fix Pack 20 (November 2014 PTF) for 11.1
XL C for AIX Fix Pack 21 (April 2015 PTF) for 11.1
XL C/C++ for AIX Fix Pack 21 (April 2015 PTF) for 11.1
XL C/C++ for AIX Fix Pack 22 (September 2015 PTF) for 11.1
XL C for AIX Fix Pack 23 (March 2016 PTF) for 11.1
XL C/C++ for AIX Fix Pack 23 (March 2016 PTF) for 11.1
XL C for AIX Fix Pack 24 (September 2016 PTF) for 11.1
XL C/C++ for AIX Fix Pack 24 (September 2016 PTF) for 11.1
July 2012 PTF for XL C for AIX, V11.1
XL C for AIX Fix Pack 16 (November 2013 PTF) for 11.1
XL C for AIX Fix Pack 18 (May 2014 PTF) for 11.1
XL C for AIX Fix Pack 19 (August 2014 PTF) for 11.1
XL C for AIX Fix Pack 20 (November 2014 PTF) for 11.1
XL C for AIX Fix Pack 22 (September 2015 PTF) for 11.1

Subscribe

You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • The DFP instruction reported in the compiler listing
    (-qlist) output for the __d64_test_significance and
    __d128_test_significance compiler built-in functions are
    incorrect.  The instructions generated in the object file
    are correct, and DBX and the disassembler can recognize and
    decode the instructions correctly.  Only the compiler listing is
    reporting them as different DFP instructions.
    
    
          =====   EXAMPLE   =====
    
    TEST CASE FUNCTION:
    bool testSig(_Decimal128 dfp)
    {
       return __d128_test_significance(dfp, 31ULL) > 0;
    }
    
    
    
    LISTING OUTPUT:
     | 000000                    PDEF    testSig(_Decimal128)
     | 000000                    AKA      testSig__FDr
    0|                           PROC     dfp,fp2,fp3
    5| 000000 addi    3800001F 1 LI      gr0=31
    5| 000004 lfd     C821FFF8 1 LDFL    fp1=#MX_CONVF1_0(gr1,-8)
    5| 000008 std     F801FFF0 1 ST8     #MX_CONVF1_0(gr1,-16)=gr0
    5| 00000C lfd     C801FFF0 1 LDFL    fp0=#MX_CONVF1_0(gr1,-16)
    5| 000010 dtstexq FC001544 1 CDFSE   cr0=fp2,fp3,fp0,fp1
              ^^^^^^^<==== Incorrectly reported as 'dtstexq'
    5| 000014 bc      4180000C 1 BT      CL.4,cr0,0x1/lt,taken=50%
    5| 000018 addi    38600000 1 LI      gr3=0
    0| 00001C bclr    4E800020 1 BA      lr
    
    
    DBX OUTPUT:
    0x0 (testSig(_Decimal128))       3800001f          li   r0,0x1f
    0x4 (???)  c821fff8         lfd   fr1,-8(r1)
    0x8 (???)  f801fff0         std   r0,-16(r1)
    0xc (???)  c801fff0         lfd   fr0,-16(r1)
    0x10 (???) fc001544     dtstsfq   cr0,fr0,fr2
                            ^^^^^^^<=Correctly reported as 'dtstsfq'
    0x14 (???) 4180000c         blt   0x20 (???)
    0x18 (???) 38600000          li   r3,0x0
    0x1c (???) 4e800020         blr
    0x20 (???) 38600001          li   r3,0x1
    0x24 (???) 4e800020         blr
    

Local fix

  • Use DBX or disassembler to verify instruction.
    

Problem summary

  • PROBLEM DESCRIPTION:
    Incorrect instruction name in listing.
    
    USERS AFFECTED:
    Programs containing the decimal floating point
    __d64_test_significance and __d128_test_significance built in
    functions.
    

Problem conclusion

  • Listing now shows correct instruction names.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV11642

  • Reported component name

    XL C/C++ AIX

  • Reported component ID

    5724X1300

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-12-02

  • Closed date

    2012-03-29

  • Last modified date

    2012-03-29

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    LI76642

Fix information

  • Fixed component name

    XL C FOR AIX

  • Fixed component ID

    5724X1200

Applicable component levels



Document information

More support for: XL C for AIX

Software version: 11.1

Reference #: IV11642

Modified date: 29 March 2012