mirror of https://github.com/red-prig/fpPS4.git
Update pssl parser
This commit is contained in:
parent
172817ae9c
commit
f70d0e2ed3
|
@ -723,9 +723,98 @@ const
|
|||
BUFFER_STORE_DWORDX3 =$1F;
|
||||
|
||||
//MIMG
|
||||
IMAGE_LOAD_MIP=1;
|
||||
IMAGE_STORE =8;
|
||||
IMAGE_SAMPLE =$20;
|
||||
IMAGE_LOAD =$00;
|
||||
IMAGE_LOAD_MIP =$01;
|
||||
IMAGE_LOAD_PCK =$02;
|
||||
IMAGE_LOAD_PCK_SGN =$03;
|
||||
IMAGE_LOAD_MIP_PCK =$04;
|
||||
IMAGE_LOAD_MIP_PCK_SGN=$05;
|
||||
IMAGE_STORE =$08;
|
||||
IMAGE_STORE_MIP =$09;
|
||||
IMAGE_STORE_PCK =$0A;
|
||||
IMAGE_STORE_MIP_PCK =$0B;
|
||||
IMAGE_GET_RESINFO =$0E;
|
||||
IMAGE_ATOMIC_SWAP =$0F;
|
||||
IMAGE_ATOMIC_CMPSWAP =$10;
|
||||
IMAGE_ATOMIC_ADD =$11;
|
||||
IMAGE_ATOMIC_SUB =$12;
|
||||
IMAGE_ATOMIC_SMIN =$14;
|
||||
IMAGE_ATOMIC_UMIN =$15;
|
||||
IMAGE_ATOMIC_SMAX =$16;
|
||||
IMAGE_ATOMIC_UMAX =$17;
|
||||
IMAGE_ATOMIC_AND =$18;
|
||||
IMAGE_ATOMIC_OR =$19;
|
||||
IMAGE_ATOMIC_XOR =$1A;
|
||||
IMAGE_ATOMIC_INC =$1B;
|
||||
IMAGE_ATOMIC_DEC =$1C;
|
||||
IMAGE_ATOMIC_FCMPSWAP =$1D;
|
||||
IMAGE_ATOMIC_FMIN =$1E;
|
||||
IMAGE_ATOMIC_FMAX =$1F;
|
||||
IMAGE_SAMPLE =$20;
|
||||
IMAGE_SAMPLE_CL =$21;
|
||||
IMAGE_SAMPLE_D =$22;
|
||||
IMAGE_SAMPLE_D_CL =$23;
|
||||
IMAGE_SAMPLE_L =$24;
|
||||
IMAGE_SAMPLE_B =$25;
|
||||
IMAGE_SAMPLE_B_CL =$26;
|
||||
IMAGE_SAMPLE_LZ =$27;
|
||||
IMAGE_SAMPLE_C =$28;
|
||||
IMAGE_SAMPLE_C_CL =$29;
|
||||
IMAGE_SAMPLE_C_D =$2A;
|
||||
IMAGE_SAMPLE_C_D_CL =$2B;
|
||||
IMAGE_SAMPLE_C_L =$2C;
|
||||
IMAGE_SAMPLE_C_B =$2D;
|
||||
IMAGE_SAMPLE_C_B_CL =$2E;
|
||||
IMAGE_SAMPLE_C_LZ =$2F;
|
||||
IMAGE_SAMPLE_O =$30;
|
||||
IMAGE_SAMPLE_CL_O =$31;
|
||||
IMAGE_SAMPLE_D_O =$32;
|
||||
IMAGE_SAMPLE_D_CL_O =$33;
|
||||
IMAGE_SAMPLE_L_O =$34;
|
||||
IMAGE_SAMPLE_B_O =$35;
|
||||
IMAGE_SAMPLE_B_CL_O =$36;
|
||||
IMAGE_SAMPLE_LZ_O =$37;
|
||||
IMAGE_SAMPLE_C_O =$38;
|
||||
IMAGE_SAMPLE_C_CL_O =$39;
|
||||
IMAGE_SAMPLE_C_D_O =$3A;
|
||||
IMAGE_SAMPLE_C_D_CL_O =$3B;
|
||||
IMAGE_SAMPLE_C_L_O =$3C;
|
||||
IMAGE_SAMPLE_C_B_O =$3D;
|
||||
IMAGE_SAMPLE_C_B_CL_O =$3E;
|
||||
IMAGE_SAMPLE_C_LZ_O =$3F;
|
||||
IMAGE_GATHER4 =$40;
|
||||
IMAGE_GATHER4_CL =$41;
|
||||
IMAGE_GATHER4_L =$42;
|
||||
IMAGE_GATHER4_B =$43;
|
||||
IMAGE_GATHER4_B_CL =$44;
|
||||
IMAGE_GATHER4_LZ =$45;
|
||||
IMAGE_GATHER4_C =$46;
|
||||
IMAGE_GATHER4_C_CL =$47;
|
||||
IMAGE_GATHER4_C_L =$4C;
|
||||
IMAGE_GATHER4_C_B =$4D;
|
||||
IMAGE_GATHER4_C_B_CL =$4E;
|
||||
IMAGE_GATHER4_C_LZ =$4F;
|
||||
IMAGE_GATHER4_O =$50;
|
||||
IMAGE_GATHER4_CL_O =$51;
|
||||
IMAGE_GATHER4_L_O =$54;
|
||||
IMAGE_GATHER4_B_O =$55;
|
||||
IMAGE_GATHER4_B_CL_O =$56;
|
||||
IMAGE_GATHER4_LZ_O =$57;
|
||||
IMAGE_GATHER4_C_O =$58;
|
||||
IMAGE_GATHER4_C_CL_O =$59;
|
||||
IMAGE_GATHER4_C_L_O =$5C;
|
||||
IMAGE_GATHER4_C_B_O =$5D;
|
||||
IMAGE_GATHER4_C_B_CL_O=$5E;
|
||||
IMAGE_GATHER4_C_LZ_O =$5F;
|
||||
IMAGE_GET_LOD =$60;
|
||||
IMAGE_SAMPLE_CD =$68;
|
||||
IMAGE_SAMPLE_CD_CL =$69;
|
||||
IMAGE_SAMPLE_C_CD =$6A;
|
||||
IMAGE_SAMPLE_C_CD_CL =$6B;
|
||||
IMAGE_SAMPLE_CD_O =$6C;
|
||||
IMAGE_SAMPLE_CD_CL_O =$6D;
|
||||
IMAGE_SAMPLE_C_CD_O =$6E;
|
||||
IMAGE_SAMPLE_C_CD_CL_O=$6F;
|
||||
|
||||
type
|
||||
TSOP2=bitpacked record
|
||||
|
@ -2608,22 +2697,141 @@ end;
|
|||
procedure _print_MIMG(Var SPI:TSPI);
|
||||
begin
|
||||
Case SPI.MIMG.OP of
|
||||
IMAGE_LOAD_MIP:Write('IMAGE_LOAD_MIP');
|
||||
IMAGE_STORE :Write('IMAGE_STORE');
|
||||
IMAGE_SAMPLE :Write('IMAGE_SAMPLE');
|
||||
|
||||
IMAGE_LOAD :Write('IMAGE_LOAD');
|
||||
IMAGE_LOAD_MIP :Write('IMAGE_LOAD_MIP');
|
||||
IMAGE_LOAD_PCK :Write('IMAGE_LOAD_PCK');
|
||||
IMAGE_LOAD_PCK_SGN :Write('IMAGE_LOAD_PCK_SGN');
|
||||
IMAGE_LOAD_MIP_PCK :Write('IMAGE_LOAD_MIP_PCK');
|
||||
IMAGE_LOAD_MIP_PCK_SGN:Write('IMAGE_LOAD_MIP_PCK_SGN');
|
||||
IMAGE_STORE :Write('IMAGE_STORE');
|
||||
IMAGE_STORE_MIP :Write('IMAGE_STORE_MIP');
|
||||
IMAGE_STORE_PCK :Write('IMAGE_STORE_PCK');
|
||||
IMAGE_STORE_MIP_PCK :Write('IMAGE_STORE_MIP_PCK');
|
||||
IMAGE_GET_RESINFO :Write('IMAGE_GET_RESINFO');
|
||||
IMAGE_ATOMIC_SWAP :Write('IMAGE_ATOMIC_SWAP');
|
||||
IMAGE_ATOMIC_CMPSWAP :Write('IMAGE_ATOMIC_CMPSWAP');
|
||||
IMAGE_ATOMIC_ADD :Write('IMAGE_ATOMIC_ADD');
|
||||
IMAGE_ATOMIC_SUB :Write('IMAGE_ATOMIC_SUB');
|
||||
IMAGE_ATOMIC_SMIN :Write('IMAGE_ATOMIC_SMIN');
|
||||
IMAGE_ATOMIC_UMIN :Write('IMAGE_ATOMIC_UMIN');
|
||||
IMAGE_ATOMIC_SMAX :Write('IMAGE_ATOMIC_SMAX');
|
||||
IMAGE_ATOMIC_UMAX :Write('IMAGE_ATOMIC_UMAX');
|
||||
IMAGE_ATOMIC_AND :Write('IMAGE_ATOMIC_AND');
|
||||
IMAGE_ATOMIC_OR :Write('IMAGE_ATOMIC_OR');
|
||||
IMAGE_ATOMIC_XOR :Write('IMAGE_ATOMIC_XOR');
|
||||
IMAGE_ATOMIC_INC :Write('IMAGE_ATOMIC_INC');
|
||||
IMAGE_ATOMIC_DEC :Write('IMAGE_ATOMIC_DEC');
|
||||
IMAGE_ATOMIC_FCMPSWAP :Write('IMAGE_ATOMIC_FCMPSWAP');
|
||||
IMAGE_ATOMIC_FMIN :Write('IMAGE_ATOMIC_FMIN');
|
||||
IMAGE_ATOMIC_FMAX :Write('IMAGE_ATOMIC_FMAX');
|
||||
IMAGE_SAMPLE :Write('IMAGE_SAMPLE');
|
||||
IMAGE_SAMPLE_CL :Write('IMAGE_SAMPLE_CL');
|
||||
IMAGE_SAMPLE_D :Write('IMAGE_SAMPLE_D');
|
||||
IMAGE_SAMPLE_D_CL :Write('IMAGE_SAMPLE_D_CL');
|
||||
IMAGE_SAMPLE_L :Write('IMAGE_SAMPLE_L');
|
||||
IMAGE_SAMPLE_B :Write('IMAGE_SAMPLE_B');
|
||||
IMAGE_SAMPLE_B_CL :Write('IMAGE_SAMPLE_B_CL');
|
||||
IMAGE_SAMPLE_LZ :Write('IMAGE_SAMPLE_LZ');
|
||||
IMAGE_SAMPLE_C :Write('IMAGE_SAMPLE_C');
|
||||
IMAGE_SAMPLE_C_CL :Write('IMAGE_SAMPLE_C_CL');
|
||||
IMAGE_SAMPLE_C_D :Write('IMAGE_SAMPLE_C_D');
|
||||
IMAGE_SAMPLE_C_D_CL :Write('IMAGE_SAMPLE_C_D_CL');
|
||||
IMAGE_SAMPLE_C_L :Write('IMAGE_SAMPLE_C_L');
|
||||
IMAGE_SAMPLE_C_B :Write('IMAGE_SAMPLE_C_B');
|
||||
IMAGE_SAMPLE_C_B_CL :Write('IMAGE_SAMPLE_C_B_CL');
|
||||
IMAGE_SAMPLE_C_LZ :Write('IMAGE_SAMPLE_C_LZ');
|
||||
IMAGE_SAMPLE_O :Write('IMAGE_SAMPLE_O');
|
||||
IMAGE_SAMPLE_CL_O :Write('IMAGE_SAMPLE_CL_O');
|
||||
IMAGE_SAMPLE_D_O :Write('IMAGE_SAMPLE_D_O');
|
||||
IMAGE_SAMPLE_D_CL_O :Write('IMAGE_SAMPLE_D_CL_O');
|
||||
IMAGE_SAMPLE_L_O :Write('IMAGE_SAMPLE_L_O');
|
||||
IMAGE_SAMPLE_B_O :Write('IMAGE_SAMPLE_B_O');
|
||||
IMAGE_SAMPLE_B_CL_O :Write('IMAGE_SAMPLE_B_CL_O');
|
||||
IMAGE_SAMPLE_LZ_O :Write('IMAGE_SAMPLE_LZ_O');
|
||||
IMAGE_SAMPLE_C_O :Write('IMAGE_SAMPLE_C_O');
|
||||
IMAGE_SAMPLE_C_CL_O :Write('IMAGE_SAMPLE_C_CL_O');
|
||||
IMAGE_SAMPLE_C_D_O :Write('IMAGE_SAMPLE_C_D_O');
|
||||
IMAGE_SAMPLE_C_D_CL_O :Write('IMAGE_SAMPLE_C_D_CL_O');
|
||||
IMAGE_SAMPLE_C_L_O :Write('IMAGE_SAMPLE_C_L_O');
|
||||
IMAGE_SAMPLE_C_B_O :Write('IMAGE_SAMPLE_C_B_O');
|
||||
IMAGE_SAMPLE_C_B_CL_O :Write('IMAGE_SAMPLE_C_B_CL_O');
|
||||
IMAGE_SAMPLE_C_LZ_O :Write('IMAGE_SAMPLE_C_LZ_O');
|
||||
IMAGE_GATHER4 :Write('IMAGE_GATHER4');
|
||||
IMAGE_GATHER4_CL :Write('IMAGE_GATHER4_CL');
|
||||
IMAGE_GATHER4_L :Write('IMAGE_GATHER4_L');
|
||||
IMAGE_GATHER4_B :Write('IMAGE_GATHER4_B');
|
||||
IMAGE_GATHER4_B_CL :Write('IMAGE_GATHER4_B_CL');
|
||||
IMAGE_GATHER4_LZ :Write('IMAGE_GATHER4_LZ');
|
||||
IMAGE_GATHER4_C :Write('IMAGE_GATHER4_C');
|
||||
IMAGE_GATHER4_C_CL :Write('IMAGE_GATHER4_C_CL');
|
||||
IMAGE_GATHER4_C_L :Write('IMAGE_GATHER4_C_L');
|
||||
IMAGE_GATHER4_C_B :Write('IMAGE_GATHER4_C_B');
|
||||
IMAGE_GATHER4_C_B_CL :Write('IMAGE_GATHER4_C_B_CL');
|
||||
IMAGE_GATHER4_C_LZ :Write('IMAGE_GATHER4_C_LZ');
|
||||
IMAGE_GATHER4_O :Write('IMAGE_GATHER4_O');
|
||||
IMAGE_GATHER4_CL_O :Write('IMAGE_GATHER4_CL_O');
|
||||
IMAGE_GATHER4_L_O :Write('IMAGE_GATHER4_L_O');
|
||||
IMAGE_GATHER4_B_O :Write('IMAGE_GATHER4_B_O');
|
||||
IMAGE_GATHER4_B_CL_O :Write('IMAGE_GATHER4_B_CL_O');
|
||||
IMAGE_GATHER4_LZ_O :Write('IMAGE_GATHER4_LZ_O');
|
||||
IMAGE_GATHER4_C_O :Write('IMAGE_GATHER4_C_O');
|
||||
IMAGE_GATHER4_C_CL_O :Write('IMAGE_GATHER4_C_CL_O');
|
||||
IMAGE_GATHER4_C_L_O :Write('IMAGE_GATHER4_C_L_O');
|
||||
IMAGE_GATHER4_C_B_O :Write('IMAGE_GATHER4_C_B_O');
|
||||
IMAGE_GATHER4_C_B_CL_O:Write('IMAGE_GATHER4_C_B_CL_O');
|
||||
IMAGE_GATHER4_C_LZ_O :Write('IMAGE_GATHER4_C_LZ_O');
|
||||
IMAGE_GET_LOD :Write('IMAGE_GET_LOD');
|
||||
IMAGE_SAMPLE_CD :Write('IMAGE_SAMPLE_CD');
|
||||
IMAGE_SAMPLE_CD_CL :Write('IMAGE_SAMPLE_CD_CL');
|
||||
IMAGE_SAMPLE_C_CD :Write('IMAGE_SAMPLE_C_CD');
|
||||
IMAGE_SAMPLE_C_CD_CL :Write('IMAGE_SAMPLE_C_CD_CL');
|
||||
IMAGE_SAMPLE_CD_O :Write('IMAGE_SAMPLE_CD_O');
|
||||
IMAGE_SAMPLE_CD_CL_O :Write('IMAGE_SAMPLE_CD_CL_O');
|
||||
IMAGE_SAMPLE_C_CD_O :Write('IMAGE_SAMPLE_C_CD_O');
|
||||
IMAGE_SAMPLE_C_CD_CL_O:Write('IMAGE_SAMPLE_C_CD_CL_O');
|
||||
|
||||
else
|
||||
Write('MIMG?',SPI.MIMG.OP);
|
||||
end;
|
||||
Write(' ');
|
||||
|
||||
_print_vdst8(SPI.MIMG.VDATA);
|
||||
Write(', ');
|
||||
_print_vdst8(SPI.MIMG.VADDR);
|
||||
Write(', ');
|
||||
Case PopCnt(SPI.MIMG.DMASK) of
|
||||
2:begin
|
||||
Write('v[',SPI.MIMG.VDATA,':',SPI.MIMG.VDATA+1,']');
|
||||
Write(', ');
|
||||
Write('v[',SPI.MIMG.VADDR,':',SPI.MIMG.VADDR+1,']');
|
||||
end;
|
||||
3:begin
|
||||
Write('v[',SPI.MIMG.VDATA,':',SPI.MIMG.VDATA+2,']');
|
||||
Write(', ');
|
||||
Write('v[',SPI.MIMG.VADDR,':',SPI.MIMG.VADDR+2,']');
|
||||
end;
|
||||
4:begin
|
||||
Write('v[',SPI.MIMG.VDATA,':',SPI.MIMG.VDATA+3,']');
|
||||
Write(', ');
|
||||
Write('v[',SPI.MIMG.VADDR,':',SPI.MIMG.VADDR+3,']');
|
||||
end;
|
||||
else
|
||||
begin
|
||||
_print_vdst8(SPI.MIMG.VDATA);
|
||||
Write(', ');
|
||||
_print_vdst8(SPI.MIMG.VADDR);
|
||||
end;
|
||||
end;
|
||||
|
||||
Write('s[',SPI.MIMG.SRSRC*8,':',SPI.MIMG.SRSRC*8+7,']');
|
||||
Write(', ');
|
||||
Write('s[',SPI.MIMG.SSAMP*4,':',SPI.MIMG.SSAMP*4+3,']');
|
||||
Write('s[',SPI.MIMG.SRSRC*4,':',SPI.MIMG.SRSRC*4+7,']');
|
||||
|
||||
Case SPI.MIMG.OP of
|
||||
IMAGE_GATHER4..IMAGE_SAMPLE_C_CD_CL_O:
|
||||
begin
|
||||
Write(', ');
|
||||
Write('s[',SPI.MIMG.SSAMP*4,':',SPI.MIMG.SSAMP*4+3,']');
|
||||
end;
|
||||
end;
|
||||
|
||||
Write(' dmask:0x',HexStr(SPI.MIMG.DMASK,1));
|
||||
|
||||
Writeln;
|
||||
end;
|
||||
|
|
Loading…
Reference in New Issue