semaphore.lst 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. GAS LISTING /tmp/ccqZRq6Z.s page 1
  2. 1 .file "semaphore.c"
  3. 2 __SP_H__ = 0x3e
  4. 3 __SP_L__ = 0x3d
  5. 4 __SREG__ = 0x3f
  6. 5 __RAMPZ__ = 0x3b
  7. 6 __tmp_reg__ = 0
  8. 7 __zero_reg__ = 1
  9. 8 .section .text.NutSemInit,"ax",@progbits
  10. 9 .global NutSemInit
  11. 10 .type NutSemInit, @function
  12. 11 NutSemInit:
  13. 12 /* prologue: function */
  14. 13 /* frame size = 0 */
  15. 14 /* stack size = 0 */
  16. 15 .L__stack_usage = 0
  17. 16 0000 FC01 movw r30,r24
  18. 17 0002 1182 std Z+1,__zero_reg__
  19. 18 0004 1082 st Z,__zero_reg__
  20. 19 0006 7383 std Z+3,r23
  21. 20 0008 6283 std Z+2,r22
  22. 21 000a 0895 ret
  23. 22 .size NutSemInit, .-NutSemInit
  24. 23 .section .text.NutSemWait,"ax",@progbits
  25. 24 .global NutSemWait
  26. 25 .type NutSemWait, @function
  27. 26 NutSemWait:
  28. 27 /* prologue: function */
  29. 28 /* frame size = 0 */
  30. 29 /* stack size = 0 */
  31. 30 .L__stack_usage = 0
  32. 31 0000 FC01 movw r30,r24
  33. 32 0002 2281 ldd r18,Z+2
  34. 33 0004 3381 ldd r19,Z+3
  35. 34 0006 2150 subi r18,1
  36. 35 0008 3109 sbc r19,__zero_reg__
  37. 36 000a 3383 std Z+3,r19
  38. 37 000c 2283 std Z+2,r18
  39. 38 000e 37FF sbrs r19,7
  40. 39 0010 00C0 rjmp .L2
  41. 40 0012 40E0 ldi r20,0
  42. 41 0014 50E0 ldi r21,0
  43. 42 0016 BA01 movw r22,r20
  44. 43 0018 0C94 0000 jmp NutEventWaitNext
  45. 44 .L2:
  46. 45 001c 0895 ret
  47. 46 .size NutSemWait, .-NutSemWait
  48. 47 .section .text.NutSemPost,"ax",@progbits
  49. 48 .global NutSemPost
  50. 49 .type NutSemPost, @function
  51. 50 NutSemPost:
  52. 51 /* prologue: function */
  53. 52 /* frame size = 0 */
  54. 53 /* stack size = 0 */
  55. 54 .L__stack_usage = 0
  56. 55 0000 FC01 movw r30,r24
  57. 56 0002 2281 ldd r18,Z+2
  58. 57 0004 3381 ldd r19,Z+3
  59. GAS LISTING /tmp/ccqZRq6Z.s page 2
  60. 58 0006 2F5F subi r18,-1
  61. 59 0008 3F4F sbci r19,-1
  62. 60 000a 3383 std Z+3,r19
  63. 61 000c 2283 std Z+2,r18
  64. 62 000e 1216 cp __zero_reg__,r18
  65. 63 0010 1306 cpc __zero_reg__,r19
  66. 64 0012 04F0 brlt .L5
  67. 65 0014 0C94 0000 jmp NutEventPost
  68. 66 .L5:
  69. 67 0018 0895 ret
  70. 68 .size NutSemPost, .-NutSemPost
  71. 69 .section .text.NutSemTryWait,"ax",@progbits
  72. 70 .global NutSemTryWait
  73. 71 .type NutSemTryWait, @function
  74. 72 NutSemTryWait:
  75. 73 /* prologue: function */
  76. 74 /* frame size = 0 */
  77. 75 /* stack size = 0 */
  78. 76 .L__stack_usage = 0
  79. 77 0000 FC01 movw r30,r24
  80. 78 0002 2281 ldd r18,Z+2
  81. 79 0004 3381 ldd r19,Z+3
  82. 80 0006 1216 cp __zero_reg__,r18
  83. 81 0008 1306 cpc __zero_reg__,r19
  84. 82 000a 04F4 brge .L9
  85. 83 000c 0E94 0000 call NutSemWait
  86. 84 0010 80E0 ldi r24,0
  87. 85 0012 90E0 ldi r25,0
  88. 86 0014 0895 ret
  89. 87 .L9:
  90. 88 0016 8FEF ldi r24,lo8(-1)
  91. 89 0018 9FEF ldi r25,lo8(-1)
  92. 90 001a 0895 ret
  93. 91 .size NutSemTryWait, .-NutSemTryWait
  94. 92 .section .text.NutSemDestroy,"ax",@progbits
  95. 93 .global NutSemDestroy
  96. 94 .type NutSemDestroy, @function
  97. 95 NutSemDestroy:
  98. 96 /* prologue: function */
  99. 97 /* frame size = 0 */
  100. 98 /* stack size = 0 */
  101. 99 .L__stack_usage = 0
  102. 100 0000 FC01 movw r30,r24
  103. 101 0002 2081 ld r18,Z
  104. 102 0004 3181 ldd r19,Z+1
  105. 103 0006 2F3F cpi r18,-1
  106. 104 0008 FFEF ldi r31,-1
  107. 105 000a 3F07 cpc r19,r31
  108. 106 000c 01F0 breq .L13
  109. 107 000e 81E0 ldi r24,lo8(1)
  110. 108 0010 90E0 ldi r25,0
  111. 109 0012 232B or r18,r19
  112. 110 0014 01F4 brne .L12
  113. 111 0016 80E0 ldi r24,0
  114. 112 0018 90E0 ldi r25,0
  115. 113 .L12:
  116. 114 001a 9195 neg r25
  117. GAS LISTING /tmp/ccqZRq6Z.s page 3
  118. 115 001c 8195 neg r24
  119. 116 001e 9109 sbc r25,__zero_reg__
  120. 117 0020 0895 ret
  121. 118 .L13:
  122. 119 0022 80E0 ldi r24,0
  123. 120 0024 90E0 ldi r25,0
  124. 121 0026 0895 ret
  125. 122 .size NutSemDestroy, .-NutSemDestroy
  126. 123 .ident "GCC: (GNU) 5.3.0"
  127. GAS LISTING /tmp/ccqZRq6Z.s page 4
  128. DEFINED SYMBOLS
  129. *ABS*:0000000000000000 semaphore.c
  130. /tmp/ccqZRq6Z.s:2 *ABS*:000000000000003e __SP_H__
  131. /tmp/ccqZRq6Z.s:3 *ABS*:000000000000003d __SP_L__
  132. /tmp/ccqZRq6Z.s:4 *ABS*:000000000000003f __SREG__
  133. /tmp/ccqZRq6Z.s:5 *ABS*:000000000000003b __RAMPZ__
  134. /tmp/ccqZRq6Z.s:6 *ABS*:0000000000000000 __tmp_reg__
  135. /tmp/ccqZRq6Z.s:7 *ABS*:0000000000000001 __zero_reg__
  136. /tmp/ccqZRq6Z.s:11 .text.NutSemInit:0000000000000000 NutSemInit
  137. /tmp/ccqZRq6Z.s:26 .text.NutSemWait:0000000000000000 NutSemWait
  138. /tmp/ccqZRq6Z.s:50 .text.NutSemPost:0000000000000000 NutSemPost
  139. /tmp/ccqZRq6Z.s:72 .text.NutSemTryWait:0000000000000000 NutSemTryWait
  140. /tmp/ccqZRq6Z.s:95 .text.NutSemDestroy:0000000000000000 NutSemDestroy
  141. UNDEFINED SYMBOLS
  142. NutEventWaitNext
  143. NutEventPost