Added middle-square method PRNG for generating test data.
This commit is contained in:
@@ -104,5 +104,27 @@ puts_l: ld %r6, %r7, #0;
|
|||||||
jmpi puts_l;
|
jmpi puts_l;
|
||||||
puts_end: jmpr %r5
|
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
|
.perm rw
|
||||||
|
rseed: .word 0xface
|
||||||
digstack: .space 10
|
digstack: .space 10
|
||||||
|
|||||||
Reference in New Issue
Block a user