ObjFW  Check-in [a7e9fd87f9]

Overview
Comment:Merge trunk into 1.1 branch
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | 1.1
Files: files | file ages | folders
SHA3-256: a7e9fd87f951575e7f491bb4dc987d839888e508832ea3851701f078dada2054
User & Date: js on 2024-04-20 17:42:04
Other Links: branch diff | manifest | tags
Context
2024-04-20
17:50
Update ChangeLog for 1.1.2 check-in: b3bd14dc06 user: js tags: 1.1
17:42
Merge trunk into 1.1 branch check-in: a7e9fd87f9 user: js tags: 1.1
14:58
forwarding: Remove now unnecessary instructions check-in: d9b2f95c24 user: js tags: trunk
2024-04-14
17:46
Set version to 1.1.1 check-in: 148f7f4c6b user: js tags: 1.1, 1.1.1-release
Changes

Modified configure.ac from [5d6f545816] to [ea2a7afe54].

148
149
150
151
152
153
154

155
156
157
158
159
160
161
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162







+







*)
	potential_compilers="clang egcc gcc"
	;;
esac
AC_PROG_OBJC($potential_compilers)
AC_PROG_OBJCPP
AC_PROG_EGREP
AC_PROG_SED
AC_PROG_LN_S

BUILDSYS_CHECK_IOS

AC_ARG_WITH(wii,
	AS_HELP_STRING([--with-wii], [build for Wii]))
AS_IF([test x"$with_wii" = x"yes"], [
593
594
595
596
597
598
599
600

601
602
603
604

605
606
607
608

609
610
611
612
613
614
615
594
595
596
597
598
599
600

601
602
603
604

605
606
607
608

609
610
611
612
613
614
615
616







-
+



-
+



-
+







			@try {
				foo();
			} @finally {
				foo();
			}
		])
	], [
		AS_IF([tr -dc "[[:print:]]" <conftest.$ac_objext | \
		AS_IF([$SED 's/[[^[:print:]]]//g' <conftest.$ac_objext | \
		    $EGREP __gnu_objc_personality_v0 >/dev/null], [
			exception_type="DWARF"
		])
		AS_IF([tr -dc "[[:print:]]" <conftest.$ac_objext | \
		AS_IF([$SED 's/[[^[:print:]]]//g' <conftest.$ac_objext | \
		    $EGREP __gnu_objc_personality_sj0 >/dev/null], [
			exception_type="SjLj"
		])
		AS_IF([tr -dc "[[:print:]]" <conftest.$ac_objext | \
		AS_IF([$SED 's/[[^[:print:]]]//g' <conftest.$ac_objext | \
		    $EGREP __gnu_objc_personality_seh0 >/dev/null], [
			exception_type="SEH"
		])

		case "$exception_type" in
		DWARF)
			AC_DEFINE(HAVE_DWARF_EXCEPTIONS, 1,
813
814
815
816
817
818
819
820

821
822
823
824
825
826
827


828
829
830
831
832
833
834
814
815
816
817
818
819
820

821
822
823
824
825
826


827
828
829
830
831
832
833
834
835







-
+





-
-
+
+







fp_endianess="unknown"
AS_IF([test x"$ac_cv_c_bigendian" != x"universal"], [
	AC_COMPILE_IFELSE([
		AC_LANG_SOURCE([
			double endianess = 2.993700760838795055656993580068609688772747263874402942272934826871811872228512759832626847251963763755836687759498519784550143745834860002945223766052808125982053455555265216112722718870586961456110693379343178124592311441022662940307099598578775368547768968914916965731708568179631324904813506101190853720749196062963892799499230635163056742330563321122389331703618066046034494287335316842529021563862331183541255013987734473643350285400060357711238514186776429325214739886098119655678483017894951556639821088508565036657794343031121375178126860889964700274558728491825977274341798997758923017217660272136611938897932105874133412726223468780517578125e-259;
		])
	], [
		AS_IF([tr -dc "[[:print:]]" <conftest.$ac_objext | \
		AS_IF([$SED 's/[[^[:print:]]]//g' <conftest.$ac_objext | \
		    $EGREP BigEnd >/dev/null], [
			AC_DEFINE(OF_FLOAT_BIG_ENDIAN, 1,
				[Whether floats are big endian])
			fp_endianess="big endian"
		], [
			AS_IF([tr -dc "[[:print:]]" <conftest.$ac_objext | \
			    $EGREP dnEgiB >/dev/null], [
			AS_IF([$SED 's/[[^[:print:]]]//g' \
			    <conftest.$ac_objext | $EGREP dnEgiB >/dev/null], [
				fp_endianess="little endian"
			])
		])
	])
], [
	fp_endianess="universal"
])
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1279
1280
1281
1282
1283
1284
1285




















1286
1287
1288
1289
1290
1291
1292







-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-







	AC_CHECK_FUNC(symlink, [
		AC_DEFINE(OF_HAVE_SYMLINK, 1, [Whether we have symlink()])
	])
	AC_CHECK_FUNCS([lstat])
	AC_CHECK_MEMBERS([struct stat.st_birthtime], [], [], [
		#include <sys/stat.h>
	])

	old_OBJCFLAGS="$OBJCFLAGS"
	OBJCFLAGS="$OBJCFLAGS -Werror"
	AC_MSG_CHECKING(for readdir_r)
	AC_COMPILE_IFELSE([
		AC_LANG_PROGRAM([
			#include <dirent.h>
		], [
			DIR *dir = 0;
			struct dirent entry, *result;

			readdir_r(dir, &entry, &result);
		])
	], [
		AC_MSG_RESULT(yes)
		AC_DEFINE(HAVE_READDIR_R, 1, [Whether we have readdir_r()])
	], [
		AC_MSG_RESULT(no)
	])
	OBJCFLAGS="$old_OBJCFLAGS"
])

AC_CHECK_HEADERS(dirent.h)
AC_CHECK_FUNCS([sysconf gmtime_r localtime_r])

case "$host_os" in
amigaos* | morphos*)

Modified src/OFFileIRIHandler.m from [f8ff31676a] to [d9639e50f4].

136
137
138
139
140
141
142
143

144
145
146
147
148
149
150
136
137
138
139
140
141
142

143
144
145
146
147
148
149
150







-
+








static void
releasePasswdMutex(void)
{
	[passwdMutex release];
}
#endif
#if !defined(HAVE_READDIR_R) && defined(OF_HAVE_THREADS) && !defined(OF_WINDOWS)
#if defined(OF_HAVE_THREADS) && !defined(__GLIBC__) && !defined(OF_WINDOWS)
static OFMutex *readdirMutex;

static void
releaseReaddirMutex(void)
{
	[readdirMutex release];
}
771
772
773
774
775
776
777
778

779
780
781
782
783
784
785
771
772
773
774
775
776
777

778
779
780
781
782
783
784
785







-
+







	if (self != [OFFileIRIHandler class])
		return;

#if defined(OF_FILE_MANAGER_SUPPORTS_OWNER) && defined(OF_HAVE_THREADS)
	passwdMutex = [[OFMutex alloc] init];
	atexit(releasePasswdMutex);
#endif
#if !defined(HAVE_READDIR_R) && !defined(OF_WINDOWS) && defined(OF_HAVE_THREADS)
#if defined(OF_HAVE_THREADS) && !defined(__GLIBC__) && !defined(OF_WINDOWS)
	readdirMutex = [[OFMutex alloc] init];
	atexit(releaseReaddirMutex);
#endif

#ifdef OF_WINDOWS
	if ((module = GetModuleHandle("msvcrt.dll")) != NULL)
		_wutime64FuncPtr = (int (*)(const wchar_t *,
1418
1419
1420
1421
1422
1423
1424
1425

1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479

1480
1481
1482
1483
1484
1485
1486
1418
1419
1420
1421
1422
1423
1424

1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436



1437
1438










1439
1440
1441
1442
1443
1444
1445
1446
1447
1448

1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464

1465
1466
1467
1468
1469
1470
1471
1472







-
+











-
-
-


-
-
-
-
-
-
-
-
-
-










-
















-
+







	OFStringEncoding encoding = [OFLocale encoding];
	DIR *dir;
	if ((dir = opendir([path cStringWithEncoding: encoding])) == NULL)
		@throw [OFOpenItemFailedException exceptionWithIRI: IRI
							      mode: nil
							     errNo: errno];

# if !defined(HAVE_READDIR_R) && defined(OF_HAVE_THREADS)
# if defined(OF_HAVE_THREADS) && !defined(__GLIBC__)
	@try {
		[readdirMutex lock];
	} @catch (id e) {
		closedir(dir);
		@throw e;
	}
# endif

	@try {
		for (;;) {
			struct dirent *dirent;
# ifdef HAVE_READDIR_R
			struct dirent buffer;
# endif
			OFString *file;

# ifdef HAVE_READDIR_R
			if (readdir_r(dir, &buffer, &dirent) != 0)
				@throw [OFReadFailedException
				    exceptionWithObject: self
					requestedLength: 0
						  errNo: errno];

			if (dirent == NULL)
				break;
# else
			errno = 0;
			if ((dirent = readdir(dir)) == NULL) {
				if (errno == 0)
					break;
				else
					@throw [OFReadFailedException
					    exceptionWithObject: self
						requestedLength: 0
							  errNo: errno];
			}
# endif

			if (strcmp(dirent->d_name, ".") == 0 ||
			    strcmp(dirent->d_name, "..") == 0)
				continue;

			file = [[OFString alloc] initWithCString: dirent->d_name
							encoding: encoding];
			@try {
				[IRIs addObject:
				    [IRI IRIByAppendingPathComponent: file]];
			} @finally {
				[file release];
			}
		}
	} @finally {
		closedir(dir);
# if !defined(HAVE_READDIR_R) && defined(OF_HAVE_THREADS)
# if defined(OF_HAVE_THREADS) && !defined(__GLIBC__)
		[readdirMutex unlock];
# endif
	}
#endif

	[IRIs makeImmutable];

1994
1995
1996
1997
1998
1999
2000

2001
2002
2003
2004
2005
2006
2007
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994







+







		@throw [OFSetItemAttributesFailedException
		    exceptionWithIRI: IRI
			  attributes: [OFDictionary dictionary]
		     failedAttribute: @""
			       errNo: errNo];
	}
# elif defined(OF_HAIKU)
	const char *cName = [name cStringWithEncoding: encoding];
	int fd;

	if ((fd = open(cPath, O_WRONLY)) == -1) {
		int errNo = errno;

		/* TODO: Add an attribute (prefix?) for extended attributes? */
		@throw [OFSetItemAttributesFailedException

Modified src/forwarding/apple-forwarding-arm64.S from [2d0bee101c] to [35dbd1e27e].

38
39
40
41
42
43
44
45

46
47
48
49
50
51
52
53
54





55
56
57
58
59
60




61
62
63
64
65
66
67
68
69
70
71
72
73

74
75
76
77
78

79
80
81
82
83
84
85
86
87





88
89
90
91
92
93




94
95
96

97
98
99
100
101
102


103
104
105

106
107
38
39
40
41
42
43
44

45
46

47
48





49
50
51
52
53
54
55




56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71

72
73
74
75
76

77
78
79
80
81





82
83
84
85
86
87
88




89
90
91
92
93


94

95
96
97


98
99
100


101

102







-
+

-


-
-
-
-
-
+
+
+
+
+


-
-
-
-
+
+
+
+












-
+




-
+




-
-
-
-
-
+
+
+
+
+


-
-
-
-
+
+
+
+

-
-
+
-



-
-
+
+

-
-
+
-

.align 2
_OFForward:
_OFForward_stret:
#ifdef HAVE_BTI
	bti	c
#endif

	stp	fp, lr, [sp, #-208]!
	stp	fp, lr, [sp, #-224]!
	mov	fp, sp
	sub	sp, sp, #208

	/* Save all arguments, x8 and x19 */
	stp	x0, x1, [sp]
	stp	x2, x3, [sp, #16]
	stp	x4, x5, [sp, #32]
	stp	x6, x7, [sp, #48]
	stp	x8, x19, [sp, #64]
	stp	x0, x1, [sp, #16]
	stp	x2, x3, [sp, #32]
	stp	x4, x5, [sp, #48]
	stp	x6, x7, [sp, #64]
	stp	x8, x19, [sp, #80]

	/* Save all foating point arguments */
	stp	q0, q1, [sp, #80]
	stp	q2, q3, [sp, #112]
	stp	q4, q5, [sp, #144]
	stp	q6, q7, [sp, #176]
	stp	q0, q1, [sp, #96]
	stp	q2, q3, [sp, #128]
	stp	q4, q5, [sp, #160]
	stp	q6, q7, [sp, #192]

	bl	_object_getClass

	adrp	x19, Lsel_forwardingTargetForSelector_@PAGE
	add	x19, x19, Lsel_forwardingTargetForSelector_@PAGEOFF
	ldr	x19, [x19]

	mov	x1, x19
	bl	_class_respondsToSelector

	cbz	x0, 0f

	ldp	x0, x2, [sp]
	ldp	x0, x2, [sp, #16]
	mov	x1, x19
	bl	_objc_msgSend

	cbz	x0, 0f
	ldr	x1, [sp]
	ldr	x1, [sp, #16]
	cmp	x0, x1
	b.eq	0f

	/* Restore all arguments, x8 and x19, but not x0 */
	ldr	x1, [sp, #8]
	ldp	x2, x3, [sp, #16]
	ldp	x4, x5, [sp, #32]
	ldp	x6, x7, [sp, #48]
	ldp	x8, x19, [sp, #64]
	ldr	x1, [sp, #24]
	ldp	x2, x3, [sp, #32]
	ldp	x4, x5, [sp, #48]
	ldp	x6, x7, [sp, #64]
	ldp	x8, x19, [sp, #80]

	/* Restore all foating point arguments */
	ldp	q0, q1, [sp, #80]
	ldp	q2, q3, [sp, #112]
	ldp	q4, q5, [sp, #144]
	ldp	q6, q7, [sp, #176]
	ldp	q0, q1, [sp, #96]
	ldp	q2, q3, [sp, #128]
	ldp	q4, q5, [sp, #160]
	ldp	q6, q7, [sp, #192]

	mov	sp, fp
	ldp	fp, lr, [sp], #208
	ldp	fp, lr, [sp], #224

	b	_objc_msgSend

0:
	ldp	x0, x1, [sp]
	ldr	x19, [sp, #72]
	ldp	x0, x1, [sp, #16]
	ldr	x19, [sp, #88]

	mov	sp, fp
	ldp	fp, lr, [sp], #208
	ldp	fp, lr, [sp], #224

	b	_OFMethodNotFound

Modified src/forwarding/forwarding-arm64-elf.S from [8f1d6be95f] to [8e71cd30e4].

27
28
29
30
31
32
33
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
60
61

62
63
64
65
66
67

68
69
70
71

72
73
74
75
76

77
78
79
80
81
82
83
84
85
86
87





88
89
90
91
92
93




94
95
96

97
98
99
100
101
102


103
104
105

106
107
108
109
110
111
112
113
27
28
29
30
31
32
33

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

60
61
62
63
64
65

66
67
68
69

70
71
72
73
74

75
76
77
78
79
80
81





82
83
84
85
86
87
88




89
90
91
92
93


94

95
96
97


98
99
100


101

102
103
104
105
106
107
108







-
+

-


-
-
-
-
-
+
+
+
+
+


-
-
-
-
+
+
+
+











-
+





-
+



-
+




-
+






-
-
-
-
-
+
+
+
+
+


-
-
-
-
+
+
+
+

-
-
+
-



-
-
+
+

-
-
+
-







.section .text
OFForward:
OFForward_stret:
#ifdef HAVE_BTI
	bti	c
#endif

	stp	fp, lr, [sp, #-208]!
	stp	fp, lr, [sp, #-224]!
	mov	fp, sp
	sub	sp, sp, #208

	/* Save all arguments, x8 and x19 */
	stp	x0, x1, [sp]
	stp	x2, x3, [sp, #16]
	stp	x4, x5, [sp, #32]
	stp	x6, x7, [sp, #48]
	stp	x8, x19, [sp, #64]
	stp	x0, x1, [sp, #16]
	stp	x2, x3, [sp, #32]
	stp	x4, x5, [sp, #48]
	stp	x6, x7, [sp, #64]
	stp	x8, x19, [sp, #80]

	/* Save all foating point arguments */
	stp	q0, q1, [sp, #80]
	stp	q2, q3, [sp, #112]
	stp	q4, q5, [sp, #144]
	stp	q6, q7, [sp, #176]
	stp	q0, q1, [sp, #96]
	stp	q2, q3, [sp, #128]
	stp	q4, q5, [sp, #160]
	stp	q6, q7, [sp, #192]

	bl	object_getClass

	adrp	x19, .Lsel_forwardingTargetForSelector_
	add	x19, x19, :lo12:.Lsel_forwardingTargetForSelector_

	mov	x1, x19
	bl	class_respondsToSelector

	cbz	x0, 0f

	ldr	x0, [sp]
	ldr	x0, [sp, #16]
	mov	x1, x19
	bl	objc_msg_lookup

	mov	x1, x19
	mov	x19, x0
	ldp	x0, x2, [sp]
	ldp	x0, x2, [sp, #16]
	blr	x19

	cbz	x0, 0f
	ldr	x1, [sp]
	ldr	x1, [sp, #16]
	cmp	x0, x1
	b.eq	0f

	mov	x19, x0
	ldr	x1, [sp, #8]
	ldr	x1, [sp, #24]
	bl	objc_msg_lookup

	mov	x16, x0
	mov	x0, x19

	/* Restore all arguments, x8 and x19, but not x0 */
	ldr	x1, [sp, #8]
	ldp	x2, x3, [sp, #16]
	ldp	x4, x5, [sp, #32]
	ldp	x6, x7, [sp, #48]
	ldp	x8, x19, [sp, #64]
	ldr	x1, [sp, #24]
	ldp	x2, x3, [sp, #32]
	ldp	x4, x5, [sp, #48]
	ldp	x6, x7, [sp, #64]
	ldp	x8, x19, [sp, #80]

	/* Restore all foating point arguments */
	ldp	q0, q1, [sp, #80]
	ldp	q2, q3, [sp, #112]
	ldp	q4, q5, [sp, #144]
	ldp	q6, q7, [sp, #176]
	ldp	q0, q1, [sp, #96]
	ldp	q2, q3, [sp, #128]
	ldp	q4, q5, [sp, #160]
	ldp	q6, q7, [sp, #192]

	mov	sp, fp
	ldp	fp, lr, [sp], #208
	ldp	fp, lr, [sp], #224

	br	x16

0:
	ldp	x0, x1, [sp]
	ldr	x19, [sp, #72]
	ldp	x0, x1, [sp, #16]
	ldr	x19, [sp, #88]

	mov	sp, fp
	ldp	fp, lr, [sp], #208
	ldp	fp, lr, [sp], #224

	b	OFMethodNotFound
.type OFForward, %function
.size OFForward, .-OFForward
.type OFForward_stret, %function
.size OFForward_stret, .-OFForward_stret

.Linit:

Modified src/platform/POSIX/OFSystemInfo+NetworkInterfaces.m from [d737a52428] to [d2c08c8ec3].

632
633
634
635
636
637
638
639

640
641
642
643
644
645
646
632
633
634
635
636
637
638

639
640
641
642
643
644
645
646







-
+







		[[ret objectForKey: name]
		    setObject: hardwareAddress
		       forKey: OFNetworkInterfaceHardwareAddress];
	}

	return true;
#elif defined(HAVE_IOCTL) && defined(HAVE_NET_IF_H) && \
    defined(HAVE_STRUCT_SOCKADDR_DL)
    defined(HAVE_STRUCT_SOCKADDR_DL) && defined(IFT_ETHER)
	OFStringEncoding encoding = [OFLocale encoding];
	int sock = socket(AF_INET, SOCK_DGRAM, 0);
	struct ifconf ifc;
	struct ifreq *ifrs;

	if (sock < 0)
		return false;

Modified src/runtime/lookup-asm/lookup-asm-amd64-elf.S from [033d996c97] to [cc9692563a].

100
101
102
103
104
105
106


107
108
109
110
111
112
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114







+
+






GENERATE_LOOKUP_SUPER objc_msg_lookup_super_stret objc_msg_lookup_stret

.LreturnNilMethod:
	leaq	.LnilMethod(%rip), %rax
	ret

.LnilMethod:
	_CET_ENDBR

	xorq	%rax, %rax
	ret

#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif

Modified src/runtime/lookup-asm/lookup-asm-amd64-macho.S from [51edf39f7d] to [c59284e5c0].

94
95
96
97
98
99
100


101
102
94
95
96
97
98
99
100
101
102
103
104







+
+


GENERATE_LOOKUP_SUPER _objc_msg_lookup_super_stret, _objc_msg_lookup_stret

LreturnNilMethod:
	leaq	LnilMethod(%rip), %rax
	ret

LnilMethod:
	_CET_ENDBR

	xorq	%rax, %rax
	ret

Modified src/runtime/lookup-asm/lookup-asm-amd64-win64.S from [c8a0addc63] to [09a5df3763].

109
110
111
112
113
114
115


116
117
109
110
111
112
113
114
115
116
117
118
119







+
+


GENERATE_LOOKUP_SUPER objc_msg_lookup_super_stret objc_msg_lookup_stret

.LreturnNilMethod:
	leaq	.LnilMethod(%rip), %rax
	ret

.LnilMethod:
	_CET_ENDBR

	xorq	%rax, %rax
	ret

Modified src/runtime/lookup-asm/lookup-asm-arm64-elf.S from [877bf104e6] to [8493d6b132].

31
32
33
34
35
36
37
38
39

40
41
42
43
44
45
46
31
32
33
34
35
36
37


38
39
40
41
42
43
44
45







-
-
+







\name:
#ifdef HAVE_BTI
	bti	c
#endif

	cbz	x0, .LreturnNilMethod

	tst	x0, #1
	b.ne	.LtaggedPointer_\name
	tbnz	x0, #0, .LtaggedPointer_\name

	ldr	x2, [x0]
	ldr	x2, [x2, #64]

.Lmain_\name:
#ifdef OF_SELUID24
	ldrb	w3, [x1, #2]
98
99
100
101
102
103
104




105
106
107
108
109
110
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113







+
+
+
+






GENERATE_LOOKUP_SUPER objc_msg_lookup_super_stret objc_msg_lookup_stret

.LreturnNilMethod:
	adr	x0, .LnilMethod
	ret

.LnilMethod:
#ifdef HAVE_BTI
	bti	c
#endif

	mov	x0, #0
	ret

#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif

Modified src/runtime/lookup-asm/lookup-asm-x86-elf.S from [e9fa2b2c4a] to [51eaca73d3].

113
114
115
116
117
118
119


120
121
122
123
124
125
126
127
128
129
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131







+
+










.LreturnNilMethod:
	call	.LgetEIP
	addl	$_GLOBAL_OFFSET_TABLE_, %eax
	leal	.LnilMethod@GOTOFF(%eax), %eax
	ret

.LnilMethod:
	_CET_ENDBR

	xorl	%eax, %eax
	ret

.LgetEIP:
	movl	(%esp), %eax
	ret

#if defined(OF_LINUX) || defined(OF_HAIKU) || defined(OF_HURD)
.section .note.GNU-stack, "", %progbits
#endif

Modified src/runtime/lookup-asm/lookup-asm-x86-win32.S from [5c8f780d66] to [60ea15786d].

102
103
104
105
106
107
108


109
110
102
103
104
105
106
107
108
109
110
111
112







+
+


GENERATE_LOOKUP_SUPER _objc_msg_lookup_super_stret _objc_msg_lookup_stret

.LreturnNilMethod:
	movl	$.LnilMethod, %eax
	ret

.LnilMethod:
	_CET_ENDBR

	xorl	%eax, %eax
	ret