ipcsum.lst 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. GAS LISTING /tmp/ccHbsRtS.s page 1
  2. 1 .file "ipcsum.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.NutIpChkSumPartial,"ax",@progbits
  10. 9 .global NutIpChkSumPartial
  11. 10 .type NutIpChkSumPartial, @function
  12. 11 NutIpChkSumPartial:
  13. 12 /* prologue: function */
  14. 13 /* frame size = 0 */
  15. 14 /* stack size = 0 */
  16. 15 .L__stack_usage = 0
  17. 16 0000 FB01 movw r30,r22
  18. 17 0002 A0E0 ldi r26,0
  19. 18 0004 B0E0 ldi r27,0
  20. 19 .L2:
  21. 20 0006 4230 cpi r20,2
  22. 21 0008 5105 cpc r21,__zero_reg__
  23. 22 000a 04F0 brlt .L11
  24. 23 000c 2191 ld r18,Z+
  25. 24 000e 3191 ld r19,Z+
  26. 25 0010 820F add r24,r18
  27. 26 0012 931F adc r25,r19
  28. 27 0014 A11D adc r26,__zero_reg__
  29. 28 0016 B11D adc r27,__zero_reg__
  30. 29 0018 4250 subi r20,2
  31. 30 001a 5109 sbc r21,__zero_reg__
  32. 31 001c 00C0 rjmp .L2
  33. 32 .L11:
  34. 33 001e 452B or r20,r21
  35. 34 0020 01F0 breq .L5
  36. 35 0022 2081 ld r18,Z
  37. 36 0024 820F add r24,r18
  38. 37 0026 911D adc r25,__zero_reg__
  39. 38 0028 A11D adc r26,__zero_reg__
  40. 39 002a B11D adc r27,__zero_reg__
  41. 40 .L5:
  42. 41 002c AD01 movw r20,r26
  43. 42 002e 6627 clr r22
  44. 43 0030 7727 clr r23
  45. 44 0032 4115 cp r20,__zero_reg__
  46. 45 0034 5105 cpc r21,__zero_reg__
  47. 46 0036 6105 cpc r22,__zero_reg__
  48. 47 0038 7105 cpc r23,__zero_reg__
  49. 48 003a 01F0 breq .L12
  50. 49 003c AA27 clr r26
  51. 50 003e BB27 clr r27
  52. 51 0040 840F add r24,r20
  53. 52 0042 951F adc r25,r21
  54. 53 0044 A61F adc r26,r22
  55. 54 0046 B71F adc r27,r23
  56. 55 0048 00C0 rjmp .L5
  57. 56 .L12:
  58. 57 /* epilogue start */
  59. GAS LISTING /tmp/ccHbsRtS.s page 2
  60. 58 004a 0895 ret
  61. 59 .size NutIpChkSumPartial, .-NutIpChkSumPartial
  62. 60 .section .text.NutIpChkSum,"ax",@progbits
  63. 61 .global NutIpChkSum
  64. 62 .type NutIpChkSum, @function
  65. 63 NutIpChkSum:
  66. 64 /* prologue: function */
  67. 65 /* frame size = 0 */
  68. 66 /* stack size = 0 */
  69. 67 .L__stack_usage = 0
  70. 68 0000 0E94 0000 call NutIpChkSumPartial
  71. 69 0004 8095 com r24
  72. 70 0006 9095 com r25
  73. 71 0008 0895 ret
  74. 72 .size NutIpChkSum, .-NutIpChkSum
  75. 73 .section .text.NutIpPseudoChkSumPartial,"ax",@progbits
  76. 74 .global NutIpPseudoChkSumPartial
  77. 75 .type NutIpPseudoChkSumPartial, @function
  78. 76 NutIpPseudoChkSumPartial:
  79. 77 0000 EF92 push r14
  80. 78 0002 FF92 push r15
  81. 79 0004 0F93 push r16
  82. 80 0006 CF93 push r28
  83. 81 0008 DF93 push r29
  84. 82 000a CDB7 in r28,__SP_L__
  85. 83 000c DEB7 in r29,__SP_H__
  86. 84 000e 2C97 sbiw r28,12
  87. 85 0010 0FB6 in __tmp_reg__,__SREG__
  88. 86 0012 F894 cli
  89. 87 0014 DEBF out __SP_H__,r29
  90. 88 0016 0FBE out __SREG__,__tmp_reg__
  91. 89 0018 CDBF out __SP_L__,r28
  92. 90 /* prologue: function */
  93. 91 /* frame size = 12 */
  94. 92 /* stack size = 17 */
  95. 93 .L__stack_usage = 17
  96. 94 001a 6983 std Y+1,r22
  97. 95 001c 7A83 std Y+2,r23
  98. 96 001e 8B83 std Y+3,r24
  99. 97 0020 9C83 std Y+4,r25
  100. 98 0022 2D83 std Y+5,r18
  101. 99 0024 3E83 std Y+6,r19
  102. 100 0026 4F83 std Y+7,r20
  103. 101 0028 5887 std Y+8,r21
  104. 102 002a 1986 std Y+9,__zero_reg__
  105. 103 002c 0A87 std Y+10,r16
  106. 104 002e FC86 std Y+12,r15
  107. 105 0030 EB86 std Y+11,r14
  108. 106 0032 4CE0 ldi r20,lo8(12)
  109. 107 0034 50E0 ldi r21,0
  110. 108 0036 BE01 movw r22,r28
  111. 109 0038 6F5F subi r22,-1
  112. 110 003a 7F4F sbci r23,-1
  113. 111 003c 80E0 ldi r24,0
  114. 112 003e 90E0 ldi r25,0
  115. 113 0040 0E94 0000 call NutIpChkSumPartial
  116. 114 0044 BC01 movw r22,r24
  117. GAS LISTING /tmp/ccHbsRtS.s page 3
  118. 115 0046 80E0 ldi r24,0
  119. 116 0048 90E0 ldi r25,0
  120. 117 /* epilogue start */
  121. 118 004a 2C96 adiw r28,12
  122. 119 004c 0FB6 in __tmp_reg__,__SREG__
  123. 120 004e F894 cli
  124. 121 0050 DEBF out __SP_H__,r29
  125. 122 0052 0FBE out __SREG__,__tmp_reg__
  126. 123 0054 CDBF out __SP_L__,r28
  127. 124 0056 DF91 pop r29
  128. 125 0058 CF91 pop r28
  129. 126 005a 0F91 pop r16
  130. 127 005c FF90 pop r15
  131. 128 005e EF90 pop r14
  132. 129 0060 0895 ret
  133. 130 .size NutIpPseudoChkSumPartial, .-NutIpPseudoChkSumPartial
  134. 131 .ident "GCC: (GNU) 5.3.0"
  135. GAS LISTING /tmp/ccHbsRtS.s page 4
  136. DEFINED SYMBOLS
  137. *ABS*:0000000000000000 ipcsum.c
  138. /tmp/ccHbsRtS.s:2 *ABS*:000000000000003e __SP_H__
  139. /tmp/ccHbsRtS.s:3 *ABS*:000000000000003d __SP_L__
  140. /tmp/ccHbsRtS.s:4 *ABS*:000000000000003f __SREG__
  141. /tmp/ccHbsRtS.s:5 *ABS*:000000000000003b __RAMPZ__
  142. /tmp/ccHbsRtS.s:6 *ABS*:0000000000000000 __tmp_reg__
  143. /tmp/ccHbsRtS.s:7 *ABS*:0000000000000001 __zero_reg__
  144. /tmp/ccHbsRtS.s:11 .text.NutIpChkSumPartial:0000000000000000 NutIpChkSumPartial
  145. /tmp/ccHbsRtS.s:63 .text.NutIpChkSum:0000000000000000 NutIpChkSum
  146. /tmp/ccHbsRtS.s:76 .text.NutIpPseudoChkSumPartial:0000000000000000 NutIpPseudoChkSumPartial
  147. NO UNDEFINED SYMBOLS