579 lines
11 KiB
ArmAsm
579 lines
11 KiB
ArmAsm
/*++
|
|
|
|
Copyright c 1994 Microsoft Corporation. All rights reserved.
|
|
|
|
Module Name:
|
|
forward.s
|
|
|
|
Abstract:
|
|
This module implements the proxy forwarding functions.
|
|
|
|
Author:
|
|
ShannonC 26-Oct-94
|
|
|
|
Environment:
|
|
|
|
Any mode.
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#include "ksia64.h"
|
|
.file "forward.s"
|
|
/*++
|
|
|
|
VOID
|
|
NdrProxyForwardingFunction<nnn>(...)
|
|
|
|
Routine Description:
|
|
|
|
This function forwards a call to the proxy for the base interface.
|
|
|
|
Arguments:
|
|
|
|
This [a0] - Points to an interface proxy.
|
|
|
|
Return Value:
|
|
|
|
None.
|
|
|
|
--*/
|
|
|
|
|
|
// here is what a forwarder looks like
|
|
// we must:
|
|
// change the "this" pointer in [esp+4] to point to the delegated object
|
|
// fetch the correct entry from the vtable
|
|
// call the function
|
|
|
|
#define SUBCLASS_OFFSET 32
|
|
#define VTABLE_ENTRY(n) n*8
|
|
|
|
/*
|
|
this is a macro for delegation methods. It first retrives BaseProxyBuffer
|
|
from the proxy vtbl, then deference to get the base vtbl. From the offset
|
|
in vtbl, we get the pair of real .ObjectStublessClient##method_number
|
|
and gp. bp & b6 is loaded up accordingly and the code is branched into
|
|
ObjectStublessClient##method_number
|
|
*/
|
|
#define DELEGATION_FORWARDER(method_number) \
|
|
LEAF_ENTRY( NdrProxyForwardingFunction##method_number ); \
|
|
add r32 = SUBCLASS_OFFSET, r32; \
|
|
;; \
|
|
LDPTR (r32, r32);; \
|
|
LDPTR (r2, r32);; \
|
|
add r2 = VTABLE_ENTRY(method_number), r2;; \
|
|
LDPTR (r2, r2 );; \
|
|
LDPTRINC (r3, r2, 8); \
|
|
;; \
|
|
LDPTR (gp, r2); \
|
|
mov b6 = r3; \
|
|
br##.##sptk##.##clr b6; \
|
|
LEAF_EXIT( NdrProxyForwardingFunction##method_number )
|
|
|
|
DELEGATION_FORWARDER(3)
|
|
|
|
DELEGATION_FORWARDER(4)
|
|
|
|
DELEGATION_FORWARDER(5)
|
|
|
|
DELEGATION_FORWARDER(6)
|
|
|
|
DELEGATION_FORWARDER(7)
|
|
|
|
DELEGATION_FORWARDER(8)
|
|
|
|
DELEGATION_FORWARDER(9)
|
|
|
|
DELEGATION_FORWARDER(10)
|
|
|
|
DELEGATION_FORWARDER(11)
|
|
|
|
DELEGATION_FORWARDER(12)
|
|
|
|
DELEGATION_FORWARDER(13)
|
|
|
|
DELEGATION_FORWARDER(14)
|
|
|
|
DELEGATION_FORWARDER(15)
|
|
|
|
DELEGATION_FORWARDER(16)
|
|
|
|
DELEGATION_FORWARDER(17)
|
|
|
|
DELEGATION_FORWARDER(18)
|
|
|
|
DELEGATION_FORWARDER(19)
|
|
|
|
DELEGATION_FORWARDER(20)
|
|
|
|
DELEGATION_FORWARDER(21)
|
|
|
|
DELEGATION_FORWARDER(22)
|
|
|
|
DELEGATION_FORWARDER(23)
|
|
|
|
DELEGATION_FORWARDER(24)
|
|
|
|
DELEGATION_FORWARDER(25)
|
|
|
|
DELEGATION_FORWARDER(26)
|
|
|
|
DELEGATION_FORWARDER(27)
|
|
|
|
DELEGATION_FORWARDER(28)
|
|
|
|
DELEGATION_FORWARDER(29)
|
|
|
|
DELEGATION_FORWARDER(30)
|
|
|
|
DELEGATION_FORWARDER(31)
|
|
|
|
DELEGATION_FORWARDER(32)
|
|
|
|
DELEGATION_FORWARDER(33)
|
|
|
|
DELEGATION_FORWARDER(34)
|
|
|
|
DELEGATION_FORWARDER(35)
|
|
|
|
DELEGATION_FORWARDER(36)
|
|
|
|
DELEGATION_FORWARDER(37)
|
|
|
|
DELEGATION_FORWARDER(38)
|
|
|
|
DELEGATION_FORWARDER(39)
|
|
|
|
DELEGATION_FORWARDER(40)
|
|
|
|
DELEGATION_FORWARDER(41)
|
|
|
|
DELEGATION_FORWARDER(42)
|
|
|
|
DELEGATION_FORWARDER(43)
|
|
|
|
DELEGATION_FORWARDER(44)
|
|
|
|
DELEGATION_FORWARDER(45)
|
|
|
|
DELEGATION_FORWARDER(46)
|
|
|
|
DELEGATION_FORWARDER(47)
|
|
|
|
DELEGATION_FORWARDER(48)
|
|
|
|
DELEGATION_FORWARDER(49)
|
|
|
|
DELEGATION_FORWARDER(50)
|
|
|
|
DELEGATION_FORWARDER(51)
|
|
|
|
DELEGATION_FORWARDER(52)
|
|
|
|
DELEGATION_FORWARDER(53)
|
|
|
|
DELEGATION_FORWARDER(54)
|
|
|
|
DELEGATION_FORWARDER(55)
|
|
|
|
DELEGATION_FORWARDER(56)
|
|
|
|
DELEGATION_FORWARDER(57)
|
|
|
|
DELEGATION_FORWARDER(58)
|
|
|
|
DELEGATION_FORWARDER(59)
|
|
|
|
DELEGATION_FORWARDER(60)
|
|
|
|
DELEGATION_FORWARDER(61)
|
|
|
|
DELEGATION_FORWARDER(62)
|
|
|
|
DELEGATION_FORWARDER(63)
|
|
|
|
DELEGATION_FORWARDER(64)
|
|
|
|
DELEGATION_FORWARDER(65)
|
|
|
|
DELEGATION_FORWARDER(66)
|
|
|
|
DELEGATION_FORWARDER(67)
|
|
|
|
DELEGATION_FORWARDER(68)
|
|
|
|
DELEGATION_FORWARDER(69)
|
|
|
|
DELEGATION_FORWARDER(70)
|
|
|
|
DELEGATION_FORWARDER(71)
|
|
|
|
DELEGATION_FORWARDER(72)
|
|
|
|
DELEGATION_FORWARDER(73)
|
|
|
|
DELEGATION_FORWARDER(74)
|
|
|
|
DELEGATION_FORWARDER(75)
|
|
|
|
DELEGATION_FORWARDER(76)
|
|
|
|
DELEGATION_FORWARDER(77)
|
|
|
|
DELEGATION_FORWARDER(78)
|
|
|
|
DELEGATION_FORWARDER(79)
|
|
|
|
DELEGATION_FORWARDER(80)
|
|
|
|
DELEGATION_FORWARDER(81)
|
|
|
|
DELEGATION_FORWARDER(82)
|
|
|
|
DELEGATION_FORWARDER(83)
|
|
|
|
DELEGATION_FORWARDER(84)
|
|
|
|
DELEGATION_FORWARDER(85)
|
|
|
|
DELEGATION_FORWARDER(86)
|
|
|
|
DELEGATION_FORWARDER(87)
|
|
|
|
DELEGATION_FORWARDER(88)
|
|
|
|
DELEGATION_FORWARDER(89)
|
|
|
|
DELEGATION_FORWARDER(90)
|
|
|
|
DELEGATION_FORWARDER(91)
|
|
|
|
DELEGATION_FORWARDER(92)
|
|
|
|
DELEGATION_FORWARDER(93)
|
|
|
|
DELEGATION_FORWARDER(94)
|
|
|
|
DELEGATION_FORWARDER(95)
|
|
|
|
DELEGATION_FORWARDER(96)
|
|
|
|
DELEGATION_FORWARDER(97)
|
|
|
|
DELEGATION_FORWARDER(98)
|
|
|
|
DELEGATION_FORWARDER(99)
|
|
|
|
DELEGATION_FORWARDER(100)
|
|
|
|
DELEGATION_FORWARDER(101)
|
|
|
|
DELEGATION_FORWARDER(102)
|
|
|
|
DELEGATION_FORWARDER(103)
|
|
|
|
DELEGATION_FORWARDER(104)
|
|
|
|
DELEGATION_FORWARDER(105)
|
|
|
|
DELEGATION_FORWARDER(106)
|
|
|
|
DELEGATION_FORWARDER(107)
|
|
|
|
DELEGATION_FORWARDER(108)
|
|
|
|
DELEGATION_FORWARDER(109)
|
|
|
|
DELEGATION_FORWARDER(110)
|
|
|
|
DELEGATION_FORWARDER(111)
|
|
|
|
DELEGATION_FORWARDER(112)
|
|
|
|
DELEGATION_FORWARDER(113)
|
|
|
|
DELEGATION_FORWARDER(114)
|
|
|
|
DELEGATION_FORWARDER(115)
|
|
|
|
DELEGATION_FORWARDER(116)
|
|
|
|
DELEGATION_FORWARDER(117)
|
|
|
|
DELEGATION_FORWARDER(118)
|
|
|
|
DELEGATION_FORWARDER(119)
|
|
|
|
DELEGATION_FORWARDER(120)
|
|
|
|
DELEGATION_FORWARDER(121)
|
|
|
|
DELEGATION_FORWARDER(122)
|
|
|
|
DELEGATION_FORWARDER(123)
|
|
|
|
DELEGATION_FORWARDER(124)
|
|
|
|
DELEGATION_FORWARDER(125)
|
|
|
|
DELEGATION_FORWARDER(126)
|
|
|
|
DELEGATION_FORWARDER(127)
|
|
|
|
DELEGATION_FORWARDER(128)
|
|
|
|
DELEGATION_FORWARDER(129)
|
|
|
|
DELEGATION_FORWARDER(130)
|
|
|
|
DELEGATION_FORWARDER(131)
|
|
|
|
DELEGATION_FORWARDER(132)
|
|
|
|
DELEGATION_FORWARDER(133)
|
|
|
|
DELEGATION_FORWARDER(134)
|
|
|
|
DELEGATION_FORWARDER(135)
|
|
|
|
DELEGATION_FORWARDER(136)
|
|
|
|
DELEGATION_FORWARDER(137)
|
|
|
|
DELEGATION_FORWARDER(138)
|
|
|
|
DELEGATION_FORWARDER(139)
|
|
|
|
DELEGATION_FORWARDER(140)
|
|
|
|
DELEGATION_FORWARDER(141)
|
|
|
|
DELEGATION_FORWARDER(142)
|
|
|
|
DELEGATION_FORWARDER(143)
|
|
|
|
DELEGATION_FORWARDER(144)
|
|
|
|
DELEGATION_FORWARDER(145)
|
|
|
|
DELEGATION_FORWARDER(146)
|
|
|
|
DELEGATION_FORWARDER(147)
|
|
|
|
DELEGATION_FORWARDER(148)
|
|
|
|
DELEGATION_FORWARDER(149)
|
|
|
|
DELEGATION_FORWARDER(150)
|
|
|
|
DELEGATION_FORWARDER(151)
|
|
|
|
DELEGATION_FORWARDER(152)
|
|
|
|
DELEGATION_FORWARDER(153)
|
|
|
|
DELEGATION_FORWARDER(154)
|
|
|
|
DELEGATION_FORWARDER(155)
|
|
|
|
DELEGATION_FORWARDER(156)
|
|
|
|
DELEGATION_FORWARDER(157)
|
|
|
|
DELEGATION_FORWARDER(158)
|
|
|
|
DELEGATION_FORWARDER(159)
|
|
|
|
DELEGATION_FORWARDER(160)
|
|
|
|
DELEGATION_FORWARDER(161)
|
|
|
|
DELEGATION_FORWARDER(162)
|
|
|
|
DELEGATION_FORWARDER(163)
|
|
|
|
DELEGATION_FORWARDER(164)
|
|
|
|
DELEGATION_FORWARDER(165)
|
|
|
|
DELEGATION_FORWARDER(166)
|
|
|
|
DELEGATION_FORWARDER(167)
|
|
|
|
DELEGATION_FORWARDER(168)
|
|
|
|
DELEGATION_FORWARDER(169)
|
|
|
|
DELEGATION_FORWARDER(170)
|
|
|
|
DELEGATION_FORWARDER(171)
|
|
|
|
DELEGATION_FORWARDER(172)
|
|
|
|
DELEGATION_FORWARDER(173)
|
|
|
|
DELEGATION_FORWARDER(174)
|
|
|
|
DELEGATION_FORWARDER(175)
|
|
|
|
DELEGATION_FORWARDER(176)
|
|
|
|
DELEGATION_FORWARDER(177)
|
|
|
|
DELEGATION_FORWARDER(178)
|
|
|
|
DELEGATION_FORWARDER(179)
|
|
|
|
DELEGATION_FORWARDER(180)
|
|
|
|
DELEGATION_FORWARDER(181)
|
|
|
|
DELEGATION_FORWARDER(182)
|
|
|
|
DELEGATION_FORWARDER(183)
|
|
|
|
DELEGATION_FORWARDER(184)
|
|
|
|
DELEGATION_FORWARDER(185)
|
|
|
|
DELEGATION_FORWARDER(186)
|
|
|
|
DELEGATION_FORWARDER(187)
|
|
|
|
DELEGATION_FORWARDER(188)
|
|
|
|
DELEGATION_FORWARDER(189)
|
|
|
|
DELEGATION_FORWARDER(190)
|
|
|
|
DELEGATION_FORWARDER(191)
|
|
|
|
DELEGATION_FORWARDER(192)
|
|
|
|
DELEGATION_FORWARDER(193)
|
|
|
|
DELEGATION_FORWARDER(194)
|
|
|
|
DELEGATION_FORWARDER(195)
|
|
|
|
DELEGATION_FORWARDER(196)
|
|
|
|
DELEGATION_FORWARDER(197)
|
|
|
|
DELEGATION_FORWARDER(198)
|
|
|
|
DELEGATION_FORWARDER(199)
|
|
|
|
DELEGATION_FORWARDER(200)
|
|
|
|
DELEGATION_FORWARDER(201)
|
|
|
|
DELEGATION_FORWARDER(202)
|
|
|
|
DELEGATION_FORWARDER(203)
|
|
|
|
DELEGATION_FORWARDER(204)
|
|
|
|
DELEGATION_FORWARDER(205)
|
|
|
|
DELEGATION_FORWARDER(206)
|
|
|
|
DELEGATION_FORWARDER(207)
|
|
|
|
DELEGATION_FORWARDER(208)
|
|
|
|
DELEGATION_FORWARDER(209)
|
|
|
|
DELEGATION_FORWARDER(210)
|
|
|
|
DELEGATION_FORWARDER(211)
|
|
|
|
DELEGATION_FORWARDER(212)
|
|
|
|
DELEGATION_FORWARDER(213)
|
|
|
|
DELEGATION_FORWARDER(214)
|
|
|
|
DELEGATION_FORWARDER(215)
|
|
|
|
DELEGATION_FORWARDER(216)
|
|
|
|
DELEGATION_FORWARDER(217)
|
|
|
|
DELEGATION_FORWARDER(218)
|
|
|
|
DELEGATION_FORWARDER(219)
|
|
|
|
DELEGATION_FORWARDER(220)
|
|
|
|
DELEGATION_FORWARDER(221)
|
|
|
|
DELEGATION_FORWARDER(222)
|
|
|
|
DELEGATION_FORWARDER(223)
|
|
|
|
DELEGATION_FORWARDER(224)
|
|
|
|
DELEGATION_FORWARDER(225)
|
|
|
|
DELEGATION_FORWARDER(226)
|
|
|
|
DELEGATION_FORWARDER(227)
|
|
|
|
DELEGATION_FORWARDER(228)
|
|
|
|
DELEGATION_FORWARDER(229)
|
|
|
|
DELEGATION_FORWARDER(230)
|
|
|
|
DELEGATION_FORWARDER(231)
|
|
|
|
DELEGATION_FORWARDER(232)
|
|
|
|
DELEGATION_FORWARDER(233)
|
|
|
|
DELEGATION_FORWARDER(234)
|
|
|
|
DELEGATION_FORWARDER(235)
|
|
|
|
DELEGATION_FORWARDER(236)
|
|
|
|
DELEGATION_FORWARDER(237)
|
|
|
|
DELEGATION_FORWARDER(238)
|
|
|
|
DELEGATION_FORWARDER(239)
|
|
|
|
DELEGATION_FORWARDER(240)
|
|
|
|
DELEGATION_FORWARDER(241)
|
|
|
|
DELEGATION_FORWARDER(242)
|
|
|
|
DELEGATION_FORWARDER(243)
|
|
|
|
DELEGATION_FORWARDER(244)
|
|
|
|
DELEGATION_FORWARDER(245)
|
|
|
|
DELEGATION_FORWARDER(246)
|
|
|
|
DELEGATION_FORWARDER(247)
|
|
|
|
DELEGATION_FORWARDER(248)
|
|
|
|
DELEGATION_FORWARDER(249)
|
|
|
|
DELEGATION_FORWARDER(250)
|
|
|
|
DELEGATION_FORWARDER(251)
|
|
|
|
DELEGATION_FORWARDER(252)
|
|
|
|
DELEGATION_FORWARDER(253)
|
|
|
|
DELEGATION_FORWARDER(254)
|
|
|
|
DELEGATION_FORWARDER(255)
|