From d1b7be14aa9b57ca4df9c00cdb4611974729b3be Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Thu, 31 May 2018 12:52:04 +0200 Subject: [PATCH 1/3] Handle INCX=0,INCY=0 case Fixes #1575 (sswap/dswap failing the swap utest on x86) as suggested by atsampson. --- kernel/x86/swap.S | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/kernel/x86/swap.S b/kernel/x86/swap.S index 54b00b33e..d3cf04942 100644 --- a/kernel/x86/swap.S +++ b/kernel/x86/swap.S @@ -138,6 +138,14 @@ /* INCX != 1 or INCY != 1 */ .L14: + cmpl $0, %ebx + jne .L141 + cmpl $0, %ecx + jne .L141 +/* INCX == 0 and INCY == 0 */ + jmp .L27 + +.L141 movl %edx, %eax sarl $2, %eax jle .L28 From 2fc748bf7200ca53d66d43107dc2c732685519d0 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Thu, 31 May 2018 13:41:12 +0200 Subject: [PATCH 2/3] Restore optimized swap kernel now that we have a proper fix --- kernel/x86/KERNEL.NEHALEM | 2 -- 1 file changed, 2 deletions(-) diff --git a/kernel/x86/KERNEL.NEHALEM b/kernel/x86/KERNEL.NEHALEM index 835520efb..65b03ae50 100644 --- a/kernel/x86/KERNEL.NEHALEM +++ b/kernel/x86/KERNEL.NEHALEM @@ -1,3 +1 @@ include $(KERNELDIR)/KERNEL.PENRYN -SSWAPKERNEL = ../arm/swap.c -DSWAPKERNEL = ../arm/swap.c From 7df8c4f76fa7aadd8d1bce1d99fe826a4826d775 Mon Sep 17 00:00:00 2001 From: Martin Kroeker Date: Thu, 31 May 2018 17:23:08 +0200 Subject: [PATCH 3/3] typo fix --- kernel/x86/swap.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/x86/swap.S b/kernel/x86/swap.S index d3cf04942..e30c27898 100644 --- a/kernel/x86/swap.S +++ b/kernel/x86/swap.S @@ -145,7 +145,7 @@ /* INCX == 0 and INCY == 0 */ jmp .L27 -.L141 +.L141: movl %edx, %eax sarl $2, %eax jle .L28