ObjFW  Check-in [07d8ae8c34]

Overview
Comment:apple-forwarding-arm64.S: Fix two bugs.

The offset for the stored x0 was wrong so that comparing the result of
the call to -[forwardingTargetForSelector:] with self did not work. The
other bug was that x19 was not restored before jumping to
of_method_not_found.

Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 07d8ae8c34d010c9430ba94cc4e3b69994f2c033e8e2a86f93dcfff0a57423cd
User & Date: js on 2014-01-14 00:56:13
Other Links: manifest | tags
Context
2014-01-15
18:53
lookup-asm: Clean up local labels. check-in: f4cf33fee6 user: js tags: trunk
2014-01-14
00:56
apple-forwarding-arm64.S: Fix two bugs. check-in: 07d8ae8c34 user: js tags: trunk
2014-01-13
13:28
Remove class_isKindOfClass(). check-in: 7c0fa1fa85 user: js tags: trunk
Changes

Modified src/forwarding/apple-forwarding-arm64.S from [2bd252147c] to [a6501f118e].

60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
	cbz	x0, fail

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

	cbz	x0, fail
	ldr	x1, [sp, #8]
	cmp	x0, x1
	b.eq	fail

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







|







60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
	cbz	x0, fail

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

	cbz	x0, fail
	ldr	x1, [sp]
	cmp	x0, x1
	b.eq	fail

	/* Restore all arguments, x8 and x19, but not x0 */
	ldr	x1, [sp, #8]
	ldp	x2, x3, [sp, #16]
	ldp	x4, x5, [sp, #32]
84
85
86
87
88
89
90

91
92
93
94
95
	mov	sp, fp
	ldp	fp, lr, [sp], #208

	b	_objc_msgSend

fail:
	ldp	x0, x1, [sp]


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

	b	_of_method_not_found







>





84
85
86
87
88
89
90
91
92
93
94
95
96
	mov	sp, fp
	ldp	fp, lr, [sp], #208

	b	_objc_msgSend

fail:
	ldp	x0, x1, [sp]
	ldr	x19, [sp, #72]

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

	b	_of_method_not_found