_brk.s 480 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "SYS.h"
  2. LABEL__(brk)
  3. mov %o7,%g2
  4. ld [%l0], %o0
  5. inc 7, %o0
  6. andn %o0, 7, %o0
  7. call brk
  8. mov %o0, %o2
  9. mov %g2,%o7
  10. tst %o0
  11. bge 0f
  12. nop
  13. retl
  14. nop
  15. 0:
  16. set limhp, %g1
  17. st %o2, [%g1]
  18. retl
  19. nop
  20. LABEL__(sbrk)
  21. mov %o7,%g2
  22. ld [%l0], %o0
  23. inc 7, %o0
  24. andn %o0, 7, %o0
  25. set limhp, %o1
  26. ld [%o1], %o2
  27. inc 7, %o2
  28. andn %o2, 7, %o3
  29. add %o3, %o0, %o0
  30. call brk
  31. mov %o0, %o4
  32. mov %g2,%o7
  33. tst %o0
  34. blt 0f
  35. nop
  36. set limhp, %g1
  37. st %o4, [%g1]
  38. mov %o3, %o0
  39. 0:
  40. retl
  41. nop