__timer_poll(void) { 40011b94: 9d e3 bf 98 save %sp, -104, %sp timer_t *prev, *t; prev = NULL; t = tmr_list; 40011b98: 11 10 00 94 sethi %hi(0x40025000), %o0 40011b9c: e0 02 22 38 ld [ %o0 + 0x238 ], %l0 ! 40025238 while (t) { 40011ba0: 80 a4 20 00 cmp %l0, 0 40011ba4: 02 80 00 1d be 40011c18 <__timer_poll+0x84> 40011ba8: a2 10 20 00 clr %l1 40011bac: a4 10 00 08 mov %o0, %l2 if ((MS_TICKS_DELAY() - t->start) >= t->delay) { 40011bb0: 7f ff f5 8c call 4000f1e0 40011bb4: 01 00 00 00 nop 40011bb8: d2 04 20 08 ld [ %l0 + 8 ], %o1 40011bbc: d4 04 20 04 ld [ %l0 + 4 ], %o2 40011bc0: 90 22 00 09 sub %o0, %o1, %o0 40011bc4: 80 a2 00 0a cmp %o0, %o2 40011bc8: 2a 80 00 12 bcs,a 40011c10 <__timer_poll+0x7c> 40011bcc: a2 10 00 10 mov %l0, %l1 /* remove it before calling handler */ if (prev) 40011bd0: 80 a4 60 00 cmp %l1, 0 40011bd4: 02 80 00 0d be 40011c08 <__timer_poll+0x74> 40011bd8: d0 04 00 00 ld [ %l0 ], %o0 prev->next = t->next; 40011bdc: d0 24 40 00 st %o0, [ %l1 ] else tmr_list = t->next; /* now, call the handler */ t->handler(t->user_data); 40011be0: d0 04 20 10 ld [ %l0 + 0x10 ], %o0 40011be4: d2 04 20 0c ld [ %l0 + 0xc ], %o1 40011be8: 9f c2 40 00 call %o1 40011bec: a2 10 20 00 clr %l1