ObjFW  Diff

Differences From Artifact [ca53a90db3]:

To Artifact [b3182ba60d]:


36
37
38
39
40
41
42
43

44
45
46
47
48
49
50
36
37
38
39
40
41
42

43
44
45
46
47
48
49
50







-
+







	.intel_syntax noprefix
.endmacro

.section __TEXT, __text, regular, pure_instructions
.macro GENERATE_LOOKUP
$0:
	test	rdi, rdi
	jz	returnNilMethod
	jz	LreturnNilMethod

	test	dil, 1
	jnz	LtaggedPointer_$0

	mov	r8, [rdi]
	mov	r8, [r8 + 64]

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
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







-
+











-
-
+
+


-
+


.endmacro

.macro GENERATE_LOOKUP_SUPER
$0:
	mov	r8, rdi
	mov	rdi, [rdi]
	test	rdi, rdi
	jz	returnNilMethod
	jz	LreturnNilMethod

	movq	r8, [r8 + 8]
	movq	r8, [r8 + 64]
	jmp	Lmain_$1
.endmacro

GENERATE_LOOKUP _objc_msg_lookup, _objc_methodNotFound
GENERATE_LOOKUP _objc_msg_lookup_stret, _objc_methodNotFound_stret
GENERATE_LOOKUP_SUPER _objc_msg_lookup_super, _objc_msg_lookup
GENERATE_LOOKUP_SUPER _objc_msg_lookup_super_stret, _objc_msg_lookup_stret

returnNilMethod:
	lea	rax, [rip + nilMethod]
LreturnNilMethod:
	lea	rax, [rip + LnilMethod]
	ret

nilMethod:
LnilMethod:
	xor	rax, rax
	ret