Subversion Repositories Kolibri OS

Rev

Rev 532 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
318 heavyiron 1
; Decoding cache L1,L2,L3 for Intel
2
 
532 diamond 3
decodecache32:
4107 mario79 4
 
532 diamond 5
call decodecache
318 heavyiron 6
 
4107 mario79 7
 
8
 
532 diamond 9
decodecache24:
4107 mario79 10
 
532 diamond 11
shr eax, 8
4107 mario79 12
 
532 diamond 13
call decodecache
4107 mario79 14
 
532 diamond 15
shr eax, 8
4107 mario79 16
 
532 diamond 17
call decodecache
4107 mario79 18
 
532 diamond 19
shr eax, 8
20
 
4107 mario79 21
 
318 heavyiron 22
decodecache:
23
 
24
comp0:
25
cmp al, 00h
26
je L000
27
 
28
 
4107 mario79 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
 
318 heavyiron 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
 
4107 mario79 164
comp53:
165
cmp al, 46h
166
je kk53
167
je L34
318 heavyiron 168
 
4107 mario79 169
comp54:
170
cmp al, 47h
171
je kk54
172
je L38
318 heavyiron 173
 
4107 mario79 174
comp65:              ;+1
175
cmp al, 48h
176
je kk26
318 heavyiron 177
 
178
 
4107 mario79 179
comp55:
180
cmp al, 49h
181
je kk55
182
je L34
318 heavyiron 183
 
4107 mario79 184
comp56:
185
cmp al, 4Ah
186
je kk56
187
je L36
318 heavyiron 188
 
4107 mario79 189
comp57:
190
cmp al, 4Bh
191
je kk57
192
je L38
318 heavyiron 193
 
4107 mario79 194
comp58:
195
cmp al, 4Ch
196
je kk58
197
je L312
318 heavyiron 198
 
4107 mario79 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
 
318 heavyiron 214
comp12:
215
cmp al, 66h
216
je kk12
4107 mario79 217
je Ld8
318 heavyiron 218
 
219
comp15:
220
cmp al, 67h
221
je kk15
4107 mario79 222
je Ld16
318 heavyiron 223
 
224
comp17:
225
cmp al, 68h
226
je kk17
4107 mario79 227
je Ld32
318 heavyiron 228
 
4107 mario79 229
comp33:
230
cmp al, 70h
231
je kk33
232
je Li12
318 heavyiron 233
 
4107 mario79 234
comp34:
235
cmp al, 71h
236
je kk34
237
je Li16
318 heavyiron 238
 
4107 mario79 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
 
318 heavyiron 264
comp20:
265
cmp al, 79h
266
je kk20
4107 mario79 267
je L128
318 heavyiron 268
 
269
comp23:
270
cmp al, 7Ah
271
je kk23
4107 mario79 272
je L256
318 heavyiron 273
 
4107 mario79 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
 
318 heavyiron 290
comp24:
291
cmp al, 7Eh
292
je kk24
4107 mario79 293
je L256
318 heavyiron 294
 
4107 mario79 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
 
318 heavyiron 312
comp25:
313
cmp al, 82h
314
je kk25
4107 mario79 315
je L256
318 heavyiron 316
 
317
 
318
comp27:
319
cmp al, 83h
320
je kk27
4107 mario79 321
je L512
318 heavyiron 322
 
323
 
324
comp30:
325
cmp al, 84h
326
je kk30
4107 mario79 327
je L1024
318 heavyiron 328
 
329
comp32:
330
cmp al, 85h
331
je kk32
4107 mario79 332
je L2048
318 heavyiron 333
 
4107 mario79 334
comp28:
335
cmp al, 86h
336
je kk28
337
je L512
318 heavyiron 338
 
4107 mario79 339
comp31:
340
cmp al, 87h
341
je kk31
342
je L1024
318 heavyiron 343
 
344
comp43:
345
cmp al, 88h
346
je kk43
4107 mario79 347
je L32
318 heavyiron 348
 
349
comp44:
350
cmp al, 89h
351
je kk44
4107 mario79 352
je L34
318 heavyiron 353
 
354
comp45:
355
cmp al, 8Ah
356
je kk45
4107 mario79 357
je L38
318 heavyiron 358
 
359
comp46:
360
cmp al, 8Dh
361
je kk46
4107 mario79 362
je L34
318 heavyiron 363
 
364
 
4107 mario79 365
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
366
;comp67:               ;+1
367
;cmp al, 208          ; D0h
368
;je kk39
318 heavyiron 369
 
4107 mario79 370
;comp68:               ;+1
371
;cmp al, 209         ; D1h
372
;je kk68
318 heavyiron 373
 
4107 mario79 374
;comp69:               ;+1
375
;cmp al, 210         ; D2h
376
;je kk43
318 heavyiron 377
 
4107 mario79 378
;comp70:               ;+1
379
;cmp al, 214          ; D6h
380
;je kk40
318 heavyiron 381
 
4107 mario79 382
;comp71:               ;+1
383
;cmp al, 215         ; D7h
384
;je kk41
318 heavyiron 385
 
4107 mario79 386
;comp72:               ;+1
387
;cmp al, 216          ;D8h
388
;je kk42
318 heavyiron 389
 
4107 mario79 390
;comp73:               ;+1
391
;cmp al, 220          ; DCh
392
;je kk73
318 heavyiron 393
 
4107 mario79 394
;comp74:               ;+1
395
;cmp al, 221         ;DDh
396
;je kk74
318 heavyiron 397
 
4107 mario79 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
318 heavyiron 461
je kk56
462
 
4107 mario79 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
318 heavyiron 473
je kk57
474
 
4107 mario79 475
comp79:               ;+1
476
cmp al, 0EAh
477
je kk79
318 heavyiron 478
 
4107 mario79 479
comp80:               ;+1
480
cmp al, 0EBh
481
je kk80
318 heavyiron 482
 
4107 mario79 483
comp81:               ;+1
484
cmp al, 0ECh
485
je kk81
486
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
487
jne L000
318 heavyiron 488
;------------------
489
 
490
 
4107 mario79 491
;;;;;;;;;;;;;;;;; L1 instr
318 heavyiron 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
 
4107 mario79 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
 
318 heavyiron 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
 
4107 mario79 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
318 heavyiron 591
kk19:
592
mov [wayl2], 2
593
mov [linel2], 64
594
jmp L128
595
 
4107 mario79 596
kk52:
597
mov [wayl2], 2
318 heavyiron 598
mov [linel2], 64
4107 mario79 599
jmp L512
318 heavyiron 600
 
4107 mario79 601
kk1:
602
mov [wayl2], 4
318 heavyiron 603
mov [linel2], 32
604
jmp L128
605
 
4107 mario79 606
kk2:
318 heavyiron 607
mov [wayl2], 4
4107 mario79 608
mov [linel2], 32
318 heavyiron 609
jmp L256
610
 
611
kk25:
612
mov [wayl2], 4
613
mov [linel2], 32
614
jmp L256
615
 
4107 mario79 616
kk3:
617
mov [wayl2], 4
618
mov [linel2], 32
318 heavyiron 619
jmp L512
620
 
4107 mario79 621
kk4:
622
mov [wayl2], 4
318 heavyiron 623
mov [linel2], 32
4107 mario79 624
jmp L1024
318 heavyiron 625
 
4107 mario79 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
 
318 heavyiron 641
kk28:
642
mov [wayl2], 4
643
mov [linel2], 64
644
jmp L512
645
 
4107 mario79 646
kk51:
647
mov [wayl2], 4
318 heavyiron 648
mov [linel2], 64
4107 mario79 649
jmp L512
650
 
651
kk37:
652
mov [wayl2], 4
653
mov [linel2], 64
318 heavyiron 654
jmp L1024
655
 
4107 mario79 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:
318 heavyiron 672
mov [wayl2], 8
673
mov [linel2], 32
4107 mario79 674
jmp L128
318 heavyiron 675
 
4107 mario79 676
kk27:
318 heavyiron 677
mov [wayl2], 8
4107 mario79 678
mov [linel2], 32
679
jmp L512
680
 
681
kk30:
682
mov [wayl2], 8
683
mov [linel2], 32
318 heavyiron 684
jmp L1024
685
 
686
kk32:
687
mov [wayl2], 8
688
mov [linel2], 32
689
jmp L2048
690
 
4107 mario79 691
kk20:
692
mov [wayl2], 8
693
mov [linel2], 64
694
jmp L128
318 heavyiron 695
 
4107 mario79 696
kk23:
697
mov [wayl2], 8
698
mov [linel2], 64
699
jmp L256
318 heavyiron 700
 
4107 mario79 701
kk26:
702
mov [wayl2], 8
318 heavyiron 703
mov [linel2], 64
4107 mario79 704
jmp L512
705
 
706
kk29:
707
mov [wayl2], 8
708
mov [linel2], 64
318 heavyiron 709
jmp L1024
710
 
4107 mario79 711
kk31:
712
mov [wayl2], 8
713
mov [linel2], 64
714
jmp L1024
715
 
318 heavyiron 716
kk38:
717
mov [wayl2], 8
718
mov [linel2], 64
719
jmp L2048
4107 mario79 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
318 heavyiron 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
 
4107 mario79 776
kk68:
777
mov [wayl3], 4
778
mov [linel3], 64
779
jmp L31
780
 
318 heavyiron 781
kk54:
782
mov [wayl3], 8
783
mov [linel3], 64
784
jmp L38
785
 
4107 mario79 786
kk74:
787
mov [wayl3], 12
318 heavyiron 788
mov [linel3], 64
4107 mario79 789
jmp L33
318 heavyiron 790
 
4107 mario79 791
kk73:
792
mov [wayl3], 12
793
mov [linel3], 64
794
jmp L315
795
 
318 heavyiron 796
kk56:
797
mov [wayl3], 12
798
mov [linel3], 64
799
jmp L36
800
 
4107 mario79 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
 
318 heavyiron 821
kk57:
822
mov [wayl3], 16
823
mov [linel3], 64
824
jmp L38
825
 
4107 mario79 826
kk59:
827
mov [wayl3], 16
318 heavyiron 828
mov [linel3], 64
4107 mario79 829
jmp L316
830
 
831
kk79:
832
mov [wayl3], 24
833
mov [linel3], 64
318 heavyiron 834
jmp L312
835
 
4107 mario79 836
kk80:
837
mov [wayl3], 24
318 heavyiron 838
mov [linel3], 64
4107 mario79 839
jmp L318
840
 
841
kk81:
842
mov [wayl3], 24
843
mov [linel3], 64
844
jmp L324
845
 
318 heavyiron 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
 
4107 mario79 875
Ld24:
876
mov [L1d], 24
877
jmp L000
878
 
318 heavyiron 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
 
4107 mario79 915
L3072:
916
mov [L2], 3072
917
jmp L000
918
 
919
L6144:
920
mov [L2], 6144
921
jmp L000
922
 
318 heavyiron 923
L305:
924
mov [L3], 512
925
jmp L000
926
 
927
L31:
928
mov [L3], 1024
929
jmp L000
930
 
4107 mario79 931
L315:
932
mov [L3], 1536
933
jmp L000
934
 
318 heavyiron 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
4107 mario79 961
jmp L000
318 heavyiron 962
 
4107 mario79 963
L318:
964
mov [L3], 18432
965
jmp L000
318 heavyiron 966
 
4107 mario79 967
L324:
968
mov [L3], 24576
969
jmp L000
318 heavyiron 970
 
971
L000:
4107 mario79 972
ret