From 7b3de85a06e81d14ac0c73e8f9e1ab8e4a474beb Mon Sep 17 00:00:00 2001 From: Remy Oukaour Date: Tue, 16 Jan 2018 17:27:50 -0500 Subject: Avoid "+- 1" at every maskbits --- macros/code.asm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'macros/code.asm') diff --git a/macros/code.asm b/macros/code.asm index 6e9c378e3..799c27d45 100644 --- a/macros/code.asm +++ b/macros/code.asm @@ -37,17 +37,17 @@ ENDM maskbits: MACRO ; masks just enough bits to cover the argument -; e.g. "maskbits %00010100" becomes "and %00011111" +; e.g. "maskbits 26" becomes "and %00011111" (since 26 - 1 = %00011001) ; example usage in rejection sampling: ; .loop ; call Random -; maskbits 30 +- 1 +; maskbits 30 ; cp 30 ; jr nc, .loop x = 1 rept 8 -if x < (\1) -x = (x + 1) * 2 +- 1 +if x + 1 < (\1) +x = x << 1 | 1 endc endr and x -- cgit v1.2.3