.LC1: .ascii "queue_wait\000" .text .align 2 .global queue_wait .type queue_wait, %function queue_wait: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, r8, lr} mov r4, r0 mov r8, r1 ldr r0, .L74 ldr r3, .L74+4 mov lr, pc bx r3 ldr r0, .L74+8 ldr r2, [r0, #0] add r3, r2, #1 str r3, [r0, #0] mrs r5, cpsr bic r3, r5, #128 orr r3, r3, #128 msr cpsr_c, r3 ldr r1, .L74+12 ldr r3, [r1, #0] add r3, r3, #1 str r3, [r1, #0] add r2, r2, #3 str r2, [r0, #0] ldr r0, [r4, #140] cmp r0, #0 beq .L64 ldr r3, [r0, #64] cmp r3, #0 addne r0, r0, #64 movne r1, #0 blne queue_release_sender .L64: ldr r2, [r4, #132] ldr r3, [r4, #136] cmp r2, r3 bne .L67 ldr r7, .L74+16 ldr r6, .L74+20 .L68: str r5, [r7, #16] mov r0, r4 mov lr, pc bx r6 mrs r5, cpsr bic r3, r5, #128 orr r3, r3, #128 msr cpsr_c, r3 ldr r2, [r4, #132] ldr r3, [r4, #136] cmp r2, r3 beq .L68 .L67: ldr r3, [r4, #132] and r1, r3, #15 add r3, r3, #1 str r3, [r4, #132] add r3, r4, r1, asl #3 ldmib r3, {r2, r3} @ phole ldm stmia r8, {r2, r3} @ phole stm ldr r0, [r4, #140] cmp r0, #0 beq .L69 ldr r3, [r0, r1, asl #2] cmp r3, #0 blne queue_fetch_sender .L69: and r3, r5, #128 mrs r1, cpsr bic r2, r1, #128 orr r2, r2, r3 msr cpsr_c, r2 ldmfd sp!, {r4, r5, r6, r7, r8, pc} .L75: .align 2 .L74: .word .LC1 .word printf .word ctr1 .word ctr2 .word cores .word _block_thread .size queue_wait, .-queue_wait .align 2 .global queue_wait_w_tmo .type queue_wait_w_tmo, %function