]> git.lizzy.rs Git - plan9front.git/blob - sys/src/libmp/amd64/mpdigdiv.s
pc, pc64: load idt early in trapinit0()
[plan9front.git] / sys / src / libmp / amd64 / mpdigdiv.s
1 TEXT    mpdigdiv(SB),$0
2
3 /*      MOVL    dividend+0(FP),BX */
4         MOVL    0(RARG),AX
5         MOVL    4(RARG),DX
6         MOVL    divisor+8(FP),BX
7         MOVQ    quotient+16(FP),DI
8         XORL    CX,CX
9         CMPL    DX,BX           /* dividend >= 2^32 * divisor */
10         JHS     _divovfl
11         CMPL    BX,CX           /* divisor == 0 */
12         JE      _divovfl
13         DIVL    BX              /* AX = DX:AX/BX */
14         MOVL    AX,0(DI)
15         RET
16
17         /* return all 1's */
18 _divovfl:
19         NOTL    CX
20         MOVL    CX,0(DI)
21         RET