89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
j $ra
.type \name, %function
.size \name, .-\name
.endm
.macro generate_lookup_super name lookup
\name:
ld $t0, 0($a0)
beqz $t0, 0f
ld $t0, 8($a0)
ld $t0, 64($t0)
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)
|
>
|
|
|
>
|
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
j $ra
.type \name, %function
.size \name, .-\name
.endm
.macro generate_lookup_super name lookup
\name:
move $t0, $a0
ld $a0, 0($a0)
beqz $a0, 0f
ld $t0, 8($t0)
ld $t0, 64($t0)
addiu $t9, $t9, \lookup-\name
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)
|