reloc.s 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. .text
  2. .global _start
  3. _start:
  4. add r2,zero,zero
  5. j external1
  6. add r3,r2,r2
  7. beqzt zero,external2
  8. { movei r2,external_8a; movei r3,external_8b }
  9. { movei r2,external_8a; movei r3,external_8b; ld zero,zero }
  10. { mtspr external_8a,zero }
  11. { mfspr zero,external_8a }
  12. { moveli r2,external_16a; moveli r3,external_16b }
  13. { moveli r2,hw1_last(external_32a); moveli r3,hw1_last(external_32b) }
  14. { shl16insli r2,r2,hw0(external_32a); shl16insli r3,r3,hw0(external_32b) }
  15. { moveli r2,hw2_last(external_48a); moveli r3,hw2_last(external_48b) }
  16. { shl16insli r2,r2,hw1(external_48a); shl16insli r3,r3,hw1(external_48b) }
  17. { shl16insli r2,r2,hw0(external_48a); shl16insli r3,r3,hw0(external_48b) }
  18. { moveli r2,hw3_last(external_64a); moveli r3,hw3_last(external_64b) }
  19. { shl16insli r2,r2,hw2(external_64a); shl16insli r3,r3,hw2(external_64b) }
  20. { shl16insli r2,r2,hw1(external_64a); shl16insli r3,r3,hw1(external_64b) }
  21. { shl16insli r2,r2,hw0(external_64a); shl16insli r3,r3,hw0(external_64b) }
  22. { ld_add r0,r0,external_8a }
  23. { st_add r0,r0,external_8a }
  24. { mm r2,r3,external_5a,external_5b }
  25. { shli r2,r3,external_5a; shli r4,r5,external_5b }
  26. { shli r2,r3,external_5a; shli r4,r5,external_5b; ld zero,zero }
  27. { moveli r0, external1 - .; moveli r1, external1 - . }
  28. { moveli r0, hw1_last(external_data1 - .)
  29. moveli r1, hw1_last(external_data1 - .) }
  30. { moveli r0, hw0(external_data1 - .)
  31. moveli r1, hw0(external_data1 - .) }
  32. { moveli r0, hw2_last(external_data1 - . + 0x100000000000)
  33. moveli r1, hw2_last(external_data1 - . + 0x100000000000) }
  34. { moveli r0, hw1(external_data1 - . + 0x100000000000)
  35. moveli r1, hw1(external_data1 - . + 0x100000000000) }
  36. { moveli r0, hw0(external_data1 - . + 0x100000000000)
  37. moveli r1, hw0(external_data1 - . + 0x100000000000) }
  38. { moveli r0, hw3_last(external_data1 - . + 0x1000000000000000)
  39. moveli r1, hw3_last(external_data1 - . + 0x1000000000000000) }
  40. { moveli r0, hw2(external_data1 - . + 0x1000000000000000)
  41. moveli r1, hw2(external_data1 - . + 0x1000000000000000) }
  42. { moveli r0, hw1(external_data1 - . + 0x1000000000000000)
  43. moveli r1, hw1(external_data1 - . + 0x1000000000000000) }
  44. { moveli r0, hw0(external_data1 - . + 0x1000000000000000)
  45. moveli r1, hw0(external_data1 - . + 0x1000000000000000) }
  46. .data
  47. .align 0x20
  48. .int external1
  49. .int external2
  50. .short external_16a, external_16b
  51. .byte external_8a, external_8b
  52. .int (external_data1-.)
  53. .short (external_data1-.)
  54. .byte (external_data1-.)
  55. .short hw0_last(external_16a)
  56. .short hw1_last(external_32a)
  57. .short hw0(external_32a)
  58. .short hw2_last(external_48a)
  59. .short hw1(external_48a)
  60. .short hw0(external_48a)
  61. .short hw3(external_64a)
  62. .short hw2(external_64a)
  63. .short hw1(external_64a)
  64. .short hw0(external_64a)