1 .file "vacall-sparc64.c" 2 .section ".text" 3 .align 4 4 .global callback_receiver 5 .type callback_receiver, #function 6 .proc 020 7callback_receiver: 8 .register %g2, #scratch 9 .register %g3, #scratch 10 save %sp, -448, %sp 11 stx %i0, [%fp+2175] 12 stx %i1, [%fp+2183] 13 stx %i2, [%fp+2191] 14 stx %i3, [%fp+2199] 15 stx %i4, [%fp+2207] 16 stx %i5, [%fp+2215] 17 std %f0, [%fp+1903] 18 std %f2, [%fp+1911] 19 std %f4, [%fp+1919] 20 std %f6, [%fp+1927] 21 std %f8, [%fp+1935] 22 std %f10, [%fp+1943] 23 std %f12, [%fp+1951] 24 std %f14, [%fp+1959] 25 std %f16, [%fp+1967] 26 std %f18, [%fp+1975] 27 std %f20, [%fp+1983] 28 std %f22, [%fp+1991] 29 std %f24, [%fp+1999] 30 std %f26, [%fp+2007] 31 std %f28, [%fp+2015] 32 std %f30, [%fp+2023] 33 st %f1, [%fp+1835] 34 st %f3, [%fp+1839] 35 st %f5, [%fp+1843] 36 st %f7, [%fp+1847] 37 st %f9, [%fp+1851] 38 st %f11, [%fp+1855] 39 st %f13, [%fp+1859] 40 st %f15, [%fp+1863] 41 st %f17, [%fp+1867] 42 st %f19, [%fp+1871] 43 st %f21, [%fp+1875] 44 st %f23, [%fp+1879] 45 add %fp, 2175, %g2 46 stx %g0, [%fp+1807] 47 st %f25, [%fp+1883] 48 st %f27, [%fp+1887] 49 st %f29, [%fp+1891] 50 st %f31, [%fp+1895] 51 st %g0, [%fp+1775] 52 st %g0, [%fp+1815] 53 st %g0, [%fp+1831] 54 ldx [%g5+8], %o0 55 stx %g2, [%fp+1799] 56 ldx [%g5], %g3 57 call %g3, 0 58 add %fp, 1775, %o1 59 lduw [%fp+1815], %g1 60 cmp %g1, 0 61 be,pn %icc, .LL61 62 cmp %g1, 1 63 be,pn %icc, .LL50 64 cmp %g1, 2 65 be,pn %icc, .LL50 66 cmp %g1, 3 67 be,pn %icc, .LL53 68 cmp %g1, 4 69 be,pn %icc, .LL54 70 cmp %g1, 5 71 be,pn %icc, .LL55 72 cmp %g1, 6 73 be,pn %icc, .LL56 74 cmp %g1, 7 75 be,pn %icc, .LL57 76 cmp %g1, 8 77 be,pn %icc, .LL51 78 cmp %g1, 9 79 be,pn %icc, .LL51 80 cmp %g1, 10 81 be,pn %icc, .LL51 82 cmp %g1, 11 83 be,pn %icc, .LL51 84 cmp %g1, 12 85 be,pn %icc, .LL58 86 cmp %g1, 13 87 be,pn %icc, .LL59 88 cmp %g1, 14 89 be,pn %icc, .LL51 90 cmp %g1, 15 91 bne,pt %icc, .LL61 92 lduw [%fp+1775], %g1 93 andcc %g1, 1024, %g0 94 be,pn %xcc, .LL61 95 ldx [%fp+1823], %o5 96 add %o5, -1, %g1 97 cmp %g1, 31 98 bgu,pn %xcc, .LL61 99 ldx [%fp+1807], %g1 100 cmp %o5, 8 101 and %g1, 7, %o1 102 and %g1, -8, %l1 103 bgu,pt %xcc, .LL35 104 add %o5, %o1, %g2 105 cmp %g2, 8 106 bgu,pt %xcc, .LL37 107 sllx %o1, 3, %g4 108 sllx %g2, 3, %g2 109 ldx [%l1], %g3 110 sub %g0, %g2, %g2 111 mov -1, %g1 112 sllx %g1, %g2, %g1 113 and %g1, %g3, %g1 114 return %i7+8 115 sllx %g1, %g4, %o0 116.LL47: 117 ldx [%l1], %g1 118 sllx %g1, %o3, %g1 119 ldx [%l1+8], %g4 120 ldx [%l1+16], %o5 121 sllx %g4, %o3, %o0 122 sllx %o5, %o3, %o7 123 ldx [%l1+24], %o4 124 sllx %g2, 3, %o2 125 sllx %o4, %o3, %l0 126 ldx [%l1+32], %o1 127 sub %g0, %o2, %o2 128 mov 64, %g3 129 sub %g3, %o3, %g3 130 srax %g4, %g3, %g4 131 srax %o5, %g3, %o5 132 or %g1, %g4, %i0 133 srax %o4, %g3, %o4 134 mov -1, %g1 135 or %o0, %o5, %i1 136 sllx %g1, %o2, %g1 137 or %o7, %o4, %i2 138 and %g1, %o1, %g1 139 srax %g1, %g3, %g1 140 or %l0, %g1, %i3 141.LL61: 142 return %i7+8 143 nop 144.LL50: 145 ldsb [%fp+1783], %i0 146 return %i7+8 147 nop 148.LL54: 149 ldsh [%fp+1783], %i0 150 return %i7+8 151 nop 152.LL53: 153 ldub [%fp+1783], %i0 154 return %i7+8 155 nop 156.LL51: 157 ldx [%fp+1783], %i0 158 return %i7+8 159 nop 160.LL55: 161 lduh [%fp+1783], %i0 162 return %i7+8 163 nop 164.LL56: 165 ldsw [%fp+1783], %i0 166 return %i7+8 167 nop 168.LL57: 169 lduw [%fp+1783], %i0 170 return %i7+8 171 nop 172.LL58: 173 ld [%fp+1783], %f0 174 return %i7+8 175 nop 176.LL59: 177 ldd [%fp+1783], %f0 178 return %i7+8 179 nop 180.LL35: 181 cmp %o5, 16 182 bgu,pt %xcc, .LL39 183 cmp %o5, 24 184 cmp %g2, 16 185 bgu,pt %xcc, .LL41 186 sllx %o1, 3, %o4 187 sllx %g2, 3, %g3 188 ldx [%l1+8], %g2 189 sll %o1, 3, %o5 190 sllx %o1, 2, %o4 191 sub %g0, %g3, %g3 192 ldx [%l1], %g4 193 mov -1, %g1 194 sllx %g4, %o5, %g4 195 sllx %g1, %g3, %g1 196 and %g1, %g2, %g1 197 mov 32, %g2 198 sllx %g1, %o5, %i1 199 sub %g2, %o4, %g2 200 srax %g1, %g2, %g1 201 srax %g1, %g2, %g1 202 return %i7+8 203 or %g4, %g1, %o0 204.LL37: 205 sllx %g2, 3, %g3 206 ldx [%l1+8], %o5 207 sub %g0, %g3, %g3 208 sub %g0, %g4, %o4 209 ldx [%l1], %g2 210 mov -1, %g1 211 sllx %g2, %g4, %g2 212 sllx %g1, %g3, %g1 213 and %g1, %o5, %g1 214 srax %g1, %o4, %g1 215 return %i7+8 216 or %g2, %g1, %o0 217.LL39: 218 bgu,pt %xcc, .LL43 219 cmp %g2, 32 220 cmp %g2, 24 221 bgu,pt %xcc, .LL45 222 sllx %o1, 3, %o3 223 sllx %o1, 2, %g1 224 sll %o1, 3, %o5 225 sllx %g2, 3, %o4 226 ldx [%l1+8], %g3 227 ldx [%l1+16], %o3 228 sllx %g3, %o5, %o2 229 sub %g0, %o4, %o4 230 mov 32, %g4 231 ldx [%l1], %g2 232 sub %g4, %g1, %g4 233 sllx %g2, %o5, %g2 234 srax %g3, %g4, %g3 235 mov -1, %g1 236 srax %g3, %g4, %g3 237 sllx %g1, %o4, %g1 238 and %g1, %o3, %g1 239 sllx %g1, %o5, %i2 240 srax %g1, %g4, %g1 241 srax %g1, %g4, %g1 242 or %o2, %g1, %i1 243 return %i7+8 244 or %g2, %g3, %o0 245.LL41: 246 sllx %g2, 3, %o5 247 ldx [%l1+8], %g3 248 ldx [%l1+16], %o3 249 sllx %g3, %o4, %o2 250 sub %g0, %o5, %o5 251 mov 64, %g4 252 ldx [%l1], %g2 253 sub %g4, %o4, %g4 254 sllx %g2, %o4, %g2 255 srax %g3, %g4, %g3 256 mov -1, %g1 257 sllx %g1, %o5, %g1 258 and %g1, %o3, %g1 259 srax %g1, %g4, %g1 260 or %o2, %g1, %i1 261 return %i7+8 262 or %g2, %g3, %o0 263.LL45: 264 ldx [%l1], %g1 265 sllx %g1, %o3, %g1 266 ldx [%l1+8], %g3 267 ldx [%l1+16], %g4 268 sllx %g3, %o3, %o2 269 sllx %g4, %o3, %o0 270 sllx %g2, 3, %o4 271 ldx [%l1+24], %o1 272 sub %g0, %o4, %o4 273 mov 64, %o5 274 sub %o5, %o3, %o5 275 srax %g3, %o5, %g3 276 srax %g4, %o5, %g4 277 or %g1, %g3, %i0 278 or %o2, %g4, %i1 279 mov -1, %g1 280 sllx %g1, %o4, %g1 281 and %g1, %o1, %g1 282 srax %g1, %o5, %g1 283 or %o0, %g1, %i2 284 return %i7+8 285 nop 286.LL43: 287 bgu,pt %xcc, .LL47 288 sllx %o1, 3, %o3 289 sll %o1, 3, %o4 290 ldx [%l1], %g1 291 sllx %g1, %o4, %g1 292 sllx %o1, 2, %o3 293 sllx %g2, 3, %o5 294 ldx [%l1+8], %g3 295 ldx [%l1+16], %g4 296 sllx %g3, %o4, %o1 297 sllx %g4, %o4, %o0 298 ldx [%l1+24], %o2 299 sub %g0, %o5, %o5 300 mov 32, %g2 301 sub %g2, %o3, %g2 302 srax %g3, %g2, %g3 303 srax %g4, %g2, %g4 304 srax %g3, %g2, %g3 305 srax %g4, %g2, %g4 306 or %g1, %g3, %i0 307 or %o1, %g4, %i1 308 mov -1, %g1 309 sllx %g1, %o5, %g1 310 and %g1, %o2, %g1 311 sllx %g1, %o4, %i3 312 srax %g1, %g2, %g1 313 srax %g1, %g2, %g1 314 or %o0, %g1, %i2 315 return %i7+8 316 nop 317 .size callback_receiver, .-callback_receiver 318 .ident "GCC: (GNU) 4.0.2" 319 .section ".note.GNU-stack" 320