[v2] oleaut32: Add ARM support to DispCallFunc().
André Hentschel
nerv at dawncrow.de
Sat Oct 28 06:48:27 CDT 2017
Am 26.10.2017 um 06:39 schrieb Donna Whisnant:
> Adds ARM ABI support to DispCallFunc() to allow IDispatch invoke calls
> to succeed on ARM platforms. This change specifically targets only
> 32-bit little-endian (ARMEL) platform CPUs. It's believed to likely be
> compatible with big-endian (ARMEB) platforms, but testing for that
> platform should be completed before enabling.
>
> Tested on Raspbian Stretch 2017-09-07 RPi image using a Qemu systemd
> container to compile and run it on an x86-64 Host.. When running on
> Raspberry Pi hardware, a 3G/1G split kernel needs to be used for Wine
> to function.
Hi,
thanks, but it seems I missed minor things last time:
> + args = heap_alloc(sizeof(VARIANT) * cActuals + sizeof(DWORD) * 4 );
Try to be consistent with the spaces for each function call.
> + case VT_R4: /* these must be 4-byte aligned, and put in 's' regs or stack, as they are single-floats */
> + if (scount < 16)
> + regs.sd.s[scount++] = V_R4(arg);
> + else
> + args[argspos++] = V_UI4(arg);
> + break;
...
> + case VT_VARIANT:
> + /* 8-byte align 'r' and/or stack: */
> + if (rcount < 3)
> + {
> + rcount += (rcount % 2);
> + }
> + else
> + {
> + rcount = 4;
> + argspos += (argspos % 2);
> + }
...
> + case VT_BOOL: /* VT_BOOL is 16-bit but BOOL is 32-bit, needs to be extended */
> + if (rcount < 4)
> + regs.r[rcount++] = V_BOOL(arg);
> + else
> + args[argspos++] = V_BOOL(arg);
> + break;
> + default:
> + if (rcount < 4)
> + regs.r[rcount++] = V_UI4(arg);
> + else
> + args[argspos++] = V_UI4(arg);
> + break;
> + }
Maybe one of those is not really conistent wrt curly brackets
> + case VT_CY:
> + V_UI8(pvargResult) = call_method(func, argspos, args, (DWORD*)®s );
> + break;
> + default:
> + V_UI4(pvargResult) = call_method( func, argspos, args, (DWORD*)®s );
> + break;
space issue again, maybe somewhere else too?
Otherwise I'm quite tempted to sign it off
More information about the wine-devel
mailing list