1 2 .align 2 3 .globl q_atomic_test_and_set_int 4 .globl .q_atomic_test_and_set_int 5q_atomic_test_and_set_int: 6.q_atomic_test_and_set_int: 7 lwarx 6,0,3 8 xor. 6,6,4 9 bne $+12 10 stwcx. 5,0,3 11 bne- $-16 12 subfic 3,6,0 13 adde 3,3,6 14 blr 15LT..q_atomic_test_and_set_int: 16 .long 0 17 .byte 0,9,32,64,0,0,3,0 18 .long 0 19 .long LT..q_atomic_test_and_set_int-.q_atomic_test_and_set_int 20 .short 25 21 .byte "q_atomic_test_and_set_int" 22 .align 2 23 24 .align 2 25 .globl q_atomic_test_and_set_acquire_int 26 .globl .q_atomic_test_and_set_acquire_int 27q_atomic_test_and_set_acquire_int: 28.q_atomic_test_and_set_acquire_int: 29 lwarx 6,0,3 30 xor. 6,6,4 31 bne $+16 32 stwcx. 5,0,3 33 bne- $-16 34 isync 35 subfic 3,6,0 36 adde 3,3,6 37 blr 38LT..q_atomic_test_and_set_acquire_int: 39 .long 0 40 .byte 0,9,32,64,0,0,3,0 41 .long 0 42 .long LT..q_atomic_test_and_set_acquire_int-.q_atomic_test_and_set_acquire_int 43 .short 33 44 .byte "q_atomic_test_and_set_acquire_int" 45 .align 2 46 47 .align 2 48 .globl q_atomic_test_and_set_release_int 49 .globl .q_atomic_test_and_set_release_int 50q_atomic_test_and_set_release_int: 51.q_atomic_test_and_set_release_int: 52 lwarx 6,0,3 53 xor. 6,6,4 54 bne $+12 55 stwcx. 5,0,3 56 bne- $-16 57 subfic 3,6,0 58 adde 3,3,6 59 blr 60LT..q_atomic_test_and_set_release_int: 61 .long 0 62 .byte 0,9,32,64,0,0,3,0 63 .long 0 64 .long LT..q_atomic_test_and_set_release_int-.q_atomic_test_and_set_release_int 65 .short 33 66 .byte "q_atomic_test_and_set_release_int" 67 .align 2 68 69 .align 2 70 .globl q_atomic_test_and_set_ptr 71 .globl .q_atomic_test_and_set_ptr 72q_atomic_test_and_set_ptr: 73.q_atomic_test_and_set_ptr: 74 lwarx 6,0,3 75 xor. 6,6,4 76 bne $+12 77 stwcx. 5,0,3 78 bne- $-16 79 subfic 3,6,0 80 adde 3,3,6 81 blr 82LT..q_atomic_test_and_set_ptr: 83 .long 0 84 .byte 0,9,32,64,0,0,3,0 85 .long 0 86 .long LT..q_atomic_test_and_set_ptr-.q_atomic_test_and_set_ptr 87 .short 25 88 .byte "q_atomic_test_and_set_ptr" 89 .align 2 90 91 .align 2 92 .globl q_atomic_test_and_set_acquire_ptr 93 .globl .q_atomic_test_and_set_acquire_ptr 94q_atomic_test_and_set_acquire_ptr: 95.q_atomic_test_and_set_acquire_ptr: 96 lwarx 6,0,3 97 xor. 6,6,4 98 bne $+16 99 stwcx. 5,0,3 100 bne- $-16 101 isync 102 subfic 3,6,0 103 adde 3,3,6 104 blr 105LT..q_atomic_test_and_set_acquire_ptr: 106 .long 0 107 .byte 0,9,32,64,0,0,3,0 108 .long 0 109 .long LT..q_atomic_test_and_set_acquire_ptr-.q_atomic_test_and_set_acquire_ptr 110 .short 25 111 .byte "q_atomic_test_and_set_acquire_ptr" 112 .align 2 113 114 .align 2 115 .globl q_atomic_test_and_set_release_ptr 116 .globl .q_atomic_test_and_set_release_ptr 117q_atomic_test_and_set_release_ptr: 118.q_atomic_test_and_set_release_ptr: 119 lwarx 6,0,3 120 xor. 6,6,4 121 bne $+12 122 stwcx. 5,0,3 123 bne- $-16 124 subfic 3,6,0 125 adde 3,3,6 126 blr 127LT..q_atomic_test_and_set_release_ptr: 128 .long 0 129 .byte 0,9,32,64,0,0,3,0 130 .long 0 131 .long LT..q_atomic_test_and_set_release_ptr-.q_atomic_test_and_set_release_ptr 132 .short 33 133 .byte "q_atomic_test_and_set_release_ptr" 134 .align 2 135 136 .align 2 137 .globl q_atomic_increment 138 .globl .q_atomic_increment 139q_atomic_increment: 140.q_atomic_increment: 141 lwarx 4,0,3 142 addi 4,4,1 143 stwcx. 4,0,3 144 bne- $-12 145 mr 3,4 146 blr 147LT..q_atomic_increment: 148 .long 0 149 .byte 0,9,32,64,0,0,1,0 150 .long 0 151 .long LT..q_atomic_increment-.q_atomic_increment 152 .short 18 153 .byte "q_atomic_increment" 154 .align 2 155 156 .align 2 157 .globl q_atomic_decrement 158 .globl .q_atomic_decrement 159q_atomic_decrement: 160.q_atomic_decrement: 161 lwarx 4,0,3 162 subi 4,4,1 163 stwcx. 4,0,3 164 bne- $-12 165 mr 3,4 166 blr 167LT..q_atomic_decrement: 168 .long 0 169 .byte 0,9,32,64,0,0,1,0 170 .long 0 171 .long LT..q_atomic_decrement-.q_atomic_decrement 172 .short 18 173 .byte "q_atomic_decrement" 174 .align 2 175 176 .align 2 177 .globl q_atomic_set_int 178 .globl .q_atomic_set_int 179q_atomic_set_int: 180.q_atomic_set_int: 181 lwarx 5,0,3 182 stwcx. 4,0,3 183 bne- $-8 184 mr 3,5 185 blr 186LT..q_atomic_set_int: 187 .long 0 188 .byte 0,9,32,64,0,0,2,0 189 .long 0 190 .long LT..q_atomic_set_int-.q_atomic_set_int 191 .short 16 192 .byte "q_atomic_set_int" 193 .align 2 194 195 .align 2 196 .globl q_atomic_fetch_and_store_acquire_int 197 .globl .q_atomic_fetch_and_store_acquire_int 198q_atomic_fetch_and_store_acquire_int: 199.q_atomic_fetch_and_store_acquire_int: 200 lwarx 5,0,3 201 stwcx. 4,0,3 202 bne- $-8 203 isync 204 mr 3,5 205 blr 206LT..q_atomic_fetch_and_store_acquire_int: 207 .long 0 208 .byte 0,9,32,64,0,0,2,0 209 .long 0 210 .long LT..q_atomic_fetch_and_store_acquire_int-.q_atomic_fetch_and_store_acquire_int 211 .short 16 212 .byte "q_atomic_fetch_and_store_acquire_int" 213 .align 2 214 215 .align 2 216 .globl q_atomic_fetch_and_store_release_int 217 .globl .q_atomic_fetch_and_store_release_int 218q_atomic_fetch_and_store_release_int: 219.q_atomic_fetch_and_store_release_int: 220 lwarx 5,0,3 221 stwcx. 4,0,3 222 bne- $-8 223 mr 3,5 224 blr 225LT..q_atomic_fetch_and_store_release_int: 226 .long 0 227 .byte 0,9,32,64,0,0,2,0 228 .long 0 229 .long LT..q_atomic_fetch_and_store_release_int-.q_atomic_fetch_and_store_release_int 230 .short 16 231 .byte "q_atomic_fetch_and_store_release_int" 232 .align 2 233 234 .align 2 235 .globl q_atomic_set_ptr 236 .globl .q_atomic_set_ptr 237q_atomic_set_ptr: 238.q_atomic_set_ptr: 239 lwarx 5,0,3 240 stwcx. 4,0,3 241 bne- $-8 242 mr 3,5 243 blr 244LT..q_atomic_set_ptr: 245 .long 0 246 .byte 0,9,32,64,0,0,2,0 247 .long 0 248 .long LT..q_atomic_set_ptr-.q_atomic_set_ptr 249 .short 16 250 .byte "q_atomic_set_ptr" 251 .align 2 252 253 .align 2 254 .globl q_atomic_fetch_and_store_acquire_ptr 255 .globl .q_atomic_fetch_and_store_acquire_ptr 256q_atomic_fetch_and_store_acquire_ptr: 257.q_atomic_fetch_and_store_acquire_ptr: 258 lwarx 5,0,3 259 stwcx. 4,0,3 260 bne- $-8 261 isync 262 mr 3,5 263 blr 264LT..q_atomic_fetch_and_store_acquire_ptr: 265 .long 0 266 .byte 0,9,32,64,0,0,2,0 267 .long 0 268 .long LT..q_atomic_fetch_and_store_acquire_ptr-.q_atomic_fetch_and_store_acquire_ptr 269 .short 16 270 .byte "q_atomic_fetch_and_store_acquire_ptr" 271 .align 2 272 273 .align 2 274 .globl q_atomic_fetch_and_store_release_ptr 275 .globl .q_atomic_fetch_and_store_release_ptr 276q_atomic_fetch_and_store_release_ptr: 277.q_atomic_fetch_and_store_release_ptr: 278 lwarx 5,0,3 279 stwcx. 4,0,3 280 bne- $-8 281 mr 3,5 282 blr 283LT..q_atomic_fetch_and_store_release_ptr: 284 .long 0 285 .byte 0,9,32,64,0,0,2,0 286 .long 0 287 .long LT..q_atomic_fetch_and_store_release_ptr-.q_atomic_fetch_and_store_release_ptr 288 .short 16 289 .byte "q_atomic_fetch_and_store_release_ptr" 290 .align 2 291 292 .align 2 293 .globl q_atomic_fetch_and_add_int 294 .globl .q_atomic_fetch_and_add_int 295q_atomic_fetch_and_add_int: 296.q_atomic_fetch_and_add_int: 297 lwarx 5,0,3 298 add 6,4,5 299 stwcx. 6,0,3 300 bne- $-12 301 mr 3,5 302 blr 303LT..q_atomic_fetch_and_add_int: 304 .long 0 305 .byte 0,9,32,64,0,0,1,0 306 .long 0 307 .long LT..q_atomic_fetch_and_add_int-.q_atomic_fetch_and_add_int 308 .short 18 309 .byte "q_atomic_fetch_and_add_int" 310 .align 2 311 312 .align 2 313 .globl q_atomic_fetch_and_add_acquire_int 314 .globl .q_atomic_fetch_and_add_acquire_int 315q_atomic_fetch_and_add_acquire_int: 316.q_atomic_fetch_and_add_acquire_int: 317 lwarx 5,0,3 318 add 6,4,5 319 stwcx. 6,0,3 320 bne- $-12 321 isync 322 mr 3,5 323 blr 324LT..q_atomic_fetch_and_add_acquire_int: 325 .long 0 326 .byte 0,9,32,64,0,0,1,0 327 .long 0 328 .long LT..q_atomic_fetch_and_add_acquire_int-.q_atomic_fetch_and_add_acquire_int 329 .short 18 330 .byte "q_atomic_fetch_and_add_acquire_int" 331 .align 2 332 333 .align 2 334 .globl q_atomic_fetch_and_add_release_int 335 .globl .q_atomic_fetch_and_add_release_int 336q_atomic_fetch_and_add_release_int: 337.q_atomic_fetch_and_add_release_int: 338 lwarx 5,0,3 339 add 6,4,5 340 stwcx. 6,0,3 341 bne- $-12 342 mr 3,5 343 blr 344LT..q_atomic_fetch_and_add_release_int: 345 .long 0 346 .byte 0,9,32,64,0,0,1,0 347 .long 0 348 .long LT..q_atomic_fetch_and_add_release_int-.q_atomic_fetch_and_add_release_int 349 .short 34 350 .byte "q_atomic_fetch_and_add_release_int" 351 .align 2 352 353 .align 2 354 .globl q_atomic_fetch_and_add_ptr 355 .globl .q_atomic_fetch_and_add_ptr 356q_atomic_fetch_and_add_ptr: 357.q_atomic_fetch_and_add_ptr: 358 lwarx 5,0,3 359 add 6,4,5 360 stwcx. 6,0,3 361 bne- $-12 362 mr 3,5 363 blr 364LT..q_atomic_fetch_and_add_ptr: 365 .long 0 366 .byte 0,9,32,64,0,0,1,0 367 .long 0 368 .long LT..q_atomic_fetch_and_add_ptr-.q_atomic_fetch_and_add_ptr 369 .short 26 370 .byte "q_atomic_fetch_and_add_ptr" 371 .align 2 372 373 .align 2 374 .globl q_atomic_fetch_and_add_acquire_ptr 375 .globl .q_atomic_fetch_and_add_acquire_ptr 376q_atomic_fetch_and_add_acquire_ptr: 377.q_atomic_fetch_and_add_acquire_ptr: 378 lwarx 5,0,3 379 add 6,4,5 380 stwcx. 6,0,3 381 bne- $-12 382 isync 383 mr 3,5 384 blr 385LT..q_atomic_fetch_and_add_acquire_ptr: 386 .long 0 387 .byte 0,9,32,64,0,0,1,0 388 .long 0 389 .long LT..q_atomic_fetch_and_add_acquire_ptr-.q_atomic_fetch_and_add_acquire_ptr 390 .short 34 391 .byte "q_atomic_fetch_and_add_acquire_ptr" 392 .align 2 393 394 .align 2 395 .globl q_atomic_fetch_and_add_release_ptr 396 .globl .q_atomic_fetch_and_add_release_ptr 397q_atomic_fetch_and_add_release_ptr: 398.q_atomic_fetch_and_add_release_ptr: 399 lwarx 5,0,3 400 add 6,4,5 401 stwcx. 6,0,3 402 bne- $-12 403 mr 3,5 404 blr 405LT..q_atomic_fetch_and_add_release_ptr: 406 .long 0 407 .byte 0,9,32,64,0,0,1,0 408 .long 0 409 .long LT..q_atomic_fetch_and_add_release_ptr-.q_atomic_fetch_and_add_release_ptr 410 .short 34 411 .byte "q_atomic_fetch_and_add_release_ptr" 412 .align 2 413 414_section_.text: 415 .long _section_.text 416