From 79650f18af08971050317952020bd0ed3a831abd Mon Sep 17 00:00:00 2001 From: cdkersey Date: Wed, 9 Oct 2013 13:50:25 -0400 Subject: [PATCH] Added middle-square method PRNG for generating test data. --- src/test/lib.s | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/test/lib.s b/src/test/lib.s index 73a11112..2bf7c48c 100644 --- a/src/test/lib.s +++ b/src/test/lib.s @@ -104,5 +104,27 @@ puts_l: ld %r6, %r7, #0; jmpi puts_l; puts_end: jmpr %r5 +.global +rand: ldi %r0, #0; + ld %r0, %r0, rseed; + mul %r0, %r0, %r0; + shri %r0, %r0, #8; + ldi %r9, #0xffff; + and %r0, %r0, %r9; + ldi %r9, #0; + st %r0, %r9, rseed; + jmpr %r5; + +.global +randf: ori %r10, %r5, #0; + jali %r5, rand; + ldi %r9, #1; + shli %r9, %r9, #16; + itof %r9, %r9; + itof %r0, %r0; + fdiv %r0, %r0, %r9; + jmpr %r10; + .perm rw +rseed: .word 0xface digstack: .space 10