Module: wine Branch: master Commit: e24f2f3b90937f00bb011c05af98f63d9934b920 URL: https://source.winehq.org/git/wine.git/?a=commit;h=e24f2f3b90937f00bb011c05a...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Nov 13 16:08:06 2018 +0100
rpcrt4: Support delegated proxies on ARM.
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/rpcrt4/cstub.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)
diff --git a/dlls/rpcrt4/cstub.c b/dlls/rpcrt4/cstub.c index 77b0faf..b85d411 100644 --- a/dlls/rpcrt4/cstub.c +++ b/dlls/rpcrt4/cstub.c @@ -167,6 +167,25 @@ typedef struct
static const BYTE opcodes[16] = { 0x48, 0x8b, 0x49, 0x20, 0x48, 0x8b, 0x01, 0xff, 0xa0, 0, 0, 0, 0, 0x48, 0x8d, 0x36 }; +#elif defined(__arm__) + +static const DWORD opcodes[] = +{ + 0xe52d4004, /* push {r4} */ + 0xe5900010, /* ldr r0, [r0, #16] */ + 0xe5904000, /* ldr r4, [r0] */ + 0xe59fc008, /* ldr ip, [pc, #8] */ + 0xe08cc004, /* add ip, ip, r4 */ + 0xe49d4004, /* pop {r4} */ + 0xe59cf000 /* ldr pc, [ip] */ +}; + +typedef struct +{ + DWORD opcodes[ARRAY_SIZE(opcodes)]; + DWORD offset; +} vtbl_method_t; + #else
#warning You must implement delegated proxies/stubs for your CPU