ObjFW  Diff

Differences From Artifact [37f4b60ca1]:

To Artifact [14d6290458]:


41
42
43
44
45
46
47
48

49
50

51
52
53
54
55
56
57
41
42
43
44
45
46
47

48
49

50
51
52
53
54
55
56
57







-
+

-
+







.Lmain_\name:
	mov	rax, [rsi]
	movzx	ecx, ah
	movzx	edx, al
#ifdef OF_SELUID24
	shr	eax, 16

	mov	r8, [r8+rax*8]
	mov	r8,  [r8+rax*8]
#endif
	mov	r8, [r8+rcx*8]
	mov	r8,  [r8+rcx*8]
	mov	rax, [r8+rdx*8]

	test	rax, rax
	jz	short \not_found@PLT

	ret

69
70
71
72
73
74
75
76

77
78
79
80

81
82
83
84
85
86
87
69
70
71
72
73
74
75

76
77
78
79

80
81
82
83
84
85
86
87







-
+



-
+







.endm

.macro generate_lookup_super name lookup
\name:
	mov	r8, rdi
	mov	rdi, [rdi]
	test	rdi, rdi
	jz	ret_nil
	jz	short ret_nil

	mov	r8, [r8+8]
	mov	r8, [r8+64]
	jmp	.Lmain_\lookup
	jmp	short .Lmain_\lookup
.type \name, %function
.size \name, .-\name
.endm

generate_lookup objc_msg_lookup objc_method_not_found
generate_lookup objc_msg_lookup_stret objc_method_not_found_stret
generate_lookup_super objc_msg_lookup_super objc_msg_lookup