base64_decode.lst 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. GAS LISTING /tmp/cckmrAIh.s page 1
  2. 1 .file "base64_decode.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.NutDecodeBase64,"ax",@progbits
  10. 9 .global NutDecodeBase64
  11. 10 .type NutDecodeBase64, @function
  12. 11 NutDecodeBase64:
  13. 12 0000 CF93 push r28
  14. 13 0002 DF93 push r29
  15. 14 /* prologue: function */
  16. 15 /* frame size = 0 */
  17. 16 /* stack size = 2 */
  18. 17 .L__stack_usage = 2
  19. 18 0004 C82F mov r28,r24
  20. 19 0006 D92F mov r29,r25
  21. 20 0008 DC01 movw r26,r24
  22. 21 000a 20E0 ldi r18,0
  23. 22 000c 3FEF ldi r19,lo8(-1)
  24. 23 .L2:
  25. 24 000e E991 ld r30,Y+
  26. 25 0010 EE23 tst r30
  27. 26 0012 01F0 breq .L14
  28. 27 0014 E032 cpi r30,lo8(32)
  29. 28 0016 04F0 brlt .L9
  30. 29 0018 0E2E mov __tmp_reg__,r30
  31. 30 001a 000C lsl r0
  32. 31 001c FF0B sbc r31,r31
  33. 32 001e E050 subi r30,lo8(-(base64dtab-32))
  34. 33 0020 F040 sbci r31,hi8(-(base64dtab-32))
  35. 34 /* #APP */
  36. 35 ; 128 "../../nut/gorp/codec/base64_decode.c" 1
  37. 36 0022 E491 lpm r30, Z
  38. 37
  39. 38 ; 0 "" 2
  40. 39 /* #NOAPP */
  41. 40 0024 EF3F cpi r30,lo8(-1)
  42. 41 0026 01F0 breq .L9
  43. 42 0028 41E0 ldi r20,lo8(1)
  44. 43 002a 420F add r20,r18
  45. 44 002c 2230 cpi r18,lo8(2)
  46. 45 002e 01F0 breq .L4
  47. 46 0030 2330 cpi r18,lo8(3)
  48. 47 0032 01F0 breq .L5
  49. 48 0034 2130 cpi r18,lo8(1)
  50. 49 0036 01F4 brne .L11
  51. 50 0038 2E2F mov r18,r30
  52. 51 003a 2073 andi r18,lo8(48)
  53. 52 003c 522F mov r21,r18
  54. 53 003e 5295 swap r21
  55. 54 0040 5F70 andi r21,lo8(15)
  56. 55 0042 64E0 ldi r22,lo8(4)
  57. 56 0044 00C0 rjmp .L12
  58. 57 .L4:
  59. GAS LISTING /tmp/cckmrAIh.s page 2
  60. 58 0046 2E2F mov r18,r30
  61. 59 0048 2C73 andi r18,lo8(60)
  62. 60 004a 522F mov r21,r18
  63. 61 004c 5695 lsr r21
  64. 62 004e 5695 lsr r21
  65. 63 0050 60E1 ldi r22,lo8(16)
  66. 64 .L12:
  67. 65 0052 3602 muls r19,r22
  68. 66 0054 9001 movw r18,r0
  69. 67 0056 1124 clr __zero_reg__
  70. 68 0058 252B or r18,r21
  71. 69 005a 2C93 st X,r18
  72. 70 005c 242F mov r18,r20
  73. 71 005e 1196 adiw r26,1
  74. 72 0060 00C0 rjmp .L3
  75. 73 .L5:
  76. 74 0062 40E4 ldi r20,lo8(64)
  77. 75 0064 3402 muls r19,r20
  78. 76 0066 9001 movw r18,r0
  79. 77 0068 1124 clr __zero_reg__
  80. 78 006a 2E2B or r18,r30
  81. 79 006c 2C93 st X,r18
  82. 80 006e 1196 adiw r26,1
  83. 81 0070 20E0 ldi r18,0
  84. 82 0072 00C0 rjmp .L3
  85. 83 .L9:
  86. 84 0074 E32F mov r30,r19
  87. 85 0076 00C0 rjmp .L3
  88. 86 .L11:
  89. 87 0078 242F mov r18,r20
  90. 88 .L3:
  91. 89 007a 3E2F mov r19,r30
  92. 90 007c 00C0 rjmp .L2
  93. 91 .L14:
  94. 92 007e 1C92 st X,__zero_reg__
  95. 93 /* epilogue start */
  96. 94 0080 DF91 pop r29
  97. 95 0082 CF91 pop r28
  98. 96 0084 0895 ret
  99. 97 .size NutDecodeBase64, .-NutDecodeBase64
  100. 98 .section .progmem.data,"a",@progbits
  101. 99 .type base64dtab, @object
  102. 100 .size base64dtab, 96
  103. 101 base64dtab:
  104. 102 0000 FF .byte -1
  105. 103 0001 FF .byte -1
  106. 104 0002 FF .byte -1
  107. 105 0003 FF .byte -1
  108. 106 0004 FF .byte -1
  109. 107 0005 FF .byte -1
  110. 108 0006 FF .byte -1
  111. 109 0007 FF .byte -1
  112. 110 0008 FF .byte -1
  113. 111 0009 FF .byte -1
  114. 112 000a FF .byte -1
  115. 113 000b 3E .byte 62
  116. 114 000c FF .byte -1
  117. GAS LISTING /tmp/cckmrAIh.s page 3
  118. 115 000d FF .byte -1
  119. 116 000e FF .byte -1
  120. 117 000f 3F .byte 63
  121. 118 0010 34 .byte 52
  122. 119 0011 35 .byte 53
  123. 120 0012 36 .byte 54
  124. 121 0013 37 .byte 55
  125. 122 0014 38 .byte 56
  126. 123 0015 39 .byte 57
  127. 124 0016 3A .byte 58
  128. 125 0017 3B .byte 59
  129. 126 0018 3C .byte 60
  130. 127 0019 3D .byte 61
  131. 128 001a FF .byte -1
  132. 129 001b FF .byte -1
  133. 130 001c FF .byte -1
  134. 131 001d FF .byte -1
  135. 132 001e FF .byte -1
  136. 133 001f FF .byte -1
  137. 134 0020 FF .byte -1
  138. 135 0021 00 .byte 0
  139. 136 0022 01 .byte 1
  140. 137 0023 02 .byte 2
  141. 138 0024 03 .byte 3
  142. 139 0025 04 .byte 4
  143. 140 0026 05 .byte 5
  144. 141 0027 06 .byte 6
  145. 142 0028 07 .byte 7
  146. 143 0029 08 .byte 8
  147. 144 002a 09 .byte 9
  148. 145 002b 0A .byte 10
  149. 146 002c 0B .byte 11
  150. 147 002d 0C .byte 12
  151. 148 002e 0D .byte 13
  152. 149 002f 0E .byte 14
  153. 150 0030 0F .byte 15
  154. 151 0031 10 .byte 16
  155. 152 0032 11 .byte 17
  156. 153 0033 12 .byte 18
  157. 154 0034 13 .byte 19
  158. 155 0035 14 .byte 20
  159. 156 0036 15 .byte 21
  160. 157 0037 16 .byte 22
  161. 158 0038 17 .byte 23
  162. 159 0039 18 .byte 24
  163. 160 003a 19 .byte 25
  164. 161 003b FF .byte -1
  165. 162 003c FF .byte -1
  166. 163 003d FF .byte -1
  167. 164 003e FF .byte -1
  168. 165 003f FF .byte -1
  169. 166 0040 FF .byte -1
  170. 167 0041 1A .byte 26
  171. 168 0042 1B .byte 27
  172. 169 0043 1C .byte 28
  173. 170 0044 1D .byte 29
  174. 171 0045 1E .byte 30
  175. GAS LISTING /tmp/cckmrAIh.s page 4
  176. 172 0046 1F .byte 31
  177. 173 0047 20 .byte 32
  178. 174 0048 21 .byte 33
  179. 175 0049 22 .byte 34
  180. 176 004a 23 .byte 35
  181. 177 004b 24 .byte 36
  182. 178 004c 25 .byte 37
  183. 179 004d 26 .byte 38
  184. 180 004e 27 .byte 39
  185. 181 004f 28 .byte 40
  186. 182 0050 29 .byte 41
  187. 183 0051 2A .byte 42
  188. 184 0052 2B .byte 43
  189. 185 0053 2C .byte 44
  190. 186 0054 2D .byte 45
  191. 187 0055 2E .byte 46
  192. 188 0056 2F .byte 47
  193. 189 0057 30 .byte 48
  194. 190 0058 31 .byte 49
  195. 191 0059 32 .byte 50
  196. 192 005a 33 .byte 51
  197. 193 005b FF .byte -1
  198. 194 005c FF .byte -1
  199. 195 005d FF .byte -1
  200. 196 005e FF .byte -1
  201. 197 005f FF .byte -1
  202. 198 .ident "GCC: (GNU) 5.3.0"
  203. GAS LISTING /tmp/cckmrAIh.s page 5
  204. DEFINED SYMBOLS
  205. *ABS*:0000000000000000 base64_decode.c
  206. /tmp/cckmrAIh.s:2 *ABS*:000000000000003e __SP_H__
  207. /tmp/cckmrAIh.s:3 *ABS*:000000000000003d __SP_L__
  208. /tmp/cckmrAIh.s:4 *ABS*:000000000000003f __SREG__
  209. /tmp/cckmrAIh.s:5 *ABS*:000000000000003b __RAMPZ__
  210. /tmp/cckmrAIh.s:6 *ABS*:0000000000000000 __tmp_reg__
  211. /tmp/cckmrAIh.s:7 *ABS*:0000000000000001 __zero_reg__
  212. /tmp/cckmrAIh.s:11 .text.NutDecodeBase64:0000000000000000 NutDecodeBase64
  213. /tmp/cckmrAIh.s:101 .progmem.data:0000000000000000 base64dtab
  214. NO UNDEFINED SYMBOLS