- fixed register allocation for vector arguments to script functions.

- handle 2D and 3D vectors in SetReturn.
This commit is contained in:
Christoph Oelckers 2016-10-29 13:42:37 +02:00
commit 4dc97a6ed0
3 changed files with 12 additions and 2 deletions

View file

@ -1808,10 +1808,14 @@ static void SetReturn(const VMRegisters &reg, VMFrame *frame, VMReturn *ret, VM_
assert(regnum + ((regtype & REGT_KONST) ? 2u : 0u) < frame->NumRegF);
src = &reg.f[regnum];
}
if (regtype & REGT_MULTIREG)
if (regtype & REGT_MULTIREG3)
{
ret->SetVector((double *)src);
}
else if (regtype & REGT_MULTIREG2)
{
ret->SetVector2((double *)src);
}
else
{
ret->SetFloat(*(double *)src);