1 .file "vacall-riscv64.c" 2 .option pic 3 .text 4 .align 1 5 .type callback_receiver, @function 6callback_receiver: 7 add sp,sp,-288 8 sd ra,264(sp) 9 sd s0,256(sp) 10 sd s1,248(sp) 11 add s0,sp,272 12 sd s2,240(sp) 13 sd a1,-192(s0) 14 add a1,s0,16 15 ld t3,0(t2) 16 sd a7,8(s0) 17 sd a2,-184(s0) 18 sd a3,-176(s0) 19 sd a4,-168(s0) 20 sd a5,-160(s0) 21 sd a6,-152(s0) 22 sd a7,-144(s0) 23 fsw fa0,-132(s0) 24 fsw fa1,-128(s0) 25 fsw fa2,-124(s0) 26 fsw fa3,-120(s0) 27 fsw fa4,-116(s0) 28 fsw fa5,-112(s0) 29 fsw fa6,-108(s0) 30 fsw fa7,-104(s0) 31 fsd fa0,-96(s0) 32 fsd fa1,-88(s0) 33 fsd fa2,-80(s0) 34 fsd fa3,-72(s0) 35 fsd fa4,-64(s0) 36 fsd fa5,-56(s0) 37 fsd fa6,-48(s0) 38 fsd fa7,-40(s0) 39 sd a1,-240(s0) 40 sd a0,-200(s0) 41 sw zero,-264(s0) 42 ld a0,8(t2) 43 sd zero,-232(s0) 44 sw zero,-224(s0) 45 sw zero,-208(s0) 46 sw zero,-136(s0) 47 add a1,s0,-264 48 jalr t3 49 lw t1,-224(s0) 50 beqz t1,.L1 51 li t3,1 52 beq t1,t3,.L25 53 li t3,2 54 beq t1,t3,.L29 55 li t3,3 56 beq t1,t3,.L25 57 li t3,4 58 beq t1,t3,.L30 59 li t3,5 60 beq t1,t3,.L31 61 li t3,6 62 beq t1,t3,.L32 63 li t3,7 64 beq t1,t3,.L33 65 and t3,t1,-3 66 li t4,8 67 beq t3,t4,.L27 68 li t4,9 69 beq t3,t4,.L27 70 li t3,12 71 beq t1,t3,.L34 72 li t3,13 73 beq t1,t3,.L35 74 li t3,14 75 beq t1,t3,.L27 76 li t3,15 77 bne t1,t3,.L1 78 lw t3,-264(s0) 79 and t3,t3,1024 80 beqz t3,.L1 81 ld t0,-216(s0) 82 add t3,t0,-1 83 bgtu t3,t1,.L1 84 ld t5,-232(s0) 85 li s2,8 86 and t6,t5,7 87 add s1,t0,t6 88 and t5,t5,-8 89 sext.w t6,t6 90 sllw t1,s1,3 91 ld t4,0(t5) 92 sll t3,t6,3 93 bgtu t0,s2,.L15 94 bgtu s1,s2,.L16 95 addw t1,t1,-1 96 li a0,2 97 sll a0,a0,t1 98 add a0,a0,-1 99 and a0,a0,t4 100 sra a0,a0,t3 101.L1: 102 ld ra,264(sp) 103 ld s0,256(sp) 104 ld s1,248(sp) 105 ld s2,240(sp) 106 add sp,sp,288 107 jr ra 108.L25: 109 lbu a0,-256(s0) 110 ld ra,264(sp) 111 ld s0,256(sp) 112 ld s1,248(sp) 113 ld s2,240(sp) 114 add sp,sp,288 115 jr ra 116.L29: 117 lb a0,-256(s0) 118 ld ra,264(sp) 119 ld s0,256(sp) 120 ld s1,248(sp) 121 ld s2,240(sp) 122 add sp,sp,288 123 jr ra 124.L30: 125 lh a0,-256(s0) 126 j .L1 127.L33: 128 lwu a0,-256(s0) 129 j .L1 130.L31: 131 lhu a0,-256(s0) 132 j .L1 133.L27: 134 ld a0,-256(s0) 135 j .L1 136.L32: 137 lw a0,-256(s0) 138 j .L1 139.L34: 140 flw fa0,-256(s0) 141 j .L1 142.L35: 143 fld fa0,-256(s0) 144 j .L1 145.L15: 146 li s2,16 147 sra t4,t4,t3 148 ld t0,8(t5) 149 bleu s1,s2,.L36 150 li a1,-8 151 mulw t6,a1,t6 152 addw t1,t1,-129 153 ld a0,16(t5) 154 li a1,2 155 sll a1,a1,t1 156 add a1,a1,-1 157 and a1,a1,a0 158 sra t3,t0,t3 159 addw t1,t6,64 160 sll a0,t0,t1 161 sll a1,a1,t1 162 or a0,a0,t4 163 or a1,a1,t3 164 j .L1 165.L16: 166 li a0,-8 167 mulw t6,a0,t6 168 addw t1,t1,-65 169 ld t5,8(t5) 170 li a0,2 171 sll a0,a0,t1 172 add a0,a0,-1 173 and a0,a0,t5 174 sra t4,t4,t3 175 sll a0,a0,t6 176 or a0,a0,t4 177 j .L1 178.L36: 179 li a1,-4 180 mulw t6,a1,t6 181 addw t1,t1,-65 182 li a0,2 183 sll a0,a0,t1 184 add a0,a0,-1 185 and a0,a0,t0 186 sra a1,a0,t3 187 addw t1,t6,32 188 sll a0,a0,t1 189 sll a0,a0,t1 190 or a0,a0,t4 191 j .L1 192 .size callback_receiver, .-callback_receiver 193 .align 1 194 .globl callback_get_receiver 195 .type callback_get_receiver, @function 196callback_get_receiver: 197 add sp,sp,-16 198 sd s0,8(sp) 199 add s0,sp,16 200 ld s0,8(sp) 201 lla a0,callback_receiver 202 add sp,sp,16 203 jr ra 204 .size callback_get_receiver, .-callback_get_receiver 205 .ident "GCC: (GNU) 7.3.0" 206