public AstNodeStm Vdet() { var v1 = Vec(Vs, VType.VFloat, 2); var v2 = Vec(Vt, VType.VFloat, 2); return(CelVd.Set(v1[0] * v2[1] - v1[1] * v2[0], _pc)); }
public AstNodeStm Vhdp() { var vectorSize = (uint)OneTwo; return(CelVd.Set(_Aggregate(0f, (aggregate, index) => aggregate + VecVt[index] * ((index == vectorSize - 1) ? 1f : VecVs[index]) ), _pc)); }
public AstNodeStm Mfv() => _ast.AssignGPR_F(Rt, CelVd.Get());
public AstNodeStm Mtv() => CelVd.Set(_ast.GPR_f(Rt), _pc);
public AstNodeStm Vavg() => CelVd.Set(_Aggregate(0f, (value, index) => value + VecVs[index]) / (float)OneTwo, _pc);
public AstNodeStm Vfad() => CelVd.Set(_Aggregate(0f, (value, index) => value + VecVs[index]), _pc);
public AstNodeStm Vdot() => CelVd.Set( _Aggregate(0f, OneTwo, (aggregated, index) => aggregated + (VecVs[index] * VecVt[index])), _pc);
public AstNodeStm Vcst() => CelVd.Set(VfpuConstants.GetConstantValueByIndex((int)_instruction.Imm5).Value, _pc);