blitz_ex.macos.x86.s 724 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. .globl _bbArgp
  2. .globl __bbExEnter
  3. .globl __bbExThrow
  4. .text
  5. _bbArgp:
  6. # 0[esp]=our ret
  7. # 4[esp]=offset arg
  8. # 0[ebp]=caller oldebp
  9. # 4[ebp]=caller ret
  10. # 8[ebp]=caller first arg!
  11. lea 8(%ebp),%eax
  12. add 4(%esp),%eax
  13. ret
  14. # 0[esp]=ret
  15. # 4[esp]=state block
  16. __bbExEnter:
  17. mov 4(%esp),%edx
  18. #
  19. mov %ebx,(%edx)
  20. mov %esi,4(%edx)
  21. mov %edi,8(%edx)
  22. mov %ebp,12(%edx)
  23. #
  24. mov (%esp),%ecx
  25. mov %esp,16(%edx)
  26. mov %ecx,20(%edx)
  27. #
  28. xor %eax,%eax
  29. ret
  30. # 0[esp]=ret
  31. # 4[esp]=state block
  32. # 8[esp]=throw value
  33. __bbExThrow:
  34. mov 4(%esp),%edx
  35. mov 8(%esp),%eax
  36. # ;
  37. mov 12(%edx),%ebp
  38. mov 8(%edx),%edi
  39. mov 4(%edx),%esi
  40. mov (%edx),%ebx
  41. # ;
  42. mov 20(%edx),%ecx
  43. mov 16(%edx),%esp
  44. add $4,%esp
  45. jmp *%ecx