; Decoding cache L1,L2,L3 for Intel decodecache32: call decodecache decodecache24: shr eax, 8 call decodecache shr eax, 8 call decodecache shr eax, 8 decodecache: comp0: cmp al, 00h je L000 comp6: cmp al, 06h je kk6 comp7: cmp al, 08h je kk7 comp61: ;+1 cmp al, 09h je kk61 comp11: cmp al, 0Ah je kk11 je Ld8 comp13: cmp al, 0Ch je kk13 je Ld16 comp62: ;+1 cmp al, 0Dh je kk15 comp63: ;+1 cmp al, 0Eh je kk63 comp14: cmp al, 10h je kk14 je Ld16 comp8: cmp al, 15h je kk8 comp48: cmp al, 1Ah je kk48 je L96 comp64: ;+1 cmp al, 21h je kk23 comp39: cmp al, 22h je kk39 je L305 comp40: cmp al, 23h je kk40 je L31 comp41: cmp al, 25h je kk41 je L32 comp42: cmp al, 29h je kk42 je L34 comp16: cmp al, 2Ch je kk16 je Ld32 comp10: cmp al, 30h je kk10 comp18: cmp al, 39h je kk18 je L128 comp49: cmp al, 3Ah je kk49 je L192 comp19: cmp al, 3Bh je kk19 je L128 comp22: cmp al, 3Ch je kk22 je L256 comp50: cmp al, 3Dh je kk50 je L384 comp51: cmp al, 3Eh je kk51 je L512 comp1: cmp al, 41h je kk1 comp2: cmp al, 42h je kk2 comp3: cmp al, 43h je kk3 comp4: cmp al, 44h je kk4 comp5: cmp al, 45h je kk5 comp53: cmp al, 46h je kk53 je L34 comp54: cmp al, 47h je kk54 je L38 comp65: ;+1 cmp al, 48h je kk26 comp55: cmp al, 49h je kk55 je L34 comp56: cmp al, 4Ah je kk56 je L36 comp57: cmp al, 4Bh je kk57 je L38 comp58: cmp al, 4Ch je kk58 je L312 comp59: cmp al, 4Dh je kk59 je L316 comp60: cmp al, 4Eh je kk60 je L6144 comp36: cmp al, 60h je kk36 je Ld16 comp12: cmp al, 66h je kk12 je Ld8 comp15: cmp al, 67h je kk15 je Ld16 comp17: cmp al, 68h je kk17 je Ld32 comp33: cmp al, 70h je kk33 je Li12 comp34: cmp al, 71h je kk34 je Li16 comp35: cmp al, 72h je kk35 je Li32 comp47: cmp al, 73h je kk47 je Li64 comp9: cmp al, 77h je kk9 comp37: cmp al, 78h je kk37 je L1024 comp20: cmp al, 79h je kk20 je L128 comp23: cmp al, 7Ah je kk23 je L256 comp26: cmp al, 7Bh je kk26 je L512 comp29: cmp al, 7Ch je kk29 je L1024 comp38: cmp al, 7Dh je kk38 je L2048 comp24: cmp al, 7Eh je kk24 je L256 comp52: cmp al, 7Fh je kk52 je L512 comp66: cmp al, 80h je kk21 comp21: cmp al, 81h je kk21 je L128 comp25: cmp al, 82h je kk25 je L256 comp27: cmp al, 83h je kk27 je L512 comp30: cmp al, 84h je kk30 je L1024 comp32: cmp al, 85h je kk32 je L2048 comp28: cmp al, 86h je kk28 je L512 comp31: cmp al, 87h je kk31 je L1024 comp43: cmp al, 88h je kk43 je L32 comp44: cmp al, 89h je kk44 je L34 comp45: cmp al, 8Ah je kk45 je L38 comp46: cmp al, 8Dh je kk46 je L34 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;comp67: ;+1 ;cmp al, 208 ; D0h ;je kk39 ;comp68: ;+1 ;cmp al, 209 ; D1h ;je kk68 ;comp69: ;+1 ;cmp al, 210 ; D2h ;je kk43 ;comp70: ;+1 ;cmp al, 214 ; D6h ;je kk40 ;comp71: ;+1 ;cmp al, 215 ; D7h ;je kk41 ;comp72: ;+1 ;cmp al, 216 ;D8h ;je kk42 ;comp73: ;+1 ;cmp al, 220 ; DCh ;je kk73 ;comp74: ;+1 ;cmp al, 221 ;DDh ;je kk74 ;comp75: ;+1 ;cmp al, 222 ;DEh ;je kk56 ;comp76: ;+1 ;cmp al, 226 ;E2h ;je kk76 ;comp77: ;+1 ;cmp al, 227 ;E3h ;je kk55 ;comp78: ;+1 ;cmp al, 228 ;E4h ;je kk57 ;comp79: ;+1 ;cmp al, 234 ;EAh ;je kk79 ;comp80: ;+1 ;cmp al, 235 ;EBh ;je kk80 ;comp81: ;+1 ;cmp al, 236 ;ECh ;je kk81 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; comp67: ;+1 cmp al, 0D0h je kk39 comp68: ;+1 cmp al, 0D1h je kk68 comp69: ;+1 cmp al, 0D2h je kk43 comp70: ;+1 cmp al, 0D6h je kk40 comp71: ;+1 cmp al, 0D7h je kk41 comp72: ;+1 cmp al, 0D8h je kk42 comp73: ;+1 cmp al, 0DCh je kk73 comp74: ;+1 cmp al, 0DDh je kk74 comp75: ;+1 cmp al, 0DEh je kk56 comp76: ;+1 cmp al, 0E2h je kk76 comp77: ;+1 cmp al, 0E3h je kk55 comp78: ;+1 cmp al, 0E4h je kk57 comp79: ;+1 cmp al, 0EAh je kk79 comp80: ;+1 cmp al, 0EBh je kk80 comp81: ;+1 cmp al, 0ECh je kk81 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; jne L000 ;------------------ ;;;;;;;;;;;;;;;;; L1 instr kk6: mov [wayli], 4 mov [lineli], 32 jmp Li8 kk7: mov [wayli], 4 mov [lineli], 32 jmp Li16 kk8: mov [wayli], 4 mov [lineli], 32 jmp Li16 kk9: mov [wayli], 4 mov [lineli], 64 jmp Li16 kk61: mov [wayli], 4 ;+1 mov [lineli], 64 jmp Li32 kk33: mov [wayli], 8 ;mov [lineli], 32 jmp Li12 kk34: mov [wayli], 8 ;mov [lineli], 32 jmp Li16 kk35: mov [wayli], 8 ;mov [lineli], 32 jmp Li32 kk47: mov [wayli], 8 ;mov [lineli], 32 jmp Li64 kk10: mov [wayli], 8 mov [lineli], 64 jmp Li32 ;;;;;;;;;;;;;;;;;;; ;---------------L1 data kk11: mov [wayld], 2 mov [lineld], 32 jmp Ld8 kk12: mov [wayld], 4 mov [lineld], 64 jmp Ld8 kk13: mov [wayld], 4 mov [lineld], 32 jmp Ld16 kk14: mov [wayld], 4 mov [lineld], 32 jmp Ld16 kk15: mov [wayld], 4 mov [lineld], 64 jmp Ld16 kk16: mov [wayld], 8 mov [lineld], 64 jmp Ld32 kk17: mov [wayld], 4 mov [lineld], 64 jmp Ld32 kk63: mov [wayld], 6 mov [lineld], 64 jmp Ld24 kk36: mov [wayld], 8 mov [lineld], 64 jmp Ld16 ;;;;;;;;;;;;;;;;;;;;;;;;;;;; L2 kk19: mov [wayl2], 2 mov [linel2], 64 jmp L128 kk52: mov [wayl2], 2 mov [linel2], 64 jmp L512 kk1: mov [wayl2], 4 mov [linel2], 32 jmp L128 kk2: mov [wayl2], 4 mov [linel2], 32 jmp L256 kk25: mov [wayl2], 4 mov [linel2], 32 jmp L256 kk3: mov [wayl2], 4 mov [linel2], 32 jmp L512 kk4: mov [wayl2], 4 mov [linel2], 32 jmp L1024 kk5: mov [wayl2], 4 mov [linel2], 32 jmp L2048 kk18: mov [wayl2], 4 mov [linel2], 64 jmp L128 kk22: mov [wayl2], 4 mov [linel2], 64 jmp L256 kk28: mov [wayl2], 4 mov [linel2], 64 jmp L512 kk51: mov [wayl2], 4 mov [linel2], 64 jmp L512 kk37: mov [wayl2], 4 mov [linel2], 64 jmp L1024 kk48: mov [wayl2], 6 mov [linel2], 64 jmp L96 kk49: mov [wayl2], 6 mov [linel2], 64 jmp L192 kk50: mov [wayl2], 6 mov [linel2], 64 jmp L384 kk21: mov [wayl2], 8 mov [linel2], 32 jmp L128 kk27: mov [wayl2], 8 mov [linel2], 32 jmp L512 kk30: mov [wayl2], 8 mov [linel2], 32 jmp L1024 kk32: mov [wayl2], 8 mov [linel2], 32 jmp L2048 kk20: mov [wayl2], 8 mov [linel2], 64 jmp L128 kk23: mov [wayl2], 8 mov [linel2], 64 jmp L256 kk26: mov [wayl2], 8 mov [linel2], 64 jmp L512 kk29: mov [wayl2], 8 mov [linel2], 64 jmp L1024 kk31: mov [wayl2], 8 mov [linel2], 64 jmp L1024 kk38: mov [wayl2], 8 mov [linel2], 64 jmp L2048 kk24: mov [wayl2], 8 mov [linel2], 128 jmp L256 kk65: mov [wayl2], 12 mov [linel2], 64 jmp L3072 kk60: mov [wayl2], 24 mov [linel2], 64 jmp L6144 ;;;;;;;;;;;;;;;;;;;;;;;;; L3 kk39: mov [wayl3], 4 mov [linel3], 64 jmp L305 kk40: mov [wayl3], 8 mov [linel3], 64 jmp L31 kk41: mov [wayl3], 8 mov [linel3], 64 jmp L32 kk42: mov [wayl3], 8 mov [linel3], 64 jmp L34 kk43: mov [wayl3], 4 mov [linel3], 64 jmp L32 kk44: mov [wayl3], 4 mov [linel3], 64 jmp L34 kk45: mov [wayl3], 4 mov [linel3], 64 jmp L38 kk53: mov [wayl3], 4 mov [linel3], 64 jmp L34 kk68: mov [wayl3], 4 mov [linel3], 64 jmp L31 kk54: mov [wayl3], 8 mov [linel3], 64 jmp L38 kk74: mov [wayl3], 12 mov [linel3], 64 jmp L33 kk73: mov [wayl3], 12 mov [linel3], 64 jmp L315 kk56: mov [wayl3], 12 mov [linel3], 64 jmp L36 kk58: mov [wayl3], 12 mov [linel3], 64 jmp L312 kk46: mov [wayl3], 12 mov [linel3], 128 jmp L33 kk76: mov [wayl3], 16 mov [linel3], 64 jmp L32 kk55: mov [wayl3], 16 mov [linel3], 64 jmp L34 kk57: mov [wayl3], 16 mov [linel3], 64 jmp L38 kk59: mov [wayl3], 16 mov [linel3], 64 jmp L316 kk79: mov [wayl3], 24 mov [linel3], 64 jmp L312 kk80: mov [wayl3], 24 mov [linel3], 64 jmp L318 kk81: mov [wayl3], 24 mov [linel3], 64 jmp L324 ;------------------ Li8: mov [L1i], 8 jmp L000 Li12: mov [L1i], 12 jmp L000 Li16: mov [L1i], 16 jmp L000 Li32: mov [L1i], 32 jmp L000 Li64: mov [L1i], 64 jmp L000 Ld8: mov [L1d], 8 jmp L000 Ld16: mov [L1d], 16 jmp L000 Ld24: mov [L1d], 24 jmp L000 Ld32: mov [L1d], 32 jmp L000 L96: mov [L2], 96 jmp L000 L128: mov [L2], 128 jmp L000 L192: mov [L2], 192 jmp L000 L256: mov [L2], 256 jmp L000 L384: mov [L2], 384 jmp L000 L512: mov [L2], 512 jmp L000 L1024: mov [L2], 1024 jmp L000 L2048: mov [L2], 2048 jmp L000 L3072: mov [L2], 3072 jmp L000 L6144: mov [L2], 6144 jmp L000 L305: mov [L3], 512 jmp L000 L31: mov [L3], 1024 jmp L000 L315: mov [L3], 1536 jmp L000 L32: mov [L3], 2048 jmp L000 L33: mov [L3], 3072 jmp L000 L34: mov [L3], 4096 jmp L000 L36: mov [L3], 6144 jmp L000 L38: mov [L3], 8192 jmp L000 L312: mov [L3], 12288 jmp L000 L316: mov [L3], 16384 jmp L000 L318: mov [L3], 18432 jmp L000 L324: mov [L3], 24576 jmp L000 L000: ret