bsearch.s 669 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. .file "bsearch.c"
  2. #NO_APP
  3. .text
  4. tigcc_compiled.:
  5. #APP
  6. .set _A_LINE,0xA000
  7. #NO_APP
  8. .text
  9. .even
  10. .globl bsearch
  11. bsearch:
  12. movm.l #0x1f38,-(%sp)
  13. move.l %a0,%a4
  14. move.l %a1,%a3
  15. move.w %d1,%d7
  16. clr.w %d6
  17. move.w %d0,%d4
  18. subq.w #1,%d4
  19. .L2:
  20. move.w %d6,%d3
  21. add.w %d4,%d3
  22. lsr.w #1,%d3
  23. move.w %d3,%d0
  24. mulu.w %d7,%d0
  25. move.l %a3,%d5
  26. add.l %d0,%d5
  27. move.l %d5,-(%sp)
  28. move.l %a4,-(%sp)
  29. jbsr (%a2)
  30. addq.l #8,%sp
  31. tst.w %d0
  32. jble .L5
  33. move.w %d3,%d6
  34. addq.w #1,%d6
  35. jbra .L4
  36. .even
  37. .L5:
  38. move.w %d3,%d4
  39. subq.w #1,%d4
  40. tst.w %d0
  41. jblt .L4
  42. move.l %d5,%d0
  43. jbra .L1
  44. .even
  45. .L4:
  46. cmp.w %d6,%d4
  47. jbcc .L2
  48. moveq.l #0,%d0
  49. .L1:
  50. move.l %d0,%a0
  51. movm.l (%sp)+,#0x1cf8
  52. rts