]> git.lizzy.rs Git - plan9front.git/blob - sys/src/libc/spim/vlop.s
libc: import more endianness fixes (thanks cherry9)
[plan9front.git] / sys / src / libc / spim / vlop.s
1 /*
2  * from https://bitbucket.org/cherry9/plan9-loongson
3  */
4 TEXT    _mulv(SB), $0
5         MOVW    8(FP), R2       /* hi1 */
6         MOVW    4(FP), R3       /* lo1 */
7         MOVW    16(FP), R4      /* hi2 */
8         MOVW    12(FP), R5      /* lo2 */
9         MULU    R5, R3  /* lo1*lo2 -> hi:lo*/
10         MOVW    LO, R6
11         MOVW    HI, R7
12         MULU    R3, R4  /* lo1*hi2 -> _:hi */
13         MOVW    LO, R8
14         ADDU    R8, R7
15         MULU    R2, R5  /* hi1*lo2 -> _:hi */
16         MOVW    LO, R8
17         ADDU    R8, R7
18         MOVW    R6, 0(R1)       /* lo */
19         MOVW    R7, 4(R1)       /* hi */
20         RET