main-with-data-bss-unique-sec.s 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. .file "main-with-data-bss.c"
  2. .global glob_var_array
  3. .section .data.glob_var_array,"aw",@progbits
  4. .balign 2
  5. .type glob_var_array, @object
  6. .size glob_var_array, 20
  7. glob_var_array:
  8. .short 0
  9. .short 1
  10. .short 2
  11. .short 3
  12. .short 4
  13. .short 5
  14. .short 6
  15. .short 7
  16. .short 8
  17. .short 9
  18. .section .bss.glob_bss_array,"aw",@nobits
  19. .balign 2
  20. .type glob_bss_array, @object
  21. .size glob_bss_array, 20
  22. glob_bss_array:
  23. .zero 20
  24. .section .text.main,"ax",@progbits
  25. .balign 2
  26. .global main
  27. .type main, @function
  28. main:
  29. ; start of function
  30. ; framesize_regs: 0
  31. ; framesize_locals: 2
  32. ; framesize_outgoing: 0
  33. ; framesize: 2
  34. ; elim ap -> fp 2
  35. ; elim fp -> sp 2
  36. ; saved regs:(none)
  37. ; start of prologue
  38. SUB.W #2, R1
  39. ; end of prologue
  40. MOV.W #0, @R1
  41. BR #.L2
  42. .L7:
  43. MOV.W @R1, R12
  44. ADD.W R12, R12
  45. ADD.W #glob_var_array, R12
  46. MOV.W @R12, R13
  47. MOV.W R13, R12
  48. ADD.W R12, R12
  49. ADD.W R13, R12
  50. rpt #2 { rlax.w R12
  51. SUB.W R13, R12
  52. CMP.W #110, R12 { JNE .L3
  53. .L4:
  54. BR #.L4
  55. .L3:
  56. MOV.W @R1, R12
  57. ADD.W R12, R12
  58. ADD.W #glob_bss_array, R12
  59. MOV.W @R12, R13
  60. MOV.W R13, R12
  61. ADD.W R12, R12
  62. ADD.W R13, R12
  63. rpt #2 { rlax.w R12
  64. SUB.W R13, R12
  65. CMP.W #110, R12 { JNE .L5
  66. .L6:
  67. BR #.L6
  68. .L5:
  69. ADD.W #1, @R1
  70. .L2:
  71. MOV.B #9, R12
  72. CMP.W @R1, R12 { JGE .L7
  73. MOV.B #0, R12
  74. ; start of epilogue
  75. .refsym __crt0_call_exit
  76. ADD.W #2, R1
  77. RET
  78. .size main, .-main