Please have a look at PR60438
lin zuojian
manjian2006@gmail.com
Fri Mar 7 10:10:00 GMT 2014
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
More information about the Gcc
mailing list