qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH for 7.0 2/5] h.i386: Simple hello-world test for i386


From: Warner Losh
Subject: [PATCH for 7.0 2/5] h.i386: Simple hello-world test for i386
Date: Sat, 27 Nov 2021 13:18:43 -0700

A simple, tiny, statically linked i386 'hello world' test. It uses two
system calls (write and exit) and provides a basic sanity check to make
sure that the arm bsd-user binary can interpret FreeBSD 32-bit i386
binaries.

Signed-off-by: Warner Losh <imp@bsdimp.com>
---
 tests/bsd-user-smoke/h.i386.S | 39 +++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100644 tests/bsd-user-smoke/h.i386.S

diff --git a/tests/bsd-user-smoke/h.i386.S b/tests/bsd-user-smoke/h.i386.S
new file mode 100644
index 00000000000..0af5a709f15
--- /dev/null
+++ b/tests/bsd-user-smoke/h.i386.S
@@ -0,0 +1,39 @@
+# Copyright (c) 2021 Warner Losh
+# SPDX-License-Identifier: BSD-2-Clause
+
+#include <sys/syscall.h>
+#define STDOUT_FILENO  1
+
+       .text
+       .file   "hello.s"
+       .globl  qemu_start                            # -- Begin function 
qemu_start
+       .p2align        4, 0x90
+       .type   qemu_start,@function
+qemu_start:                                   # @qemu_start
+# %bb.0:                                # %entry
+       pushl   %ebp
+       movl    %esp, %ebp
+
+       # write(1, .L.str, sizeof(.L.str) - 1)
+       pushl   $(.L.strEnd - .L.str - 1)
+       pushl   $.L.str
+       pushl   $STDOUT_FILENO
+       pushl   %eax                    # dummy return address
+       movl    $SYS_write, %eax
+       int     $0x80
+       addl    $16, %esp               # 3 args + 1 dummy
+
+       # _exit(0)
+       pushl   $0
+       pushl   %eax                    # dummy return address
+       movl    $SYS_exit, %eax
+       int     $0x80
+.Lfunc_end0:
+       .size   qemu_start, .Lfunc_end0-qemu_start
+                                        # -- End function
+       .type   .L.str,@object                  # @.str
+       .section        .rodata.str1.1,"aMS",@progbits,1
+.L.str:
+       .asciz  "Hello World\n"
+.L.strEnd:
+       .size .L.str, .L.strEnd - .L.str
-- 
2.33.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]