Advertisement
Guest User

Untitled

a guest
Sep 26th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 77.42 KB | None | 0 0
  1. ==> powersoftwo-1-c2.s <===================================================
  2. .text
  3. .align 4,0x90
  4. .globl _isPowerOfTwo
  5. _isPowerOfTwo:
  6. LFB16:
  7. jmp L8
  8. .align 4,0x90
  9. L10:
  10. cmpl $1, %edi
  11. jbe L2
  12. shrl %edi
  13. L8:
  14. testb $1, %dil
  15. je L10
  16. L2:
  17. xorl %eax, %eax
  18. cmpl $1, %edi
  19. sete %al
  20. ret
  21. LFE16:
  22. .cstring
  23. .align 3
  24. LC0:
  25. .ascii "%d powers of two found in %lu ns\12\0"
  26. .section __TEXT,__text_startup,regular,pure_instructions
  27. .align 4
  28. .globl _main
  29. _main:
  30. LFB17:
  31. pushq %rbx
  32. LCFI0:
  33. subq $16, %rsp
  34. LCFI1:
  35. call _mach_absolute_time
  36. xorl %edx, %edx
  37. xorl %esi, %esi
  38. movq %rax, %rbx
  39. xorl %eax, %eax
  40. .align 4
  41. L24:
  42. cmpl $1, %eax
  43. sete %al
  44. addl $1, %edx
  45. movzbl %al, %eax
  46. addl %eax, %esi
  47. cmpl $-1, %edx
  48. je L15
  49. testb $1, %dl
  50. jne L19
  51. cmpl $1, %edx
  52. movl %edx, %eax
  53. jbe L19
  54. .align 4
  55. L21:
  56. shrl %eax
  57. testb $1, %al
  58. jne L24
  59. cmpl $1, %eax
  60. ja L21
  61. .p2align 4,,4
  62. jmp L24
  63. .align 4
  64. L19:
  65. movl %edx, %eax
  66. jmp L24
  67. L15:
  68. movl %esi, 8(%rsp)
  69. .p2align 4,,5
  70. call _mach_absolute_time
  71. movl 8(%rsp), %esi
  72. leaq LC0(%rip), %rdi
  73. subq %rbx, %rax
  74. movq %rax, %rdx
  75. xorl %eax, %eax
  76. call _printf
  77. addq $16, %rsp
  78. LCFI2:
  79. xorl %eax, %eax
  80. popq %rbx
  81. LCFI3:
  82. ret
  83. LFE17:
  84. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  85. EH_frame1:
  86. .set L$set$0,LECIE1-LSCIE1
  87. .long L$set$0
  88. LSCIE1:
  89. .long 0
  90. .byte 0x1
  91. .ascii "zR\0"
  92. .byte 0x1
  93. .byte 0x78
  94. .byte 0x10
  95. .byte 0x1
  96. .byte 0x10
  97. .byte 0xc
  98. .byte 0x7
  99. .byte 0x8
  100. .byte 0x90
  101. .byte 0x1
  102. .align 3
  103. LECIE1:
  104. LSFDE1:
  105. .set L$set$1,LEFDE1-LASFDE1
  106. .long L$set$1
  107. LASFDE1:
  108. .long LASFDE1-EH_frame1
  109. .quad LFB16-.
  110. .set L$set$2,LFE16-LFB16
  111. .quad L$set$2
  112. .byte 0
  113. .align 3
  114. LEFDE1:
  115. LSFDE3:
  116. .set L$set$3,LEFDE3-LASFDE3
  117. .long L$set$3
  118. LASFDE3:
  119. .long LASFDE3-EH_frame1
  120. .quad LFB17-.
  121. .set L$set$4,LFE17-LFB17
  122. .quad L$set$4
  123. .byte 0
  124. .byte 0x4
  125. .set L$set$5,LCFI0-LFB17
  126. .long L$set$5
  127. .byte 0xe
  128. .byte 0x10
  129. .byte 0x83
  130. .byte 0x2
  131. .byte 0x4
  132. .set L$set$6,LCFI1-LCFI0
  133. .long L$set$6
  134. .byte 0xe
  135. .byte 0x20
  136. .byte 0x4
  137. .set L$set$7,LCFI2-LCFI1
  138. .long L$set$7
  139. .byte 0xe
  140. .byte 0x10
  141. .byte 0x4
  142. .set L$set$8,LCFI3-LCFI2
  143. .long L$set$8
  144. .byte 0xe
  145. .byte 0x8
  146. .align 3
  147. LEFDE3:
  148. .subsections_via_symbols
  149.  
  150.  
  151.  
  152. ==> powersoftwo-1-i7.s <===================================================
  153. .text
  154. .align 4,0x90
  155. .globl _isPowerOfTwo
  156. _isPowerOfTwo:
  157. LFB16:
  158. jmp L8
  159. .align 4,0x90
  160. L10:
  161. cmpl $1, %edi
  162. jbe L2
  163. shrl %edi
  164. L8:
  165. testb $1, %dil
  166. je L10
  167. L2:
  168. xorl %eax, %eax
  169. cmpl $1, %edi
  170. sete %al
  171. ret
  172. LFE16:
  173. .cstring
  174. .align 3
  175. LC0:
  176. .ascii "%d powers of two found in %lu ns\12\0"
  177. .section __TEXT,__text_startup,regular,pure_instructions
  178. .align 4
  179. .globl _main
  180. _main:
  181. LFB17:
  182. pushq %rbx
  183. LCFI0:
  184. subq $16, %rsp
  185. LCFI1:
  186. call _mach_absolute_time
  187. xorl %edx, %edx
  188. xorl %esi, %esi
  189. movq %rax, %rbx
  190. xorl %eax, %eax
  191. .align 4
  192. L24:
  193. cmpl $1, %eax
  194. sete %al
  195. addl $1, %edx
  196. movzbl %al, %eax
  197. addl %eax, %esi
  198. cmpl $-1, %edx
  199. je L15
  200. testb $1, %dl
  201. jne L19
  202. cmpl $1, %edx
  203. movl %edx, %eax
  204. jbe L19
  205. .align 4
  206. L21:
  207. shrl %eax
  208. testb $1, %al
  209. jne L24
  210. cmpl $1, %eax
  211. ja L21
  212. .p2align 4,,4
  213. jmp L24
  214. .align 4
  215. L19:
  216. movl %edx, %eax
  217. jmp L24
  218. L15:
  219. movl %esi, 8(%rsp)
  220. .p2align 4,,5
  221. call _mach_absolute_time
  222. movl 8(%rsp), %esi
  223. leaq LC0(%rip), %rdi
  224. subq %rbx, %rax
  225. movq %rax, %rdx
  226. xorl %eax, %eax
  227. call _printf
  228. addq $16, %rsp
  229. LCFI2:
  230. xorl %eax, %eax
  231. popq %rbx
  232. LCFI3:
  233. ret
  234. LFE17:
  235. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  236. EH_frame1:
  237. .set L$set$0,LECIE1-LSCIE1
  238. .long L$set$0
  239. LSCIE1:
  240. .long 0
  241. .byte 0x1
  242. .ascii "zR\0"
  243. .byte 0x1
  244. .byte 0x78
  245. .byte 0x10
  246. .byte 0x1
  247. .byte 0x10
  248. .byte 0xc
  249. .byte 0x7
  250. .byte 0x8
  251. .byte 0x90
  252. .byte 0x1
  253. .align 3
  254. LECIE1:
  255. LSFDE1:
  256. .set L$set$1,LEFDE1-LASFDE1
  257. .long L$set$1
  258. LASFDE1:
  259. .long LASFDE1-EH_frame1
  260. .quad LFB16-.
  261. .set L$set$2,LFE16-LFB16
  262. .quad L$set$2
  263. .byte 0
  264. .align 3
  265. LEFDE1:
  266. LSFDE3:
  267. .set L$set$3,LEFDE3-LASFDE3
  268. .long L$set$3
  269. LASFDE3:
  270. .long LASFDE3-EH_frame1
  271. .quad LFB17-.
  272. .set L$set$4,LFE17-LFB17
  273. .quad L$set$4
  274. .byte 0
  275. .byte 0x4
  276. .set L$set$5,LCFI0-LFB17
  277. .long L$set$5
  278. .byte 0xe
  279. .byte 0x10
  280. .byte 0x83
  281. .byte 0x2
  282. .byte 0x4
  283. .set L$set$6,LCFI1-LCFI0
  284. .long L$set$6
  285. .byte 0xe
  286. .byte 0x20
  287. .byte 0x4
  288. .set L$set$7,LCFI2-LCFI1
  289. .long L$set$7
  290. .byte 0xe
  291. .byte 0x10
  292. .byte 0x4
  293. .set L$set$8,LCFI3-LCFI2
  294. .long L$set$8
  295. .byte 0xe
  296. .byte 0x8
  297. .align 3
  298. LEFDE3:
  299. .subsections_via_symbols
  300.  
  301.  
  302.  
  303. ==> powersoftwo-2-c2.s <===================================================
  304. .text
  305. .align 4,0x90
  306. .globl _isPowerOfTwo
  307. _isPowerOfTwo:
  308. LFB16:
  309. leal -1(%rdi), %eax
  310. cmpl $1, %eax
  311. jbe L16
  312. cmpl $4, %edi
  313. je L16
  314. cmpl $16, %edi
  315. je L16
  316. cmpl $8, %edi
  317. .p2align 4,,2
  318. je L16
  319. cmpl $64, %edi
  320. .p2align 4,,2
  321. je L16
  322. cmpl $32, %edi
  323. .p2align 4,,2
  324. je L16
  325. cmpl $256, %edi
  326. je L16
  327. cmpl $128, %edi
  328. je L16
  329. cmpl $1024, %edi
  330. je L16
  331. cmpl $512, %edi
  332. je L16
  333. cmpl $4096, %edi
  334. je L16
  335. cmpl $2048, %edi
  336. je L16
  337. cmpl $16384, %edi
  338. je L16
  339. cmpl $8192, %edi
  340. je L16
  341. cmpl $65536, %edi
  342. je L16
  343. cmpl $32768, %edi
  344. je L16
  345. cmpl $262144, %edi
  346. je L16
  347. cmpl $131072, %edi
  348. je L16
  349. cmpl $1048576, %edi
  350. je L16
  351. cmpl $524288, %edi
  352. je L16
  353. cmpl $4194304, %edi
  354. je L16
  355. cmpl $2097152, %edi
  356. je L16
  357. cmpl $16777216, %edi
  358. je L16
  359. cmpl $8388608, %edi
  360. je L16
  361. cmpl $67108864, %edi
  362. je L16
  363. cmpl $33554432, %edi
  364. je L16
  365. cmpl $268435456, %edi
  366. je L16
  367. cmpl $134217728, %edi
  368. je L16
  369. cmpl $1073741824, %edi
  370. je L17
  371. cmpl $536870912, %edi
  372. je L17
  373. xorl %eax, %eax
  374. cmpl $-2147483648, %edi
  375. sete %al
  376. ret
  377. .align 4,0x90
  378. L16:
  379. movl $1, %eax
  380. ret
  381. L17:
  382. movl $1, %eax
  383. ret
  384. LFE16:
  385. .cstring
  386. .align 3
  387. LC0:
  388. .ascii "%d powers of two found in %lu ns\12\0"
  389. .section __TEXT,__text_startup,regular,pure_instructions
  390. .align 4
  391. .globl _main
  392. _main:
  393. LFB17:
  394. pushq %r12
  395. LCFI0:
  396. pushq %rbp
  397. LCFI1:
  398. xorl %ebp, %ebp
  399. pushq %rbx
  400. LCFI2:
  401. xorl %ebx, %ebx
  402. call _mach_absolute_time
  403. movq %rax, %r12
  404. .align 4
  405. L20:
  406. movl %ebp, %edi
  407. call _isPowerOfTwo
  408. testl %eax, %eax
  409. setne %al
  410. addl $1, %ebp
  411. movzbl %al, %eax
  412. addl %eax, %ebx
  413. cmpl $-1, %ebp
  414. jne L20
  415. call _mach_absolute_time
  416. leaq LC0(%rip), %rdi
  417. movl %ebx, %esi
  418. subq %r12, %rax
  419. movq %rax, %rdx
  420. xorl %eax, %eax
  421. call _printf
  422. popq %rbx
  423. LCFI3:
  424. xorl %eax, %eax
  425. popq %rbp
  426. LCFI4:
  427. popq %r12
  428. LCFI5:
  429. ret
  430. LFE17:
  431. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  432. EH_frame1:
  433. .set L$set$0,LECIE1-LSCIE1
  434. .long L$set$0
  435. LSCIE1:
  436. .long 0
  437. .byte 0x1
  438. .ascii "zR\0"
  439. .byte 0x1
  440. .byte 0x78
  441. .byte 0x10
  442. .byte 0x1
  443. .byte 0x10
  444. .byte 0xc
  445. .byte 0x7
  446. .byte 0x8
  447. .byte 0x90
  448. .byte 0x1
  449. .align 3
  450. LECIE1:
  451. LSFDE1:
  452. .set L$set$1,LEFDE1-LASFDE1
  453. .long L$set$1
  454. LASFDE1:
  455. .long LASFDE1-EH_frame1
  456. .quad LFB16-.
  457. .set L$set$2,LFE16-LFB16
  458. .quad L$set$2
  459. .byte 0
  460. .align 3
  461. LEFDE1:
  462. LSFDE3:
  463. .set L$set$3,LEFDE3-LASFDE3
  464. .long L$set$3
  465. LASFDE3:
  466. .long LASFDE3-EH_frame1
  467. .quad LFB17-.
  468. .set L$set$4,LFE17-LFB17
  469. .quad L$set$4
  470. .byte 0
  471. .byte 0x4
  472. .set L$set$5,LCFI0-LFB17
  473. .long L$set$5
  474. .byte 0xe
  475. .byte 0x10
  476. .byte 0x8c
  477. .byte 0x2
  478. .byte 0x4
  479. .set L$set$6,LCFI1-LCFI0
  480. .long L$set$6
  481. .byte 0xe
  482. .byte 0x18
  483. .byte 0x86
  484. .byte 0x3
  485. .byte 0x4
  486. .set L$set$7,LCFI2-LCFI1
  487. .long L$set$7
  488. .byte 0xe
  489. .byte 0x20
  490. .byte 0x83
  491. .byte 0x4
  492. .byte 0x4
  493. .set L$set$8,LCFI3-LCFI2
  494. .long L$set$8
  495. .byte 0xe
  496. .byte 0x18
  497. .byte 0x4
  498. .set L$set$9,LCFI4-LCFI3
  499. .long L$set$9
  500. .byte 0xe
  501. .byte 0x10
  502. .byte 0x4
  503. .set L$set$10,LCFI5-LCFI4
  504. .long L$set$10
  505. .byte 0xe
  506. .byte 0x8
  507. .align 3
  508. LEFDE3:
  509. .subsections_via_symbols
  510.  
  511.  
  512.  
  513. ==> powersoftwo-2-i7.s <===================================================
  514. .text
  515. .align 4,0x90
  516. .globl _isPowerOfTwo
  517. _isPowerOfTwo:
  518. LFB16:
  519. leal -1(%rdi), %eax
  520. cmpl $1, %eax
  521. jbe L16
  522. cmpl $4, %edi
  523. je L16
  524. cmpl $16, %edi
  525. je L16
  526. cmpl $8, %edi
  527. .p2align 4,,2
  528. je L16
  529. cmpl $64, %edi
  530. .p2align 4,,2
  531. je L16
  532. cmpl $32, %edi
  533. .p2align 4,,2
  534. je L16
  535. cmpl $256, %edi
  536. je L16
  537. cmpl $128, %edi
  538. je L16
  539. cmpl $1024, %edi
  540. je L16
  541. cmpl $512, %edi
  542. je L16
  543. cmpl $4096, %edi
  544. je L16
  545. cmpl $2048, %edi
  546. je L16
  547. cmpl $16384, %edi
  548. je L16
  549. cmpl $8192, %edi
  550. je L16
  551. cmpl $65536, %edi
  552. je L16
  553. cmpl $32768, %edi
  554. je L16
  555. cmpl $262144, %edi
  556. je L16
  557. cmpl $131072, %edi
  558. je L16
  559. cmpl $1048576, %edi
  560. je L16
  561. cmpl $524288, %edi
  562. je L16
  563. cmpl $4194304, %edi
  564. je L16
  565. cmpl $2097152, %edi
  566. je L16
  567. cmpl $16777216, %edi
  568. je L16
  569. cmpl $8388608, %edi
  570. je L16
  571. cmpl $67108864, %edi
  572. je L16
  573. cmpl $33554432, %edi
  574. je L16
  575. cmpl $268435456, %edi
  576. je L16
  577. cmpl $134217728, %edi
  578. je L16
  579. cmpl $1073741824, %edi
  580. je L17
  581. cmpl $536870912, %edi
  582. je L17
  583. xorl %eax, %eax
  584. cmpl $-2147483648, %edi
  585. sete %al
  586. ret
  587. .align 4,0x90
  588. L16:
  589. movl $1, %eax
  590. ret
  591. L17:
  592. movl $1, %eax
  593. ret
  594. LFE16:
  595. .cstring
  596. .align 3
  597. LC0:
  598. .ascii "%d powers of two found in %lu ns\12\0"
  599. .section __TEXT,__text_startup,regular,pure_instructions
  600. .align 4
  601. .globl _main
  602. _main:
  603. LFB17:
  604. pushq %r12
  605. LCFI0:
  606. pushq %rbp
  607. LCFI1:
  608. xorl %ebp, %ebp
  609. pushq %rbx
  610. LCFI2:
  611. xorl %ebx, %ebx
  612. call _mach_absolute_time
  613. movq %rax, %r12
  614. .align 4
  615. L20:
  616. movl %ebp, %edi
  617. call _isPowerOfTwo
  618. testl %eax, %eax
  619. setne %al
  620. addl $1, %ebp
  621. movzbl %al, %eax
  622. addl %eax, %ebx
  623. cmpl $-1, %ebp
  624. jne L20
  625. call _mach_absolute_time
  626. leaq LC0(%rip), %rdi
  627. movl %ebx, %esi
  628. subq %r12, %rax
  629. movq %rax, %rdx
  630. xorl %eax, %eax
  631. call _printf
  632. popq %rbx
  633. LCFI3:
  634. xorl %eax, %eax
  635. popq %rbp
  636. LCFI4:
  637. popq %r12
  638. LCFI5:
  639. ret
  640. LFE17:
  641. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  642. EH_frame1:
  643. .set L$set$0,LECIE1-LSCIE1
  644. .long L$set$0
  645. LSCIE1:
  646. .long 0
  647. .byte 0x1
  648. .ascii "zR\0"
  649. .byte 0x1
  650. .byte 0x78
  651. .byte 0x10
  652. .byte 0x1
  653. .byte 0x10
  654. .byte 0xc
  655. .byte 0x7
  656. .byte 0x8
  657. .byte 0x90
  658. .byte 0x1
  659. .align 3
  660. LECIE1:
  661. LSFDE1:
  662. .set L$set$1,LEFDE1-LASFDE1
  663. .long L$set$1
  664. LASFDE1:
  665. .long LASFDE1-EH_frame1
  666. .quad LFB16-.
  667. .set L$set$2,LFE16-LFB16
  668. .quad L$set$2
  669. .byte 0
  670. .align 3
  671. LEFDE1:
  672. LSFDE3:
  673. .set L$set$3,LEFDE3-LASFDE3
  674. .long L$set$3
  675. LASFDE3:
  676. .long LASFDE3-EH_frame1
  677. .quad LFB17-.
  678. .set L$set$4,LFE17-LFB17
  679. .quad L$set$4
  680. .byte 0
  681. .byte 0x4
  682. .set L$set$5,LCFI0-LFB17
  683. .long L$set$5
  684. .byte 0xe
  685. .byte 0x10
  686. .byte 0x8c
  687. .byte 0x2
  688. .byte 0x4
  689. .set L$set$6,LCFI1-LCFI0
  690. .long L$set$6
  691. .byte 0xe
  692. .byte 0x18
  693. .byte 0x86
  694. .byte 0x3
  695. .byte 0x4
  696. .set L$set$7,LCFI2-LCFI1
  697. .long L$set$7
  698. .byte 0xe
  699. .byte 0x20
  700. .byte 0x83
  701. .byte 0x4
  702. .byte 0x4
  703. .set L$set$8,LCFI3-LCFI2
  704. .long L$set$8
  705. .byte 0xe
  706. .byte 0x18
  707. .byte 0x4
  708. .set L$set$9,LCFI4-LCFI3
  709. .long L$set$9
  710. .byte 0xe
  711. .byte 0x10
  712. .byte 0x4
  713. .set L$set$10,LCFI5-LCFI4
  714. .long L$set$10
  715. .byte 0xe
  716. .byte 0x8
  717. .align 3
  718. LEFDE3:
  719. .subsections_via_symbols
  720.  
  721.  
  722.  
  723. ==> powersoftwo-3-c2.s <===================================================
  724. .text
  725. .align 4,0x90
  726. .globl _isPowerOfTwo
  727. _isPowerOfTwo:
  728. LFB16:
  729. cmpl $1, %edi
  730. movl $1, %eax
  731. ja L3
  732. jmp L2
  733. .align 4,0x90
  734. L8:
  735. cmpl %eax, %edi
  736. jbe L2
  737. L3:
  738. addl %eax, %eax
  739. .p2align 4,,7
  740. jns L8
  741. L2:
  742. cmpl %eax, %edi
  743. sete %al
  744. movzbl %al, %eax
  745. ret
  746. LFE16:
  747. .cstring
  748. .align 3
  749. LC0:
  750. .ascii "%d powers of two found in %lu ns\12\0"
  751. .section __TEXT,__text_startup,regular,pure_instructions
  752. .align 4
  753. .globl _main
  754. _main:
  755. LFB17:
  756. pushq %rbx
  757. LCFI0:
  758. subq $16, %rsp
  759. LCFI1:
  760. call _mach_absolute_time
  761. xorl %edx, %edx
  762. xorl %esi, %esi
  763. movq %rax, %rbx
  764. movl $1, %eax
  765. .align 4
  766. L20:
  767. cmpl %eax, %edx
  768. sete %al
  769. addl $1, %edx
  770. movzbl %al, %eax
  771. addl %eax, %esi
  772. cmpl $-1, %edx
  773. je L13
  774. cmpl $1, %edx
  775. movl $1, %eax
  776. jbe L20
  777. .align 4
  778. L17:
  779. addl %eax, %eax
  780. js L20
  781. cmpl %eax, %edx
  782. ja L17
  783. .p2align 4,,7
  784. jmp L20
  785. L13:
  786. movl %esi, 8(%rsp)
  787. .p2align 4,,5
  788. call _mach_absolute_time
  789. movl 8(%rsp), %esi
  790. leaq LC0(%rip), %rdi
  791. subq %rbx, %rax
  792. movq %rax, %rdx
  793. xorl %eax, %eax
  794. call _printf
  795. addq $16, %rsp
  796. LCFI2:
  797. xorl %eax, %eax
  798. popq %rbx
  799. LCFI3:
  800. ret
  801. LFE17:
  802. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  803. EH_frame1:
  804. .set L$set$0,LECIE1-LSCIE1
  805. .long L$set$0
  806. LSCIE1:
  807. .long 0
  808. .byte 0x1
  809. .ascii "zR\0"
  810. .byte 0x1
  811. .byte 0x78
  812. .byte 0x10
  813. .byte 0x1
  814. .byte 0x10
  815. .byte 0xc
  816. .byte 0x7
  817. .byte 0x8
  818. .byte 0x90
  819. .byte 0x1
  820. .align 3
  821. LECIE1:
  822. LSFDE1:
  823. .set L$set$1,LEFDE1-LASFDE1
  824. .long L$set$1
  825. LASFDE1:
  826. .long LASFDE1-EH_frame1
  827. .quad LFB16-.
  828. .set L$set$2,LFE16-LFB16
  829. .quad L$set$2
  830. .byte 0
  831. .align 3
  832. LEFDE1:
  833. LSFDE3:
  834. .set L$set$3,LEFDE3-LASFDE3
  835. .long L$set$3
  836. LASFDE3:
  837. .long LASFDE3-EH_frame1
  838. .quad LFB17-.
  839. .set L$set$4,LFE17-LFB17
  840. .quad L$set$4
  841. .byte 0
  842. .byte 0x4
  843. .set L$set$5,LCFI0-LFB17
  844. .long L$set$5
  845. .byte 0xe
  846. .byte 0x10
  847. .byte 0x83
  848. .byte 0x2
  849. .byte 0x4
  850. .set L$set$6,LCFI1-LCFI0
  851. .long L$set$6
  852. .byte 0xe
  853. .byte 0x20
  854. .byte 0x4
  855. .set L$set$7,LCFI2-LCFI1
  856. .long L$set$7
  857. .byte 0xe
  858. .byte 0x10
  859. .byte 0x4
  860. .set L$set$8,LCFI3-LCFI2
  861. .long L$set$8
  862. .byte 0xe
  863. .byte 0x8
  864. .align 3
  865. LEFDE3:
  866. .subsections_via_symbols
  867.  
  868.  
  869.  
  870. ==> powersoftwo-3-i7.s <===================================================
  871. .text
  872. .align 4,0x90
  873. .globl _isPowerOfTwo
  874. _isPowerOfTwo:
  875. LFB16:
  876. cmpl $1, %edi
  877. movl $1, %eax
  878. ja L3
  879. jmp L2
  880. .align 4,0x90
  881. L8:
  882. cmpl %eax, %edi
  883. jbe L2
  884. L3:
  885. addl %eax, %eax
  886. .p2align 4,,7
  887. jns L8
  888. L2:
  889. cmpl %eax, %edi
  890. sete %al
  891. movzbl %al, %eax
  892. ret
  893. LFE16:
  894. .cstring
  895. .align 3
  896. LC0:
  897. .ascii "%d powers of two found in %lu ns\12\0"
  898. .section __TEXT,__text_startup,regular,pure_instructions
  899. .align 4
  900. .globl _main
  901. _main:
  902. LFB17:
  903. pushq %rbx
  904. LCFI0:
  905. subq $16, %rsp
  906. LCFI1:
  907. call _mach_absolute_time
  908. xorl %edx, %edx
  909. xorl %esi, %esi
  910. movq %rax, %rbx
  911. movl $1, %eax
  912. .align 4
  913. L20:
  914. cmpl %eax, %edx
  915. sete %al
  916. addl $1, %edx
  917. movzbl %al, %eax
  918. addl %eax, %esi
  919. cmpl $-1, %edx
  920. je L13
  921. cmpl $1, %edx
  922. movl $1, %eax
  923. jbe L20
  924. .align 4
  925. L17:
  926. addl %eax, %eax
  927. js L20
  928. cmpl %eax, %edx
  929. ja L17
  930. .p2align 4,,7
  931. jmp L20
  932. L13:
  933. movl %esi, 8(%rsp)
  934. .p2align 4,,5
  935. call _mach_absolute_time
  936. movl 8(%rsp), %esi
  937. leaq LC0(%rip), %rdi
  938. subq %rbx, %rax
  939. movq %rax, %rdx
  940. xorl %eax, %eax
  941. call _printf
  942. addq $16, %rsp
  943. LCFI2:
  944. xorl %eax, %eax
  945. popq %rbx
  946. LCFI3:
  947. ret
  948. LFE17:
  949. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  950. EH_frame1:
  951. .set L$set$0,LECIE1-LSCIE1
  952. .long L$set$0
  953. LSCIE1:
  954. .long 0
  955. .byte 0x1
  956. .ascii "zR\0"
  957. .byte 0x1
  958. .byte 0x78
  959. .byte 0x10
  960. .byte 0x1
  961. .byte 0x10
  962. .byte 0xc
  963. .byte 0x7
  964. .byte 0x8
  965. .byte 0x90
  966. .byte 0x1
  967. .align 3
  968. LECIE1:
  969. LSFDE1:
  970. .set L$set$1,LEFDE1-LASFDE1
  971. .long L$set$1
  972. LASFDE1:
  973. .long LASFDE1-EH_frame1
  974. .quad LFB16-.
  975. .set L$set$2,LFE16-LFB16
  976. .quad L$set$2
  977. .byte 0
  978. .align 3
  979. LEFDE1:
  980. LSFDE3:
  981. .set L$set$3,LEFDE3-LASFDE3
  982. .long L$set$3
  983. LASFDE3:
  984. .long LASFDE3-EH_frame1
  985. .quad LFB17-.
  986. .set L$set$4,LFE17-LFB17
  987. .quad L$set$4
  988. .byte 0
  989. .byte 0x4
  990. .set L$set$5,LCFI0-LFB17
  991. .long L$set$5
  992. .byte 0xe
  993. .byte 0x10
  994. .byte 0x83
  995. .byte 0x2
  996. .byte 0x4
  997. .set L$set$6,LCFI1-LCFI0
  998. .long L$set$6
  999. .byte 0xe
  1000. .byte 0x20
  1001. .byte 0x4
  1002. .set L$set$7,LCFI2-LCFI1
  1003. .long L$set$7
  1004. .byte 0xe
  1005. .byte 0x10
  1006. .byte 0x4
  1007. .set L$set$8,LCFI3-LCFI2
  1008. .long L$set$8
  1009. .byte 0xe
  1010. .byte 0x8
  1011. .align 3
  1012. LEFDE3:
  1013. .subsections_via_symbols
  1014.  
  1015.  
  1016.  
  1017. ==> powersoftwo-4-c2.s <===================================================
  1018. .text
  1019. .align 4,0x90
  1020. .globl _isPowerOfTwo
  1021. _isPowerOfTwo:
  1022. LFB16:
  1023. subq $16, %rsp
  1024. LCFI0:
  1025. cmpl $1, %edi
  1026. movl $1, %ecx
  1027. movdqa LC0(%rip), %xmm0
  1028. movdqa %xmm0, -120(%rsp)
  1029. movdqa LC1(%rip), %xmm0
  1030. movdqa %xmm0, -104(%rsp)
  1031. movdqa LC2(%rip), %xmm0
  1032. movdqa %xmm0, -88(%rsp)
  1033. movdqa LC3(%rip), %xmm0
  1034. movdqa %xmm0, -72(%rsp)
  1035. movdqa LC4(%rip), %xmm0
  1036. movdqa %xmm0, -56(%rsp)
  1037. movdqa LC5(%rip), %xmm0
  1038. movdqa %xmm0, -40(%rsp)
  1039. movdqa LC6(%rip), %xmm0
  1040. movdqa %xmm0, -24(%rsp)
  1041. movdqa LC7(%rip), %xmm0
  1042. movdqa %xmm0, -8(%rsp)
  1043. jbe L2
  1044. leaq -116(%rsp), %rax
  1045. xorl %edx, %edx
  1046. jmp L3
  1047. .align 4,0x90
  1048. L8:
  1049. cmpl $30, %edx
  1050. jg L2
  1051. L3:
  1052. movl (%rax), %ecx
  1053. addl $1, %edx
  1054. addq $4, %rax
  1055. cmpl %edi, %ecx
  1056. jb L8
  1057. L2:
  1058. xorl %eax, %eax
  1059. cmpl %ecx, %edi
  1060. sete %al
  1061. addq $16, %rsp
  1062. LCFI1:
  1063. ret
  1064. LFE16:
  1065. .cstring
  1066. .align 3
  1067. LC8:
  1068. .ascii "%d powers of two found in %lu ns\12\0"
  1069. .section __TEXT,__text_startup,regular,pure_instructions
  1070. .align 4
  1071. .globl _main
  1072. _main:
  1073. LFB17:
  1074. pushq %r12
  1075. LCFI2:
  1076. pushq %rbp
  1077. LCFI3:
  1078. xorl %ebp, %ebp
  1079. pushq %rbx
  1080. LCFI4:
  1081. xorl %ebx, %ebx
  1082. call _mach_absolute_time
  1083. movq %rax, %r12
  1084. .align 4
  1085. L10:
  1086. movl %ebp, %edi
  1087. call _isPowerOfTwo
  1088. testl %eax, %eax
  1089. setne %al
  1090. addl $1, %ebp
  1091. movzbl %al, %eax
  1092. addl %eax, %ebx
  1093. cmpl $-1, %ebp
  1094. jne L10
  1095. call _mach_absolute_time
  1096. leaq LC8(%rip), %rdi
  1097. movl %ebx, %esi
  1098. subq %r12, %rax
  1099. movq %rax, %rdx
  1100. xorl %eax, %eax
  1101. call _printf
  1102. popq %rbx
  1103. LCFI5:
  1104. xorl %eax, %eax
  1105. popq %rbp
  1106. LCFI6:
  1107. popq %r12
  1108. LCFI7:
  1109. ret
  1110. LFE17:
  1111. .literal16
  1112. .align 4
  1113. LC0:
  1114. .long 1
  1115. .long 2
  1116. .long 4
  1117. .long 8
  1118. .align 4
  1119. LC1:
  1120. .long 16
  1121. .long 32
  1122. .long 64
  1123. .long 128
  1124. .align 4
  1125. LC2:
  1126. .long 256
  1127. .long 512
  1128. .long 1024
  1129. .long 2048
  1130. .align 4
  1131. LC3:
  1132. .long 4096
  1133. .long 8192
  1134. .long 16384
  1135. .long 32768
  1136. .align 4
  1137. LC4:
  1138. .long 65536
  1139. .long 131072
  1140. .long 262144
  1141. .long 524288
  1142. .align 4
  1143. LC5:
  1144. .long 1048576
  1145. .long 2097152
  1146. .long 4194304
  1147. .long 8388608
  1148. .align 4
  1149. LC6:
  1150. .long 16777216
  1151. .long 33554432
  1152. .long 67108864
  1153. .long 134217728
  1154. .align 4
  1155. LC7:
  1156. .long 268435456
  1157. .long 536870912
  1158. .long 1073741824
  1159. .long -2147483648
  1160. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  1161. EH_frame1:
  1162. .set L$set$0,LECIE1-LSCIE1
  1163. .long L$set$0
  1164. LSCIE1:
  1165. .long 0
  1166. .byte 0x1
  1167. .ascii "zR\0"
  1168. .byte 0x1
  1169. .byte 0x78
  1170. .byte 0x10
  1171. .byte 0x1
  1172. .byte 0x10
  1173. .byte 0xc
  1174. .byte 0x7
  1175. .byte 0x8
  1176. .byte 0x90
  1177. .byte 0x1
  1178. .align 3
  1179. LECIE1:
  1180. LSFDE1:
  1181. .set L$set$1,LEFDE1-LASFDE1
  1182. .long L$set$1
  1183. LASFDE1:
  1184. .long LASFDE1-EH_frame1
  1185. .quad LFB16-.
  1186. .set L$set$2,LFE16-LFB16
  1187. .quad L$set$2
  1188. .byte 0
  1189. .byte 0x4
  1190. .set L$set$3,LCFI0-LFB16
  1191. .long L$set$3
  1192. .byte 0xe
  1193. .byte 0x18
  1194. .byte 0x4
  1195. .set L$set$4,LCFI1-LCFI0
  1196. .long L$set$4
  1197. .byte 0xe
  1198. .byte 0x8
  1199. .align 3
  1200. LEFDE1:
  1201. LSFDE3:
  1202. .set L$set$5,LEFDE3-LASFDE3
  1203. .long L$set$5
  1204. LASFDE3:
  1205. .long LASFDE3-EH_frame1
  1206. .quad LFB17-.
  1207. .set L$set$6,LFE17-LFB17
  1208. .quad L$set$6
  1209. .byte 0
  1210. .byte 0x4
  1211. .set L$set$7,LCFI2-LFB17
  1212. .long L$set$7
  1213. .byte 0xe
  1214. .byte 0x10
  1215. .byte 0x8c
  1216. .byte 0x2
  1217. .byte 0x4
  1218. .set L$set$8,LCFI3-LCFI2
  1219. .long L$set$8
  1220. .byte 0xe
  1221. .byte 0x18
  1222. .byte 0x86
  1223. .byte 0x3
  1224. .byte 0x4
  1225. .set L$set$9,LCFI4-LCFI3
  1226. .long L$set$9
  1227. .byte 0xe
  1228. .byte 0x20
  1229. .byte 0x83
  1230. .byte 0x4
  1231. .byte 0x4
  1232. .set L$set$10,LCFI5-LCFI4
  1233. .long L$set$10
  1234. .byte 0xe
  1235. .byte 0x18
  1236. .byte 0x4
  1237. .set L$set$11,LCFI6-LCFI5
  1238. .long L$set$11
  1239. .byte 0xe
  1240. .byte 0x10
  1241. .byte 0x4
  1242. .set L$set$12,LCFI7-LCFI6
  1243. .long L$set$12
  1244. .byte 0xe
  1245. .byte 0x8
  1246. .align 3
  1247. LEFDE3:
  1248. .subsections_via_symbols
  1249.  
  1250.  
  1251.  
  1252. ==> powersoftwo-4-i7.s <===================================================
  1253. .text
  1254. .align 4,0x90
  1255. .globl _isPowerOfTwo
  1256. _isPowerOfTwo:
  1257. LFB16:
  1258. subq $16, %rsp
  1259. LCFI0:
  1260. cmpl $1, %edi
  1261. movl $1, %ecx
  1262. movdqa LC0(%rip), %xmm0
  1263. movdqa %xmm0, -120(%rsp)
  1264. movdqa LC1(%rip), %xmm0
  1265. movdqa %xmm0, -104(%rsp)
  1266. movdqa LC2(%rip), %xmm0
  1267. movdqa %xmm0, -88(%rsp)
  1268. movdqa LC3(%rip), %xmm0
  1269. movdqa %xmm0, -72(%rsp)
  1270. movdqa LC4(%rip), %xmm0
  1271. movdqa %xmm0, -56(%rsp)
  1272. movdqa LC5(%rip), %xmm0
  1273. movdqa %xmm0, -40(%rsp)
  1274. movdqa LC6(%rip), %xmm0
  1275. movdqa %xmm0, -24(%rsp)
  1276. movdqa LC7(%rip), %xmm0
  1277. movdqa %xmm0, -8(%rsp)
  1278. jbe L2
  1279. leaq -116(%rsp), %rax
  1280. xorl %edx, %edx
  1281. jmp L3
  1282. .align 4,0x90
  1283. L8:
  1284. cmpl $30, %edx
  1285. jg L2
  1286. L3:
  1287. movl (%rax), %ecx
  1288. addl $1, %edx
  1289. addq $4, %rax
  1290. cmpl %edi, %ecx
  1291. jb L8
  1292. L2:
  1293. xorl %eax, %eax
  1294. cmpl %ecx, %edi
  1295. sete %al
  1296. addq $16, %rsp
  1297. LCFI1:
  1298. ret
  1299. LFE16:
  1300. .cstring
  1301. .align 3
  1302. LC8:
  1303. .ascii "%d powers of two found in %lu ns\12\0"
  1304. .section __TEXT,__text_startup,regular,pure_instructions
  1305. .align 4
  1306. .globl _main
  1307. _main:
  1308. LFB17:
  1309. pushq %r12
  1310. LCFI2:
  1311. pushq %rbp
  1312. LCFI3:
  1313. xorl %ebp, %ebp
  1314. pushq %rbx
  1315. LCFI4:
  1316. xorl %ebx, %ebx
  1317. call _mach_absolute_time
  1318. movq %rax, %r12
  1319. .align 4
  1320. L10:
  1321. movl %ebp, %edi
  1322. call _isPowerOfTwo
  1323. testl %eax, %eax
  1324. setne %al
  1325. addl $1, %ebp
  1326. movzbl %al, %eax
  1327. addl %eax, %ebx
  1328. cmpl $-1, %ebp
  1329. jne L10
  1330. call _mach_absolute_time
  1331. leaq LC8(%rip), %rdi
  1332. movl %ebx, %esi
  1333. subq %r12, %rax
  1334. movq %rax, %rdx
  1335. xorl %eax, %eax
  1336. call _printf
  1337. popq %rbx
  1338. LCFI5:
  1339. xorl %eax, %eax
  1340. popq %rbp
  1341. LCFI6:
  1342. popq %r12
  1343. LCFI7:
  1344. ret
  1345. LFE17:
  1346. .literal16
  1347. .align 4
  1348. LC0:
  1349. .long 1
  1350. .long 2
  1351. .long 4
  1352. .long 8
  1353. .align 4
  1354. LC1:
  1355. .long 16
  1356. .long 32
  1357. .long 64
  1358. .long 128
  1359. .align 4
  1360. LC2:
  1361. .long 256
  1362. .long 512
  1363. .long 1024
  1364. .long 2048
  1365. .align 4
  1366. LC3:
  1367. .long 4096
  1368. .long 8192
  1369. .long 16384
  1370. .long 32768
  1371. .align 4
  1372. LC4:
  1373. .long 65536
  1374. .long 131072
  1375. .long 262144
  1376. .long 524288
  1377. .align 4
  1378. LC5:
  1379. .long 1048576
  1380. .long 2097152
  1381. .long 4194304
  1382. .long 8388608
  1383. .align 4
  1384. LC6:
  1385. .long 16777216
  1386. .long 33554432
  1387. .long 67108864
  1388. .long 134217728
  1389. .align 4
  1390. LC7:
  1391. .long 268435456
  1392. .long 536870912
  1393. .long 1073741824
  1394. .long -2147483648
  1395. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  1396. EH_frame1:
  1397. .set L$set$0,LECIE1-LSCIE1
  1398. .long L$set$0
  1399. LSCIE1:
  1400. .long 0
  1401. .byte 0x1
  1402. .ascii "zR\0"
  1403. .byte 0x1
  1404. .byte 0x78
  1405. .byte 0x10
  1406. .byte 0x1
  1407. .byte 0x10
  1408. .byte 0xc
  1409. .byte 0x7
  1410. .byte 0x8
  1411. .byte 0x90
  1412. .byte 0x1
  1413. .align 3
  1414. LECIE1:
  1415. LSFDE1:
  1416. .set L$set$1,LEFDE1-LASFDE1
  1417. .long L$set$1
  1418. LASFDE1:
  1419. .long LASFDE1-EH_frame1
  1420. .quad LFB16-.
  1421. .set L$set$2,LFE16-LFB16
  1422. .quad L$set$2
  1423. .byte 0
  1424. .byte 0x4
  1425. .set L$set$3,LCFI0-LFB16
  1426. .long L$set$3
  1427. .byte 0xe
  1428. .byte 0x18
  1429. .byte 0x4
  1430. .set L$set$4,LCFI1-LCFI0
  1431. .long L$set$4
  1432. .byte 0xe
  1433. .byte 0x8
  1434. .align 3
  1435. LEFDE1:
  1436. LSFDE3:
  1437. .set L$set$5,LEFDE3-LASFDE3
  1438. .long L$set$5
  1439. LASFDE3:
  1440. .long LASFDE3-EH_frame1
  1441. .quad LFB17-.
  1442. .set L$set$6,LFE17-LFB17
  1443. .quad L$set$6
  1444. .byte 0
  1445. .byte 0x4
  1446. .set L$set$7,LCFI2-LFB17
  1447. .long L$set$7
  1448. .byte 0xe
  1449. .byte 0x10
  1450. .byte 0x8c
  1451. .byte 0x2
  1452. .byte 0x4
  1453. .set L$set$8,LCFI3-LCFI2
  1454. .long L$set$8
  1455. .byte 0xe
  1456. .byte 0x18
  1457. .byte 0x86
  1458. .byte 0x3
  1459. .byte 0x4
  1460. .set L$set$9,LCFI4-LCFI3
  1461. .long L$set$9
  1462. .byte 0xe
  1463. .byte 0x20
  1464. .byte 0x83
  1465. .byte 0x4
  1466. .byte 0x4
  1467. .set L$set$10,LCFI5-LCFI4
  1468. .long L$set$10
  1469. .byte 0xe
  1470. .byte 0x18
  1471. .byte 0x4
  1472. .set L$set$11,LCFI6-LCFI5
  1473. .long L$set$11
  1474. .byte 0xe
  1475. .byte 0x10
  1476. .byte 0x4
  1477. .set L$set$12,LCFI7-LCFI6
  1478. .long L$set$12
  1479. .byte 0xe
  1480. .byte 0x8
  1481. .align 3
  1482. LEFDE3:
  1483. .subsections_via_symbols
  1484.  
  1485.  
  1486.  
  1487. ==> powersoftwo-5-c2.s <===================================================
  1488. .text
  1489. .align 4,0x90
  1490. .globl _isPowerOfTwo
  1491. _isPowerOfTwo:
  1492. LFB16:
  1493. subq $16, %rsp
  1494. LCFI0:
  1495. xorl %eax, %eax
  1496. testl %edi, %edi
  1497. movdqa LC0(%rip), %xmm0
  1498. movdqa %xmm0, -120(%rsp)
  1499. movdqa LC1(%rip), %xmm0
  1500. movdqa %xmm0, -104(%rsp)
  1501. movdqa LC2(%rip), %xmm0
  1502. movdqa %xmm0, -88(%rsp)
  1503. movdqa LC3(%rip), %xmm0
  1504. movdqa %xmm0, -72(%rsp)
  1505. movdqa LC4(%rip), %xmm0
  1506. movdqa %xmm0, -56(%rsp)
  1507. movdqa LC5(%rip), %xmm0
  1508. movdqa %xmm0, -40(%rsp)
  1509. movdqa LC6(%rip), %xmm0
  1510. movdqa %xmm0, -24(%rsp)
  1511. movdqa LC7(%rip), %xmm0
  1512. movdqa %xmm0, -8(%rsp)
  1513. je L4
  1514. cmpl $1, %edi
  1515. movb $1, %al
  1516. je L4
  1517. cmpl $65536, %edi
  1518. movl $65536, %esi
  1519. je L5
  1520. movl $16, %edx
  1521. movb $16, %al
  1522. jmp L8
  1523. .align 4,0x90
  1524. L14:
  1525. cmpl $1, %eax
  1526. jle L5
  1527. L8:
  1528. movl %eax, %ecx
  1529. movl %edx, %r8d
  1530. shrl $31, %ecx
  1531. addl %eax, %ecx
  1532. sarl %eax
  1533. sarl %ecx
  1534. addl %eax, %edx
  1535. subl %ecx, %r8d
  1536. cmpl %esi, %edi
  1537. cmovb %r8d, %edx
  1538. movslq %edx, %rcx
  1539. movl -120(%rsp,%rcx,4), %esi
  1540. cmpl %edi, %esi
  1541. jne L14
  1542. L5:
  1543. xorl %eax, %eax
  1544. cmpl %esi, %edi
  1545. sete %al
  1546. L4:
  1547. addq $16, %rsp
  1548. LCFI1:
  1549. ret
  1550. LFE16:
  1551. .cstring
  1552. .align 3
  1553. LC8:
  1554. .ascii "%d powers of two found in %lu ns\12\0"
  1555. .section __TEXT,__text_startup,regular,pure_instructions
  1556. .align 4
  1557. .globl _main
  1558. _main:
  1559. LFB17:
  1560. pushq %r12
  1561. LCFI2:
  1562. pushq %rbp
  1563. LCFI3:
  1564. xorl %ebp, %ebp
  1565. pushq %rbx
  1566. LCFI4:
  1567. xorl %ebx, %ebx
  1568. call _mach_absolute_time
  1569. movq %rax, %r12
  1570. .align 4
  1571. L16:
  1572. movl %ebp, %edi
  1573. call _isPowerOfTwo
  1574. testl %eax, %eax
  1575. setne %al
  1576. addl $1, %ebp
  1577. movzbl %al, %eax
  1578. addl %eax, %ebx
  1579. cmpl $-1, %ebp
  1580. jne L16
  1581. call _mach_absolute_time
  1582. leaq LC8(%rip), %rdi
  1583. movl %ebx, %esi
  1584. subq %r12, %rax
  1585. movq %rax, %rdx
  1586. xorl %eax, %eax
  1587. call _printf
  1588. popq %rbx
  1589. LCFI5:
  1590. xorl %eax, %eax
  1591. popq %rbp
  1592. LCFI6:
  1593. popq %r12
  1594. LCFI7:
  1595. ret
  1596. LFE17:
  1597. .literal16
  1598. .align 4
  1599. LC0:
  1600. .long 1
  1601. .long 2
  1602. .long 4
  1603. .long 8
  1604. .align 4
  1605. LC1:
  1606. .long 16
  1607. .long 32
  1608. .long 64
  1609. .long 128
  1610. .align 4
  1611. LC2:
  1612. .long 256
  1613. .long 512
  1614. .long 1024
  1615. .long 2048
  1616. .align 4
  1617. LC3:
  1618. .long 4096
  1619. .long 8192
  1620. .long 16384
  1621. .long 32768
  1622. .align 4
  1623. LC4:
  1624. .long 65536
  1625. .long 131072
  1626. .long 262144
  1627. .long 524288
  1628. .align 4
  1629. LC5:
  1630. .long 1048576
  1631. .long 2097152
  1632. .long 4194304
  1633. .long 8388608
  1634. .align 4
  1635. LC6:
  1636. .long 16777216
  1637. .long 33554432
  1638. .long 67108864
  1639. .long 134217728
  1640. .align 4
  1641. LC7:
  1642. .long 268435456
  1643. .long 536870912
  1644. .long 1073741824
  1645. .long -2147483648
  1646. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  1647. EH_frame1:
  1648. .set L$set$0,LECIE1-LSCIE1
  1649. .long L$set$0
  1650. LSCIE1:
  1651. .long 0
  1652. .byte 0x1
  1653. .ascii "zR\0"
  1654. .byte 0x1
  1655. .byte 0x78
  1656. .byte 0x10
  1657. .byte 0x1
  1658. .byte 0x10
  1659. .byte 0xc
  1660. .byte 0x7
  1661. .byte 0x8
  1662. .byte 0x90
  1663. .byte 0x1
  1664. .align 3
  1665. LECIE1:
  1666. LSFDE1:
  1667. .set L$set$1,LEFDE1-LASFDE1
  1668. .long L$set$1
  1669. LASFDE1:
  1670. .long LASFDE1-EH_frame1
  1671. .quad LFB16-.
  1672. .set L$set$2,LFE16-LFB16
  1673. .quad L$set$2
  1674. .byte 0
  1675. .byte 0x4
  1676. .set L$set$3,LCFI0-LFB16
  1677. .long L$set$3
  1678. .byte 0xe
  1679. .byte 0x18
  1680. .byte 0x4
  1681. .set L$set$4,LCFI1-LCFI0
  1682. .long L$set$4
  1683. .byte 0xe
  1684. .byte 0x8
  1685. .align 3
  1686. LEFDE1:
  1687. LSFDE3:
  1688. .set L$set$5,LEFDE3-LASFDE3
  1689. .long L$set$5
  1690. LASFDE3:
  1691. .long LASFDE3-EH_frame1
  1692. .quad LFB17-.
  1693. .set L$set$6,LFE17-LFB17
  1694. .quad L$set$6
  1695. .byte 0
  1696. .byte 0x4
  1697. .set L$set$7,LCFI2-LFB17
  1698. .long L$set$7
  1699. .byte 0xe
  1700. .byte 0x10
  1701. .byte 0x8c
  1702. .byte 0x2
  1703. .byte 0x4
  1704. .set L$set$8,LCFI3-LCFI2
  1705. .long L$set$8
  1706. .byte 0xe
  1707. .byte 0x18
  1708. .byte 0x86
  1709. .byte 0x3
  1710. .byte 0x4
  1711. .set L$set$9,LCFI4-LCFI3
  1712. .long L$set$9
  1713. .byte 0xe
  1714. .byte 0x20
  1715. .byte 0x83
  1716. .byte 0x4
  1717. .byte 0x4
  1718. .set L$set$10,LCFI5-LCFI4
  1719. .long L$set$10
  1720. .byte 0xe
  1721. .byte 0x18
  1722. .byte 0x4
  1723. .set L$set$11,LCFI6-LCFI5
  1724. .long L$set$11
  1725. .byte 0xe
  1726. .byte 0x10
  1727. .byte 0x4
  1728. .set L$set$12,LCFI7-LCFI6
  1729. .long L$set$12
  1730. .byte 0xe
  1731. .byte 0x8
  1732. .align 3
  1733. LEFDE3:
  1734. .subsections_via_symbols
  1735.  
  1736.  
  1737.  
  1738. ==> powersoftwo-5-i7.s <===================================================
  1739. .text
  1740. .align 4,0x90
  1741. .globl _isPowerOfTwo
  1742. _isPowerOfTwo:
  1743. LFB16:
  1744. subq $16, %rsp
  1745. LCFI0:
  1746. xorl %eax, %eax
  1747. testl %edi, %edi
  1748. movdqa LC0(%rip), %xmm0
  1749. movdqa %xmm0, -120(%rsp)
  1750. movdqa LC1(%rip), %xmm0
  1751. movdqa %xmm0, -104(%rsp)
  1752. movdqa LC2(%rip), %xmm0
  1753. movdqa %xmm0, -88(%rsp)
  1754. movdqa LC3(%rip), %xmm0
  1755. movdqa %xmm0, -72(%rsp)
  1756. movdqa LC4(%rip), %xmm0
  1757. movdqa %xmm0, -56(%rsp)
  1758. movdqa LC5(%rip), %xmm0
  1759. movdqa %xmm0, -40(%rsp)
  1760. movdqa LC6(%rip), %xmm0
  1761. movdqa %xmm0, -24(%rsp)
  1762. movdqa LC7(%rip), %xmm0
  1763. movdqa %xmm0, -8(%rsp)
  1764. je L4
  1765. cmpl $1, %edi
  1766. movb $1, %al
  1767. je L4
  1768. cmpl $65536, %edi
  1769. movl $65536, %esi
  1770. je L5
  1771. movl $16, %edx
  1772. movb $16, %al
  1773. jmp L8
  1774. .align 4,0x90
  1775. L14:
  1776. cmpl $1, %eax
  1777. jle L5
  1778. L8:
  1779. movl %eax, %ecx
  1780. movl %edx, %r8d
  1781. shrl $31, %ecx
  1782. addl %eax, %ecx
  1783. sarl %eax
  1784. sarl %ecx
  1785. addl %eax, %edx
  1786. subl %ecx, %r8d
  1787. cmpl %esi, %edi
  1788. cmovb %r8d, %edx
  1789. movslq %edx, %rcx
  1790. movl -120(%rsp,%rcx,4), %esi
  1791. cmpl %edi, %esi
  1792. jne L14
  1793. L5:
  1794. xorl %eax, %eax
  1795. cmpl %esi, %edi
  1796. sete %al
  1797. L4:
  1798. addq $16, %rsp
  1799. LCFI1:
  1800. ret
  1801. LFE16:
  1802. .cstring
  1803. .align 3
  1804. LC8:
  1805. .ascii "%d powers of two found in %lu ns\12\0"
  1806. .section __TEXT,__text_startup,regular,pure_instructions
  1807. .align 4
  1808. .globl _main
  1809. _main:
  1810. LFB17:
  1811. pushq %r12
  1812. LCFI2:
  1813. pushq %rbp
  1814. LCFI3:
  1815. xorl %ebp, %ebp
  1816. pushq %rbx
  1817. LCFI4:
  1818. xorl %ebx, %ebx
  1819. call _mach_absolute_time
  1820. movq %rax, %r12
  1821. .align 4
  1822. L16:
  1823. movl %ebp, %edi
  1824. call _isPowerOfTwo
  1825. testl %eax, %eax
  1826. setne %al
  1827. addl $1, %ebp
  1828. movzbl %al, %eax
  1829. addl %eax, %ebx
  1830. cmpl $-1, %ebp
  1831. jne L16
  1832. call _mach_absolute_time
  1833. leaq LC8(%rip), %rdi
  1834. movl %ebx, %esi
  1835. subq %r12, %rax
  1836. movq %rax, %rdx
  1837. xorl %eax, %eax
  1838. call _printf
  1839. popq %rbx
  1840. LCFI5:
  1841. xorl %eax, %eax
  1842. popq %rbp
  1843. LCFI6:
  1844. popq %r12
  1845. LCFI7:
  1846. ret
  1847. LFE17:
  1848. .literal16
  1849. .align 4
  1850. LC0:
  1851. .long 1
  1852. .long 2
  1853. .long 4
  1854. .long 8
  1855. .align 4
  1856. LC1:
  1857. .long 16
  1858. .long 32
  1859. .long 64
  1860. .long 128
  1861. .align 4
  1862. LC2:
  1863. .long 256
  1864. .long 512
  1865. .long 1024
  1866. .long 2048
  1867. .align 4
  1868. LC3:
  1869. .long 4096
  1870. .long 8192
  1871. .long 16384
  1872. .long 32768
  1873. .align 4
  1874. LC4:
  1875. .long 65536
  1876. .long 131072
  1877. .long 262144
  1878. .long 524288
  1879. .align 4
  1880. LC5:
  1881. .long 1048576
  1882. .long 2097152
  1883. .long 4194304
  1884. .long 8388608
  1885. .align 4
  1886. LC6:
  1887. .long 16777216
  1888. .long 33554432
  1889. .long 67108864
  1890. .long 134217728
  1891. .align 4
  1892. LC7:
  1893. .long 268435456
  1894. .long 536870912
  1895. .long 1073741824
  1896. .long -2147483648
  1897. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  1898. EH_frame1:
  1899. .set L$set$0,LECIE1-LSCIE1
  1900. .long L$set$0
  1901. LSCIE1:
  1902. .long 0
  1903. .byte 0x1
  1904. .ascii "zR\0"
  1905. .byte 0x1
  1906. .byte 0x78
  1907. .byte 0x10
  1908. .byte 0x1
  1909. .byte 0x10
  1910. .byte 0xc
  1911. .byte 0x7
  1912. .byte 0x8
  1913. .byte 0x90
  1914. .byte 0x1
  1915. .align 3
  1916. LECIE1:
  1917. LSFDE1:
  1918. .set L$set$1,LEFDE1-LASFDE1
  1919. .long L$set$1
  1920. LASFDE1:
  1921. .long LASFDE1-EH_frame1
  1922. .quad LFB16-.
  1923. .set L$set$2,LFE16-LFB16
  1924. .quad L$set$2
  1925. .byte 0
  1926. .byte 0x4
  1927. .set L$set$3,LCFI0-LFB16
  1928. .long L$set$3
  1929. .byte 0xe
  1930. .byte 0x18
  1931. .byte 0x4
  1932. .set L$set$4,LCFI1-LCFI0
  1933. .long L$set$4
  1934. .byte 0xe
  1935. .byte 0x8
  1936. .align 3
  1937. LEFDE1:
  1938. LSFDE3:
  1939. .set L$set$5,LEFDE3-LASFDE3
  1940. .long L$set$5
  1941. LASFDE3:
  1942. .long LASFDE3-EH_frame1
  1943. .quad LFB17-.
  1944. .set L$set$6,LFE17-LFB17
  1945. .quad L$set$6
  1946. .byte 0
  1947. .byte 0x4
  1948. .set L$set$7,LCFI2-LFB17
  1949. .long L$set$7
  1950. .byte 0xe
  1951. .byte 0x10
  1952. .byte 0x8c
  1953. .byte 0x2
  1954. .byte 0x4
  1955. .set L$set$8,LCFI3-LCFI2
  1956. .long L$set$8
  1957. .byte 0xe
  1958. .byte 0x18
  1959. .byte 0x86
  1960. .byte 0x3
  1961. .byte 0x4
  1962. .set L$set$9,LCFI4-LCFI3
  1963. .long L$set$9
  1964. .byte 0xe
  1965. .byte 0x20
  1966. .byte 0x83
  1967. .byte 0x4
  1968. .byte 0x4
  1969. .set L$set$10,LCFI5-LCFI4
  1970. .long L$set$10
  1971. .byte 0xe
  1972. .byte 0x18
  1973. .byte 0x4
  1974. .set L$set$11,LCFI6-LCFI5
  1975. .long L$set$11
  1976. .byte 0xe
  1977. .byte 0x10
  1978. .byte 0x4
  1979. .set L$set$12,LCFI7-LCFI6
  1980. .long L$set$12
  1981. .byte 0xe
  1982. .byte 0x8
  1983. .align 3
  1984. LEFDE3:
  1985. .subsections_via_symbols
  1986.  
  1987.  
  1988.  
  1989. ==> powersoftwo-6-c2.s <===================================================
  1990. .text
  1991. .align 4,0x90
  1992. .globl _isPowerOfTwo
  1993. _isPowerOfTwo:
  1994. LFB16:
  1995. pushq %rbx
  1996. LCFI0:
  1997. movl %edi, %edx
  1998. xorl %eax, %eax
  1999. addq $-128, %rsp
  2000. LCFI1:
  2001. subl $1, %edx
  2002. movl %edi, %ebx
  2003. movdqa LC0(%rip), %xmm0
  2004. movdqa %xmm0, (%rsp)
  2005. movdqa LC1(%rip), %xmm0
  2006. movdqa %xmm0, 16(%rsp)
  2007. movdqa LC2(%rip), %xmm0
  2008. movdqa %xmm0, 32(%rsp)
  2009. movdqa LC3(%rip), %xmm0
  2010. movdqa %xmm0, 48(%rsp)
  2011. movdqa LC4(%rip), %xmm0
  2012. movdqa %xmm0, 64(%rsp)
  2013. movdqa LC5(%rip), %xmm0
  2014. movdqa %xmm0, 80(%rsp)
  2015. movdqa LC6(%rip), %xmm0
  2016. movdqa %xmm0, 96(%rsp)
  2017. movdqa LC7(%rip), %xmm0
  2018. movdqa %xmm0, 112(%rsp)
  2019. js L2
  2020. mov %edi, %eax
  2021. cvtsi2sdq %rax, %xmm0
  2022. call _log
  2023. movl $1, %eax
  2024. divsd LC8(%rip), %xmm0
  2025. cvttsd2si %xmm0, %edx
  2026. movslq %edx, %rcx
  2027. cmpl %ebx, (%rsp,%rcx,4)
  2028. je L2
  2029. addl $1, %edx
  2030. xorl %eax, %eax
  2031. movslq %edx, %rdx
  2032. cmpl (%rsp,%rdx,4), %ebx
  2033. sete %al
  2034. L2:
  2035. subq $-128, %rsp
  2036. LCFI2:
  2037. popq %rbx
  2038. LCFI3:
  2039. ret
  2040. LFE16:
  2041. .cstring
  2042. .align 3
  2043. LC9:
  2044. .ascii "%d powers of two found in %lu ns\12\0"
  2045. .section __TEXT,__text_startup,regular,pure_instructions
  2046. .align 4
  2047. .globl _main
  2048. _main:
  2049. LFB17:
  2050. pushq %r12
  2051. LCFI4:
  2052. pushq %rbp
  2053. LCFI5:
  2054. xorl %ebp, %ebp
  2055. pushq %rbx
  2056. LCFI6:
  2057. xorl %ebx, %ebx
  2058. call _mach_absolute_time
  2059. movq %rax, %r12
  2060. .align 4
  2061. L10:
  2062. movl %ebp, %edi
  2063. call _isPowerOfTwo
  2064. testl %eax, %eax
  2065. setne %al
  2066. addl $1, %ebp
  2067. movzbl %al, %eax
  2068. addl %eax, %ebx
  2069. cmpl $-1, %ebp
  2070. jne L10
  2071. call _mach_absolute_time
  2072. leaq LC9(%rip), %rdi
  2073. movl %ebx, %esi
  2074. subq %r12, %rax
  2075. movq %rax, %rdx
  2076. xorl %eax, %eax
  2077. call _printf
  2078. popq %rbx
  2079. LCFI7:
  2080. xorl %eax, %eax
  2081. popq %rbp
  2082. LCFI8:
  2083. popq %r12
  2084. LCFI9:
  2085. ret
  2086. LFE17:
  2087. .literal16
  2088. .align 4
  2089. LC0:
  2090. .long 1
  2091. .long 2
  2092. .long 4
  2093. .long 8
  2094. .align 4
  2095. LC1:
  2096. .long 16
  2097. .long 32
  2098. .long 64
  2099. .long 128
  2100. .align 4
  2101. LC2:
  2102. .long 256
  2103. .long 512
  2104. .long 1024
  2105. .long 2048
  2106. .align 4
  2107. LC3:
  2108. .long 4096
  2109. .long 8192
  2110. .long 16384
  2111. .long 32768
  2112. .align 4
  2113. LC4:
  2114. .long 65536
  2115. .long 131072
  2116. .long 262144
  2117. .long 524288
  2118. .align 4
  2119. LC5:
  2120. .long 1048576
  2121. .long 2097152
  2122. .long 4194304
  2123. .long 8388608
  2124. .align 4
  2125. LC6:
  2126. .long 16777216
  2127. .long 33554432
  2128. .long 67108864
  2129. .long 134217728
  2130. .align 4
  2131. LC7:
  2132. .long 268435456
  2133. .long 536870912
  2134. .long 1073741824
  2135. .long -2147483648
  2136. .literal8
  2137. .align 3
  2138. LC8:
  2139. .long 4277811695
  2140. .long 1072049730
  2141. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  2142. EH_frame1:
  2143. .set L$set$0,LECIE1-LSCIE1
  2144. .long L$set$0
  2145. LSCIE1:
  2146. .long 0
  2147. .byte 0x1
  2148. .ascii "zR\0"
  2149. .byte 0x1
  2150. .byte 0x78
  2151. .byte 0x10
  2152. .byte 0x1
  2153. .byte 0x10
  2154. .byte 0xc
  2155. .byte 0x7
  2156. .byte 0x8
  2157. .byte 0x90
  2158. .byte 0x1
  2159. .align 3
  2160. LECIE1:
  2161. LSFDE1:
  2162. .set L$set$1,LEFDE1-LASFDE1
  2163. .long L$set$1
  2164. LASFDE1:
  2165. .long LASFDE1-EH_frame1
  2166. .quad LFB16-.
  2167. .set L$set$2,LFE16-LFB16
  2168. .quad L$set$2
  2169. .byte 0
  2170. .byte 0x4
  2171. .set L$set$3,LCFI0-LFB16
  2172. .long L$set$3
  2173. .byte 0xe
  2174. .byte 0x10
  2175. .byte 0x83
  2176. .byte 0x2
  2177. .byte 0x4
  2178. .set L$set$4,LCFI1-LCFI0
  2179. .long L$set$4
  2180. .byte 0xe
  2181. .byte 0x90,0x1
  2182. .byte 0x4
  2183. .set L$set$5,LCFI2-LCFI1
  2184. .long L$set$5
  2185. .byte 0xe
  2186. .byte 0x10
  2187. .byte 0x4
  2188. .set L$set$6,LCFI3-LCFI2
  2189. .long L$set$6
  2190. .byte 0xe
  2191. .byte 0x8
  2192. .align 3
  2193. LEFDE1:
  2194. LSFDE3:
  2195. .set L$set$7,LEFDE3-LASFDE3
  2196. .long L$set$7
  2197. LASFDE3:
  2198. .long LASFDE3-EH_frame1
  2199. .quad LFB17-.
  2200. .set L$set$8,LFE17-LFB17
  2201. .quad L$set$8
  2202. .byte 0
  2203. .byte 0x4
  2204. .set L$set$9,LCFI4-LFB17
  2205. .long L$set$9
  2206. .byte 0xe
  2207. .byte 0x10
  2208. .byte 0x8c
  2209. .byte 0x2
  2210. .byte 0x4
  2211. .set L$set$10,LCFI5-LCFI4
  2212. .long L$set$10
  2213. .byte 0xe
  2214. .byte 0x18
  2215. .byte 0x86
  2216. .byte 0x3
  2217. .byte 0x4
  2218. .set L$set$11,LCFI6-LCFI5
  2219. .long L$set$11
  2220. .byte 0xe
  2221. .byte 0x20
  2222. .byte 0x83
  2223. .byte 0x4
  2224. .byte 0x4
  2225. .set L$set$12,LCFI7-LCFI6
  2226. .long L$set$12
  2227. .byte 0xe
  2228. .byte 0x18
  2229. .byte 0x4
  2230. .set L$set$13,LCFI8-LCFI7
  2231. .long L$set$13
  2232. .byte 0xe
  2233. .byte 0x10
  2234. .byte 0x4
  2235. .set L$set$14,LCFI9-LCFI8
  2236. .long L$set$14
  2237. .byte 0xe
  2238. .byte 0x8
  2239. .align 3
  2240. LEFDE3:
  2241. .subsections_via_symbols
  2242.  
  2243.  
  2244.  
  2245. ==> powersoftwo-6-i7.s <===================================================
  2246. .text
  2247. .align 4,0x90
  2248. .globl _isPowerOfTwo
  2249. _isPowerOfTwo:
  2250. LFB16:
  2251. pushq %rbx
  2252. LCFI0:
  2253. movl %edi, %edx
  2254. xorl %eax, %eax
  2255. addq $-128, %rsp
  2256. LCFI1:
  2257. subl $1, %edx
  2258. movl %edi, %ebx
  2259. movdqa LC0(%rip), %xmm0
  2260. movdqa %xmm0, (%rsp)
  2261. movdqa LC1(%rip), %xmm0
  2262. movdqa %xmm0, 16(%rsp)
  2263. movdqa LC2(%rip), %xmm0
  2264. movdqa %xmm0, 32(%rsp)
  2265. movdqa LC3(%rip), %xmm0
  2266. movdqa %xmm0, 48(%rsp)
  2267. movdqa LC4(%rip), %xmm0
  2268. movdqa %xmm0, 64(%rsp)
  2269. movdqa LC5(%rip), %xmm0
  2270. movdqa %xmm0, 80(%rsp)
  2271. movdqa LC6(%rip), %xmm0
  2272. movdqa %xmm0, 96(%rsp)
  2273. movdqa LC7(%rip), %xmm0
  2274. movdqa %xmm0, 112(%rsp)
  2275. js L2
  2276. mov %edi, %eax
  2277. cvtsi2sdq %rax, %xmm0
  2278. call _log
  2279. movl $1, %eax
  2280. divsd LC8(%rip), %xmm0
  2281. cvttsd2si %xmm0, %edx
  2282. movslq %edx, %rcx
  2283. cmpl %ebx, (%rsp,%rcx,4)
  2284. je L2
  2285. addl $1, %edx
  2286. xorl %eax, %eax
  2287. movslq %edx, %rdx
  2288. cmpl (%rsp,%rdx,4), %ebx
  2289. sete %al
  2290. L2:
  2291. subq $-128, %rsp
  2292. LCFI2:
  2293. popq %rbx
  2294. LCFI3:
  2295. ret
  2296. LFE16:
  2297. .cstring
  2298. .align 3
  2299. LC9:
  2300. .ascii "%d powers of two found in %lu ns\12\0"
  2301. .section __TEXT,__text_startup,regular,pure_instructions
  2302. .align 4
  2303. .globl _main
  2304. _main:
  2305. LFB17:
  2306. pushq %r12
  2307. LCFI4:
  2308. pushq %rbp
  2309. LCFI5:
  2310. xorl %ebp, %ebp
  2311. pushq %rbx
  2312. LCFI6:
  2313. xorl %ebx, %ebx
  2314. call _mach_absolute_time
  2315. movq %rax, %r12
  2316. .align 4
  2317. L10:
  2318. movl %ebp, %edi
  2319. call _isPowerOfTwo
  2320. testl %eax, %eax
  2321. setne %al
  2322. addl $1, %ebp
  2323. movzbl %al, %eax
  2324. addl %eax, %ebx
  2325. cmpl $-1, %ebp
  2326. jne L10
  2327. call _mach_absolute_time
  2328. leaq LC9(%rip), %rdi
  2329. movl %ebx, %esi
  2330. subq %r12, %rax
  2331. movq %rax, %rdx
  2332. xorl %eax, %eax
  2333. call _printf
  2334. popq %rbx
  2335. LCFI7:
  2336. xorl %eax, %eax
  2337. popq %rbp
  2338. LCFI8:
  2339. popq %r12
  2340. LCFI9:
  2341. ret
  2342. LFE17:
  2343. .literal16
  2344. .align 4
  2345. LC0:
  2346. .long 1
  2347. .long 2
  2348. .long 4
  2349. .long 8
  2350. .align 4
  2351. LC1:
  2352. .long 16
  2353. .long 32
  2354. .long 64
  2355. .long 128
  2356. .align 4
  2357. LC2:
  2358. .long 256
  2359. .long 512
  2360. .long 1024
  2361. .long 2048
  2362. .align 4
  2363. LC3:
  2364. .long 4096
  2365. .long 8192
  2366. .long 16384
  2367. .long 32768
  2368. .align 4
  2369. LC4:
  2370. .long 65536
  2371. .long 131072
  2372. .long 262144
  2373. .long 524288
  2374. .align 4
  2375. LC5:
  2376. .long 1048576
  2377. .long 2097152
  2378. .long 4194304
  2379. .long 8388608
  2380. .align 4
  2381. LC6:
  2382. .long 16777216
  2383. .long 33554432
  2384. .long 67108864
  2385. .long 134217728
  2386. .align 4
  2387. LC7:
  2388. .long 268435456
  2389. .long 536870912
  2390. .long 1073741824
  2391. .long -2147483648
  2392. .literal8
  2393. .align 3
  2394. LC8:
  2395. .long 4277811695
  2396. .long 1072049730
  2397. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  2398. EH_frame1:
  2399. .set L$set$0,LECIE1-LSCIE1
  2400. .long L$set$0
  2401. LSCIE1:
  2402. .long 0
  2403. .byte 0x1
  2404. .ascii "zR\0"
  2405. .byte 0x1
  2406. .byte 0x78
  2407. .byte 0x10
  2408. .byte 0x1
  2409. .byte 0x10
  2410. .byte 0xc
  2411. .byte 0x7
  2412. .byte 0x8
  2413. .byte 0x90
  2414. .byte 0x1
  2415. .align 3
  2416. LECIE1:
  2417. LSFDE1:
  2418. .set L$set$1,LEFDE1-LASFDE1
  2419. .long L$set$1
  2420. LASFDE1:
  2421. .long LASFDE1-EH_frame1
  2422. .quad LFB16-.
  2423. .set L$set$2,LFE16-LFB16
  2424. .quad L$set$2
  2425. .byte 0
  2426. .byte 0x4
  2427. .set L$set$3,LCFI0-LFB16
  2428. .long L$set$3
  2429. .byte 0xe
  2430. .byte 0x10
  2431. .byte 0x83
  2432. .byte 0x2
  2433. .byte 0x4
  2434. .set L$set$4,LCFI1-LCFI0
  2435. .long L$set$4
  2436. .byte 0xe
  2437. .byte 0x90,0x1
  2438. .byte 0x4
  2439. .set L$set$5,LCFI2-LCFI1
  2440. .long L$set$5
  2441. .byte 0xe
  2442. .byte 0x10
  2443. .byte 0x4
  2444. .set L$set$6,LCFI3-LCFI2
  2445. .long L$set$6
  2446. .byte 0xe
  2447. .byte 0x8
  2448. .align 3
  2449. LEFDE1:
  2450. LSFDE3:
  2451. .set L$set$7,LEFDE3-LASFDE3
  2452. .long L$set$7
  2453. LASFDE3:
  2454. .long LASFDE3-EH_frame1
  2455. .quad LFB17-.
  2456. .set L$set$8,LFE17-LFB17
  2457. .quad L$set$8
  2458. .byte 0
  2459. .byte 0x4
  2460. .set L$set$9,LCFI4-LFB17
  2461. .long L$set$9
  2462. .byte 0xe
  2463. .byte 0x10
  2464. .byte 0x8c
  2465. .byte 0x2
  2466. .byte 0x4
  2467. .set L$set$10,LCFI5-LCFI4
  2468. .long L$set$10
  2469. .byte 0xe
  2470. .byte 0x18
  2471. .byte 0x86
  2472. .byte 0x3
  2473. .byte 0x4
  2474. .set L$set$11,LCFI6-LCFI5
  2475. .long L$set$11
  2476. .byte 0xe
  2477. .byte 0x20
  2478. .byte 0x83
  2479. .byte 0x4
  2480. .byte 0x4
  2481. .set L$set$12,LCFI7-LCFI6
  2482. .long L$set$12
  2483. .byte 0xe
  2484. .byte 0x18
  2485. .byte 0x4
  2486. .set L$set$13,LCFI8-LCFI7
  2487. .long L$set$13
  2488. .byte 0xe
  2489. .byte 0x10
  2490. .byte 0x4
  2491. .set L$set$14,LCFI9-LCFI8
  2492. .long L$set$14
  2493. .byte 0xe
  2494. .byte 0x8
  2495. .align 3
  2496. LEFDE3:
  2497. .subsections_via_symbols
  2498.  
  2499.  
  2500.  
  2501. ==> powersoftwo-7-c2.s <===================================================
  2502. .text
  2503. .align 4,0x90
  2504. .globl _isPowerOfTwo
  2505. _isPowerOfTwo:
  2506. LFB16:
  2507. xorl %eax, %eax
  2508. testl %edi, %edi
  2509. jne L5
  2510. jmp L2
  2511. .align 4,0x90
  2512. L11:
  2513. testl %edi, %edi
  2514. je L8
  2515. L5:
  2516. leal 1(%rax), %edx
  2517. testb $1, %dil
  2518. cmovne %edx, %eax
  2519. shrl %edi
  2520. cmpl $1, %eax
  2521. movl %eax, %edx
  2522. jbe L11
  2523. L8:
  2524. xorl %eax, %eax
  2525. cmpl $1, %edx
  2526. sete %al
  2527. L2:
  2528. rep
  2529. ret
  2530. LFE16:
  2531. .cstring
  2532. .align 3
  2533. LC0:
  2534. .ascii "%d powers of two found in %lu ns\12\0"
  2535. .section __TEXT,__text_startup,regular,pure_instructions
  2536. .align 4
  2537. .globl _main
  2538. _main:
  2539. LFB17:
  2540. pushq %rbx
  2541. LCFI0:
  2542. subq $16, %rsp
  2543. LCFI1:
  2544. call _mach_absolute_time
  2545. xorl %edi, %edi
  2546. xorl %esi, %esi
  2547. movq %rax, %rbx
  2548. xorl %eax, %eax
  2549. .align 4
  2550. L22:
  2551. cmpl $1, %eax
  2552. sete %al
  2553. addl $1, %edi
  2554. movzbl %al, %eax
  2555. addl %eax, %esi
  2556. cmpl $-1, %edi
  2557. je L23
  2558. movl %edi, %edx
  2559. xorl %eax, %eax
  2560. .align 4
  2561. L16:
  2562. leal 1(%rax), %ecx
  2563. testb $1, %dl
  2564. cmovne %ecx, %eax
  2565. shrl %edx
  2566. cmpl $1, %eax
  2567. ja L22
  2568. testl %edx, %edx
  2569. jne L16
  2570. jmp L22
  2571. L23:
  2572. movl %esi, 8(%rsp)
  2573. .p2align 4,,5
  2574. call _mach_absolute_time
  2575. movl 8(%rsp), %esi
  2576. leaq LC0(%rip), %rdi
  2577. subq %rbx, %rax
  2578. movq %rax, %rdx
  2579. xorl %eax, %eax
  2580. call _printf
  2581. addq $16, %rsp
  2582. LCFI2:
  2583. xorl %eax, %eax
  2584. popq %rbx
  2585. LCFI3:
  2586. ret
  2587. LFE17:
  2588. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  2589. EH_frame1:
  2590. .set L$set$0,LECIE1-LSCIE1
  2591. .long L$set$0
  2592. LSCIE1:
  2593. .long 0
  2594. .byte 0x1
  2595. .ascii "zR\0"
  2596. .byte 0x1
  2597. .byte 0x78
  2598. .byte 0x10
  2599. .byte 0x1
  2600. .byte 0x10
  2601. .byte 0xc
  2602. .byte 0x7
  2603. .byte 0x8
  2604. .byte 0x90
  2605. .byte 0x1
  2606. .align 3
  2607. LECIE1:
  2608. LSFDE1:
  2609. .set L$set$1,LEFDE1-LASFDE1
  2610. .long L$set$1
  2611. LASFDE1:
  2612. .long LASFDE1-EH_frame1
  2613. .quad LFB16-.
  2614. .set L$set$2,LFE16-LFB16
  2615. .quad L$set$2
  2616. .byte 0
  2617. .align 3
  2618. LEFDE1:
  2619. LSFDE3:
  2620. .set L$set$3,LEFDE3-LASFDE3
  2621. .long L$set$3
  2622. LASFDE3:
  2623. .long LASFDE3-EH_frame1
  2624. .quad LFB17-.
  2625. .set L$set$4,LFE17-LFB17
  2626. .quad L$set$4
  2627. .byte 0
  2628. .byte 0x4
  2629. .set L$set$5,LCFI0-LFB17
  2630. .long L$set$5
  2631. .byte 0xe
  2632. .byte 0x10
  2633. .byte 0x83
  2634. .byte 0x2
  2635. .byte 0x4
  2636. .set L$set$6,LCFI1-LCFI0
  2637. .long L$set$6
  2638. .byte 0xe
  2639. .byte 0x20
  2640. .byte 0x4
  2641. .set L$set$7,LCFI2-LCFI1
  2642. .long L$set$7
  2643. .byte 0xe
  2644. .byte 0x10
  2645. .byte 0x4
  2646. .set L$set$8,LCFI3-LCFI2
  2647. .long L$set$8
  2648. .byte 0xe
  2649. .byte 0x8
  2650. .align 3
  2651. LEFDE3:
  2652. .subsections_via_symbols
  2653.  
  2654.  
  2655.  
  2656. ==> powersoftwo-7-i7.s <===================================================
  2657. .text
  2658. .align 4,0x90
  2659. .globl _isPowerOfTwo
  2660. _isPowerOfTwo:
  2661. LFB16:
  2662. xorl %eax, %eax
  2663. testl %edi, %edi
  2664. jne L5
  2665. jmp L2
  2666. .align 4,0x90
  2667. L11:
  2668. testl %edi, %edi
  2669. je L8
  2670. L5:
  2671. leal 1(%rax), %edx
  2672. testb $1, %dil
  2673. cmovne %edx, %eax
  2674. shrl %edi
  2675. cmpl $1, %eax
  2676. movl %eax, %edx
  2677. jbe L11
  2678. L8:
  2679. xorl %eax, %eax
  2680. cmpl $1, %edx
  2681. sete %al
  2682. L2:
  2683. rep
  2684. ret
  2685. LFE16:
  2686. .cstring
  2687. .align 3
  2688. LC0:
  2689. .ascii "%d powers of two found in %lu ns\12\0"
  2690. .section __TEXT,__text_startup,regular,pure_instructions
  2691. .align 4
  2692. .globl _main
  2693. _main:
  2694. LFB17:
  2695. pushq %rbx
  2696. LCFI0:
  2697. subq $16, %rsp
  2698. LCFI1:
  2699. call _mach_absolute_time
  2700. xorl %edi, %edi
  2701. xorl %esi, %esi
  2702. movq %rax, %rbx
  2703. xorl %eax, %eax
  2704. .align 4
  2705. L22:
  2706. cmpl $1, %eax
  2707. sete %al
  2708. addl $1, %edi
  2709. movzbl %al, %eax
  2710. addl %eax, %esi
  2711. cmpl $-1, %edi
  2712. je L23
  2713. movl %edi, %edx
  2714. xorl %eax, %eax
  2715. .align 4
  2716. L16:
  2717. leal 1(%rax), %ecx
  2718. testb $1, %dl
  2719. cmovne %ecx, %eax
  2720. shrl %edx
  2721. cmpl $1, %eax
  2722. ja L22
  2723. testl %edx, %edx
  2724. jne L16
  2725. jmp L22
  2726. L23:
  2727. movl %esi, 8(%rsp)
  2728. .p2align 4,,5
  2729. call _mach_absolute_time
  2730. movl 8(%rsp), %esi
  2731. leaq LC0(%rip), %rdi
  2732. subq %rbx, %rax
  2733. movq %rax, %rdx
  2734. xorl %eax, %eax
  2735. call _printf
  2736. addq $16, %rsp
  2737. LCFI2:
  2738. xorl %eax, %eax
  2739. popq %rbx
  2740. LCFI3:
  2741. ret
  2742. LFE17:
  2743. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  2744. EH_frame1:
  2745. .set L$set$0,LECIE1-LSCIE1
  2746. .long L$set$0
  2747. LSCIE1:
  2748. .long 0
  2749. .byte 0x1
  2750. .ascii "zR\0"
  2751. .byte 0x1
  2752. .byte 0x78
  2753. .byte 0x10
  2754. .byte 0x1
  2755. .byte 0x10
  2756. .byte 0xc
  2757. .byte 0x7
  2758. .byte 0x8
  2759. .byte 0x90
  2760. .byte 0x1
  2761. .align 3
  2762. LECIE1:
  2763. LSFDE1:
  2764. .set L$set$1,LEFDE1-LASFDE1
  2765. .long L$set$1
  2766. LASFDE1:
  2767. .long LASFDE1-EH_frame1
  2768. .quad LFB16-.
  2769. .set L$set$2,LFE16-LFB16
  2770. .quad L$set$2
  2771. .byte 0
  2772. .align 3
  2773. LEFDE1:
  2774. LSFDE3:
  2775. .set L$set$3,LEFDE3-LASFDE3
  2776. .long L$set$3
  2777. LASFDE3:
  2778. .long LASFDE3-EH_frame1
  2779. .quad LFB17-.
  2780. .set L$set$4,LFE17-LFB17
  2781. .quad L$set$4
  2782. .byte 0
  2783. .byte 0x4
  2784. .set L$set$5,LCFI0-LFB17
  2785. .long L$set$5
  2786. .byte 0xe
  2787. .byte 0x10
  2788. .byte 0x83
  2789. .byte 0x2
  2790. .byte 0x4
  2791. .set L$set$6,LCFI1-LCFI0
  2792. .long L$set$6
  2793. .byte 0xe
  2794. .byte 0x20
  2795. .byte 0x4
  2796. .set L$set$7,LCFI2-LCFI1
  2797. .long L$set$7
  2798. .byte 0xe
  2799. .byte 0x10
  2800. .byte 0x4
  2801. .set L$set$8,LCFI3-LCFI2
  2802. .long L$set$8
  2803. .byte 0xe
  2804. .byte 0x8
  2805. .align 3
  2806. LEFDE3:
  2807. .subsections_via_symbols
  2808.  
  2809.  
  2810.  
  2811. ==> powersoftwo-8-c2.s <===================================================
  2812. .text
  2813. .align 4,0x90
  2814. .globl _isPowerOfTwo
  2815. _isPowerOfTwo:
  2816. LFB16:
  2817. jmp L8
  2818. .align 4,0x90
  2819. L10:
  2820. cmpl $1, %edi
  2821. jbe L2
  2822. shrl %edi
  2823. L8:
  2824. testb $1, %dil
  2825. je L10
  2826. L2:
  2827. xorl %eax, %eax
  2828. cmpl $1, %edi
  2829. sete %al
  2830. ret
  2831. LFE16:
  2832. .cstring
  2833. .align 3
  2834. LC0:
  2835. .ascii "%d powers of two found in %lu ns\12\0"
  2836. .section __TEXT,__text_startup,regular,pure_instructions
  2837. .align 4
  2838. .globl _main
  2839. _main:
  2840. LFB17:
  2841. pushq %rbx
  2842. LCFI0:
  2843. subq $16, %rsp
  2844. LCFI1:
  2845. call _mach_absolute_time
  2846. xorl %edx, %edx
  2847. xorl %esi, %esi
  2848. movq %rax, %rbx
  2849. xorl %eax, %eax
  2850. .align 4
  2851. L24:
  2852. cmpl $1, %eax
  2853. sete %al
  2854. addl $1, %edx
  2855. movzbl %al, %eax
  2856. addl %eax, %esi
  2857. cmpl $-1, %edx
  2858. je L15
  2859. testb $1, %dl
  2860. jne L19
  2861. cmpl $1, %edx
  2862. movl %edx, %eax
  2863. jbe L19
  2864. .align 4
  2865. L21:
  2866. shrl %eax
  2867. testb $1, %al
  2868. jne L24
  2869. cmpl $1, %eax
  2870. ja L21
  2871. .p2align 4,,4
  2872. jmp L24
  2873. .align 4
  2874. L19:
  2875. movl %edx, %eax
  2876. jmp L24
  2877. L15:
  2878. movl %esi, 8(%rsp)
  2879. .p2align 4,,5
  2880. call _mach_absolute_time
  2881. movl 8(%rsp), %esi
  2882. leaq LC0(%rip), %rdi
  2883. subq %rbx, %rax
  2884. movq %rax, %rdx
  2885. xorl %eax, %eax
  2886. call _printf
  2887. addq $16, %rsp
  2888. LCFI2:
  2889. xorl %eax, %eax
  2890. popq %rbx
  2891. LCFI3:
  2892. ret
  2893. LFE17:
  2894. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  2895. EH_frame1:
  2896. .set L$set$0,LECIE1-LSCIE1
  2897. .long L$set$0
  2898. LSCIE1:
  2899. .long 0
  2900. .byte 0x1
  2901. .ascii "zR\0"
  2902. .byte 0x1
  2903. .byte 0x78
  2904. .byte 0x10
  2905. .byte 0x1
  2906. .byte 0x10
  2907. .byte 0xc
  2908. .byte 0x7
  2909. .byte 0x8
  2910. .byte 0x90
  2911. .byte 0x1
  2912. .align 3
  2913. LECIE1:
  2914. LSFDE1:
  2915. .set L$set$1,LEFDE1-LASFDE1
  2916. .long L$set$1
  2917. LASFDE1:
  2918. .long LASFDE1-EH_frame1
  2919. .quad LFB16-.
  2920. .set L$set$2,LFE16-LFB16
  2921. .quad L$set$2
  2922. .byte 0
  2923. .align 3
  2924. LEFDE1:
  2925. LSFDE3:
  2926. .set L$set$3,LEFDE3-LASFDE3
  2927. .long L$set$3
  2928. LASFDE3:
  2929. .long LASFDE3-EH_frame1
  2930. .quad LFB17-.
  2931. .set L$set$4,LFE17-LFB17
  2932. .quad L$set$4
  2933. .byte 0
  2934. .byte 0x4
  2935. .set L$set$5,LCFI0-LFB17
  2936. .long L$set$5
  2937. .byte 0xe
  2938. .byte 0x10
  2939. .byte 0x83
  2940. .byte 0x2
  2941. .byte 0x4
  2942. .set L$set$6,LCFI1-LCFI0
  2943. .long L$set$6
  2944. .byte 0xe
  2945. .byte 0x20
  2946. .byte 0x4
  2947. .set L$set$7,LCFI2-LCFI1
  2948. .long L$set$7
  2949. .byte 0xe
  2950. .byte 0x10
  2951. .byte 0x4
  2952. .set L$set$8,LCFI3-LCFI2
  2953. .long L$set$8
  2954. .byte 0xe
  2955. .byte 0x8
  2956. .align 3
  2957. LEFDE3:
  2958. .subsections_via_symbols
  2959.  
  2960.  
  2961.  
  2962. ==> powersoftwo-8-i7.s <===================================================
  2963. .text
  2964. .align 4,0x90
  2965. .globl _isPowerOfTwo
  2966. _isPowerOfTwo:
  2967. LFB16:
  2968. jmp L8
  2969. .align 4,0x90
  2970. L10:
  2971. cmpl $1, %edi
  2972. jbe L2
  2973. shrl %edi
  2974. L8:
  2975. testb $1, %dil
  2976. je L10
  2977. L2:
  2978. xorl %eax, %eax
  2979. cmpl $1, %edi
  2980. sete %al
  2981. ret
  2982. LFE16:
  2983. .cstring
  2984. .align 3
  2985. LC0:
  2986. .ascii "%d powers of two found in %lu ns\12\0"
  2987. .section __TEXT,__text_startup,regular,pure_instructions
  2988. .align 4
  2989. .globl _main
  2990. _main:
  2991. LFB17:
  2992. pushq %rbx
  2993. LCFI0:
  2994. subq $16, %rsp
  2995. LCFI1:
  2996. call _mach_absolute_time
  2997. xorl %edx, %edx
  2998. xorl %esi, %esi
  2999. movq %rax, %rbx
  3000. xorl %eax, %eax
  3001. .align 4
  3002. L24:
  3003. cmpl $1, %eax
  3004. sete %al
  3005. addl $1, %edx
  3006. movzbl %al, %eax
  3007. addl %eax, %esi
  3008. cmpl $-1, %edx
  3009. je L15
  3010. testb $1, %dl
  3011. jne L19
  3012. cmpl $1, %edx
  3013. movl %edx, %eax
  3014. jbe L19
  3015. .align 4
  3016. L21:
  3017. shrl %eax
  3018. testb $1, %al
  3019. jne L24
  3020. cmpl $1, %eax
  3021. ja L21
  3022. .p2align 4,,4
  3023. jmp L24
  3024. .align 4
  3025. L19:
  3026. movl %edx, %eax
  3027. jmp L24
  3028. L15:
  3029. movl %esi, 8(%rsp)
  3030. .p2align 4,,5
  3031. call _mach_absolute_time
  3032. movl 8(%rsp), %esi
  3033. leaq LC0(%rip), %rdi
  3034. subq %rbx, %rax
  3035. movq %rax, %rdx
  3036. xorl %eax, %eax
  3037. call _printf
  3038. addq $16, %rsp
  3039. LCFI2:
  3040. xorl %eax, %eax
  3041. popq %rbx
  3042. LCFI3:
  3043. ret
  3044. LFE17:
  3045. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  3046. EH_frame1:
  3047. .set L$set$0,LECIE1-LSCIE1
  3048. .long L$set$0
  3049. LSCIE1:
  3050. .long 0
  3051. .byte 0x1
  3052. .ascii "zR\0"
  3053. .byte 0x1
  3054. .byte 0x78
  3055. .byte 0x10
  3056. .byte 0x1
  3057. .byte 0x10
  3058. .byte 0xc
  3059. .byte 0x7
  3060. .byte 0x8
  3061. .byte 0x90
  3062. .byte 0x1
  3063. .align 3
  3064. LECIE1:
  3065. LSFDE1:
  3066. .set L$set$1,LEFDE1-LASFDE1
  3067. .long L$set$1
  3068. LASFDE1:
  3069. .long LASFDE1-EH_frame1
  3070. .quad LFB16-.
  3071. .set L$set$2,LFE16-LFB16
  3072. .quad L$set$2
  3073. .byte 0
  3074. .align 3
  3075. LEFDE1:
  3076. LSFDE3:
  3077. .set L$set$3,LEFDE3-LASFDE3
  3078. .long L$set$3
  3079. LASFDE3:
  3080. .long LASFDE3-EH_frame1
  3081. .quad LFB17-.
  3082. .set L$set$4,LFE17-LFB17
  3083. .quad L$set$4
  3084. .byte 0
  3085. .byte 0x4
  3086. .set L$set$5,LCFI0-LFB17
  3087. .long L$set$5
  3088. .byte 0xe
  3089. .byte 0x10
  3090. .byte 0x83
  3091. .byte 0x2
  3092. .byte 0x4
  3093. .set L$set$6,LCFI1-LCFI0
  3094. .long L$set$6
  3095. .byte 0xe
  3096. .byte 0x20
  3097. .byte 0x4
  3098. .set L$set$7,LCFI2-LCFI1
  3099. .long L$set$7
  3100. .byte 0xe
  3101. .byte 0x10
  3102. .byte 0x4
  3103. .set L$set$8,LCFI3-LCFI2
  3104. .long L$set$8
  3105. .byte 0xe
  3106. .byte 0x8
  3107. .align 3
  3108. LEFDE3:
  3109. .subsections_via_symbols
  3110.  
  3111.  
  3112.  
  3113. ==> powersoftwo-9a-c2.s <===================================================
  3114. .text
  3115. .align 4,0x90
  3116. .globl _isPowerOfTwo
  3117. _isPowerOfTwo:
  3118. LFB16:
  3119. xorl %eax, %eax
  3120. testl %edi, %edi
  3121. je L2
  3122. leal -1(%rdi), %eax
  3123. testl %edi, %eax
  3124. sete %al
  3125. movzbl %al, %eax
  3126. L2:
  3127. rep
  3128. ret
  3129. LFE16:
  3130. .cstring
  3131. .align 3
  3132. LC0:
  3133. .ascii "%d powers of two found in %lu ns\12\0"
  3134. .section __TEXT,__text_startup,regular,pure_instructions
  3135. .align 4
  3136. .globl _main
  3137. _main:
  3138. LFB17:
  3139. pushq %rbp
  3140. LCFI0:
  3141. pushq %rbx
  3142. LCFI1:
  3143. xorl %ebx, %ebx
  3144. subq $8, %rsp
  3145. LCFI2:
  3146. call _mach_absolute_time
  3147. movl $1, %edx
  3148. movq %rax, %rbp
  3149. xorl %eax, %eax
  3150. jmp L6
  3151. .align 4
  3152. L7:
  3153. addl $1, %eax
  3154. addl $1, %edx
  3155. L6:
  3156. testl %eax, %eax
  3157. je L7
  3158. leal -1(%rax), %ecx
  3159. testl %eax, %ecx
  3160. sete %cl
  3161. movzbl %cl, %ecx
  3162. addl %ecx, %ebx
  3163. cmpl $-1, %edx
  3164. jne L7
  3165. call _mach_absolute_time
  3166. leaq LC0(%rip), %rdi
  3167. movl %ebx, %esi
  3168. subq %rbp, %rax
  3169. movq %rax, %rdx
  3170. xorl %eax, %eax
  3171. call _printf
  3172. addq $8, %rsp
  3173. LCFI3:
  3174. xorl %eax, %eax
  3175. popq %rbx
  3176. LCFI4:
  3177. popq %rbp
  3178. LCFI5:
  3179. ret
  3180. LFE17:
  3181. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  3182. EH_frame1:
  3183. .set L$set$0,LECIE1-LSCIE1
  3184. .long L$set$0
  3185. LSCIE1:
  3186. .long 0
  3187. .byte 0x1
  3188. .ascii "zR\0"
  3189. .byte 0x1
  3190. .byte 0x78
  3191. .byte 0x10
  3192. .byte 0x1
  3193. .byte 0x10
  3194. .byte 0xc
  3195. .byte 0x7
  3196. .byte 0x8
  3197. .byte 0x90
  3198. .byte 0x1
  3199. .align 3
  3200. LECIE1:
  3201. LSFDE1:
  3202. .set L$set$1,LEFDE1-LASFDE1
  3203. .long L$set$1
  3204. LASFDE1:
  3205. .long LASFDE1-EH_frame1
  3206. .quad LFB16-.
  3207. .set L$set$2,LFE16-LFB16
  3208. .quad L$set$2
  3209. .byte 0
  3210. .align 3
  3211. LEFDE1:
  3212. LSFDE3:
  3213. .set L$set$3,LEFDE3-LASFDE3
  3214. .long L$set$3
  3215. LASFDE3:
  3216. .long LASFDE3-EH_frame1
  3217. .quad LFB17-.
  3218. .set L$set$4,LFE17-LFB17
  3219. .quad L$set$4
  3220. .byte 0
  3221. .byte 0x4
  3222. .set L$set$5,LCFI0-LFB17
  3223. .long L$set$5
  3224. .byte 0xe
  3225. .byte 0x10
  3226. .byte 0x86
  3227. .byte 0x2
  3228. .byte 0x4
  3229. .set L$set$6,LCFI1-LCFI0
  3230. .long L$set$6
  3231. .byte 0xe
  3232. .byte 0x18
  3233. .byte 0x83
  3234. .byte 0x3
  3235. .byte 0x4
  3236. .set L$set$7,LCFI2-LCFI1
  3237. .long L$set$7
  3238. .byte 0xe
  3239. .byte 0x20
  3240. .byte 0x4
  3241. .set L$set$8,LCFI3-LCFI2
  3242. .long L$set$8
  3243. .byte 0xe
  3244. .byte 0x18
  3245. .byte 0x4
  3246. .set L$set$9,LCFI4-LCFI3
  3247. .long L$set$9
  3248. .byte 0xe
  3249. .byte 0x10
  3250. .byte 0x4
  3251. .set L$set$10,LCFI5-LCFI4
  3252. .long L$set$10
  3253. .byte 0xe
  3254. .byte 0x8
  3255. .align 3
  3256. LEFDE3:
  3257. .subsections_via_symbols
  3258.  
  3259.  
  3260.  
  3261. ==> powersoftwo-9a-i7.s <===================================================
  3262. .text
  3263. .align 4,0x90
  3264. .globl _isPowerOfTwo
  3265. _isPowerOfTwo:
  3266. LFB16:
  3267. xorl %eax, %eax
  3268. testl %edi, %edi
  3269. je L2
  3270. leal -1(%rdi), %eax
  3271. testl %edi, %eax
  3272. sete %al
  3273. movzbl %al, %eax
  3274. L2:
  3275. rep
  3276. ret
  3277. LFE16:
  3278. .cstring
  3279. .align 3
  3280. LC0:
  3281. .ascii "%d powers of two found in %lu ns\12\0"
  3282. .section __TEXT,__text_startup,regular,pure_instructions
  3283. .align 4
  3284. .globl _main
  3285. _main:
  3286. LFB17:
  3287. pushq %rbp
  3288. LCFI0:
  3289. pushq %rbx
  3290. LCFI1:
  3291. xorl %ebx, %ebx
  3292. subq $8, %rsp
  3293. LCFI2:
  3294. call _mach_absolute_time
  3295. movl $1, %edx
  3296. movq %rax, %rbp
  3297. xorl %eax, %eax
  3298. jmp L6
  3299. .align 4
  3300. L7:
  3301. addl $1, %eax
  3302. addl $1, %edx
  3303. L6:
  3304. testl %eax, %eax
  3305. je L7
  3306. leal -1(%rax), %ecx
  3307. testl %eax, %ecx
  3308. sete %cl
  3309. movzbl %cl, %ecx
  3310. addl %ecx, %ebx
  3311. cmpl $-1, %edx
  3312. jne L7
  3313. call _mach_absolute_time
  3314. leaq LC0(%rip), %rdi
  3315. movl %ebx, %esi
  3316. subq %rbp, %rax
  3317. movq %rax, %rdx
  3318. xorl %eax, %eax
  3319. call _printf
  3320. addq $8, %rsp
  3321. LCFI3:
  3322. xorl %eax, %eax
  3323. popq %rbx
  3324. LCFI4:
  3325. popq %rbp
  3326. LCFI5:
  3327. ret
  3328. LFE17:
  3329. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  3330. EH_frame1:
  3331. .set L$set$0,LECIE1-LSCIE1
  3332. .long L$set$0
  3333. LSCIE1:
  3334. .long 0
  3335. .byte 0x1
  3336. .ascii "zR\0"
  3337. .byte 0x1
  3338. .byte 0x78
  3339. .byte 0x10
  3340. .byte 0x1
  3341. .byte 0x10
  3342. .byte 0xc
  3343. .byte 0x7
  3344. .byte 0x8
  3345. .byte 0x90
  3346. .byte 0x1
  3347. .align 3
  3348. LECIE1:
  3349. LSFDE1:
  3350. .set L$set$1,LEFDE1-LASFDE1
  3351. .long L$set$1
  3352. LASFDE1:
  3353. .long LASFDE1-EH_frame1
  3354. .quad LFB16-.
  3355. .set L$set$2,LFE16-LFB16
  3356. .quad L$set$2
  3357. .byte 0
  3358. .align 3
  3359. LEFDE1:
  3360. LSFDE3:
  3361. .set L$set$3,LEFDE3-LASFDE3
  3362. .long L$set$3
  3363. LASFDE3:
  3364. .long LASFDE3-EH_frame1
  3365. .quad LFB17-.
  3366. .set L$set$4,LFE17-LFB17
  3367. .quad L$set$4
  3368. .byte 0
  3369. .byte 0x4
  3370. .set L$set$5,LCFI0-LFB17
  3371. .long L$set$5
  3372. .byte 0xe
  3373. .byte 0x10
  3374. .byte 0x86
  3375. .byte 0x2
  3376. .byte 0x4
  3377. .set L$set$6,LCFI1-LCFI0
  3378. .long L$set$6
  3379. .byte 0xe
  3380. .byte 0x18
  3381. .byte 0x83
  3382. .byte 0x3
  3383. .byte 0x4
  3384. .set L$set$7,LCFI2-LCFI1
  3385. .long L$set$7
  3386. .byte 0xe
  3387. .byte 0x20
  3388. .byte 0x4
  3389. .set L$set$8,LCFI3-LCFI2
  3390. .long L$set$8
  3391. .byte 0xe
  3392. .byte 0x18
  3393. .byte 0x4
  3394. .set L$set$9,LCFI4-LCFI3
  3395. .long L$set$9
  3396. .byte 0xe
  3397. .byte 0x10
  3398. .byte 0x4
  3399. .set L$set$10,LCFI5-LCFI4
  3400. .long L$set$10
  3401. .byte 0xe
  3402. .byte 0x8
  3403. .align 3
  3404. LEFDE3:
  3405. .subsections_via_symbols
  3406.  
  3407.  
  3408.  
  3409. ==> powersoftwo-9b-c2.s <===================================================
  3410. .text
  3411. .align 4,0x90
  3412. .globl _isPowerOfTwo
  3413. _isPowerOfTwo:
  3414. LFB16:
  3415. xorl %eax, %eax
  3416. testl %edi, %edi
  3417. je L2
  3418. movl %edi, %eax
  3419. negl %eax
  3420. andl %edi, %eax
  3421. cmpl %eax, %edi
  3422. sete %al
  3423. movzbl %al, %eax
  3424. L2:
  3425. rep
  3426. ret
  3427. LFE16:
  3428. .cstring
  3429. .align 3
  3430. LC0:
  3431. .ascii "%d powers of two found in %lu ns\12\0"
  3432. .section __TEXT,__text_startup,regular,pure_instructions
  3433. .align 4
  3434. .globl _main
  3435. _main:
  3436. LFB17:
  3437. pushq %rbp
  3438. LCFI0:
  3439. pushq %rbx
  3440. LCFI1:
  3441. xorl %ebx, %ebx
  3442. subq $8, %rsp
  3443. LCFI2:
  3444. call _mach_absolute_time
  3445. movl $1, %edx
  3446. movq %rax, %rbp
  3447. xorl %eax, %eax
  3448. jmp L6
  3449. .align 4
  3450. L7:
  3451. addl $1, %eax
  3452. addl $1, %edx
  3453. L6:
  3454. testl %eax, %eax
  3455. je L7
  3456. movl %eax, %ecx
  3457. negl %ecx
  3458. andl %eax, %ecx
  3459. cmpl %eax, %ecx
  3460. sete %cl
  3461. movzbl %cl, %ecx
  3462. addl %ecx, %ebx
  3463. cmpl $-1, %edx
  3464. jne L7
  3465. call _mach_absolute_time
  3466. leaq LC0(%rip), %rdi
  3467. movl %ebx, %esi
  3468. subq %rbp, %rax
  3469. movq %rax, %rdx
  3470. xorl %eax, %eax
  3471. call _printf
  3472. addq $8, %rsp
  3473. LCFI3:
  3474. xorl %eax, %eax
  3475. popq %rbx
  3476. LCFI4:
  3477. popq %rbp
  3478. LCFI5:
  3479. ret
  3480. LFE17:
  3481. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  3482. EH_frame1:
  3483. .set L$set$0,LECIE1-LSCIE1
  3484. .long L$set$0
  3485. LSCIE1:
  3486. .long 0
  3487. .byte 0x1
  3488. .ascii "zR\0"
  3489. .byte 0x1
  3490. .byte 0x78
  3491. .byte 0x10
  3492. .byte 0x1
  3493. .byte 0x10
  3494. .byte 0xc
  3495. .byte 0x7
  3496. .byte 0x8
  3497. .byte 0x90
  3498. .byte 0x1
  3499. .align 3
  3500. LECIE1:
  3501. LSFDE1:
  3502. .set L$set$1,LEFDE1-LASFDE1
  3503. .long L$set$1
  3504. LASFDE1:
  3505. .long LASFDE1-EH_frame1
  3506. .quad LFB16-.
  3507. .set L$set$2,LFE16-LFB16
  3508. .quad L$set$2
  3509. .byte 0
  3510. .align 3
  3511. LEFDE1:
  3512. LSFDE3:
  3513. .set L$set$3,LEFDE3-LASFDE3
  3514. .long L$set$3
  3515. LASFDE3:
  3516. .long LASFDE3-EH_frame1
  3517. .quad LFB17-.
  3518. .set L$set$4,LFE17-LFB17
  3519. .quad L$set$4
  3520. .byte 0
  3521. .byte 0x4
  3522. .set L$set$5,LCFI0-LFB17
  3523. .long L$set$5
  3524. .byte 0xe
  3525. .byte 0x10
  3526. .byte 0x86
  3527. .byte 0x2
  3528. .byte 0x4
  3529. .set L$set$6,LCFI1-LCFI0
  3530. .long L$set$6
  3531. .byte 0xe
  3532. .byte 0x18
  3533. .byte 0x83
  3534. .byte 0x3
  3535. .byte 0x4
  3536. .set L$set$7,LCFI2-LCFI1
  3537. .long L$set$7
  3538. .byte 0xe
  3539. .byte 0x20
  3540. .byte 0x4
  3541. .set L$set$8,LCFI3-LCFI2
  3542. .long L$set$8
  3543. .byte 0xe
  3544. .byte 0x18
  3545. .byte 0x4
  3546. .set L$set$9,LCFI4-LCFI3
  3547. .long L$set$9
  3548. .byte 0xe
  3549. .byte 0x10
  3550. .byte 0x4
  3551. .set L$set$10,LCFI5-LCFI4
  3552. .long L$set$10
  3553. .byte 0xe
  3554. .byte 0x8
  3555. .align 3
  3556. LEFDE3:
  3557. .subsections_via_symbols
  3558.  
  3559.  
  3560.  
  3561. ==> powersoftwo-9b-i7.s <===================================================
  3562. .text
  3563. .align 4,0x90
  3564. .globl _isPowerOfTwo
  3565. _isPowerOfTwo:
  3566. LFB16:
  3567. xorl %eax, %eax
  3568. testl %edi, %edi
  3569. je L2
  3570. movl %edi, %eax
  3571. negl %eax
  3572. andl %edi, %eax
  3573. cmpl %eax, %edi
  3574. sete %al
  3575. movzbl %al, %eax
  3576. L2:
  3577. rep
  3578. ret
  3579. LFE16:
  3580. .cstring
  3581. .align 3
  3582. LC0:
  3583. .ascii "%d powers of two found in %lu ns\12\0"
  3584. .section __TEXT,__text_startup,regular,pure_instructions
  3585. .align 4
  3586. .globl _main
  3587. _main:
  3588. LFB17:
  3589. pushq %rbp
  3590. LCFI0:
  3591. pushq %rbx
  3592. LCFI1:
  3593. xorl %ebx, %ebx
  3594. subq $8, %rsp
  3595. LCFI2:
  3596. call _mach_absolute_time
  3597. movl $1, %edx
  3598. movq %rax, %rbp
  3599. xorl %eax, %eax
  3600. jmp L6
  3601. .align 4
  3602. L7:
  3603. addl $1, %eax
  3604. addl $1, %edx
  3605. L6:
  3606. testl %eax, %eax
  3607. je L7
  3608. movl %eax, %ecx
  3609. negl %ecx
  3610. andl %eax, %ecx
  3611. cmpl %eax, %ecx
  3612. sete %cl
  3613. movzbl %cl, %ecx
  3614. addl %ecx, %ebx
  3615. cmpl $-1, %edx
  3616. jne L7
  3617. call _mach_absolute_time
  3618. leaq LC0(%rip), %rdi
  3619. movl %ebx, %esi
  3620. subq %rbp, %rax
  3621. movq %rax, %rdx
  3622. xorl %eax, %eax
  3623. call _printf
  3624. addq $8, %rsp
  3625. LCFI3:
  3626. xorl %eax, %eax
  3627. popq %rbx
  3628. LCFI4:
  3629. popq %rbp
  3630. LCFI5:
  3631. ret
  3632. LFE17:
  3633. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  3634. EH_frame1:
  3635. .set L$set$0,LECIE1-LSCIE1
  3636. .long L$set$0
  3637. LSCIE1:
  3638. .long 0
  3639. .byte 0x1
  3640. .ascii "zR\0"
  3641. .byte 0x1
  3642. .byte 0x78
  3643. .byte 0x10
  3644. .byte 0x1
  3645. .byte 0x10
  3646. .byte 0xc
  3647. .byte 0x7
  3648. .byte 0x8
  3649. .byte 0x90
  3650. .byte 0x1
  3651. .align 3
  3652. LECIE1:
  3653. LSFDE1:
  3654. .set L$set$1,LEFDE1-LASFDE1
  3655. .long L$set$1
  3656. LASFDE1:
  3657. .long LASFDE1-EH_frame1
  3658. .quad LFB16-.
  3659. .set L$set$2,LFE16-LFB16
  3660. .quad L$set$2
  3661. .byte 0
  3662. .align 3
  3663. LEFDE1:
  3664. LSFDE3:
  3665. .set L$set$3,LEFDE3-LASFDE3
  3666. .long L$set$3
  3667. LASFDE3:
  3668. .long LASFDE3-EH_frame1
  3669. .quad LFB17-.
  3670. .set L$set$4,LFE17-LFB17
  3671. .quad L$set$4
  3672. .byte 0
  3673. .byte 0x4
  3674. .set L$set$5,LCFI0-LFB17
  3675. .long L$set$5
  3676. .byte 0xe
  3677. .byte 0x10
  3678. .byte 0x86
  3679. .byte 0x2
  3680. .byte 0x4
  3681. .set L$set$6,LCFI1-LCFI0
  3682. .long L$set$6
  3683. .byte 0xe
  3684. .byte 0x18
  3685. .byte 0x83
  3686. .byte 0x3
  3687. .byte 0x4
  3688. .set L$set$7,LCFI2-LCFI1
  3689. .long L$set$7
  3690. .byte 0xe
  3691. .byte 0x20
  3692. .byte 0x4
  3693. .set L$set$8,LCFI3-LCFI2
  3694. .long L$set$8
  3695. .byte 0xe
  3696. .byte 0x18
  3697. .byte 0x4
  3698. .set L$set$9,LCFI4-LCFI3
  3699. .long L$set$9
  3700. .byte 0xe
  3701. .byte 0x10
  3702. .byte 0x4
  3703. .set L$set$10,LCFI5-LCFI4
  3704. .long L$set$10
  3705. .byte 0xe
  3706. .byte 0x8
  3707. .align 3
  3708. LEFDE3:
  3709. .subsections_via_symbols
  3710.  
  3711.  
  3712.  
  3713. ==> powersoftwo-R1-c2.s <===================================================
  3714. .text
  3715. .align 4,0x90
  3716. .globl _is_pot_recur
  3717. _is_pot_recur:
  3718. LFB16:
  3719. movl %esi, %ecx
  3720. movl $1, %edx
  3721. testl %ecx, %ecx
  3722. je L8
  3723. L16:
  3724. movl %edx, %eax
  3725. sall %cl, %eax
  3726. subl $1, %eax
  3727. movl %eax, %esi
  3728. sall %cl, %esi
  3729. andl %edi, %esi
  3730. cmpl $1, %esi
  3731. sbbl %r8d, %r8d
  3732. notl %r8d
  3733. andl $2, %r8d
  3734. testl %edi, %eax
  3735. setne %al
  3736. movzbl %al, %eax
  3737. addl %eax, %r8d
  3738. cmpl $1, %r8d
  3739. je L13
  3740. cmpl $2, %r8d
  3741. je L15
  3742. xorl %eax, %eax
  3743. ret
  3744. .align 4,0x90
  3745. L15:
  3746. shrl %cl, %edi
  3747. L13:
  3748. shrl %ecx
  3749. testl %ecx, %ecx
  3750. jne L16
  3751. L8:
  3752. movl $1, %eax
  3753. ret
  3754. LFE16:
  3755. .align 4,0x90
  3756. .globl _is_pot
  3757. _is_pot:
  3758. LFB17:
  3759. movl $-65536, %r9d
  3760. movl $65535, %edx
  3761. movl $16, %esi
  3762. movl $16, %eax
  3763. movl $1, %r8d
  3764. L18:
  3765. movl %r9d, %ecx
  3766. andl %edi, %ecx
  3767. cmpl $1, %ecx
  3768. sbbl %ecx, %ecx
  3769. notl %ecx
  3770. andl $2, %ecx
  3771. testl %edx, %edi
  3772. setne %dl
  3773. movzbl %dl, %edx
  3774. addl %edx, %ecx
  3775. cmpl $1, %ecx
  3776. je L21
  3777. cmpl $2, %ecx
  3778. je L28
  3779. xorl %eax, %eax
  3780. ret
  3781. .align 4,0x90
  3782. L21:
  3783. shrl %eax
  3784. L23:
  3785. movl %eax, %ecx
  3786. movl %r8d, %edx
  3787. movl %eax, %esi
  3788. sall %cl, %edx
  3789. subl $1, %edx
  3790. movl %edx, %r9d
  3791. sall %cl, %r9d
  3792. testl %eax, %eax
  3793. jne L18
  3794. movl $1, %eax
  3795. ret
  3796. .align 4,0x90
  3797. L28:
  3798. movl %esi, %ecx
  3799. shrl %eax
  3800. shrl %cl, %edi
  3801. jmp L23
  3802. LFE17:
  3803. .cstring
  3804. .align 3
  3805. LC0:
  3806. .ascii "%d powers of two found in %lu ns\12\0"
  3807. .section __TEXT,__text_startup,regular,pure_instructions
  3808. .align 4
  3809. .globl _main
  3810. _main:
  3811. LFB18:
  3812. pushq %rbp
  3813. LCFI0:
  3814. pushq %rbx
  3815. LCFI1:
  3816. xorl %ebx, %ebx
  3817. subq $8, %rsp
  3818. LCFI2:
  3819. call _mach_absolute_time
  3820. xorl %edi, %edi
  3821. movl $1, %r9d
  3822. movq %rax, %rbp
  3823. jmp L30
  3824. .align 4
  3825. L44:
  3826. cmpl $2, %ecx
  3827. je L43
  3828. xorl %eax, %eax
  3829. addl $1, %edi
  3830. addl %eax, %ebx
  3831. cmpl $-1, %edi
  3832. je L36
  3833. L30:
  3834. movl %edi, %edx
  3835. movl $-65536, %r10d
  3836. movl $65535, %esi
  3837. movl $16, %r8d
  3838. movl $16, %eax
  3839. L37:
  3840. movl %r10d, %ecx
  3841. andl %edx, %ecx
  3842. cmpl $1, %ecx
  3843. sbbl %ecx, %ecx
  3844. notl %ecx
  3845. andl $2, %ecx
  3846. testl %esi, %edx
  3847. setne %sil
  3848. movzbl %sil, %esi
  3849. addl %esi, %ecx
  3850. cmpl $1, %ecx
  3851. jne L44
  3852. L42:
  3853. shrl %eax
  3854. movl %r9d, %esi
  3855. movl %eax, %ecx
  3856. movl %eax, %r8d
  3857. sall %cl, %esi
  3858. subl $1, %esi
  3859. movl %esi, %r10d
  3860. sall %cl, %r10d
  3861. testl %eax, %eax
  3862. jne L37
  3863. movl $1, %eax
  3864. addl $1, %edi
  3865. addl %eax, %ebx
  3866. cmpl $-1, %edi
  3867. jne L30
  3868. L36:
  3869. call _mach_absolute_time
  3870. leaq LC0(%rip), %rdi
  3871. movl %ebx, %esi
  3872. subq %rbp, %rax
  3873. movq %rax, %rdx
  3874. xorl %eax, %eax
  3875. call _printf
  3876. addq $8, %rsp
  3877. LCFI3:
  3878. xorl %eax, %eax
  3879. popq %rbx
  3880. LCFI4:
  3881. popq %rbp
  3882. LCFI5:
  3883. ret
  3884. .align 4
  3885. L43:
  3886. LCFI6:
  3887. movl %r8d, %ecx
  3888. shrl %cl, %edx
  3889. jmp L42
  3890. LFE18:
  3891. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  3892. EH_frame1:
  3893. .set L$set$0,LECIE1-LSCIE1
  3894. .long L$set$0
  3895. LSCIE1:
  3896. .long 0
  3897. .byte 0x1
  3898. .ascii "zR\0"
  3899. .byte 0x1
  3900. .byte 0x78
  3901. .byte 0x10
  3902. .byte 0x1
  3903. .byte 0x10
  3904. .byte 0xc
  3905. .byte 0x7
  3906. .byte 0x8
  3907. .byte 0x90
  3908. .byte 0x1
  3909. .align 3
  3910. LECIE1:
  3911. LSFDE1:
  3912. .set L$set$1,LEFDE1-LASFDE1
  3913. .long L$set$1
  3914. LASFDE1:
  3915. .long LASFDE1-EH_frame1
  3916. .quad LFB16-.
  3917. .set L$set$2,LFE16-LFB16
  3918. .quad L$set$2
  3919. .byte 0
  3920. .align 3
  3921. LEFDE1:
  3922. LSFDE3:
  3923. .set L$set$3,LEFDE3-LASFDE3
  3924. .long L$set$3
  3925. LASFDE3:
  3926. .long LASFDE3-EH_frame1
  3927. .quad LFB17-.
  3928. .set L$set$4,LFE17-LFB17
  3929. .quad L$set$4
  3930. .byte 0
  3931. .align 3
  3932. LEFDE3:
  3933. LSFDE5:
  3934. .set L$set$5,LEFDE5-LASFDE5
  3935. .long L$set$5
  3936. LASFDE5:
  3937. .long LASFDE5-EH_frame1
  3938. .quad LFB18-.
  3939. .set L$set$6,LFE18-LFB18
  3940. .quad L$set$6
  3941. .byte 0
  3942. .byte 0x4
  3943. .set L$set$7,LCFI0-LFB18
  3944. .long L$set$7
  3945. .byte 0xe
  3946. .byte 0x10
  3947. .byte 0x86
  3948. .byte 0x2
  3949. .byte 0x4
  3950. .set L$set$8,LCFI1-LCFI0
  3951. .long L$set$8
  3952. .byte 0xe
  3953. .byte 0x18
  3954. .byte 0x83
  3955. .byte 0x3
  3956. .byte 0x4
  3957. .set L$set$9,LCFI2-LCFI1
  3958. .long L$set$9
  3959. .byte 0xe
  3960. .byte 0x20
  3961. .byte 0x4
  3962. .set L$set$10,LCFI3-LCFI2
  3963. .long L$set$10
  3964. .byte 0xa
  3965. .byte 0xe
  3966. .byte 0x18
  3967. .byte 0x4
  3968. .set L$set$11,LCFI4-LCFI3
  3969. .long L$set$11
  3970. .byte 0xe
  3971. .byte 0x10
  3972. .byte 0x4
  3973. .set L$set$12,LCFI5-LCFI4
  3974. .long L$set$12
  3975. .byte 0xe
  3976. .byte 0x8
  3977. .byte 0x4
  3978. .set L$set$13,LCFI6-LCFI5
  3979. .long L$set$13
  3980. .byte 0xb
  3981. .align 3
  3982. LEFDE5:
  3983. .subsections_via_symbols
  3984.  
  3985.  
  3986.  
  3987. ==> powersoftwo-R1-i7.s <===================================================
  3988. .text
  3989. .align 4,0x90
  3990. .globl _is_pot_recur
  3991. _is_pot_recur:
  3992. LFB16:
  3993. movl %esi, %ecx
  3994. movl $1, %edx
  3995. testl %ecx, %ecx
  3996. je L8
  3997. L16:
  3998. movl %edx, %eax
  3999. sall %cl, %eax
  4000. subl $1, %eax
  4001. movl %eax, %esi
  4002. sall %cl, %esi
  4003. andl %edi, %esi
  4004. cmpl $1, %esi
  4005. sbbl %r8d, %r8d
  4006. notl %r8d
  4007. andl $2, %r8d
  4008. testl %edi, %eax
  4009. setne %al
  4010. movzbl %al, %eax
  4011. addl %eax, %r8d
  4012. cmpl $1, %r8d
  4013. je L13
  4014. cmpl $2, %r8d
  4015. je L15
  4016. xorl %eax, %eax
  4017. ret
  4018. .align 4,0x90
  4019. L15:
  4020. shrl %cl, %edi
  4021. L13:
  4022. shrl %ecx
  4023. testl %ecx, %ecx
  4024. jne L16
  4025. L8:
  4026. movl $1, %eax
  4027. ret
  4028. LFE16:
  4029. .align 4,0x90
  4030. .globl _is_pot
  4031. _is_pot:
  4032. LFB17:
  4033. movl $-65536, %r9d
  4034. movl $65535, %edx
  4035. movl $16, %esi
  4036. movl $16, %eax
  4037. movl $1, %r8d
  4038. L18:
  4039. movl %r9d, %ecx
  4040. andl %edi, %ecx
  4041. cmpl $1, %ecx
  4042. sbbl %ecx, %ecx
  4043. notl %ecx
  4044. andl $2, %ecx
  4045. testl %edx, %edi
  4046. setne %dl
  4047. movzbl %dl, %edx
  4048. addl %edx, %ecx
  4049. cmpl $1, %ecx
  4050. je L21
  4051. cmpl $2, %ecx
  4052. je L28
  4053. xorl %eax, %eax
  4054. ret
  4055. .align 4,0x90
  4056. L21:
  4057. shrl %eax
  4058. L23:
  4059. movl %eax, %ecx
  4060. movl %r8d, %edx
  4061. movl %eax, %esi
  4062. sall %cl, %edx
  4063. subl $1, %edx
  4064. movl %edx, %r9d
  4065. sall %cl, %r9d
  4066. testl %eax, %eax
  4067. jne L18
  4068. movl $1, %eax
  4069. ret
  4070. .align 4,0x90
  4071. L28:
  4072. movl %esi, %ecx
  4073. shrl %eax
  4074. shrl %cl, %edi
  4075. jmp L23
  4076. LFE17:
  4077. .cstring
  4078. .align 3
  4079. LC0:
  4080. .ascii "%d powers of two found in %lu ns\12\0"
  4081. .section __TEXT,__text_startup,regular,pure_instructions
  4082. .align 4
  4083. .globl _main
  4084. _main:
  4085. LFB18:
  4086. pushq %rbp
  4087. LCFI0:
  4088. pushq %rbx
  4089. LCFI1:
  4090. xorl %ebx, %ebx
  4091. subq $8, %rsp
  4092. LCFI2:
  4093. call _mach_absolute_time
  4094. xorl %edi, %edi
  4095. movl $1, %r9d
  4096. movq %rax, %rbp
  4097. jmp L30
  4098. .align 4
  4099. L44:
  4100. cmpl $2, %ecx
  4101. je L43
  4102. xorl %eax, %eax
  4103. addl $1, %edi
  4104. addl %eax, %ebx
  4105. cmpl $-1, %edi
  4106. je L36
  4107. L30:
  4108. movl %edi, %edx
  4109. movl $-65536, %r10d
  4110. movl $65535, %esi
  4111. movl $16, %r8d
  4112. movl $16, %eax
  4113. L37:
  4114. movl %r10d, %ecx
  4115. andl %edx, %ecx
  4116. cmpl $1, %ecx
  4117. sbbl %ecx, %ecx
  4118. notl %ecx
  4119. andl $2, %ecx
  4120. testl %esi, %edx
  4121. setne %sil
  4122. movzbl %sil, %esi
  4123. addl %esi, %ecx
  4124. cmpl $1, %ecx
  4125. jne L44
  4126. L42:
  4127. shrl %eax
  4128. movl %r9d, %esi
  4129. movl %eax, %ecx
  4130. movl %eax, %r8d
  4131. sall %cl, %esi
  4132. subl $1, %esi
  4133. movl %esi, %r10d
  4134. sall %cl, %r10d
  4135. testl %eax, %eax
  4136. jne L37
  4137. movl $1, %eax
  4138. addl $1, %edi
  4139. addl %eax, %ebx
  4140. cmpl $-1, %edi
  4141. jne L30
  4142. L36:
  4143. call _mach_absolute_time
  4144. leaq LC0(%rip), %rdi
  4145. movl %ebx, %esi
  4146. subq %rbp, %rax
  4147. movq %rax, %rdx
  4148. xorl %eax, %eax
  4149. call _printf
  4150. addq $8, %rsp
  4151. LCFI3:
  4152. xorl %eax, %eax
  4153. popq %rbx
  4154. LCFI4:
  4155. popq %rbp
  4156. LCFI5:
  4157. ret
  4158. .align 4
  4159. L43:
  4160. LCFI6:
  4161. movl %r8d, %ecx
  4162. shrl %cl, %edx
  4163. jmp L42
  4164. LFE18:
  4165. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  4166. EH_frame1:
  4167. .set L$set$0,LECIE1-LSCIE1
  4168. .long L$set$0
  4169. LSCIE1:
  4170. .long 0
  4171. .byte 0x1
  4172. .ascii "zR\0"
  4173. .byte 0x1
  4174. .byte 0x78
  4175. .byte 0x10
  4176. .byte 0x1
  4177. .byte 0x10
  4178. .byte 0xc
  4179. .byte 0x7
  4180. .byte 0x8
  4181. .byte 0x90
  4182. .byte 0x1
  4183. .align 3
  4184. LECIE1:
  4185. LSFDE1:
  4186. .set L$set$1,LEFDE1-LASFDE1
  4187. .long L$set$1
  4188. LASFDE1:
  4189. .long LASFDE1-EH_frame1
  4190. .quad LFB16-.
  4191. .set L$set$2,LFE16-LFB16
  4192. .quad L$set$2
  4193. .byte 0
  4194. .align 3
  4195. LEFDE1:
  4196. LSFDE3:
  4197. .set L$set$3,LEFDE3-LASFDE3
  4198. .long L$set$3
  4199. LASFDE3:
  4200. .long LASFDE3-EH_frame1
  4201. .quad LFB17-.
  4202. .set L$set$4,LFE17-LFB17
  4203. .quad L$set$4
  4204. .byte 0
  4205. .align 3
  4206. LEFDE3:
  4207. LSFDE5:
  4208. .set L$set$5,LEFDE5-LASFDE5
  4209. .long L$set$5
  4210. LASFDE5:
  4211. .long LASFDE5-EH_frame1
  4212. .quad LFB18-.
  4213. .set L$set$6,LFE18-LFB18
  4214. .quad L$set$6
  4215. .byte 0
  4216. .byte 0x4
  4217. .set L$set$7,LCFI0-LFB18
  4218. .long L$set$7
  4219. .byte 0xe
  4220. .byte 0x10
  4221. .byte 0x86
  4222. .byte 0x2
  4223. .byte 0x4
  4224. .set L$set$8,LCFI1-LCFI0
  4225. .long L$set$8
  4226. .byte 0xe
  4227. .byte 0x18
  4228. .byte 0x83
  4229. .byte 0x3
  4230. .byte 0x4
  4231. .set L$set$9,LCFI2-LCFI1
  4232. .long L$set$9
  4233. .byte 0xe
  4234. .byte 0x20
  4235. .byte 0x4
  4236. .set L$set$10,LCFI3-LCFI2
  4237. .long L$set$10
  4238. .byte 0xa
  4239. .byte 0xe
  4240. .byte 0x18
  4241. .byte 0x4
  4242. .set L$set$11,LCFI4-LCFI3
  4243. .long L$set$11
  4244. .byte 0xe
  4245. .byte 0x10
  4246. .byte 0x4
  4247. .set L$set$12,LCFI5-LCFI4
  4248. .long L$set$12
  4249. .byte 0xe
  4250. .byte 0x8
  4251. .byte 0x4
  4252. .set L$set$13,LCFI6-LCFI5
  4253. .long L$set$13
  4254. .byte 0xb
  4255. .align 3
  4256. LEFDE5:
  4257. .subsections_via_symbols
  4258.  
  4259.  
  4260.  
  4261. ==> powersoftwo-R2-c2.s <===================================================
  4262. .text
  4263. .align 4,0x90
  4264. .globl _isPowerOfTwo
  4265. _isPowerOfTwo:
  4266. LFB16:
  4267. testl $1431655765, %edi
  4268. je L2
  4269. xorl %eax, %eax
  4270. testl $-1431655766, %edi
  4271. jne L3
  4272. L2:
  4273. testl $858993459, %edi
  4274. jne L14
  4275. testl $252645135, %edi
  4276. jne L15
  4277. L5:
  4278. testl $16711935, %edi
  4279. je L6
  4280. xorl %eax, %eax
  4281. testl $-16711936, %edi
  4282. jne L3
  4283. L6:
  4284. testw %di, %di
  4285. movl $1, %eax
  4286. je L3
  4287. xorl %eax, %eax
  4288. andl $-65536, %edi
  4289. sete %al
  4290. L3:
  4291. rep
  4292. ret
  4293. .align 4,0x90
  4294. L14:
  4295. xorl %eax, %eax
  4296. testl $-858993460, %edi
  4297. jne L3
  4298. testl $252645135, %edi
  4299. je L5
  4300. L15:
  4301. xorl %eax, %eax
  4302. testl $-252645136, %edi
  4303. je L5
  4304. rep
  4305. ret
  4306. LFE16:
  4307. .cstring
  4308. .align 3
  4309. LC0:
  4310. .ascii "%d powers of two found in %lu ns\12\0"
  4311. .section __TEXT,__text_startup,regular,pure_instructions
  4312. .align 4
  4313. .globl _main
  4314. _main:
  4315. LFB17:
  4316. pushq %rbp
  4317. LCFI0:
  4318. pushq %rbx
  4319. LCFI1:
  4320. xorl %ebx, %ebx
  4321. subq $8, %rsp
  4322. LCFI2:
  4323. call _mach_absolute_time
  4324. movq %rax, %rbp
  4325. xorl %eax, %eax
  4326. .align 4
  4327. L22:
  4328. testl $1431655765, %eax
  4329. je L17
  4330. xorl %edx, %edx
  4331. testl $-1431655766, %eax
  4332. jne L18
  4333. L17:
  4334. testl $858993459, %eax
  4335. je L19
  4336. xorl %edx, %edx
  4337. testl $-858993460, %eax
  4338. jne L18
  4339. L19:
  4340. testl $252645135, %eax
  4341. je L20
  4342. xorl %edx, %edx
  4343. testl $-252645136, %eax
  4344. jne L18
  4345. L20:
  4346. testl $16711935, %eax
  4347. je L21
  4348. xorl %edx, %edx
  4349. testl $-16711936, %eax
  4350. jne L18
  4351. L21:
  4352. testw %ax, %ax
  4353. movl $1, %edx
  4354. je L18
  4355. xorl %edx, %edx
  4356. testl $-65536, %eax
  4357. sete %dl
  4358. .align 4
  4359. L18:
  4360. addl $1, %eax
  4361. addl %edx, %ebx
  4362. cmpl $-1, %eax
  4363. jne L22
  4364. call _mach_absolute_time
  4365. leaq LC0(%rip), %rdi
  4366. movl %ebx, %esi
  4367. subq %rbp, %rax
  4368. movq %rax, %rdx
  4369. xorl %eax, %eax
  4370. call _printf
  4371. addq $8, %rsp
  4372. LCFI3:
  4373. xorl %eax, %eax
  4374. popq %rbx
  4375. LCFI4:
  4376. popq %rbp
  4377. LCFI5:
  4378. ret
  4379. LFE17:
  4380. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  4381. EH_frame1:
  4382. .set L$set$0,LECIE1-LSCIE1
  4383. .long L$set$0
  4384. LSCIE1:
  4385. .long 0
  4386. .byte 0x1
  4387. .ascii "zR\0"
  4388. .byte 0x1
  4389. .byte 0x78
  4390. .byte 0x10
  4391. .byte 0x1
  4392. .byte 0x10
  4393. .byte 0xc
  4394. .byte 0x7
  4395. .byte 0x8
  4396. .byte 0x90
  4397. .byte 0x1
  4398. .align 3
  4399. LECIE1:
  4400. LSFDE1:
  4401. .set L$set$1,LEFDE1-LASFDE1
  4402. .long L$set$1
  4403. LASFDE1:
  4404. .long LASFDE1-EH_frame1
  4405. .quad LFB16-.
  4406. .set L$set$2,LFE16-LFB16
  4407. .quad L$set$2
  4408. .byte 0
  4409. .align 3
  4410. LEFDE1:
  4411. LSFDE3:
  4412. .set L$set$3,LEFDE3-LASFDE3
  4413. .long L$set$3
  4414. LASFDE3:
  4415. .long LASFDE3-EH_frame1
  4416. .quad LFB17-.
  4417. .set L$set$4,LFE17-LFB17
  4418. .quad L$set$4
  4419. .byte 0
  4420. .byte 0x4
  4421. .set L$set$5,LCFI0-LFB17
  4422. .long L$set$5
  4423. .byte 0xe
  4424. .byte 0x10
  4425. .byte 0x86
  4426. .byte 0x2
  4427. .byte 0x4
  4428. .set L$set$6,LCFI1-LCFI0
  4429. .long L$set$6
  4430. .byte 0xe
  4431. .byte 0x18
  4432. .byte 0x83
  4433. .byte 0x3
  4434. .byte 0x4
  4435. .set L$set$7,LCFI2-LCFI1
  4436. .long L$set$7
  4437. .byte 0xe
  4438. .byte 0x20
  4439. .byte 0x4
  4440. .set L$set$8,LCFI3-LCFI2
  4441. .long L$set$8
  4442. .byte 0xe
  4443. .byte 0x18
  4444. .byte 0x4
  4445. .set L$set$9,LCFI4-LCFI3
  4446. .long L$set$9
  4447. .byte 0xe
  4448. .byte 0x10
  4449. .byte 0x4
  4450. .set L$set$10,LCFI5-LCFI4
  4451. .long L$set$10
  4452. .byte 0xe
  4453. .byte 0x8
  4454. .align 3
  4455. LEFDE3:
  4456. .subsections_via_symbols
  4457.  
  4458.  
  4459.  
  4460. ==> powersoftwo-R2-i7.s <===================================================
  4461. .text
  4462. .align 4,0x90
  4463. .globl _isPowerOfTwo
  4464. _isPowerOfTwo:
  4465. LFB16:
  4466. testl $1431655765, %edi
  4467. je L2
  4468. xorl %eax, %eax
  4469. testl $-1431655766, %edi
  4470. jne L3
  4471. L2:
  4472. testl $858993459, %edi
  4473. jne L14
  4474. testl $252645135, %edi
  4475. jne L15
  4476. L5:
  4477. testl $16711935, %edi
  4478. je L6
  4479. xorl %eax, %eax
  4480. testl $-16711936, %edi
  4481. jne L3
  4482. L6:
  4483. testw %di, %di
  4484. movl $1, %eax
  4485. je L3
  4486. xorl %eax, %eax
  4487. andl $-65536, %edi
  4488. sete %al
  4489. L3:
  4490. rep
  4491. ret
  4492. .align 4,0x90
  4493. L14:
  4494. xorl %eax, %eax
  4495. testl $-858993460, %edi
  4496. jne L3
  4497. testl $252645135, %edi
  4498. je L5
  4499. L15:
  4500. xorl %eax, %eax
  4501. testl $-252645136, %edi
  4502. je L5
  4503. rep
  4504. ret
  4505. LFE16:
  4506. .cstring
  4507. .align 3
  4508. LC0:
  4509. .ascii "%d powers of two found in %lu ns\12\0"
  4510. .section __TEXT,__text_startup,regular,pure_instructions
  4511. .align 4
  4512. .globl _main
  4513. _main:
  4514. LFB17:
  4515. pushq %rbp
  4516. LCFI0:
  4517. pushq %rbx
  4518. LCFI1:
  4519. xorl %ebx, %ebx
  4520. subq $8, %rsp
  4521. LCFI2:
  4522. call _mach_absolute_time
  4523. movq %rax, %rbp
  4524. xorl %eax, %eax
  4525. .align 4
  4526. L22:
  4527. testl $1431655765, %eax
  4528. je L17
  4529. xorl %edx, %edx
  4530. testl $-1431655766, %eax
  4531. jne L18
  4532. L17:
  4533. testl $858993459, %eax
  4534. je L19
  4535. xorl %edx, %edx
  4536. testl $-858993460, %eax
  4537. jne L18
  4538. L19:
  4539. testl $252645135, %eax
  4540. je L20
  4541. xorl %edx, %edx
  4542. testl $-252645136, %eax
  4543. jne L18
  4544. L20:
  4545. testl $16711935, %eax
  4546. je L21
  4547. xorl %edx, %edx
  4548. testl $-16711936, %eax
  4549. jne L18
  4550. L21:
  4551. testw %ax, %ax
  4552. movl $1, %edx
  4553. je L18
  4554. xorl %edx, %edx
  4555. testl $-65536, %eax
  4556. sete %dl
  4557. .align 4
  4558. L18:
  4559. addl $1, %eax
  4560. addl %edx, %ebx
  4561. cmpl $-1, %eax
  4562. jne L22
  4563. call _mach_absolute_time
  4564. leaq LC0(%rip), %rdi
  4565. movl %ebx, %esi
  4566. subq %rbp, %rax
  4567. movq %rax, %rdx
  4568. xorl %eax, %eax
  4569. call _printf
  4570. addq $8, %rsp
  4571. LCFI3:
  4572. xorl %eax, %eax
  4573. popq %rbx
  4574. LCFI4:
  4575. popq %rbp
  4576. LCFI5:
  4577. ret
  4578. LFE17:
  4579. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  4580. EH_frame1:
  4581. .set L$set$0,LECIE1-LSCIE1
  4582. .long L$set$0
  4583. LSCIE1:
  4584. .long 0
  4585. .byte 0x1
  4586. .ascii "zR\0"
  4587. .byte 0x1
  4588. .byte 0x78
  4589. .byte 0x10
  4590. .byte 0x1
  4591. .byte 0x10
  4592. .byte 0xc
  4593. .byte 0x7
  4594. .byte 0x8
  4595. .byte 0x90
  4596. .byte 0x1
  4597. .align 3
  4598. LECIE1:
  4599. LSFDE1:
  4600. .set L$set$1,LEFDE1-LASFDE1
  4601. .long L$set$1
  4602. LASFDE1:
  4603. .long LASFDE1-EH_frame1
  4604. .quad LFB16-.
  4605. .set L$set$2,LFE16-LFB16
  4606. .quad L$set$2
  4607. .byte 0
  4608. .align 3
  4609. LEFDE1:
  4610. LSFDE3:
  4611. .set L$set$3,LEFDE3-LASFDE3
  4612. .long L$set$3
  4613. LASFDE3:
  4614. .long LASFDE3-EH_frame1
  4615. .quad LFB17-.
  4616. .set L$set$4,LFE17-LFB17
  4617. .quad L$set$4
  4618. .byte 0
  4619. .byte 0x4
  4620. .set L$set$5,LCFI0-LFB17
  4621. .long L$set$5
  4622. .byte 0xe
  4623. .byte 0x10
  4624. .byte 0x86
  4625. .byte 0x2
  4626. .byte 0x4
  4627. .set L$set$6,LCFI1-LCFI0
  4628. .long L$set$6
  4629. .byte 0xe
  4630. .byte 0x18
  4631. .byte 0x83
  4632. .byte 0x3
  4633. .byte 0x4
  4634. .set L$set$7,LCFI2-LCFI1
  4635. .long L$set$7
  4636. .byte 0xe
  4637. .byte 0x20
  4638. .byte 0x4
  4639. .set L$set$8,LCFI3-LCFI2
  4640. .long L$set$8
  4641. .byte 0xe
  4642. .byte 0x18
  4643. .byte 0x4
  4644. .set L$set$9,LCFI4-LCFI3
  4645. .long L$set$9
  4646. .byte 0xe
  4647. .byte 0x10
  4648. .byte 0x4
  4649. .set L$set$10,LCFI5-LCFI4
  4650. .long L$set$10
  4651. .byte 0xe
  4652. .byte 0x8
  4653. .align 3
  4654. LEFDE3:
  4655. .subsections_via_symbols
  4656.  
  4657.  
  4658.  
  4659. ==> powersoftwo-R3-c2.s <===================================================
  4660. .text
  4661. .align 4,0x90
  4662. .globl _isPowerOf2
  4663. _isPowerOf2:
  4664. LFB16:
  4665. subq $8, %rsp
  4666. LCFI0:
  4667. mov %edi, %edi
  4668. call ___popcountdi2
  4669. cmpl $1, %eax
  4670. sete %al
  4671. addq $8, %rsp
  4672. LCFI1:
  4673. movzbl %al, %eax
  4674. ret
  4675. LFE16:
  4676. .cstring
  4677. .align 3
  4678. LC0:
  4679. .ascii "%d powers of two found in %lu ns\12\0"
  4680. .section __TEXT,__text_startup,regular,pure_instructions
  4681. .align 4
  4682. .globl _main
  4683. _main:
  4684. LFB17:
  4685. pushq %r12
  4686. LCFI2:
  4687. pushq %rbp
  4688. LCFI3:
  4689. xorl %ebp, %ebp
  4690. pushq %rbx
  4691. LCFI4:
  4692. xorl %ebx, %ebx
  4693. call _mach_absolute_time
  4694. movq %rax, %r12
  4695. .align 4
  4696. L3:
  4697. mov %ebp, %edi
  4698. call ___popcountdi2
  4699. cmpl $1, %eax
  4700. sete %al
  4701. addl $1, %ebp
  4702. movzbl %al, %eax
  4703. addl %eax, %ebx
  4704. cmpl $-1, %ebp
  4705. jne L3
  4706. call _mach_absolute_time
  4707. leaq LC0(%rip), %rdi
  4708. movl %ebx, %esi
  4709. subq %r12, %rax
  4710. movq %rax, %rdx
  4711. xorl %eax, %eax
  4712. call _printf
  4713. popq %rbx
  4714. LCFI5:
  4715. xorl %eax, %eax
  4716. popq %rbp
  4717. LCFI6:
  4718. popq %r12
  4719. LCFI7:
  4720. ret
  4721. LFE17:
  4722. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  4723. EH_frame1:
  4724. .set L$set$0,LECIE1-LSCIE1
  4725. .long L$set$0
  4726. LSCIE1:
  4727. .long 0
  4728. .byte 0x1
  4729. .ascii "zR\0"
  4730. .byte 0x1
  4731. .byte 0x78
  4732. .byte 0x10
  4733. .byte 0x1
  4734. .byte 0x10
  4735. .byte 0xc
  4736. .byte 0x7
  4737. .byte 0x8
  4738. .byte 0x90
  4739. .byte 0x1
  4740. .align 3
  4741. LECIE1:
  4742. LSFDE1:
  4743. .set L$set$1,LEFDE1-LASFDE1
  4744. .long L$set$1
  4745. LASFDE1:
  4746. .long LASFDE1-EH_frame1
  4747. .quad LFB16-.
  4748. .set L$set$2,LFE16-LFB16
  4749. .quad L$set$2
  4750. .byte 0
  4751. .byte 0x4
  4752. .set L$set$3,LCFI0-LFB16
  4753. .long L$set$3
  4754. .byte 0xe
  4755. .byte 0x10
  4756. .byte 0x4
  4757. .set L$set$4,LCFI1-LCFI0
  4758. .long L$set$4
  4759. .byte 0xe
  4760. .byte 0x8
  4761. .align 3
  4762. LEFDE1:
  4763. LSFDE3:
  4764. .set L$set$5,LEFDE3-LASFDE3
  4765. .long L$set$5
  4766. LASFDE3:
  4767. .long LASFDE3-EH_frame1
  4768. .quad LFB17-.
  4769. .set L$set$6,LFE17-LFB17
  4770. .quad L$set$6
  4771. .byte 0
  4772. .byte 0x4
  4773. .set L$set$7,LCFI2-LFB17
  4774. .long L$set$7
  4775. .byte 0xe
  4776. .byte 0x10
  4777. .byte 0x8c
  4778. .byte 0x2
  4779. .byte 0x4
  4780. .set L$set$8,LCFI3-LCFI2
  4781. .long L$set$8
  4782. .byte 0xe
  4783. .byte 0x18
  4784. .byte 0x86
  4785. .byte 0x3
  4786. .byte 0x4
  4787. .set L$set$9,LCFI4-LCFI3
  4788. .long L$set$9
  4789. .byte 0xe
  4790. .byte 0x20
  4791. .byte 0x83
  4792. .byte 0x4
  4793. .byte 0x4
  4794. .set L$set$10,LCFI5-LCFI4
  4795. .long L$set$10
  4796. .byte 0xe
  4797. .byte 0x18
  4798. .byte 0x4
  4799. .set L$set$11,LCFI6-LCFI5
  4800. .long L$set$11
  4801. .byte 0xe
  4802. .byte 0x10
  4803. .byte 0x4
  4804. .set L$set$12,LCFI7-LCFI6
  4805. .long L$set$12
  4806. .byte 0xe
  4807. .byte 0x8
  4808. .align 3
  4809. LEFDE3:
  4810. .subsections_via_symbols
  4811.  
  4812.  
  4813.  
  4814. ==> powersoftwo-R4-c2.s <===================================================
  4815. .text
  4816. .align 4,0x90
  4817. .globl _isPowerOf2
  4818. _isPowerOf2:
  4819. LFB16:
  4820. xorl %eax, %eax
  4821. testl %edi, %edi
  4822. je L2
  4823. bsfl %edi, %ecx
  4824. movb $1, %al
  4825. sall %cl, %eax
  4826. cmpl %eax, %edi
  4827. sete %al
  4828. movzbl %al, %eax
  4829. L2:
  4830. rep
  4831. ret
  4832. LFE16:
  4833. .cstring
  4834. .align 3
  4835. LC0:
  4836. .ascii "%d powers of two found in %lu ns\12\0"
  4837. .section __TEXT,__text_startup,regular,pure_instructions
  4838. .align 4
  4839. .globl _main
  4840. _main:
  4841. LFB17:
  4842. pushq %rbp
  4843. LCFI0:
  4844. pushq %rbx
  4845. LCFI1:
  4846. xorl %ebx, %ebx
  4847. subq $8, %rsp
  4848. LCFI2:
  4849. call _mach_absolute_time
  4850. movl $1, %edx
  4851. movl $1, %esi
  4852. movq %rax, %rbp
  4853. xorl %eax, %eax
  4854. jmp L6
  4855. .align 4
  4856. L7:
  4857. addl $1, %eax
  4858. addl $1, %edx
  4859. L6:
  4860. testl %eax, %eax
  4861. je L7
  4862. bsfl %eax, %ecx
  4863. movl %esi, %edi
  4864. sall %cl, %edi
  4865. cmpl %eax, %edi
  4866. sete %cl
  4867. movzbl %cl, %ecx
  4868. addl %ecx, %ebx
  4869. cmpl $-1, %edx
  4870. jne L7
  4871. call _mach_absolute_time
  4872. leaq LC0(%rip), %rdi
  4873. movl %ebx, %esi
  4874. subq %rbp, %rax
  4875. movq %rax, %rdx
  4876. xorl %eax, %eax
  4877. call _printf
  4878. addq $8, %rsp
  4879. LCFI3:
  4880. xorl %eax, %eax
  4881. popq %rbx
  4882. LCFI4:
  4883. popq %rbp
  4884. LCFI5:
  4885. ret
  4886. LFE17:
  4887. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  4888. EH_frame1:
  4889. .set L$set$0,LECIE1-LSCIE1
  4890. .long L$set$0
  4891. LSCIE1:
  4892. .long 0
  4893. .byte 0x1
  4894. .ascii "zR\0"
  4895. .byte 0x1
  4896. .byte 0x78
  4897. .byte 0x10
  4898. .byte 0x1
  4899. .byte 0x10
  4900. .byte 0xc
  4901. .byte 0x7
  4902. .byte 0x8
  4903. .byte 0x90
  4904. .byte 0x1
  4905. .align 3
  4906. LECIE1:
  4907. LSFDE1:
  4908. .set L$set$1,LEFDE1-LASFDE1
  4909. .long L$set$1
  4910. LASFDE1:
  4911. .long LASFDE1-EH_frame1
  4912. .quad LFB16-.
  4913. .set L$set$2,LFE16-LFB16
  4914. .quad L$set$2
  4915. .byte 0
  4916. .align 3
  4917. LEFDE1:
  4918. LSFDE3:
  4919. .set L$set$3,LEFDE3-LASFDE3
  4920. .long L$set$3
  4921. LASFDE3:
  4922. .long LASFDE3-EH_frame1
  4923. .quad LFB17-.
  4924. .set L$set$4,LFE17-LFB17
  4925. .quad L$set$4
  4926. .byte 0
  4927. .byte 0x4
  4928. .set L$set$5,LCFI0-LFB17
  4929. .long L$set$5
  4930. .byte 0xe
  4931. .byte 0x10
  4932. .byte 0x86
  4933. .byte 0x2
  4934. .byte 0x4
  4935. .set L$set$6,LCFI1-LCFI0
  4936. .long L$set$6
  4937. .byte 0xe
  4938. .byte 0x18
  4939. .byte 0x83
  4940. .byte 0x3
  4941. .byte 0x4
  4942. .set L$set$7,LCFI2-LCFI1
  4943. .long L$set$7
  4944. .byte 0xe
  4945. .byte 0x20
  4946. .byte 0x4
  4947. .set L$set$8,LCFI3-LCFI2
  4948. .long L$set$8
  4949. .byte 0xe
  4950. .byte 0x18
  4951. .byte 0x4
  4952. .set L$set$9,LCFI4-LCFI3
  4953. .long L$set$9
  4954. .byte 0xe
  4955. .byte 0x10
  4956. .byte 0x4
  4957. .set L$set$10,LCFI5-LCFI4
  4958. .long L$set$10
  4959. .byte 0xe
  4960. .byte 0x8
  4961. .align 3
  4962. LEFDE3:
  4963. .subsections_via_symbols
  4964.  
  4965.  
  4966.  
  4967. ==> powersoftwo-R4-i7.s <===================================================
  4968. .text
  4969. .align 4,0x90
  4970. .globl _isPowerOf2
  4971. _isPowerOf2:
  4972. LFB16:
  4973. xorl %eax, %eax
  4974. testl %edi, %edi
  4975. je L2
  4976. bsfl %edi, %ecx
  4977. movb $1, %al
  4978. sall %cl, %eax
  4979. cmpl %eax, %edi
  4980. sete %al
  4981. movzbl %al, %eax
  4982. L2:
  4983. rep
  4984. ret
  4985. LFE16:
  4986. .cstring
  4987. .align 3
  4988. LC0:
  4989. .ascii "%d powers of two found in %lu ns\12\0"
  4990. .section __TEXT,__text_startup,regular,pure_instructions
  4991. .align 4
  4992. .globl _main
  4993. _main:
  4994. LFB17:
  4995. pushq %rbp
  4996. LCFI0:
  4997. pushq %rbx
  4998. LCFI1:
  4999. xorl %ebx, %ebx
  5000. subq $8, %rsp
  5001. LCFI2:
  5002. call _mach_absolute_time
  5003. movl $1, %edx
  5004. movl $1, %esi
  5005. movq %rax, %rbp
  5006. xorl %eax, %eax
  5007. jmp L6
  5008. .align 4
  5009. L7:
  5010. addl $1, %eax
  5011. addl $1, %edx
  5012. L6:
  5013. testl %eax, %eax
  5014. je L7
  5015. bsfl %eax, %ecx
  5016. movl %esi, %edi
  5017. sall %cl, %edi
  5018. cmpl %eax, %edi
  5019. sete %cl
  5020. movzbl %cl, %ecx
  5021. addl %ecx, %ebx
  5022. cmpl $-1, %edx
  5023. jne L7
  5024. call _mach_absolute_time
  5025. leaq LC0(%rip), %rdi
  5026. movl %ebx, %esi
  5027. subq %rbp, %rax
  5028. movq %rax, %rdx
  5029. xorl %eax, %eax
  5030. call _printf
  5031. addq $8, %rsp
  5032. LCFI3:
  5033. xorl %eax, %eax
  5034. popq %rbx
  5035. LCFI4:
  5036. popq %rbp
  5037. LCFI5:
  5038. ret
  5039. LFE17:
  5040. .section __TEXT,__eh_frame,coalesced,no_toc+strip_static_syms+live_support
  5041. EH_frame1:
  5042. .set L$set$0,LECIE1-LSCIE1
  5043. .long L$set$0
  5044. LSCIE1:
  5045. .long 0
  5046. .byte 0x1
  5047. .ascii "zR\0"
  5048. .byte 0x1
  5049. .byte 0x78
  5050. .byte 0x10
  5051. .byte 0x1
  5052. .byte 0x10
  5053. .byte 0xc
  5054. .byte 0x7
  5055. .byte 0x8
  5056. .byte 0x90
  5057. .byte 0x1
  5058. .align 3
  5059. LECIE1:
  5060. LSFDE1:
  5061. .set L$set$1,LEFDE1-LASFDE1
  5062. .long L$set$1
  5063. LASFDE1:
  5064. .long LASFDE1-EH_frame1
  5065. .quad LFB16-.
  5066. .set L$set$2,LFE16-LFB16
  5067. .quad L$set$2
  5068. .byte 0
  5069. .align 3
  5070. LEFDE1:
  5071. LSFDE3:
  5072. .set L$set$3,LEFDE3-LASFDE3
  5073. .long L$set$3
  5074. LASFDE3:
  5075. .long LASFDE3-EH_frame1
  5076. .quad LFB17-.
  5077. .set L$set$4,LFE17-LFB17
  5078. .quad L$set$4
  5079. .byte 0
  5080. .byte 0x4
  5081. .set L$set$5,LCFI0-LFB17
  5082. .long L$set$5
  5083. .byte 0xe
  5084. .byte 0x10
  5085. .byte 0x86
  5086. .byte 0x2
  5087. .byte 0x4
  5088. .set L$set$6,LCFI1-LCFI0
  5089. .long L$set$6
  5090. .byte 0xe
  5091. .byte 0x18
  5092. .byte 0x83
  5093. .byte 0x3
  5094. .byte 0x4
  5095. .set L$set$7,LCFI2-LCFI1
  5096. .long L$set$7
  5097. .byte 0xe
  5098. .byte 0x20
  5099. .byte 0x4
  5100. .set L$set$8,LCFI3-LCFI2
  5101. .long L$set$8
  5102. .byte 0xe
  5103. .byte 0x18
  5104. .byte 0x4
  5105. .set L$set$9,LCFI4-LCFI3
  5106. .long L$set$9
  5107. .byte 0xe
  5108. .byte 0x10
  5109. .byte 0x4
  5110. .set L$set$10,LCFI5-LCFI4
  5111. .long L$set$10
  5112. .byte 0xe
  5113. .byte 0x8
  5114. .align 3
  5115. LEFDE3:
  5116. .subsections_via_symbols
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement