https://llvm.org/bugs/show_bug.cgi?id=26519
Mark Millard <mar...@dsl-only.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED |--- --- Comment #15 from Mark Millard <mar...@dsl-only.net> --- (In reply to comment #14) My interpretation of this is that the "lwz r30,24(r1)" is simply out of sequence and should be later in the sequence: > 0x0181b01c <__floatdidf+80>: lwz r30,24(r1) <<<=== not here > 0x0181b020 <__floatdidf+84>: lfs f2,0(r3) > 0x0181b024 <__floatdidf+88>: lwz r3,-12(r30) > 0x0181b028 <__floatdidf+92>: lfs f0,0(r6) > 0x0181b02c <__floatdidf+96>: lfs f12,0(r3) > 0x0181b030 <__floatdidf+100>: fsub f0,f1,f0 > 0x0181b034 <__floatdidf+104>: fmul f0,f0,f2 > 0x0181b038 <__floatdidf+108>: fadd f0,f0,f12 > 0x0181b03c <__floatdidf+112>: fadd f1,f13,f0 lwz r30,24(r1) <<<<<<<<<<=============== instead here > 0x0181b040 <__floatdidf+116>: addi r1,r1,32 > 0x0181b044 <__floatdidf+120>: mtlr r0 > 0x0181b048 <__floatdidf+124>: blr (addresses not adjusted for the change in the above) So that r30 would be restored between the main activity being finished and r1 being adjusted (popping the stack frame). Of course any place after the last local r30 use [after -12(r30)] up to where I show it would also work. I reported this issue as a comment on 26519 because I'm guessing that the ordering problem is tied to trying to trying to avoid the stack-handling ABI violations for FreeBSD: another incompleteness in the coverage of the stack handling. If it is not that then a separate submittal would likely be appropriate. Since I'm allowed to I'm going to change the status to reopened so that it does not look to have been fully fixed. Let me know if this is inappropriate since I would not be the one fixing it. -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs