ObjFW  Diff

Differences From Artifact [6cfdfe7134]:

To Artifact [0811ebd798]:


21
22
23
24
25
26
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
21
22
23
24
25
26
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







-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
















-
+


-
+

-
+

-
+




-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+







of_forward:
of_forward_stret: /* FIXME */
	stwu	%r1, -112(%r1)
	mflr	%r0
	stw	%r0, 116(%r1)

	/* Save all arguments */
	stw	%r3, 4(%r1)
	stw	%r4, 8(%r1)
	stw	%r5, 12(%r1)
	stw	%r6, 16(%r1)
	stw	%r7, 20(%r1)
	stw	%r8, 24(%r1)
	stw	%r9, 28(%r1)
	stw	%r10, 32(%r1)
	stw	%r3, 8(%r1)
	stw	%r4, 12(%r1)
	stw	%r5, 16(%r1)
	stw	%r6, 20(%r1)
	stw	%r7, 24(%r1)
	stw	%r8, 28(%r1)
	stw	%r9, 32(%r1)
	stw	%r10, 36(%r1)

	/* Save all floating point arguments */
	stfd	%f1, 40(%r1)
	stfd	%f2, 48(%r1)
	stfd	%f3, 56(%r1)
	stfd	%f4, 64(%r1)
	stfd	%f5, 72(%r1)
	stfd	%f6, 80(%r1)
	stfd	%f7, 88(%r1)
	stfd	%f8, 96(%r1)

	lis	%r4, sel_forwardingTargetForSelector_@ha
	la	%r4, sel_forwardingTargetForSelector_@l(%r4)
	bl	objc_msg_lookup@plt
	mtctr	%r3

	lwz	%r3, 4(%r1)
	lwz	%r3, 8(%r1)
	lis	%r4, sel_forwardingTargetForSelector_@ha
	la	%r4, sel_forwardingTargetForSelector_@l(%r4)
	lwz	%r5, 8(%r1)
	lwz	%r5, 12(%r1)
	bctrl
	stw	%r3, 4(%r1)
	stw	%r3, 8(%r1)

	lwz	%r4, 8(%r1)
	lwz	%r4, 12(%r1)
	bl	objc_msg_lookup@plt
	mtctr	%r3

	/* Restore all arguments */
	lwz	%r3, 4(%r1)
	lwz	%r4, 8(%r1)
	lwz	%r5, 12(%r1)
	lwz	%r6, 16(%r1)
	lwz	%r7, 20(%r1)
	lwz	%r8, 24(%r1)
	lwz	%r9, 28(%r1)
	lwz	%r10, 32(%r1)
	lwz	%r3, 8(%r1)
	lwz	%r4, 12(%r1)
	lwz	%r5, 16(%r1)
	lwz	%r6, 20(%r1)
	lwz	%r7, 24(%r1)
	lwz	%r8, 28(%r1)
	lwz	%r9, 32(%r1)
	lwz	%r10, 36(%r1)

	/* Restore all floating point arguments */
	lfd	%f1, 40(%r1)
	lfd	%f2, 48(%r1)
	lfd	%f3, 56(%r1)
	lfd	%f4, 64(%r1)
	lfd	%f5, 72(%r1)