@@ -97,6 +97,17 @@ pub const closure_thunk = $if ppc64le {
9797 0x51 , 0x22 , 0xC0 , 0x28 , // ld.d t5, t6, 8
9898 0x20 , 0x02 , 0x00 , 0x4C , // jr t5
9999 ]!
100+ } $else $if sparc64 {
101+ [
102+ u8 (0x83 ), 0x41 , 0x40 , 0x00 , // rd %pc, %g1
103+ 0x05 , 0x00 , 0x00 , 0x10 , // sethi %hi(0x4000), %g2
104+ 0x84 , 0x10 , 0xa0 , 0x00 , // mov %g2, %g2 ! 4000 <main>
105+ 0x82 , 0x20 , 0x40 , 0x02 , // sub %g1, %g2, %g1
106+ 0xff , 0x18 , 0x60 , 0x00 , // ldd [ %l1 ], %d62
107+ 0xc2 , 0x58 , 0x60 , 0x08 , // ldx [ %g1 + 8 ], %g1
108+ 0x81 , 0xc0 , 0x40 , 0x00 , // jmp %g1
109+ 0x01 , 0x00 , 0x00 , 0x00 // nop
110+ ]!
100111} $else {
101112 [u8 (0 )]!
102113}
@@ -150,6 +161,12 @@ const closure_get_data_bytes = $if arm32 {
150161 u8 (0x04 ), 0xB9 , 0x14 , 0x01 , // movfr2gr.d a0, f8
151162 0x20 , 0x00 , 0x00 , 0x4C , // ret
152163 ]!
164+ } $else $if sparc64 {
165+ [
166+ u8 (0x91 ), 0xb0 , 0x22 , 0x1f , // movdtox %f62, %o0
167+ 0x81 , 0xc3 , 0xe0 , 0x08 , // retl
168+ 0x01 , 0x00 , 0x00 , 0x00 // nop
169+ ]!
153170} $else {
154171 [u8 (0 )]!
155172}
0 commit comments