IBM Support

LI76642: INCORRECT DFP INSTRUCTION IN -QLIST

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

    LI76642

  • Reported component name

    XL C/C++ FOR LI

  • Reported component ID

    5724X1400

  • Reported release

    B10

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2012-02-06

  • Closed date

    2012-02-06

  • Last modified date

    2012-02-06

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

    IV11642

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

Fix information

  • Fixed component name

    XL C/C++ FOR LI

  • Fixed component ID

    5724X1400

Applicable component levels

  • RB10 PSY

       UP



Document information

More support for: XL C/C++ for Linux

Software version: B10

Reference #: LI76642

Modified date: 06 February 2012