I'm going to re-issue the outstanding 'future' patches as separate threads under this message.
Compared to the original V4 patches, I have tried to break the larger patches (particularly #4) into smaller chunks. One of the V4 patches that I submitted was wrong, and this series of patches corrects the issue (the issue was I used PC-relative offsets to add to a register, and the current instruction definition does not support that). The code modified dealt with vector extracts where the vector has a PC-relative address, but the insn I added also broke normal switch statements. This series of patches only adds one new constraint (em) that matches any memory operand that does not use prefixed addressing (including PC-relative addressing). In some of the previous V4 patches, I added two constraints. I adjusted the code to address several of the previous comments: * Eliminate having a TARGET_<xxx> test before calling a function that does the same test; * Fixing vector moves instruction length. There are currently 15 patches in this set (as of this writing). * Patches 1-10 provide the necessary functionality; * Patch 11 sets the default for Linux 64-bit to use PC-relative and prefixed instructions. * Patches 12-14 are the tests to the test suite. * Patch 15 is a patch to change how @pcrel is emitted to prevent some mixups (like I had). I had originally posted a patch to support PCREL_OPT in the V3 series. Given your comments, I plan to re-implement it, so it is not part of this patch set. -- Michael Meissner, IBM IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA email: meiss...@linux.ibm.com, phone: +1 (978) 899-4797