mcount.S 900 B

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