ObjFW  Diff

Differences From Artifact [1c68b17637]:

To Artifact [231a1b0400]:


10
11
12
13
14
15
16






17
18
19
20
21
22
23

24
25
26
27
28
29
30
31
32
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

29


30
31
32
33
34
35
36







+
+
+
+
+
+






-
+
-
-







 * Alternatively, it may be distributed under the terms of the GNU General
 * Public License, either version 2 or 3, which can be found in the file
 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#include "config.h"

#ifdef HAVE_CET_H
# include <cet.h>
#else
# define _CET_ENDBR
#endif

.globl OFForward
.globl OFForward_stret

.section .text
OFForward:
#ifdef HAVE_ENDBR64
	_CET_ENDBR
	endbr64
#endif

	pushq	%rbp
	movq	%rsp, %rbp

	/* Save all arguments */
	subq	$0x90, %rsp	/* 16-byte alignment */
	movq	%rax, -0x28(%rbp)
95
96
97
98
99
100
101
102

103
104
105
106
107
108
109
110
111
99
100
101
102
103
104
105

106


107
108
109
110
111
112
113







-
+
-
-







	jmp	OFMethodNotFound
.def OFForward
.scl 2
.type 32
.endef

OFForward_stret:
#ifdef HAVE_ENDBR64
	_CET_ENDBR
	endbr64
#endif

	pushq	%rbp
	movq	%rsp, %rbp

	/* Save all arguments */
	subq	$0x90, %rsp	/* 16-byte alignment */
	movq	%rax, -0x28(%rbp)
176
177
178
179
180
181
182
183

184
185
186
187
188
189
190
191
192
178
179
180
181
182
183
184

185


186
187
188
189
190
191
192







-
+
-
-







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

init:
#ifdef HAVE_ENDBR64
	_CET_ENDBR
	endbr64
#endif

	leaq	module(%rip), %rcx
	jmp	__objc_exec_class

.section .ctors, "aw"
	.quad init