io.S 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. /*
  2. * Copyright (C) 1998 Dan Malek <dmalek@jlc.net>
  3. * Copyright (C) 1999 Magnus Damm <kieraypc01.p.y.kie.era.ericsson.se>
  4. * Copyright (C) 2001 Sysgo Real-Time Solutions, GmbH <www.elinos.com>
  5. * Andreas Heppel <aheppel@sysgo.de>
  6. * Copyright (C) 2003 Wolfgang Denk <wd@denx.de>
  7. *
  8. * SPDX-License-Identifier: GPL-2.0+
  9. */
  10. #include <config.h>
  11. #include <ppc_asm.tmpl>
  12. /* ------------------------------------------------------------------------------- */
  13. /* Function: in8 */
  14. /* Description: Input 8 bits */
  15. /* ------------------------------------------------------------------------------- */
  16. .globl in8
  17. in8:
  18. lbz r3,0(r3)
  19. sync
  20. blr
  21. /* ------------------------------------------------------------------------------- */
  22. /* Function: in16 */
  23. /* Description: Input 16 bits */
  24. /* ------------------------------------------------------------------------------- */
  25. .globl in16
  26. in16:
  27. lhz r3,0(r3)
  28. sync
  29. blr
  30. /* ------------------------------------------------------------------------------- */
  31. /* Function: in16r */
  32. /* Description: Input 16 bits and byte reverse */
  33. /* ------------------------------------------------------------------------------- */
  34. .globl in16r
  35. in16r:
  36. lhbrx r3,0,r3
  37. sync
  38. blr
  39. /* ------------------------------------------------------------------------------- */
  40. /* Function: in32 */
  41. /* Description: Input 32 bits */
  42. /* ------------------------------------------------------------------------------- */
  43. .globl in32
  44. in32:
  45. lwz 3,0(3)
  46. sync
  47. blr
  48. /* ------------------------------------------------------------------------------- */
  49. /* Function: in32r */
  50. /* Description: Input 32 bits and byte reverse */
  51. /* ------------------------------------------------------------------------------- */
  52. .globl in32r
  53. in32r:
  54. lwbrx r3,0,r3
  55. sync
  56. blr
  57. /* ------------------------------------------------------------------------------- */
  58. /* Function: out8 */
  59. /* Description: Output 8 bits */
  60. /* ------------------------------------------------------------------------------- */
  61. .globl out8
  62. out8:
  63. stb r4,0(r3)
  64. sync
  65. blr
  66. /* ------------------------------------------------------------------------------- */
  67. /* Function: out16 */
  68. /* Description: Output 16 bits */
  69. /* ------------------------------------------------------------------------------- */
  70. .globl out16
  71. out16:
  72. sth r4,0(r3)
  73. sync
  74. blr
  75. /* ------------------------------------------------------------------------------- */
  76. /* Function: out16r */
  77. /* Description: Byte reverse and output 16 bits */
  78. /* ------------------------------------------------------------------------------- */
  79. .globl out16r
  80. out16r:
  81. sthbrx r4,0,r3
  82. sync
  83. blr
  84. /* ------------------------------------------------------------------------------- */
  85. /* Function: out32 */
  86. /* Description: Output 32 bits */
  87. /* ------------------------------------------------------------------------------- */
  88. .globl out32
  89. out32:
  90. stw r4,0(r3)
  91. sync
  92. blr
  93. /* ------------------------------------------------------------------------------- */
  94. /* Function: out32r */
  95. /* Description: Byte reverse and output 32 bits */
  96. /* ------------------------------------------------------------------------------- */
  97. .globl out32r
  98. out32r:
  99. stwbrx r4,0,r3
  100. sync
  101. blr