mpdigdiv.s 352 B

123456789101112131415161718192021
  1. TEXT mpdigdiv(SB),$0
  2. MOVL dividend+0(FP),BX
  3. MOVL 0(BX),AX
  4. MOVL 4(BX),DX
  5. MOVL divisor+4(FP),BX
  6. MOVL quotient+8(FP),BP
  7. XORL CX,CX
  8. CMPL DX,BX /* dividend >= 2^32 * divisor */
  9. JHS _divovfl
  10. CMPL BX,CX /* divisor == 0 */
  11. JE _divovfl
  12. DIVL BX /* AX = DX:AX/BX */
  13. MOVL AX,0(BP)
  14. RET
  15. /* return all 1's */
  16. _divovfl:
  17. NOTL CX
  18. MOVL CX,0(BP)
  19. RET