⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 carta_random.s

📁 xen虚拟机源代码安装包
💻 S
字号:
/* * Fast, simple, yet decent quality random number generator based on * a paper by David G. Carta ("Two Fast Implementations of the * `Minimal Standard' Random Number Generator," Communications of the * ACM, January, 1990). * * Copyright (C) 2002 Hewlett-Packard Co *	David Mosberger-Tang <davidm@hpl.hp.com> */#include <asm/asmmacro.h>#define a	r2#define m	r3#define lo	r8#define hi	r9#define t0	r16#define t1	r17#define	seed	r32GLOBAL_ENTRY(carta_random32)	movl	a = (16807 << 16) | 16807	;;	pmpyshr2.u t0 = a, seed, 0	pmpyshr2.u t1 = a, seed, 16	;;	unpack2.l t0 = t1, t0	dep	m = -1, r0, 0, 31	;;	zxt4	lo = t0	shr.u	hi = t0, 32	;;	dep	t0 = 0, hi, 15, 49	// t0 = (hi & 0x7fff)	;;	shl	t0 = t0, 16		// t0 = (hi & 0x7fff) << 16	shr	t1 = hi, 15		// t1 = (hi >> 15)	;;	add	lo = lo, t0	;;	cmp.gtu	p6, p0 = lo, m	;;(p6)	and	lo = lo, m	;;(p6)	add	lo = 1, lo	;;	add	lo = lo, t1	;;	cmp.gtu p6, p0 = lo, m	;;(p6)	and	lo = lo, m	;;(p6)	add	lo = 1, lo	br.ret.sptk.many rpEND(carta_random32)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -