mirror of
https://github.com/red-prig/fpPS4.git
synced 2025-02-18 21:30:52 +00:00
VOP3a?263
This commit is contained in:
parent
80474a8cb6
commit
408f8e5429
@ -32,6 +32,7 @@ type
|
||||
procedure emit_V_SUBB_U32;
|
||||
|
||||
procedure emit_V_CNDMASK_B32;
|
||||
procedure emit_V_MUL_LEGACY_F32;
|
||||
procedure emit_V2_F32(OpId:DWORD);
|
||||
procedure emit_V_SUBREV_F32;
|
||||
procedure emit_V_CVT_PKRTZ_F16_F32;
|
||||
@ -233,6 +234,35 @@ begin
|
||||
OpSelect(dst,src[0],src[1],src[2]);
|
||||
end;
|
||||
|
||||
procedure TEmit_VOP3.emit_V_MUL_LEGACY_F32;
|
||||
Var
|
||||
dst:PsrRegSlot;
|
||||
src:array[0..1] of PsrRegNode;
|
||||
zero:PsrRegNode;
|
||||
cmp:PsrRegNode;
|
||||
mul:PsrRegNode;
|
||||
begin
|
||||
dst:=get_vdst8(FSPI.VOP3a.VDST);
|
||||
|
||||
src[0]:=fetch_ssrc9(FSPI.VOP3a.SRC0,dtFloat32);
|
||||
src[1]:=fetch_ssrc9(FSPI.VOP3a.SRC1,dtFloat32);
|
||||
|
||||
emit_src_abs_bit(@src,2);
|
||||
emit_src_neg_bit(@src,2);
|
||||
|
||||
zero:=NewReg_s(dtFloat32,0);
|
||||
cmp:=get_legacy_cmp(src[0],src[1],zero);
|
||||
|
||||
//
|
||||
mul:=NewReg(dtFloat32);
|
||||
_Op2(line,Op.OpFMul,mul,src[0],src[1]);
|
||||
|
||||
OpSelect(dst,mul,zero,cmp); //false,true,cond
|
||||
|
||||
emit_dst_omod_f(dst);
|
||||
emit_dst_clamp_f(dst);
|
||||
end;
|
||||
|
||||
procedure TEmit_VOP3.emit_V2_F32(OpId:DWORD);
|
||||
Var
|
||||
dst:PsrRegSlot;
|
||||
@ -1182,6 +1212,8 @@ begin
|
||||
256+V_MIN_F32:emit_V_MMX_F32(GlslOp.FMin);
|
||||
256+V_MAX_F32:emit_V_MMX_F32(GlslOp.FMax);
|
||||
|
||||
256+V_MUL_LEGACY_F32: emit_V_MUL_LEGACY_F32;
|
||||
|
||||
256+V_MUL_F32: emit_V2_F32(Op.OpFMul);
|
||||
|
||||
256+V_MUL_I32_I24: emit_V_MUL_I32_I24;
|
||||
|
Loading…
x
Reference in New Issue
Block a user