Advertisement
Guest User

Untitled

a guest
Apr 18th, 2015
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.12 KB | None | 0 0
  1. .text
  2. .abicalls
  3. .section .mdebug.abi64,"",@progbits
  4. .nan legacy
  5. .file "brooks/cheri_helloworld.c"
  6. .text
  7. .globl main
  8. .align 3
  9. .type main,@function
  10. .set nomicromips
  11. .set nomips16
  12. .ent main
  13. main: # @main
  14. .frame $fp,160,$ra
  15. .mask 0x00000000,0
  16. .fmask 0xd0030000,-4
  17. .set noreorder
  18. .set nomacro
  19. .set noat
  20. # BB#0: # %entry
  21. daddiu $sp, $sp, -160
  22. sd $ra, 152($sp) # 8-byte Folded Spill
  23. sd $fp, 144($sp) # 8-byte Folded Spill
  24. sd $gp, 136($sp) # 8-byte Folded Spill
  25. sd $17, 128($sp) # 8-byte Folded Spill
  26. sd $16, 120($sp) # 8-byte Folded Spill
  27. move $fp, $sp
  28. lui $1, %hi(%neg(%gp_rel(main)))
  29. daddu $1, $1, $25
  30. daddiu $gp, $1, %lo(%neg(%gp_rel(main)))
  31. ld $25, %call16(cheri_fd_new)($gp)
  32. daddiu $16, $fp, 32
  33. daddiu $4, $zero, 1
  34. jalr $25
  35. move $5, $16
  36. bltz $2, $BB0_7
  37. nop
  38. # BB#1: # %if.end
  39. ld $1, %got_page($.str1)($gp)
  40. ld $25, %call16(sandbox_class_new)($gp)
  41. daddiu $4, $1, %got_ofst($.str1)
  42. daddiu $6, $fp, 112
  43. jalr $25
  44. lui $5, 64
  45. bltz $2, $BB0_8
  46. nop
  47. # BB#2: # %if.end4
  48. ld $4, 112($fp)
  49. ld $25, %call16(sandbox_object_new)($gp)
  50. jalr $25
  51. daddiu $5, $fp, 104
  52. bltz $2, $BB0_9
  53. nop
  54. # BB#3: # %if.end8
  55. ld $4, 112($fp)
  56. ld $1, %got_page($.str4)($gp)
  57. ld $25, %call16(sandbox_class_method_declare)($gp)
  58. daddiu $6, $1, %got_ofst($.str4)
  59. jalr $25
  60. daddiu $5, $zero, 1
  61. ld $4, 112($fp)
  62. ld $1, %got_page($.str5)($gp)
  63. ld $25, %call16(sandbox_class_method_declare)($gp)
  64. daddiu $6, $1, %got_ofst($.str5)
  65. jalr $25
  66. daddiu $5, $zero, 2
  67. ld $4, 112($fp)
  68. ld $1, %got_page($.str6)($gp)
  69. ld $25, %call16(sandbox_class_method_declare)($gp)
  70. daddiu $6, $1, %got_ofst($.str6)
  71. jalr $25
  72. daddiu $5, $zero, 3
  73. ld $4, 104($fp)
  74. clc $c3, $16, 0($c0)
  75. daddiu $17, $16, 32
  76. clc $c4, $17, 0($c0)
  77. sd $zero, 8($sp)
  78. ld $25, %call16(sandbox_object_cinvoke)($gp)
  79. cfromptr $c5, $c0, $zero
  80. daddiu $5, $zero, 1
  81. daddiu $6, $zero, 0
  82. daddiu $7, $zero, 0
  83. daddiu $8, $zero, 0
  84. daddiu $9, $zero, 0
  85. daddiu $10, $zero, 0
  86. daddiu $11, $zero, 0
  87. sd $zero, 0($sp)
  88. cincbase $c6, $c5, $zero
  89. cincbase $c7, $c5, $zero
  90. cincbase $c8, $c5, $zero
  91. cincbase $c9, $c5, $zero
  92. jalr $25
  93. cincbase $c10, $c5, $zero
  94. lui $1, 2
  95. daddiu $1, $1, -7616
  96. bne $2, $1, $BB0_10
  97. nop
  98. # BB#4: # %cheri_helloworld.exit
  99. ld $4, 104($fp)
  100. clc $c3, $16, 0($c0)
  101. clc $c4, $17, 0($c0)
  102. sd $zero, 8($sp)
  103. ld $25, %call16(sandbox_object_cinvoke)($gp)
  104. cfromptr $c5, $c0, $zero
  105. daddiu $5, $zero, 2
  106. daddiu $6, $zero, 0
  107. daddiu $7, $zero, 0
  108. daddiu $8, $zero, 0
  109. daddiu $9, $zero, 0
  110. daddiu $10, $zero, 0
  111. daddiu $11, $zero, 0
  112. sd $zero, 0($sp)
  113. cincbase $c6, $c5, $zero
  114. cincbase $c7, $c5, $zero
  115. cincbase $c8, $c5, $zero
  116. cincbase $c9, $c5, $zero
  117. jalr $25
  118. cincbase $c10, $c5, $zero
  119. bltz $2, $BB0_11
  120. nop
  121. # BB#5: # %cheri_helloworld.exit14
  122. ld $4, 104($fp)
  123. clc $c3, $16, 0($c0)
  124. daddiu $17, $16, 32
  125. clc $c4, $17, 0($c0)
  126. sd $zero, 8($sp)
  127. ld $25, %call16(sandbox_object_cinvoke)($gp)
  128. cfromptr $c5, $c0, $zero
  129. daddiu $5, $zero, 3
  130. daddiu $6, $zero, 0
  131. daddiu $7, $zero, 0
  132. daddiu $8, $zero, 0
  133. daddiu $9, $zero, 0
  134. daddiu $10, $zero, 0
  135. daddiu $11, $zero, 0
  136. sd $zero, 0($sp)
  137. cincbase $c6, $c5, $zero
  138. cincbase $c7, $c5, $zero
  139. cincbase $c8, $c5, $zero
  140. cincbase $c9, $c5, $zero
  141. jalr $25
  142. cincbase $c10, $c5, $zero
  143. daddiu $1, $zero, 12
  144. bne $2, $1, $BB0_12
  145. nop
  146. # BB#6: # %cheri_helloworld.exit16
  147. ld $1, %got_disp(hello_object)($gp)
  148. ld $2, %got_disp(__cheri_method.hello_object.call_cheri_system_helloworld)($gp)
  149. ld $2, 0($2)
  150. clc $c1, $1, 0($c0)
  151. daddiu $1, $1, 32
  152. clc $c2, $1, 0($c0)
  153. cfromptr $c3, $c0, $zero
  154. ld $25, %call16(cheri_invoke)($gp)
  155. daddiu $4, $zero, 0
  156. daddiu $5, $zero, 0
  157. daddiu $6, $zero, 0
  158. daddiu $7, $zero, 0
  159. daddiu $8, $zero, 0
  160. daddiu $9, $zero, 0
  161. daddiu $10, $zero, 0
  162. daddiu $11, $zero, 0
  163. cincbase $c4, $c3, $zero
  164. cincbase $c5, $c3, $zero
  165. cincbase $c6, $c3, $zero
  166. cincbase $c7, $c3, $zero
  167. cincbase $c8, $c3, $zero
  168. cincbase $c9, $c3, $zero
  169. jalr $25
  170. cincbase $c10, $c3, $zero
  171. ld $25, %call16(sandbox_object_destroy)($gp)
  172. jalr $25
  173. ld $4, 104($fp)
  174. ld $25, %call16(sandbox_class_destroy)($gp)
  175. jalr $25
  176. ld $4, 112($fp)
  177. clc $c3, $16, 0($c0)
  178. clc $c4, $17, 0($c0)
  179. ld $25, %call16(cheri_fd_destroy)($gp)
  180. jalr $25
  181. nop
  182. addiu $2, $zero, 0
  183. move $sp, $fp
  184. ld $16, 120($sp) # 8-byte Folded Reload
  185. ld $17, 128($sp) # 8-byte Folded Reload
  186. ld $gp, 136($sp) # 8-byte Folded Reload
  187. ld $fp, 144($sp) # 8-byte Folded Reload
  188. ld $ra, 152($sp) # 8-byte Folded Reload
  189. jr $ra
  190. daddiu $sp, $sp, 160
  191. $BB0_7: # %if.then
  192. ld $1, %got_page($.str)($gp)
  193. daddiu $5, $1, %got_ofst($.str)
  194. ld $25, %call16(err)($gp)
  195. jalr $25
  196. daddiu $4, $zero, 72
  197. $BB0_8: # %if.then3
  198. ld $1, %got_page($.str2)($gp)
  199. daddiu $5, $1, %got_ofst($.str2)
  200. ld $25, %call16(err)($gp)
  201. jalr $25
  202. daddiu $4, $zero, 72
  203. $BB0_9: # %if.then7
  204. ld $1, %got_page($.str3)($gp)
  205. daddiu $5, $1, %got_ofst($.str3)
  206. ld $25, %call16(err)($gp)
  207. jalr $25
  208. daddiu $4, $zero, 72
  209. $BB0_10: # %cond.false.i
  210. ld $1, %got_page($__func__.cheri_helloworld)($gp)
  211. ld $2, %got_page($.str7)($gp)
  212. ld $3, %got_page($.str8)($gp)
  213. daddiu $4, $1, %got_ofst($__func__.cheri_helloworld)
  214. daddiu $5, $2, %got_ofst($.str7)
  215. daddiu $7, $3, %got_ofst($.str8)
  216. ld $25, %call16(__assert)($gp)
  217. jalr $25
  218. daddiu $6, $zero, 71
  219. $BB0_11: # %cond.false10.i
  220. ld $1, %got_page($__func__.cheri_helloworld)($gp)
  221. ld $2, %got_page($.str7)($gp)
  222. ld $3, %got_page($.str9)($gp)
  223. daddiu $4, $1, %got_ofst($__func__.cheri_helloworld)
  224. daddiu $5, $2, %got_ofst($.str7)
  225. daddiu $7, $3, %got_ofst($.str9)
  226. ld $25, %call16(__assert)($gp)
  227. jalr $25
  228. daddiu $6, $zero, 75
  229. $BB0_12: # %cond.false15.i
  230. ld $1, %got_page($__func__.cheri_helloworld)($gp)
  231. ld $2, %got_page($.str7)($gp)
  232. ld $3, %got_page($.str10)($gp)
  233. daddiu $4, $1, %got_ofst($__func__.cheri_helloworld)
  234. daddiu $5, $2, %got_ofst($.str7)
  235. daddiu $7, $3, %got_ofst($.str10)
  236. ld $25, %call16(__assert)($gp)
  237. jalr $25
  238. daddiu $6, $zero, 79
  239. .set at
  240. .set macro
  241. .set reorder
  242. .end main
  243. $tmp0:
  244. .size main, ($tmp0)-main
  245.  
  246. .type $.str,@object # @.str
  247. .section .rodata.str1.1,"aMS",@progbits,1
  248. $.str:
  249. .asciz "cheri_fd_new: stdout"
  250. .size $.str, 21
  251.  
  252. .type $.str1,@object # @.str1
  253. $.str1:
  254. .asciz "/usr/libexec/cheri_helloworld-helper"
  255. .size $.str1, 37
  256.  
  257. .type $.str2,@object # @.str2
  258. $.str2:
  259. .asciz "sandbox_class_new"
  260. .size $.str2, 18
  261.  
  262. .type $.str3,@object # @.str3
  263. $.str3:
  264. .asciz "sandbox_object_new"
  265. .size $.str3, 19
  266.  
  267. .type $.str4,@object # @.str4
  268. $.str4:
  269. .asciz "helloworld"
  270. .size $.str4, 11
  271.  
  272. .type $.str5,@object # @.str5
  273. $.str5:
  274. .asciz "puts"
  275. .size $.str5, 5
  276.  
  277. .type $.str6,@object # @.str6
  278. $.str6:
  279. .asciz "fd_write_c"
  280. .size $.str6, 11
  281.  
  282. .type __cheri_method.hello_object.call_cheri_system_helloworld,@object # @__cheri_method.hello_object.call_cheri_system_helloworld
  283. .section .CHERI_CALLER,"aw",@progbits
  284. .weak __cheri_method.hello_object.call_cheri_system_helloworld
  285. .align 3
  286. __cheri_method.hello_object.call_cheri_system_helloworld:
  287. .8byte 0 # 0x0
  288. .size __cheri_method.hello_object.call_cheri_system_helloworld, 8
  289.  
  290. .type hello_object,@object # @hello_object
  291. .comm hello_object,64,32
  292. .type $__func__.cheri_helloworld,@object # @__func__.cheri_helloworld
  293. .section .rodata.str1.1,"aMS",@progbits,1
  294. $__func__.cheri_helloworld:
  295. .asciz "cheri_helloworld"
  296. .size $__func__.cheri_helloworld, 17
  297.  
  298. .type $.str7,@object # @.str7
  299. $.str7:
  300. .asciz "/home/bed22/git/cheribsd/bin/cheri_helloworld/cheri_helloworld.c"
  301. .size $.str7, 65
  302.  
  303. .type $.str8,@object # @.str8
  304. $.str8:
  305. .asciz "v == 123456"
  306. .size $.str8, 12
  307.  
  308. .type $.str9,@object # @.str9
  309. $.str9:
  310. .asciz "v >= 0"
  311. .size $.str9, 7
  312.  
  313. .type $.str10,@object # @.str10
  314. $.str10:
  315. .asciz "v == 12"
  316. .size $.str10, 8
  317.  
  318.  
  319. .ident "clang version 3.6.0 "
  320. .section ".note.GNU-stack","",@progbits
  321. .text
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement