@@ -82,8 +82,7 @@ struct DispatchStub
82
82
private:
83
83
friend struct DispatchHolder ;
84
84
85
- DWORD _entryPoint[9 ];
86
- DWORD _pad;
85
+ DWORD _entryPoint[8 ];
87
86
size_t _expectedMT;
88
87
PCODE _implTarget;
89
88
PCODE _failTarget;
@@ -102,30 +101,28 @@ struct DispatchHolder
102
101
void Initialize (DispatchHolder* pDispatchHolderRX, PCODE implTarget, PCODE failTarget, size_t expectedMT)
103
102
{
104
103
// auipc t4,0
105
- // addi t4, t4, 36
106
- // ld t0,0(a0) ; methodTable from object in $a0
107
- // ld t6,0(t4) // t6 _expectedMT
108
- // bne t6, t0, failLabel
109
- // ld t4, 8(t4) // t4 _implTarget
104
+ // ld t0, 0(a0) // methodTable from object in $a0
105
+ // ld t6, 32(t4) // t6 _expectedMT
106
+ // bne t6, t0, failLabel
107
+ // ld t4, 40(t4) // t4 _implTarget
110
108
// jalr x0, t4, 0
111
109
// failLabel:
112
- // ld t4, 16 (t4) // t4 _failTarget
110
+ // ld t4, 48 (t4) // t4 _failTarget
113
111
// jalr x0, t4, 0
114
112
//
115
113
//
116
114
// _expectedMT
117
115
// _implTarget
118
116
// _failTarget
119
117
120
- _stub._entryPoint [0 ] = DISPATCH_STUB_FIRST_DWORD; // auipc t4,0 // 0x00000e97
121
- _stub._entryPoint [1 ] = 0x028e8e93 ; // addi t4, t4, 40
122
- _stub._entryPoint [2 ] = 0x00053283 ; // ld t0, 0(a0) //; methodTable from object in $a0
123
- _stub._entryPoint [3 ] = 0x000ebf83 ; // ld r6, 0(t4) // t6 _expectedMT
124
- _stub._entryPoint [4 ] = 0x005f9663 ; // bne t6, t0, failLabel
125
- _stub._entryPoint [5 ] = 0x008ebe83 ; // ld t4, 8(t4) // t4 _implTarget
126
- _stub._entryPoint [6 ] = 0x000e8067 ; // jalr x0, t4, 0
127
- _stub._entryPoint [7 ] = 0x010ebe83 ; // ld t4, 16(t4) // t4 _failTarget
128
- _stub._entryPoint [8 ] = 0x000e8067 ; // jalr x0, t4, 0
118
+ _stub._entryPoint [0 ] = DISPATCH_STUB_FIRST_DWORD; // auipc t4,0 // 0x00000e97
119
+ _stub._entryPoint [1 ] = 0x00053283 ; // ld t0, 0(a0) // methodTable from object in $a0
120
+ _stub._entryPoint [2 ] = 0x020ebf83 ; // ld t6, 32(t4) // t6 _expectedMT
121
+ _stub._entryPoint [3 ] = 0x005f9663 ; // bne t6, t0, failLabel
122
+ _stub._entryPoint [4 ] = 0x028ebe83 ; // ld t4, 40(t4) // t4 _implTarget
123
+ _stub._entryPoint [5 ] = 0x000e8067 ; // jalr x0, t4, 0
124
+ _stub._entryPoint [6 ] = 0x030ebe83 ; // ld t4, 48(t4) // t4 _failTarget
125
+ _stub._entryPoint [7 ] = 0x000e8067 ; // jalr x0, t4, 0
129
126
130
127
_stub._expectedMT = expectedMT;
131
128
_stub._implTarget = implTarget;
0 commit comments