ObjFW  Check-in [f4277f8c60]

Overview
Comment:Fix super lookup of missing methods on SPARC
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: f4277f8c60ddceb56bf09077180f9b3916cad2420eb5eeb29588bbae7593de53
User & Date: js on 2016-05-10 22:39:23
Other Links: manifest | tags
Context
2016-05-14
23:47
Fix super lookup of missing methods on MIPS check-in: 9e21852403 user: js tags: trunk
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
Changes

Modified src/runtime/lookup-asm/lookup-asm-sparc-elf.S from [6572abd901] to [c62e0b0f74].

23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
.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

	ld	[%o0], %o2
	ld	[%o2 + 32], %o2

.Lmain_\name:
#ifdef OF_SELUID24







|







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

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

	ld	[%o0], %o2
	ld	[%o2 + 32], %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
	ld	[%o2 + %o3], %o2
#endif
	ld	[%o2 + %o4], %o2
	ld	[%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:

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

	ld	[%o0 + 4], %o2
	ba	.Lmain_\lookup
	 ld	[%o2 + 32], %o2
.type \name, %function
.size \name, .-\name
.endm

generate_lookup objc_msg_lookup objc_method_not_found







|










>
|
|
|


|







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

	cmp	%o2, 0
	be	\not_found
	 nop

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

.macro generate_lookup_super name lookup
\name:
	mov	%o0, %o2
	ld	[%o0], %o0
	cmp	%o0, 0
	be	ret_nil
	 nop

	ld	[%o2 + 4], %o2
	ba	.Lmain_\lookup
	 ld	[%o2 + 32], %o2
.type \name, %function
.size \name, .-\name
.endm

generate_lookup objc_msg_lookup objc_method_not_found