mcount.S 844 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. * Copyright IBM Corp. 2008
  3. *
  4. * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>,
  5. *
  6. */
  7. #ifndef CONFIG_64BIT
  8. .globl _mcount
  9. _mcount:
  10. stm %r0,%r5,8(%r15)
  11. st %r14,56(%r15)
  12. lr %r1,%r15
  13. ahi %r15,-96
  14. l %r3,100(%r15)
  15. la %r2,0(%r14)
  16. st %r1,0(%r15)
  17. la %r3,0(%r3)
  18. bras %r14,0f
  19. .long ftrace_trace_function
  20. 0: l %r14,0(%r14)
  21. l %r14,0(%r14)
  22. basr %r14,%r14
  23. ahi %r15,96
  24. lm %r0,%r5,8(%r15)
  25. l %r14,56(%r15)
  26. br %r14
  27. .globl ftrace_stub
  28. ftrace_stub:
  29. br %r14
  30. #else /* CONFIG_64BIT */
  31. .globl _mcount
  32. _mcount:
  33. stmg %r0,%r5,16(%r15)
  34. stg %r14,112(%r15)
  35. lgr %r1,%r15
  36. aghi %r15,-160
  37. stg %r1,0(%r15)
  38. lgr %r2,%r14
  39. lg %r3,168(%r15)
  40. larl %r14,ftrace_trace_function
  41. lg %r14,0(%r14)
  42. basr %r14,%r14
  43. aghi %r15,160
  44. lmg %r0,%r5,16(%r15)
  45. lg %r14,112(%r15)
  46. br %r14
  47. .globl ftrace_stub
  48. ftrace_stub:
  49. br %r14
  50. #endif /* CONFIG_64BIT */