Enable 32-bit Alignment
H.J. Lu
hjl@lucon.org
Wed Jul 4 01:03:00 GMT 2007
On Tue, Jul 03, 2007 at 07:12:55PM -0500, Menezes, Evandro wrote:
> After iterating with HJ and Alan, here's another spin of the patch.
>
> 2007-06-29 Evandro Menezes <evandro.menezes@amd.com>
>
> * config/tc-i386.c (handle_align_code, i386_align_code): new
> function
> to help alignment > 15 bytes, enable alignment up to 31 bytes,
>
> always use variable-length NOP for K8 too.
> * config/tc-i386.h (MAX_MEM_FOR_RS_ALIGN_CODE): change limit to
> 31 bytes.
> * testsuite/gas/i386/i386.exp: replace NOP test-case, add new
> one and
> remove K8-specific one.
> * testsuite/gas/i386/nops-3-i686.d: new NOP test-case.
> * testsuite/gas/i386/nops-4.s: idem
> * testsuite/gas/i386/nops-4-i686.d: idem
> * testsuite/gas/i386/x86-64-nops-1-k8.d: removed.
Can you add nops-4.d and x86-64-nops-4.d?
I'd like to see some further changes:
1. For N byte alignment padding up to 15 bytes:
a. On 32bit,
i. Use (N - 1) 66 prefixes + 90 by default.
ii. When Pentium Pro or newer is specified, use (N - X) 66
prefixes + new nop insn with X bytes.
iii. For Pentum or older, use the old padding.
b. On 64bit, use (N - X) 66 prefixes + new nop insn with X bytes.
2. For alignment padding between 16 and 30 bytes, use 2 x (< 15byte nops).
3. For 31 byte alignment padding, use 2 x (15byte nops) + 1byte nop.
Will it be a problem on AMD?
Thanks.
H.J.
More information about the Binutils
mailing list