Alexandre Julliard : rpcrt4: Support delegated proxies on ARM.

Alexandre Julliard julliard at winehq.org
Tue Nov 13 15:01:57 CST 2018


Module: wine
Branch: master
Commit: e24f2f3b90937f00bb011c05af98f63d9934b920
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=e24f2f3b90937f00bb011c05af98f63d9934b920

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue Nov 13 16:08:06 2018 +0100

rpcrt4: Support delegated proxies on ARM.

Signed-off-by: Alexandre Julliard <julliard at 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




More information about the wine-cvs mailing list