[PATCH][PowerPC] More refactoring prior to real PPC emitPrologue()/emitEpilogue() changes

Mark Minich mminich at microsemi-wl.com
Fri Aug 16 14:49:42 PDT 2013


This is a continuation of the refactorings performed in svn rev 188573 (see that rev's comments for more detail).

This is my stage 2 refactoring: I combined the emitPrologue() & emitEpilogue() PPC32 & PPC64 code into a single flow, simplifying a lot of the code since in essence the PPC32 & PPC64 code generation logic is the same, only the instruction forms are different (in most cases). This simplification is necessary because my functional changes (yet to come) add significant complexity, and without the simplification of my stage 2 refactoring, the overall complexity of both emitPrologue() & emitEpilogue() would have become almost intractable for most mortal programmers (like me).

This submission was intended to be a pure refactoring (no functional changes whatsoever). However, in the process of combining the PPC32 & PPC64 flows, I spotted a difference that I believe is a bug (see svn rev 186478 line 863, or svn rev 188573 line 888): This line appears to be restoring the BP with the original FP content, not the original BP content. When I merged the 32-bit and 64-bit code, I used the corresponding code from the 64-bit flow, which I believe uses the correct offset (BPOffset) for this operation.

http://llvm-reviews.chandlerc.com/D1430


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130816/b06bb1ee/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: stage2.diff
Type: application/octet-stream
Size: 22129 bytes
Desc: stage2.diff
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130816/b06bb1ee/attachment.obj>


More information about the llvm-commits mailing list