ObjFW  Diff

Differences From Artifact [ca53a90db3]:

To Artifact [b3182ba60d]:


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

	test	dil, 1
	jnz	LtaggedPointer_$0

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








|







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

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

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

nilMethod:
	xor	rax, rax
	ret







|











|
|


|


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

LreturnNilMethod:
	lea	rax, [rip + LnilMethod]
	ret

LnilMethod:
	xor	rax, rax
	ret