From a6fabfb78e70b8096a8bf336aa64a3358a2f5eca Mon Sep 17 00:00:00 2001 From: dzwdz Date: Mon, 22 Jul 2024 21:48:03 +0200 Subject: tests: check if SSE registers are preserved on context switches --- src/cmd/tests/kernel/misc.s | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/cmd/tests/kernel/misc.s (limited to 'src/cmd/tests/kernel/misc.s') diff --git a/src/cmd/tests/kernel/misc.s b/src/cmd/tests/kernel/misc.s new file mode 100644 index 0000000..ae1b567 --- /dev/null +++ b/src/cmd/tests/kernel/misc.s @@ -0,0 +1,27 @@ +.section .text +.global _sse_test +.type _sse_test, @function + +/* Written in assembly to ensure gcc won't mess with the XMM registers */ +_sse_test: + movdqu (%rdi), %xmm1 + push %rdi /* preserve */ + + call fork + cmp $0, %rax + je child + + /* in parent - wait for the child to die */ + mov %rax, %rdi + mov $0, %rsi + mov $0, %rdx + call _sys_wait2 + + pop %rdi + movdqu %xmm1, (%rdi) + ret + +child: + pxor %xmm1, %xmm1 + mov $0, %rdi + call _sys_exit -- cgit v1.2.3