xref: /plan9-contrib/sys/src/ape/lib/ap/riscv/vlop.s (revision ce95e1b3727b9cb1c223ffbed69aff21a8ced255)
1*ce95e1b3SDavid du ColombierTEXT	_mulv(SB), $0
2*ce95e1b3SDavid du Colombier	MOVW	4(FP), R9	// x.lo
3*ce95e1b3SDavid du Colombier	MOVW	8(FP), R10	// x.hi
4*ce95e1b3SDavid du Colombier	MOVW	12(FP), R11	// y.lo
5*ce95e1b3SDavid du Colombier	MOVW	16(FP), R12	// y.hi
6*ce95e1b3SDavid du Colombier	MULHU	R11, R9, R14	// (x.lo*y.lo).hi
7*ce95e1b3SDavid du Colombier	MUL	R11, R9, R13	// (x.lo*y.lo).lo
8*ce95e1b3SDavid du Colombier	MUL	R10, R11, R15	// (x.hi*y.lo).lo
9*ce95e1b3SDavid du Colombier	ADD	R15, R14
10*ce95e1b3SDavid du Colombier	MUL	R9, R12, R15	// (x.lo*y.hi).lo
11*ce95e1b3SDavid du Colombier	ADD	R15, R14
12*ce95e1b3SDavid du Colombier	MOVW	R13, 0(R8)
13*ce95e1b3SDavid du Colombier	MOVW	R14, 4(R8)
14*ce95e1b3SDavid du Colombier	RET
15