switch.sbk 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714
  1. .global main
  2. .section ".text"
  3. .align 4
  4. main:
  5. save %sp,-96,%sp
  6. set .L6,%i5
  7. ba .L5; nop
  8. .L2:
  9. ldsb [%i5],%o0
  10. call backslash; nop
  11. mov %o0,%i3
  12. set .L7,%o0
  13. ldsb [%i5],%o1
  14. mov %i3,%o2
  15. call printf; nop
  16. .L3:
  17. add %i5,1,%i5
  18. .L5:
  19. ldsb [%i5],%i3
  20. cmp %i3,0; bne .L2; nop
  21. call f; nop
  22. call g; nop
  23. call h; nop
  24. set 16777216,%i4
  25. ba .L11; nop
  26. .L8:
  27. mov %i4,%o0
  28. call big; nop
  29. .L9:
  30. set 16777216,%i3
  31. add %i4,%i3,%i4
  32. .L11:
  33. set 117440512,%i3
  34. and %i4,%i3,%i3
  35. cmp %i3,0; bne .L8; nop
  36. call limit; nop
  37. mov %g0,%i0
  38. .L1:
  39. ret; restore
  40. .type main,#function
  41. .size main,.-main
  42. .global backslash
  43. .align 4
  44. backslash:
  45. cmp %o0,102; be .L16; nop
  46. cmp %o0,102; bg .L22; nop
  47. .L21:
  48. cmp %o0,98; be .L15; nop
  49. ba .L13; nop
  50. .L22:
  51. cmp %o0,110; be .L17; nop
  52. cmp %o0,110; bl .L13; nop
  53. .L23:
  54. cmp %o0,114; be .L18; nop
  55. cmp %o0,116; be .L19; nop
  56. cmp %o0,118; be .L20; nop
  57. ba .L13; nop
  58. .L15:
  59. set 8,%o0
  60. ba .L12; nop
  61. .L16:
  62. set 12,%o0
  63. ba .L12; nop
  64. .L17:
  65. set 10,%o0
  66. ba .L12; nop
  67. .L18:
  68. set 13,%o0
  69. ba .L12; nop
  70. .L19:
  71. set 9,%o0
  72. ba .L12; nop
  73. .L20:
  74. set 11,%o0
  75. ba .L12; nop
  76. .L13:
  77. .L12:
  78. retl; nop
  79. .type backslash,#function
  80. .size backslash,.-backslash
  81. .global f
  82. .align 4
  83. f:
  84. save %sp,-96,%sp
  85. mov %g0,%i4
  86. set .L25,%o0
  87. call printf; nop
  88. mov %g0,%i5
  89. .L26:
  90. mov %i5,%i3
  91. cmp %i5,1; bl .L30; nop
  92. cmp %i5,20; bg .L30; nop
  93. sll %i5,2,%i2
  94. set .L42-4,%i1
  95. ld [%i2+%i1],%i2
  96. jmp %i2; nop
  97. .section ".rodata"
  98. .align 4
  99. .L42:
  100. .word .L32
  101. .word .L33
  102. .word .L30
  103. .word .L30
  104. .word .L30
  105. .word .L30
  106. .word .L34
  107. .word .L35
  108. .word .L36
  109. .word .L30
  110. .word .L30
  111. .word .L30
  112. .word .L30
  113. .word .L30
  114. .word .L30
  115. .word .L37
  116. .word .L38
  117. .word .L39
  118. .word .L40
  119. .word .L41
  120. .section ".text"
  121. .L32:
  122. mov %i5,%i4
  123. ba .L31; nop
  124. .L33:
  125. mov %i5,%i4
  126. ba .L31; nop
  127. .L34:
  128. mov %i5,%i4
  129. ba .L31; nop
  130. .L35:
  131. mov %i5,%i4
  132. ba .L31; nop
  133. .L36:
  134. mov %i5,%i4
  135. ba .L31; nop
  136. .L37:
  137. mov %i5,%i4
  138. ba .L31; nop
  139. .L38:
  140. mov %i5,%i4
  141. ba .L31; nop
  142. .L39:
  143. mov %i5,%i4
  144. ba .L31; nop
  145. .L40:
  146. mov %i5,%i4
  147. ba .L31; nop
  148. .L41:
  149. mov %i5,%i4
  150. .L30:
  151. .L31:
  152. set .L44,%o0
  153. mov %i4,%o1
  154. call printf; nop
  155. .L27:
  156. add %i5,1,%i5
  157. cmp %i5,20; ble .L26; nop
  158. mov %g0,%i0
  159. .L24:
  160. ret; restore
  161. .type f,#function
  162. .size f,.-f
  163. .global g
  164. .align 4
  165. g:
  166. save %sp,-96,%sp
  167. set .L46,%o0
  168. call printf; nop
  169. set 1,%i5
  170. .L47:
  171. cmp %i5,1001; bl .L64; nop
  172. cmp %i5,1004; bg .L65; nop
  173. sll %i5,2,%i4
  174. set .L66-4004,%i3
  175. ld [%i4+%i3],%i4
  176. jmp %i4; nop
  177. .section ".rodata"
  178. .align 4
  179. .L66:
  180. .word .L60
  181. .word .L60
  182. .word .L60
  183. .word .L60
  184. .section ".text"
  185. .L64:
  186. cmp %i5,1; bl .L51; nop
  187. cmp %i5,8; bg .L51; nop
  188. sll %i5,2,%i4
  189. set .L68-4,%i3
  190. ld [%i4+%i3],%i4
  191. jmp %i4; nop
  192. .section ".rodata"
  193. .align 4
  194. .L68:
  195. .word .L53
  196. .word .L53
  197. .word .L55
  198. .word .L55
  199. .word .L55
  200. .word .L57
  201. .word .L57
  202. .word .L57
  203. .section ".text"
  204. .L65:
  205. cmp %i5,3001; bl .L51; nop
  206. cmp %i5,3004; bg .L51; nop
  207. sll %i5,2,%i4
  208. set .L70-12004,%i3
  209. ld [%i4+%i3],%i4
  210. jmp %i4; nop
  211. .section ".rodata"
  212. .align 4
  213. .L70:
  214. .word .L62
  215. .word .L62
  216. .word .L62
  217. .word .L62
  218. .section ".text"
  219. .L53:
  220. set .L54,%o0
  221. mov %i5,%o1
  222. call printf; nop
  223. ba .L52; nop
  224. .L55:
  225. set .L56,%o0
  226. mov %i5,%o1
  227. call printf; nop
  228. ba .L52; nop
  229. .L57:
  230. set .L58,%o0
  231. mov %i5,%o1
  232. call printf; nop
  233. .L51:
  234. set .L59,%o0
  235. mov %i5,%o1
  236. call printf; nop
  237. ba .L52; nop
  238. .L60:
  239. set .L61,%o0
  240. mov %i5,%o1
  241. call printf; nop
  242. ba .L52; nop
  243. .L62:
  244. set .L63,%o0
  245. mov %i5,%o1
  246. call printf; nop
  247. .L52:
  248. .L48:
  249. add %i5,1,%i5
  250. cmp %i5,10; ble .L47; nop
  251. mov %g0,%i0
  252. .L45:
  253. ret; restore
  254. .type g,#function
  255. .size g,.-g
  256. .global h
  257. .align 4
  258. h:
  259. save %sp,-96,%sp
  260. mov %g0,%i4
  261. set .L73,%o0
  262. call printf; nop
  263. set 1,%i5
  264. .L74:
  265. cmp %i5,264; be .L86; nop
  266. cmp %i5,264; bg .L94; nop
  267. .L93:
  268. cmp %i5,120; be .L84; nop
  269. cmp %i5,120; bg .L96; nop
  270. .L95:
  271. cmp %i5,8; be .L83; nop
  272. cmp %i5,8; bl .L78; nop
  273. .L97:
  274. cmp %i5,16; be .L82; nop
  275. ba .L78; nop
  276. .L96:
  277. cmp %i5,128; be .L80; nop
  278. cmp %i5,128; bl .L78; nop
  279. .L98:
  280. cmp %i5,248; be .L87; nop
  281. ba .L78; nop
  282. .L94:
  283. cmp %i5,288; be .L91; nop
  284. cmp %i5,288; bg .L100; nop
  285. .L99:
  286. cmp %i5,272; be .L88; nop
  287. cmp %i5,272; bl .L78; nop
  288. .L101:
  289. cmp %i5,280; be .L85; nop
  290. ba .L78; nop
  291. .L100:
  292. cmp %i5,304; be .L89; nop
  293. cmp %i5,304; bg .L103; nop
  294. .L102:
  295. cmp %i5,296; be .L90; nop
  296. ba .L78; nop
  297. .L103:
  298. cmp %i5,312; be .L92; nop
  299. ba .L78; nop
  300. .L78:
  301. add %i4,1,%i4
  302. ba .L75; nop
  303. .L80:
  304. set .L81,%o0
  305. mov %i5,%o1
  306. call printf; nop
  307. ba .L79; nop
  308. .L82:
  309. set .L81,%o0
  310. mov %i5,%o1
  311. call printf; nop
  312. ba .L79; nop
  313. .L83:
  314. set .L81,%o0
  315. mov %i5,%o1
  316. call printf; nop
  317. ba .L79; nop
  318. .L84:
  319. set .L81,%o0
  320. mov %i5,%o1
  321. call printf; nop
  322. ba .L79; nop
  323. .L85:
  324. set .L81,%o0
  325. mov %i5,%o1
  326. call printf; nop
  327. ba .L79; nop
  328. .L86:
  329. set .L81,%o0
  330. mov %i5,%o1
  331. call printf; nop
  332. ba .L79; nop
  333. .L87:
  334. set .L81,%o0
  335. mov %i5,%o1
  336. call printf; nop
  337. ba .L79; nop
  338. .L88:
  339. set .L81,%o0
  340. mov %i5,%o1
  341. call printf; nop
  342. ba .L79; nop
  343. .L89:
  344. set .L81,%o0
  345. mov %i5,%o1
  346. call printf; nop
  347. ba .L79; nop
  348. .L90:
  349. set .L81,%o0
  350. mov %i5,%o1
  351. call printf; nop
  352. ba .L79; nop
  353. .L91:
  354. set .L81,%o0
  355. mov %i5,%o1
  356. call printf; nop
  357. ba .L79; nop
  358. .L92:
  359. set .L81,%o0
  360. mov %i5,%o1
  361. call printf; nop
  362. .L79:
  363. .L75:
  364. add %i5,1,%i5
  365. cmp %i5,500; ble .L74; nop
  366. set .L104,%o0
  367. mov %i4,%o1
  368. call printf; nop
  369. mov %g0,%i0
  370. .L72:
  371. ret; restore
  372. .type h,#function
  373. .size h,.-h
  374. .global big
  375. .align 4
  376. big:
  377. save %sp,-96,%sp
  378. set 0x6000000,%i4
  379. and %i0,%i4,%i5
  380. set 33554432,%i3
  381. cmp %i5,%i3; be .L111; nop
  382. cmp %i5,%i3; bg .L115; nop
  383. .L114:
  384. cmp %i5,-2; be .L109; nop
  385. cmp %i5,-1; be .L109; nop
  386. cmp %i5,0; be .L109; nop
  387. ba .L106; nop
  388. .L115:
  389. mov %i5,%i4
  390. set 67108864,%i3
  391. cmp %i4,%i3; be .L112; nop
  392. ba .L106; nop
  393. .L109:
  394. set .L110,%o0
  395. mov %i0,%o1
  396. call printf; nop
  397. ba .L107; nop
  398. .L111:
  399. set .L110,%o0
  400. mov %i0,%o1
  401. call printf; nop
  402. ba .L107; nop
  403. .L112:
  404. set .L110,%o0
  405. mov %i0,%o1
  406. call printf; nop
  407. ba .L107; nop
  408. .L106:
  409. set .L113,%o0
  410. mov %i0,%o1
  411. call printf; nop
  412. .L107:
  413. mov %g0,%i0
  414. .L105:
  415. ret; restore
  416. .type big,#function
  417. .size big,.-big
  418. .global limit
  419. .align 4
  420. limit:
  421. save %sp,-96,%sp
  422. set -2147483648,%i5
  423. .L117:
  424. set -2147483648,%i4
  425. cmp %i5,%i4; bl .L121; nop
  426. set -2147483644,%i3
  427. cmp %i5,%i3; bg .L121; nop
  428. sll %i5,2,%i3
  429. sll %i4,2,%i4
  430. sub %i3,%i4,%i4
  431. set .L134,%i3
  432. ld [%i4+%i3],%i4
  433. jmp %i4; nop
  434. .section ".rodata"
  435. .align 4
  436. .L134:
  437. .word .L123
  438. .word .L125
  439. .word .L127
  440. .word .L129
  441. .word .L131
  442. .section ".text"
  443. .L123:
  444. set .L124,%o0
  445. call printf; nop
  446. ba .L122; nop
  447. .L125:
  448. set .L126,%o0
  449. call printf; nop
  450. ba .L122; nop
  451. .L127:
  452. set .L128,%o0
  453. call printf; nop
  454. ba .L122; nop
  455. .L129:
  456. set .L130,%o0
  457. call printf; nop
  458. ba .L122; nop
  459. .L131:
  460. set .L132,%o0
  461. call printf; nop
  462. ba .L122; nop
  463. .L121:
  464. set .L133,%o0
  465. call printf; nop
  466. .L122:
  467. .L118:
  468. add %i5,1,%i5
  469. set -2147483643,%i4
  470. cmp %i5,%i4; ble .L117; nop
  471. set 2147483647,%i5
  472. .L135:
  473. set 2147483643,%i4
  474. cmp %i5,%i4; bl .L139; nop
  475. set 2147483647,%i3
  476. cmp %i5,%i3; bg .L139; nop
  477. sll %i5,2,%i3
  478. sll %i4,2,%i4
  479. sub %i3,%i4,%i4
  480. set .L146,%i3
  481. ld [%i4+%i3],%i4
  482. jmp %i4; nop
  483. .section ".rodata"
  484. .align 4
  485. .L146:
  486. .word .L145
  487. .word .L144
  488. .word .L143
  489. .word .L142
  490. .word .L141
  491. .section ".text"
  492. .L141:
  493. set .L124,%o0
  494. call printf; nop
  495. ba .L140; nop
  496. .L142:
  497. set .L126,%o0
  498. call printf; nop
  499. ba .L140; nop
  500. .L143:
  501. set .L128,%o0
  502. call printf; nop
  503. ba .L140; nop
  504. .L144:
  505. set .L130,%o0
  506. call printf; nop
  507. ba .L140; nop
  508. .L145:
  509. set .L132,%o0
  510. call printf; nop
  511. ba .L140; nop
  512. .L139:
  513. set .L133,%o0
  514. call printf; nop
  515. .L140:
  516. .L136:
  517. sub %i5,1,%i5
  518. set 2147483642,%i4
  519. cmp %i5,%i4; bge .L135; nop
  520. mov %g0,%i0
  521. .L116:
  522. ret; restore
  523. .type limit,#function
  524. .size limit,.-limit
  525. .section ".rodata"
  526. .align 1
  527. .L133:
  528. .byte 53
  529. .byte 10
  530. .byte 0
  531. .align 1
  532. .L132:
  533. .byte 52
  534. .byte 10
  535. .byte 0
  536. .align 1
  537. .L130:
  538. .byte 51
  539. .byte 10
  540. .byte 0
  541. .align 1
  542. .L128:
  543. .byte 50
  544. .byte 10
  545. .byte 0
  546. .align 1
  547. .L126:
  548. .byte 49
  549. .byte 10
  550. .byte 0
  551. .align 1
  552. .L124:
  553. .byte 48
  554. .byte 10
  555. .byte 0
  556. .align 1
  557. .L113:
  558. .byte 120
  559. .byte 32
  560. .byte 61
  561. .byte 32
  562. .byte 48
  563. .byte 120
  564. .byte 37
  565. .byte 120
  566. .byte 32
  567. .byte 40
  568. .byte 100
  569. .byte 101
  570. .byte 102
  571. .byte 97
  572. .byte 117
  573. .byte 108
  574. .byte 116
  575. .byte 41
  576. .byte 10
  577. .byte 0
  578. .align 1
  579. .L110:
  580. .byte 120
  581. .byte 32
  582. .byte 61
  583. .byte 32
  584. .byte 48
  585. .byte 120
  586. .byte 37
  587. .byte 120
  588. .byte 10
  589. .byte 0
  590. .align 1
  591. .L104:
  592. .byte 37
  593. .byte 100
  594. .byte 32
  595. .byte 100
  596. .byte 101
  597. .byte 102
  598. .byte 97
  599. .byte 117
  600. .byte 108
  601. .byte 116
  602. .byte 115
  603. .byte 10
  604. .byte 0
  605. .align 1
  606. .L81:
  607. .byte 105
  608. .byte 32
  609. .byte 61
  610. .byte 32
  611. .byte 37
  612. .byte 100
  613. .byte 10
  614. .byte 0
  615. .align 1
  616. .L73:
  617. .byte 104
  618. .byte 58
  619. .byte 10
  620. .byte 0
  621. .align 1
  622. .L63:
  623. .byte 54
  624. .byte 32
  625. .byte 37
  626. .byte 100
  627. .byte 10
  628. .byte 0
  629. .align 1
  630. .L61:
  631. .byte 53
  632. .byte 32
  633. .byte 37
  634. .byte 100
  635. .byte 10
  636. .byte 0
  637. .align 1
  638. .L59:
  639. .byte 100
  640. .byte 32
  641. .byte 37
  642. .byte 100
  643. .byte 10
  644. .byte 0
  645. .align 1
  646. .L58:
  647. .byte 51
  648. .byte 32
  649. .byte 37
  650. .byte 100
  651. .byte 10
  652. .byte 0
  653. .align 1
  654. .L56:
  655. .byte 50
  656. .byte 32
  657. .byte 37
  658. .byte 100
  659. .byte 10
  660. .byte 0
  661. .align 1
  662. .L54:
  663. .byte 49
  664. .byte 32
  665. .byte 37
  666. .byte 100
  667. .byte 10
  668. .byte 0
  669. .align 1
  670. .L46:
  671. .byte 103
  672. .byte 58
  673. .byte 10
  674. .byte 0
  675. .align 1
  676. .L44:
  677. .byte 120
  678. .byte 32
  679. .byte 61
  680. .byte 32
  681. .byte 37
  682. .byte 100
  683. .byte 10
  684. .byte 0
  685. .align 1
  686. .L25:
  687. .byte 102
  688. .byte 58
  689. .byte 10
  690. .byte 0
  691. .align 1
  692. .L7:
  693. .byte 37
  694. .byte 99
  695. .byte 32
  696. .byte 61
  697. .byte 32
  698. .byte 48
  699. .byte 120
  700. .byte 37
  701. .byte 120
  702. .byte 10
  703. .byte 0
  704. .align 1
  705. .L6:
  706. .byte 98
  707. .byte 102
  708. .byte 110
  709. .byte 114
  710. .byte 116
  711. .byte 118
  712. .byte 120
  713. .byte 0