[MN-dev] [mndiff]: r60 - in trunk/2010: 2_all.h 2_all_a.asm 2_cryp_a.asm 2_cryp_a.h 2_nag_a.asm 2_vc.h 2_vc_a.asm

michael subversion at mplayerhq.hu
Wed Jul 4 10:42:05 CEST 2007


Author: michael
Date: Wed Jul  4 10:42:04 2007
New Revision: 60

Log:
next version from unknown date


Modified:
   trunk/2010/2_all.h
   trunk/2010/2_all_a.asm
   trunk/2010/2_cryp_a.asm
   trunk/2010/2_cryp_a.h
   trunk/2010/2_nag_a.asm
   trunk/2010/2_vc.h
   trunk/2010/2_vc_a.asm

Modified: trunk/2010/2_all.h
==============================================================================
--- trunk/2010/2_all.h	(original)
+++ trunk/2010/2_all.h	Wed Jul  4 10:42:04 2007
@@ -14,6 +14,8 @@
 
 #define limit(a,b,c) if( (a)<(b) || (a)>(c) ) error(-201)
 
+#define ISTATES 3
+
 
 #define u_char unsigned char
 #define u_long unsigned long

Modified: trunk/2010/2_all_a.asm
==============================================================================
--- trunk/2010/2_all_a.asm	(original)
+++ trunk/2010/2_all_a.asm	Wed Jul  4 10:42:04 2007
@@ -35,6 +35,8 @@
  times ge(($$-$)&3, 1) nop
 %endmacro
 
+; lea 4 byte and 7 byte possible
+
 %macro align8 0
  times ge(($$-$)&7, 6) cmp ebx, 0
  times ge(($$-$)&7, 5) cmp eax, 0

Modified: trunk/2010/2_cryp_a.asm
==============================================================================
--- trunk/2010/2_cryp_a.asm	(original)
+++ trunk/2010/2_cryp_a.asm	Wed Jul  4 10:42:04 2007
@@ -8,6 +8,7 @@ global _VSmooth1RGB1555__Fiii
 global _VSmooth2RGB1555__Fiii
 global _Decomb1__Fiii
 global _Decomb2__Fiii
+global _SetDecombInc__Fi
 
 %define pBuf1    par1
 %define iVgaX21  par2
@@ -21,6 +22,16 @@ global _Decomb2__Fiii
 %define nOp3     par2
 %define pBuf3    par3
 
+_SetDecombInc__Fi:
+ push eax
+
+ mov eax, [par1 - 5*4]
+ mov [decombInc], eax
+ mov [decombInc+4], eax
+ pop eax
+
+ret
+
 _Decomb1__Fiii:
  push eax
  push ebx
@@ -86,24 +97,29 @@ _Decomb2__Fiii:
  movq mm7, [decombInc]
 align16
 Decomb2Loop:
- movq mm0, [esi + ecx]           ;0p2 wMM0rESIECX 1
- movq mm1, mm0                   ; p01wMM1rMM0    0   test mov mem
- pand mm1, mm6                   ; p01wMM1rMM6MM1 1
- psllw mm0, 8                    ;0p1 wMM0rMM0    0
- movq mm2, [edi + ecx]           ; p2 wMM2rEDIECX 1
- psubsw mm0, mm2                 ; p01wMM0rMM2MM0 0
- pcmpgtw mm2, mm0                ;0p01wMM2rMM0MM2 0
- pand mm2, mm7                   ; p01wMM2rMM7MM2 1
- paddsw mm0, mm2                 ; p01wMM0rMM2MM0 0
- movq [edi + ecx], mm0           ;0p3     rEDIECX 2    p4     rMM0 0
- psrlw mm0, 7                    ; p1 wMM0rMM0    0
- por mm1, mm0                    ; p01wMM1rMM0MM1 ?0
- movq [esi + ecx], mm1           ;0p3     rESIECX 2    p4     rMM1 0
- add ecx, byte 8                 ; p01wECXrECX   (1)
-  jnc Decomb2Loop                ; p1     rFLAG   0
+ movq mm0, [esi + ecx]           ;4 p2  MM0 ESIECX   F 0
+ movq mm1, mm0                   ;3 p01 MM1 MM0      F 1        
+ pand mm1, mm6                   ;3 p01 MM1 MM6MM1   F 2
+ psllw mm0, 8                    ;4 p1  MM0 MM0      F  0
+ movq mm2, [edi + ecx]           ;4 p2  MM2 EDIECX   f 0
+ psubsw mm0, mm2                 ;3 p01 MM0 MM2MM0   f 1
+ pcmpgtw mm2, mm0                ;3 p01 MM2 MM0MM2   f 2
+ pand mm2, mm7                   ;3 p01 MM2 MM7MM2   f  0
+ paddsw mm0, mm2                 ;3 p01 MM0 MM2MM0   f  1
+ movq [edi + ecx], mm0           ;4 p3      EDIECX   F 0
+                                 ;0 p4      MM0      F 0
+ psrlw mm0, 7                    ;4 p1  MM0 MM0      F 1
+ por mm1, mm0                    ;3 p01 MM1 MM0MM1   F 2
+ movq [esi + ecx], mm1           ;4 p3      ESIECX   F  0
+                                 ;0 p4      MM1      F  0
+ add ecx, byte 8                 ;3 p01 ECX ECX      f 0
+  jnc Decomb2Loop                ;2 p1      FLAG     f 1
 
- ; 8 0 3 2 2 2 -> exec 6 cyc
- ; deco 5 cyc
+ ; 8 0 3 2 2 2 ->
+ ; exe 5.5 
+ ; RAT 5.6...
+ ; Ret 6
+ ; Deco 7 
 
 
 

Modified: trunk/2010/2_cryp_a.h
==============================================================================
--- trunk/2010/2_cryp_a.h	(original)
+++ trunk/2010/2_cryp_a.h	Wed Jul  4 10:42:04 2007
@@ -8,4 +8,6 @@ void VSmooth2RGB1555(int, int, int);
 void Decomb1(int, int, int);
 void Decomb2(int, int, int);
 
+void SetDecombInc(int);
+
 #endif

Modified: trunk/2010/2_nag_a.asm
==============================================================================
--- trunk/2010/2_nag_a.asm	(original)
+++ trunk/2010/2_nag_a.asm	Wed Jul  4 10:42:04 2007
@@ -70,24 +70,26 @@ _nagraCorr__Fiiiii:
 
 align16
 MMXloop:
- psubusb mm2, mm1            ; p01wMM2rMM1MM2   0
- psubusb mm1, mm0            ; p01wMM1rMM0MM1   1
- por mm2, mm1                ; p01wMM2rMM1MM2   0
- movq mm0, [esp + esi + 8]   ; p2 wMM0rESPESI   1
- paddusb mm2, mm6            ; p01wMM2rMM6MM2   1
- movq mm4, mm2               ; p01wMM4rMM2      0
- punpcklbw mm2, mm3          ; p1 wMM2rMM3MM2   1
- punpckhbw mm4, mm3          ; p1 wMM4rMM3MM4  (1)
- paddusw mm5, mm2            ; p01wMM5rMM2MM5   1
- paddusw mm5, mm4            ; p01wMM5rMM4MM5  (1)
- movq mm2, mm0               ; p01wMM2rMM0      0
- movq mm1, [esp + edi + 8]   ; p2 wMM1rESPEDI   2
- add esp, byte 8             ; p01wESPrESP      1
-  jnc MMXloop                ; p1     rFLAG
-  ; 5+ cyc deco
+;int3
+ psubusb mm2, mm1            ; 3p01wMM2rMM1MM2 FD0  
+ psubusb mm1, mm0            ; 3p01wMM1rMM0MM1 FD1  
+ por mm2, mm1                ; 3p01wMM2rMM1MM2 FD2  
+ movq mm0, [esp + esi + 8]   ; 5p2 wMM0rESPESI F D0  
+ paddusb mm2, mm6            ; 3p01wMM2rMM6MM2 fF D0 
+ movq mm4, mm2               ; 3p01wMM4rMM2     F D1
+ punpcklbw mm2, mm3          ; 3p1 wMM2rMM3MM2  F D2
+ punpckhbw mm4, mm3          ; 3p1 wMM4rMM3MM4  F  D0
+ paddusw mm5, mm2            ; 3p01wMM5rMM2MM5  F  D1
+ paddusw mm5, mm4            ; 3p01wMM5rMM4MM5  fF  D0
+ movq mm2, mm0               ; 3p01wMM2rMM0      F  D1
+ movq mm1, [esp + edi + 8]   ; 5p2 wMM1rESPEDI   F  D2
+ add esp, byte 8             ; 3p01wESPrESP      F   D0
+  jnc MMXloop                ; 2p1     rFLAG     F   D1
+  ; 6 cyc deco
   ; 5- cyc rat
-  ; 6 cyc exec (0/1 satur)
-
+  ; 6 cyc exec (0/1 satur) 9 0 3 2 0 0
+  ; 5 cyc ret
+  ; -> 6 cyc
 
  psubusb mm2, mm1            
  psubusb mm1, mm0            

Modified: trunk/2010/2_vc.h
==============================================================================
--- trunk/2010/2_vc.h	(original)
+++ trunk/2010/2_vc.h	Wed Jul  4 10:42:04 2007
@@ -3,5 +3,20 @@
 #define n2_vc_h
 
 void vc_decrypt(void);
+void saveVCCache(void);
+
+struct CutPCache{
+    byte *pbCCutP;
+    CutPCache *pNext;
+    CutPCache *pPrev;
+    int iScore;
+    int nUsed;
+    int nbCCutP;
+};
+
+struct CutPLut{
+    CutPCache *pCutPCache;
+    CutPLut *pNext;
+};
 
 #endif

Modified: trunk/2010/2_vc_a.asm
==============================================================================
--- trunk/2010/2_vc_a.asm	(original)
+++ trunk/2010/2_vc_a.asm	Wed Jul  4 10:42:04 2007
@@ -198,26 +198,32 @@ _vc_corr_mmx__Fiiiiii:
 
 align16
 MMXLoop:
- movq mm2, [ecx + esi     ]  ;0p2 wMM0rECXESI   1
- psubusb mm0, mm1            ; p01wMM0rMM1MM0   0
- psubusb mm1, mm2            ; p01wMM1rMM2MM1   0
- movq mm3, [ecx + edi + 8 ]  ;0p2 wMM3rECXEDI   1
- por mm1, mm0                ; p01wMM1rMM0MM1   0
- movq mm0, [ecx + esi + 8 ]  ; p2 wMM0rECXESI   1
- psrlq mm3, mm6              ;0p0 wMM3rMM6      1
- movq mm2, mm1               ; p01wMM2rMM1      0
- punpcklbw mm1, mm4          ; p0 wMM1rMM4MM1   1
- punpckhbw mm2, mm4          ;0p0 wMM2rMM4MM2   10  
- paddusw mm7, mm1            ; p01wMM7rMM1MM7   1
- paddusw mm7, mm2            ; p01wMM7rMM2MM7   10
- movq mm1, [ecx + edi + 16]  ;0p2 wMM1rECXEDI   2
- psllq mm1, mm5              ; p0 wMM1rMM5      1
- por mm1, mm3                ; p01wMM1rMM3MM1   1?
- add ecx, byte 8             ;0p01wECXrECX      1
-  jnc MMXLoop                ; p1     rFLAG
-; 8  4 1 4    7 cyc asy
-; 6+ cyc deco
-; 7 cyc rat
+ movq mm2, [ecx + esi     ]  ;4p2 wMM2rECXESI FD0            FD0
+; db 0x3E
+; dd 0x31946F0F
+; dd 0x00000000
+; db 0x3E
+
+ psubusb mm0, mm1            ;3p01wMM0rMM1MM0 FD1            FD1
+ psubusb mm1, mm2            ;3p01wMM1rMM2MM1 FD2            FD2
+ movq mm3, [ecx + edi + 8 ]  ;5p2 wMM3rECXEDI F D0            FD0
+ por mm1, mm0                ;3p01wMM1rMM0MM1 fF D0           FD1
+ movq mm0, [ecx + esi + 8 ]  ;5p2 wMM0rECXESI  F D1           FD2
+ psrlq mm3, mm6              ;3p1 wMM3rMM6     F D2           F D0
+ movq mm2, mm1               ;3p01wMM2rMM1     F  D0           F D0
+ punpcklbw mm1, mm4          ;3p1 wMM1rMM4MM1  fF  D0          F D1
+ punpckhbw mm2, mm4          ;3p1 wMM2rMM4MM2   F  D1          F D2
+ paddusw mm7, mm1            ;3p01wMM7rMM1MM7r  F  D2          F  D0
+ paddusw mm7, mm2            ;3p01wMM7rMM2MM7r  F   D0         F  D1
+ movq mm1, [ecx + edi + 16]  ;5p2 wMM1rECXEDIr  fF   D0        fF  D0
+ psllq mm1, mm5              ;3p1 wMM1rMM5       F   D1         F  D1
+ por mm1, mm3                ;3p01wMM1rMM3MM1    F   D2         F  D2
+ add ecx, byte 8             ;3p01wECXrECX       F    D0        F   D0
+  jnc MMXLoop                ;2p1     rFLAG      F    D1        F   D1
+; 6.5 cyc exe 8 0 5 4 0 0
+; 6.7 cyc RAT
+; 8->7 cyc Deco
+; 6 cyc Ret
 
 skipMMX1:
 
@@ -262,23 +268,32 @@ skipMMX1:
 
 align16
 MMXLoop2:
- movq mm2, [ecx + esi     ]  ;0p2 wMM0rECXESI   1
- psubusb mm0, mm1            ; p01wMM0rMM1MM0   0
- psubusb mm1, mm2            ; p01wMM1rMM2MM1   0
- movq mm3, [ecx + edi + 8 ]  ;0p2 wMM3rECXEDI   1
- por mm1, mm0                ; p01wMM1rMM0MM1   0
- movq mm0, [ecx + esi + 8 ]  ; p2 wMM0rECXESI   1
- psrlq mm3, mm6              ;0p0 wMM3rMM6      1
- movq mm2, mm1               ; p01wMM2rMM1      0
- punpcklbw mm1, mm4          ; p0 wMM1rMM4MM1   1
- punpckhbw mm2, mm4          ;0p0 wMM2rMM4MM2   10  
- paddusw mm7, mm1            ; p01wMM7rMM1MM7   1
- paddusw mm7, mm2            ; p01wMM7rMM2MM7   10
- movq mm1, [ecx + edi + 16]  ;0p2 wMM1rECXEDI   2
- psllq mm1, mm5              ; p0 wMM1rMM5      1
- por mm1, mm3                ; p01wMM1rMM3MM1   1?
- add ecx, byte 8             ;0p01wECXrECX      1
-  jnc MMXLoop2               ; p1     rFLAG
+ movq mm2, [ecx + esi     ]  ;4p2 wMM2rECXESI FD0            FD0
+; db 0x3E
+; dd 0x31946F0F
+; dd 0x00000000
+; db 0x3E
+
+ psubusb mm0, mm1            ;3p01wMM0rMM1MM0 FD1            FD1
+ psubusb mm1, mm2            ;3p01wMM1rMM2MM1 FD2            FD2
+ movq mm3, [ecx + edi + 8 ]  ;5p2 wMM3rECXEDI F D0            FD0
+ por mm1, mm0                ;3p01wMM1rMM0MM1 fF D0           FD1
+ movq mm0, [ecx + esi + 8 ]  ;5p2 wMM0rECXESI  F D1           FD2
+ psrlq mm3, mm6              ;3p1 wMM3rMM6     F D2           F D0
+ movq mm2, mm1               ;3p01wMM2rMM1     F  D0           F D0
+ punpcklbw mm1, mm4          ;3p1 wMM1rMM4MM1  fF  D0          F D1
+ punpckhbw mm2, mm4          ;3p1 wMM2rMM4MM2   F  D1          F D2
+ paddusw mm7, mm1            ;3p01wMM7rMM1MM7r  F  D2          F  D0
+ paddusw mm7, mm2            ;3p01wMM7rMM2MM7r  F   D0         F  D1
+ movq mm1, [ecx + edi + 16]  ;5p2 wMM1rECXEDIr  fF   D0        fF  D0
+ psllq mm1, mm5              ;3p1 wMM1rMM5       F   D1         F  D1
+ por mm1, mm3                ;3p01wMM1rMM3MM1    F   D2         F  D2
+ add ecx, byte 8             ;3p01wECXrECX       F    D0        F   D0
+  jnc MMXLoop2               ;2p1     rFLAG      F    D1        F   D1
+; 6.5 cyc exe 8 0 5 4 0 0
+; 6.7 cyc RAT
+; 8->7 cyc Deco
+; 6 cyc Ret
 
 skipMMX2:
 



More information about the Mndiff-dev mailing list