Subversion Repositories Kolibri OS

Rev

Rev 532 | Blame | Last modification | View Log | Download | RSS feed

  1. ; Decoding cache L1,L2,L3 for Intel
  2.  
  3. decodecache32:
  4.  
  5. call decodecache
  6.  
  7.  
  8.  
  9. decodecache24:
  10.  
  11. shr eax, 8
  12.  
  13. call decodecache
  14.  
  15. shr eax, 8
  16.  
  17. call decodecache
  18.  
  19. shr eax, 8
  20.  
  21.  
  22. decodecache:
  23.  
  24. comp0:
  25. cmp al, 00h
  26. je L000
  27.  
  28.  
  29. comp6:
  30. cmp al, 06h
  31. je kk6
  32.  
  33. comp7:
  34. cmp al, 08h
  35. je kk7
  36.  
  37. comp61:  ;+1
  38. cmp al, 09h
  39. je kk61
  40.  
  41. comp11:
  42. cmp al, 0Ah
  43. je kk11
  44. je Ld8
  45.  
  46.  
  47. comp13:
  48. cmp al, 0Ch
  49. je kk13
  50. je Ld16
  51.  
  52. comp62:  ;+1
  53. cmp al, 0Dh
  54. je kk15
  55.  
  56. comp63:  ;+1
  57. cmp al, 0Eh
  58. je kk63
  59.  
  60. comp14:
  61. cmp al, 10h
  62. je kk14
  63. je Ld16
  64.  
  65.  
  66. comp8:
  67. cmp al, 15h
  68. je kk8
  69.  
  70. comp48:
  71. cmp al, 1Ah
  72. je kk48
  73. je L96
  74.  
  75. comp64:   ;+1
  76. cmp al, 21h
  77. je kk23
  78.  
  79.  
  80. comp39:
  81. cmp al, 22h
  82. je kk39
  83. je L305
  84.  
  85. comp40:
  86. cmp al, 23h
  87. je kk40
  88. je L31
  89.  
  90. comp41:
  91. cmp al, 25h
  92. je kk41
  93. je L32
  94.  
  95. comp42:
  96. cmp al, 29h
  97. je kk42
  98. je L34
  99.  
  100. comp16:
  101. cmp al, 2Ch
  102. je kk16
  103. je Ld32
  104.  
  105. comp10:
  106. cmp al, 30h
  107. je kk10
  108.  
  109. comp18:
  110. cmp al, 39h
  111. je kk18
  112. je L128
  113.  
  114. comp49:
  115. cmp al, 3Ah
  116. je kk49
  117. je L192
  118.  
  119. comp19:
  120. cmp al, 3Bh
  121. je kk19
  122. je L128
  123.  
  124. comp22:
  125. cmp al, 3Ch
  126. je kk22
  127. je L256
  128.  
  129. comp50:
  130. cmp al, 3Dh
  131. je kk50
  132. je L384
  133.  
  134. comp51:
  135. cmp al, 3Eh
  136. je kk51
  137. je L512
  138.  
  139. comp1:
  140. cmp al, 41h
  141. je kk1
  142.  
  143.  
  144. comp2:
  145. cmp al, 42h
  146. je kk2
  147.  
  148.  
  149. comp3:
  150. cmp al, 43h
  151. je kk3
  152.  
  153.  
  154. comp4:
  155. cmp al, 44h
  156. je kk4
  157.  
  158.  
  159. comp5:
  160. cmp al, 45h
  161. je kk5
  162.  
  163.  
  164. comp53:
  165. cmp al, 46h
  166. je kk53
  167. je L34
  168.  
  169. comp54:
  170. cmp al, 47h
  171. je kk54
  172. je L38
  173.  
  174. comp65:              ;+1
  175. cmp al, 48h
  176. je kk26
  177.  
  178.  
  179. comp55:
  180. cmp al, 49h
  181. je kk55
  182. je L34
  183.  
  184. comp56:
  185. cmp al, 4Ah
  186. je kk56
  187. je L36
  188.  
  189. comp57:
  190. cmp al, 4Bh
  191. je kk57
  192. je L38
  193.  
  194. comp58:
  195. cmp al, 4Ch
  196. je kk58
  197. je L312
  198.  
  199. comp59:
  200. cmp al, 4Dh
  201. je kk59
  202. je L316
  203.  
  204. comp60:
  205. cmp al, 4Eh
  206. je kk60
  207. je L6144
  208.  
  209. comp36:
  210. cmp al, 60h
  211. je kk36
  212. je Ld16
  213.  
  214. comp12:
  215. cmp al, 66h
  216. je kk12
  217. je Ld8
  218.  
  219. comp15:
  220. cmp al, 67h
  221. je kk15
  222. je Ld16
  223.  
  224. comp17:
  225. cmp al, 68h
  226. je kk17
  227. je Ld32
  228.  
  229. comp33:
  230. cmp al, 70h
  231. je kk33
  232. je Li12
  233.  
  234. comp34:
  235. cmp al, 71h
  236. je kk34
  237. je Li16
  238.  
  239. comp35:
  240. cmp al, 72h
  241. je kk35
  242. je Li32
  243.  
  244.  
  245. comp47:
  246. cmp al, 73h
  247. je kk47
  248. je Li64
  249.  
  250.  
  251. comp9:
  252. cmp al, 77h
  253. je kk9
  254.  
  255.  
  256.  
  257. comp37:
  258. cmp al, 78h
  259. je kk37
  260. je L1024
  261.  
  262.  
  263.  
  264. comp20:
  265. cmp al, 79h
  266. je kk20
  267. je L128
  268.  
  269. comp23:
  270. cmp al, 7Ah
  271. je kk23
  272. je L256
  273.  
  274.  
  275. comp26:
  276. cmp al, 7Bh
  277. je kk26
  278. je L512
  279.  
  280. comp29:
  281. cmp al, 7Ch
  282. je kk29
  283. je L1024
  284.  
  285. comp38:
  286. cmp al, 7Dh
  287. je kk38
  288. je L2048
  289.  
  290. comp24:
  291. cmp al, 7Eh
  292. je kk24
  293. je L256
  294.  
  295. comp52:
  296. cmp al, 7Fh
  297. je kk52
  298. je L512
  299.  
  300.  
  301. comp66:
  302. cmp al, 80h
  303. je kk21
  304.  
  305.  
  306. comp21:
  307. cmp al, 81h
  308. je kk21
  309. je L128
  310.  
  311.  
  312. comp25:
  313. cmp al, 82h
  314. je kk25
  315. je L256
  316.  
  317.  
  318. comp27:
  319. cmp al, 83h
  320. je kk27
  321. je L512
  322.  
  323.  
  324. comp30:
  325. cmp al, 84h
  326. je kk30
  327. je L1024
  328.  
  329. comp32:
  330. cmp al, 85h
  331. je kk32
  332. je L2048
  333.  
  334. comp28:
  335. cmp al, 86h
  336. je kk28
  337. je L512
  338.  
  339. comp31:
  340. cmp al, 87h
  341. je kk31
  342. je L1024
  343.  
  344. comp43:
  345. cmp al, 88h
  346. je kk43
  347. je L32
  348.  
  349. comp44:
  350. cmp al, 89h
  351. je kk44
  352. je L34
  353.  
  354. comp45:
  355. cmp al, 8Ah
  356. je kk45
  357. je L38
  358.  
  359. comp46:
  360. cmp al, 8Dh
  361. je kk46
  362. je L34
  363.  
  364.  
  365. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  366. ;comp67:               ;+1
  367. ;cmp al, 208          ; D0h
  368. ;je kk39
  369.  
  370. ;comp68:               ;+1
  371. ;cmp al, 209         ; D1h
  372. ;je kk68
  373.  
  374. ;comp69:               ;+1
  375. ;cmp al, 210         ; D2h
  376. ;je kk43
  377.  
  378. ;comp70:               ;+1
  379. ;cmp al, 214          ; D6h
  380. ;je kk40
  381.  
  382. ;comp71:               ;+1
  383. ;cmp al, 215         ; D7h
  384. ;je kk41
  385.  
  386. ;comp72:               ;+1
  387. ;cmp al, 216          ;D8h
  388. ;je kk42
  389.  
  390. ;comp73:               ;+1
  391. ;cmp al, 220          ; DCh
  392. ;je kk73
  393.  
  394. ;comp74:               ;+1
  395. ;cmp al, 221         ;DDh
  396. ;je kk74
  397.  
  398. ;comp75:               ;+1
  399. ;cmp al, 222        ;DEh
  400. ;je kk56
  401.  
  402. ;comp76:               ;+1
  403. ;cmp al, 226        ;E2h
  404. ;je kk76
  405.  
  406. ;comp77:               ;+1
  407. ;cmp al, 227        ;E3h
  408. ;je kk55
  409.  
  410. ;comp78:               ;+1
  411. ;cmp al, 228        ;E4h
  412. ;je kk57
  413.  
  414. ;comp79:               ;+1
  415. ;cmp al, 234         ;EAh
  416. ;je kk79
  417.  
  418. ;comp80:               ;+1
  419. ;cmp al, 235         ;EBh
  420. ;je kk80
  421.  
  422. ;comp81:               ;+1
  423. ;cmp al, 236         ;ECh
  424. ;je kk81
  425.  
  426. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  427. comp67:               ;+1
  428. cmp al, 0D0h
  429. je kk39
  430.  
  431. comp68:               ;+1
  432. cmp al, 0D1h
  433. je kk68
  434.  
  435. comp69:               ;+1
  436. cmp al, 0D2h
  437. je kk43
  438.  
  439. comp70:               ;+1
  440. cmp al, 0D6h
  441. je kk40
  442.  
  443. comp71:               ;+1
  444. cmp al, 0D7h
  445. je kk41
  446.  
  447. comp72:               ;+1
  448. cmp al, 0D8h
  449. je kk42
  450.  
  451. comp73:               ;+1
  452. cmp al, 0DCh
  453. je kk73
  454.  
  455. comp74:               ;+1
  456. cmp al, 0DDh
  457. je kk74
  458.  
  459. comp75:               ;+1
  460. cmp al, 0DEh
  461. je kk56
  462.  
  463. comp76:               ;+1
  464. cmp al, 0E2h
  465. je kk76
  466.  
  467. comp77:               ;+1
  468. cmp al, 0E3h
  469. je kk55
  470.  
  471. comp78:               ;+1
  472. cmp al, 0E4h
  473. je kk57
  474.  
  475. comp79:               ;+1
  476. cmp al, 0EAh
  477. je kk79
  478.  
  479. comp80:               ;+1
  480. cmp al, 0EBh
  481. je kk80
  482.  
  483. comp81:               ;+1
  484. cmp al, 0ECh
  485. je kk81
  486. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  487. jne L000
  488. ;------------------
  489.  
  490.  
  491. ;;;;;;;;;;;;;;;;; L1 instr
  492. kk6:
  493. mov [wayli], 4
  494. mov [lineli], 32
  495. jmp Li8
  496.  
  497. kk7:
  498. mov [wayli], 4
  499. mov [lineli], 32
  500. jmp Li16
  501.  
  502. kk8:
  503. mov [wayli], 4       
  504. mov [lineli], 32
  505. jmp Li16
  506.  
  507. kk9:
  508. mov [wayli], 4   
  509. mov [lineli], 64
  510. jmp Li16
  511.  
  512. kk61:
  513. mov [wayli], 4    ;+1
  514. mov [lineli], 64
  515. jmp Li32
  516.  
  517.  
  518. kk33:
  519. mov [wayli], 8
  520. ;mov [lineli], 32
  521. jmp Li12
  522.  
  523. kk34:
  524. mov [wayli], 8
  525. ;mov [lineli], 32
  526. jmp Li16
  527.  
  528. kk35:
  529. mov [wayli], 8
  530. ;mov [lineli], 32
  531. jmp Li32
  532.  
  533. kk47:
  534. mov [wayli], 8
  535. ;mov [lineli], 32
  536. jmp Li64
  537.  
  538. kk10:
  539. mov [wayli], 8
  540. mov [lineli], 64
  541. jmp Li32
  542. ;;;;;;;;;;;;;;;;;;;
  543.  
  544. ;---------------L1 data
  545. kk11:
  546. mov [wayld], 2
  547. mov [lineld], 32
  548. jmp Ld8
  549.  
  550. kk12:
  551. mov [wayld], 4
  552. mov [lineld], 64
  553. jmp Ld8
  554.  
  555. kk13:
  556. mov [wayld], 4
  557. mov [lineld], 32
  558. jmp Ld16
  559.  
  560. kk14:
  561. mov [wayld], 4
  562. mov [lineld], 32
  563. jmp Ld16
  564.  
  565. kk15:
  566. mov [wayld], 4
  567. mov [lineld], 64
  568. jmp Ld16
  569.  
  570. kk16:
  571. mov [wayld], 8
  572. mov [lineld], 64
  573. jmp Ld32
  574.  
  575. kk17:
  576. mov [wayld], 4
  577. mov [lineld], 64
  578. jmp Ld32
  579.  
  580. kk63:
  581. mov [wayld], 6
  582. mov [lineld], 64
  583. jmp Ld24
  584.  
  585. kk36:
  586. mov [wayld], 8
  587. mov [lineld], 64
  588. jmp Ld16
  589.  
  590. ;;;;;;;;;;;;;;;;;;;;;;;;;;;; L2
  591. kk19:
  592. mov [wayl2], 2
  593. mov [linel2], 64
  594. jmp L128
  595.  
  596. kk52:
  597. mov [wayl2], 2
  598. mov [linel2], 64
  599. jmp L512
  600.  
  601. kk1:
  602. mov [wayl2], 4
  603. mov [linel2], 32
  604. jmp L128
  605.  
  606. kk2:
  607. mov [wayl2], 4
  608. mov [linel2], 32
  609. jmp L256
  610.  
  611. kk25:
  612. mov [wayl2], 4
  613. mov [linel2], 32
  614. jmp L256
  615.  
  616. kk3:
  617. mov [wayl2], 4
  618. mov [linel2], 32
  619. jmp L512
  620.  
  621. kk4:
  622. mov [wayl2], 4
  623. mov [linel2], 32
  624. jmp L1024
  625.  
  626. kk5:
  627. mov [wayl2], 4
  628. mov [linel2], 32
  629. jmp L2048
  630.  
  631. kk18:
  632. mov [wayl2], 4
  633. mov [linel2], 64
  634. jmp L128
  635.  
  636. kk22:
  637. mov [wayl2], 4
  638. mov [linel2], 64
  639. jmp L256
  640.  
  641. kk28:
  642. mov [wayl2], 4
  643. mov [linel2], 64
  644. jmp L512
  645.  
  646. kk51:
  647. mov [wayl2], 4
  648. mov [linel2], 64
  649. jmp L512
  650.  
  651. kk37:
  652. mov [wayl2], 4
  653. mov [linel2], 64
  654. jmp L1024
  655.  
  656. kk48:
  657. mov [wayl2], 6
  658. mov [linel2], 64
  659. jmp L96
  660.  
  661. kk49:
  662. mov [wayl2], 6
  663. mov [linel2], 64
  664. jmp L192
  665.  
  666. kk50:
  667. mov [wayl2], 6
  668. mov [linel2], 64
  669. jmp L384
  670.  
  671. kk21:
  672. mov [wayl2], 8
  673. mov [linel2], 32
  674. jmp L128
  675.  
  676. kk27:
  677. mov [wayl2], 8
  678. mov [linel2], 32
  679. jmp L512
  680.  
  681. kk30:
  682. mov [wayl2], 8
  683. mov [linel2], 32
  684. jmp L1024
  685.  
  686. kk32:
  687. mov [wayl2], 8
  688. mov [linel2], 32
  689. jmp L2048
  690.  
  691. kk20:
  692. mov [wayl2], 8
  693. mov [linel2], 64
  694. jmp L128
  695.  
  696. kk23:
  697. mov [wayl2], 8
  698. mov [linel2], 64
  699. jmp L256
  700.  
  701. kk26:
  702. mov [wayl2], 8
  703. mov [linel2], 64
  704. jmp L512
  705.  
  706. kk29:
  707. mov [wayl2], 8
  708. mov [linel2], 64
  709. jmp L1024
  710.  
  711. kk31:
  712. mov [wayl2], 8
  713. mov [linel2], 64
  714. jmp L1024
  715.  
  716. kk38:
  717. mov [wayl2], 8
  718. mov [linel2], 64
  719. jmp L2048
  720.  
  721. kk24:
  722. mov [wayl2], 8
  723. mov [linel2], 128
  724. jmp L256
  725.  
  726. kk65:
  727. mov [wayl2], 12
  728. mov [linel2], 64
  729. jmp L3072
  730.  
  731. kk60:
  732. mov [wayl2], 24
  733. mov [linel2], 64
  734. jmp L6144
  735. ;;;;;;;;;;;;;;;;;;;;;;;;; L3
  736. kk39:
  737. mov [wayl3], 4
  738. mov [linel3], 64
  739. jmp L305
  740.  
  741. kk40:
  742. mov [wayl3], 8
  743. mov [linel3], 64
  744. jmp L31
  745.  
  746. kk41:
  747. mov [wayl3], 8
  748. mov [linel3], 64
  749. jmp L32
  750.  
  751. kk42:
  752. mov [wayl3], 8
  753. mov [linel3], 64
  754. jmp  L34
  755.  
  756. kk43:
  757. mov [wayl3], 4
  758. mov [linel3], 64
  759. jmp L32
  760.  
  761. kk44:
  762. mov [wayl3], 4
  763. mov [linel3], 64
  764. jmp L34
  765.  
  766. kk45:
  767. mov [wayl3], 4
  768. mov [linel3], 64
  769. jmp L38
  770.  
  771. kk53:
  772. mov [wayl3], 4
  773. mov [linel3], 64
  774. jmp L34
  775.  
  776. kk68:
  777. mov [wayl3], 4
  778. mov [linel3], 64
  779. jmp L31
  780.  
  781. kk54:
  782. mov [wayl3], 8
  783. mov [linel3], 64
  784. jmp L38
  785.  
  786. kk74:
  787. mov [wayl3], 12
  788. mov [linel3], 64
  789. jmp L33
  790.  
  791. kk73:
  792. mov [wayl3], 12
  793. mov [linel3], 64
  794. jmp L315
  795.  
  796. kk56:
  797. mov [wayl3], 12
  798. mov [linel3], 64
  799. jmp L36
  800.  
  801. kk58:
  802. mov [wayl3], 12
  803. mov [linel3], 64
  804. jmp L312
  805.  
  806. kk46:
  807. mov [wayl3], 12
  808. mov [linel3], 128
  809. jmp L33
  810.  
  811. kk76:
  812. mov [wayl3], 16
  813. mov [linel3], 64
  814. jmp L32
  815.  
  816. kk55:
  817. mov [wayl3], 16
  818. mov [linel3], 64
  819. jmp L34
  820.  
  821. kk57:
  822. mov [wayl3], 16
  823. mov [linel3], 64
  824. jmp L38
  825.  
  826. kk59:
  827. mov [wayl3], 16
  828. mov [linel3], 64
  829. jmp L316
  830.  
  831. kk79:
  832. mov [wayl3], 24
  833. mov [linel3], 64
  834. jmp L312
  835.  
  836. kk80:
  837. mov [wayl3], 24
  838. mov [linel3], 64
  839. jmp L318
  840.  
  841. kk81:
  842. mov [wayl3], 24
  843. mov [linel3], 64
  844. jmp L324
  845.  
  846. ;------------------
  847. Li8:
  848. mov [L1i], 8
  849. jmp L000
  850.  
  851. Li12:
  852. mov [L1i], 12
  853. jmp L000
  854.  
  855. Li16:
  856. mov [L1i], 16
  857. jmp L000
  858.  
  859. Li32:
  860. mov [L1i], 32
  861. jmp L000
  862.  
  863. Li64:
  864. mov [L1i], 64
  865. jmp L000
  866.  
  867. Ld8:
  868. mov [L1d], 8
  869. jmp L000
  870.  
  871. Ld16:
  872. mov [L1d], 16
  873. jmp L000
  874.  
  875. Ld24:
  876. mov [L1d], 24
  877. jmp L000
  878.  
  879. Ld32:
  880. mov [L1d], 32
  881. jmp L000
  882.  
  883. L96:
  884. mov [L2], 96
  885. jmp L000
  886.  
  887. L128:
  888. mov [L2], 128
  889. jmp L000
  890.  
  891. L192:
  892. mov [L2], 192
  893. jmp L000
  894.  
  895. L256:
  896. mov [L2], 256
  897. jmp L000
  898.  
  899. L384:
  900. mov [L2], 384
  901. jmp L000
  902.  
  903. L512:
  904. mov [L2], 512
  905. jmp L000
  906.  
  907. L1024:
  908. mov [L2], 1024
  909. jmp L000
  910.  
  911. L2048:
  912. mov [L2], 2048
  913. jmp L000
  914.  
  915. L3072:
  916. mov [L2], 3072
  917. jmp L000
  918.  
  919. L6144:
  920. mov [L2], 6144
  921. jmp L000
  922.  
  923. L305:
  924. mov [L3], 512
  925. jmp L000
  926.  
  927. L31:
  928. mov [L3], 1024
  929. jmp L000
  930.  
  931. L315:
  932. mov [L3], 1536
  933. jmp L000
  934.  
  935. L32:
  936. mov [L3], 2048
  937. jmp L000
  938.  
  939. L33:
  940. mov [L3], 3072
  941. jmp L000
  942.  
  943. L34:
  944. mov [L3], 4096
  945. jmp L000
  946.  
  947. L36:
  948. mov [L3], 6144
  949. jmp L000
  950.  
  951. L38:
  952. mov [L3], 8192
  953. jmp L000
  954.  
  955. L312:
  956. mov [L3], 12288
  957. jmp L000
  958.  
  959. L316:
  960. mov [L3], 16384
  961. jmp L000
  962.  
  963. L318:
  964. mov [L3], 18432
  965. jmp L000
  966.  
  967. L324:
  968. mov [L3], 24576
  969. jmp L000
  970.  
  971. L000:
  972. ret