fields.sbk 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. .section ".data"
  2. .global x
  3. .type x,#object
  4. .size x,16
  5. .align 4
  6. x:
  7. .word 0x1
  8. .byte 0x2
  9. .skip 3
  10. .byte 0x0
  11. .byte 0x34
  12. .skip 2
  13. .byte 0xa
  14. .byte 0x6
  15. .skip 2
  16. .global i
  17. .type i,#object
  18. .size i,4
  19. .align 4
  20. i:
  21. .word 0x10
  22. .global y
  23. .type y,#object
  24. .size y,8
  25. .align 4
  26. y:
  27. .byte 0xe0
  28. .skip 3
  29. .byte 0x0
  30. .byte 0x0
  31. .byte 0x0
  32. .byte 0x9
  33. .global main
  34. .section ".text"
  35. .align 4
  36. main:
  37. save %sp,-96,%sp
  38. set .L4,%o0
  39. set x,%i5
  40. ld [%i5],%o1
  41. set x+4,%i5
  42. ldsb [%i5],%o2
  43. set x+8,%i5
  44. ld [%i5],%i5
  45. sra %i5,20,%o3
  46. set x+8,%i5
  47. ld [%i5],%i5
  48. sll %i5,12,%i5
  49. sra %i5,28,%o4
  50. set x+12,%i5
  51. ld [%i5],%i5
  52. sll %i5,4,%i5
  53. sra %i5,29,%o5
  54. set x+13,%i5
  55. ldsb [%i5],%i5
  56. st %i5,[%sp+4*6+68]
  57. call printf; nop
  58. set .L10,%o0
  59. set y,%i5
  60. ld [%i5],%i5
  61. srl %i5,30,%i4
  62. set 3,%i3
  63. and %i4,%i3,%o1
  64. srl %i5,26,%i5
  65. set 15,%i4
  66. and %i5,%i4,%o2
  67. set y+4,%i5
  68. ld [%i5],%o3
  69. call printf; nop
  70. set x+8,%i5
  71. ld [%i5],%i4
  72. set 0xfff0ffff,%i3
  73. and %i4,%i3,%i4
  74. set i,%i3
  75. ld [%i3],%i3
  76. sll %i3,28,%i3
  77. sra %i3,28,%i3
  78. sll %i3,16,%i3
  79. set 0xf0000,%i2
  80. and %i3,%i2,%i3
  81. or %i4,%i3,%i4
  82. st %i4,[%i5]
  83. set x+12,%i5
  84. ld [%i5],%i4
  85. set 0xf1ffffff,%i3
  86. and %i4,%i3,%i4
  87. st %i4,[%i5]
  88. set .L4,%o0
  89. set x,%i5
  90. ld [%i5],%o1
  91. set x+4,%i5
  92. ldsb [%i5],%o2
  93. set x+8,%i5
  94. ld [%i5],%i5
  95. sra %i5,20,%o3
  96. set x+8,%i5
  97. ld [%i5],%i5
  98. sll %i5,12,%i5
  99. sra %i5,28,%o4
  100. set x+12,%i5
  101. ld [%i5],%i5
  102. sll %i5,4,%i5
  103. sra %i5,29,%o5
  104. set x+13,%i5
  105. ldsb [%i5],%i5
  106. st %i5,[%sp+4*6+68]
  107. call printf; nop
  108. set y,%i5
  109. ld [%i5],%i4
  110. set 0x3fffffff,%i3
  111. and %i4,%i3,%i4
  112. set 0x80000000,%i3
  113. or %i4,%i3,%i4
  114. st %i4,[%i5]
  115. set y+4,%i5
  116. set i,%i4
  117. ld [%i4],%i4
  118. st %i4,[%i5]
  119. set .L10,%o0
  120. set y,%i5
  121. ld [%i5],%i5
  122. srl %i5,30,%i4
  123. set 3,%i3
  124. and %i4,%i3,%o1
  125. srl %i5,26,%i5
  126. set 15,%i4
  127. and %i5,%i4,%o2
  128. set y+4,%i5
  129. ld [%i5],%o3
  130. call printf; nop
  131. set x,%o0
  132. call f2; nop
  133. mov %g0,%i0
  134. .L3:
  135. ret; restore
  136. .type main,#function
  137. .size main,.-main
  138. .global f1
  139. .align 4
  140. f1:
  141. save %sp,-96,%sp
  142. ld [%i0],%i5
  143. set 0xc3ffffff,%i4
  144. and %i5,%i4,%i5
  145. st %i5,[%i0]
  146. ld [%i0],%i5
  147. set 0x3fffffff,%i4
  148. and %i5,%i4,%i5
  149. set 3,%i4
  150. and %g0,%i4,%i4
  151. sll %i4,30,%i4
  152. set 0xc0000000,%i3
  153. and %i4,%i3,%i4
  154. or %i5,%i4,%i5
  155. st %i5,[%i0]
  156. ld [%i0],%i5
  157. set 0x3c000000,%i4
  158. and %i5,%i4,%i5
  159. cmp %i5,%g0; be .L22; nop
  160. set .L24,%o0
  161. call printf; nop
  162. .L22:
  163. ld [%i0],%i5
  164. set 0xc0000000,%i4
  165. or %i5,%i4,%i5
  166. st %i5,[%i0]
  167. ld [%i0],%i5
  168. set 0x3c000000,%i4
  169. or %i5,%i4,%i5
  170. st %i5,[%i0]
  171. set .L25,%o0
  172. ld [%i0],%i5
  173. srl %i5,30,%i4
  174. set 3,%i3
  175. and %i4,%i3,%o1
  176. srl %i5,26,%i5
  177. set 15,%i4
  178. and %i5,%i4,%o2
  179. call printf; nop
  180. mov %g0,%i0
  181. .L21:
  182. ret; restore
  183. .type f1,#function
  184. .size f1,.-f1
  185. .global f2
  186. .align 4
  187. f2:
  188. save %sp,-96,%sp
  189. set i,%i4
  190. ld [%i4],%i4
  191. cmp %i4,0; bne .L28; nop
  192. set 1,%i5
  193. ba .L29; nop
  194. .L28:
  195. mov %g0,%i5
  196. .L29:
  197. ld [%i0],%i4
  198. set 0x3fffffff,%i3
  199. and %i4,%i3,%i4
  200. mov %i5,%i3
  201. set 3,%i2
  202. and %i3,%i2,%i3
  203. sll %i3,30,%i3
  204. set 0xc0000000,%i2
  205. and %i3,%i2,%i3
  206. or %i4,%i3,%i4
  207. st %i4,[%i0]
  208. mov %i0,%o0
  209. call f1; nop
  210. ld [%i0],%i4
  211. set 0xc3ffffff,%i3
  212. and %i4,%i3,%i4
  213. mov %g0,%i3
  214. set 15,%i2
  215. and %i3,%i2,%i3
  216. sll %i3,26,%i3
  217. set 0x3c000000,%i2
  218. and %i3,%i2,%i3
  219. or %i4,%i3,%i4
  220. st %i4,[%i0]
  221. mov %g0,%i0
  222. .L26:
  223. ret; restore
  224. .type f2,#function
  225. .size f2,.-f2
  226. .section ".rodata"
  227. .align 1
  228. .L25:
  229. .byte 112
  230. .byte 45
  231. .byte 62
  232. .byte 97
  233. .byte 32
  234. .byte 61
  235. .byte 32
  236. .byte 48
  237. .byte 120
  238. .byte 37
  239. .byte 120
  240. .byte 44
  241. .byte 32
  242. .byte 112
  243. .byte 45
  244. .byte 62
  245. .byte 98
  246. .byte 32
  247. .byte 61
  248. .byte 32
  249. .byte 48
  250. .byte 120
  251. .byte 37
  252. .byte 120
  253. .byte 10
  254. .byte 0
  255. .align 1
  256. .L24:
  257. .byte 112
  258. .byte 45
  259. .byte 62
  260. .byte 98
  261. .byte 32
  262. .byte 33
  263. .byte 61
  264. .byte 32
  265. .byte 48
  266. .byte 33
  267. .byte 10
  268. .byte 0
  269. .align 1
  270. .L10:
  271. .byte 121
  272. .byte 32
  273. .byte 61
  274. .byte 32
  275. .byte 37
  276. .byte 100
  277. .byte 32
  278. .byte 37
  279. .byte 100
  280. .byte 32
  281. .byte 37
  282. .byte 100
  283. .byte 10
  284. .byte 0
  285. .align 1
  286. .L4:
  287. .byte 120
  288. .byte 32
  289. .byte 61
  290. .byte 32
  291. .byte 37
  292. .byte 100
  293. .byte 32
  294. .byte 37
  295. .byte 100
  296. .byte 32
  297. .byte 37
  298. .byte 100
  299. .byte 32
  300. .byte 37
  301. .byte 100
  302. .byte 32
  303. .byte 37
  304. .byte 100
  305. .byte 32
  306. .byte 37
  307. .byte 100
  308. .byte 10
  309. .byte 0