saverest.s
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:7k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* saverest.s - Power PC save and restore EABI functions
  2. /* Copyright 1984-2001 Wind River Systems, Inc. */
  3. /*
  4. modification history 
  5. --------------------
  6. 01b,22apr02,sn   SPR 76106 - added marker symbol
  7. 01a,03dec01,sn   wrote
  8. */
  9. #define _ASMLANGUAGE
  10. #include "vxWorks.h"
  11. #include "asm.h"
  12. .data
  13. .globl __saverest_o
  14. __saverest_o:
  15. .long 0x0
  16. _WRS_TEXT_SEG_START
  17. #if ((CPU != PPC403) && (CPU != PPC405) && (CPU != PPC440))
  18. /* restfpr.s */
  19. FUNC_EXPORT(_restfpr_14_l)
  20. FUNC_EXPORT(_restfpr_15_l)
  21. FUNC_EXPORT(_restfpr_16_l)
  22. FUNC_EXPORT(_restfpr_17_l)
  23. FUNC_EXPORT(_restfpr_18_l)
  24. FUNC_EXPORT(_restfpr_19_l)
  25. FUNC_EXPORT(_restfpr_20_l)
  26. FUNC_EXPORT(_restfpr_21_l)
  27. FUNC_EXPORT(_restfpr_22_l)
  28. FUNC_EXPORT(_restfpr_23_l)
  29. FUNC_EXPORT(_restfpr_24_l)
  30. FUNC_EXPORT(_restfpr_25_l)
  31. FUNC_EXPORT(_restfpr_26_l)
  32. FUNC_EXPORT(_restfpr_27_l)
  33. FUNC_EXPORT(_restfpr_28_l)
  34. FUNC_EXPORT(_restfpr_29_l)
  35. FUNC_EXPORT(_restfpr_30_l)
  36. FUNC_EXPORT(_restfpr_31_l)
  37. .long 0x00600000
  38. _restfpr_14_l: lfd f14,-144(r11)
  39. _restfpr_15_l: lfd f15,-136(r11)
  40. _restfpr_16_l: lfd f16,-128(r11)
  41. _restfpr_17_l: lfd f17,-120(r11)
  42. _restfpr_18_l: lfd f18,-112(r11)
  43. _restfpr_19_l: lfd f19,-104(r11)
  44. _restfpr_20_l: lfd f20,-96(r11)
  45. _restfpr_21_l: lfd f21,-88(r11)
  46. _restfpr_22_l: lfd f22,-80(r11)
  47. _restfpr_23_l: lfd f23,-72(r11)
  48. _restfpr_24_l: lfd f24,-64(r11)
  49. _restfpr_25_l: lfd f25,-56(r11)
  50. _restfpr_26_l: lfd f26,-48(r11)
  51. _restfpr_27_l: lfd f27,-40(r11)
  52. _restfpr_28_l: lwz r0,4(r11)
  53. lfd f28,-32(r11)
  54. mtspr 8,r0
  55. lfd f29,-24(r11)
  56. lfd f30,-16(r11)
  57. lfd f31,-8(r11)
  58. ori r1,r11,0
  59. blr
  60. _restfpr_29_l: lfd f29,-24(r11)
  61. _restfpr_30_l: lfd f30,-16(r11)
  62. _restfpr_31_l: lwz r0,4(r11)
  63. lfd f31,-8(r11)
  64. mtspr 8,r0
  65. ori r1,r11,0
  66. blr
  67. /* savefpr.s */
  68. FUNC_EXPORT(_savefpr_14_l)
  69. FUNC_EXPORT(_savefpr_15_l)
  70. FUNC_EXPORT(_savefpr_16_l)
  71. FUNC_EXPORT(_savefpr_17_l)
  72. FUNC_EXPORT(_savefpr_18_l)
  73. FUNC_EXPORT(_savefpr_19_l)
  74. FUNC_EXPORT(_savefpr_20_l)
  75. FUNC_EXPORT(_savefpr_21_l)
  76. FUNC_EXPORT(_savefpr_22_l)
  77. FUNC_EXPORT(_savefpr_23_l)
  78. FUNC_EXPORT(_savefpr_24_l)
  79. FUNC_EXPORT(_savefpr_25_l)
  80. FUNC_EXPORT(_savefpr_26_l)
  81. FUNC_EXPORT(_savefpr_27_l)
  82. FUNC_EXPORT(_savefpr_28_l)
  83. FUNC_EXPORT(_savefpr_29_l)
  84. FUNC_EXPORT(_savefpr_30_l)
  85. FUNC_EXPORT(_savefpr_31_l)
  86. .long 0x00400000
  87. _savefpr_14_l: stfd f14,-144(r11)
  88. _savefpr_15_l: stfd f15,-136(r11)
  89. _savefpr_16_l: stfd f16,-128(r11)
  90. _savefpr_17_l: stfd f17,-120(r11)
  91. _savefpr_18_l: stfd f18,-112(r11)
  92. _savefpr_19_l: stfd f19,-104(r11)
  93. _savefpr_20_l: stfd f20,-96(r11)
  94. _savefpr_21_l: stfd f21,-88(r11)
  95. _savefpr_22_l: stfd f22,-80(r11)
  96. _savefpr_23_l: stfd f23,-72(r11)
  97. _savefpr_24_l: stfd f24,-64(r11)
  98. _savefpr_25_l: stfd f25,-56(r11)
  99. _savefpr_26_l: stfd f26,-48(r11)
  100. _savefpr_27_l: stfd f27,-40(r11)
  101. _savefpr_28_l: stfd f28,-32(r11)
  102. _savefpr_29_l: stfd f29,-24(r11)
  103. _savefpr_30_l: stfd f30,-16(r11)
  104. _savefpr_31_l: stfd f31,-8(r11)
  105. stw r0,4(r11)
  106. blr
  107. #endif /* (CPU != PPC403) && (CPU != PPC405) && (CPU != PPC440) */
  108. /* restgpr.s */
  109. FUNC_EXPORT(_restgpr_14)
  110. FUNC_EXPORT(_restgpr_15)
  111. FUNC_EXPORT(_restgpr_16)
  112. FUNC_EXPORT(_restgpr_17)
  113. FUNC_EXPORT(_restgpr_18)
  114. FUNC_EXPORT(_restgpr_19)
  115. FUNC_EXPORT(_restgpr_20)
  116. FUNC_EXPORT(_restgpr_21)
  117. FUNC_EXPORT(_restgpr_22)
  118. FUNC_EXPORT(_restgpr_23)
  119. FUNC_EXPORT(_restgpr_24)
  120. FUNC_EXPORT(_restgpr_25)
  121. FUNC_EXPORT(_restgpr_26)
  122. FUNC_EXPORT(_restgpr_27)
  123. FUNC_EXPORT(_restgpr_28)
  124. FUNC_EXPORT(_restgpr_29)
  125. FUNC_EXPORT(_restgpr_30)
  126. FUNC_EXPORT(_restgpr_31)
  127. .long 0x00600000
  128. _restgpr_14: lwz r14,-72(r11)
  129. _restgpr_15: lwz r15,-68(r11)
  130. _restgpr_16: lwz r16,-64(r11)
  131. _restgpr_17: lwz r17,-60(r11)
  132. _restgpr_18: lwz r18,-56(r11)
  133. _restgpr_19: lwz r19,-52(r11)
  134. _restgpr_20: lwz r20,-48(r11)
  135. _restgpr_21: lwz r21,-44(r11)
  136. _restgpr_22: lwz r22,-40(r11)
  137. _restgpr_23: lwz r23,-36(r11)
  138. _restgpr_24: lwz r24,-32(r11)
  139. _restgpr_25: lwz r25,-28(r11)
  140. _restgpr_26: lwz r26,-24(r11)
  141. _restgpr_27: lwz r27,-20(r11)
  142. _restgpr_28: lwz r28,-16(r11)
  143. _restgpr_29: lwz r29,-12(r11)
  144. _restgpr_30: lwz r30,-8(r11)
  145. _restgpr_31: lwz r31,-4(r11)
  146. blr
  147. /* savegpr.s */
  148. FUNC_EXPORT(_savegpr_14)
  149. FUNC_EXPORT(_savegpr_15)
  150. FUNC_EXPORT(_savegpr_16)
  151. FUNC_EXPORT(_savegpr_17)
  152. FUNC_EXPORT(_savegpr_18)
  153. FUNC_EXPORT(_savegpr_19)
  154. FUNC_EXPORT(_savegpr_20)
  155. FUNC_EXPORT(_savegpr_21)
  156. FUNC_EXPORT(_savegpr_22)
  157. FUNC_EXPORT(_savegpr_23)
  158. FUNC_EXPORT(_savegpr_24)
  159. FUNC_EXPORT(_savegpr_25)
  160. FUNC_EXPORT(_savegpr_26)
  161. FUNC_EXPORT(_savegpr_27)
  162. FUNC_EXPORT(_savegpr_28)
  163. FUNC_EXPORT(_savegpr_29)
  164. FUNC_EXPORT(_savegpr_30)
  165. FUNC_EXPORT(_savegpr_31)
  166. .long 0x00400000
  167. _savegpr_14: stw r14,-72(r11)
  168. _savegpr_15: stw r15,-68(r11)
  169. _savegpr_16: stw r16,-64(r11)
  170. _savegpr_17: stw r17,-60(r11)
  171. _savegpr_18: stw r18,-56(r11)
  172. _savegpr_19: stw r19,-52(r11)
  173. _savegpr_20: stw r20,-48(r11)
  174. _savegpr_21: stw r21,-44(r11)
  175. _savegpr_22: stw r22,-40(r11)
  176. _savegpr_23: stw r23,-36(r11)
  177. _savegpr_24: stw r24,-32(r11)
  178. _savegpr_25: stw r25,-28(r11)
  179. _savegpr_26: stw r26,-24(r11)
  180. _savegpr_27: stw r27,-20(r11)
  181. _savegpr_28: stw r28,-16(r11)
  182. _savegpr_29: stw r29,-12(r11)
  183. _savegpr_30: stw r30,-8(r11)
  184. _savegpr_31: stw r31,-4(r11)
  185. blr
  186. /* restgprl.s */
  187. FUNC_EXPORT(_restgpr_14_l)
  188. FUNC_EXPORT(_restgpr_15_l)
  189. FUNC_EXPORT(_restgpr_16_l)
  190. FUNC_EXPORT(_restgpr_17_l)
  191. FUNC_EXPORT(_restgpr_18_l)
  192. FUNC_EXPORT(_restgpr_19_l)
  193. FUNC_EXPORT(_restgpr_20_l)
  194. FUNC_EXPORT(_restgpr_21_l)
  195. FUNC_EXPORT(_restgpr_22_l)
  196. FUNC_EXPORT(_restgpr_23_l)
  197. FUNC_EXPORT(_restgpr_24_l)
  198. FUNC_EXPORT(_restgpr_25_l)
  199. FUNC_EXPORT(_restgpr_26_l)
  200. FUNC_EXPORT(_restgpr_27_l)
  201. FUNC_EXPORT(_restgpr_28_l)
  202. FUNC_EXPORT(_restgpr_29_l)
  203. FUNC_EXPORT(_restgpr_30_l)
  204. FUNC_EXPORT(_restgpr_31_l)
  205. .long 0x00600000
  206. _restgpr_14_l: lwz r14,-72(r11)
  207. _restgpr_15_l: lwz r15,-68(r11)
  208. _restgpr_16_l: lwz r16,-64(r11)
  209. _restgpr_17_l: lwz r17,-60(r11)
  210. _restgpr_18_l: lwz r18,-56(r11)
  211. _restgpr_19_l: lwz r19,-52(r11)
  212. _restgpr_20_l: lwz r20,-48(r11)
  213. _restgpr_21_l: lwz r21,-44(r11)
  214. _restgpr_22_l: lwz r22,-40(r11)
  215. _restgpr_23_l: lwz r23,-36(r11)
  216. _restgpr_24_l: lwz r24,-32(r11)
  217. _restgpr_25_l: lwz r25,-28(r11)
  218. _restgpr_26_l: lwz r26,-24(r11)
  219. _restgpr_27_l: lwz r0,4(r11)
  220. lwz r27,-20(r11)
  221. mtspr 8,r0
  222. lwz r28,-16(r11)
  223. lwz r29,-12(r11)
  224. lwz r30,-8(r11)
  225. lwz r31,-4(r11)
  226. ori r1,r11,0
  227. blr
  228. _restgpr_28_l: lwz r28,-16(r11)
  229. _restgpr_29_l: lwz r29,-12(r11)
  230. _restgpr_30_l: lwz r30,-8(r11)
  231. _restgpr_31_l: lwz r0,4(r11)
  232. lwz r31,-4(r11)
  233. mtspr 8,r0
  234. ori r1,r11,0
  235. blr
  236. /* savegprl.s */
  237. FUNC_EXPORT(_savegpr_14_l)
  238. FUNC_EXPORT(_savegpr_15_l)
  239. FUNC_EXPORT(_savegpr_16_l)
  240. FUNC_EXPORT(_savegpr_17_l)
  241. FUNC_EXPORT(_savegpr_18_l)
  242. FUNC_EXPORT(_savegpr_19_l)
  243. FUNC_EXPORT(_savegpr_20_l)
  244. FUNC_EXPORT(_savegpr_21_l)
  245. FUNC_EXPORT(_savegpr_22_l)
  246. FUNC_EXPORT(_savegpr_23_l)
  247. FUNC_EXPORT(_savegpr_24_l)
  248. FUNC_EXPORT(_savegpr_25_l)
  249. FUNC_EXPORT(_savegpr_26_l)
  250. FUNC_EXPORT(_savegpr_27_l)
  251. FUNC_EXPORT(_savegpr_28_l)
  252. FUNC_EXPORT(_savegpr_29_l)
  253. FUNC_EXPORT(_savegpr_30_l)
  254. FUNC_EXPORT(_savegpr_31_l)
  255. .long 0x00400000
  256. _savegpr_14_l: stw r14,-72(r11)
  257. _savegpr_15_l: stw r15,-68(r11)
  258. _savegpr_16_l: stw r16,-64(r11)
  259. _savegpr_17_l: stw r17,-60(r11)
  260. _savegpr_18_l: stw r18,-56(r11)
  261. _savegpr_19_l: stw r19,-52(r11)
  262. _savegpr_20_l: stw r20,-48(r11)
  263. _savegpr_21_l: stw r21,-44(r11)
  264. _savegpr_22_l: stw r22,-40(r11)
  265. _savegpr_23_l: stw r23,-36(r11)
  266. _savegpr_24_l: stw r24,-32(r11)
  267. _savegpr_25_l: stw r25,-28(r11)
  268. _savegpr_26_l: stw r26,-24(r11)
  269. _savegpr_27_l: stw r27,-20(r11)
  270. _savegpr_28_l: stw r28,-16(r11)
  271. _savegpr_29_l: stw r29,-12(r11)
  272. _savegpr_30_l: stw r30,-8(r11)
  273. _savegpr_31_l: stw r31,-4(r11)
  274. stw r0,4(r11)
  275. blr