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

📄 dwmultu.s

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 S
字号:
/*	@(#)dwmultu.s	4.1	(ULTRIX)	7/3/90				      *//* ------------------------------------------------------------------ *//* | Copyright Unpublished, MIPS Computer Systems, Inc.  All Rights | *//* | Reserved.  This software contains proprietary and confidential | *//* | information of MIPS and its suppliers.  Use, disclosure or     | *//* | reproduction is prohibited without the prior express written   | *//* | consent of MIPS.                                               | *//* ------------------------------------------------------------------ *//* $Header: dwmultu.s,v 1.1 87/02/16 11:17:23 dce Exp $ */#include <mips/regdef.h>/* Multiply 64-bit integers in t5/t4 and t7/t6 to produced 128-bit   product in t3/t2/t1/t0.  Little-endian register order.  Bashes   a3/a2.  t5/t4 and r7/t6 unchanged.  63 cycles. */.globl _dwmultu.ent _dwmultu_dwmultu:	.frame	sp, 0, ra	multu	t4, t6		# x0 * y0	## 10 cycle interlock	mflo	t0		# lo(x0 * y0)	mfhi	t1		# hi(x0 * y0)	not	a3, t1	## 1 nop	multu	t5, t6		# x1 * y0	## 10 cycle interlock	mflo	a2		# lo(x1 * y0)	mfhi	t2		# hi(x1 * y0)	sltu	a3, a3, a2	# carry(hi(x0 * y0) + lo(x1 * y0))	addu	t1, a2		# hi(x0 * y0) + lo(x1 * y0)	multu	t4, t7		# x0 * y1	add	t2, a3		# hi(x1 * y0) + carry	not	a3, t1	## 8 cycle interlock	mflo	a2		# lo(x0 * y1)	mfhi	t3		# hi(x0 * y1)	sltu	a3, a3, a2	# carry((hi(x0 * y0) + lo(x1 * y0)) + lo(x0 * y1))	addu	t1, a2		# hi(x0 * y0) + lo(x1 * y0) + lo(x0 * y1)	multu	t5, t7		# x1 * y1	add	t2, a3		# hi(x1 * y0) + carry + carry	not	a2, t2	sltu	a2, a2, t3	# carry(hi(x1 * y0) + hi(x0 * y1))	addu	t2, t3		# hi(x1 * y0) + hi(x0 * y1))	not	a3, t2	## 5 cycle interlock	mfhi	t3		# hi(x1 * y1)	add	t3, a2		# hi(x1 * y1) + carry(hi(x1 * y0) + hi(x0 * y1))	mflo	a2		# lo(x1 * y1)	sltu	a3, a3, a2	# carry((hi(x1 * y0) + hi(x0 * y1)) + lo(x1 * y1))	add	t3, a3	addu	t2, a2		# hi(x1 * y0) + hi(x0 * y1) + lo(x1 * y1)	j	ra.end _dwmultu

⌨️ 快捷键说明

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