ObjFW  Check-in [c7b4e05b47]

Overview
Comment:lookup-asm-sparc-elf.S: Minor improvements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: c7b4e05b478ce2c1473d025056950d7982a5be40e61c982eba633fa363aae4fe
User & Date: js on 2014-06-25 21:40:57
Other Links: manifest | tags
Context
2014-06-26
00:58
OFNumber: Remove methods for arithmetic check-in: 366681bebe user: js tags: trunk
2014-06-25
21:40
lookup-asm-sparc-elf.S: Minor improvements check-in: c7b4e05b47 user: js tags: trunk
17:55
Small Android fixes check-in: 05a247fbe4 user: js tags: trunk
Changes

Modified src/runtime/lookup-asm/lookup-asm-sparc-elf.S from [ef9b28568c] to [6b3c93ab22].

60
61
62
63
64
65
66
67

68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84

85
86
87
88
89
90
91
92
93
94
95

96
97
98
99
100
101
102
60
61
62
63
64
65
66

67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83

84
85
86
87
88
89
90
91
92
93
94

95
96
97
98
99
100
101
102







-
+
















-
+










-
+







.size \name, .-\name
.endm

.macro generate_lookup_super name lookup
\name:
	ld	[%o0], %o2
	cmp	%o2, 0
	beq	ret_nil
	beq,a	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
generate_lookup objc_msg_lookup_stret objc_method_not_found_stret
generate_lookup_super objc_msg_lookup_super objc_msg_lookup
generate_lookup_super objc_msg_lookup_super_stret objc_msg_lookup_stret

ret_nil:
#ifdef PIC
	or	%o7, %g0, %o2
	mov	%o7, %g1

	sethi	%hi(_GLOBAL_OFFSET_TABLE_ - 4), %o1
	call	0f
	 add	%o1, %lo(_GLOBAL_OFFSET_TABLE_ + 4), %o1
0:
	add	%o7, %o1, %o1

	sethi	%hi(nil_method), %o0
	or	%o0, %lo(nil_method), %o0

	jmpl	%o2 + 8, %g0
	jmpl	%g1 + 8, %g0
	 ld	[%o1 + %o0], %o0
#else
	sethi	%hi(nil_method), %o0
	retl
	 or	%o0, %lo(nil_method), %o0
#endif