ObjFW  Diff

Differences From Artifact [74c1db404c]:

To Artifact [fedf0b1bb7]:


1
2

3
4
5
6
7
8
9
1

2
3
4
5
6
7
8
9

-
+







/*
 * Copyright (c) 2008-2022 Jonathan Schleifer <js@nil.im>
 * Copyright (c) 2008-2024 Jonathan Schleifer <js@nil.im>
 *
 * All rights reserved.
 *
 * This file is part of ObjFW. It may be distributed under the terms of the
 * Q Public License 1.0, which can be found in the file LICENSE.QPL included in
 * the packaging of this file.
 *
34
35
36
37
38
39
40
41

42
43
44
45
46
47
48

49
50
51
52

53
54
55
56
57
58
59
34
35
36
37
38
39
40

41
42
43
44
45
46
47

48
49
50
51

52
53
54
55
56
57
58
59







-
+






-
+



-
+







	movaps	%xmm1, -0x70(%rbp)
	movaps	%xmm2, -0x80(%rbp)
	movaps	%xmm3, -0x90(%rbp)

	call	object_getClass

	movq	%rax, %rcx
	leaq	sel_forwardingTargetForSelector_(%rip), %rdx
	leaq	.Lsel_forwardingTargetForSelector_(%rip), %rdx
	call	class_respondsToSelector

	testq	%rax, %rax
	jz	0f

	movq	-0x30(%rbp), %rcx
	leaq	sel_forwardingTargetForSelector_(%rip), %rdx
	leaq	.Lsel_forwardingTargetForSelector_(%rip), %rdx
	call	objc_msg_lookup

	movq	-0x30(%rbp), %rcx
	leaq	sel_forwardingTargetForSelector_(%rip), %rdx
	leaq	.Lsel_forwardingTargetForSelector_(%rip), %rdx
	movq	-0x38(%rbp), %r8
	call	*%rax

	testq	%rax, %rax
	jz	0f
	cmpq	-0x30(%rbp), %rax
	je	0f
110
111
112
113
114
115
116
117

118
119
120
121
122
123
124

125
126
127
128

129
130
131
132
133
134
135
110
111
112
113
114
115
116

117
118
119
120
121
122
123

124
125
126
127

128
129
130
131
132
133
134
135







-
+






-
+



-
+







	movaps	%xmm2, -0x80(%rbp)
	movaps	%xmm3, -0x90(%rbp)

	movq	%rdx, %rcx
	call	object_getClass

	movq	%rax, %rcx
	leaq	sel_forwardingTargetForSelector_(%rip), %rdx
	leaq	.Lsel_forwardingTargetForSelector_(%rip), %rdx
	call	class_respondsToSelector

	testq	%rax, %rax
	jz	0f

	movq	-0x38(%rbp), %rcx
	leaq	sel_forwardingTargetForSelector_(%rip), %rdx
	leaq	.Lsel_forwardingTargetForSelector_(%rip), %rdx
	call	objc_msg_lookup

	movq	-0x38(%rbp), %rcx
	leaq	sel_forwardingTargetForSelector_(%rip), %rdx
	leaq	.Lsel_forwardingTargetForSelector_(%rip), %rdx
	movq	-0x40(%rbp), %r8
	call	*%rax

	testq	%rax, %rax
	jz	0f
	cmpq	-0x38(%rbp), %rax
	je	0f
167
168
169
170
171
172
173
174
175


176
177
178
179

180
181
182

183
184
185
186
187


188
189

190
191

192
193
194
195

196
197

167
168
169
170
171
172
173


174
175
176
177
178

179
180
181

182
183
184
185


186
187
188

189
190

191
192
193
194

195
196

197







-
-
+
+



-
+


-
+



-
-
+
+

-
+

-
+



-
+

-
+

	jmp	OFMethodNotFound_stret
.def OFForward_stret
.scl 2
.type 32
.endef

init:
	leaq	module(%rip), %rcx
.Linit:
	leaq	.Lmodule(%rip), %rcx
	jmp	__objc_exec_class

.section .ctors, "aw"
	.quad init
	.quad .Linit

.section .rodata
str_forwardingTargetForSelector_:
.Lstr_forwardingTargetForSelector_:
	.asciz "forwardingTargetForSelector:"

.section .data
sel_forwardingTargetForSelector_:
	.quad str_forwardingTargetForSelector_, 0
.Lsel_forwardingTargetForSelector_:
	.quad .Lstr_forwardingTargetForSelector_, 0
	.quad 0, 0
symtab:
.Lsymtab:
	.long 0, 0
	.quad sel_forwardingTargetForSelector_
	.quad .Lsel_forwardingTargetForSelector_
	.short 0, 0
	.long 0
	.quad 0
module:
.Lmodule:
	.long 8, 32
	.quad 0, symtab
	.quad 0, .Lsymtab