This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Please have a look at PR60438


Hi,
    I have found the cause:

    Okay let me sum it up:
    at first the code looks like this
    call xxx: .cfa 92
    float ops
    add sp 12 .cfa 80

    And then split2 splits the float ops,then it looks like this
    call xxx: .cfa 92
    push edx
    float ops2
    add sp 4
    ...
    add sp 12 .cfa 80

    Note that the split code has a sp ops but no cfa notes.
    And then cfa feels that's ugly,it changes the code to
    call xxx : .cfa 92
    push edx
    float ops2
    ...
    add sp 16 .cfa 80

    And then jump2 finds another branch also has an "add sp 16 .cfa 80",so the combination has occurred:
    call xxx :.cfa 92
    push edx
    float ops2
    ...
    label jump_from_other_branch ( (hasRelativeWidth || hasRelativeHeight) == true )
    add sp 16 .cfa 80


    then dwarf2cfi.c will first find the "add sp 16 .cfa 80" row has cfa 92 coming first,and then cfa 96.

Anybody has any comment to fix it?
--
Regards
lin zuojian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]