ObjFW  Check-in [1a3d3baa33]

Overview
Comment:lookup-asm-mips64-elf.S: Small optimization
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 1a3d3baa33c54b68888bf23a42dc1d15cc049fd646eeb0d4085fe44772c408c5
User & Date: js on 2016-05-22 11:53:29
Other Links: manifest | tags
Context
2016-05-22
12:08
Fix --disable-files with --enable-sockets check-in: 36c2ceaeb0 user: js tags: trunk
11:53
lookup-asm-mips64-elf.S: Small optimization check-in: 1a3d3baa33 user: js tags: trunk
10:03
MIPS64 lookup: That addiu should have been daddiu check-in: 34fe2d87f2 user: js tags: trunk
Changes

Modified src/runtime/lookup-asm/lookup-asm-mips-elf.S from [4a810e0b17] to [c8b71f0284].

64
65
66
67
68
69
70
71

72
73
74
75
76
77
78
79

80
81
82
83
84
85
86
64
65
66
67
68
69
70

71
72
73
74
75
76
77
78

79
80
81
82
83
84
85
86







-
+







-
+







#ifdef OF_PIC
	beqz	$t0, 1f
#else
	beqz	$t0, \not_found
#endif

	move	$v0, $t0
	j	$ra
	jr	$ra

0:
#ifdef OF_PIC
	addiu	$v0, $t9, nil_method-\name
#else
	la	$v0, nil_method
#endif
	j	$ra
	jr	$ra

#ifdef OF_PIC
1:
	lui	$gp, %hi(_gp_disp)
	addiu	$gp, $gp, %lo(_gp_disp)
	addu	$gp, $gp, $t9
	addiu	$gp, $gp, 1b-\name
106
107
108
109
110
111
112
113

114
115
116
117
118
119
120
121
122
123
124
125

126
127
128
129
106
107
108
109
110
111
112

113
114
115
116
117
118
119
120
121
122
123
124

125
126
127
128
129







-
+











-
+





0:
#ifdef OF_PIC
	addiu	$v0, $t9, nil_method-\name
#else
	la	$v0, nil_method
#endif
	j	$ra
	jr	$ra
.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

nil_method:
	move	$v0, $zero
	j	$ra
	jr	$ra

#ifdef OF_LINUX
.section .note.GNU-stack, "", %progbits
#endif

Modified src/runtime/lookup-asm/lookup-asm-mips64-elf.S from [cda30cbc44] to [9ca4623ef2].

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
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







-
+






-
+


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







	ld	$t0, 0($t0)
	daddu	$t0, $t0, $t3
	ld	$t0, 0($t0)

	beqz	$t0, 1f

	move	$v0, $t0
	j	$ra
	jr	$ra

0:
	lui	$v0, %hi(%neg(%gp_rel(\name)))
	daddu	$v0, $v0, $t9
	daddiu	$v0, $v0, %lo(%neg(%gp_rel(\name)))
	ld	$v0, %got_disp(nil_method)($v0)
	j	$ra
	jr	$ra

1:
	daddiu	$sp, $sp, -32
	sd	$gp, 16($sp)
	lui	$gp, %hi(%neg(%gp_rel(\name)))
	daddu	$gp, $gp, $t9
	daddiu	$gp, $gp, %lo(%neg(%gp_rel(\name)))
	lui	$t0, %hi(%neg(%gp_rel(\name)))
	daddu	$t0, $t0, $t9
	daddiu	$t0, $t0, %lo(%neg(%gp_rel(\name)))
	sd	$ra, 24($sp)

	jal	\not_found
	ld	$t9, %got_disp(\not_found)($t0)

	ld	$ra, 24($sp)
	ld	$gp, 16($sp)
	daddiu	$sp, $sp, 32
	j	$ra
	jr	$t9
.type \name, %function
.size \name, .-\name
.endm

.macro generate_lookup_super name lookup
\name:
	move	$t0, $a0
104
105
106
107
108
109
110
111

112
113
114
115
116
117
118
119
120
121
122
123

124
125
126
127
96
97
98
99
100
101
102

103
104
105
106
107
108
109
110
111
112
113
114

115
116
117
118
119







-
+











-
+




	b	.Lmain_\lookup

0:
	lui	$v0, %hi(%neg(%gp_rel(\name)))
	daddu	$v0, $v0, $t9
	daddiu	$v0, $v0, %lo(%neg(%gp_rel(\name)))
	ld	$v0, %got_disp(nil_method)($v0)
	j	$ra
	jr	$ra
.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

nil_method:
	move	$v0, $zero
	j	$ra
	jr	$ra

#ifdef OF_LINUX
.section .note.GNU-stack, "", %progbits
#endif