ObjFW  Check-in [074011b393]

Overview
Comment:Fix super lookup of missing methods on SPARC64
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 074011b3937fdc49b1cb5e8baa2725354c4602ecf5764ee26051efc92706587a
User & Date: js on 2016-05-08 21:31:59
Other Links: manifest | tags
Context
2016-05-10
22:39
Fix super lookup of missing methods on SPARC check-in: f4277f8c60 user: js tags: trunk
2016-05-08
21:31
Fix super lookup of missing methods on SPARC64 check-in: 074011b393 user: js tags: trunk
21:08
OFXMLElement: Use more fast enumeration check-in: a7c6add997 user: js tags: trunk
Changes

Modified src/runtime/lookup-asm/lookup-asm-sparc64-elf.S from [2477cd5bc7] to [036e66dcb1].

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
.globl objc_msg_lookup_stret
.globl objc_msg_lookup_super
.globl objc_msg_lookup_super_stret

.section .text
.macro generate_lookup name not_found
\name:
	cmp	%o0, 0
	beq,pn	ret_nil
	 nop

	ldx	[%o0], %o2
	ldx	[%o2 + 64], %o2

.Lmain_\name:
#ifdef OF_SELUID24







|
<







22
23
24
25
26
27
28
29

30
31
32
33
34
35
36
.globl objc_msg_lookup_stret
.globl objc_msg_lookup_super
.globl objc_msg_lookup_super_stret

.section .text
.macro generate_lookup name not_found
\name:
	brz,pn	%o0, ret_nil

	 nop

	ldx	[%o0], %o2
	ldx	[%o2 + 64], %o2

.Lmain_\name:
#ifdef OF_SELUID24
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
79
#ifdef OF_SELUID24
	ldx	[%o2 + %o3], %o2
#endif
	ldx	[%o2 + %o4], %o2
	ldx	[%o2 + %o5], %o2

	cmp	%o2, 0
	beq,pn	\not_found
	 nop

	retl
	 mov	%o2, %o0
.type \name, %function
.size \name, .-\name
.endm

.macro generate_lookup_super name lookup
\name:

	ldx	[%o0], %o2
	cmp	%o2, 0
	beq,pn	ret_nil
	 nop

	ldx	[%o0 + 8], %o2
	ba	.Lmain_\lookup
	 ldx	[%o2 + 64], %o2
.type \name, %function
.size \name, .-\name
.endm

generate_lookup objc_msg_lookup objc_method_not_found







|










>
|
<
|


|







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
#ifdef OF_SELUID24
	ldx	[%o2 + %o3], %o2
#endif
	ldx	[%o2 + %o4], %o2
	ldx	[%o2 + %o5], %o2

	cmp	%o2, 0
	be,pn	%xcc, \not_found
	 nop

	retl
	 mov	%o2, %o0
.type \name, %function
.size \name, .-\name
.endm

.macro generate_lookup_super name lookup
\name:
	mov	%o0, %o2
	ldx	[%o0], %o0

	brz,pn	%o0, ret_nil
	 nop

	ldx	[%o2 + 8], %o2
	ba	.Lmain_\lookup
	 ldx	[%o2 + 64], %o2
.type \name, %function
.size \name, .-\name
.endm

generate_lookup objc_msg_lookup objc_method_not_found