From e4dec4b14ca1f4a38af50d6cf10fcc87c9720529 Mon Sep 17 00:00:00 2001 From: Ain <41307858+nero@users.noreply.github.com> Date: Tue, 10 Sep 2019 13:44:44 +0000 Subject: [PATCH] Oi vey, sar is sign-extending, which is not what we want --- lib/popcnt.asm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/popcnt.asm b/lib/popcnt.asm index 52d6fb2..d03694a 100644 --- a/lib/popcnt.asm +++ b/lib/popcnt.asm @@ -5,21 +5,21 @@ popcnt: mov bx, ax and ax, 0x5555 ; 8x 01 and bx, 0xaaaa ; 8x 10 - sar bx, 1 + shr bx, 1 add ax, bx mov bx, ax and ax, 0x3333 ; 4x 0011 and bx, 0xcccc ; 4x 1100 mov cl, 2 - sar bx, cl + shr bx, cl add ax, bx mov bx, ax and ax, 0x0f0f ; 2x 00001111 and bx, 0xf0f0 ; 2x 11110000 mov cl, 4 - sar bx, cl + shr bx, cl add ax, bx add al, ah