From 6839382480b86362a3dc2807bac7e4bc5d7ef469 Mon Sep 17 00:00:00 2001 From: Joe Soroka Date: Sun, 23 Jan 2011 16:46:24 -0800 Subject: [PATCH] asmtest: avoid testing against complex nop alignment in gas .align #,0x90 in gas ignores the 0x90 and outputs any kind of nop it feels like. the one avoided by this patch is a 7 byte nop, which gas has been doing since at least 1999: http://sourceware.org/ml/binutils/1999-10/msg00083.html In order to match what gas does, we would need to make code alignment target-specific, import a lot of code, and face the question: exactly which gas {version,target,tune} combo are we trying to match? see i386_align_code in: http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-i386.c?annotate=1.460&cvsroot=src The smart noppery is turned on via the special casing of 0x90 at line 438 in md_do_align in: http://sourceware.org/cgi-bin/cvsweb.cgi/src/gas/config/tc-i386.h?annotate=1.1&cvsroot=src --- tests/asmtest.S | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/asmtest.S b/tests/asmtest.S index 3b2c22a..f6fecde 100644 --- a/tests/asmtest.S +++ b/tests/asmtest.S @@ -9,7 +9,8 @@ .int 1, 2, 3 .align 8 .byte 1 - .align 16, 0x90 +/* .align 16, 0x90 gas is too clever for us with 0x90 fill */ + .align 16, 0x91 /* 0x91 tests the non-clever behaviour */ .skip 3 .skip 15, 0x90 .string "hello\0world"