aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Bobek <jan.bobek@gmail.com>2019-05-23 16:44:05 -0400
committerPeter Maydell <peter.maydell@linaro.org>2019-06-07 14:28:22 +0100
commit8b4a93bec9df36ee49de66bd7b61e1502c9b14ea (patch)
tree760ce2d56acf9fdf325c36f24161bb87abbc78d1
parent8a492f46cf91216277a478a7b0cb81d8c8dd9073 (diff)
test_i386: change syntax from nasm to gas
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.henderson@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Jan Bobek <jan.bobek@gmail.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--Makefile3
-rw-r--r--test_i386.S41
-rw-r--r--test_i386.s27
3 files changed, 44 insertions, 27 deletions
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