ObjFW  Diff

Differences From Artifact [8f444911c9]:

To Artifact [f6654defd2]:


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
37
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
37
38
39
40
41







+
+
+
+
+
+









-
+
-
-







 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
 * file.
 */

#include "config.h"

#include "platform.h"

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

.globl objc_msg_lookup
.globl objc_msg_lookup_stret
.globl objc_msg_lookup_super
.globl objc_msg_lookup_super_stret

.section .text
.macro GENERATE_LOOKUP name notFound
\name:
#ifdef HAVE_ENDBR32
	_CET_ENDBR
	endbr32
#endif

	movl	4(%esp), %edx
	testl	%edx, %edx
	jz	.LreturnNilMethod

	testb	$1, %dl
	jnz	.LtaggedPointer_\name
78
79
80
81
82
83
84
85

86
87
88
89
90
91
92
93
94
82
83
84
85
86
87
88

89


90
91
92
93
94
95
96







-
+
-
-







	jmp	.Lmain_\name
.type \name, %function
.size \name, .-\name
.endm

.macro GENERATE_LOOKUP_SUPER name lookup
\name:
#ifdef HAVE_ENDBR32
	_CET_ENDBR
	endbr32
#endif

	movl	4(%esp), %edx
	movl	(%edx), %eax
	testl	%eax, %eax
	jz	.LreturnNilMethod

	movl	%eax, 4(%esp)