Jan Bobek <jan.bo...@gmail.com> writes:
> This allows us to drop dependency on NASM and build the test image > with GCC only. Adds support for x86_64, too. > > Suggested-by: Richard Henderson <richard.hender...@linaro.org> > Reviewed-by: Richard Henderson <richard.hender...@linaro.org> > Signed-off-by: Jan Bobek <jan.bo...@gmail.com> Reviewed-by: Alex Bennée <alex.ben...@linaro.org> > --- > Makefile | 3 +++ > test_i386.S | 41 +++++++++++++++++++++++++++++++++++++++++ > test_i386.s | 27 --------------------------- > 3 files changed, 44 insertions(+), 27 deletions(-) > create mode 100644 test_i386.S > delete mode 100644 test_i386.s > > diff --git a/Makefile b/Makefile > index b362dbe..6ab014a 100644 > --- a/Makefile > +++ b/Makefile > @@ -49,6 +49,9 @@ $(PROG): $(OBJS) > %_$(ARCH).elf: %_$(ARCH).s > $(AS) -o $@ $< > > +%_$(ARCH).elf: %_$(ARCH).S > + $(CC) $(CPPFLAGS) -o $@ -c $< > + > clean: > rm -f $(PROG) $(OBJS) $(BINS) > > diff --git a/test_i386.S b/test_i386.S > new file mode 100644 > index 0000000..456b99c > --- /dev/null > +++ b/test_i386.S > @@ -0,0 +1,41 @@ > +/*############################################################################# > + * Copyright (c) 2010 Linaro Limited > + * All rights reserved. This program and the accompanying materials > + * are made available under the terms of the Eclipse Public License v1.0 > + * which accompanies this distribution, and is available at > + * http://www.eclipse.org/legal/epl-v10.html > + * > + * Contributors: > + * Peter Maydell (Linaro) - initial implementation > + > *###########################################################################*/ > + > +/* A trivial test image for x86 */ > + > +/* Initialise the registers to avoid spurious mismatches */ > + xor %eax, %eax > + sahf /* init eflags */ > + > + mov $0x12345678, %eax > + mov $0x9abcdef0, %ebx > + mov $0x97361234, %ecx > + mov $0x84310284, %edx > + mov $0x83624173, %edi > + mov $0xfaebfaeb, %esi > + mov $0x84610123, %ebp > + > +#ifdef __x86_64__ > + movq $0x123456789abcdef0, %r8 > + movq $0xaaaabbbbccccdddd, %r9 > + movq $0x1010101010101010, %r10 > + movq $0x1111111111111111, %r11 > + movq $0x1212121212121212, %r12 > + movq $0x1313131313131313, %r13 > + movq $0x1414141414141414, %r14 > + movq $0x1515151515151515, %r15 > +#endif > + > +/* do compare */ > + ud1 %eax, %eax > + > +/* exit test */ > + ud1 %ecx, %eax > diff --git a/test_i386.s b/test_i386.s > deleted file mode 100644 > index a2140a0..0000000 > --- a/test_i386.s > +++ /dev/null > @@ -1,27 +0,0 @@ > -;############################################################################### > -;# Copyright (c) 2010 Linaro Limited > -;# All rights reserved. This program and the accompanying materials > -;# are made available under the terms of the Eclipse Public License v1.0 > -;# which accompanies this distribution, and is available at > -;# http://www.eclipse.org/legal/epl-v10.html > -;# > -;# Contributors: > -;# Peter Maydell (Linaro) - initial implementation > -;############################################################################### > - > -; A trivial test image for x86 > - > -BITS 32 > -; Initialise the registers to avoid spurious mismatches > -mov eax, 0x12345678 > -mov ebx, 0x9abcdef0 > -mov ecx, 0x97361234 > -mov edx, 0x84310284 > -mov edi, 0x83624173 > -mov esi, 0xfaebfaeb > -mov ebp, 0x84610123 > -; UD1 : do compare > -UD1 > - > -; UD2 : exit test > -UD2 -- Alex Bennée