epicutil.S 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /**************************************
  2. *
  3. * copyright @ Motorola, 1999
  4. *
  5. *
  6. * This file contains two commonly used
  7. * lower level utility routines.
  8. *
  9. * The utility routines are also in other
  10. * Kahlua device driver libraries. The
  11. * need to be linked in only once.
  12. **************************************/
  13. #include <ppc_asm.tmpl>
  14. #include <ppc_defs.h>
  15. /**********************************************************
  16. * function: load_runtime_reg
  17. *
  18. * input: r3 - value of eumbbar
  19. * r4 - register offset in embedded utility space
  20. *
  21. * output: r3 - register content
  22. **********************************************************/
  23. .text
  24. .align 2
  25. .global load_runtime_reg
  26. load_runtime_reg:
  27. xor r5,r5,r5
  28. or r5,r5,r3 /* save eumbbar */
  29. lwbrx r3,r4,r5
  30. sync
  31. bclr 20, 0
  32. /****************************************************************
  33. * function: store_runtime_reg
  34. *
  35. * input: r3 - value of eumbbar
  36. * r4 - register offset in embedded utility space
  37. * r5 - new value to be stored
  38. *
  39. ****************************************************************/
  40. .text
  41. .align 2
  42. .global store_runtime_reg
  43. store_runtime_reg:
  44. xor r0,r0,r0
  45. stwbrx r5, r4, r3
  46. sync
  47. bclr 20,0