/// <summary> /// Map to .NET register info for the given Fantom local variables. /// </summary> internal static Reg[] initRegs(FPod pod, bool isStatic, FMethodVar[] vars) { Reg[] regs = new Reg[isStatic ? vars.Length : vars.Length+1]; int nindex = 0; for (int i=0; i<regs.Length; ++i) { Reg r = new Reg(); if (i == 0 && !isStatic) { // this pointer r.stackType = FTypeRef.OBJ; r.nindex = nindex; ++nindex; } else { FTypeRef typeRef = pod.typeRef(vars[isStatic ? i : i - 1].type); r.stackType = typeRef.stackType; r.nindex = nindex; nindex += 1; //nindex += typeRef.isWide() ? 2 : 1; } regs[i] = r; } return regs; }