diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-10-04 19:50:24 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2015-10-04 19:50:24 +0200 |
commit | 9e3ef5c777971707ab4ba426bb55d3bb2553ddf9 (patch) | |
tree | a5126925764bd3cb47d8702bab4bbd8b6b02aea3 /sys/src/ape/lib/ap/spim/vlop.s | |
parent | d2af6b40af268fafdbd04c0222e785167b9ae021 (diff) |
ape: add machine specific code for spim
Diffstat (limited to 'sys/src/ape/lib/ap/spim/vlop.s')
-rw-r--r-- | sys/src/ape/lib/ap/spim/vlop.s | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/sys/src/ape/lib/ap/spim/vlop.s b/sys/src/ape/lib/ap/spim/vlop.s new file mode 100644 index 000000000..7c618739c --- /dev/null +++ b/sys/src/ape/lib/ap/spim/vlop.s @@ -0,0 +1,20 @@ +/* + * from https://bitbucket.org/cherry9/plan9-loongson + */ +TEXT _mulv(SB), $0 + MOVW 8(FP), R2 /* hi1 */ + MOVW 4(FP), R3 /* lo1 */ + MOVW 16(FP), R4 /* hi2 */ + MOVW 12(FP), R5 /* lo2 */ + MULU R5, R3 /* lo1*lo2 -> hi:lo*/ + MOVW LO, R6 + MOVW HI, R7 + MULU R3, R4 /* lo1*hi2 -> _:hi */ + MOVW LO, R8 + ADDU R8, R7 + MULU R2, R5 /* hi1*lo2 -> _:hi */ + MOVW LO, R8 + ADDU R8, R7 + MOVW R6, 0(R1) /* lo */ + MOVW R7, 4(R1) /* hi */ + RET |