You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

66825 lines
2.8 MiB

AtmelStart.elf: file format elf32-littlearm
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 0002c590 00000000 00000000 00010000 2**6
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .ARM.exidx 00000008 0002c590 0002c590 0003c590 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
2 .relocate 00000a04 20000000 0002c598 00040000 2**3
CONTENTS, ALLOC, LOAD, DATA
3 .bkupram 00000000 47000000 47000000 00040a04 2**0
CONTENTS
4 .qspi 00000000 04000000 04000000 00040a04 2**0
CONTENTS
5 .bss 00004e04 20000a04 0002cf9c 00040a04 2**2
ALLOC
6 .stack 0000c000 20005808 00031da0 00040a04 2**0
ALLOC
7 .ARM.attributes 0000002e 00000000 00000000 00040a04 2**0
CONTENTS, READONLY
8 .comment 00000064 00000000 00000000 00040a32 2**0
CONTENTS, READONLY
9 .debug_info 00076bf9 00000000 00000000 00040a96 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
10 .debug_abbrev 0000d84f 00000000 00000000 000b768f 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
11 .debug_loclists 0002993f 00000000 00000000 000c4ede 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
12 .debug_aranges 00002290 00000000 00000000 000ee820 2**3
CONTENTS, READONLY, DEBUGGING, OCTETS
13 .debug_rnglists 0000491e 00000000 00000000 000f0ab0 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
14 .debug_macro 0004073e 00000000 00000000 000f53ce 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
15 .debug_line 00056509 00000000 00000000 00135b0c 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
16 .debug_str 00128cf7 00000000 00000000 0018c015 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
17 .debug_frame 00006cd8 00000000 00000000 002b4d0c 2**2
CONTENTS, READONLY, DEBUGGING, OCTETS
18 .debug_line_str 00000082 00000000 00000000 002bb9e4 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
19 .stab 0000003c 00000000 00000000 002bba68 2**2
CONTENTS, READONLY, DEBUGGING
20 .stabstr 00000072 00000000 00000000 002bbaa4 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <exception_table>:
/**
* \brief I/O read interface
*/
int32_t io_read(struct io_descriptor *const io_descr, uint8_t *const buf, const uint16_t length)
{
0: 08 18 01 20 fd 09 00 00 f9 09 00 00 f9 09 00 00 ... ............
ASSERT(io_descr && buf);
10: f9 09 00 00 f9 09 00 00 f9 09 00 00 00 00 00 00 ................
...
return io_descr->read(io_descr, buf, length);
2c: f9 09 00 00 f9 09 00 00 00 00 00 00 f9 09 00 00 ................
descr->flags |= TIMER_FLAG_QUEUE_IS_TAKEN;
if (!is_list_element(&descr->tasks, task)) {
descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN;
ASSERT(false);
return ERR_NOT_FOUND;
3c: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
}
list_delete_element(&descr->tasks, task);
descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN;
4c: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
if (descr->flags & TIMER_FLAG_INTERRUPT_TRIGERRED) {
CRITICAL_SECTION_ENTER()
5c: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
descr->flags &= ~TIMER_FLAG_INTERRUPT_TRIGERRED;
_timer_set_irq(&descr->device);
6c: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
CRITICAL_SECTION_LEAVE()
}
return ERR_NONE;
7c: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
8c: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
} else {
/* error baudrate */
return ERR_INVALID_ARG;
}
return ERR_NONE;
9c: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
static inline void hri_sercomi2cm_write_BAUD_BAUD_bf(const void *const hw, hri_sercomi2cm_baud_reg_t data)
{
uint32_t tmp;
SERCOM_CRITICAL_SECTION_ENTER();
tmp = ((Sercom *)hw)->I2CM.BAUD.reg;
ac: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
tmp = (uint32_t)((clkrate - 10 * baudrate - baudrate * clkrate * (i2c_dev->service.trise * 0.000000001))
bc: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
cc: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
dc: f9 09 00 00 f9 09 00 00 f9 09 00 00 00 00 00 00 ................
...
f4: 1d 06 00 00 55 09 00 00 c1 09 00 00 c9 09 00 00 ....U...........
/ (2 * baudrate));
104: d1 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
tmp &= ~SERCOM_I2CM_BAUD_BAUD_Msk;
tmp |= SERCOM_I2CM_BAUD_BAUD(data);
114: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
tmp = (clkrate - 2 * baudrate) / (2 * baudrate);
124: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
static inline void hri_sercomi2cm_write_BAUD_HSBAUD_bf(const void *const hw, hri_sercomi2cm_baud_reg_t data)
{
uint32_t tmp;
SERCOM_CRITICAL_SECTION_ENTER();
tmp = ((Sercom *)hw)->I2CM.BAUD.reg;
tmp &= ~SERCOM_I2CM_BAUD_HSBAUD_Msk;
134: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
return ERR_DENIED;
144: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
return ERR_INVALID_ARG;
154: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
164: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
174: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
ver_en = true;
}
}
/*If a move is greater then LV_DRAG_LIMIT then begin the drag*/
if((hor_en && LV_MATH_ABS(proc->types.pointer.drag_sum.x) >= indev_act->driver.drag_limit) ||
184: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
194: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
(ver_en && LV_MATH_ABS(proc->types.pointer.drag_sum.y) >= indev_act->driver.drag_limit)) {
1a4: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
drag_just_started = true;
}
}
/*If the drag limit is exceeded handle the dragging*/
if(proc->types.pointer.drag_limit_out != 0) {
1b4: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
/*Set new position if the vector is not zero*/
if(proc->types.pointer.vect.x != 0 || proc->types.pointer.vect.y != 0) {
1c4: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
lv_coord_t prev_x = drag_obj->coords.x1;
lv_coord_t prev_y = drag_obj->coords.y1;
1d4: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
lv_coord_t prev_par_w = lv_obj_get_width(lv_obj_get_parent(drag_obj));
lv_coord_t prev_par_h = lv_obj_get_height(lv_obj_get_parent(drag_obj));
1e4: f9 09 00 00 f9 09 00 00 31 10 00 00 f9 09 00 00 ........1.......
/*Get the coordinates of the object and modify them*/
lv_coord_t act_x = lv_obj_get_x(drag_obj);
lv_coord_t act_y = lv_obj_get_y(drag_obj);
1f4: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
if(allowed_dirs == LV_DRAG_DIR_BOTH) {
if(drag_just_started) {
proc->types.pointer.drag_dir = LV_DRAG_DIR_BOTH;
204: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
act_x += proc->types.pointer.drag_sum.x;
214: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
/*Move the object*/
if(allowed_dirs == LV_DRAG_DIR_HOR ||
allowed_dirs == LV_DRAG_DIR_BOTH ||
(allowed_dirs == LV_DRAG_DIR_ONE &&
LV_MATH_ABS(proc->types.pointer.drag_sum.x) > LV_MATH_ABS(proc->types.pointer.drag_sum.y))) {
act_x += proc->types.pointer.vect.x;
224: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
234: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
244: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
254: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................
00000264 <deregister_tm_clones>:
264: 4803 ldr r0, [pc, #12] ; (274 <deregister_tm_clones+0x10>)
266: 4b04 ldr r3, [pc, #16] ; (278 <deregister_tm_clones+0x14>)
268: 4283 cmp r3, r0
26a: d002 beq.n 272 <deregister_tm_clones+0xe>
26c: 4b03 ldr r3, [pc, #12] ; (27c <deregister_tm_clones+0x18>)
26e: b103 cbz r3, 272 <deregister_tm_clones+0xe>
proc->types.pointer.last_point.x = proc->types.pointer.act_point.x;
270: 4718 bx r3
if(proc->types.pointer.act_obj != NULL) {
272: 4770 bx lr
274: 0002c598 .word 0x0002c598
proc->types.pointer.last_obj = indev_obj_act;
278: 0002c598 .word 0x0002c598
if(indev_obj_act != NULL) {
27c: 00000000 .word 0x00000000
00000280 <register_tm_clones>:
280: 4805 ldr r0, [pc, #20] ; (298 <register_tm_clones+0x18>)
proc->pr_timestamp = lv_tick_get();
282: 4b06 ldr r3, [pc, #24] ; (29c <register_tm_clones+0x1c>)
i = lv_obj_get_parent(i);
284: 1a1b subs r3, r3, r0
proc->pr_timestamp = lv_tick_get();
286: 0fd9 lsrs r1, r3, #31
proc->types.pointer.drag_limit_out = 0;
288: eb01 01a3 add.w r1, r1, r3, asr #2
proc->long_pr_sent = 0;
28c: 1049 asrs r1, r1, #1
28e: d002 beq.n 296 <register_tm_clones+0x16>
proc->pr_timestamp = lv_tick_get();
290: 4b03 ldr r3, [pc, #12] ; (2a0 <register_tm_clones+0x20>)
proc->types.pointer.gesture_sum.x = 0;
292: b103 cbz r3, 296 <register_tm_clones+0x16>
proc->types.pointer.drag_limit_out = 0;
294: 4718 bx r3
296: 4770 bx lr
proc->types.pointer.drag_sum.x = 0;
298: 0002c598 .word 0x0002c598
proc->long_pr_sent = 0;
29c: 0002c598 .word 0x0002c598
proc->types.pointer.drag_limit_out = 0;
2a0: 00000000 .word 0x00000000
000002a4 <__do_global_dtors_aux>:
lv_obj_t * i = indev_obj_act;
2a4: b510 push {r4, lr}
proc->long_pr_sent = 0;
2a6: 4c06 ldr r4, [pc, #24] ; (2c0 <__do_global_dtors_aux+0x1c>)
2a8: 7823 ldrb r3, [r4, #0]
proc->types.pointer.gesture_sum.x = 0;
2aa: b943 cbnz r3, 2be <__do_global_dtors_aux+0x1a>
proc->types.pointer.gesture_sum.y = 0;
2ac: f7ff ffda bl 264 <deregister_tm_clones>
proc->types.pointer.drag_limit_out = 0;
2b0: 4b04 ldr r3, [pc, #16] ; (2c4 <__do_global_dtors_aux+0x20>)
while(i != NULL) {
2b2: b113 cbz r3, 2ba <__do_global_dtors_aux+0x16>
2b4: 4804 ldr r0, [pc, #16] ; (2c8 <__do_global_dtors_aux+0x24>)
if(last_top != NULL) {
2b6: f3af 8000 nop.w
lv_obj_move_foreground(last_top);
2ba: 2301 movs r3, #1
2bc: 7023 strb r3, [r4, #0]
indev_obj_act->signal_cb(indev_obj_act, LV_SIGNAL_PRESSED, indev_act);
2be: bd10 pop {r4, pc}
2c0: 20000a04 .word 0x20000a04
if(indev_reset_check(proc)) return;
2c4: 00000000 .word 0x00000000
indev_obj_act->signal_cb(indev_obj_act, LV_SIGNAL_PRESSED, indev_act);
2c8: 0002c598 .word 0x0002c598
000002cc <frame_dummy>:
if(indev_reset_check(proc)) return;
2cc: b508 push {r3, lr}
2ce: 4b04 ldr r3, [pc, #16] ; (2e0 <frame_dummy+0x14>)
2d0: b11b cbz r3, 2da <frame_dummy+0xe>
2d2: 4904 ldr r1, [pc, #16] ; (2e4 <frame_dummy+0x18>)
lv_event_send(indev_obj_act, LV_EVENT_PRESSED, NULL);
2d4: 4804 ldr r0, [pc, #16] ; (2e8 <frame_dummy+0x1c>)
2d6: f3af 8000 nop.w
2da: e8bd 4008 ldmia.w sp!, {r3, lr}
if(indev_reset_check(proc)) return;
2de: e7cf b.n 280 <register_tm_clones>
2e0: 00000000 .word 0x00000000
2e4: 20000a08 .word 0x20000a08
if(indev_act->proc.wait_until_release) return;
2e8: 0002c598 .word 0x0002c598
000002ec <io_write>:
{
2ec: b570 push {r4, r5, r6, lr}
2ee: 460d mov r5, r1
2f0: 4616 mov r6, r2
ASSERT(io_descr && buf);
2f2: 4604 mov r4, r0
2f4: b110 cbz r0, 2fc <io_write+0x10>
2f6: 1e08 subs r0, r1, #0
2f8: bf18 it ne
2fa: 2001 movne r0, #1
2fc: 4905 ldr r1, [pc, #20] ; (314 <io_write+0x28>)
2fe: 4b06 ldr r3, [pc, #24] ; (318 <io_write+0x2c>)
300: 2234 movs r2, #52 ; 0x34
302: 4798 blx r3
return io_descr->write(io_descr, buf, length);
304: 6823 ldr r3, [r4, #0]
306: 4632 mov r2, r6
308: 4629 mov r1, r5
30a: 4620 mov r0, r4
}
30c: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
return io_descr->write(io_descr, buf, length);
310: 4718 bx r3
312: bf00 nop
314: 0001dd54 .word 0x0001dd54
318: 000006a5 .word 0x000006a5
0000031c <_irq_set>:
*/
__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn)
{
if ((int32_t)(IRQn) >= 0)
{
NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
31c: 0943 lsrs r3, r0, #5
31e: 4904 ldr r1, [pc, #16] ; (330 <_irq_set+0x14>)
320: f000 001f and.w r0, r0, #31
324: 2201 movs r2, #1
326: 3340 adds r3, #64 ; 0x40
328: 4082 lsls r2, r0
32a: f841 2023 str.w r2, [r1, r3, lsl #2]
* \brief Set the given IRQ
*/
void _irq_set(uint8_t n)
{
NVIC_SetPendingIRQ((IRQn_Type)n);
}
32e: 4770 bx lr
330: e000e100 .word 0xe000e100
00000334 <_get_cycles_for_us>:
*/
static inline uint32_t _get_cycles_for_us_internal(const uint16_t us, const uint32_t freq, const uint8_t power)
{
switch (power) {
case 9:
return (us * (freq / 1000000) + 2) / 3;
334: 2377 movs r3, #119 ; 0x77
336: 4358 muls r0, r3
338: 3002 adds r0, #2
* \brief Retrieve the amount of cycles to delay for the given amount of us
*/
uint32_t _get_cycles_for_us(const uint16_t us)
{
return _get_cycles_for_us_internal(us, CONF_CPU_FREQUENCY, CPU_FREQ_POWER);
}
33a: 2303 movs r3, #3
33c: fbb0 f0f3 udiv r0, r0, r3
340: 4770 bx lr
00000342 <_get_cycles_for_ms>:
*/
static inline uint32_t _get_cycles_for_ms_internal(const uint16_t ms, const uint32_t freq, const uint8_t power)
{
switch (power) {
case 9:
return (ms * (freq / 1000000) + 2) / 3 * 1000;
342: 2377 movs r3, #119 ; 0x77
344: 4358 muls r0, r3
346: 3002 adds r0, #2
348: 2303 movs r3, #3
34a: fbb0 f0f3 udiv r0, r0, r3
* \brief Retrieve the amount of cycles to delay for the given amount of ms
*/
uint32_t _get_cycles_for_ms(const uint16_t ms)
{
return _get_cycles_for_ms_internal(ms, CONF_CPU_FREQUENCY, CPU_FREQ_POWER);
}
34e: f44f 737a mov.w r3, #1000 ; 0x3e8
352: 4358 muls r0, r3
354: 4770 bx lr
00000356 <_delay_init>:
* \brief Initialize delay functionality
*/
void _delay_init(void *const hw)
{
(void)hw;
}
356: 4770 bx lr
00000358 <_delay_cycles>:
__asm(".align 3 \n"
"__delay:\n"
"subs r1, r1, #1\n"
"bhi __delay\n");
#elif defined __GNUC__
__asm(".syntax unified\n"
358: 3901 subs r1, #1
35a: d8fd bhi.n 358 <_delay_cycles>
__asm("__delay:\n"
"subs r1, r1, #1\n"
"bhi.n __delay\n");
#endif
#endif
}
35c: 4770 bx lr
if(indev_reset_check(proc)) return;
35e: bf00 nop
00000360 <_sbrk>:
extern caddr_t _sbrk(int incr)
{
static unsigned char *heap = NULL;
unsigned char * prev_heap;
if (heap == NULL) {
360: 4a04 ldr r2, [pc, #16] ; (374 <_sbrk+0x14>)
362: 6811 ldr r1, [r2, #0]
{
364: 4603 mov r3, r0
if (heap == NULL) {
366: b909 cbnz r1, 36c <_sbrk+0xc>
heap = (unsigned char *)&_end;
368: 4903 ldr r1, [pc, #12] ; (378 <_sbrk+0x18>)
36a: 6011 str r1, [r2, #0]
}
prev_heap = heap;
36c: 6810 ldr r0, [r2, #0]
heap += incr;
36e: 4403 add r3, r0
370: 6013 str r3, [r2, #0]
return (caddr_t)prev_heap;
}
372: 4770 bx lr
374: 20000a20 .word 0x20000a20
378: 20011808 .word 0x20011808
0000037c <_close>:
*/
extern int _close(int file)
{
(void)file;
return -1;
}
37c: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
380: 4770 bx lr
00000382 <_fstat>:
* \brief Replacement of C library of _fstat
*/
extern int _fstat(int file, struct stat *st)
{
(void)file;
st->st_mode = S_IFCHR;
382: f44f 5300 mov.w r3, #8192 ; 0x2000
386: 604b str r3, [r1, #4]
return 0;
}
388: 2000 movs r0, #0
38a: 4770 bx lr
0000038c <_isatty>:
*/
extern int _isatty(int file)
{
(void)file;
return 1;
}
38c: 2001 movs r0, #1
38e: 4770 bx lr
00000390 <_lseek>:
*/
extern int _lseek(int file, int ptr, int dir)
{
(void)file, (void)ptr, (void)dir;
return 0;
}
390: 2000 movs r0, #0
392: 4770 bx lr
00000394 <_exit>:
/**
* \brief Replacement of C library of _exit
*/
extern void _exit(int status)
{
394: b508 push {r3, lr}
396: 4601 mov r1, r0
printf("Exiting with status %d.\n", status);
398: 4b01 ldr r3, [pc, #4] ; (3a0 <_exit+0xc>)
39a: 4802 ldr r0, [pc, #8] ; (3a4 <_exit+0x10>)
39c: 4798 blx r3
for (;;)
39e: e7fe b.n 39e <_exit+0xa>
3a0: 00016ff5 .word 0x00016ff5
3a4: 0001dd68 .word 0x0001dd68
000003a8 <_kill>:
*/
extern void _kill(int pid, int sig)
{
(void)pid, (void)sig;
return;
}
3a8: 4770 bx lr
000003aa <_getpid>:
* \brief Replacement of C library of _getpid
*/
extern int _getpid(void)
{
return -1;
}
3aa: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
3ae: 4770 bx lr
000003b0 <timer_add_timer_task>:
* \param[in] head The pointer to the head of timer task list
* \param[in] task The pointer to task to add
* \param[in] time Current timer time
*/
static void timer_add_timer_task(struct list_descriptor *list, struct timer_task *const new_task, const uint32_t time)
{
3b0: b5f0 push {r4, r5, r6, r7, lr}
* \return A pointer to the head of the given list or NULL if the list is
* empty
*/
static inline void *list_get_head(const struct list_descriptor *const list)
{
return (void *)list->head;
3b2: 6805 ldr r5, [r0, #0]
struct timer_task *it, *prev = NULL, *head = (struct timer_task *)list_get_head(list);
if (!head) {
3b4: b91d cbnz r5, 3be <timer_add_timer_task+0xe>
list_insert_as_head(list, new_task);
3b6: 4b0f ldr r3, [pc, #60] ; (3f4 <timer_add_timer_task+0x44>)
if (it == head) {
list_insert_as_head(list, new_task);
} else {
list_insert_after(prev, new_task);
}
}
3b8: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr}
list_insert_after(prev, new_task);
3bc: 4718 bx r3
if (time_left >= new_task->interval)
3be: f8d1 c008 ldr.w ip, [r1, #8]
3c2: 462c mov r4, r5
struct timer_task *it, *prev = NULL, *head = (struct timer_task *)list_get_head(list);
3c4: 2600 movs r6, #0
time_left = it->interval - (0xFFFFFFFF - it->time_label) - time;
3c6: f1c2 0e01 rsb lr, r2, #1
time_left = it->interval - (time - it->time_label);
3ca: e9d4 3701 ldrd r3, r7, [r4, #4]
if (it->time_label <= time) {
3ce: 4293 cmp r3, r2
time_left = it->interval - (time - it->time_label);
3d0: bf95 itete ls
3d2: 19db addls r3, r3, r7
time_left = it->interval - (0xFFFFFFFF - it->time_label) - time;
3d4: 4473 addhi r3, lr
time_left = it->interval - (time - it->time_label);
3d6: 1a9b subls r3, r3, r2
time_left = it->interval - (0xFFFFFFFF - it->time_label) - time;
3d8: 19db addhi r3, r3, r7
if (time_left >= new_task->interval)
3da: 459c cmp ip, r3
3dc: d907 bls.n 3ee <timer_add_timer_task+0x3e>
* \return A pointer to the next list element or NULL if there is not next
* element
*/
static inline void *list_get_next_element(const void *const element)
{
return element ? ((struct list_element *)element)->next : NULL;
3de: 6823 ldr r3, [r4, #0]
for (it = head; it; it = (struct timer_task *)list_get_next_element(it)) {
3e0: 4626 mov r6, r4
3e2: b913 cbnz r3, 3ea <timer_add_timer_task+0x3a>
list_insert_after(prev, new_task);
3e4: 4b04 ldr r3, [pc, #16] ; (3f8 <timer_add_timer_task+0x48>)
3e6: 4630 mov r0, r6
3e8: e7e6 b.n 3b8 <timer_add_timer_task+0x8>
3ea: 461c mov r4, r3
3ec: e7ed b.n 3ca <timer_add_timer_task+0x1a>
if (it == head) {
3ee: 42a5 cmp r5, r4
3f0: d0e1 beq.n 3b6 <timer_add_timer_task+0x6>
3f2: e7f7 b.n 3e4 <timer_add_timer_task+0x34>
3f4: 00000665 .word 0x00000665
3f8: 00000691 .word 0x00000691
000003fc <timer_process_counted>:
/**
* \internal Process interrupts
*/
static void timer_process_counted(struct _timer_device *device)
{
3fc: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
struct timer_descriptor *timer = CONTAINER_OF(device, struct timer_descriptor, device);
struct timer_task * it = (struct timer_task *)list_get_head(&timer->tasks);
uint32_t time = ++timer->time;
400: e9d0 6504 ldrd r6, r5, [r0, #16]
if ((timer->flags & TIMER_FLAG_QUEUE_IS_TAKEN) || (timer->flags & TIMER_FLAG_INTERRUPT_TRIGERRED)) {
404: 7e03 ldrb r3, [r0, #24]
uint32_t time = ++timer->time;
406: 3601 adds r6, #1
if ((timer->flags & TIMER_FLAG_QUEUE_IS_TAKEN) || (timer->flags & TIMER_FLAG_INTERRUPT_TRIGERRED)) {
408: 07da lsls r2, r3, #31
{
40a: 4604 mov r4, r0
uint32_t time = ++timer->time;
40c: 6106 str r6, [r0, #16]
if ((timer->flags & TIMER_FLAG_QUEUE_IS_TAKEN) || (timer->flags & TIMER_FLAG_INTERRUPT_TRIGERRED)) {
40e: d41f bmi.n 450 <timer_process_counted+0x54>
410: 7e03 ldrb r3, [r0, #24]
412: 079b lsls r3, r3, #30
414: d41c bmi.n 450 <timer_process_counted+0x54>
}
while (it && ((time - it->time_label) >= it->interval)) {
struct timer_task *tmp = it;
list_remove_head(&timer->tasks);
416: f8df 8044 ldr.w r8, [pc, #68] ; 45c <timer_process_counted+0x60>
if (TIMER_TASK_REPEAT == tmp->mode) {
tmp->time_label = time;
timer_add_timer_task(&timer->tasks, tmp, time);
41a: f8df 9044 ldr.w r9, [pc, #68] ; 460 <timer_process_counted+0x64>
list_remove_head(&timer->tasks);
41e: f100 0714 add.w r7, r0, #20
while (it && ((time - it->time_label) >= it->interval)) {
422: b1cd cbz r5, 458 <timer_process_counted+0x5c>
424: 686b ldr r3, [r5, #4]
426: 68aa ldr r2, [r5, #8]
428: 1af3 subs r3, r6, r3
42a: 4293 cmp r3, r2
42c: d314 bcc.n 458 <timer_process_counted+0x5c>
list_remove_head(&timer->tasks);
42e: 4638 mov r0, r7
430: 47c0 blx r8
if (TIMER_TASK_REPEAT == tmp->mode) {
432: 7c2b ldrb r3, [r5, #16]
434: 2b01 cmp r3, #1
436: d104 bne.n 442 <timer_process_counted+0x46>
tmp->time_label = time;
438: 606e str r6, [r5, #4]
timer_add_timer_task(&timer->tasks, tmp, time);
43a: 4632 mov r2, r6
43c: 4629 mov r1, r5
43e: 4638 mov r0, r7
440: 47c8 blx r9
return (void *)list->head;
442: f8d4 a014 ldr.w sl, [r4, #20]
}
it = (struct timer_task *)list_get_head(&timer->tasks);
tmp->cb(tmp);
446: 68eb ldr r3, [r5, #12]
448: 4628 mov r0, r5
44a: 4798 blx r3
it = (struct timer_task *)list_get_head(&timer->tasks);
44c: 4655 mov r5, sl
44e: e7e8 b.n 422 <timer_process_counted+0x26>
timer->flags |= TIMER_FLAG_INTERRUPT_TRIGERRED;
450: 7e23 ldrb r3, [r4, #24]
452: f043 0302 orr.w r3, r3, #2
456: 7623 strb r3, [r4, #24]
}
}
458: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
45c: 00000699 .word 0x00000699
460: 000003b1 .word 0x000003b1
00000464 <timer_init>:
{
464: b538 push {r3, r4, r5, lr}
466: 460d mov r5, r1
ASSERT(descr && hw);
468: 4604 mov r4, r0
46a: b110 cbz r0, 472 <timer_init+0xe>
46c: 1e08 subs r0, r1, #0
46e: bf18 it ne
470: 2001 movne r0, #1
472: 223b movs r2, #59 ; 0x3b
474: 4905 ldr r1, [pc, #20] ; (48c <timer_init+0x28>)
476: 4b06 ldr r3, [pc, #24] ; (490 <timer_init+0x2c>)
478: 4798 blx r3
_timer_init(&descr->device, hw);
47a: 4b06 ldr r3, [pc, #24] ; (494 <timer_init+0x30>)
47c: 4629 mov r1, r5
47e: 4620 mov r0, r4
480: 4798 blx r3
descr->device.timer_cb.period_expired = timer_process_counted;
482: 4b05 ldr r3, [pc, #20] ; (498 <timer_init+0x34>)
484: 6023 str r3, [r4, #0]
descr->time = 0;
486: 2000 movs r0, #0
488: 6120 str r0, [r4, #16]
}
48a: bd38 pop {r3, r4, r5, pc}
48c: 0001dd81 .word 0x0001dd81
490: 000006a5 .word 0x000006a5
494: 00000e85 .word 0x00000e85
498: 000003fd .word 0x000003fd
0000049c <timer_start>:
{
49c: b538 push {r3, r4, r5, lr}
ASSERT(descr);
49e: 4605 mov r5, r0
4a0: 3800 subs r0, #0
4a2: bf18 it ne
4a4: 2001 movne r0, #1
4a6: 4908 ldr r1, [pc, #32] ; (4c8 <timer_start+0x2c>)
4a8: 4b08 ldr r3, [pc, #32] ; (4cc <timer_start+0x30>)
4aa: 2253 movs r2, #83 ; 0x53
4ac: 4798 blx r3
if (_timer_is_started(&descr->device)) {
4ae: 4b08 ldr r3, [pc, #32] ; (4d0 <timer_start+0x34>)
4b0: 4628 mov r0, r5
4b2: 4798 blx r3
4b4: 4604 mov r4, r0
4b6: b920 cbnz r0, 4c2 <timer_start+0x26>
_timer_start(&descr->device);
4b8: 4628 mov r0, r5
4ba: 4b06 ldr r3, [pc, #24] ; (4d4 <timer_start+0x38>)
4bc: 4798 blx r3
return ERR_NONE;
4be: 4620 mov r0, r4
}
4c0: bd38 pop {r3, r4, r5, pc}
return ERR_DENIED;
4c2: f06f 0010 mvn.w r0, #16
4c6: e7fb b.n 4c0 <timer_start+0x24>
4c8: 0001dd81 .word 0x0001dd81
4cc: 000006a5 .word 0x000006a5
4d0: 00000fd5 .word 0x00000fd5
4d4: 00000fc1 .word 0x00000fc1
000004d8 <timer_add_task>:
{
4d8: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
4dc: 460d mov r5, r1
ASSERT(descr && task);
4de: 4604 mov r4, r0
4e0: b110 cbz r0, 4e8 <timer_add_task+0x10>
4e2: 1e08 subs r0, r1, #0
4e4: bf18 it ne
4e6: 2001 movne r0, #1
4e8: 491e ldr r1, [pc, #120] ; (564 <timer_add_task+0x8c>)
4ea: f8df 8090 ldr.w r8, [pc, #144] ; 57c <timer_add_task+0xa4>
4ee: 227a movs r2, #122 ; 0x7a
4f0: 47c0 blx r8
descr->flags |= TIMER_FLAG_QUEUE_IS_TAKEN;
4f2: 7e23 ldrb r3, [r4, #24]
if (is_list_element(&descr->tasks, task)) {
4f4: f104 0714 add.w r7, r4, #20
descr->flags |= TIMER_FLAG_QUEUE_IS_TAKEN;
4f8: f043 0301 orr.w r3, r3, #1
4fc: 7623 strb r3, [r4, #24]
if (is_list_element(&descr->tasks, task)) {
4fe: 4629 mov r1, r5
500: 4b19 ldr r3, [pc, #100] ; (568 <timer_add_task+0x90>)
502: 4638 mov r0, r7
504: 4798 blx r3
506: 4606 mov r6, r0
508: b160 cbz r0, 524 <timer_add_task+0x4c>
descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN;
50a: 7e23 ldrb r3, [r4, #24]
ASSERT(false);
50c: 4915 ldr r1, [pc, #84] ; (564 <timer_add_task+0x8c>)
descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN;
50e: f003 03fe and.w r3, r3, #254 ; 0xfe
ASSERT(false);
512: 2000 movs r0, #0
descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN;
514: 7623 strb r3, [r4, #24]
ASSERT(false);
516: 227f movs r2, #127 ; 0x7f
518: 47c0 blx r8
return ERR_ALREADY_INITIALIZED;
51a: f06f 0011 mvn.w r0, #17
}
51e: b002 add sp, #8
520: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
task->time_label = descr->time;
524: 6922 ldr r2, [r4, #16]
timer_add_timer_task(&descr->tasks, task, descr->time);
526: 4b11 ldr r3, [pc, #68] ; (56c <timer_add_task+0x94>)
task->time_label = descr->time;
528: 606a str r2, [r5, #4]
timer_add_timer_task(&descr->tasks, task, descr->time);
52a: 4629 mov r1, r5
52c: 4638 mov r0, r7
52e: 4798 blx r3
descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN;
530: 7e23 ldrb r3, [r4, #24]
532: f003 03fe and.w r3, r3, #254 ; 0xfe
536: 7623 strb r3, [r4, #24]
if (descr->flags & TIMER_FLAG_INTERRUPT_TRIGERRED) {
538: 7e23 ldrb r3, [r4, #24]
53a: f013 0302 ands.w r3, r3, #2
53e: d00e beq.n 55e <timer_add_task+0x86>
CRITICAL_SECTION_ENTER()
540: 4b0b ldr r3, [pc, #44] ; (570 <timer_add_task+0x98>)
542: a801 add r0, sp, #4
544: 4798 blx r3
descr->flags &= ~TIMER_FLAG_INTERRUPT_TRIGERRED;
546: 7e23 ldrb r3, [r4, #24]
548: f003 03fd and.w r3, r3, #253 ; 0xfd
54c: 7623 strb r3, [r4, #24]
_timer_set_irq(&descr->device);
54e: 4620 mov r0, r4
550: 4b08 ldr r3, [pc, #32] ; (574 <timer_add_task+0x9c>)
552: 4798 blx r3
CRITICAL_SECTION_LEAVE()
554: a801 add r0, sp, #4
556: 4b08 ldr r3, [pc, #32] ; (578 <timer_add_task+0xa0>)
558: 4798 blx r3
return ERR_NONE;
55a: 4630 mov r0, r6
55c: e7df b.n 51e <timer_add_task+0x46>
55e: 4618 mov r0, r3
560: e7dd b.n 51e <timer_add_task+0x46>
562: bf00 nop
564: 0001dd81 .word 0x0001dd81
568: 00000655 .word 0x00000655
56c: 000003b1 .word 0x000003b1
570: 0000104d .word 0x0000104d
574: 00000ff1 .word 0x00000ff1
578: 0000105b .word 0x0000105b
57c: 000006a5 .word 0x000006a5
00000580 <delay_init>:
/**
* \brief Initialize Delay driver
*/
void delay_init(void *const hw)
{
_delay_init(hardware = hw);
580: 4b01 ldr r3, [pc, #4] ; (588 <delay_init+0x8>)
582: 6018 str r0, [r3, #0]
584: 4b01 ldr r3, [pc, #4] ; (58c <delay_init+0xc>)
586: 4718 bx r3
588: 20000a24 .word 0x20000a24
58c: 00000357 .word 0x00000357
00000590 <delay_us>:
/**
* \brief Perform delay in us
*/
void delay_us(const uint16_t us)
{
_delay_cycles(hardware, _get_cycles_for_us(us));
590: 4b05 ldr r3, [pc, #20] ; (5a8 <delay_us+0x18>)
{
592: b510 push {r4, lr}
_delay_cycles(hardware, _get_cycles_for_us(us));
594: 681c ldr r4, [r3, #0]
596: 4b05 ldr r3, [pc, #20] ; (5ac <delay_us+0x1c>)
598: 4798 blx r3
59a: 4b05 ldr r3, [pc, #20] ; (5b0 <delay_us+0x20>)
59c: 4601 mov r1, r0
59e: 4620 mov r0, r4
}
5a0: e8bd 4010 ldmia.w sp!, {r4, lr}
_delay_cycles(hardware, _get_cycles_for_us(us));
5a4: 4718 bx r3
5a6: bf00 nop
5a8: 20000a24 .word 0x20000a24
5ac: 00000335 .word 0x00000335
5b0: 00000359 .word 0x00000359
000005b4 <delay_ms>:
/**
* \brief Perform delay in ms
*/
void delay_ms(const uint16_t ms)
{
_delay_cycles(hardware, _get_cycles_for_ms(ms));
5b4: 4b05 ldr r3, [pc, #20] ; (5cc <delay_ms+0x18>)
{
5b6: b510 push {r4, lr}
_delay_cycles(hardware, _get_cycles_for_ms(ms));
5b8: 681c ldr r4, [r3, #0]
5ba: 4b05 ldr r3, [pc, #20] ; (5d0 <delay_ms+0x1c>)
5bc: 4798 blx r3
5be: 4b05 ldr r3, [pc, #20] ; (5d4 <delay_ms+0x20>)
5c0: 4601 mov r1, r0
5c2: 4620 mov r0, r4
}
5c4: e8bd 4010 ldmia.w sp!, {r4, lr}
_delay_cycles(hardware, _get_cycles_for_ms(ms));
5c8: 4718 bx r3
5ca: bf00 nop
5cc: 20000a24 .word 0x20000a24
5d0: 00000343 .word 0x00000343
5d4: 00000359 .word 0x00000359
000005d8 <_init_chip>:
}
static inline void hri_nvmctrl_set_CTRLA_RWS_bf(const void *const hw, hri_nvmctrl_ctrla_reg_t mask)
{
NVMCTRL_CRITICAL_SECTION_ENTER();
((Nvmctrl *)hw)->CTRLA.reg |= NVMCTRL_CTRLA_RWS(mask);
5d8: 4a0a ldr r2, [pc, #40] ; (604 <_init_chip+0x2c>)
5da: 8813 ldrh r3, [r2, #0]
5dc: b29b uxth r3, r3
/**
* \brief Initialize the hardware abstraction layer
*/
void _init_chip(void)
{
5de: b510 push {r4, lr}
5e0: f443 63a0 orr.w r3, r3, #1280 ; 0x500
5e4: 8013 strh r3, [r2, #0]
hri_nvmctrl_set_CTRLA_RWS_bf(NVMCTRL, CONF_NVM_WAIT_STATE);
_osc32kctrl_init_sources();
5e6: 4b08 ldr r3, [pc, #32] ; (608 <_init_chip+0x30>)
5e8: 4798 blx r3
_oscctrl_init_sources();
5ea: 4b08 ldr r3, [pc, #32] ; (60c <_init_chip+0x34>)
5ec: 4798 blx r3
_mclk_init();
5ee: 4b08 ldr r3, [pc, #32] ; (610 <_init_chip+0x38>)
5f0: 4798 blx r3
#if _GCLK_INIT_1ST
_gclk_init_generators_by_fref(_GCLK_INIT_1ST);
#endif
_oscctrl_init_referenced_generators();
5f2: 4b08 ldr r3, [pc, #32] ; (614 <_init_chip+0x3c>)
5f4: 4798 blx r3
#endif
#if CONF_CMCC_ENABLE
cache_init();
#endif
}
5f6: e8bd 4010 ldmia.w sp!, {r4, lr}
_gclk_init_generators_by_fref(_GCLK_INIT_LAST);
5fa: 4b07 ldr r3, [pc, #28] ; (618 <_init_chip+0x40>)
5fc: f640 70ff movw r0, #4095 ; 0xfff
600: 4718 bx r3
602: bf00 nop
604: 41004000 .word 0x41004000
608: 00000ae1 .word 0x00000ae1
60c: 000006ab .word 0x000006ab
610: 000006e9 .word 0x000006e9
614: 000006ad .word 0x000006ad
618: 000009d9 .word 0x000009d9
0000061c <RAMECC_Handler>:
return tmp;
}
static inline hri_ramecc_intflag_reg_t hri_ramecc_read_INTFLAG_reg(const void *const hw)
{
return ((Ramecc *)hw)->INTFLAG.reg;
61c: 4a0b ldr r2, [pc, #44] ; (64c <RAMECC_Handler+0x30>)
61e: 7893 ldrb r3, [r2, #2]
/**
* \internal RAMECC interrupt handler
*/
void RAMECC_Handler(void)
{
620: b082 sub sp, #8
622: b2db uxtb r3, r3
struct _ramecc_device *dev = (struct _ramecc_device *)&device;
volatile uint32_t int_mask = hri_ramecc_read_INTFLAG_reg(RAMECC);
624: 9301 str r3, [sp, #4]
if (int_mask & RAMECC_INTFLAG_DUALE && dev->ramecc_cb.dual_bit_err) {
626: 9b01 ldr r3, [sp, #4]
628: 0799 lsls r1, r3, #30
62a: d505 bpl.n 638 <RAMECC_Handler+0x1c>
62c: 4b08 ldr r3, [pc, #32] ; (650 <RAMECC_Handler+0x34>)
62e: 681b ldr r3, [r3, #0]
630: b113 cbz r3, 638 <RAMECC_Handler+0x1c>
return tmp;
}
static inline hri_ramecc_erraddr_reg_t hri_ramecc_read_ERRADDR_reg(const void *const hw)
{
return ((Ramecc *)hw)->ERRADDR.reg;
632: 6850 ldr r0, [r2, #4]
} else if (int_mask & RAMECC_INTFLAG_SINGLEE && dev->ramecc_cb.single_bit_err) {
dev->ramecc_cb.single_bit_err((uint32_t)hri_ramecc_read_ERRADDR_reg(RAMECC));
} else {
return;
}
}
634: b002 add sp, #8
dev->ramecc_cb.single_bit_err((uint32_t)hri_ramecc_read_ERRADDR_reg(RAMECC));
636: 4718 bx r3
} else if (int_mask & RAMECC_INTFLAG_SINGLEE && dev->ramecc_cb.single_bit_err) {
638: 9b01 ldr r3, [sp, #4]
63a: 07db lsls r3, r3, #31
63c: d504 bpl.n 648 <RAMECC_Handler+0x2c>
63e: 4b04 ldr r3, [pc, #16] ; (650 <RAMECC_Handler+0x34>)
640: 685b ldr r3, [r3, #4]
642: b10b cbz r3, 648 <RAMECC_Handler+0x2c>
644: 4a01 ldr r2, [pc, #4] ; (64c <RAMECC_Handler+0x30>)
646: e7f4 b.n 632 <RAMECC_Handler+0x16>
}
648: b002 add sp, #8
64a: 4770 bx lr
64c: 41020000 .word 0x41020000
650: 20000a28 .word 0x20000a28
00000654 <is_list_element>:
* \brief Check whether element belongs to list
*/
bool is_list_element(const struct list_descriptor *const list, const void *const element)
{
struct list_element *it;
for (it = list->head; it; it = it->next) {
654: 6800 ldr r0, [r0, #0]
656: b900 cbnz r0, 65a <is_list_element+0x6>
658: 4770 bx lr
if (it == element) {
65a: 4288 cmp r0, r1
65c: d1fa bne.n 654 <is_list_element>
return true;
65e: 2001 movs r0, #1
}
}
return false;
}
660: 4770 bx lr
...
00000664 <list_insert_as_head>:
/**
* \brief Insert an element as list head
*/
void list_insert_as_head(struct list_descriptor *const list, void *const element)
{
664: b538 push {r3, r4, r5, lr}
ASSERT(!is_list_element(list, element));
666: 4b07 ldr r3, [pc, #28] ; (684 <list_insert_as_head+0x20>)
{
668: 4604 mov r4, r0
ASSERT(!is_list_element(list, element));
66a: 4798 blx r3
66c: f080 0001 eor.w r0, r0, #1
{
670: 460d mov r5, r1
ASSERT(!is_list_element(list, element));
672: 4b05 ldr r3, [pc, #20] ; (688 <list_insert_as_head+0x24>)
674: 4905 ldr r1, [pc, #20] ; (68c <list_insert_as_head+0x28>)
676: 2239 movs r2, #57 ; 0x39
678: b2c0 uxtb r0, r0
67a: 4798 blx r3
((struct list_element *)element)->next = list->head;
67c: 6823 ldr r3, [r4, #0]
67e: 602b str r3, [r5, #0]
list->head = (struct list_element *)element;
680: 6025 str r5, [r4, #0]
}
682: bd38 pop {r3, r4, r5, pc}
684: 00000655 .word 0x00000655
688: 000006a5 .word 0x000006a5
68c: 0001dd98 .word 0x0001dd98
00000690 <list_insert_after>:
/**
* \brief Insert an element after the given list element
*/
void list_insert_after(void *const after, void *const element)
{
((struct list_element *)element)->next = ((struct list_element *)after)->next;
690: 6803 ldr r3, [r0, #0]
692: 600b str r3, [r1, #0]
((struct list_element *)after)->next = (struct list_element *)element;
694: 6001 str r1, [r0, #0]
}
696: 4770 bx lr
00000698 <list_remove_head>:
/**
* \brief Removes list head
*/
void *list_remove_head(struct list_descriptor *const list)
{
if (list->head) {
698: 6803 ldr r3, [r0, #0]
69a: b10b cbz r3, 6a0 <list_remove_head+0x8>
struct list_element *tmp = list->head;
list->head = list->head->next;
69c: 681a ldr r2, [r3, #0]
69e: 6002 str r2, [r0, #0]
return (void *)tmp;
}
return NULL;
}
6a0: 4618 mov r0, r3
6a2: 4770 bx lr
000006a4 <assert>:
/**
* \brief Assert function
*/
void assert(const bool condition, const char *const file, const int line)
{
if (!(condition)) {
6a4: b900 cbnz r0, 6a8 <assert+0x4>
__asm("BKPT #0");
6a6: be00 bkpt 0x0000
}
(void)file;
(void)line;
}
6a8: 4770 bx lr
000006aa <_oscctrl_init_sources>:
hri_oscctrl_set_XOSCCTRL_ONDEMAND_bit(hw, 1);
#endif
#endif
(void)hw;
}
6aa: 4770 bx lr
000006ac <_oscctrl_init_referenced_generators>:
static inline void hri_oscctrl_write_DPLLRATIO_reg(const void *const hw, uint8_t submodule_index,
hri_oscctrl_dpllratio_reg_t data)
{
OSCCTRL_CRITICAL_SECTION_ENTER();
((Oscctrl *)hw)->Dpll[submodule_index].DPLLRATIO.reg = data;
6ac: 4b0c ldr r3, [pc, #48] ; (6e0 <_oscctrl_init_referenced_generators+0x34>)
6ae: 4a0d ldr r2, [pc, #52] ; (6e4 <_oscctrl_init_referenced_generators+0x38>)
6b0: 635a str r2, [r3, #52] ; 0x34
while (((Oscctrl *)hw)->Dpll[submodule_index].DPLLSYNCBUSY.reg & reg) {
6b2: 6bda ldr r2, [r3, #60] ; 0x3c
6b4: f012 0f06 tst.w r2, #6
6b8: d1fb bne.n 6b2 <_oscctrl_init_referenced_generators+0x6>
static inline void hri_oscctrl_write_DPLLCTRLB_reg(const void *const hw, uint8_t submodule_index,
hri_oscctrl_dpllctrlb_reg_t data)
{
OSCCTRL_CRITICAL_SECTION_ENTER();
((Oscctrl *)hw)->Dpll[submodule_index].DPLLCTRLB.reg = data;
6ba: f44f 6202 mov.w r2, #2080 ; 0x820
6be: 639a str r2, [r3, #56] ; 0x38
((Oscctrl *)hw)->Dpll[submodule_index].DPLLCTRLA.reg = data;
6c0: 2202 movs r2, #2
6c2: f883 2030 strb.w r2, [r3, #48] ; 0x30
while (((Oscctrl *)hw)->Dpll[submodule_index].DPLLSYNCBUSY.reg & reg) {
6c6: 4a06 ldr r2, [pc, #24] ; (6e0 <_oscctrl_init_referenced_generators+0x34>)
6c8: 6bd3 ldr r3, [r2, #60] ; 0x3c
6ca: 0798 lsls r0, r3, #30
6cc: d4fc bmi.n 6c8 <_oscctrl_init_referenced_generators+0x1c>
return (((Oscctrl *)hw)->Dpll[submodule_index].DPLLSTATUS.reg & OSCCTRL_DPLLSTATUS_LOCK)
6ce: 4b04 ldr r3, [pc, #16] ; (6e0 <_oscctrl_init_referenced_generators+0x34>)
6d0: 6c1a ldr r2, [r3, #64] ; 0x40
#endif
#endif
#if CONF_FDPLL0_CONFIG == 1
#if CONF_FDPLL0_ENABLE == 1
while (!(hri_oscctrl_get_DPLLSTATUS_LOCK_bit(hw, 0) || hri_oscctrl_get_DPLLSTATUS_CLKRDY_bit(hw, 0)))
6d2: 07d1 lsls r1, r2, #31
6d4: d402 bmi.n 6dc <_oscctrl_init_referenced_generators+0x30>
return (((Oscctrl *)hw)->Dpll[submodule_index].DPLLSTATUS.reg & OSCCTRL_DPLLSTATUS_CLKRDY)
6d6: 6c1a ldr r2, [r3, #64] ; 0x40
6d8: 0792 lsls r2, r2, #30
6da: d5f9 bpl.n 6d0 <_oscctrl_init_referenced_generators+0x24>
hri_gclk_write_GENCTRL_SRC_bf(GCLK, 0, CONF_GCLK_GEN_0_SOURCE);
while (hri_gclk_get_SYNCBUSY_GENCTRL0_bit(GCLK))
;
#endif
(void)hw;
}
6dc: 4770 bx lr
6de: bf00 nop
6e0: 40001000 .word 0x40001000
6e4: 00010e4d .word 0x00010e4d
000006e8 <_mclk_init>:
}
static inline void hri_mclk_write_CPUDIV_reg(const void *const hw, hri_mclk_cpudiv_reg_t data)
{
MCLK_CRITICAL_SECTION_ENTER();
((Mclk *)hw)->CPUDIV.reg = data;
6e8: 4b01 ldr r3, [pc, #4] ; (6f0 <_mclk_init+0x8>)
6ea: 2201 movs r2, #1
6ec: 715a strb r2, [r3, #5]
*/
void _mclk_init(void)
{
void *hw = (void *)MCLK;
hri_mclk_write_CPUDIV_reg(hw, MCLK_CPUDIV_DIV(CONF_MCLK_CPUDIV));
}
6ee: 4770 bx lr
6f0: 40000800 .word 0x40000800
000006f4 <hri_sercomi2cm_wait_for_sync>:
while (((Sercom *)hw)->I2CM.SYNCBUSY.reg & reg) {
6f4: 69c3 ldr r3, [r0, #28]
6f6: 420b tst r3, r1
6f8: d1fc bne.n 6f4 <hri_sercomi2cm_wait_for_sync>
}
6fa: 4770 bx lr
000006fc <hri_sercomi2cm_set_CTRLA_ENABLE_bit>:
((Sercom *)hw)->I2CM.CTRLA.reg |= SERCOM_I2CM_CTRLA_ENABLE;
6fc: 6802 ldr r2, [r0, #0]
hri_sercomi2cm_wait_for_sync(hw, SERCOM_I2CM_SYNCBUSY_SWRST | SERCOM_I2CM_SYNCBUSY_ENABLE);
6fe: 4b03 ldr r3, [pc, #12] ; (70c <hri_sercomi2cm_set_CTRLA_ENABLE_bit+0x10>)
((Sercom *)hw)->I2CM.CTRLA.reg |= SERCOM_I2CM_CTRLA_ENABLE;
700: f042 0202 orr.w r2, r2, #2
704: 6002 str r2, [r0, #0]
hri_sercomi2cm_wait_for_sync(hw, SERCOM_I2CM_SYNCBUSY_SWRST | SERCOM_I2CM_SYNCBUSY_ENABLE);
706: 2103 movs r1, #3
708: 4718 bx r3
70a: bf00 nop
70c: 000006f5 .word 0x000006f5
00000710 <hri_sercomi2cm_clear_CTRLA_ENABLE_bit>:
((Sercom *)hw)->I2CM.CTRLA.reg &= ~SERCOM_I2CM_CTRLA_ENABLE;
710: 6802 ldr r2, [r0, #0]
hri_sercomi2cm_wait_for_sync(hw, SERCOM_I2CM_SYNCBUSY_SWRST | SERCOM_I2CM_SYNCBUSY_ENABLE);
712: 4b03 ldr r3, [pc, #12] ; (720 <hri_sercomi2cm_clear_CTRLA_ENABLE_bit+0x10>)
((Sercom *)hw)->I2CM.CTRLA.reg &= ~SERCOM_I2CM_CTRLA_ENABLE;
714: f022 0202 bic.w r2, r2, #2
718: 6002 str r2, [r0, #0]
hri_sercomi2cm_wait_for_sync(hw, SERCOM_I2CM_SYNCBUSY_SWRST | SERCOM_I2CM_SYNCBUSY_ENABLE);
71a: 2103 movs r1, #3
71c: 4718 bx r3
71e: bf00 nop
720: 000006f5 .word 0x000006f5
00000724 <hri_sercomi2cm_write_CTRLA_reg>:
((Sercom *)hw)->I2CM.CTRLA.reg = data;
724: 6001 str r1, [r0, #0]
hri_sercomi2cm_wait_for_sync(hw, SERCOM_I2CM_SYNCBUSY_SWRST | SERCOM_I2CM_SYNCBUSY_ENABLE);
726: 4b01 ldr r3, [pc, #4] ; (72c <hri_sercomi2cm_write_CTRLA_reg+0x8>)
728: 2103 movs r1, #3
72a: 4718 bx r3
72c: 000006f5 .word 0x000006f5
00000730 <_sercom_get_hardware_index>:
{
730: b570 push {r4, r5, r6, lr}
Sercom *const sercom_modules[] = SERCOM_INSTS;
732: 4d0c ldr r5, [pc, #48] ; (764 <_sercom_get_hardware_index+0x34>)
{
734: 4606 mov r6, r0
Sercom *const sercom_modules[] = SERCOM_INSTS;
736: cd0f ldmia r5!, {r0, r1, r2, r3}
{
738: b088 sub sp, #32
Sercom *const sercom_modules[] = SERCOM_INSTS;
73a: 466c mov r4, sp
73c: c40f stmia r4!, {r0, r1, r2, r3}
73e: e895 000f ldmia.w r5, {r0, r1, r2, r3}
742: e884 000f stmia.w r4, {r0, r1, r2, r3}
for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
746: 466a mov r2, sp
748: 2300 movs r3, #0
if ((uint32_t)hw == (uint32_t)sercom_modules[i]) {
74a: f852 1b04 ldr.w r1, [r2], #4
74e: 42b1 cmp r1, r6
750: d102 bne.n 758 <_sercom_get_hardware_index+0x28>
return i;
752: b2d8 uxtb r0, r3
}
754: b008 add sp, #32
756: bd70 pop {r4, r5, r6, pc}
for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) {
758: 3301 adds r3, #1
75a: 2b08 cmp r3, #8
75c: d1f5 bne.n 74a <_sercom_get_hardware_index+0x1a>
return 0;
75e: 2000 movs r0, #0
760: e7f8 b.n 754 <_sercom_get_hardware_index+0x24>
762: bf00 nop
764: 0001ddd4 .word 0x0001ddd4
00000768 <_sercom_get_irq_num>:
{
768: b508 push {r3, lr}
return SERCOM0_0_IRQn + (_sercom_get_hardware_index(hw) << 2);
76a: 4b03 ldr r3, [pc, #12] ; (778 <_sercom_get_irq_num+0x10>)
76c: 4798 blx r3
76e: 0080 lsls r0, r0, #2
770: 302e adds r0, #46 ; 0x2e
}
772: f000 00fe and.w r0, r0, #254 ; 0xfe
776: bd08 pop {r3, pc}
778: 00000731 .word 0x00000731
0000077c <__NVIC_EnableIRQ>:
NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
77c: 0941 lsrs r1, r0, #5
77e: 4a04 ldr r2, [pc, #16] ; (790 <__NVIC_EnableIRQ+0x14>)
780: f000 001f and.w r0, r0, #31
784: 2301 movs r3, #1
786: 4083 lsls r3, r0
788: f842 3021 str.w r3, [r2, r1, lsl #2]
}
78c: 4770 bx lr
78e: bf00 nop
790: e000e100 .word 0xe000e100
00000794 <__NVIC_DisableIRQ>:
NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
794: 0943 lsrs r3, r0, #5
796: 4906 ldr r1, [pc, #24] ; (7b0 <__NVIC_DisableIRQ+0x1c>)
798: f000 001f and.w r0, r0, #31
79c: 3320 adds r3, #32
79e: 2201 movs r2, #1
7a0: 4082 lsls r2, r0
7a2: f841 2023 str.w r2, [r1, r3, lsl #2]
\details Acts as a special kind of Data Memory Barrier.
It completes when all explicit memory accesses before this instruction complete.
*/
__STATIC_FORCEINLINE void __DSB(void)
{
__ASM volatile ("dsb 0xF":::"memory");
7a6: f3bf 8f4f dsb sy
__ASM volatile ("isb 0xF":::"memory");
7aa: f3bf 8f6f isb sy
}
7ae: 4770 bx lr
7b0: e000e100 .word 0xe000e100
000007b4 <__NVIC_ClearPendingIRQ>:
*/
__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn)
{
if ((int32_t)(IRQn) >= 0)
{
NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
7b4: 0943 lsrs r3, r0, #5
7b6: 4904 ldr r1, [pc, #16] ; (7c8 <__NVIC_ClearPendingIRQ+0x14>)
7b8: f000 001f and.w r0, r0, #31
7bc: 2201 movs r2, #1
7be: 3360 adds r3, #96 ; 0x60
7c0: 4082 lsls r2, r0
7c2: f841 2023 str.w r2, [r1, r3, lsl #2]
}
}
7c6: 4770 bx lr
7c8: e000e100 .word 0xe000e100
000007cc <_usart_init>:
{
7cc: b570 push {r4, r5, r6, lr}
uint8_t sercom_offset = _sercom_get_hardware_index(hw);
7ce: 4b19 ldr r3, [pc, #100] ; (834 <_usart_init+0x68>)
{
7d0: 4604 mov r4, r0
uint8_t sercom_offset = _sercom_get_hardware_index(hw);
7d2: 4798 blx r3
if (_usarts[i].number == sercom_offset) {
7d4: b128 cbz r0, 7e2 <_usart_init+0x16>
ASSERT(false);
7d6: 4918 ldr r1, [pc, #96] ; (838 <_usart_init+0x6c>)
7d8: 4b18 ldr r3, [pc, #96] ; (83c <_usart_init+0x70>)
7da: f240 226b movw r2, #619 ; 0x26b
7de: 2000 movs r0, #0
7e0: 4798 blx r3
return ((Sercom *)hw)->USART.SYNCBUSY.reg & reg;
7e2: 69e3 ldr r3, [r4, #28]
7e4: 4d16 ldr r5, [pc, #88] ; (840 <_usart_init+0x74>)
7e6: 4e17 ldr r6, [pc, #92] ; (844 <_usart_init+0x78>)
if (!hri_sercomusart_is_syncing(hw, SERCOM_USART_SYNCBUSY_SWRST)) {
7e8: f013 0f01 tst.w r3, #1
7ec: d10d bne.n 80a <_usart_init+0x3e>
hri_sercomi2cm_wait_for_sync(hw, SERCOM_I2CM_SYNCBUSY_SWRST | SERCOM_I2CM_SYNCBUSY_ENABLE);
7ee: 4b16 ldr r3, [pc, #88] ; (848 <_usart_init+0x7c>)
7f0: 2103 movs r1, #3
7f2: 4620 mov r0, r4
7f4: 4798 blx r3
tmp = ((Sercom *)hw)->I2CM.CTRLA.reg;
7f6: 6823 ldr r3, [r4, #0]
if (hri_sercomusart_get_CTRLA_reg(hw, SERCOM_USART_CTRLA_ENABLE)) {
7f8: 079b lsls r3, r3, #30
7fa: d503 bpl.n 804 <_usart_init+0x38>
hri_sercomusart_clear_CTRLA_ENABLE_bit(hw);
7fc: 4b13 ldr r3, [pc, #76] ; (84c <_usart_init+0x80>)
7fe: 4798 blx r3
hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_ENABLE);
800: 2102 movs r1, #2
802: 47a8 blx r5
hri_sercomusart_write_CTRLA_reg(hw, SERCOM_USART_CTRLA_SWRST | mode);
804: 2105 movs r1, #5
806: 4620 mov r0, r4
808: 47b0 blx r6
hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_SWRST);
80a: 4620 mov r0, r4
80c: 2101 movs r1, #1
80e: 47a8 blx r5
hri_sercomusart_write_CTRLA_reg(hw, _usarts[i].ctrl_a);
810: 490f ldr r1, [pc, #60] ; (850 <_usart_init+0x84>)
812: 47b0 blx r6
((Sercom *)hw)->USART.CTRLB.reg = data;
814: f44f 3340 mov.w r3, #196608 ; 0x30000
818: 6063 str r3, [r4, #4]
hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_MASK);
81a: 211f movs r1, #31
81c: 47a8 blx r5
((Sercom *)hw)->USART.CTRLC.reg = data;
81e: 4b0d ldr r3, [pc, #52] ; (854 <_usart_init+0x88>)
820: 60a3 str r3, [r4, #8]
}
static inline void hri_sercomusart_write_BAUD_reg(const void *const hw, hri_sercomusart_baud_reg_t data)
{
SERCOM_CRITICAL_SECTION_ENTER();
((Sercom *)hw)->USART.BAUD.reg = data;
822: f64f 4311 movw r3, #64529 ; 0xfc11
826: 81a3 strh r3, [r4, #12]
}
static inline void hri_sercomusart_write_RXPL_reg(const void *const hw, hri_sercomusart_rxpl_reg_t data)
{
SERCOM_CRITICAL_SECTION_ENTER();
((Sercom *)hw)->USART.RXPL.reg = data;
828: 2300 movs r3, #0
82a: 73a3 strb r3, [r4, #14]
}
82c: 4618 mov r0, r3
}
static inline void hri_sercomusart_write_DBGCTRL_reg(const void *const hw, hri_sercomusart_dbgctrl_reg_t data)
{
SERCOM_CRITICAL_SECTION_ENTER();
((Sercom *)hw)->USART.DBGCTRL.reg = data;
82e: f884 3030 strb.w r3, [r4, #48] ; 0x30
832: bd70 pop {r4, r5, r6, pc}
834: 00000731 .word 0x00000731
838: 0001ddb6 .word 0x0001ddb6
83c: 000006a5 .word 0x000006a5
840: 000006f5 .word 0x000006f5
844: 00000725 .word 0x00000725
848: 000006f5 .word 0x000006f5
84c: 00000711 .word 0x00000711
850: 40100004 .word 0x40100004
854: 00700002 .word 0x00700002
00000858 <_usart_async_init>:
{
858: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
ASSERT(device);
85c: 4605 mov r5, r0
85e: 3800 subs r0, #0
860: bf18 it ne
862: 2001 movne r0, #1
864: 4b14 ldr r3, [pc, #80] ; (8b8 <_usart_async_init+0x60>)
{
866: 460c mov r4, r1
ASSERT(device);
868: 22cb movs r2, #203 ; 0xcb
86a: 4914 ldr r1, [pc, #80] ; (8bc <_usart_async_init+0x64>)
86c: 4798 blx r3
init_status = _usart_init(hw);
86e: 4b14 ldr r3, [pc, #80] ; (8c0 <_usart_async_init+0x68>)
870: 4620 mov r0, r4
872: 4798 blx r3
if (init_status) {
874: 4606 mov r6, r0
876: b9d8 cbnz r0, 8b0 <_usart_async_init+0x58>
if (hw == SERCOM0) {
878: 4b12 ldr r3, [pc, #72] ; (8c4 <_usart_async_init+0x6c>)
device->hw = hw;
87a: 61ac str r4, [r5, #24]
if (hw == SERCOM0) {
87c: 429c cmp r4, r3
_sercom0_dev = (struct _usart_async_device *)dev;
87e: bf08 it eq
880: 4b11 ldreq r3, [pc, #68] ; (8c8 <_usart_async_init+0x70>)
NVIC_DisableIRQ((IRQn_Type)irq);
882: f8df 9050 ldr.w r9, [pc, #80] ; 8d4 <_usart_async_init+0x7c>
_sercom0_dev = (struct _usart_async_device *)dev;
886: bf08 it eq
888: 601d streq r5, [r3, #0]
uint8_t irq = _sercom_get_irq_num(hw);
88a: 4620 mov r0, r4
88c: 4b0f ldr r3, [pc, #60] ; (8cc <_usart_async_init+0x74>)
NVIC_ClearPendingIRQ((IRQn_Type)irq);
88e: f8df 8048 ldr.w r8, [pc, #72] ; 8d8 <_usart_async_init+0x80>
NVIC_EnableIRQ((IRQn_Type)irq);
892: 4f0f ldr r7, [pc, #60] ; (8d0 <_usart_async_init+0x78>)
uint8_t irq = _sercom_get_irq_num(hw);
894: 4798 blx r3
for (uint32_t i = 0; i < 4; i++) {
896: 2400 movs r4, #0
uint8_t irq = _sercom_get_irq_num(hw);
898: 4605 mov r5, r0
NVIC_DisableIRQ((IRQn_Type)irq);
89a: 192b adds r3, r5, r4
89c: b2d8 uxtb r0, r3
89e: 9001 str r0, [sp, #4]
8a0: 47c8 blx r9
NVIC_ClearPendingIRQ((IRQn_Type)irq);
8a2: 9801 ldr r0, [sp, #4]
8a4: 47c0 blx r8
for (uint32_t i = 0; i < 4; i++) {
8a6: 3401 adds r4, #1
NVIC_EnableIRQ((IRQn_Type)irq);
8a8: 9801 ldr r0, [sp, #4]
8aa: 47b8 blx r7
for (uint32_t i = 0; i < 4; i++) {
8ac: 2c04 cmp r4, #4
8ae: d1f4 bne.n 89a <_usart_async_init+0x42>
}
8b0: 4630 mov r0, r6
8b2: b003 add sp, #12
8b4: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
8b8: 000006a5 .word 0x000006a5
8bc: 0001ddb6 .word 0x0001ddb6
8c0: 000007cd .word 0x000007cd
8c4: 40003000 .word 0x40003000
8c8: 20000a38 .word 0x20000a38
8cc: 00000769 .word 0x00000769
8d0: 0000077d .word 0x0000077d
8d4: 00000795 .word 0x00000795
8d8: 000007b5 .word 0x000007b5
000008dc <_usart_async_enable>:
hri_sercomusart_set_CTRLA_ENABLE_bit(device->hw);
8dc: 6980 ldr r0, [r0, #24]
8de: 4b01 ldr r3, [pc, #4] ; (8e4 <_usart_async_enable+0x8>)
8e0: 4718 bx r3
8e2: bf00 nop
8e4: 000006fd .word 0x000006fd
000008e8 <_usart_async_write_byte>:
hri_sercomusart_write_DATA_reg(device->hw, data);
8e8: 6983 ldr r3, [r0, #24]
((Sercom *)hw)->USART.DATA.reg = data;
8ea: 6299 str r1, [r3, #40] ; 0x28
}
8ec: 4770 bx lr
000008ee <_usart_async_enable_byte_sent_irq>:
hri_sercomusart_set_INTEN_DRE_bit(device->hw);
8ee: 6983 ldr r3, [r0, #24]
((Sercom *)hw)->USART.INTENSET.reg = SERCOM_USART_INTENSET_DRE;
8f0: 2201 movs r2, #1
8f2: 759a strb r2, [r3, #22]
}
8f4: 4770 bx lr
000008f6 <_usart_async_enable_tx_done_irq>:
hri_sercomusart_set_INTEN_TXC_bit(device->hw);
8f6: 6983 ldr r3, [r0, #24]
((Sercom *)hw)->USART.INTENSET.reg = SERCOM_USART_INTENSET_TXC;
8f8: 2202 movs r2, #2
8fa: 759a strb r2, [r3, #22]
}
8fc: 4770 bx lr
...
00000900 <_usart_async_set_irq_state>:
{
900: b570 push {r4, r5, r6, lr}
ASSERT(device);
902: 4604 mov r4, r0
904: 3800 subs r0, #0
{
906: 460e mov r6, r1
ASSERT(device);
908: bf18 it ne
90a: 2001 movne r0, #1
90c: 490f ldr r1, [pc, #60] ; (94c <_usart_async_set_irq_state+0x4c>)
90e: 4b10 ldr r3, [pc, #64] ; (950 <_usart_async_set_irq_state+0x50>)
{
910: 4615 mov r5, r2
ASSERT(device);
912: f240 222b movw r2, #555 ; 0x22b
916: 4798 blx r3
if (USART_ASYNC_BYTE_SENT == type || USART_ASYNC_TX_DONE == type) {
918: f016 0ffd tst.w r6, #253 ; 0xfd
91c: d109 bne.n 932 <_usart_async_set_irq_state+0x32>
hri_sercomusart_write_INTEN_DRE_bit(device->hw, state);
91e: 69a3 ldr r3, [r4, #24]
if (value == 0x0) {
920: 2101 movs r1, #1
922: 2202 movs r2, #2
924: b915 cbnz r5, 92c <_usart_async_set_irq_state+0x2c>
((Sercom *)hw)->USART.INTENCLR.reg = SERCOM_USART_INTENSET_DRE;
926: 7519 strb r1, [r3, #20]
((Sercom *)hw)->USART.INTENCLR.reg = SERCOM_USART_INTENSET_ERROR;
928: 751a strb r2, [r3, #20]
}
92a: bd70 pop {r4, r5, r6, pc}
((Sercom *)hw)->USART.INTENSET.reg = SERCOM_USART_INTENSET_DRE;
92c: 7599 strb r1, [r3, #22]
((Sercom *)hw)->USART.INTENSET.reg = SERCOM_USART_INTENSET_ERROR;
92e: 759a strb r2, [r3, #22]
930: e7fb b.n 92a <_usart_async_set_irq_state+0x2a>
} else if (USART_ASYNC_RX_DONE == type) {
932: 2e01 cmp r6, #1
934: d104 bne.n 940 <_usart_async_set_irq_state+0x40>
hri_sercomusart_write_INTEN_RXC_bit(device->hw, state);
936: 69a3 ldr r3, [r4, #24]
if (value == 0x0) {
938: 2204 movs r2, #4
if (value == 0x0) {
93a: 2d00 cmp r5, #0
93c: d1f7 bne.n 92e <_usart_async_set_irq_state+0x2e>
93e: e7f3 b.n 928 <_usart_async_set_irq_state+0x28>
} else if (USART_ASYNC_ERROR == type) {
940: 2e03 cmp r6, #3
942: d1f2 bne.n 92a <_usart_async_set_irq_state+0x2a>
hri_sercomusart_write_INTEN_ERROR_bit(device->hw, state);
944: 69a3 ldr r3, [r4, #24]
946: 2280 movs r2, #128 ; 0x80
948: e7f7 b.n 93a <_usart_async_set_irq_state+0x3a>
94a: bf00 nop
94c: 0001ddb6 .word 0x0001ddb6
950: 000006a5 .word 0x000006a5
00000954 <SERCOM0_0_Handler>:
/**
* \internal Sercom interrupt handler
*/
void SERCOM0_0_Handler(void)
{
_sercom_usart_interrupt_handler(_sercom0_dev);
954: 4b19 ldr r3, [pc, #100] ; (9bc <SERCOM0_0_Handler+0x68>)
956: 6818 ldr r0, [r3, #0]
{
958: b510 push {r4, lr}
void *hw = device->hw;
95a: 6984 ldr r4, [r0, #24]
return (((Sercom *)hw)->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_DRE) >> SERCOM_USART_INTFLAG_DRE_Pos;
95c: 7e23 ldrb r3, [r4, #24]
if (hri_sercomusart_get_interrupt_DRE_bit(hw) && hri_sercomusart_get_INTEN_DRE_bit(hw)) {
95e: 07da lsls r2, r3, #31
960: d508 bpl.n 974 <SERCOM0_0_Handler+0x20>
return (((Sercom *)hw)->USART.INTENSET.reg & SERCOM_USART_INTENSET_DRE) >> SERCOM_USART_INTENSET_DRE_Pos;
962: 7da3 ldrb r3, [r4, #22]
964: 07db lsls r3, r3, #31
966: d505 bpl.n 974 <SERCOM0_0_Handler+0x20>
((Sercom *)hw)->USART.INTENCLR.reg = SERCOM_USART_INTENSET_DRE;
968: 2301 movs r3, #1
96a: 7523 strb r3, [r4, #20]
device->usart_cb.tx_byte_sent(device);
96c: 6803 ldr r3, [r0, #0]
}
96e: e8bd 4010 ldmia.w sp!, {r4, lr}
device->usart_cb.tx_done_cb(device);
972: 4718 bx r3
return (((Sercom *)hw)->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_TXC) >> SERCOM_USART_INTFLAG_TXC_Pos;
974: 7e23 ldrb r3, [r4, #24]
} else if (hri_sercomusart_get_interrupt_TXC_bit(hw) && hri_sercomusart_get_INTEN_TXC_bit(hw)) {
976: 0799 lsls r1, r3, #30
978: d506 bpl.n 988 <SERCOM0_0_Handler+0x34>
return (((Sercom *)hw)->USART.INTENSET.reg & SERCOM_USART_INTENSET_TXC) >> SERCOM_USART_INTENSET_TXC_Pos;
97a: 7da3 ldrb r3, [r4, #22]
97c: 079a lsls r2, r3, #30
97e: d503 bpl.n 988 <SERCOM0_0_Handler+0x34>
((Sercom *)hw)->USART.INTENCLR.reg = SERCOM_USART_INTENSET_TXC;
980: 2302 movs r3, #2
982: 7523 strb r3, [r4, #20]
device->usart_cb.tx_done_cb(device);
984: 6883 ldr r3, [r0, #8]
986: e7f2 b.n 96e <SERCOM0_0_Handler+0x1a>
return (((Sercom *)hw)->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_RXC) >> SERCOM_USART_INTFLAG_RXC_Pos;
988: 7e23 ldrb r3, [r4, #24]
} else if (hri_sercomusart_get_interrupt_RXC_bit(hw)) {
98a: 075b lsls r3, r3, #29
98c: d50c bpl.n 9a8 <SERCOM0_0_Handler+0x54>
SERCOM_CRITICAL_SECTION_LEAVE();
}
static inline hri_sercomusart_status_reg_t hri_sercomusart_read_STATUS_reg(const void *const hw)
{
return ((Sercom *)hw)->USART.STATUS.reg;
98e: 8b63 ldrh r3, [r4, #26]
if (hri_sercomusart_read_STATUS_reg(hw)
990: f003 0337 and.w r3, r3, #55 ; 0x37
994: b113 cbz r3, 99c <SERCOM0_0_Handler+0x48>
((Sercom *)hw)->USART.STATUS.reg = mask;
996: 23ff movs r3, #255 ; 0xff
998: 8363 strh r3, [r4, #26]
}
99a: bd10 pop {r4, pc}
return ((Sercom *)hw)->USART.DATA.reg;
99c: 6aa1 ldr r1, [r4, #40] ; 0x28
device->usart_cb.rx_done_cb(device, hri_sercomusart_read_DATA_reg(hw));
99e: 6843 ldr r3, [r0, #4]
}
9a0: e8bd 4010 ldmia.w sp!, {r4, lr}
device->usart_cb.rx_done_cb(device, hri_sercomusart_read_DATA_reg(hw));
9a4: b2c9 uxtb r1, r1
9a6: 4718 bx r3
return (((Sercom *)hw)->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_ERROR) >> SERCOM_USART_INTFLAG_ERROR_Pos;
9a8: 7e23 ldrb r3, [r4, #24]
} else if (hri_sercomusart_get_interrupt_ERROR_bit(hw)) {
9aa: 09db lsrs r3, r3, #7
9ac: d0f5 beq.n 99a <SERCOM0_0_Handler+0x46>
((Sercom *)hw)->USART.INTFLAG.reg = SERCOM_USART_INTFLAG_ERROR;
9ae: 2380 movs r3, #128 ; 0x80
9b0: 7623 strb r3, [r4, #24]
device->usart_cb.error_cb(device);
9b2: 68c3 ldr r3, [r0, #12]
9b4: 4798 blx r3
return ((Sercom *)hw)->USART.STATUS.reg;
9b6: 8b63 ldrh r3, [r4, #26]
9b8: b29b uxth r3, r3
9ba: e7ed b.n 998 <SERCOM0_0_Handler+0x44>
9bc: 20000a38 .word 0x20000a38
000009c0 <SERCOM0_1_Handler>:
9c0: 4b00 ldr r3, [pc, #0] ; (9c4 <SERCOM0_1_Handler+0x4>)
9c2: 4718 bx r3
9c4: 00000955 .word 0x00000955
000009c8 <SERCOM0_2_Handler>:
9c8: 4b00 ldr r3, [pc, #0] ; (9cc <SERCOM0_2_Handler+0x4>)
9ca: 4718 bx r3
9cc: 00000955 .word 0x00000955
000009d0 <SERCOM0_3_Handler>:
9d0: 4b00 ldr r3, [pc, #0] ; (9d4 <SERCOM0_3_Handler+0x4>)
9d2: 4718 bx r3
9d4: 00000955 .word 0x00000955
000009d8 <_gclk_init_generators_by_fref>:
void _gclk_init_generators_by_fref(uint32_t bm)
{
#if CONF_GCLK_GENERATOR_0_CONFIG == 1
if (bm & (1ul << 0)) {
9d8: 07c3 lsls r3, r0, #31
9da: d507 bpl.n 9ec <_gclk_init_generators_by_fref+0x14>
}
static inline void hri_gclk_write_GENCTRL_reg(const void *const hw, uint8_t index, hri_gclk_genctrl_reg_t data)
{
GCLK_CRITICAL_SECTION_ENTER();
((Gclk *)hw)->GENCTRL[index].reg = data;
9dc: 4b04 ldr r3, [pc, #16] ; (9f0 <_gclk_init_generators_by_fref+0x18>)
9de: 4a05 ldr r2, [pc, #20] ; (9f4 <_gclk_init_generators_by_fref+0x1c>)
9e0: 621a str r2, [r3, #32]
while (((Gclk *)hw)->SYNCBUSY.reg & reg) {
9e2: f643 72fd movw r2, #16381 ; 0x3ffd
9e6: 6859 ldr r1, [r3, #4]
9e8: 4211 tst r1, r2
9ea: d1fc bne.n 9e6 <_gclk_init_generators_by_fref+0xe>
| (CONF_GCLK_GEN_11_DIVSEL << GCLK_GENCTRL_DIVSEL_Pos) | (CONF_GCLK_GEN_11_OE << GCLK_GENCTRL_OE_Pos)
| (CONF_GCLK_GEN_11_OOV << GCLK_GENCTRL_OOV_Pos) | (CONF_GCLK_GEN_11_IDC << GCLK_GENCTRL_IDC_Pos)
| (CONF_GCLK_GENERATOR_11_CONFIG << GCLK_GENCTRL_GENEN_Pos) | CONF_GCLK_GEN_11_SOURCE);
}
#endif
}
9ec: 4770 bx lr
9ee: bf00 nop
9f0: 40001c00 .word 0x40001c00
9f4: 00010107 .word 0x00010107
000009f8 <Dummy_Handler>:
/**
* \brief Default interrupt handler for unused IRQs.
*/
void Dummy_Handler(void)
{
while (1) {
9f8: e7fe b.n 9f8 <Dummy_Handler>
...
000009fc <Reset_Handler>:
if (pSrc != pDest) {
9fc: 4918 ldr r1, [pc, #96] ; (a60 <Reset_Handler+0x64>)
9fe: 4819 ldr r0, [pc, #100] ; (a64 <Reset_Handler+0x68>)
a00: 4281 cmp r1, r0
{
a02: b510 push {r4, lr}
if (pSrc != pDest) {
a04: d00a beq.n a1c <Reset_Handler+0x20>
*pDest++ = *pSrc++;
a06: 4b18 ldr r3, [pc, #96] ; (a68 <Reset_Handler+0x6c>)
a08: 1cda adds r2, r3, #3
a0a: 1a12 subs r2, r2, r0
a0c: f022 0203 bic.w r2, r2, #3
a10: 1ec4 subs r4, r0, #3
a12: 42a3 cmp r3, r4
a14: bf38 it cc
a16: 2200 movcc r2, #0
a18: 4b14 ldr r3, [pc, #80] ; (a6c <Reset_Handler+0x70>)
a1a: 4798 blx r3
*pDest++ = 0;
a1c: 4b14 ldr r3, [pc, #80] ; (a70 <Reset_Handler+0x74>)
a1e: 4815 ldr r0, [pc, #84] ; (a74 <Reset_Handler+0x78>)
a20: 1cda adds r2, r3, #3
a22: 1a12 subs r2, r2, r0
a24: 1ec1 subs r1, r0, #3
a26: f022 0203 bic.w r2, r2, #3
a2a: 4299 cmp r1, r3
a2c: bf88 it hi
a2e: 2200 movhi r2, #0
a30: 4b11 ldr r3, [pc, #68] ; (a78 <Reset_Handler+0x7c>)
a32: 2100 movs r1, #0
a34: 4798 blx r3
SCB->VTOR = ((uint32_t)pSrc & SCB_VTOR_TBLOFF_Msk);
a36: 4a11 ldr r2, [pc, #68] ; (a7c <Reset_Handler+0x80>)
a38: 4b11 ldr r3, [pc, #68] ; (a80 <Reset_Handler+0x84>)
a3a: f022 027f bic.w r2, r2, #127 ; 0x7f
a3e: 609a str r2, [r3, #8]
SCB->CPACR |= (0xFu << 20);
a40: f8d3 2088 ldr.w r2, [r3, #136] ; 0x88
a44: f442 0270 orr.w r2, r2, #15728640 ; 0xf00000
a48: f8c3 2088 str.w r2, [r3, #136] ; 0x88
__ASM volatile ("dsb 0xF":::"memory");
a4c: f3bf 8f4f dsb sy
__ASM volatile ("isb 0xF":::"memory");
a50: f3bf 8f6f isb sy
__libc_init_array();
a54: 4b0b ldr r3, [pc, #44] ; (a84 <Reset_Handler+0x88>)
a56: 4798 blx r3
main();
a58: 4b0b ldr r3, [pc, #44] ; (a88 <Reset_Handler+0x8c>)
a5a: 4798 blx r3
while (1)
a5c: e7fe b.n a5c <Reset_Handler+0x60>
a5e: bf00 nop
a60: 0002c598 .word 0x0002c598
a64: 20000000 .word 0x20000000
a68: 20000a04 .word 0x20000a04
a6c: 00016d25 .word 0x00016d25
a70: 20005808 .word 0x20005808
a74: 20000a04 .word 0x20000a04
a78: 00016f51 .word 0x00016f51
a7c: 00000000 .word 0x00000000
a80: e000ed00 .word 0xe000ed00
a84: 00016c79 .word 0x00016c79
a88: 00000a8d .word 0x00000a8d
00000a8c <main>:
#include "oracle.h"
#include "p_usart.h"
int main(void)
{
a8c: b508 push {r3, lr}
oracle_init();
a8e: 4b02 ldr r3, [pc, #8] ; (a98 <main+0xc>)
for(;;)
{
oracle_service();
a90: 4c02 ldr r4, [pc, #8] ; (a9c <main+0x10>)
oracle_init();
a92: 4798 blx r3
oracle_service();
a94: 47a0 blx r4
for(;;)
a96: e7fd b.n a94 <main+0x8>
a98: 00000aa1 .word 0x00000aa1
a9c: 00000ad9 .word 0x00000ad9
00000aa0 <oracle_init>:
#include "p_ssd1963.h"
#include "p_screen.h"
void oracle_init(void)
{
aa0: b510 push {r4, lr}
* Currently the following initialization functions are supported:
* - System clock initialization
*/
static inline void init_mcu(void)
{
_init_chip();
aa2: 4b07 ldr r3, [pc, #28] ; (ac0 <oracle_init+0x20>)
aa4: 4798 blx r3
// init mcu
init_mcu();
// uart init
p_usart_init();
aa6: 4b07 ldr r3, [pc, #28] ; (ac4 <oracle_init+0x24>)
aa8: 4798 blx r3
// i2c init
p_i2c_init();
aaa: 4b07 ldr r3, [pc, #28] ; (ac8 <oracle_init+0x28>)
aac: 4798 blx r3
// gpio init
p_gpio_init();
aae: 4b07 ldr r3, [pc, #28] ; (acc <oracle_init+0x2c>)
ab0: 4798 blx r3
// time init
p_time_init();
ab2: 4b07 ldr r3, [pc, #28] ; (ad0 <oracle_init+0x30>)
ab4: 4798 blx r3
p_screen_init();
}
ab6: e8bd 4010 ldmia.w sp!, {r4, lr}
p_screen_init();
aba: 4b06 ldr r3, [pc, #24] ; (ad4 <oracle_init+0x34>)
abc: 4718 bx r3
abe: bf00 nop
ac0: 000005d9 .word 0x000005d9
ac4: 00001481 .word 0x00001481
ac8: 00001355 .word 0x00001355
acc: 00001281 .word 0x00001281
ad0: 00001371 .word 0x00001371
ad4: 00001629 .word 0x00001629
00000ad8 <oracle_service>:
void oracle_service(void)
{
p_screen_service();
ad8: 4b00 ldr r3, [pc, #0] ; (adc <oracle_service+0x4>)
ada: 4718 bx r3
adc: 000016d5 .word 0x000016d5
00000ae0 <_osc32kctrl_init_sources>:
}
static inline void hri_osc32kctrl_write_XOSC32K_reg(const void *const hw, hri_osc32kctrl_xosc32k_reg_t data)
{
OSC32KCTRL_CRITICAL_SECTION_ENTER();
((Osc32kctrl *)hw)->XOSC32K.reg = data;
ae0: 4b06 ldr r3, [pc, #24] ; (afc <_osc32kctrl_init_sources+0x1c>)
ae2: f242 328e movw r2, #9102 ; 0x238e
ae6: 829a strh r2, [r3, #20]
}
static inline void hri_osc32kctrl_write_CFDCTRL_reg(const void *const hw, hri_osc32kctrl_cfdctrl_reg_t data)
{
OSC32KCTRL_CRITICAL_SECTION_ENTER();
((Osc32kctrl *)hw)->CFDCTRL.reg = data;
ae8: 2200 movs r2, #0
aea: 759a strb r2, [r3, #22]
}
static inline void hri_osc32kctrl_write_EVCTRL_reg(const void *const hw, hri_osc32kctrl_evctrl_reg_t data)
{
OSC32KCTRL_CRITICAL_SECTION_ENTER();
((Osc32kctrl *)hw)->EVCTRL.reg = data;
aec: 75da strb r2, [r3, #23]
}
static inline hri_osc32kctrl_osculp32k_reg_t hri_osc32kctrl_read_OSCULP32K_CALIB_bf(const void *const hw)
{
uint32_t tmp;
tmp = ((Osc32kctrl *)hw)->OSCULP32K.reg;
aee: 69da ldr r2, [r3, #28]
calib = hri_osc32kctrl_read_OSCULP32K_CALIB_bf(hw);
hri_osc32kctrl_write_OSCULP32K_reg(hw,
#if CONF_OSCULP32K_CALIB_ENABLE == 1
OSC32KCTRL_OSCULP32K_CALIB(CONF_OSCULP32K_CALIB)
#else
OSC32KCTRL_OSCULP32K_CALIB(calib)
af0: f402 527c and.w r2, r2, #16128 ; 0x3f00
}
static inline void hri_osc32kctrl_write_OSCULP32K_reg(const void *const hw, hri_osc32kctrl_osculp32k_reg_t data)
{
OSC32KCTRL_CRITICAL_SECTION_ENTER();
((Osc32kctrl *)hw)->OSCULP32K.reg = data;
af4: 61da str r2, [r3, #28]
((Osc32kctrl *)hw)->RTCCTRL.reg = data;
af6: 2201 movs r2, #1
af8: 741a strb r2, [r3, #16]
#endif
#endif
hri_osc32kctrl_write_RTCCTRL_reg(hw, OSC32KCTRL_RTCCTRL_RTCSEL(CONF_RTCCTRL));
(void)calib;
}
afa: 4770 bx lr
afc: 40001400 .word 0x40001400
00000b00 <usart_transmission_complete>:
*/
static void usart_transmission_complete(struct _usart_async_device *device)
{
struct usart_async_descriptor *descr = CONTAINER_OF(device, struct usart_async_descriptor, device);
descr->stat = 0;
b00: 2300 movs r3, #0
b02: 6283 str r3, [r0, #40] ; 0x28
if (descr->usart_cb.tx_done) {
b04: 69c3 ldr r3, [r0, #28]
b06: b10b cbz r3, b0c <usart_transmission_complete+0xc>
descr->usart_cb.tx_done(descr);
b08: 3808 subs r0, #8
b0a: 4718 bx r3
}
}
b0c: 4770 bx lr
00000b0e <usart_error>:
*/
static void usart_error(struct _usart_async_device *device)
{
struct usart_async_descriptor *descr = CONTAINER_OF(device, struct usart_async_descriptor, device);
descr->stat = 0;
b0e: 2300 movs r3, #0
b10: 6283 str r3, [r0, #40] ; 0x28
if (descr->usart_cb.error) {
b12: 6a43 ldr r3, [r0, #36] ; 0x24
b14: b10b cbz r3, b1a <usart_error+0xc>
descr->usart_cb.error(descr);
b16: 3808 subs r0, #8
b18: 4718 bx r3
}
}
b1a: 4770 bx lr
00000b1c <usart_fill_rx_buffer>:
{
b1c: b570 push {r4, r5, r6, lr}
b1e: 4604 mov r4, r0
ringbuffer_put(&descr->rx, data);
b20: 4b05 ldr r3, [pc, #20] ; (b38 <usart_fill_rx_buffer+0x1c>)
b22: f1a0 0508 sub.w r5, r0, #8
b26: 302c adds r0, #44 ; 0x2c
b28: 4798 blx r3
if (descr->usart_cb.rx_done) {
b2a: 6a23 ldr r3, [r4, #32]
b2c: b11b cbz r3, b36 <usart_fill_rx_buffer+0x1a>
descr->usart_cb.rx_done(descr);
b2e: 4628 mov r0, r5
}
b30: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
descr->usart_cb.rx_done(descr);
b34: 4718 bx r3
}
b36: bd70 pop {r4, r5, r6, pc}
b38: 00000dcd .word 0x00000dcd
00000b3c <usart_async_write>:
{
b3c: b570 push {r4, r5, r6, lr}
b3e: 460e mov r6, r1
b40: 4615 mov r5, r2
ASSERT(descr && buf && length);
b42: 4604 mov r4, r0
b44: b118 cbz r0, b4e <usart_async_write+0x12>
b46: b1d9 cbz r1, b80 <usart_async_write+0x44>
b48: 1e10 subs r0, r2, #0
b4a: bf18 it ne
b4c: 2001 movne r0, #1
b4e: 4b0f ldr r3, [pc, #60] ; (b8c <usart_async_write+0x50>)
b50: 490f ldr r1, [pc, #60] ; (b90 <usart_async_write+0x54>)
b52: f240 123b movw r2, #315 ; 0x13b
b56: 4798 blx r3
if (descr->tx_por != descr->tx_buffer_length) {
b58: f8b4 2044 ldrh.w r2, [r4, #68] ; 0x44
b5c: f8b4 304c ldrh.w r3, [r4, #76] ; 0x4c
b60: 429a cmp r2, r3
b62: d10f bne.n b84 <usart_async_write+0x48>
descr->tx_por = 0;
b64: 2300 movs r3, #0
b66: f8a4 3044 strh.w r3, [r4, #68] ; 0x44
descr->stat = USART_ASYNC_STATUS_BUSY;
b6a: 2301 movs r3, #1
b6c: 6323 str r3, [r4, #48] ; 0x30
_usart_async_enable_byte_sent_irq(&descr->device);
b6e: f104 0008 add.w r0, r4, #8
b72: 4b08 ldr r3, [pc, #32] ; (b94 <usart_async_write+0x58>)
descr->tx_buffer = (uint8_t *)buf;
b74: 64a6 str r6, [r4, #72] ; 0x48
descr->tx_buffer_length = length;
b76: f8a4 504c strh.w r5, [r4, #76] ; 0x4c
_usart_async_enable_byte_sent_irq(&descr->device);
b7a: 4798 blx r3
return (int32_t)length;
b7c: 4628 mov r0, r5
}
b7e: bd70 pop {r4, r5, r6, pc}
ASSERT(descr && buf && length);
b80: 4608 mov r0, r1
b82: e7e4 b.n b4e <usart_async_write+0x12>
return ERR_NO_RESOURCE;
b84: f06f 001b mvn.w r0, #27
b88: e7f9 b.n b7e <usart_async_write+0x42>
b8a: bf00 nop
b8c: 000006a5 .word 0x000006a5
b90: 0001de1d .word 0x0001de1d
b94: 000008ef .word 0x000008ef
00000b98 <usart_process_byte_sent>:
if (descr->tx_por != descr->tx_buffer_length) {
b98: 8f83 ldrh r3, [r0, #60] ; 0x3c
b9a: f8b0 2044 ldrh.w r2, [r0, #68] ; 0x44
b9e: 429a cmp r2, r3
{
ba0: b510 push {r4, lr}
ba2: 4604 mov r4, r0
if (descr->tx_por != descr->tx_buffer_length) {
ba4: d00a beq.n bbc <usart_process_byte_sent+0x24>
_usart_async_write_byte(&descr->device, descr->tx_buffer[descr->tx_por++]);
ba6: 6c02 ldr r2, [r0, #64] ; 0x40
ba8: 1c59 adds r1, r3, #1
baa: 8781 strh r1, [r0, #60] ; 0x3c
bac: 5cd1 ldrb r1, [r2, r3]
bae: 4b04 ldr r3, [pc, #16] ; (bc0 <usart_process_byte_sent+0x28>)
bb0: 4798 blx r3
_usart_async_enable_byte_sent_irq(&descr->device);
bb2: 4b04 ldr r3, [pc, #16] ; (bc4 <usart_process_byte_sent+0x2c>)
bb4: 4620 mov r0, r4
}
bb6: e8bd 4010 ldmia.w sp!, {r4, lr}
_usart_async_enable_tx_done_irq(&descr->device);
bba: 4718 bx r3
bbc: 4b02 ldr r3, [pc, #8] ; (bc8 <usart_process_byte_sent+0x30>)
bbe: e7fa b.n bb6 <usart_process_byte_sent+0x1e>
bc0: 000008e9 .word 0x000008e9
bc4: 000008ef .word 0x000008ef
bc8: 000008f7 .word 0x000008f7
00000bcc <usart_async_read>:
{
bcc: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
bd0: 460e mov r6, r1
bd2: 4617 mov r7, r2
ASSERT(descr && buf && length);
bd4: 4604 mov r4, r0
bd6: b118 cbz r0, be0 <usart_async_read+0x14>
bd8: b1e9 cbz r1, c16 <usart_async_read+0x4a>
bda: 1e10 subs r0, r2, #0
bdc: bf18 it ne
bde: 2001 movne r0, #1
be0: 4910 ldr r1, [pc, #64] ; (c24 <usart_async_read+0x58>)
be2: 4b11 ldr r3, [pc, #68] ; (c28 <usart_async_read+0x5c>)
ringbuffer_get(&descr->rx, &buf[was_read++]);
be4: f8df 9050 ldr.w r9, [pc, #80] ; c38 <usart_async_read+0x6c>
ASSERT(descr && buf && length);
be8: f44f 72ac mov.w r2, #344 ; 0x158
bec: 4798 blx r3
num = ringbuffer_num(&descr->rx);
bee: 3434 adds r4, #52 ; 0x34
CRITICAL_SECTION_ENTER()
bf0: 4b0e ldr r3, [pc, #56] ; (c2c <usart_async_read+0x60>)
bf2: a801 add r0, sp, #4
bf4: 4798 blx r3
num = ringbuffer_num(&descr->rx);
bf6: 4b0e ldr r3, [pc, #56] ; (c30 <usart_async_read+0x64>)
bf8: 4620 mov r0, r4
bfa: 4798 blx r3
CRITICAL_SECTION_LEAVE()
bfc: 4b0d ldr r3, [pc, #52] ; (c34 <usart_async_read+0x68>)
num = ringbuffer_num(&descr->rx);
bfe: 4680 mov r8, r0
CRITICAL_SECTION_LEAVE()
c00: a801 add r0, sp, #4
c02: 4798 blx r3
while ((was_read < num) && (was_read < length)) {
c04: 2500 movs r5, #0
c06: 45a8 cmp r8, r5
c08: d001 beq.n c0e <usart_async_read+0x42>
c0a: 42bd cmp r5, r7
c0c: d105 bne.n c1a <usart_async_read+0x4e>
}
c0e: 4628 mov r0, r5
c10: b003 add sp, #12
c12: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
ASSERT(descr && buf && length);
c16: 4608 mov r0, r1
c18: e7e2 b.n be0 <usart_async_read+0x14>
ringbuffer_get(&descr->rx, &buf[was_read++]);
c1a: 1971 adds r1, r6, r5
c1c: 4620 mov r0, r4
c1e: 47c8 blx r9
c20: 3501 adds r5, #1
c22: e7f0 b.n c06 <usart_async_read+0x3a>
c24: 0001de1d .word 0x0001de1d
c28: 000006a5 .word 0x000006a5
c2c: 0000104d .word 0x0000104d
c30: 00000e0d .word 0x00000e0d
c34: 0000105b .word 0x0000105b
c38: 00000d8d .word 0x00000d8d
00000c3c <usart_async_init>:
{
c3c: b5f8 push {r3, r4, r5, r6, r7, lr}
c3e: 460d mov r5, r1
c40: 4616 mov r6, r2
c42: 461f mov r7, r3
ASSERT(descr && hw && rx_buffer && rx_buffer_length);
c44: 4604 mov r4, r0
c46: b120 cbz r0, c52 <usart_async_init+0x16>
c48: b309 cbz r1, c8e <usart_async_init+0x52>
c4a: b312 cbz r2, c92 <usart_async_init+0x56>
c4c: 1e18 subs r0, r3, #0
c4e: bf18 it ne
c50: 2001 movne r0, #1
c52: 4912 ldr r1, [pc, #72] ; (c9c <usart_async_init+0x60>)
c54: 4b12 ldr r3, [pc, #72] ; (ca0 <usart_async_init+0x64>)
c56: 223a movs r2, #58 ; 0x3a
c58: 4798 blx r3
if (ERR_NONE != ringbuffer_init(&descr->rx, rx_buffer, rx_buffer_length)) {
c5a: 4b12 ldr r3, [pc, #72] ; (ca4 <usart_async_init+0x68>)
c5c: 463a mov r2, r7
c5e: 4631 mov r1, r6
c60: f104 0034 add.w r0, r4, #52 ; 0x34
c64: 4798 blx r3
c66: b9b0 cbnz r0, c96 <usart_async_init+0x5a>
init_status = _usart_async_init(&descr->device, hw);
c68: 4b0f ldr r3, [pc, #60] ; (ca8 <usart_async_init+0x6c>)
c6a: 4629 mov r1, r5
c6c: f104 0008 add.w r0, r4, #8
c70: 4798 blx r3
if (init_status) {
c72: b958 cbnz r0, c8c <usart_async_init+0x50>
descr->io.read = usart_async_read;
c74: 4b0d ldr r3, [pc, #52] ; (cac <usart_async_init+0x70>)
c76: 6063 str r3, [r4, #4]
descr->io.write = usart_async_write;
c78: 4b0d ldr r3, [pc, #52] ; (cb0 <usart_async_init+0x74>)
c7a: 6023 str r3, [r4, #0]
descr->device.usart_cb.tx_byte_sent = usart_process_byte_sent;
c7c: 4b0d ldr r3, [pc, #52] ; (cb4 <usart_async_init+0x78>)
c7e: 60a3 str r3, [r4, #8]
descr->device.usart_cb.rx_done_cb = usart_fill_rx_buffer;
c80: 4b0d ldr r3, [pc, #52] ; (cb8 <usart_async_init+0x7c>)
c82: 60e3 str r3, [r4, #12]
descr->device.usart_cb.tx_done_cb = usart_transmission_complete;
c84: 4b0d ldr r3, [pc, #52] ; (cbc <usart_async_init+0x80>)
c86: 6123 str r3, [r4, #16]
descr->device.usart_cb.error_cb = usart_error;
c88: 4b0d ldr r3, [pc, #52] ; (cc0 <usart_async_init+0x84>)
c8a: 6163 str r3, [r4, #20]
}
c8c: bdf8 pop {r3, r4, r5, r6, r7, pc}
ASSERT(descr && hw && rx_buffer && rx_buffer_length);
c8e: 4608 mov r0, r1
c90: e7df b.n c52 <usart_async_init+0x16>
c92: 4610 mov r0, r2
c94: e7dd b.n c52 <usart_async_init+0x16>
return ERR_INVALID_ARG;
c96: f06f 000c mvn.w r0, #12
c9a: e7f7 b.n c8c <usart_async_init+0x50>
c9c: 0001de1d .word 0x0001de1d
ca0: 000006a5 .word 0x000006a5
ca4: 00000d51 .word 0x00000d51
ca8: 00000859 .word 0x00000859
cac: 00000bcd .word 0x00000bcd
cb0: 00000b3d .word 0x00000b3d
cb4: 00000b99 .word 0x00000b99
cb8: 00000b1d .word 0x00000b1d
cbc: 00000b01 .word 0x00000b01
cc0: 00000b0f .word 0x00000b0f
00000cc4 <usart_async_enable>:
{
cc4: b510 push {r4, lr}
ASSERT(descr);
cc6: 4604 mov r4, r0
cc8: 3800 subs r0, #0
cca: bf18 it ne
ccc: 2001 movne r0, #1
cce: 4905 ldr r1, [pc, #20] ; (ce4 <usart_async_enable+0x20>)
cd0: 4b05 ldr r3, [pc, #20] ; (ce8 <usart_async_enable+0x24>)
cd2: 2261 movs r2, #97 ; 0x61
cd4: 4798 blx r3
_usart_async_enable(&descr->device);
cd6: f104 0008 add.w r0, r4, #8
cda: 4b04 ldr r3, [pc, #16] ; (cec <usart_async_enable+0x28>)
cdc: 4798 blx r3
}
cde: 2000 movs r0, #0
ce0: bd10 pop {r4, pc}
ce2: bf00 nop
ce4: 0001de1d .word 0x0001de1d
ce8: 000006a5 .word 0x000006a5
cec: 000008dd .word 0x000008dd
00000cf0 <usart_async_register_callback>:
{
cf0: b570 push {r4, r5, r6, lr}
ASSERT(descr);
cf2: 4605 mov r5, r0
cf4: 3800 subs r0, #0
{
cf6: 460c mov r4, r1
ASSERT(descr);
cf8: bf18 it ne
cfa: 2001 movne r0, #1
cfc: 4911 ldr r1, [pc, #68] ; (d44 <usart_async_register_callback+0x54>)
cfe: 4b12 ldr r3, [pc, #72] ; (d48 <usart_async_register_callback+0x58>)
{
d00: 4616 mov r6, r2
ASSERT(descr);
d02: 2283 movs r2, #131 ; 0x83
d04: 4798 blx r3
switch (type) {
d06: 2c01 cmp r4, #1
d08: d00d beq.n d26 <usart_async_register_callback+0x36>
d0a: 2c02 cmp r4, #2
d0c: d011 beq.n d32 <usart_async_register_callback+0x42>
d0e: b9b4 cbnz r4, d3e <usart_async_register_callback+0x4e>
_usart_async_set_irq_state(&descr->device, USART_ASYNC_RX_DONE, NULL != cb);
d10: 1e32 subs r2, r6, #0
descr->usart_cb.rx_done = cb;
d12: 62ae str r6, [r5, #40] ; 0x28
_usart_async_set_irq_state(&descr->device, USART_ASYNC_RX_DONE, NULL != cb);
d14: bf18 it ne
d16: 2201 movne r2, #1
d18: 2101 movs r1, #1
_usart_async_set_irq_state(&descr->device, USART_ASYNC_ERROR, NULL != cb);
d1a: f105 0008 add.w r0, r5, #8
d1e: 4b0b ldr r3, [pc, #44] ; (d4c <usart_async_register_callback+0x5c>)
d20: 4798 blx r3
return ERR_NONE;
d22: 2000 movs r0, #0
}
d24: bd70 pop {r4, r5, r6, pc}
_usart_async_set_irq_state(&descr->device, USART_ASYNC_TX_DONE, NULL != cb);
d26: 1e32 subs r2, r6, #0
descr->usart_cb.tx_done = cb;
d28: 626e str r6, [r5, #36] ; 0x24
_usart_async_set_irq_state(&descr->device, USART_ASYNC_TX_DONE, NULL != cb);
d2a: bf18 it ne
d2c: 2201 movne r2, #1
d2e: 2102 movs r1, #2
d30: e7f3 b.n d1a <usart_async_register_callback+0x2a>
_usart_async_set_irq_state(&descr->device, USART_ASYNC_ERROR, NULL != cb);
d32: 1e32 subs r2, r6, #0
descr->usart_cb.error = cb;
d34: 62ee str r6, [r5, #44] ; 0x2c
_usart_async_set_irq_state(&descr->device, USART_ASYNC_ERROR, NULL != cb);
d36: bf18 it ne
d38: 2201 movne r2, #1
d3a: 2103 movs r1, #3
d3c: e7ed b.n d1a <usart_async_register_callback+0x2a>
switch (type) {
d3e: f06f 000c mvn.w r0, #12
d42: e7ef b.n d24 <usart_async_register_callback+0x34>
d44: 0001de1d .word 0x0001de1d
d48: 000006a5 .word 0x000006a5
d4c: 00000901 .word 0x00000901
00000d50 <ringbuffer_init>:
/**
* \brief Ringbuffer init
*/
int32_t ringbuffer_init(struct ringbuffer *const rb, void *buf, uint32_t size)
{
d50: b570 push {r4, r5, r6, lr}
d52: 460e mov r6, r1
d54: 4614 mov r4, r2
ASSERT(rb && buf && size);
d56: 4605 mov r5, r0
d58: b118 cbz r0, d62 <ringbuffer_init+0x12>
d5a: b189 cbz r1, d80 <ringbuffer_init+0x30>
d5c: 1e10 subs r0, r2, #0
d5e: bf18 it ne
d60: 2001 movne r0, #1
d62: 4908 ldr r1, [pc, #32] ; (d84 <ringbuffer_init+0x34>)
d64: 4b08 ldr r3, [pc, #32] ; (d88 <ringbuffer_init+0x38>)
d66: 2228 movs r2, #40 ; 0x28
d68: 4798 blx r3
/*
* buf size must be aligned to power of 2
*/
if ((size & (size - 1)) != 0) {
d6a: 1e63 subs r3, r4, #1
d6c: ea13 0004 ands.w r0, r3, r4
return ERR_INVALID_ARG;
}
/* size - 1 is faster in calculation */
rb->size = size - 1;
rb->read_index = 0;
d70: bf03 ittte eq
d72: e9c5 3001 strdeq r3, r0, [r5, #4]
rb->write_index = rb->read_index;
d76: 60e8 streq r0, [r5, #12]
rb->buf = (uint8_t *)buf;
d78: 602e streq r6, [r5, #0]
return ERR_INVALID_ARG;
d7a: f06f 000c mvnne.w r0, #12
return ERR_NONE;
}
d7e: bd70 pop {r4, r5, r6, pc}
ASSERT(rb && buf && size);
d80: 4608 mov r0, r1
d82: e7ee b.n d62 <ringbuffer_init+0x12>
d84: 0001de3a .word 0x0001de3a
d88: 000006a5 .word 0x000006a5
00000d8c <ringbuffer_get>:
/**
* \brief Get one byte from ringbuffer
*
*/
int32_t ringbuffer_get(struct ringbuffer *const rb, uint8_t *data)
{
d8c: b538 push {r3, r4, r5, lr}
d8e: 460d mov r5, r1
ASSERT(rb && data);
d90: 4604 mov r4, r0
d92: b110 cbz r0, d9a <ringbuffer_get+0xe>
d94: 1e08 subs r0, r1, #0
d96: bf18 it ne
d98: 2001 movne r0, #1
d9a: 4b0a ldr r3, [pc, #40] ; (dc4 <ringbuffer_get+0x38>)
d9c: 490a ldr r1, [pc, #40] ; (dc8 <ringbuffer_get+0x3c>)
d9e: 2240 movs r2, #64 ; 0x40
da0: 4798 blx r3
if (rb->write_index != rb->read_index) {
da2: e9d4 3202 ldrd r3, r2, [r4, #8]
da6: 429a cmp r2, r3
da8: d009 beq.n dbe <ringbuffer_get+0x32>
*data = rb->buf[rb->read_index & rb->size];
daa: 6862 ldr r2, [r4, #4]
dac: 4013 ands r3, r2
dae: 6822 ldr r2, [r4, #0]
db0: 5cd3 ldrb r3, [r2, r3]
db2: 702b strb r3, [r5, #0]
rb->read_index++;
db4: 68a3 ldr r3, [r4, #8]
db6: 3301 adds r3, #1
db8: 60a3 str r3, [r4, #8]
return ERR_NONE;
dba: 2000 movs r0, #0
}
return ERR_NOT_FOUND;
}
dbc: bd38 pop {r3, r4, r5, pc}
return ERR_NOT_FOUND;
dbe: f06f 0009 mvn.w r0, #9
dc2: e7fb b.n dbc <ringbuffer_get+0x30>
dc4: 000006a5 .word 0x000006a5
dc8: 0001de3a .word 0x0001de3a
00000dcc <ringbuffer_put>:
/**
* \brief Put one byte to ringbuffer
*
*/
int32_t ringbuffer_put(struct ringbuffer *const rb, uint8_t data)
{
dcc: b538 push {r3, r4, r5, lr}
dce: 4604 mov r4, r0
dd0: 460d mov r5, r1
ASSERT(rb);
dd2: 4b0c ldr r3, [pc, #48] ; (e04 <ringbuffer_put+0x38>)
dd4: 490c ldr r1, [pc, #48] ; (e08 <ringbuffer_put+0x3c>)
dd6: 2251 movs r2, #81 ; 0x51
dd8: 2001 movs r0, #1
dda: 4798 blx r3
rb->buf[rb->write_index & rb->size] = data;
ddc: 68e3 ldr r3, [r4, #12]
dde: 6862 ldr r2, [r4, #4]
de0: 4013 ands r3, r2
de2: 6822 ldr r2, [r4, #0]
de4: 54d5 strb r5, [r2, r3]
/*
* buffer full strategy: new data will overwrite the oldest data in
* the buffer
*/
if ((rb->write_index - rb->read_index) > rb->size) {
de6: e9d4 2101 ldrd r2, r1, [r4, #4]
dea: 68e3 ldr r3, [r4, #12]
dec: 1a59 subs r1, r3, r1
dee: 4291 cmp r1, r2
rb->read_index = rb->write_index - rb->size;
df0: bf88 it hi
df2: 1a9a subhi r2, r3, r2
}
rb->write_index++;
df4: f103 0301 add.w r3, r3, #1
rb->read_index = rb->write_index - rb->size;
df8: bf88 it hi
dfa: 60a2 strhi r2, [r4, #8]
rb->write_index++;
dfc: 60e3 str r3, [r4, #12]
return ERR_NONE;
}
dfe: 2000 movs r0, #0
e00: bd38 pop {r3, r4, r5, pc}
e02: bf00 nop
e04: 000006a5 .word 0x000006a5
e08: 0001de3a .word 0x0001de3a
00000e0c <ringbuffer_num>:
/**
* \brief Return the element number of ringbuffer
*/
uint32_t ringbuffer_num(const struct ringbuffer *const rb)
{
e0c: b510 push {r4, lr}
ASSERT(rb);
e0e: 4905 ldr r1, [pc, #20] ; (e24 <ringbuffer_num+0x18>)
e10: 4b05 ldr r3, [pc, #20] ; (e28 <ringbuffer_num+0x1c>)
{
e12: 4604 mov r4, r0
ASSERT(rb);
e14: 2267 movs r2, #103 ; 0x67
e16: 2001 movs r0, #1
e18: 4798 blx r3
return rb->write_index - rb->read_index;
e1a: e9d4 3002 ldrd r3, r0, [r4, #8]
}
e1e: 1ac0 subs r0, r0, r3
e20: bd10 pop {r4, pc}
e22: bf00 nop
e24: 0001de3a .word 0x0001de3a
e28: 000006a5 .word 0x000006a5
00000e2c <hri_tc_wait_for_sync>:
typedef uint8_t hri_tccount8_per_reg_t;
typedef uint8_t hri_tccount8_perbuf_reg_t;
static inline void hri_tc_wait_for_sync(const void *const hw, hri_tc_syncbusy_reg_t reg)
{
while (((Tc *)hw)->COUNT8.SYNCBUSY.reg & reg) {
e2c: 6903 ldr r3, [r0, #16]
e2e: 420b tst r3, r1
e30: d1fc bne.n e2c <hri_tc_wait_for_sync>
};
}
e32: 4770 bx lr
00000e34 <get_tc_index>:
* \param[in] hw The pointer to hardware instance
*
* \return The index of TC configuration
*/
static int8_t get_tc_index(const void *const hw)
{
e34: b570 push {r4, r5, r6, lr}
* \param[in] hw The pointer to hardware instance
*/
static inline uint8_t _get_hardware_offset(const void *const hw)
{
/* List of available TC modules. */
Tc *const tc_modules[TC_INST_NUM] = TC_INSTS;
e36: 4d10 ldr r5, [pc, #64] ; (e78 <get_tc_index+0x44>)
{
e38: 4606 mov r6, r0
Tc *const tc_modules[TC_INST_NUM] = TC_INSTS;
e3a: cd0f ldmia r5!, {r0, r1, r2, r3}
{
e3c: b088 sub sp, #32
Tc *const tc_modules[TC_INST_NUM] = TC_INSTS;
e3e: 466c mov r4, sp
e40: c40f stmia r4!, {r0, r1, r2, r3}
e42: e895 000f ldmia.w r5, {r0, r1, r2, r3}
e46: e884 000f stmia.w r4, {r0, r1, r2, r3}
/* Find index for TC instance. */
for (uint32_t i = 0; i < TC_INST_NUM; i++) {
e4a: 466a mov r2, sp
e4c: 2000 movs r0, #0
if ((uint32_t)hw == (uint32_t)tc_modules[i]) {
e4e: f852 1b04 ldr.w r1, [r2], #4
e52: 42b1 cmp r1, r6
e54: d102 bne.n e5c <get_tc_index+0x28>
if (_tcs[i].number == index) {
e56: b930 cbnz r0, e66 <get_tc_index+0x32>
}
e58: b008 add sp, #32
e5a: bd70 pop {r4, r5, r6, pc}
for (uint32_t i = 0; i < TC_INST_NUM; i++) {
e5c: 3001 adds r0, #1
e5e: 2808 cmp r0, #8
e60: d1f5 bne.n e4e <get_tc_index+0x1a>
return i;
e62: 2000 movs r0, #0
e64: e7f8 b.n e58 <get_tc_index+0x24>
ASSERT(false);
e66: 2000 movs r0, #0
e68: 4904 ldr r1, [pc, #16] ; (e7c <get_tc_index+0x48>)
e6a: 4b05 ldr r3, [pc, #20] ; (e80 <get_tc_index+0x4c>)
e6c: f44f 729e mov.w r2, #316 ; 0x13c
e70: 4798 blx r3
e72: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
e76: e7ef b.n e58 <get_tc_index+0x24>
e78: 0001de74 .word 0x0001de74
e7c: 0001de5e .word 0x0001de5e
e80: 000006a5 .word 0x000006a5
00000e84 <_timer_init>:
{
e84: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
int8_t i = get_tc_index(hw);
e88: 4b45 ldr r3, [pc, #276] ; (fa0 <_timer_init+0x11c>)
{
e8a: 4681 mov r9, r0
int8_t i = get_tc_index(hw);
e8c: 4608 mov r0, r1
{
e8e: 460c mov r4, r1
int8_t i = get_tc_index(hw);
e90: 4798 blx r3
ASSERT(ARRAY_SIZE(_tcs));
e92: 4b44 ldr r3, [pc, #272] ; (fa4 <_timer_init+0x120>)
e94: 4944 ldr r1, [pc, #272] ; (fa8 <_timer_init+0x124>)
device->hw = hw;
e96: f8c9 400c str.w r4, [r9, #12]
ASSERT(ARRAY_SIZE(_tcs));
e9a: 228d movs r2, #141 ; 0x8d
int8_t i = get_tc_index(hw);
e9c: 4680 mov r8, r0
ASSERT(ARRAY_SIZE(_tcs));
e9e: 2001 movs r0, #1
ea0: 4798 blx r3
static inline bool hri_tc_is_syncing(const void *const hw, hri_tc_syncbusy_reg_t reg)
{
return ((Tc *)hw)->COUNT8.SYNCBUSY.reg & reg;
ea2: 6923 ldr r3, [r4, #16]
ea4: 4a41 ldr r2, [pc, #260] ; (fac <_timer_init+0x128>)
if (!hri_tc_is_syncing(hw, TC_SYNCBUSY_SWRST)) {
ea6: f013 0f01 tst.w r3, #1
eaa: d111 bne.n ed0 <_timer_init+0x4c>
}
static inline hri_tc_ctrla_reg_t hri_tc_get_CTRLA_reg(const void *const hw, hri_tc_ctrla_reg_t mask)
{
uint32_t tmp;
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE);
eac: 2103 movs r1, #3
eae: 4620 mov r0, r4
eb0: 4790 blx r2
tmp = ((Tc *)hw)->COUNT16.CTRLA.reg;
eb2: 6823 ldr r3, [r4, #0]
if (hri_tc_get_CTRLA_reg(hw, TC_CTRLA_ENABLE)) {
eb4: 079b lsls r3, r3, #30
eb6: d506 bpl.n ec6 <_timer_init+0x42>
((Tc *)hw)->COUNT16.CTRLA.reg &= ~TC_CTRLA_ENABLE;
eb8: 6823 ldr r3, [r4, #0]
eba: f023 0302 bic.w r3, r3, #2
ebe: 6023 str r3, [r4, #0]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE);
ec0: 4790 blx r2
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_ENABLE);
ec2: 2102 movs r1, #2
ec4: 4790 blx r2
}
static inline void hri_tc_write_CTRLA_reg(const void *const hw, hri_tc_ctrla_reg_t data)
{
TC_CRITICAL_SECTION_ENTER();
((Tc *)hw)->COUNT16.CTRLA.reg = data;
ec6: 2301 movs r3, #1
ec8: 6023 str r3, [r4, #0]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE);
eca: 2103 movs r1, #3
ecc: 4620 mov r0, r4
ece: 4790 blx r2
hri_tc_write_CTRLA_reg(hw, _tcs[i].ctrl_a);
ed0: 4f37 ldr r7, [pc, #220] ; (fb0 <_timer_init+0x12c>)
ed2: 2514 movs r5, #20
ed4: fb05 7508 mla r5, r5, r8, r7
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST);
ed8: 2101 movs r1, #1
eda: 4620 mov r0, r4
edc: 4790 blx r2
hri_tc_write_CTRLA_reg(hw, _tcs[i].ctrl_a);
ede: 6a6e ldr r6, [r5, #36] ; 0x24
((Tc *)hw)->COUNT16.CTRLA.reg = data;
ee0: 6026 str r6, [r4, #0]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE);
ee2: 2103 movs r1, #3
ee4: 4790 blx r2
hri_tc_write_DBGCTRL_reg(hw, _tcs[i].dbg_ctrl);
ee6: f895 302a ldrb.w r3, [r5, #42] ; 0x2a
}
static inline void hri_tc_write_DBGCTRL_reg(const void *const hw, hri_tc_dbgctrl_reg_t data)
{
TC_CRITICAL_SECTION_ENTER();
((Tc *)hw)->COUNT16.DBGCTRL.reg = data;
eea: 73e3 strb r3, [r4, #15]
if ((_tcs[i].ctrl_a & TC_CTRLA_MODE_Msk) == TC_CTRLA_MODE_COUNT32) {
eec: f006 060c and.w r6, r6, #12
hri_tc_write_EVCTRL_reg(hw, _tcs[i].event_ctrl);
ef0: 8d2b ldrh r3, [r5, #40] ; 0x28
((Tc *)hw)->COUNT16.EVCTRL.reg = data;
ef2: 80e3 strh r3, [r4, #6]
if ((_tcs[i].ctrl_a & TC_CTRLA_MODE_Msk) == TC_CTRLA_MODE_COUNT32) {
ef4: 2e08 cmp r6, #8
((Tc *)hw)->COUNT16.WAVE.reg = data;
ef6: f04f 0301 mov.w r3, #1
efa: 7323 strb r3, [r4, #12]
efc: d13a bne.n f74 <_timer_init+0xf0>
hri_tccount32_write_CC_reg(hw, 0, _tcs[i].cc0);
efe: 6aeb ldr r3, [r5, #44] ; 0x2c
}
static inline void hri_tccount32_write_CC_reg(const void *const hw, uint8_t index, hri_tccount32_cc_reg_t data)
{
TC_CRITICAL_SECTION_ENTER();
((Tc *)hw)->COUNT32.CC[index].reg = data;
f00: 61e3 str r3, [r4, #28]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1);
f02: 21c0 movs r1, #192 ; 0xc0
f04: 4790 blx r2
((Tc *)hw)->COUNT32.CC[index].reg = data;
f06: 2300 movs r3, #0
f08: 6223 str r3, [r4, #32]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_PER);
f0a: 4790 blx r2
((Tc *)hw)->COUNT16.INTENSET.reg = TC_INTENSET_OVF;
f0c: 2301 movs r3, #1
f0e: 7263 strb r3, [r4, #9]
if (hw == TC0) {
f10: 4b28 ldr r3, [pc, #160] ; (fb4 <_timer_init+0x130>)
f12: 429c cmp r4, r3
_tc0_dev = (struct _timer_device *)dev;
f14: bf04 itt eq
f16: 4b28 ldreq r3, [pc, #160] ; (fb8 <_timer_init+0x134>)
f18: f8c3 9000 streq.w r9, [r3]
NVIC_DisableIRQ(_tcs[i].irq);
f1c: 2314 movs r3, #20
f1e: fb03 7308 mla r3, r3, r8, r7
f22: f9b3 3022 ldrsh.w r3, [r3, #34] ; 0x22
if ((int32_t)(IRQn) >= 0)
f26: 2b00 cmp r3, #0
f28: db0d blt.n f46 <_timer_init+0xc2>
NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
f2a: 095a lsrs r2, r3, #5
f2c: 2101 movs r1, #1
f2e: f003 031f and.w r3, r3, #31
f32: 4099 lsls r1, r3
f34: f102 0320 add.w r3, r2, #32
f38: 4a20 ldr r2, [pc, #128] ; (fbc <_timer_init+0x138>)
f3a: f842 1023 str.w r1, [r2, r3, lsl #2]
__ASM volatile ("dsb 0xF":::"memory");
f3e: f3bf 8f4f dsb sy
__ASM volatile ("isb 0xF":::"memory");
f42: f3bf 8f6f isb sy
NVIC_ClearPendingIRQ(_tcs[i].irq);
f46: 2314 movs r3, #20
f48: fb03 7008 mla r0, r3, r8, r7
f4c: f9b0 3022 ldrsh.w r3, [r0, #34] ; 0x22
if ((int32_t)(IRQn) >= 0)
f50: 2b00 cmp r3, #0
f52: db0c blt.n f6e <_timer_init+0xea>
NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
f54: f003 011f and.w r1, r3, #31
f58: 095b lsrs r3, r3, #5
f5a: 009b lsls r3, r3, #2
f5c: f103 4360 add.w r3, r3, #3758096384 ; 0xe0000000
f60: f503 4361 add.w r3, r3, #57600 ; 0xe100
f64: 2201 movs r2, #1
f66: 408a lsls r2, r1
f68: f8c3 2180 str.w r2, [r3, #384] ; 0x180
NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL));
f6c: 601a str r2, [r3, #0]
}
f6e: 2000 movs r0, #0
f70: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
} else if ((_tcs[i].ctrl_a & TC_CTRLA_MODE_Msk) == TC_CTRLA_MODE_COUNT16) {
f74: b92e cbnz r6, f82 <_timer_init+0xfe>
hri_tccount16_write_CC_reg(hw, 0, (uint16_t)_tcs[i].cc0);
f76: 8dab ldrh r3, [r5, #44] ; 0x2c
((Tc *)hw)->COUNT16.CC[index].reg = data;
f78: 83a3 strh r3, [r4, #28]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1);
f7a: 21c0 movs r1, #192 ; 0xc0
f7c: 4790 blx r2
((Tc *)hw)->COUNT16.CC[index].reg = data;
f7e: 83e6 strh r6, [r4, #30]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1);
f80: e7c3 b.n f0a <_timer_init+0x86>
} else if ((_tcs[i].ctrl_a & TC_CTRLA_MODE_Msk) == TC_CTRLA_MODE_COUNT8) {
f82: 2e04 cmp r6, #4
f84: d1c2 bne.n f0c <_timer_init+0x88>
hri_tccount8_write_CC_reg(hw, 0, (uint8_t)_tcs[i].cc0);
f86: f895 302c ldrb.w r3, [r5, #44] ; 0x2c
((Tc *)hw)->COUNT8.CC[index].reg = data;
f8a: 7723 strb r3, [r4, #28]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1);
f8c: 21c0 movs r1, #192 ; 0xc0
f8e: 4790 blx r2
((Tc *)hw)->COUNT8.CC[index].reg = data;
f90: 2300 movs r3, #0
f92: 7763 strb r3, [r4, #29]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1);
f94: 4790 blx r2
hri_tccount8_write_PER_reg(hw, _tcs[i].per);
f96: f895 302b ldrb.w r3, [r5, #43] ; 0x2b
((Tc *)hw)->COUNT8.PER.reg = data;
f9a: 76e3 strb r3, [r4, #27]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_PER);
f9c: 2120 movs r1, #32
f9e: e7b4 b.n f0a <_timer_init+0x86>
fa0: 00000e35 .word 0x00000e35
fa4: 000006a5 .word 0x000006a5
fa8: 0001de5e .word 0x0001de5e
fac: 00000e2d .word 0x00000e2d
fb0: 0001de74 .word 0x0001de74
fb4: 40003800 .word 0x40003800
fb8: 20000a3c .word 0x20000a3c
fbc: e000e100 .word 0xe000e100
00000fc0 <_timer_start>:
hri_tc_set_CTRLA_ENABLE_bit(device->hw);
fc0: 68c0 ldr r0, [r0, #12]
((Tc *)hw)->COUNT16.CTRLA.reg |= TC_CTRLA_ENABLE;
fc2: 6803 ldr r3, [r0, #0]
fc4: f043 0302 orr.w r3, r3, #2
fc8: 6003 str r3, [r0, #0]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE);
fca: 2103 movs r1, #3
fcc: 4b00 ldr r3, [pc, #0] ; (fd0 <_timer_start+0x10>)
fce: 4718 bx r3
fd0: 00000e2d .word 0x00000e2d
00000fd4 <_timer_is_started>:
{
fd4: b508 push {r3, lr}
return hri_tc_get_CTRLA_ENABLE_bit(device->hw);
fd6: 68c0 ldr r0, [r0, #12]
hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE);
fd8: 4b03 ldr r3, [pc, #12] ; (fe8 <_timer_is_started+0x14>)
fda: 2103 movs r1, #3
fdc: 4798 blx r3
tmp = ((Tc *)hw)->COUNT16.CTRLA.reg;
fde: 6800 ldr r0, [r0, #0]
}
fe0: f3c0 0040 ubfx r0, r0, #1, #1
fe4: bd08 pop {r3, pc}
fe6: bf00 nop
fe8: 00000e2d .word 0x00000e2d
00000fec <_tc_get_timer>:
}
fec: 2000 movs r0, #0
fee: 4770 bx lr
00000ff0 <_timer_set_irq>:
{
ff0: b510 push {r4, lr}
int8_t i = get_tc_index(hw);
ff2: 4b0a ldr r3, [pc, #40] ; (101c <_timer_set_irq+0x2c>)
ff4: 68c0 ldr r0, [r0, #12]
ff6: 4798 blx r3
ASSERT(ARRAY_SIZE(_tcs));
ff8: 4b09 ldr r3, [pc, #36] ; (1020 <_timer_set_irq+0x30>)
ffa: 490a ldr r1, [pc, #40] ; (1024 <_timer_set_irq+0x34>)
int8_t i = get_tc_index(hw);
ffc: 4604 mov r4, r0
ASSERT(ARRAY_SIZE(_tcs));
ffe: f240 120f movw r2, #271 ; 0x10f
1002: 2001 movs r0, #1
1004: 4798 blx r3
_irq_set(_tcs[i].irq);
1006: 4808 ldr r0, [pc, #32] ; (1028 <_timer_set_irq+0x38>)
1008: 4b08 ldr r3, [pc, #32] ; (102c <_timer_set_irq+0x3c>)
100a: 2214 movs r2, #20
100c: fb02 0004 mla r0, r2, r4, r0
}
1010: e8bd 4010 ldmia.w sp!, {r4, lr}
_irq_set(_tcs[i].irq);
1014: f890 0022 ldrb.w r0, [r0, #34] ; 0x22
1018: 4718 bx r3
101a: bf00 nop
101c: 00000e35 .word 0x00000e35
1020: 000006a5 .word 0x000006a5
1024: 0001de5e .word 0x0001de5e
1028: 0001de74 .word 0x0001de74
102c: 0000031d .word 0x0000031d
00001030 <TC0_Handler>:
tc_interrupt_handler(_tc0_dev);
1030: 4b05 ldr r3, [pc, #20] ; (1048 <TC0_Handler+0x18>)
1032: 6818 ldr r0, [r3, #0]
void *const hw = device->hw;
1034: 68c3 ldr r3, [r0, #12]
return (((Tc *)hw)->COUNT16.INTFLAG.reg & TC_INTFLAG_OVF) >> TC_INTFLAG_OVF_Pos;
1036: 7a9a ldrb r2, [r3, #10]
if (hri_tc_get_interrupt_OVF_bit(hw)) {
1038: 07d2 lsls r2, r2, #31
103a: d503 bpl.n 1044 <TC0_Handler+0x14>
((Tc *)hw)->COUNT16.INTFLAG.reg = TC_INTFLAG_OVF;
103c: 2201 movs r2, #1
103e: 729a strb r2, [r3, #10]
device->timer_cb.period_expired(device);
1040: 6803 ldr r3, [r0, #0]
1042: 4718 bx r3
}
1044: 4770 bx lr
1046: bf00 nop
1048: 20000a3c .word 0x20000a3c
0000104c <atomic_enter_critical>:
__ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory");
104c: f3ef 8310 mrs r3, PRIMASK
/**
* \brief Disable interrupts, enter critical section
*/
void atomic_enter_critical(hal_atomic_t volatile *atomic)
{
*atomic = __get_PRIMASK();
1050: 6003 str r3, [r0, #0]
__ASM volatile ("cpsid i" : : : "memory");
1052: b672 cpsid i
\details Ensures the apparent order of the explicit memory operations before
and after the instruction, without ensuring their completion.
*/
__STATIC_FORCEINLINE void __DMB(void)
{
__ASM volatile ("dmb 0xF":::"memory");
1054: f3bf 8f5f dmb sy
__disable_irq();
__DMB();
}
1058: 4770 bx lr
0000105a <atomic_leave_critical>:
105a: f3bf 8f5f dmb sy
* \brief Exit atomic section
*/
void atomic_leave_critical(hal_atomic_t volatile *atomic)
{
__DMB();
__set_PRIMASK(*atomic);
105e: 6803 ldr r3, [r0, #0]
__ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory");
1060: f383 8810 msr PRIMASK, r3
}
1064: 4770 bx lr
...
00001068 <gpio_set_pin_direction>:
* GPIO_DIRECTION_OFF = Disables the pin
* (low power state)
*/
static inline void gpio_set_pin_direction(const uint8_t pin, const enum gpio_direction direction)
{
_gpio_set_direction((enum gpio_port)GPIO_PORT(pin), 1U << GPIO_PIN(pin), direction);
1068: 0943 lsrs r3, r0, #5
106a: 2201 movs r2, #1
106c: f000 001f and.w r0, r0, #31
* \brief Set direction on port with mask
*/
static inline void _gpio_set_direction(const enum gpio_port port, const uint32_t mask,
const enum gpio_direction direction)
{
switch (direction) {
1070: 2901 cmp r1, #1
1072: fa02 f200 lsl.w r2, r2, r0
1076: d010 beq.n 109a <gpio_set_pin_direction+0x32>
1078: 2902 cmp r1, #2
107a: d01f beq.n 10bc <gpio_set_pin_direction+0x54>
107c: bb29 cbnz r1, 10ca <gpio_set_pin_direction+0x62>
((Port *)hw)->Group[submodule_index].DIRCLR.reg = ~data;
}
static inline void hri_port_clear_DIR_reg(const void *const hw, uint8_t submodule_index, hri_port_dir_reg_t mask)
{
((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask;
107e: 01db lsls r3, r3, #7
1080: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000
1084: f503 4300 add.w r3, r3, #32768 ; 0x8000
1088: 605a str r2, [r3, #4]
| ((mask & 0xffff0000) >> 16));
break;
case GPIO_DIRECTION_OUT:
hri_port_set_DIR_reg(PORT, port, mask);
hri_port_write_WRCONFIG_reg(PORT, port, PORT_WRCONFIG_WRPINCFG | (mask & 0xffff));
108a: b291 uxth r1, r2
108c: f041 4180 orr.w r1, r1, #1073741824 ; 0x40000000
hri_port_write_WRCONFIG_reg(
PORT, port, PORT_WRCONFIG_HWSEL | PORT_WRCONFIG_WRPINCFG | ((mask & 0xffff0000) >> 16));
1090: 0c12 lsrs r2, r2, #16
static inline void hri_port_write_WRCONFIG_reg(const void *const hw, uint8_t submodule_index,
hri_port_wrconfig_reg_t data)
{
PORT_CRITICAL_SECTION_ENTER();
((Port *)hw)->Group[submodule_index].WRCONFIG.reg = data;
1092: 6299 str r1, [r3, #40] ; 0x28
hri_port_write_WRCONFIG_reg(
1094: f042 4240 orr.w r2, r2, #3221225472 ; 0xc0000000
1098: e00e b.n 10b8 <gpio_set_pin_direction+0x50>
((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask;
109a: 01db lsls r3, r3, #7
hri_port_write_WRCONFIG_reg(PORT, port, PORT_WRCONFIG_WRPINCFG | PORT_WRCONFIG_INEN | (mask & 0xffff));
109c: b291 uxth r1, r2
109e: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000
10a2: f503 4300 add.w r3, r3, #32768 ; 0x8000
10a6: f041 4180 orr.w r1, r1, #1073741824 ; 0x40000000
10aa: f441 3100 orr.w r1, r1, #131072 ; 0x20000
10ae: 605a str r2, [r3, #4]
((Port *)hw)->Group[submodule_index].WRCONFIG.reg = data;
10b0: 6299 str r1, [r3, #40] ; 0x28
hri_port_write_WRCONFIG_reg(PORT,
10b2: 4908 ldr r1, [pc, #32] ; (10d4 <gpio_set_pin_direction+0x6c>)
10b4: ea41 4212 orr.w r2, r1, r2, lsr #16
10b8: 629a str r2, [r3, #40] ; 0x28
}
10ba: 4770 bx lr
((Port *)hw)->Group[submodule_index].DIRSET.reg = mask;
10bc: 01db lsls r3, r3, #7
10be: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000
10c2: f503 4300 add.w r3, r3, #32768 ; 0x8000
10c6: 609a str r2, [r3, #8]
10c8: e7df b.n 108a <gpio_set_pin_direction+0x22>
break;
default:
ASSERT(false);
10ca: 4903 ldr r1, [pc, #12] ; (10d8 <gpio_set_pin_direction+0x70>)
10cc: 4b03 ldr r3, [pc, #12] ; (10dc <gpio_set_pin_direction+0x74>)
10ce: 2246 movs r2, #70 ; 0x46
10d0: 2000 movs r0, #0
10d2: 4718 bx r3
10d4: c0020000 .word 0xc0020000
10d8: 0001dea8 .word 0x0001dea8
10dc: 000006a5 .word 0x000006a5
000010e0 <_gpio_set_pin_function>:
/**
* \brief Set gpio pin function
*/
static inline void _gpio_set_pin_function(const uint32_t gpio, const uint32_t function)
{
10e0: b530 push {r4, r5, lr}
uint8_t port = GPIO_PORT(gpio);
uint8_t pin = GPIO_PIN(gpio);
if (function == GPIO_PIN_FUNCTION_OFF) {
10e2: 1c4b adds r3, r1, #1
uint8_t pin = GPIO_PIN(gpio);
10e4: b2c5 uxtb r5, r0
10e6: 4b18 ldr r3, [pc, #96] ; (1148 <_gpio_set_pin_function+0x68>)
10e8: f000 041f and.w r4, r0, #31
uint8_t port = GPIO_PORT(gpio);
10ec: ea4f 1050 mov.w r0, r0, lsr #5
10f0: ea4f 10c0 mov.w r0, r0, lsl #7
tmp = ((Port *)hw)->Group[submodule_index].PINCFG[index].reg;
10f4: 4403 add r3, r0
if (function == GPIO_PIN_FUNCTION_OFF) {
10f6: d107 bne.n 1108 <_gpio_set_pin_function+0x28>
10f8: 4423 add r3, r4
10fa: f893 2040 ldrb.w r2, [r3, #64] ; 0x40
tmp &= ~PORT_PINCFG_PMUXEN;
10fe: f002 02fe and.w r2, r2, #254 ; 0xfe
((Port *)hw)->Group[submodule_index].PINCFG[index].reg = tmp;
1102: f883 2040 strb.w r2, [r3, #64] ; 0x40
} else {
// Even numbered pin
hri_port_write_PMUX_PMUXE_bf(PORT, port, pin >> 1, function & 0xffff);
}
}
}
1106: bd30 pop {r4, r5, pc}
tmp = ((Port *)hw)->Group[submodule_index].PINCFG[index].reg;
1108: 1918 adds r0, r3, r4
110a: eb03 0354 add.w r3, r3, r4, lsr #1
110e: f890 2040 ldrb.w r2, [r0, #64] ; 0x40
tmp &= ~PORT_PINCFG_PMUXEN;
1112: f002 02fe and.w r2, r2, #254 ; 0xfe
tmp |= value << PORT_PINCFG_PMUXEN_Pos;
1116: f042 0201 orr.w r2, r2, #1
((Port *)hw)->Group[submodule_index].PINCFG[index].reg = tmp;
111a: f880 2040 strb.w r2, [r0, #64] ; 0x40
tmp = ((Port *)hw)->Group[submodule_index].PMUX[index].reg;
111e: f893 2030 ldrb.w r2, [r3, #48] ; 0x30
if (pin & 1) {
1122: f015 0f01 tst.w r5, #1
hri_port_write_PMUX_PMUXO_bf(PORT, port, pin >> 1, function & 0xffff);
1126: b2c9 uxtb r1, r1
tmp &= ~PORT_PMUX_PMUXO_Msk;
1128: bf19 ittee ne
112a: f002 020f andne.w r2, r2, #15
tmp |= PORT_PMUX_PMUXO(data);
112e: ea42 1201 orrne.w r2, r2, r1, lsl #4
tmp &= ~PORT_PMUX_PMUXE_Msk;
1132: f002 02f0 andeq.w r2, r2, #240 ; 0xf0
tmp |= PORT_PMUX_PMUXE(data);
1136: f001 010f andeq.w r1, r1, #15
tmp |= PORT_PMUX_PMUXO(data);
113a: bf14 ite ne
113c: b2d2 uxtbne r2, r2
tmp |= PORT_PMUX_PMUXE(data);
113e: 430a orreq r2, r1
((Port *)hw)->Group[submodule_index].PMUX[index].reg = tmp;
1140: f883 2030 strb.w r2, [r3, #48] ; 0x30
}
1144: e7df b.n 1106 <_gpio_set_pin_function+0x26>
1146: bf00 nop
1148: 41008000 .word 0x41008000
0000114c <gpio_set_pin_pull_mode>:
switch (pull_mode) {
114c: 2901 cmp r1, #1
_gpio_set_pin_pull_mode((enum gpio_port)GPIO_PORT(pin), pin & 0x1F, pull_mode);
114e: ea4f 1350 mov.w r3, r0, lsr #5
1152: f000 001f and.w r0, r0, #31
1156: d00f beq.n 1178 <gpio_set_pin_pull_mode+0x2c>
1158: 2902 cmp r1, #2
115a: d01d beq.n 1198 <gpio_set_pin_pull_mode+0x4c>
115c: bb69 cbnz r1, 11ba <gpio_set_pin_pull_mode+0x6e>
((Port *)hw)->Group[submodule_index].PINCFG[index].reg &= ~PORT_PINCFG_PULLEN;
115e: eb00 10c3 add.w r0, r0, r3, lsl #7
1162: f100 4082 add.w r0, r0, #1090519040 ; 0x41000000
1166: f500 4000 add.w r0, r0, #32768 ; 0x8000
116a: f890 3040 ldrb.w r3, [r0, #64] ; 0x40
116e: f003 03fb and.w r3, r3, #251 ; 0xfb
1172: f880 3040 strb.w r3, [r0, #64] ; 0x40
}
1176: 4770 bx lr
((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask;
1178: 01db lsls r3, r3, #7
117a: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000
117e: f503 4300 add.w r3, r3, #32768 ; 0x8000
hri_port_clear_DIR_reg(PORT, port, 1U << pin);
1182: 4081 lsls r1, r0
((Port *)hw)->Group[submodule_index].PINCFG[index].reg |= PORT_PINCFG_PULLEN;
1184: 4418 add r0, r3
((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask;
1186: 6059 str r1, [r3, #4]
((Port *)hw)->Group[submodule_index].PINCFG[index].reg |= PORT_PINCFG_PULLEN;
1188: f890 2040 ldrb.w r2, [r0, #64] ; 0x40
118c: f042 0204 orr.w r2, r2, #4
1190: f880 2040 strb.w r2, [r0, #64] ; 0x40
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
1194: 6199 str r1, [r3, #24]
}
1196: 4770 bx lr
((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask;
1198: 01db lsls r3, r3, #7
119a: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000
119e: f503 4300 add.w r3, r3, #32768 ; 0x8000
hri_port_clear_DIR_reg(PORT, port, 1U << pin);
11a2: 2201 movs r2, #1
11a4: 4082 lsls r2, r0
((Port *)hw)->Group[submodule_index].PINCFG[index].reg |= PORT_PINCFG_PULLEN;
11a6: 4418 add r0, r3
((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask;
11a8: 605a str r2, [r3, #4]
((Port *)hw)->Group[submodule_index].PINCFG[index].reg |= PORT_PINCFG_PULLEN;
11aa: f890 1040 ldrb.w r1, [r0, #64] ; 0x40
11ae: f041 0104 orr.w r1, r1, #4
11b2: f880 1040 strb.w r1, [r0, #64] ; 0x40
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
11b6: 615a str r2, [r3, #20]
}
11b8: 4770 bx lr
ASSERT(false);
11ba: 4902 ldr r1, [pc, #8] ; (11c4 <gpio_set_pin_pull_mode+0x78>)
11bc: 4b02 ldr r3, [pc, #8] ; (11c8 <gpio_set_pin_pull_mode+0x7c>)
11be: 2289 movs r2, #137 ; 0x89
11c0: 2000 movs r0, #0
11c2: 4718 bx r3
11c4: 0001dea8 .word 0x0001dea8
11c8: 000006a5 .word 0x000006a5
000011cc <p_gpio_parallel_write>:
}
void p_gpio_parallel_write(PortGroup* group, uint32_t mask, uint16_t data)
{
11cc: b530 push {r4, r5, lr}
11ce: 4b09 ldr r3, [pc, #36] ; (11f4 <p_gpio_parallel_write+0x28>)
11d0: f44f 7480 mov.w r4, #256 ; 0x100
}
void p_gpio_set_port_data(PortGroup* const port, const uint32_t mask, const uint32_t data)
{
uint32_t dword = (uint32_t)(SSD1963_TFT_DATA_FIX(data));
port->OUTSET.reg = (mask & data);
11d4: ea02 0501 and.w r5, r2, r1
port->OUTCLR.reg = (mask & ~data);
11d8: ea21 0202 bic.w r2, r1, r2
11dc: 615c str r4, [r3, #20]
port->OUTSET.reg = (mask & data);
11de: 6185 str r5, [r0, #24]
port->OUTCLR.reg = (mask & ~data);
11e0: 6142 str r2, [r0, #20]
11e2: f04f 7280 mov.w r2, #16777216 ; 0x1000000
11e6: f8c3 2094 str.w r2, [r3, #148] ; 0x94
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
11ea: f8c3 2098 str.w r2, [r3, #152] ; 0x98
11ee: 619c str r4, [r3, #24]
}
11f0: bd30 pop {r4, r5, pc}
11f2: bf00 nop
11f4: 41008000 .word 0x41008000
000011f8 <p_gpio_parallel_write_arr>:
{
11f8: b5f8 push {r3, r4, r5, r6, r7, lr}
p_gpio_parallel_write(group, mask, data[ind]);
11fa: 4f06 ldr r7, [pc, #24] ; (1214 <p_gpio_parallel_write_arr+0x1c>)
{
11fc: 4616 mov r6, r2
11fe: 461d mov r5, r3
for(int ind = 0; ind < len; ind++)
1200: 2400 movs r4, #0
1202: 42a5 cmp r5, r4
1204: dc00 bgt.n 1208 <p_gpio_parallel_write_arr+0x10>
}
1206: bdf8 pop {r3, r4, r5, r6, r7, pc}
p_gpio_parallel_write(group, mask, data[ind]);
1208: f836 2014 ldrh.w r2, [r6, r4, lsl #1]
120c: 47b8 blx r7
for(int ind = 0; ind < len; ind++)
120e: 3401 adds r4, #1
1210: e7f7 b.n 1202 <p_gpio_parallel_write_arr+0xa>
1212: bf00 nop
1214: 000011cd .word 0x000011cd
00001218 <p_gpio_set_port_group_config>:
}
void p_gpio_set_port_group_config(enum gpio_port port, const uint32_t mask, p_port_config* config)
{
1218: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
for(uint8_t i = 0; i < 32; i++)
{
if(mask & (1UL << i))
{
uint32_t _gpio_pin = GPIO(port, i);
121c: 0147 lsls r7, r0, #5
gpio_set_pin_direction(_gpio_pin, config->direction);
121e: 4b15 ldr r3, [pc, #84] ; (1274 <p_gpio_set_port_group_config+0x5c>)
_gpio_set_pin_function(pin, function);
1220: f8df a058 ldr.w sl, [pc, #88] ; 127c <p_gpio_set_port_group_config+0x64>
{
1224: 4688 mov r8, r1
1226: 4616 mov r6, r2
uint32_t _gpio_pin = GPIO(port, i);
1228: fa5f fb87 uxtb.w fp, r7
122c: 2500 movs r5, #0
if(mask & (1UL << i))
122e: fa28 f205 lsr.w r2, r8, r5
1232: 07d2 lsls r2, r2, #31
1234: d519 bpl.n 126a <p_gpio_set_port_group_config+0x52>
uint32_t _gpio_pin = GPIO(port, i);
1236: 19ec adds r4, r5, r7
1238: b2e4 uxtb r4, r4
gpio_set_pin_direction(_gpio_pin, config->direction);
123a: 4620 mov r0, r4
123c: 7871 ldrb r1, [r6, #1]
123e: 4798 blx r3
1240: eb0b 0905 add.w r9, fp, r5
gpio_set_pin_pull_mode(_gpio_pin, config->pull_mode);
1244: 4b0c ldr r3, [pc, #48] ; (1278 <p_gpio_set_port_group_config+0x60>)
1246: 7831 ldrb r1, [r6, #0]
1248: 4620 mov r0, r4
124a: 4798 blx r3
124c: 6871 ldr r1, [r6, #4]
124e: 4648 mov r0, r9
1250: 47d0 blx sl
* \param[in] level true = Pin level set to "high" state
* false = Pin level set to "low" state
*/
static inline void gpio_set_pin_level(const uint8_t pin, const bool level)
{
_gpio_set_level((enum gpio_port)GPIO_PORT(pin), 1U << GPIO_PIN(pin), level);
1252: f004 011f and.w r1, r4, #31
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
1256: 0964 lsrs r4, r4, #5
1258: 01e4 lsls r4, r4, #7
125a: f104 4482 add.w r4, r4, #1090519040 ; 0x41000000
125e: 2201 movs r2, #1
1260: f504 4400 add.w r4, r4, #32768 ; 0x8000
1264: 408a lsls r2, r1
1266: 4b03 ldr r3, [pc, #12] ; (1274 <p_gpio_set_port_group_config+0x5c>)
1268: 6162 str r2, [r4, #20]
for(uint8_t i = 0; i < 32; i++)
126a: 3501 adds r5, #1
126c: 2d20 cmp r5, #32
126e: d1de bne.n 122e <p_gpio_set_port_group_config+0x16>
gpio_set_pin_function(_gpio_pin, config->function);
gpio_set_pin_level(_gpio_pin, 0);
}
}
}
1270: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
1274: 00001069 .word 0x00001069
1278: 0000114d .word 0x0000114d
127c: 000010e1 .word 0x000010e1
00001280 <p_gpio_init>:
{
1280: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
memset(&data_config, 0, sizeof(data_config));
1284: f04f 0900 mov.w r9, #0
p_gpio_set_port_group_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_config);
1288: 466a mov r2, sp
128a: 4b2d ldr r3, [pc, #180] ; (1340 <p_gpio_init+0xc0>)
memset(&data_config, 0, sizeof(data_config));
128c: f8cd 9000 str.w r9, [sp]
data_config.direction = GPIO_DIRECTION_OUT;
1290: 2502 movs r5, #2
data_config.function = GPIO_PIN_FUNCTION_OFF;
1292: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff
p_gpio_set_port_group_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_config);
1296: f64f 71ff movw r1, #65535 ; 0xffff
129a: 2001 movs r0, #1
gpio_set_pin_direction(SSD1963_TFT_CS, GPIO_DIRECTION_OUT);
129c: f8df 80b0 ldr.w r8, [pc, #176] ; 1350 <p_gpio_init+0xd0>
data_config.direction = GPIO_DIRECTION_OUT;
12a0: f88d 5001 strb.w r5, [sp, #1]
data_config.function = GPIO_PIN_FUNCTION_OFF;
12a4: 9401 str r4, [sp, #4]
p_gpio_set_port_group_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_config);
12a6: 4798 blx r3
gpio_set_pin_direction(SSD1963_TFT_CS, GPIO_DIRECTION_OUT);
12a8: 4629 mov r1, r5
12aa: 2008 movs r0, #8
gpio_set_pin_pull_mode(SSD1963_TFT_CS, GPIO_PULL_OFF);
12ac: 4f25 ldr r7, [pc, #148] ; (1344 <p_gpio_init+0xc4>)
_gpio_set_pin_function(pin, function);
12ae: 4e26 ldr r6, [pc, #152] ; (1348 <p_gpio_init+0xc8>)
gpio_set_pin_direction(SSD1963_TFT_CS, GPIO_DIRECTION_OUT);
12b0: 47c0 blx r8
gpio_set_pin_pull_mode(SSD1963_TFT_CS, GPIO_PULL_OFF);
12b2: 4649 mov r1, r9
12b4: 2008 movs r0, #8
12b6: 47b8 blx r7
12b8: 4621 mov r1, r4
12ba: 2008 movs r0, #8
12bc: 47b0 blx r6
gpio_set_pin_direction(SSD1963_TFT_nRST, GPIO_DIRECTION_OUT);
12be: 4629 mov r1, r5
12c0: 205c movs r0, #92 ; 0x5c
12c2: 47c0 blx r8
gpio_set_pin_pull_mode(SSD1963_TFT_nRST, GPIO_PULL_OFF);
12c4: 4649 mov r1, r9
12c6: 205c movs r0, #92 ; 0x5c
12c8: 47b8 blx r7
12ca: 4621 mov r1, r4
12cc: 205c movs r0, #92 ; 0x5c
12ce: 47b0 blx r6
gpio_set_pin_direction(SSD1963_TFT_RD, GPIO_DIRECTION_OUT);
12d0: 4629 mov r1, r5
12d2: 2039 movs r0, #57 ; 0x39
12d4: 47c0 blx r8
gpio_set_pin_pull_mode(SSD1963_TFT_RD, GPIO_PULL_OFF);
12d6: 4649 mov r1, r9
12d8: 2039 movs r0, #57 ; 0x39
12da: 47b8 blx r7
12dc: 4621 mov r1, r4
12de: 2039 movs r0, #57 ; 0x39
12e0: 47b0 blx r6
gpio_set_pin_direction(SSD1963_TFT_RSDC, GPIO_DIRECTION_OUT);
12e2: 4629 mov r1, r5
12e4: 2009 movs r0, #9
12e6: 47c0 blx r8
gpio_set_pin_pull_mode(SSD1963_TFT_RSDC, GPIO_PULL_OFF);
12e8: 4649 mov r1, r9
12ea: 2009 movs r0, #9
12ec: 47b8 blx r7
12ee: 4621 mov r1, r4
12f0: 2009 movs r0, #9
12f2: 47b0 blx r6
gpio_set_pin_direction(SSD1963_TFT_WR, GPIO_DIRECTION_OUT);
12f4: 4629 mov r1, r5
12f6: 2038 movs r0, #56 ; 0x38
12f8: 47c0 blx r8
gpio_set_pin_pull_mode(SSD1963_TFT_WR, GPIO_PULL_OFF);
12fa: 4649 mov r1, r9
12fc: 2038 movs r0, #56 ; 0x38
12fe: 47b8 blx r7
1300: 4621 mov r1, r4
1302: 2038 movs r0, #56 ; 0x38
1304: 47b0 blx r6
gpio_set_pin_direction(SSD1963_TFT_TE, GPIO_DIRECTION_IN);
1306: 2101 movs r1, #1
1308: 2003 movs r0, #3
130a: 47c0 blx r8
gpio_set_pin_pull_mode(SSD1963_TFT_TE, GPIO_PULL_DOWN);
130c: 4629 mov r1, r5
130e: 2003 movs r0, #3
1310: 47b8 blx r7
1312: 4621 mov r1, r4
1314: 2003 movs r0, #3
1316: 47b0 blx r6
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
1318: 4b0c ldr r3, [pc, #48] ; (134c <p_gpio_init+0xcc>)
131a: f44f 7280 mov.w r2, #256 ; 0x100
131e: 619a str r2, [r3, #24]
1320: f04f 5280 mov.w r2, #268435456 ; 0x10000000
1324: f8c3 2118 str.w r2, [r3, #280] ; 0x118
1328: f04f 7200 mov.w r2, #33554432 ; 0x2000000
132c: f8c3 2098 str.w r2, [r3, #152] ; 0x98
1330: f04f 7280 mov.w r2, #16777216 ; 0x1000000
1334: f8c3 2098 str.w r2, [r3, #152] ; 0x98
}
1338: b003 add sp, #12
133a: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
133e: bf00 nop
1340: 00001219 .word 0x00001219
1344: 0000114d .word 0x0000114d
1348: 000010e1 .word 0x000010e1
134c: 41008000 .word 0x41008000
1350: 00001069 .word 0x00001069
00001354 <p_i2c_init>:
//// port init
//gpio_set_pin_pull_mode(I2C_MASTER_SDA, GPIO_PULL_OFF);
//gpio_set_pin_function(I2C_MASTER_SDA, I2C_MASTER_SDA_MUX);
//gpio_set_pin_pull_mode(I2C_MASTER_SCL, GPIO_PULL_OFF);
//gpio_set_pin_function(I2C_MASTER_SCL, I2C_MASTER_SCL_MUX);
}
1354: 4770 bx lr
...
00001358 <TIMER_0_task1_cb>:
static volatile uint32_t sys_time = 0;
static char sys_time_str[64];
static void TIMER_0_task1_cb(const struct timer_task *const timer_task)
{
sys_time++;
1358: 4a03 ldr r2, [pc, #12] ; (1368 <TIMER_0_task1_cb+0x10>)
135a: 6813 ldr r3, [r2, #0]
135c: 3301 adds r3, #1
135e: 6013 str r3, [r2, #0]
lv_tick_inc(1);
1360: 2001 movs r0, #1
1362: 4b02 ldr r3, [pc, #8] ; (136c <TIMER_0_task1_cb+0x14>)
1364: 4718 bx r3
1366: bf00 nop
1368: 20000a40 .word 0x20000a40
136c: 0000dcb9 .word 0x0000dcb9
00001370 <p_time_init>:
}
void p_time_init(void)
{
1370: b570 push {r4, r5, r6, lr}
delay_init(SysTick);
1372: 4812 ldr r0, [pc, #72] ; (13bc <p_time_init+0x4c>)
1374: 4b12 ldr r3, [pc, #72] ; (13c0 <p_time_init+0x50>)
hri_mclk_set_APBAMASK_TC0_bit(MCLK);
hri_gclk_write_PCHCTRL_reg(GCLK, TC0_GCLK_ID, CONF_GCLK_TC0_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos));
timer_init(&p_tcc_inst, TC0, _tc_get_timer());
1376: 4c13 ldr r4, [pc, #76] ; (13c4 <p_time_init+0x54>)
delay_init(SysTick);
1378: 4798 blx r3
}
static inline void hri_mclk_set_APBAMASK_TC0_bit(const void *const hw)
{
MCLK_CRITICAL_SECTION_ENTER();
((Mclk *)hw)->APBAMASK.reg |= MCLK_APBAMASK_TC0;
137a: 4a13 ldr r2, [pc, #76] ; (13c8 <p_time_init+0x58>)
137c: 6953 ldr r3, [r2, #20]
137e: f443 4380 orr.w r3, r3, #16384 ; 0x4000
1382: 6153 str r3, [r2, #20]
}
static inline void hri_gclk_write_PCHCTRL_reg(const void *const hw, uint8_t index, hri_gclk_pchctrl_reg_t data)
{
GCLK_CRITICAL_SECTION_ENTER();
((Gclk *)hw)->PCHCTRL[index].reg = data;
1384: 4b11 ldr r3, [pc, #68] ; (13cc <p_time_init+0x5c>)
1386: 2240 movs r2, #64 ; 0x40
1388: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4
timer_init(&p_tcc_inst, TC0, _tc_get_timer());
138c: 4b10 ldr r3, [pc, #64] ; (13d0 <p_time_init+0x60>)
138e: 4798 blx r3
1390: 1d25 adds r5, r4, #4
1392: 4602 mov r2, r0
1394: 490f ldr r1, [pc, #60] ; (13d4 <p_time_init+0x64>)
1396: 4b10 ldr r3, [pc, #64] ; (13d8 <p_time_init+0x68>)
1398: 4628 mov r0, r5
139a: 4798 blx r3
TIMER_0_task1.interval = 1;
139c: 2301 movs r3, #1
139e: 62a3 str r3, [r4, #40] ; 0x28
TIMER_0_task1.cb = TIMER_0_task1_cb;
TIMER_0_task1.mode = TIMER_TASK_REPEAT;
13a0: f884 3030 strb.w r3, [r4, #48] ; 0x30
TIMER_0_task1.cb = TIMER_0_task1_cb;
13a4: 4a0d ldr r2, [pc, #52] ; (13dc <p_time_init+0x6c>)
timer_add_task(&p_tcc_inst, &TIMER_0_task1);
13a6: 4b0e ldr r3, [pc, #56] ; (13e0 <p_time_init+0x70>)
TIMER_0_task1.cb = TIMER_0_task1_cb;
13a8: 62e2 str r2, [r4, #44] ; 0x2c
timer_add_task(&p_tcc_inst, &TIMER_0_task1);
13aa: f104 0120 add.w r1, r4, #32
13ae: 4628 mov r0, r5
13b0: 4798 blx r3
timer_start(&p_tcc_inst);
13b2: 4628 mov r0, r5
13b4: 4b0b ldr r3, [pc, #44] ; (13e4 <p_time_init+0x74>)
}
13b6: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
timer_start(&p_tcc_inst);
13ba: 4718 bx r3
13bc: e000e010 .word 0xe000e010
13c0: 00000581 .word 0x00000581
13c4: 20000a40 .word 0x20000a40
13c8: 40000800 .word 0x40000800
13cc: 40001c00 .word 0x40001c00
13d0: 00000fed .word 0x00000fed
13d4: 40003800 .word 0x40003800
13d8: 00000465 .word 0x00000465
13dc: 00001359 .word 0x00001359
13e0: 000004d9 .word 0x000004d9
13e4: 0000049d .word 0x0000049d
000013e8 <p_get_time_str>:
{
return sys_time;
}
const char* p_get_time_str(void)
{
13e8: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
uint16_t millis = sys_time % 1000;
13ec: 4d18 ldr r5, [pc, #96] ; (1450 <p_get_time_str+0x68>)
// remove millis portion
uint32_t current_time = sys_time / 1000;
uint8_t hour = ((current_time % 86400UL) / 3600); // 86400 seconds per day
uint8_t minute = ((current_time % 3600) / 60);
uint8_t _sec = (current_time % 60);
memset(sys_time_str, '\0', P_MAX_TIME_STR);
13ee: 4b19 ldr r3, [pc, #100] ; (1454 <p_get_time_str+0x6c>)
uint16_t millis = sys_time % 1000;
13f0: 682e ldr r6, [r5, #0]
uint32_t current_time = sys_time / 1000;
13f2: f855 4b34 ldr.w r4, [r5], #52
memset(sys_time_str, '\0', P_MAX_TIME_STR);
13f6: 2740 movs r7, #64 ; 0x40
13f8: 463a mov r2, r7
13fa: 2100 movs r1, #0
13fc: 4628 mov r0, r5
13fe: 4798 blx r3
uint32_t current_time = sys_time / 1000;
1400: f44f 787a mov.w r8, #1000 ; 0x3e8
uint8_t hour = ((current_time % 86400UL) / 3600); // 86400 seconds per day
1404: 4b14 ldr r3, [pc, #80] ; (1458 <p_get_time_str+0x70>)
uint16_t millis = sys_time % 1000;
1406: fbb6 f1f8 udiv r1, r6, r8
140a: fb08 6611 mls r6, r8, r1, r6
uint8_t _sec = (current_time % 60);
140e: 213c movs r1, #60 ; 0x3c
uint32_t current_time = sys_time / 1000;
1410: fbb4 f4f8 udiv r4, r4, r8
uint8_t hour = ((current_time % 86400UL) / 3600); // 86400 seconds per day
1414: fbb4 f2f3 udiv r2, r4, r3
uint8_t _sec = (current_time % 60);
1418: fbb4 f0f1 udiv r0, r4, r1
uint8_t hour = ((current_time % 86400UL) / 3600); // 86400 seconds per day
141c: fb03 4212 mls r2, r3, r2, r4
uint8_t _sec = (current_time % 60);
1420: fb01 4010 mls r0, r1, r0, r4
uint8_t hour = ((current_time % 86400UL) / 3600); // 86400 seconds per day
1424: f44f 6361 mov.w r3, #3600 ; 0xe10
snprintf(sys_time_str, P_MAX_TIME_STR, "%02u:%02u:%02u:%03u", hour, minute, _sec, millis);
1428: 9001 str r0, [sp, #4]
142a: 9602 str r6, [sp, #8]
uint8_t minute = ((current_time % 3600) / 60);
142c: fbb4 f0f3 udiv r0, r4, r3
1430: fb03 4410 mls r4, r3, r0, r4
snprintf(sys_time_str, P_MAX_TIME_STR, "%02u:%02u:%02u:%03u", hour, minute, _sec, millis);
1434: fbb2 f3f3 udiv r3, r2, r3
uint8_t minute = ((current_time % 3600) / 60);
1438: fbb4 f4f1 udiv r4, r4, r1
snprintf(sys_time_str, P_MAX_TIME_STR, "%02u:%02u:%02u:%03u", hour, minute, _sec, millis);
143c: 4a07 ldr r2, [pc, #28] ; (145c <p_get_time_str+0x74>)
143e: 9400 str r4, [sp, #0]
1440: 4639 mov r1, r7
1442: 4c07 ldr r4, [pc, #28] ; (1460 <p_get_time_str+0x78>)
1444: 4628 mov r0, r5
1446: 47a0 blx r4
return sys_time_str;
}
1448: 4628 mov r0, r5
144a: b004 add sp, #16
144c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
1450: 20000a40 .word 0x20000a40
1454: 00016f51 .word 0x00016f51
1458: 00015180 .word 0x00015180
145c: 0001dec4 .word 0x0001dec4
1460: 0001701d .word 0x0001701d
00001464 <debug_tx_cb>:
// usart debug callbacks
static void debug_tx_cb(const struct usart_async_descriptor *const io_descr)
{
/* Transfer completed */
b_tx_complete = true;
1464: 4b01 ldr r3, [pc, #4] ; (146c <debug_tx_cb+0x8>)
1466: 2201 movs r2, #1
1468: 701a strb r2, [r3, #0]
}
146a: 4770 bx lr
146c: 20000000 .word 0x20000000
00001470 <debug_rx_cb>:
return data_arrived;
}
void p_set_data_arrived(bool status)
{
data_arrived = status;
1470: 4b01 ldr r3, [pc, #4] ; (1478 <debug_rx_cb+0x8>)
1472: 2201 movs r2, #1
1474: 601a str r2, [r3, #0]
}
1476: 4770 bx lr
1478: 20000ab4 .word 0x20000ab4
0000147c <debug_err_cb>:
}
147c: 4770 bx lr
...
00001480 <p_usart_init>:
1480: 4b27 ldr r3, [pc, #156] ; (1520 <p_usart_init+0xa0>)
1482: 2240 movs r2, #64 ; 0x40
{
1484: b573 push {r0, r1, r4, r5, r6, lr}
1486: f8c3 209c str.w r2, [r3, #156] ; 0x9c
148a: 2243 movs r2, #67 ; 0x43
148c: f8c3 208c str.w r2, [r3, #140] ; 0x8c
((Mclk *)hw)->APBAMASK.reg |= MCLK_APBAMASK_SERCOM0;
1490: 4a24 ldr r2, [pc, #144] ; (1524 <p_usart_init+0xa4>)
usart_async_init(&p_usart_debug_inst, USART_DEBUG_SERCOM, debug_rx_buff, DEBUG_USART_EX_BUFF_SIZE, (void*)NULL);
1492: 4925 ldr r1, [pc, #148] ; (1528 <p_usart_init+0xa8>)
1494: 6953 ldr r3, [r2, #20]
1496: 4e25 ldr r6, [pc, #148] ; (152c <p_usart_init+0xac>)
1498: f443 5380 orr.w r3, r3, #4096 ; 0x1000
149c: 6153 str r3, [r2, #20]
149e: 4a24 ldr r2, [pc, #144] ; (1530 <p_usart_init+0xb0>)
14a0: 2500 movs r5, #0
14a2: f102 0414 add.w r4, r2, #20
14a6: 9500 str r5, [sp, #0]
14a8: 2310 movs r3, #16
14aa: 3204 adds r2, #4
14ac: 4620 mov r0, r4
14ae: 47b0 blx r6
tmp = ((Port *)hw)->Group[submodule_index].PINCFG[index].reg;
14b0: 4b20 ldr r3, [pc, #128] ; (1534 <p_usart_init+0xb4>)
usart_async_register_callback(&p_usart_debug_inst, USART_ASYNC_TXC_CB, debug_tx_cb);
14b2: 4e21 ldr r6, [pc, #132] ; (1538 <p_usart_init+0xb8>)
14b4: f893 2045 ldrb.w r2, [r3, #69] ; 0x45
tmp &= ~PORT_PINCFG_PMUXEN;
14b8: f002 02fe and.w r2, r2, #254 ; 0xfe
tmp |= value << PORT_PINCFG_PMUXEN_Pos;
14bc: f042 0201 orr.w r2, r2, #1
((Port *)hw)->Group[submodule_index].PINCFG[index].reg = tmp;
14c0: f883 2045 strb.w r2, [r3, #69] ; 0x45
tmp = ((Port *)hw)->Group[submodule_index].PMUX[index].reg;
14c4: f893 2032 ldrb.w r2, [r3, #50] ; 0x32
tmp &= ~PORT_PMUX_PMUXO_Msk;
14c8: f002 020f and.w r2, r2, #15
tmp |= PORT_PMUX_PMUXO(data);
14cc: f042 0230 orr.w r2, r2, #48 ; 0x30
((Port *)hw)->Group[submodule_index].PMUX[index].reg = tmp;
14d0: f883 2032 strb.w r2, [r3, #50] ; 0x32
tmp = ((Port *)hw)->Group[submodule_index].PINCFG[index].reg;
14d4: f893 2044 ldrb.w r2, [r3, #68] ; 0x44
tmp &= ~PORT_PINCFG_PMUXEN;
14d8: f002 02fe and.w r2, r2, #254 ; 0xfe
tmp |= value << PORT_PINCFG_PMUXEN_Pos;
14dc: f042 0201 orr.w r2, r2, #1
((Port *)hw)->Group[submodule_index].PINCFG[index].reg = tmp;
14e0: f883 2044 strb.w r2, [r3, #68] ; 0x44
tmp = ((Port *)hw)->Group[submodule_index].PMUX[index].reg;
14e4: f893 2032 ldrb.w r2, [r3, #50] ; 0x32
tmp &= ~PORT_PMUX_PMUXE_Msk;
14e8: f002 02f0 and.w r2, r2, #240 ; 0xf0
tmp |= PORT_PMUX_PMUXE(data);
14ec: f042 0203 orr.w r2, r2, #3
((Port *)hw)->Group[submodule_index].PMUX[index].reg = tmp;
14f0: f883 2032 strb.w r2, [r3, #50] ; 0x32
14f4: 2101 movs r1, #1
14f6: 4a11 ldr r2, [pc, #68] ; (153c <p_usart_init+0xbc>)
14f8: 4620 mov r0, r4
14fa: 47b0 blx r6
usart_async_register_callback(&p_usart_debug_inst, USART_ASYNC_RXC_CB, debug_rx_cb);
14fc: 4629 mov r1, r5
14fe: 4a10 ldr r2, [pc, #64] ; (1540 <p_usart_init+0xc0>)
1500: 4620 mov r0, r4
1502: 47b0 blx r6
usart_async_register_callback(&p_usart_debug_inst, USART_ASYNC_ERROR_CB, debug_err_cb);
1504: 4a0f ldr r2, [pc, #60] ; (1544 <p_usart_init+0xc4>)
1506: 2102 movs r1, #2
1508: 4620 mov r0, r4
150a: 47b0 blx r6
usart_async_enable(&p_usart_debug_inst);
150c: 4b0e ldr r3, [pc, #56] ; (1548 <p_usart_init+0xc8>)
150e: 4620 mov r0, r4
1510: 4798 blx r3
lv_log_register_print_cb((lv_log_print_g_cb_t)p_lv_log_cb);
1512: 480e ldr r0, [pc, #56] ; (154c <p_usart_init+0xcc>)
1514: 4b0e ldr r3, [pc, #56] ; (1550 <p_usart_init+0xd0>)
}
1516: b002 add sp, #8
1518: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_log_register_print_cb((lv_log_print_g_cb_t)p_lv_log_cb);
151c: 4718 bx r3
151e: bf00 nop
1520: 40001c00 .word 0x40001c00
1524: 40000800 .word 0x40000800
1528: 40003000 .word 0x40003000
152c: 00000c3d .word 0x00000c3d
1530: 20000ab4 .word 0x20000ab4
1534: 41008000 .word 0x41008000
1538: 00000cf1 .word 0x00000cf1
153c: 00001465 .word 0x00001465
1540: 00001471 .word 0x00001471
1544: 0000147d .word 0x0000147d
1548: 00000cc5 .word 0x00000cc5
154c: 000015d9 .word 0x000015d9
1550: 0000eb6d .word 0x0000eb6d
00001554 <p_write>:
{
1554: b510 push {r4, lr}
b_tx_complete = false;
1556: 4c04 ldr r4, [pc, #16] ; (1568 <p_write+0x14>)
1558: 2300 movs r3, #0
155a: 7023 strb r3, [r4, #0]
io_write(&inst->io, data, len);
155c: 4b03 ldr r3, [pc, #12] ; (156c <p_write+0x18>)
155e: 4798 blx r3
while(!b_tx_complete){}
1560: 7823 ldrb r3, [r4, #0]
1562: 2b00 cmp r3, #0
1564: d0fc beq.n 1560 <p_write+0xc>
}
1566: bd10 pop {r4, pc}
1568: 20000000 .word 0x20000000
156c: 000002ed .word 0x000002ed
00001570 <pprintf>:
{
1570: b40f push {r0, r1, r2, r3}
1572: b530 push {r4, r5, lr}
1574: b0c5 sub sp, #276 ; 0x114
size_t size_str = strlen(str);
1576: 4c13 ldr r4, [pc, #76] ; (15c4 <pprintf+0x54>)
{
1578: 9d48 ldr r5, [sp, #288] ; 0x120
size_t size_str = strlen(str);
157a: 4628 mov r0, r5
157c: 47a0 blx r4
if (size_str >= DEBUG_MAX_BUFFER_SIZE)
157e: 28ff cmp r0, #255 ; 0xff
1580: d81c bhi.n 15bc <pprintf+0x4c>
memset(printf_buffer, '\0', DEBUG_MAX_BUFFER_SIZE);
1582: 4b11 ldr r3, [pc, #68] ; (15c8 <pprintf+0x58>)
1584: f44f 7280 mov.w r2, #256 ; 0x100
1588: 2100 movs r1, #0
158a: a804 add r0, sp, #16
158c: 4798 blx r3
va_start(args, str);
158e: ab49 add r3, sp, #292 ; 0x124
vsprintf((char*)printf_buffer, str, args);
1590: f44f 7280 mov.w r2, #256 ; 0x100
1594: 2100 movs r1, #0
va_start(args, str);
1596: 9303 str r3, [sp, #12]
vsprintf((char*)printf_buffer, str, args);
1598: 9300 str r3, [sp, #0]
159a: a804 add r0, sp, #16
159c: 462b mov r3, r5
159e: 4d0b ldr r5, [pc, #44] ; (15cc <pprintf+0x5c>)
15a0: 47a8 blx r5
p_write(&p_usart_debug_inst, (const uint8_t*)printf_buffer, strlen((const char*)printf_buffer));
15a2: a804 add r0, sp, #16
15a4: 47a0 blx r4
15a6: 4b0a ldr r3, [pc, #40] ; (15d0 <pprintf+0x60>)
15a8: b282 uxth r2, r0
15aa: a904 add r1, sp, #16
15ac: 4809 ldr r0, [pc, #36] ; (15d4 <pprintf+0x64>)
15ae: 4798 blx r3
return 0;
15b0: 2000 movs r0, #0
}
15b2: b045 add sp, #276 ; 0x114
15b4: e8bd 4030 ldmia.w sp!, {r4, r5, lr}
15b8: b004 add sp, #16
15ba: 4770 bx lr
return -1;
15bc: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
15c0: e7f7 b.n 15b2 <pprintf+0x42>
15c2: bf00 nop
15c4: 00017481 .word 0x00017481
15c8: 00016f51 .word 0x00016f51
15cc: 00019d09 .word 0x00019d09
15d0: 00001555 .word 0x00001555
15d4: 20000ac8 .word 0x20000ac8
000015d8 <p_lv_log_cb>:
{
15d8: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
15da: 461f mov r7, r3
PDEBUG("[LVGL][%s][%s][%s][%d] --\t%s\r\n", p_get_time_str(), level == LV_LOG_LEVEL_TRACE ? "TRACE" :
15dc: 4b0c ldr r3, [pc, #48] ; (1610 <p_lv_log_cb+0x38>)
{
15de: 460d mov r5, r1
15e0: 4604 mov r4, r0
15e2: 4616 mov r6, r2
PDEBUG("[LVGL][%s][%s][%s][%d] --\t%s\r\n", p_get_time_str(), level == LV_LOG_LEVEL_TRACE ? "TRACE" :
15e4: 4798 blx r3
15e6: 4601 mov r1, r0
15e8: b174 cbz r4, 1608 <p_lv_log_cb+0x30>
15ea: 3c01 subs r4, #1
15ec: b2e4 uxtb r4, r4
15ee: 2c02 cmp r4, #2
15f0: d80c bhi.n 160c <p_lv_log_cb+0x34>
15f2: 4b08 ldr r3, [pc, #32] ; (1614 <p_lv_log_cb+0x3c>)
15f4: f853 2024 ldr.w r2, [r3, r4, lsl #2]
15f8: 4c07 ldr r4, [pc, #28] ; (1618 <p_lv_log_cb+0x40>)
15fa: 4808 ldr r0, [pc, #32] ; (161c <p_lv_log_cb+0x44>)
15fc: e9cd 6700 strd r6, r7, [sp]
1600: 462b mov r3, r5
1602: 47a0 blx r4
}
1604: b003 add sp, #12
1606: bdf0 pop {r4, r5, r6, r7, pc}
PDEBUG("[LVGL][%s][%s][%s][%d] --\t%s\r\n", p_get_time_str(), level == LV_LOG_LEVEL_TRACE ? "TRACE" :
1608: 4a05 ldr r2, [pc, #20] ; (1620 <p_lv_log_cb+0x48>)
160a: e7f5 b.n 15f8 <p_lv_log_cb+0x20>
160c: 4a05 ldr r2, [pc, #20] ; (1624 <p_lv_log_cb+0x4c>)
160e: e7f3 b.n 15f8 <p_lv_log_cb+0x20>
1610: 000013e9 .word 0x000013e9
1614: 0001df14 .word 0x0001df14
1618: 00001571 .word 0x00001571
161c: 0001dee3 .word 0x0001dee3
1620: 0001dedd .word 0x0001dedd
1624: 0001ded8 .word 0x0001ded8
00001628 <p_screen_init>:
static lv_disp_buf_t disp_buf;
static lv_color_t buf[LV_HOR_RES_MAX * 10]; /*Declare a buffer for 10 lines*/
void p_screen_init(void)
{
1628: b530 push {r4, r5, lr}
// devices init
lv_init();
162a: 4b1a ldr r3, [pc, #104] ; (1694 <p_screen_init+0x6c>)
ssd1963_init();
lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 10); /*Initialize the display buffer*/
162c: 4c1a ldr r4, [pc, #104] ; (1698 <p_screen_init+0x70>)
162e: 4d1b ldr r5, [pc, #108] ; (169c <p_screen_init+0x74>)
{
1630: b08d sub sp, #52 ; 0x34
lv_init();
1632: 4798 blx r3
ssd1963_init();
1634: 4b1a ldr r3, [pc, #104] ; (16a0 <p_screen_init+0x78>)
1636: 4798 blx r3
lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 10); /*Initialize the display buffer*/
1638: 2200 movs r2, #0
163a: 491a ldr r1, [pc, #104] ; (16a4 <p_screen_init+0x7c>)
163c: 4620 mov r0, r4
163e: f44f 5396 mov.w r3, #4800 ; 0x12c0
1642: 47a8 blx r5
lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
lv_disp_drv_init(&disp_drv); /*Basic initialization*/
1644: a801 add r0, sp, #4
1646: 4b18 ldr r3, [pc, #96] ; (16a8 <p_screen_init+0x80>)
1648: 4798 blx r3
disp_drv.flush_cb = ssd1963_flush; /*Set your driver function*/
164a: 4b18 ldr r3, [pc, #96] ; (16ac <p_screen_init+0x84>)
164c: 9304 str r3, [sp, #16]
disp_drv.buffer = &disp_buf; /*Assign the buffer to the display*/
lv_disp_drv_register(&disp_drv); /*Finally register the driver*/
164e: a801 add r0, sp, #4
1650: 4b17 ldr r3, [pc, #92] ; (16b0 <p_screen_init+0x88>)
disp_drv.buffer = &disp_buf; /*Assign the buffer to the display*/
1652: 9402 str r4, [sp, #8]
lv_disp_drv_register(&disp_drv); /*Finally register the driver*/
1654: 4798 blx r3
lv_obj_t* scr = lv_disp_get_scr_act(NULL);
1656: 4b17 ldr r3, [pc, #92] ; (16b4 <p_screen_init+0x8c>)
1658: 2000 movs r0, #0
165a: 4798 blx r3
lv_obj_t* hornet_image = lv_img_create(scr, NULL);
165c: 4b16 ldr r3, [pc, #88] ; (16b8 <p_screen_init+0x90>)
165e: 2100 movs r1, #0
lv_obj_t* scr = lv_disp_get_scr_act(NULL);
1660: 4604 mov r4, r0
lv_obj_t* hornet_image = lv_img_create(scr, NULL);
1662: 4798 blx r3
lv_img_set_src(hornet_image, &hornet);
1664: 4b15 ldr r3, [pc, #84] ; (16bc <p_screen_init+0x94>)
1666: 4916 ldr r1, [pc, #88] ; (16c0 <p_screen_init+0x98>)
lv_obj_t* hornet_image = lv_img_create(scr, NULL);
1668: 4605 mov r5, r0
lv_img_set_src(hornet_image, &hornet);
166a: 4798 blx r3
lv_obj_set_pos(hornet_image, 0, 0);
166c: 2200 movs r2, #0
166e: 4611 mov r1, r2
1670: 4628 mov r0, r5
1672: 4d14 ldr r5, [pc, #80] ; (16c4 <p_screen_init+0x9c>)
1674: 47a8 blx r5
lv_obj_t* random_text = lv_label_create(scr, NULL);
1676: 4b14 ldr r3, [pc, #80] ; (16c8 <p_screen_init+0xa0>)
1678: 2100 movs r1, #0
167a: 4620 mov r0, r4
167c: 4798 blx r3
lv_obj_set_pos(random_text, 90, 35);
167e: 2223 movs r2, #35 ; 0x23
lv_obj_t* random_text = lv_label_create(scr, NULL);
1680: 4604 mov r4, r0
lv_obj_set_pos(random_text, 90, 35);
1682: 215a movs r1, #90 ; 0x5a
1684: 47a8 blx r5
lv_label_set_text(random_text, "Hello World");
1686: 4911 ldr r1, [pc, #68] ; (16cc <p_screen_init+0xa4>)
1688: 4b11 ldr r3, [pc, #68] ; (16d0 <p_screen_init+0xa8>)
168a: 4620 mov r0, r4
168c: 4798 blx r3
}
168e: b00d add sp, #52 ; 0x34
1690: bd30 pop {r4, r5, pc}
1692: bf00 nop
1694: 00001fb1 .word 0x00001fb1
1698: 20000b18 .word 0x20000b18
169c: 0000da21 .word 0x0000da21
16a0: 0000175d .word 0x0000175d
16a4: 20000b3c .word 0x20000b3c
16a8: 0000d9e1 .word 0x0000d9e1
16ac: 00001909 .word 0x00001909
16b0: 0000da41 .word 0x0000da41
16b4: 00001af5 .word 0x00001af5
16b8: 000149a9 .word 0x000149a9
16bc: 00014755 .word 0x00014755
16c0: 0001df2c .word 0x0001df2c
16c4: 00002b25 .word 0x00002b25
16c8: 00015bc1 .word 0x00015bc1
16cc: 0001df20 .word 0x0001df20
16d0: 000158c5 .word 0x000158c5
000016d4 <p_screen_service>:
void p_screen_service(void)
{
lv_task_handler();
16d4: 4b00 ldr r3, [pc, #0] ; (16d8 <p_screen_service+0x4>)
16d6: 4718 bx r3
16d8: 0000fc8d .word 0x0000fc8d
000016dc <ssd1963_cmd>:
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
16dc: 490b ldr r1, [pc, #44] ; (170c <ssd1963_cmd+0x30>)
/**
* Write command
* @param cmd the command
*/
static inline void ssd1963_cmd(uint8_t cmd)
{
16de: b508 push {r3, lr}
16e0: f44f 7380 mov.w r3, #256 ; 0x100
16e4: 614b str r3, [r1, #20]
if(cmd_mode == false) {
16e6: 4b0a ldr r3, [pc, #40] ; (1710 <ssd1963_cmd+0x34>)
{
16e8: 4602 mov r2, r0
if(cmd_mode == false) {
16ea: 7818 ldrb r0, [r3, #0]
16ec: b920 cbnz r0, 16f8 <ssd1963_cmd+0x1c>
16ee: f44f 7000 mov.w r0, #512 ; 0x200
16f2: 6148 str r0, [r1, #20]
cmd_mode = true;
16f4: 2101 movs r1, #1
16f6: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_CS(0);
ssd1963_cmd_mode();
LV_DRV_DISP_PAR_WR_WORD(cmd);
16f8: 4b06 ldr r3, [pc, #24] ; (1714 <ssd1963_cmd+0x38>)
16fa: 4807 ldr r0, [pc, #28] ; (1718 <ssd1963_cmd+0x3c>)
16fc: f64f 71ff movw r1, #65535 ; 0xffff
1700: 4798 blx r3
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
1702: 4b02 ldr r3, [pc, #8] ; (170c <ssd1963_cmd+0x30>)
1704: f44f 7280 mov.w r2, #256 ; 0x100
1708: 619a str r2, [r3, #24]
LV_DRV_DISP_PAR_CS(1);
}
170a: bd08 pop {r3, pc}
170c: 41008000 .word 0x41008000
1710: 20000001 .word 0x20000001
1714: 000011cd .word 0x000011cd
1718: 41008080 .word 0x41008080
0000171c <ssd1963_data>:
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
171c: 490b ldr r1, [pc, #44] ; (174c <ssd1963_data+0x30>)
/**
* Write data
* @param data the data
*/
static inline void ssd1963_data(uint8_t data)
{
171e: b508 push {r3, lr}
1720: f44f 7380 mov.w r3, #256 ; 0x100
1724: 614b str r3, [r1, #20]
if(cmd_mode != false) {
1726: 4b0a ldr r3, [pc, #40] ; (1750 <ssd1963_data+0x34>)
{
1728: 4602 mov r2, r0
if(cmd_mode != false) {
172a: 7818 ldrb r0, [r3, #0]
172c: b120 cbz r0, 1738 <ssd1963_data+0x1c>
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
172e: f44f 7000 mov.w r0, #512 ; 0x200
1732: 6188 str r0, [r1, #24]
cmd_mode = false;
1734: 2100 movs r1, #0
1736: 7019 strb r1, [r3, #0]
LV_DRV_DISP_PAR_CS(0);
ssd1963_data_mode();
LV_DRV_DISP_PAR_WR_WORD(data);
1738: 4b06 ldr r3, [pc, #24] ; (1754 <ssd1963_data+0x38>)
173a: 4807 ldr r0, [pc, #28] ; (1758 <ssd1963_data+0x3c>)
173c: f64f 71ff movw r1, #65535 ; 0xffff
1740: 4798 blx r3
1742: 4b02 ldr r3, [pc, #8] ; (174c <ssd1963_data+0x30>)
1744: f44f 7280 mov.w r2, #256 ; 0x100
1748: 619a str r2, [r3, #24]
LV_DRV_DISP_PAR_CS(1);
}
174a: bd08 pop {r3, pc}
174c: 41008000 .word 0x41008000
1750: 20000001 .word 0x20000001
1754: 000011cd .word 0x000011cd
1758: 41008080 .word 0x41008080
0000175c <ssd1963_init>:
{
175c: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
asm volatile("nop");
1760: bf00 nop
1762: 4f61 ldr r7, [pc, #388] ; (18e8 <ssd1963_init+0x18c>)
LV_DRV_DELAY_MS(50);
1764: 4e61 ldr r6, [pc, #388] ; (18ec <ssd1963_init+0x190>)
1766: f04f 5480 mov.w r4, #268435456 ; 0x10000000
176a: f8c7 4118 str.w r4, [r7, #280] ; 0x118
176e: 2032 movs r0, #50 ; 0x32
1770: 47b0 blx r6
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
1772: f8c7 4114 str.w r4, [r7, #276] ; 0x114
asm volatile("nop");
1776: bf00 nop
LV_DRV_DELAY_MS(50);
1778: 2032 movs r0, #50 ; 0x32
177a: 47b0 blx r6
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
177c: f8c7 4118 str.w r4, [r7, #280] ; 0x118
LV_DRV_DELAY_MS(50);
1780: 2032 movs r0, #50 ; 0x32
1782: 47b0 blx r6
asm volatile("nop");
1784: bf00 nop
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
1786: f44f 7880 mov.w r8, #256 ; 0x100
LV_DRV_DELAY_MS(10);
178a: 200a movs r0, #10
178c: f8c7 8014 str.w r8, [r7, #20]
1790: 47b0 blx r6
LV_DRV_DELAY_MS(5);
1792: 2005 movs r0, #5
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
1794: f8c7 8018 str.w r8, [r7, #24]
ssd1963_cmd(0x01);
1798: 4d55 ldr r5, [pc, #340] ; (18f0 <ssd1963_init+0x194>)
ssd1963_data(0x2F); //N=0x36 for 6.5M, 0x23 for 10M crystal
179a: 4c56 ldr r4, [pc, #344] ; (18f4 <ssd1963_init+0x198>)
ssd1963_data((SSD1963_HOR_RES-1)>>8); //Set panel size
179c: f8df 9160 ldr.w r9, [pc, #352] ; 1900 <ssd1963_init+0x1a4>
LV_DRV_DELAY_MS(5);
17a0: 47b0 blx r6
ssd1963_cmd(0x01);
17a2: 2001 movs r0, #1
17a4: 47a8 blx r5
LV_DRV_DELAY_MS(20);
17a6: 2014 movs r0, #20
17a8: 47b0 blx r6
ssd1963_cmd(0x01);
17aa: 2001 movs r0, #1
17ac: 47a8 blx r5
LV_DRV_DELAY_MS(20);
17ae: 2014 movs r0, #20
17b0: 47b0 blx r6
ssd1963_cmd(0x01);
17b2: 2001 movs r0, #1
17b4: 47a8 blx r5
LV_DRV_DELAY_MS(20);
17b6: 2014 movs r0, #20
17b8: 47b0 blx r6
ssd1963_cmd(0xE2); //PLL multiplier, set PLL clock to 120M
17ba: 20e2 movs r0, #226 ; 0xe2
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
17bc: f8c7 8014 str.w r8, [r7, #20]
17c0: 47a8 blx r5
ssd1963_data(0x2F); //N=0x36 for 6.5M, 0x23 for 10M crystal
17c2: 202f movs r0, #47 ; 0x2f
17c4: 47a0 blx r4
ssd1963_data(0x03);
17c6: 2003 movs r0, #3
17c8: 47a0 blx r4
ssd1963_data(0x54);
17ca: 2054 movs r0, #84 ; 0x54
17cc: 47a0 blx r4
ssd1963_cmd(0xE0); // PLL enable
17ce: 20e0 movs r0, #224 ; 0xe0
17d0: 47a8 blx r5
ssd1963_data(0x01);
17d2: 2001 movs r0, #1
17d4: 47a0 blx r4
delay_us(100);
17d6: 4b48 ldr r3, [pc, #288] ; (18f8 <ssd1963_init+0x19c>)
17d8: 2064 movs r0, #100 ; 0x64
17da: 4798 blx r3
ssd1963_cmd(0xE0);
17dc: 20e0 movs r0, #224 ; 0xe0
17de: 47a8 blx r5
ssd1963_data(0x03); // now, use PLL output as system clock
17e0: 2003 movs r0, #3
17e2: 47a0 blx r4
delay_ms(1);
17e4: 2001 movs r0, #1
17e6: 47b0 blx r6
ssd1963_cmd(0x01);
17e8: 2001 movs r0, #1
17ea: 47a8 blx r5
delay_ms(1);
17ec: 2001 movs r0, #1
17ee: 47b0 blx r6
ssd1963_cmd(0xE6); //PLL setting for PCLK, depends on resolution
17f0: 20e6 movs r0, #230 ; 0xe6
17f2: 47a8 blx r5
ssd1963_data(0x01);
17f4: 2001 movs r0, #1
17f6: 47a0 blx r4
ssd1963_data(0xCC);
17f8: 20cc movs r0, #204 ; 0xcc
17fa: 47a0 blx r4
ssd1963_data(0xCC);
17fc: 20cc movs r0, #204 ; 0xcc
17fe: 47a0 blx r4
ssd1963_cmd(0xB0);
1800: 20b0 movs r0, #176 ; 0xb0
1802: 47a8 blx r5
ssd1963_data(0x28); // set 18-bit for 7" panel TY700TFT800480
1804: 2028 movs r0, #40 ; 0x28
1806: 47a0 blx r4
ssd1963_data((SSD1963_HOR_RES-1)>>8); //Set panel size
1808: 4e3c ldr r6, [pc, #240] ; (18fc <ssd1963_init+0x1a0>)
ssd1963_data(0x80); // set TTL mode
180a: 2080 movs r0, #128 ; 0x80
180c: 47a0 blx r4
ssd1963_data((SSD1963_HOR_RES-1)>>8); //Set panel size
180e: 47b0 blx r6
1810: 47c8 blx r9
1812: 3801 subs r0, #1
1814: f3c0 2007 ubfx r0, r0, #8, #8
1818: 47a0 blx r4
ssd1963_data(SSD1963_HOR_RES-1);
181a: 47b0 blx r6
181c: 47c8 blx r9
181e: 3801 subs r0, #1
1820: b2c0 uxtb r0, r0
1822: 47a0 blx r4
ssd1963_data((SSD1963_VER_RES-1)>>8);
1824: f8df 90dc ldr.w r9, [pc, #220] ; 1904 <ssd1963_init+0x1a8>
1828: 47b0 blx r6
182a: 47c8 blx r9
182c: 3801 subs r0, #1
182e: f3c0 2007 ubfx r0, r0, #8, #8
1832: 47a0 blx r4
ssd1963_data(SSD1963_VER_RES-1);
1834: 47b0 blx r6
1836: 47c8 blx r9
1838: 3801 subs r0, #1
183a: b2c0 uxtb r0, r0
183c: 47a0 blx r4
ssd1963_data(0x00);
183e: 2000 movs r0, #0
1840: 47a0 blx r4
ssd1963_cmd(0xF0); //Pixel Data Interface Format
1842: 20f0 movs r0, #240 ; 0xf0
1844: 47a8 blx r5
ssd1963_data(0x03); //16-bit(565 format) data
1846: 2003 movs r0, #3
1848: 47a0 blx r4
ssd1963_cmd(0x3A); //Set the current pixel format for RGB image data
184a: 203a movs r0, #58 ; 0x3a
184c: 47a8 blx r5
ssd1963_data(0x55); //16-bit/pixel
184e: 2055 movs r0, #85 ; 0x55
1850: 47a0 blx r4
ssd1963_cmd(0xb4); //SET HBP,
1852: 20b4 movs r0, #180 ; 0xb4
1854: 47a8 blx r5
ssd1963_data(0x02); //SET HSYNC Tatol 525
1856: 2002 movs r0, #2
1858: 47a0 blx r4
ssd1963_data(0x0d);
185a: 200d movs r0, #13
185c: 47a0 blx r4
ssd1963_data(0x00); //SET HBP 43
185e: 2000 movs r0, #0
1860: 47a0 blx r4
ssd1963_data(0x2b);
1862: 202b movs r0, #43 ; 0x2b
1864: 47a0 blx r4
ssd1963_data(0x28); //SET VBP 41=40+1
1866: 2028 movs r0, #40 ; 0x28
1868: 47a0 blx r4
ssd1963_data(0x00); //SET Hsync pulse start position
186a: 2000 movs r0, #0
186c: 47a0 blx r4
ssd1963_data(0x00);
186e: 2000 movs r0, #0
1870: 47a0 blx r4
ssd1963_data(0x00); //SET Hsync pulse subpixel start position
1872: 2000 movs r0, #0
1874: 47a0 blx r4
ssd1963_cmd(0xb6); //SET VBP,
1876: 20b6 movs r0, #182 ; 0xb6
1878: 47a8 blx r5
ssd1963_data(0x01); //SET Vsync total 286=285+1
187a: 2001 movs r0, #1
187c: 47a0 blx r4
ssd1963_data(0x1d);
187e: 201d movs r0, #29
1880: 47a0 blx r4
ssd1963_data(0x00); //SET VBP=12
1882: 2000 movs r0, #0
1884: 47a0 blx r4
ssd1963_data(0x0c);
1886: 200c movs r0, #12
1888: 47a0 blx r4
ssd1963_data(0x09); //SET Vsync pulse 10=9+1
188a: 2009 movs r0, #9
188c: 47a0 blx r4
ssd1963_data(0x00); //SET Vsync pulse start position
188e: 2000 movs r0, #0
1890: 47a0 blx r4
ssd1963_data(0x00);
1892: 2000 movs r0, #0
1894: 47a0 blx r4
ssd1963_cmd(0x2a); //SET column address
1896: 202a movs r0, #42 ; 0x2a
1898: 47a8 blx r5
ssd1963_data(0x00); //SET start column address=0
189a: 2000 movs r0, #0
189c: 47a0 blx r4
ssd1963_data(0x00);
189e: 2000 movs r0, #0
18a0: 47a0 blx r4
ssd1963_data(0x01); //SET end column address=479
18a2: 2001 movs r0, #1
18a4: 47a0 blx r4
ssd1963_data(0xDF);
18a6: 20df movs r0, #223 ; 0xdf
18a8: 47a0 blx r4
ssd1963_cmd(0x2b); //SET page address
18aa: 202b movs r0, #43 ; 0x2b
18ac: 47a8 blx r5
ssd1963_data(0x00); //SET start page address=0
18ae: 2000 movs r0, #0
18b0: 47a0 blx r4
ssd1963_data(0x00);
18b2: 2000 movs r0, #0
18b4: 47a0 blx r4
ssd1963_data(0x01); //SET end page address=271
18b6: 2001 movs r0, #1
18b8: 47a0 blx r4
ssd1963_data(0x0F);
18ba: 200f movs r0, #15
18bc: 47a0 blx r4
ssd1963_cmd(0x29); //display on
18be: 2029 movs r0, #41 ; 0x29
18c0: 47a8 blx r5
ssd1963_cmd(0xBE);
18c2: 20be movs r0, #190 ; 0xbe
18c4: 47a8 blx r5
ssd1963_data(0x06);
18c6: 2006 movs r0, #6
18c8: 47a0 blx r4
ssd1963_data(0xFF);
18ca: 20ff movs r0, #255 ; 0xff
18cc: 47a0 blx r4
ssd1963_data(0x01);
18ce: 2001 movs r0, #1
18d0: 47a0 blx r4
ssd1963_data(0xFF);
18d2: 20ff movs r0, #255 ; 0xff
18d4: 47a0 blx r4
ssd1963_data(0x00);
18d6: 2000 movs r0, #0
18d8: 47a0 blx r4
ssd1963_data(0x01);
18da: 2001 movs r0, #1
18dc: 47a0 blx r4
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
18de: f8c7 8018 str.w r8, [r7, #24]
}
18e2: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
18e6: bf00 nop
18e8: 41008000 .word 0x41008000
18ec: 000005b5 .word 0x000005b5
18f0: 000016dd .word 0x000016dd
18f4: 0000171d .word 0x0000171d
18f8: 00000591 .word 0x00000591
18fc: 0000db81 .word 0x0000db81
1900: 0000db8d .word 0x0000db8d
1904: 0000dbb1 .word 0x0000dbb1
00001908 <ssd1963_flush>:
{
1908: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
if(area->x2 < 0) return;
190c: f9b1 3004 ldrsh.w r3, [r1, #4]
{
1910: ed2d 8b02 vpush {d8}
if(area->x2 < 0) return;
1914: 2b00 cmp r3, #0
{
1916: ee08 0a10 vmov s16, r0
191a: b081 sub sp, #4
191c: 460d mov r5, r1
191e: 4690 mov r8, r2
if(area->x2 < 0) return;
1920: f2c0 8086 blt.w 1a30 <ssd1963_flush+0x128>
if(area->y2 < 0) return;
1924: f9b1 3006 ldrsh.w r3, [r1, #6]
1928: 2b00 cmp r3, #0
192a: f2c0 8081 blt.w 1a30 <ssd1963_flush+0x128>
if(area->x1 > SSD1963_HOR_RES - 1) return;
192e: 4f43 ldr r7, [pc, #268] ; (1a3c <ssd1963_flush+0x134>)
1930: f8df a118 ldr.w sl, [pc, #280] ; 1a4c <ssd1963_flush+0x144>
1934: 47b8 blx r7
1936: 47d0 blx sl
1938: f9b5 3000 ldrsh.w r3, [r5]
193c: 4283 cmp r3, r0
193e: da77 bge.n 1a30 <ssd1963_flush+0x128>
if(area->y1 > SSD1963_VER_RES - 1) return;
1940: 47b8 blx r7
1942: f8df b10c ldr.w fp, [pc, #268] ; 1a50 <ssd1963_flush+0x148>
1946: 47d8 blx fp
1948: f9b5 6002 ldrsh.w r6, [r5, #2]
194c: 42b0 cmp r0, r6
194e: dd6f ble.n 1a30 <ssd1963_flush+0x128>
int32_t act_x1 = area->x1 < 0 ? 0 : area->x1;
1950: f9b5 4000 ldrsh.w r4, [r5]
int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2;
1954: 47b8 blx r7
1956: 47d0 blx sl
1958: f9b5 3004 ldrsh.w r3, [r5, #4]
195c: 4298 cmp r0, r3
int32_t act_x1 = area->x1 < 0 ? 0 : area->x1;
195e: ea24 74e4 bic.w r4, r4, r4, asr #31
int32_t act_y1 = area->y1 < 0 ? 0 : area->y1;
1962: ea26 76e6 bic.w r6, r6, r6, asr #31
int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2;
1966: dc55 bgt.n 1a14 <ssd1963_flush+0x10c>
1968: 47b8 blx r7
196a: 47d0 blx sl
196c: f100 3aff add.w sl, r0, #4294967295 ; 0xffffffff
int32_t act_y2 = area->y2 > SSD1963_VER_RES - 1 ? SSD1963_VER_RES - 1 : area->y2;
1970: 47b8 blx r7
1972: 47d8 blx fp
1974: f9b5 3006 ldrsh.w r3, [r5, #6]
1978: 4298 cmp r0, r3
197a: dc4d bgt.n 1a18 <ssd1963_flush+0x110>
197c: 47b8 blx r7
197e: 47d8 blx fp
1980: 1e47 subs r7, r0, #1
ssd1963_cmd(0x002A);
1982: f8df 90d0 ldr.w r9, [pc, #208] ; 1a54 <ssd1963_flush+0x14c>
ssd1963_data(act_x1 >> 8);
1986: f8df b0d0 ldr.w fp, [pc, #208] ; 1a58 <ssd1963_flush+0x150>
ssd1963_cmd(0x002A);
198a: 202a movs r0, #42 ; 0x2a
198c: 47c8 blx r9
ssd1963_data(act_x1 >> 8);
198e: f3c4 2007 ubfx r0, r4, #8, #8
1992: 47d8 blx fp
ssd1963_data(0x00FF & act_x1);
1994: b2e0 uxtb r0, r4
1996: 47d8 blx fp
ssd1963_data(act_x2 >> 8);
1998: f3ca 2007 ubfx r0, sl, #8, #8
199c: 47d8 blx fp
ssd1963_data(0x00FF & act_x2);
199e: fa5f f08a uxtb.w r0, sl
19a2: 47d8 blx fp
ssd1963_cmd(0x002B);
19a4: 202b movs r0, #43 ; 0x2b
19a6: 47c8 blx r9
ssd1963_data(act_y1 >> 8);
19a8: f3c6 2007 ubfx r0, r6, #8, #8
19ac: 47d8 blx fp
ssd1963_data(0x00FF & act_y1);
19ae: b2f0 uxtb r0, r6
19b0: 47d8 blx fp
ssd1963_data(act_y2 >> 8);
19b2: f3c7 2007 ubfx r0, r7, #8, #8
19b6: 47d8 blx fp
ssd1963_data(0x00FF & act_y2);
19b8: b2f8 uxtb r0, r7
19ba: 47d8 blx fp
ssd1963_cmd(0x2c);
19bc: 202c movs r0, #44 ; 0x2c
19be: 47c8 blx r9
uint16_t full_w = area->x2 - area->x1 + 1;
19c0: 88ab ldrh r3, [r5, #4]
19c2: 882a ldrh r2, [r5, #0]
19c4: 3301 adds r3, #1
19c6: 1a9d subs r5, r3, r2
if(cmd_mode != false) {
19c8: 4a1d ldr r2, [pc, #116] ; (1a40 <ssd1963_flush+0x138>)
19ca: 4b1e ldr r3, [pc, #120] ; (1a44 <ssd1963_flush+0x13c>)
19cc: 7811 ldrb r1, [r2, #0]
uint16_t full_w = area->x2 - area->x1 + 1;
19ce: b2ad uxth r5, r5
if(cmd_mode != false) {
19d0: b121 cbz r1, 19dc <ssd1963_flush+0xd4>
19d2: f44f 7100 mov.w r1, #512 ; 0x200
19d6: 6199 str r1, [r3, #24]
cmd_mode = false;
19d8: 2100 movs r1, #0
19da: 7011 strb r1, [r2, #0]
uint16_t act_w = act_x2 - act_x1 + 1;
19dc: f1c4 0401 rsb r4, r4, #1
((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask;
19e0: f44f 7280 mov.w r2, #256 ; 0x100
19e4: 615a str r2, [r3, #20]
LV_DRV_DISP_PAR_WR_ARRAY((uint16_t *)color_p, act_w);
19e6: f8df b074 ldr.w fp, [pc, #116] ; 1a5c <ssd1963_flush+0x154>
uint16_t act_w = act_x2 - act_x1 + 1;
19ea: eb04 030a add.w r3, r4, sl
LV_DRV_DISP_PAR_WR_ARRAY((uint16_t *)color_p, act_w);
19ee: f8df a070 ldr.w sl, [pc, #112] ; 1a60 <ssd1963_flush+0x158>
uint16_t act_w = act_x2 - act_x1 + 1;
19f2: b29c uxth r4, r3
color_p += full_w;
19f4: 006d lsls r5, r5, #1
for(i = act_y1; i <= act_y2; i++) {
19f6: 42be cmp r6, r7
19f8: dd10 ble.n 1a1c <ssd1963_flush+0x114>
((Port *)hw)->Group[submodule_index].OUTSET.reg = mask;
19fa: 4b12 ldr r3, [pc, #72] ; (1a44 <ssd1963_flush+0x13c>)
19fc: f44f 7280 mov.w r2, #256 ; 0x100
1a00: 619a str r2, [r3, #24]
lv_disp_flush_ready(disp_drv);
1a02: ee18 0a10 vmov r0, s16
1a06: 4b10 ldr r3, [pc, #64] ; (1a48 <ssd1963_flush+0x140>)
}
1a08: b001 add sp, #4
1a0a: ecbd 8b02 vpop {d8}
1a0e: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_disp_flush_ready(disp_drv);
1a12: 4718 bx r3
int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2;
1a14: 469a mov sl, r3
1a16: e7ab b.n 1970 <ssd1963_flush+0x68>
int32_t act_y2 = area->y2 > SSD1963_VER_RES - 1 ? SSD1963_VER_RES - 1 : area->y2;
1a18: 461f mov r7, r3
1a1a: e7b2 b.n 1982 <ssd1963_flush+0x7a>
LV_DRV_DISP_PAR_WR_ARRAY((uint16_t *)color_p, act_w);
1a1c: 4642 mov r2, r8
1a1e: 4623 mov r3, r4
1a20: f64f 71ff movw r1, #65535 ; 0xffff
1a24: 4650 mov r0, sl
1a26: 3601 adds r6, #1
1a28: 47d8 blx fp
color_p += full_w;
1a2a: 44a8 add r8, r5
for(i = act_y1; i <= act_y2; i++) {
1a2c: b236 sxth r6, r6
1a2e: e7e2 b.n 19f6 <ssd1963_flush+0xee>
}
1a30: b001 add sp, #4
1a32: ecbd 8b02 vpop {d8}
1a36: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1a3a: bf00 nop
1a3c: 0000db81 .word 0x0000db81
1a40: 20000001 .word 0x20000001
1a44: 41008000 .word 0x41008000
1a48: 0000dc3d .word 0x0000dc3d
1a4c: 0000db8d .word 0x0000db8d
1a50: 0000dbb1 .word 0x0000dbb1
1a54: 000016dd .word 0x000016dd
1a58: 0000171d .word 0x0000171d
1a5c: 000011f9 .word 0x000011f9
1a60: 41008080 .word 0x41008080
00001a64 <lv_debug_check_null>:
bool lv_debug_check_null(const void * p)
{
if(p) return true;
return false;
}
1a64: 3800 subs r0, #0
1a66: bf18 it ne
1a68: 2001 movne r0, #1
1a6a: 4770 bx lr
00001a6c <lv_debug_log_error>:
LV_LOG_WARN("lv_debug_check_str: string is longer than LV_DEBUG_STR_MAX_LENGTH");
return false;
}
void lv_debug_log_error(const char * msg, uint64_t value)
{
1a6c: b5f0 push {r4, r5, r6, r7, lr}
static const char hex[] = "0123456789ABCDEF";
size_t msg_len = strlen(msg);
1a6e: 4b1b ldr r3, [pc, #108] ; (1adc <lv_debug_log_error+0x70>)
{
1a70: b0c3 sub sp, #268 ; 0x10c
1a72: 4607 mov r7, r0
1a74: 4616 mov r6, r2
size_t msg_len = strlen(msg);
1a76: 4798 blx r3
uint32_t value_len = sizeof(unsigned long int);
if(msg_len < 230) {
1a78: 28e5 cmp r0, #229 ; 0xe5
size_t msg_len = strlen(msg);
1a7a: 4604 mov r4, r0
if(msg_len < 230) {
1a7c: d829 bhi.n 1ad2 <lv_debug_log_error+0x66>
char buf[255];
char * bufp = buf;
/*Add the function name*/
_lv_memcpy(bufp, msg, msg_len);
1a7e: ad02 add r5, sp, #8
1a80: 4602 mov r2, r0
1a82: 4b17 ldr r3, [pc, #92] ; (1ae0 <lv_debug_log_error+0x74>)
1a84: 4639 mov r1, r7
1a86: 4628 mov r0, r5
1a88: 4798 blx r3
bufp += msg_len;
1a8a: 192b adds r3, r5, r4
/*Add value in hey*/
*bufp = ' ';
1a8c: 2220 movs r2, #32
1a8e: 552a strb r2, [r5, r4]
bufp ++;
*bufp = '(';
1a90: 2228 movs r2, #40 ; 0x28
1a92: 705a strb r2, [r3, #1]
bufp ++;
*bufp = '0';
1a94: 2230 movs r2, #48 ; 0x30
1a96: 709a strb r2, [r3, #2]
int8_t i;
for(i = value_len * 2 - 1; i >= 0; i--) {
uint8_t x = (unsigned long int)((unsigned long int)value >> (i * 4)) & 0xF;
*bufp = hex[x];
1a98: 4c12 ldr r4, [pc, #72] ; (1ae4 <lv_debug_log_error+0x78>)
*bufp = 'x';
1a9a: 2278 movs r2, #120 ; 0x78
1a9c: 70da strb r2, [r3, #3]
bufp ++;
1a9e: 1d18 adds r0, r3, #4
1aa0: 221c movs r2, #28
uint8_t x = (unsigned long int)((unsigned long int)value >> (i * 4)) & 0xF;
1aa2: fa26 f102 lsr.w r1, r6, r2
*bufp = hex[x];
1aa6: f001 010f and.w r1, r1, #15
1aaa: 4421 add r1, r4
for(i = value_len * 2 - 1; i >= 0; i--) {
1aac: 3a04 subs r2, #4
*bufp = hex[x];
1aae: 7cc9 ldrb r1, [r1, #19]
1ab0: f800 1b01 strb.w r1, [r0], #1
for(i = value_len * 2 - 1; i >= 0; i--) {
1ab4: 1d11 adds r1, r2, #4
1ab6: d1f4 bne.n 1aa2 <lv_debug_log_error+0x36>
bufp++;
}
*bufp = ')';
1ab8: 2229 movs r2, #41 ; 0x29
1aba: 731a strb r2, [r3, #12]
bufp ++;
*bufp = '\0';
1abc: 2200 movs r2, #0
1abe: 735a strb r2, [r3, #13]
LV_LOG_ERROR(buf);
1ac0: 4b09 ldr r3, [pc, #36] ; (1ae8 <lv_debug_log_error+0x7c>)
1ac2: 9500 str r5, [sp, #0]
1ac4: 22bc movs r2, #188 ; 0xbc
}
else {
LV_LOG_ERROR(msg);
1ac6: 4909 ldr r1, [pc, #36] ; (1aec <lv_debug_log_error+0x80>)
1ac8: 4c09 ldr r4, [pc, #36] ; (1af0 <lv_debug_log_error+0x84>)
1aca: 2003 movs r0, #3
1acc: 47a0 blx r4
}
}
1ace: b043 add sp, #268 ; 0x10c
1ad0: bdf0 pop {r4, r5, r6, r7, pc}
LV_LOG_ERROR(msg);
1ad2: 4b05 ldr r3, [pc, #20] ; (1ae8 <lv_debug_log_error+0x7c>)
1ad4: 9700 str r7, [sp, #0]
1ad6: 22bf movs r2, #191 ; 0xbf
1ad8: e7f5 b.n 1ac6 <lv_debug_log_error+0x5a>
1ada: bf00 nop
1adc: 00017481 .word 0x00017481
1ae0: 0000eec1 .word 0x0000eec1
1ae4: 0002659d .word 0x0002659d
1ae8: 000265c1 .word 0x000265c1
1aec: 00026493 .word 0x00026493
1af0: 0000eb79 .word 0x0000eb79
00001af4 <lv_disp_get_scr_act>:
* @param disp pointer to display which active screen should be get. (NULL to use the default
* screen)
* @return pointer to the active screen object (loaded by 'lv_scr_load()')
*/
lv_obj_t * lv_disp_get_scr_act(lv_disp_t * disp)
{
1af4: b537 push {r0, r1, r2, r4, r5, lr}
if(!disp) disp = lv_disp_get_default();
1af6: 4604 mov r4, r0
1af8: b970 cbnz r0, 1b18 <lv_disp_get_scr_act+0x24>
1afa: 4b08 ldr r3, [pc, #32] ; (1b1c <lv_disp_get_scr_act+0x28>)
1afc: 4798 blx r3
if(!disp) {
1afe: 4604 mov r4, r0
1b00: b950 cbnz r0, 1b18 <lv_disp_get_scr_act+0x24>
LV_LOG_WARN("lv_scr_act: no display registered to get its act. screen");
1b02: 4b07 ldr r3, [pc, #28] ; (1b20 <lv_disp_get_scr_act+0x2c>)
1b04: 9300 str r3, [sp, #0]
1b06: 4907 ldr r1, [pc, #28] ; (1b24 <lv_disp_get_scr_act+0x30>)
1b08: 4b07 ldr r3, [pc, #28] ; (1b28 <lv_disp_get_scr_act+0x34>)
1b0a: 4d08 ldr r5, [pc, #32] ; (1b2c <lv_disp_get_scr_act+0x38>)
1b0c: 222e movs r2, #46 ; 0x2e
1b0e: 2002 movs r0, #2
1b10: 47a8 blx r5
return NULL;
}
return disp->act_scr;
}
1b12: 4620 mov r0, r4
1b14: b003 add sp, #12
1b16: bd30 pop {r4, r5, pc}
return disp->act_scr;
1b18: 6be4 ldr r4, [r4, #60] ; 0x3c
1b1a: e7fa b.n 1b12 <lv_disp_get_scr_act+0x1e>
1b1c: 0000db81 .word 0x0000db81
1b20: 00026604 .word 0x00026604
1b24: 000265d4 .word 0x000265d4
1b28: 00026774 .word 0x00026774
1b2c: 0000eb79 .word 0x0000eb79
00001b30 <lv_disp_get_layer_top>:
* Return with the top layer. (Same on every screen and it is above the normal screen layer)
* @param disp pointer to display which top layer should be get. (NULL to use the default screen)
* @return pointer to the top layer object (transparent screen sized lv_obj)
*/
lv_obj_t * lv_disp_get_layer_top(lv_disp_t * disp)
{
1b30: b537 push {r0, r1, r2, r4, r5, lr}
if(!disp) disp = lv_disp_get_default();
1b32: 4604 mov r4, r0
1b34: b970 cbnz r0, 1b54 <lv_disp_get_layer_top+0x24>
1b36: 4b08 ldr r3, [pc, #32] ; (1b58 <lv_disp_get_layer_top+0x28>)
1b38: 4798 blx r3
if(!disp) {
1b3a: 4604 mov r4, r0
1b3c: b950 cbnz r0, 1b54 <lv_disp_get_layer_top+0x24>
LV_LOG_WARN("lv_layer_top: no display registered to get its top layer");
1b3e: 4b07 ldr r3, [pc, #28] ; (1b5c <lv_disp_get_layer_top+0x2c>)
1b40: 9300 str r3, [sp, #0]
1b42: 4907 ldr r1, [pc, #28] ; (1b60 <lv_disp_get_layer_top+0x30>)
1b44: 4b07 ldr r3, [pc, #28] ; (1b64 <lv_disp_get_layer_top+0x34>)
1b46: 4d08 ldr r5, [pc, #32] ; (1b68 <lv_disp_get_layer_top+0x38>)
1b48: 224b movs r2, #75 ; 0x4b
1b4a: 2002 movs r0, #2
1b4c: 47a8 blx r5
return NULL;
}
return disp->top_layer;
}
1b4e: 4620 mov r0, r4
1b50: b003 add sp, #12
1b52: bd30 pop {r4, r5, pc}
return disp->top_layer;
1b54: 6c24 ldr r4, [r4, #64] ; 0x40
1b56: e7fa b.n 1b4e <lv_disp_get_layer_top+0x1e>
1b58: 0000db81 .word 0x0000db81
1b5c: 0002663d .word 0x0002663d
1b60: 000265d4 .word 0x000265d4
1b64: 00026788 .word 0x00026788
1b68: 0000eb79 .word 0x0000eb79
00001b6c <lv_disp_get_layer_sys>:
* layer)
* @param disp pointer to display which sys. layer should be get. (NULL to use the default screen)
* @return pointer to the sys layer object (transparent screen sized lv_obj)
*/
lv_obj_t * lv_disp_get_layer_sys(lv_disp_t * disp)
{
1b6c: b537 push {r0, r1, r2, r4, r5, lr}
if(!disp) disp = lv_disp_get_default();
1b6e: 4604 mov r4, r0
1b70: b970 cbnz r0, 1b90 <lv_disp_get_layer_sys+0x24>
1b72: 4b08 ldr r3, [pc, #32] ; (1b94 <lv_disp_get_layer_sys+0x28>)
1b74: 4798 blx r3
if(!disp) {
1b76: 4604 mov r4, r0
1b78: b950 cbnz r0, 1b90 <lv_disp_get_layer_sys+0x24>
LV_LOG_WARN("lv_layer_sys: no display registered to get its sys. layer");
1b7a: 4b07 ldr r3, [pc, #28] ; (1b98 <lv_disp_get_layer_sys+0x2c>)
1b7c: 9300 str r3, [sp, #0]
1b7e: 4907 ldr r1, [pc, #28] ; (1b9c <lv_disp_get_layer_sys+0x30>)
1b80: 4b07 ldr r3, [pc, #28] ; (1ba0 <lv_disp_get_layer_sys+0x34>)
1b82: 4d08 ldr r5, [pc, #32] ; (1ba4 <lv_disp_get_layer_sys+0x38>)
1b84: 225c movs r2, #92 ; 0x5c
1b86: 2002 movs r0, #2
1b88: 47a8 blx r5
return NULL;
}
return disp->sys_layer;
}
1b8a: 4620 mov r0, r4
1b8c: b003 add sp, #12
1b8e: bd30 pop {r4, r5, pc}
return disp->sys_layer;
1b90: 6c64 ldr r4, [r4, #68] ; 0x44
1b92: e7fa b.n 1b8a <lv_disp_get_layer_sys+0x1e>
1b94: 0000db81 .word 0x0000db81
1b98: 00026676 .word 0x00026676
1b9c: 000265d4 .word 0x000265d4
1ba0: 0002679e .word 0x0002679e
1ba4: 0000eb79 .word 0x0000eb79
00001ba8 <obj_to_foreground>:
if(group->focus_cb) group->focus_cb(group);
}
static void obj_to_foreground(lv_obj_t * obj)
{
1ba8: b570 push {r4, r5, r6, lr}
/*Search for 'top' attribute*/
lv_obj_t * i = obj;
lv_obj_t * last_top = NULL;
while(i != NULL) {
if(i->top != 0) last_top = i;
i = lv_obj_get_parent(i);
1baa: 4d09 ldr r5, [pc, #36] ; (1bd0 <obj_to_foreground+0x28>)
lv_obj_t * last_top = NULL;
1bac: 2400 movs r4, #0
while(i != NULL) {
1bae: b928 cbnz r0, 1bbc <obj_to_foreground+0x14>
}
if(last_top != NULL) {
1bb0: b164 cbz r4, 1bcc <obj_to_foreground+0x24>
/*Move the last_top object to the foreground*/
lv_obj_move_foreground(last_top);
1bb2: 4620 mov r0, r4
1bb4: 4b07 ldr r3, [pc, #28] ; (1bd4 <obj_to_foreground+0x2c>)
}
}
1bb6: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_move_foreground(last_top);
1bba: 4718 bx r3
if(i->top != 0) last_top = i;
1bbc: f890 3034 ldrb.w r3, [r0, #52] ; 0x34
1bc0: f013 0f20 tst.w r3, #32
1bc4: bf18 it ne
1bc6: 4604 movne r4, r0
i = lv_obj_get_parent(i);
1bc8: 47a8 blx r5
1bca: e7f0 b.n 1bae <obj_to_foreground+0x6>
}
1bcc: bd70 pop {r4, r5, r6, pc}
1bce: bf00 nop
1bd0: 000023a9 .word 0x000023a9
1bd4: 00002a95 .word 0x00002a95
00001bd8 <focus_next_core>:
{
1bd8: e92d 47f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
if(group->frozen) return;
1bdc: 7d06 ldrb r6, [r0, #20]
1bde: f016 0601 ands.w r6, r6, #1
{
1be2: 4605 mov r5, r0
1be4: 4688 mov r8, r1
1be6: 4617 mov r7, r2
if(group->frozen) return;
1be8: d15c bne.n 1ca4 <focus_next_core+0xcc>
lv_obj_t ** obj_next = group->obj_focus;
1bea: 68c4 ldr r4, [r0, #12]
if(!lv_obj_get_hidden(*obj_next)) break;
1bec: f8df a0c8 ldr.w sl, [pc, #200] ; 1cb8 <focus_next_core+0xe0>
bool can_begin = true;
1bf0: f04f 0901 mov.w r9, #1
if(obj_next == NULL) {
1bf4: 2c00 cmp r4, #0
1bf6: d14c bne.n 1c92 <focus_next_core+0xba>
if(group->wrap || obj_sentinel == NULL) {
1bf8: 7d2b ldrb r3, [r5, #20]
1bfa: 06db lsls r3, r3, #27
1bfc: d401 bmi.n 1c02 <focus_next_core+0x2a>
1bfe: 2e00 cmp r6, #0
1c00: d150 bne.n 1ca4 <focus_next_core+0xcc>
if(!can_begin) return;
1c02: f1b9 0f00 cmp.w r9, #0
1c06: d04d beq.n 1ca4 <focus_next_core+0xcc>
obj_next = begin(&group->obj_ll);
1c08: 4628 mov r0, r5
1c0a: 47c0 blx r8
1c0c: 4604 mov r4, r0
if(obj_sentinel == NULL) {
1c0e: 2e00 cmp r6, #0
1c10: d13a bne.n 1c88 <focus_next_core+0xb0>
if(obj_sentinel == NULL) return; /*Group is empty*/
1c12: 2800 cmp r0, #0
1c14: d046 beq.n 1ca4 <focus_next_core+0xcc>
1c16: 4606 mov r6, r0
can_begin = false;
1c18: f04f 0900 mov.w r9, #0
if(!lv_obj_get_hidden(*obj_next)) break;
1c1c: 6820 ldr r0, [r4, #0]
1c1e: 47d0 blx sl
1c20: 4602 mov r2, r0
1c22: 2800 cmp r0, #0
1c24: d1e6 bne.n 1bf4 <focus_next_core+0x1c>
if(obj_next == group->obj_focus) return; /*There's only one visible object and it's already focused*/
1c26: 68eb ldr r3, [r5, #12]
1c28: 42a3 cmp r3, r4
1c2a: d03b beq.n 1ca4 <focus_next_core+0xcc>
if(group->obj_focus) {
1c2c: 4e1f ldr r6, [pc, #124] ; (1cac <focus_next_core+0xd4>)
1c2e: b17b cbz r3, 1c50 <focus_next_core+0x78>
(*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_DEFOCUS, NULL);
1c30: 6818 ldr r0, [r3, #0]
1c32: 9201 str r2, [sp, #4]
1c34: 69c3 ldr r3, [r0, #28]
1c36: 2117 movs r1, #23
1c38: 4798 blx r3
lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_DEFOCUSED, NULL);
1c3a: 68eb ldr r3, [r5, #12]
1c3c: 9a01 ldr r2, [sp, #4]
1c3e: 6818 ldr r0, [r3, #0]
1c40: 210e movs r1, #14
1c42: 47b0 blx r6
if(res != LV_RES_OK) return;
1c44: 2801 cmp r0, #1
1c46: d12d bne.n 1ca4 <focus_next_core+0xcc>
lv_obj_invalidate(*group->obj_focus);
1c48: 68eb ldr r3, [r5, #12]
1c4a: 6818 ldr r0, [r3, #0]
1c4c: 4b18 ldr r3, [pc, #96] ; (1cb0 <focus_next_core+0xd8>)
1c4e: 4798 blx r3
(*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_FOCUS, NULL);
1c50: 6820 ldr r0, [r4, #0]
group->obj_focus = obj_next;
1c52: 60ec str r4, [r5, #12]
(*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_FOCUS, NULL);
1c54: 69c3 ldr r3, [r0, #28]
1c56: 2200 movs r2, #0
1c58: 2116 movs r1, #22
1c5a: 4798 blx r3
lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_FOCUSED, NULL);
1c5c: 68eb ldr r3, [r5, #12]
1c5e: 2200 movs r2, #0
1c60: 6818 ldr r0, [r3, #0]
1c62: 210d movs r1, #13
1c64: 47b0 blx r6
if(res != LV_RES_OK) return;
1c66: 2801 cmp r0, #1
1c68: d11c bne.n 1ca4 <focus_next_core+0xcc>
obj_to_foreground(*group->obj_focus);
1c6a: 68eb ldr r3, [r5, #12]
1c6c: 6818 ldr r0, [r3, #0]
1c6e: 4b11 ldr r3, [pc, #68] ; (1cb4 <focus_next_core+0xdc>)
1c70: 4798 blx r3
lv_obj_invalidate(*group->obj_focus);
1c72: 68eb ldr r3, [r5, #12]
1c74: 6818 ldr r0, [r3, #0]
1c76: 4b0e ldr r3, [pc, #56] ; (1cb0 <focus_next_core+0xd8>)
1c78: 4798 blx r3
if(group->focus_cb) group->focus_cb(group);
1c7a: 692b ldr r3, [r5, #16]
1c7c: b193 cbz r3, 1ca4 <focus_next_core+0xcc>
1c7e: 4628 mov r0, r5
}
1c80: b002 add sp, #8
1c82: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
if(group->focus_cb) group->focus_cb(group);
1c86: 4718 bx r3
can_begin = false;
1c88: f04f 0900 mov.w r9, #0
if(obj_next == NULL) continue;
1c8c: 2c00 cmp r4, #0
1c8e: d1c5 bne.n 1c1c <focus_next_core+0x44>
1c90: e7b2 b.n 1bf8 <focus_next_core+0x20>
obj_next = move(&group->obj_ll, obj_next);
1c92: 4621 mov r1, r4
1c94: 4628 mov r0, r5
1c96: 47b8 blx r7
if(obj_sentinel == NULL) {
1c98: 2e00 cmp r6, #0
1c9a: bf08 it eq
1c9c: 4626 moveq r6, r4
if(obj_next == obj_sentinel) return;
1c9e: 42b0 cmp r0, r6
obj_next = move(&group->obj_ll, obj_next);
1ca0: 4604 mov r4, r0
if(obj_next == obj_sentinel) return;
1ca2: d1f3 bne.n 1c8c <focus_next_core+0xb4>
}
1ca4: b002 add sp, #8
1ca6: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
1caa: bf00 nop
1cac: 000021fd .word 0x000021fd
1cb0: 00002a09 .word 0x00002a09
1cb4: 00001ba9 .word 0x00001ba9
1cb8: 000028a1 .word 0x000028a1
00001cbc <_lv_group_init>:
_lv_ll_init(&LV_GC_ROOT(_lv_group_ll), sizeof(lv_group_t));
1cbc: 4801 ldr r0, [pc, #4] ; (1cc4 <_lv_group_init+0x8>)
1cbe: 4b02 ldr r3, [pc, #8] ; (1cc8 <_lv_group_init+0xc>)
1cc0: 2118 movs r1, #24
1cc2: 4718 bx r3
1cc4: 20003618 .word 0x20003618
1cc8: 0000e889 .word 0x0000e889
00001ccc <lv_group_focus_next>:
focus_next_core(group, _lv_ll_get_head, _lv_ll_get_next);
1ccc: 4a01 ldr r2, [pc, #4] ; (1cd4 <lv_group_focus_next+0x8>)
1cce: 4902 ldr r1, [pc, #8] ; (1cd8 <lv_group_focus_next+0xc>)
1cd0: 4b02 ldr r3, [pc, #8] ; (1cdc <lv_group_focus_next+0x10>)
1cd2: 4718 bx r3
1cd4: 0000e939 .word 0x0000e939
1cd8: 0000e92d .word 0x0000e92d
1cdc: 00001bd9 .word 0x00001bd9
00001ce0 <lv_group_focus_prev>:
focus_next_core(group, _lv_ll_get_tail, _lv_ll_get_prev);
1ce0: 4a01 ldr r2, [pc, #4] ; (1ce8 <lv_group_focus_prev+0x8>)
1ce2: 4902 ldr r1, [pc, #8] ; (1cec <lv_group_focus_prev+0xc>)
1ce4: 4b02 ldr r3, [pc, #8] ; (1cf0 <lv_group_focus_prev+0x10>)
1ce6: 4718 bx r3
1ce8: 0000e959 .word 0x0000e959
1cec: 0000e933 .word 0x0000e933
1cf0: 00001bd9 .word 0x00001bd9
00001cf4 <lv_group_refocus>:
{
1cf4: b538 push {r3, r4, r5, lr}
uint8_t temp_wrap = g->wrap;
1cf6: 7d03 ldrb r3, [r0, #20]
1cf8: f3c3 1500 ubfx r5, r3, #4, #1
g->wrap = 1;
1cfc: f043 0310 orr.w r3, r3, #16
1d00: 7503 strb r3, [r0, #20]
{
1d02: 4604 mov r4, r0
if(g->refocus_policy == LV_GROUP_REFOCUS_POLICY_NEXT)
1d04: 071b lsls r3, r3, #28
lv_group_focus_next(g);
1d06: bf54 ite pl
1d08: 4b03 ldrpl r3, [pc, #12] ; (1d18 <lv_group_refocus+0x24>)
lv_group_focus_prev(g);
1d0a: 4b04 ldrmi r3, [pc, #16] ; (1d1c <lv_group_refocus+0x28>)
1d0c: 4798 blx r3
g->wrap = temp_wrap;
1d0e: 7d23 ldrb r3, [r4, #20]
1d10: f365 1304 bfi r3, r5, #4, #1
1d14: 7523 strb r3, [r4, #20]
}
1d16: bd38 pop {r3, r4, r5, pc}
1d18: 00001ccd .word 0x00001ccd
1d1c: 00001ce1 .word 0x00001ce1
00001d20 <lv_group_add_obj>:
{
1d20: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
1d24: 460d mov r5, r1
if(group == NULL) return;
1d26: 4604 mov r4, r0
1d28: 2800 cmp r0, #0
1d2a: d036 beq.n 1d9a <lv_group_add_obj+0x7a>
_LV_LL_READ(group->obj_ll, obj_i) {
1d2c: f8df 80c4 ldr.w r8, [pc, #196] ; 1df4 <lv_group_add_obj+0xd4>
1d30: 4e24 ldr r6, [pc, #144] ; (1dc4 <lv_group_add_obj+0xa4>)
1d32: 47c0 blx r8
1d34: bb30 cbnz r0, 1d84 <lv_group_add_obj+0x64>
if(obj->group_p) {
1d36: 6bab ldr r3, [r5, #56] ; 0x38
1d38: b173 cbz r3, 1d58 <lv_group_add_obj+0x38>
if(lv_obj_is_focused(obj)) {
1d3a: 4b23 ldr r3, [pc, #140] ; (1dc8 <lv_group_add_obj+0xa8>)
1d3c: 4628 mov r0, r5
1d3e: 4798 blx r3
1d40: b150 cbz r0, 1d58 <lv_group_add_obj+0x38>
lv_group_refocus(obj->group_p);
1d42: 6ba8 ldr r0, [r5, #56] ; 0x38
1d44: 4b21 ldr r3, [pc, #132] ; (1dcc <lv_group_add_obj+0xac>)
LV_LOG_INFO("lv_group_add_obj: assign object to an other group");
1d46: 4e22 ldr r6, [pc, #136] ; (1dd0 <lv_group_add_obj+0xb0>)
lv_group_refocus(obj->group_p);
1d48: 4798 blx r3
LV_LOG_INFO("lv_group_add_obj: assign object to an other group");
1d4a: 4b22 ldr r3, [pc, #136] ; (1dd4 <lv_group_add_obj+0xb4>)
1d4c: 9300 str r3, [sp, #0]
1d4e: 4922 ldr r1, [pc, #136] ; (1dd8 <lv_group_add_obj+0xb8>)
1d50: 4b22 ldr r3, [pc, #136] ; (1ddc <lv_group_add_obj+0xbc>)
1d52: 227f movs r2, #127 ; 0x7f
1d54: 2001 movs r0, #1
1d56: 47b0 blx r6
lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll);
1d58: 4b21 ldr r3, [pc, #132] ; (1de0 <lv_group_add_obj+0xc0>)
obj->group_p = group;
1d5a: 63ac str r4, [r5, #56] ; 0x38
lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll);
1d5c: 4620 mov r0, r4
1d5e: 4798 blx r3
LV_ASSERT_MEM(next);
1d60: 4b20 ldr r3, [pc, #128] ; (1de4 <lv_group_add_obj+0xc4>)
lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll);
1d62: 4606 mov r6, r0
LV_ASSERT_MEM(next);
1d64: 4798 blx r3
1d66: 4607 mov r7, r0
1d68: b9f0 cbnz r0, 1da8 <lv_group_add_obj+0x88>
1d6a: 4b1c ldr r3, [pc, #112] ; (1ddc <lv_group_add_obj+0xbc>)
1d6c: 491a ldr r1, [pc, #104] ; (1dd8 <lv_group_add_obj+0xb8>)
1d6e: 9300 str r3, [sp, #0]
1d70: 2285 movs r2, #133 ; 0x85
1d72: 2003 movs r0, #3
1d74: 4c16 ldr r4, [pc, #88] ; (1dd0 <lv_group_add_obj+0xb0>)
1d76: 47a0 blx r4
1d78: 481b ldr r0, [pc, #108] ; (1de8 <lv_group_add_obj+0xc8>)
1d7a: 491c ldr r1, [pc, #112] ; (1dec <lv_group_add_obj+0xcc>)
1d7c: 4632 mov r2, r6
1d7e: 463b mov r3, r7
1d80: 4788 blx r1
1d82: e7fe b.n 1d82 <lv_group_add_obj+0x62>
if((*obj_i) == obj) {
1d84: 6803 ldr r3, [r0, #0]
1d86: 42ab cmp r3, r5
1d88: d10a bne.n 1da0 <lv_group_add_obj+0x80>
LV_LOG_INFO("lv_group_add_obj: the object is already added to this group");
1d8a: 4b19 ldr r3, [pc, #100] ; (1df0 <lv_group_add_obj+0xd0>)
1d8c: 9300 str r3, [sp, #0]
1d8e: 4912 ldr r1, [pc, #72] ; (1dd8 <lv_group_add_obj+0xb8>)
1d90: 4b12 ldr r3, [pc, #72] ; (1ddc <lv_group_add_obj+0xbc>)
1d92: 4c0f ldr r4, [pc, #60] ; (1dd0 <lv_group_add_obj+0xb0>)
1d94: 2275 movs r2, #117 ; 0x75
1d96: 2001 movs r0, #1
1d98: 47a0 blx r4
}
1d9a: b002 add sp, #8
1d9c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
_LV_LL_READ(group->obj_ll, obj_i) {
1da0: 4601 mov r1, r0
1da2: 4620 mov r0, r4
1da4: 47b0 blx r6
1da6: e7c5 b.n 1d34 <lv_group_add_obj+0x14>
if(next == NULL) return;
1da8: 2e00 cmp r6, #0
1daa: d0f6 beq.n 1d9a <lv_group_add_obj+0x7a>
*next = obj;
1dac: 6035 str r5, [r6, #0]
if(_lv_ll_get_head(&group->obj_ll) == next) {
1dae: 4620 mov r0, r4
1db0: 47c0 blx r8
1db2: 4286 cmp r6, r0
1db4: d1f1 bne.n 1d9a <lv_group_add_obj+0x7a>
lv_group_refocus(group);
1db6: 4b05 ldr r3, [pc, #20] ; (1dcc <lv_group_add_obj+0xac>)
1db8: 4620 mov r0, r4
}
1dba: b002 add sp, #8
1dbc: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
lv_group_refocus(group);
1dc0: 4718 bx r3
1dc2: bf00 nop
1dc4: 0000e939 .word 0x0000e939
1dc8: 0000447d .word 0x0000447d
1dcc: 00001cf5 .word 0x00001cf5
1dd0: 0000eb79 .word 0x0000eb79
1dd4: 0002688c .word 0x0002688c
1dd8: 00026811 .word 0x00026811
1ddc: 000268ce .word 0x000268ce
1de0: 0000e8e5 .word 0x0000e8e5
1de4: 00001a65 .word 0x00001a65
1de8: 00026842 .word 0x00026842
1dec: 00001a6d .word 0x00001a6d
1df0: 00026850 .word 0x00026850
1df4: 0000e92d .word 0x0000e92d
00001df8 <lv_group_remove_obj>:
{
1df8: b5f8 push {r3, r4, r5, r6, r7, lr}
lv_group_t * g = obj->group_p;
1dfa: 6b84 ldr r4, [r0, #56] ; 0x38
{
1dfc: 4606 mov r6, r0
if(g == NULL) return;
1dfe: 2c00 cmp r4, #0
1e00: d033 beq.n 1e6a <lv_group_remove_obj+0x72>
if(g->obj_focus == NULL) return; /*Just to be sure (Not possible if there is at least one object in the group)*/
1e02: 68e3 ldr r3, [r4, #12]
1e04: 2b00 cmp r3, #0
1e06: d030 beq.n 1e6a <lv_group_remove_obj+0x72>
if(*g->obj_focus == obj) {
1e08: 681b ldr r3, [r3, #0]
1e0a: 4d1c ldr r5, [pc, #112] ; (1e7c <lv_group_remove_obj+0x84>)
1e0c: 4283 cmp r3, r0
1e0e: d11b bne.n 1e48 <lv_group_remove_obj+0x50>
if(g->frozen) g->frozen = 0;
1e10: 7d23 ldrb r3, [r4, #20]
1e12: 07da lsls r2, r3, #31
1e14: bf44 itt mi
1e16: f36f 0300 bfcmi r3, #0, #1
1e1a: 7523 strbmi r3, [r4, #20]
if(_lv_ll_get_head(&g->obj_ll) == g->obj_focus && _lv_ll_get_tail(&g->obj_ll) == g->obj_focus) {
1e1c: 4620 mov r0, r4
1e1e: 47a8 blx r5
1e20: 68e3 ldr r3, [r4, #12]
1e22: 4283 cmp r3, r0
1e24: d122 bne.n 1e6c <lv_group_remove_obj+0x74>
1e26: 4b16 ldr r3, [pc, #88] ; (1e80 <lv_group_remove_obj+0x88>)
1e28: 4620 mov r0, r4
1e2a: 4798 blx r3
1e2c: 68e3 ldr r3, [r4, #12]
1e2e: 4298 cmp r0, r3
1e30: d11c bne.n 1e6c <lv_group_remove_obj+0x74>
(*g->obj_focus)->signal_cb(*g->obj_focus, LV_SIGNAL_DEFOCUS, NULL);
1e32: 6800 ldr r0, [r0, #0]
1e34: 2200 movs r2, #0
1e36: 69c3 ldr r3, [r0, #28]
1e38: 2117 movs r1, #23
1e3a: 4798 blx r3
if(*g->obj_focus == obj) {
1e3c: 68e3 ldr r3, [r4, #12]
1e3e: 681b ldr r3, [r3, #0]
1e40: 42b3 cmp r3, r6
g->obj_focus = NULL;
1e42: bf04 itt eq
1e44: 2300 moveq r3, #0
1e46: 60e3 streq r3, [r4, #12]
_LV_LL_READ(g->obj_ll, i) {
1e48: 4620 mov r0, r4
1e4a: 47a8 blx r5
1e4c: 4f0d ldr r7, [pc, #52] ; (1e84 <lv_group_remove_obj+0x8c>)
1e4e: 4605 mov r5, r0
1e50: b15d cbz r5, 1e6a <lv_group_remove_obj+0x72>
if(*i == obj) {
1e52: 682b ldr r3, [r5, #0]
1e54: 42b3 cmp r3, r6
_lv_ll_remove(&g->obj_ll, i);
1e56: 4629 mov r1, r5
1e58: 4620 mov r0, r4
if(*i == obj) {
1e5a: d10b bne.n 1e74 <lv_group_remove_obj+0x7c>
_lv_ll_remove(&g->obj_ll, i);
1e5c: 4b0a ldr r3, [pc, #40] ; (1e88 <lv_group_remove_obj+0x90>)
1e5e: 4798 blx r3
lv_mem_free(i);
1e60: 4b0a ldr r3, [pc, #40] ; (1e8c <lv_group_remove_obj+0x94>)
1e62: 4628 mov r0, r5
1e64: 4798 blx r3
obj->group_p = NULL;
1e66: 2300 movs r3, #0
1e68: 63b3 str r3, [r6, #56] ; 0x38
}
1e6a: bdf8 pop {r3, r4, r5, r6, r7, pc}
lv_group_refocus(g);
1e6c: 4b08 ldr r3, [pc, #32] ; (1e90 <lv_group_remove_obj+0x98>)
1e6e: 4620 mov r0, r4
1e70: 4798 blx r3
1e72: e7e3 b.n 1e3c <lv_group_remove_obj+0x44>
_LV_LL_READ(g->obj_ll, i) {
1e74: 47b8 blx r7
1e76: 4605 mov r5, r0
1e78: e7ea b.n 1e50 <lv_group_remove_obj+0x58>
1e7a: bf00 nop
1e7c: 0000e92d .word 0x0000e92d
1e80: 0000e933 .word 0x0000e933
1e84: 0000e939 .word 0x0000e939
1e88: 0000e9f1 .word 0x0000e9f1
1e8c: 0000ed75 .word 0x0000ed75
1e90: 00001cf5 .word 0x00001cf5
00001e94 <lv_group_get_focused>:
if(!group) return NULL;
1e94: b110 cbz r0, 1e9c <lv_group_get_focused+0x8>
if(group->obj_focus == NULL) return NULL;
1e96: 68c0 ldr r0, [r0, #12]
1e98: b100 cbz r0, 1e9c <lv_group_get_focused+0x8>
return *group->obj_focus;
1e9a: 6800 ldr r0, [r0, #0]
}
1e9c: 4770 bx lr
00001e9e <lv_group_get_editing>:
if(!group) return false;
1e9e: b110 cbz r0, 1ea6 <lv_group_get_editing+0x8>
return group->editing ? true : false;
1ea0: 7d00 ldrb r0, [r0, #20]
1ea2: f3c0 0040 ubfx r0, r0, #1, #1
}
1ea6: 4770 bx lr
00001ea8 <lv_indev_reset.part.0>:
void lv_indev_reset(lv_indev_t * indev, lv_obj_t * obj)
1ea8: b5f8 push {r3, r4, r5, r6, r7, lr}
lv_indev_t * i = lv_indev_get_next(NULL);
1eaa: 4d0c ldr r5, [pc, #48] ; (1edc <lv_indev_reset.part.0+0x34>)
if(indev_act == i) indev_obj_act = NULL;
1eac: 4e0c ldr r6, [pc, #48] ; (1ee0 <lv_indev_reset.part.0+0x38>)
void lv_indev_reset(lv_indev_t * indev, lv_obj_t * obj)
1eae: 4604 mov r4, r0
lv_indev_t * i = lv_indev_get_next(NULL);
1eb0: 2000 movs r0, #0
1eb2: 47a8 blx r5
if(indev_act == i) indev_obj_act = NULL;
1eb4: 2700 movs r7, #0
while(i) {
1eb6: b900 cbnz r0, 1eba <lv_indev_reset.part.0+0x12>
}
1eb8: bdf8 pop {r3, r4, r5, r6, r7, pc}
i->proc.reset_query = 1;
1eba: f890 3050 ldrb.w r3, [r0, #80] ; 0x50
1ebe: f043 0302 orr.w r3, r3, #2
1ec2: f880 3050 strb.w r3, [r0, #80] ; 0x50
if(indev_act == i) indev_obj_act = NULL;
1ec6: 6873 ldr r3, [r6, #4]
1ec8: 4298 cmp r0, r3
1eca: bf08 it eq
1ecc: 6037 streq r7, [r6, #0]
if(obj == NULL || i->proc.types.pointer.last_pressed == obj) {
1ece: b114 cbz r4, 1ed6 <lv_indev_reset.part.0+0x2e>
1ed0: 6bc3 ldr r3, [r0, #60] ; 0x3c
1ed2: 429c cmp r4, r3
1ed4: d100 bne.n 1ed8 <lv_indev_reset.part.0+0x30>
i->proc.types.pointer.last_pressed = NULL;
1ed6: 63c7 str r7, [r0, #60] ; 0x3c
i = lv_indev_get_next(i);
1ed8: 47a8 blx r5
1eda: e7ec b.n 1eb6 <lv_indev_reset.part.0+0xe>
1edc: 0000dc9d .word 0x0000dc9d
1ee0: 200030bc .word 0x200030bc
00001ee4 <_lv_indev_init>:
if(indev) {
1ee4: 4b01 ldr r3, [pc, #4] ; (1eec <_lv_indev_init+0x8>)
1ee6: 2000 movs r0, #0
1ee8: 4718 bx r3
1eea: bf00 nop
1eec: 00001ea9 .word 0x00001ea9
00001ef0 <lv_indev_get_act>:
}
1ef0: 4b01 ldr r3, [pc, #4] ; (1ef8 <lv_indev_get_act+0x8>)
1ef2: 6858 ldr r0, [r3, #4]
1ef4: 4770 bx lr
1ef6: bf00 nop
1ef8: 200030bc .word 0x200030bc
00001efc <lv_indev_reset>:
if(indev) {
1efc: 4603 mov r3, r0
1efe: b190 cbz r0, 1f26 <lv_indev_reset+0x2a>
indev->proc.reset_query = 1;
1f00: f890 2050 ldrb.w r2, [r0, #80] ; 0x50
1f04: f042 0202 orr.w r2, r2, #2
1f08: f880 2050 strb.w r2, [r0, #80] ; 0x50
if(indev_act == indev) indev_obj_act = NULL;
1f0c: 4a08 ldr r2, [pc, #32] ; (1f30 <lv_indev_reset+0x34>)
1f0e: 6850 ldr r0, [r2, #4]
1f10: 4298 cmp r0, r3
1f12: bf04 itt eq
1f14: 2000 moveq r0, #0
1f16: 6010 streq r0, [r2, #0]
if(obj == NULL || indev->proc.types.pointer.last_pressed == obj) {
1f18: b111 cbz r1, 1f20 <lv_indev_reset+0x24>
1f1a: 6bda ldr r2, [r3, #60] ; 0x3c
1f1c: 428a cmp r2, r1
1f1e: d105 bne.n 1f2c <lv_indev_reset+0x30>
indev->proc.types.pointer.last_pressed = NULL;
1f20: 2200 movs r2, #0
1f22: 63da str r2, [r3, #60] ; 0x3c
1f24: 4770 bx lr
1f26: 4b03 ldr r3, [pc, #12] ; (1f34 <lv_indev_reset+0x38>)
1f28: 4608 mov r0, r1
1f2a: 4718 bx r3
}
1f2c: 4770 bx lr
1f2e: bf00 nop
1f30: 200030bc .word 0x200030bc
1f34: 00001ea9 .word 0x00001ea9
00001f38 <lv_indev_get_obj_act>:
}
1f38: 4b01 ldr r3, [pc, #4] ; (1f40 <lv_indev_get_obj_act+0x8>)
1f3a: 6818 ldr r0, [r3, #0]
1f3c: 4770 bx lr
1f3e: bf00 nop
1f40: 200030bc .word 0x200030bc
00001f44 <refresh_children_position>:
* @param obj pointer to an object which children will be repositioned
* @param x_diff x coordinate shift
* @param y_diff y coordinate shift
*/
static void refresh_children_position(lv_obj_t * obj, lv_coord_t x_diff, lv_coord_t y_diff)
{
1f44: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
lv_obj_t * i;
_LV_LL_READ(obj->child_ll, i) {
1f48: 1d05 adds r5, r0, #4
1f4a: 4b12 ldr r3, [pc, #72] ; (1f94 <refresh_children_position+0x50>)
1f4c: f8df 9048 ldr.w r9, [pc, #72] ; 1f98 <refresh_children_position+0x54>
1f50: 4628 mov r0, r5
{
1f52: 460e mov r6, r1
1f54: 4617 mov r7, r2
_LV_LL_READ(obj->child_ll, i) {
1f56: 4798 blx r3
i->coords.x1 += x_diff;
1f58: fa1f f886 uxth.w r8, r6
_LV_LL_READ(obj->child_ll, i) {
1f5c: 4604 mov r4, r0
i->coords.y1 += y_diff;
1f5e: fa1f fa87 uxth.w sl, r7
_LV_LL_READ(obj->child_ll, i) {
1f62: b90c cbnz r4, 1f68 <refresh_children_position+0x24>
i->coords.x2 += x_diff;
i->coords.y2 += y_diff;
refresh_children_position(i, x_diff, y_diff);
}
}
1f64: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
i->coords.x1 += x_diff;
1f68: 8a23 ldrh r3, [r4, #16]
1f6a: 4443 add r3, r8
1f6c: 8223 strh r3, [r4, #16]
i->coords.y1 += y_diff;
1f6e: 8a63 ldrh r3, [r4, #18]
1f70: 4453 add r3, sl
1f72: 8263 strh r3, [r4, #18]
i->coords.x2 += x_diff;
1f74: 8aa3 ldrh r3, [r4, #20]
1f76: 4443 add r3, r8
1f78: 82a3 strh r3, [r4, #20]
i->coords.y2 += y_diff;
1f7a: 8ae3 ldrh r3, [r4, #22]
1f7c: 4453 add r3, sl
1f7e: 82e3 strh r3, [r4, #22]
refresh_children_position(i, x_diff, y_diff);
1f80: 4620 mov r0, r4
1f82: 463a mov r2, r7
1f84: 4631 mov r1, r6
1f86: f7ff ffdd bl 1f44 <refresh_children_position>
_LV_LL_READ(obj->child_ll, i) {
1f8a: 4621 mov r1, r4
1f8c: 4628 mov r0, r5
1f8e: 47c8 blx r9
1f90: 4604 mov r4, r0
1f92: e7e6 b.n 1f62 <refresh_children_position+0x1e>
1f94: 0000e92d .word 0x0000e92d
1f98: 0000e939 .word 0x0000e939
00001f9c <lv_area_copy>:
LV_ATTRIBUTE_FAST_MEM static inline void * _lv_memcpy_small(void * dst, const void * src, size_t len)
{
uint8_t * d8 = (uint8_t *)dst;
const uint8_t * s8 = (const uint8_t *)src;
while(len) {
1f9c: 3901 subs r1, #1
1f9e: f100 0308 add.w r3, r0, #8
*d8 = *s8;
1fa2: f811 2f01 ldrb.w r2, [r1, #1]!
1fa6: f800 2b01 strb.w r2, [r0], #1
while(len) {
1faa: 4298 cmp r0, r3
1fac: d1f9 bne.n 1fa2 <lv_area_copy+0x6>
* @param src pointer to the source area
*/
inline static void lv_area_copy(lv_area_t * dest, const lv_area_t * src)
{
_lv_memcpy_small(dest, src, sizeof(lv_area_t));
}
1fae: 4770 bx lr
00001fb0 <lv_init>:
{
1fb0: b5f0 push {r4, r5, r6, r7, lr}
if(lv_initialized) {
1fb2: 4e20 ldr r6, [pc, #128] ; (2034 <lv_init+0x84>)
1fb4: 4d20 ldr r5, [pc, #128] ; (2038 <lv_init+0x88>)
1fb6: 7833 ldrb r3, [r6, #0]
{
1fb8: b085 sub sp, #20
if(lv_initialized) {
1fba: b143 cbz r3, 1fce <lv_init+0x1e>
LV_LOG_WARN("lv_init: already inited");
1fbc: 4b1f ldr r3, [pc, #124] ; (203c <lv_init+0x8c>)
1fbe: 9300 str r3, [sp, #0]
1fc0: 491f ldr r1, [pc, #124] ; (2040 <lv_init+0x90>)
1fc2: 4b20 ldr r3, [pc, #128] ; (2044 <lv_init+0x94>)
1fc4: 2278 movs r2, #120 ; 0x78
1fc6: 2002 movs r0, #2
LV_LOG_INFO("lv_init ready");
1fc8: 47a8 blx r5
}
1fca: b005 add sp, #20
1fcc: bdf0 pop {r4, r5, r6, r7, pc}
_lv_mem_init();
1fce: 4b1e ldr r3, [pc, #120] ; (2048 <lv_init+0x98>)
_lv_ll_init(&LV_GC_ROOT(_lv_obj_style_trans_ll), sizeof(lv_style_trans_t));
1fd0: 4c1e ldr r4, [pc, #120] ; (204c <lv_init+0x9c>)
lv_theme_t * th = LV_THEME_DEFAULT_INIT(LV_THEME_DEFAULT_COLOR_PRIMARY, LV_THEME_DEFAULT_COLOR_SECONDARY,
1fd2: 4f1f ldr r7, [pc, #124] ; (2050 <lv_init+0xa0>)
_lv_mem_init();
1fd4: 4798 blx r3
_lv_task_core_init();
1fd6: 4b1f ldr r3, [pc, #124] ; (2054 <lv_init+0xa4>)
1fd8: 4798 blx r3
_lv_fs_init();
1fda: 4b1f ldr r3, [pc, #124] ; (2058 <lv_init+0xa8>)
1fdc: 4798 blx r3
_lv_anim_core_init();
1fde: 4b1f ldr r3, [pc, #124] ; (205c <lv_init+0xac>)
1fe0: 4798 blx r3
_lv_group_init();
1fe2: 4b1f ldr r3, [pc, #124] ; (2060 <lv_init+0xb0>)
1fe4: 4798 blx r3
_lv_ll_init(&LV_GC_ROOT(_lv_obj_style_trans_ll), sizeof(lv_style_trans_t));
1fe6: 481f ldr r0, [pc, #124] ; (2064 <lv_init+0xb4>)
1fe8: 2110 movs r1, #16
1fea: 47a0 blx r4
lv_theme_t * th = LV_THEME_DEFAULT_INIT(LV_THEME_DEFAULT_COLOR_PRIMARY, LV_THEME_DEFAULT_COLOR_SECONDARY,
1fec: 4b1e ldr r3, [pc, #120] ; (2068 <lv_init+0xb8>)
1fee: 9300 str r3, [sp, #0]
1ff0: 2202 movs r2, #2
1ff2: f04f 011f mov.w r1, #31
1ff6: e9cd 3301 strd r3, r3, [sp, #4]
1ffa: f64f 0000 movw r0, #63488 ; 0xf800
1ffe: 47b8 blx r7
lv_theme_set_act(th);
2000: 4b1a ldr r3, [pc, #104] ; (206c <lv_init+0xbc>)
2002: 4798 blx r3
_lv_refr_init();
2004: 4b1a ldr r3, [pc, #104] ; (2070 <lv_init+0xc0>)
2006: 4798 blx r3
_lv_ll_init(&LV_GC_ROOT(_lv_disp_ll), sizeof(lv_disp_t));
2008: 481a ldr r0, [pc, #104] ; (2074 <lv_init+0xc4>)
200a: f44f 71b8 mov.w r1, #368 ; 0x170
200e: 47a0 blx r4
_lv_ll_init(&LV_GC_ROOT(_lv_indev_ll), sizeof(lv_indev_t));
2010: 2160 movs r1, #96 ; 0x60
2012: 4819 ldr r0, [pc, #100] ; (2078 <lv_init+0xc8>)
2014: 47a0 blx r4
_lv_indev_init();
2016: 4b19 ldr r3, [pc, #100] ; (207c <lv_init+0xcc>)
2018: 4798 blx r3
_lv_img_decoder_init();
201a: 4b19 ldr r3, [pc, #100] ; (2080 <lv_init+0xd0>)
201c: 4798 blx r3
lv_img_cache_set_size(LV_IMG_CACHE_DEF_SIZE);
201e: 4b19 ldr r3, [pc, #100] ; (2084 <lv_init+0xd4>)
2020: 2001 movs r0, #1
2022: 4798 blx r3
LV_LOG_INFO("lv_init ready");
2024: 4b18 ldr r3, [pc, #96] ; (2088 <lv_init+0xd8>)
2026: 9300 str r3, [sp, #0]
lv_initialized = true;
2028: 2001 movs r0, #1
LV_LOG_INFO("lv_init ready");
202a: 4b06 ldr r3, [pc, #24] ; (2044 <lv_init+0x94>)
202c: 4904 ldr r1, [pc, #16] ; (2040 <lv_init+0x90>)
lv_initialized = true;
202e: 7030 strb r0, [r6, #0]
LV_LOG_INFO("lv_init ready");
2030: 22a2 movs r2, #162 ; 0xa2
2032: e7c9 b.n 1fc8 <lv_init+0x18>
2034: 200030c4 .word 0x200030c4
2038: 0000eb79 .word 0x0000eb79
203c: 0002690e .word 0x0002690e
2040: 000268df .word 0x000268df
2044: 00026ae6 .word 0x00026ae6
2048: 0000eca5 .word 0x0000eca5
204c: 0000e889 .word 0x0000e889
2050: 00012799 .word 0x00012799
2054: 0000fac1 .word 0x0000fac1
2058: 0000e65d .word 0x0000e65d
205c: 0000deb5 .word 0x0000deb5
2060: 00001cbd .word 0x00001cbd
2064: 20003630 .word 0x20003630
2068: 20000004 .word 0x20000004
206c: 0001055d .word 0x0001055d
2070: 0000518d .word 0x0000518d
2074: 200035dc .word 0x200035dc
2078: 200035e8 .word 0x200035e8
207c: 00001ee5 .word 0x00001ee5
2080: 0000d359 .word 0x0000d359
2084: 0000c92d .word 0x0000c92d
2088: 00026926 .word 0x00026926
0000208c <lv_obj_set_adv_hittest>:
{
208c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
208e: 4b0e ldr r3, [pc, #56] ; (20c8 <lv_obj_set_adv_hittest+0x3c>)
{
2090: 4604 mov r4, r0
2092: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2094: 4798 blx r3
2096: 4605 mov r5, r0
2098: b968 cbnz r0, 20b6 <lv_obj_set_adv_hittest+0x2a>
209a: 4b0c ldr r3, [pc, #48] ; (20cc <lv_obj_set_adv_hittest+0x40>)
209c: 490c ldr r1, [pc, #48] ; (20d0 <lv_obj_set_adv_hittest+0x44>)
209e: 9300 str r3, [sp, #0]
20a0: f240 5294 movw r2, #1428 ; 0x594
20a4: 2003 movs r0, #3
20a6: 4e0b ldr r6, [pc, #44] ; (20d4 <lv_obj_set_adv_hittest+0x48>)
20a8: 47b0 blx r6
20aa: 480b ldr r0, [pc, #44] ; (20d8 <lv_obj_set_adv_hittest+0x4c>)
20ac: 490b ldr r1, [pc, #44] ; (20dc <lv_obj_set_adv_hittest+0x50>)
20ae: 4622 mov r2, r4
20b0: 462b mov r3, r5
20b2: 4788 blx r1
20b4: e7fe b.n 20b4 <lv_obj_set_adv_hittest+0x28>
obj->adv_hittest = en == false ? 0 : 1;
20b6: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
20ba: f366 13c7 bfi r3, r6, #7, #1
20be: f884 3034 strb.w r3, [r4, #52] ; 0x34
}
20c2: b002 add sp, #8
20c4: bd70 pop {r4, r5, r6, pc}
20c6: bf00 nop
20c8: 00001a65 .word 0x00001a65
20cc: 00026b3b .word 0x00026b3b
20d0: 000268df .word 0x000268df
20d4: 0000eb79 .word 0x0000eb79
20d8: 00026943 .word 0x00026943
20dc: 00001a6d .word 0x00001a6d
000020e0 <lv_obj_set_click>:
{
20e0: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
20e2: 4b0e ldr r3, [pc, #56] ; (211c <lv_obj_set_click+0x3c>)
{
20e4: 4604 mov r4, r0
20e6: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
20e8: 4798 blx r3
20ea: 4605 mov r5, r0
20ec: b968 cbnz r0, 210a <lv_obj_set_click+0x2a>
20ee: 4b0c ldr r3, [pc, #48] ; (2120 <lv_obj_set_click+0x40>)
20f0: 490c ldr r1, [pc, #48] ; (2124 <lv_obj_set_click+0x44>)
20f2: 9300 str r3, [sp, #0]
20f4: f44f 62b4 mov.w r2, #1440 ; 0x5a0
20f8: 2003 movs r0, #3
20fa: 4e0b ldr r6, [pc, #44] ; (2128 <lv_obj_set_click+0x48>)
20fc: 47b0 blx r6
20fe: 480b ldr r0, [pc, #44] ; (212c <lv_obj_set_click+0x4c>)
2100: 490b ldr r1, [pc, #44] ; (2130 <lv_obj_set_click+0x50>)
2102: 4622 mov r2, r4
2104: 462b mov r3, r5
2106: 4788 blx r1
2108: e7fe b.n 2108 <lv_obj_set_click+0x28>
obj->click = (en == true ? 1 : 0);
210a: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
210e: f366 0300 bfi r3, r6, #0, #1
2112: f884 3034 strb.w r3, [r4, #52] ; 0x34
}
2116: b002 add sp, #8
2118: bd70 pop {r4, r5, r6, pc}
211a: bf00 nop
211c: 00001a65 .word 0x00001a65
2120: 00026b52 .word 0x00026b52
2124: 000268df .word 0x000268df
2128: 0000eb79 .word 0x0000eb79
212c: 00026943 .word 0x00026943
2130: 00001a6d .word 0x00001a6d
00002134 <lv_event_send_func>:
{
2134: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
2138: 4680 mov r8, r0
213a: b087 sub sp, #28
213c: 4616 mov r6, r2
213e: 461f mov r7, r3
if(obj != NULL) {
2140: 460c mov r4, r1
2142: b191 cbz r1, 216a <lv_event_send_func+0x36>
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2144: 4b24 ldr r3, [pc, #144] ; (21d8 <lv_event_send_func+0xa4>)
2146: 4608 mov r0, r1
2148: 4798 blx r3
214a: 4605 mov r5, r0
214c: b968 cbnz r0, 216a <lv_event_send_func+0x36>
214e: 4b23 ldr r3, [pc, #140] ; (21dc <lv_event_send_func+0xa8>)
2150: 4923 ldr r1, [pc, #140] ; (21e0 <lv_event_send_func+0xac>)
2152: 9300 str r3, [sp, #0]
2154: f44f 62db mov.w r2, #1752 ; 0x6d8
2158: 2003 movs r0, #3
215a: 4e22 ldr r6, [pc, #136] ; (21e4 <lv_event_send_func+0xb0>)
215c: 47b0 blx r6
215e: 4822 ldr r0, [pc, #136] ; (21e8 <lv_event_send_func+0xb4>)
2160: 4922 ldr r1, [pc, #136] ; (21ec <lv_event_send_func+0xb8>)
2162: 4622 mov r2, r4
2164: 462b mov r3, r5
2166: 4788 blx r1
2168: e7fe b.n 2168 <lv_event_send_func+0x34>
if(event_temp_data_head) {
216a: 4d21 ldr r5, [pc, #132] ; (21f0 <lv_event_send_func+0xbc>)
event_temp_data.obj = obj;
216c: 9403 str r4, [sp, #12]
event_temp_data.deleted = false;
216e: 2300 movs r3, #0
2170: f88d 3010 strb.w r3, [sp, #16]
if(event_temp_data_head) {
2174: 686b ldr r3, [r5, #4]
2176: 9305 str r3, [sp, #20]
event_temp_data_head = &event_temp_data;
2178: ab03 add r3, sp, #12
217a: 606b str r3, [r5, #4]
lv_indev_t * indev_act = lv_indev_get_act();
217c: 4b1d ldr r3, [pc, #116] ; (21f4 <lv_event_send_func+0xc0>)
const void * event_act_data_save = event_act_data;
217e: f8d5 9008 ldr.w r9, [r5, #8]
event_act_data = data;
2182: 60af str r7, [r5, #8]
lv_indev_t * indev_act = lv_indev_get_act();
2184: 4798 blx r3
if(indev_act) {
2186: b118 cbz r0, 2190 <lv_event_send_func+0x5c>
if(indev_act->driver.feedback_cb) indev_act->driver.feedback_cb(&indev_act->driver, event);
2188: 6883 ldr r3, [r0, #8]
218a: b10b cbz r3, 2190 <lv_event_send_func+0x5c>
218c: 4631 mov r1, r6
218e: 4798 blx r3
if(event_xcb) event_xcb(obj, event);
2190: f1b8 0f00 cmp.w r8, #0
2194: d002 beq.n 219c <lv_event_send_func+0x68>
2196: 4631 mov r1, r6
2198: 4620 mov r0, r4
219a: 47c0 blx r8
event_temp_data_head = event_temp_data_head->prev;
219c: 686b ldr r3, [r5, #4]
event_act_data = event_act_data_save;
219e: f8c5 9008 str.w r9, [r5, #8]
event_temp_data_head = event_temp_data_head->prev;
21a2: 689b ldr r3, [r3, #8]
21a4: 606b str r3, [r5, #4]
if(event_temp_data.deleted) {
21a6: f89d 3010 ldrb.w r3, [sp, #16]
21aa: b983 cbnz r3, 21ce <lv_event_send_func+0x9a>
if(obj) {
21ac: b18c cbz r4, 21d2 <lv_event_send_func+0x9e>
if(obj->parent_event && obj->parent) {
21ae: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
21b2: 065a lsls r2, r3, #25
21b4: d50d bpl.n 21d2 <lv_event_send_func+0x9e>
21b6: 6820 ldr r0, [r4, #0]
21b8: b158 cbz r0, 21d2 <lv_event_send_func+0x9e>
lv_res_t res = lv_event_send(obj->parent, event, data);
21ba: 4b0f ldr r3, [pc, #60] ; (21f8 <lv_event_send_func+0xc4>)
21bc: 463a mov r2, r7
21be: 4631 mov r1, r6
21c0: 4798 blx r3
return LV_RES_INV;
21c2: 1e43 subs r3, r0, #1
21c4: 4258 negs r0, r3
21c6: 4158 adcs r0, r3
}
21c8: b007 add sp, #28
21ca: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
return LV_RES_INV;
21ce: 2000 movs r0, #0
21d0: e7fa b.n 21c8 <lv_event_send_func+0x94>
return LV_RES_OK;
21d2: 2001 movs r0, #1
21d4: e7f8 b.n 21c8 <lv_event_send_func+0x94>
21d6: bf00 nop
21d8: 00001a65 .word 0x00001a65
21dc: 00026c17 .word 0x00026c17
21e0: 000268df .word 0x000268df
21e4: 0000eb79 .word 0x0000eb79
21e8: 00026943 .word 0x00026943
21ec: 00001a6d .word 0x00001a6d
21f0: 200030c4 .word 0x200030c4
21f4: 00001ef1 .word 0x00001ef1
21f8: 000021fd .word 0x000021fd
000021fc <lv_event_send>:
{
21fc: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
21fe: 460e mov r6, r1
2200: 9203 str r2, [sp, #12]
if(obj == NULL) return LV_RES_OK;
2202: 4604 mov r4, r0
2204: b1d8 cbz r0, 223e <lv_event_send+0x42>
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2206: 4a0f ldr r2, [pc, #60] ; (2244 <lv_event_send+0x48>)
2208: 4790 blx r2
220a: 9b03 ldr r3, [sp, #12]
220c: 4605 mov r5, r0
220e: b968 cbnz r0, 222c <lv_event_send+0x30>
2210: 4b0d ldr r3, [pc, #52] ; (2248 <lv_event_send+0x4c>)
2212: 490e ldr r1, [pc, #56] ; (224c <lv_event_send+0x50>)
2214: 9300 str r3, [sp, #0]
2216: f240 62c4 movw r2, #1732 ; 0x6c4
221a: 2003 movs r0, #3
221c: 4e0c ldr r6, [pc, #48] ; (2250 <lv_event_send+0x54>)
221e: 47b0 blx r6
2220: 480c ldr r0, [pc, #48] ; (2254 <lv_event_send+0x58>)
2222: 490d ldr r1, [pc, #52] ; (2258 <lv_event_send+0x5c>)
2224: 4622 mov r2, r4
2226: 462b mov r3, r5
2228: 4788 blx r1
222a: e7fe b.n 222a <lv_event_send+0x2e>
res = lv_event_send_func(obj->event_cb, obj, event, data);
222c: 69a0 ldr r0, [r4, #24]
222e: 4621 mov r1, r4
2230: 4c0a ldr r4, [pc, #40] ; (225c <lv_event_send+0x60>)
2232: 4632 mov r2, r6
2234: 46a4 mov ip, r4
}
2236: b004 add sp, #16
2238: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
res = lv_event_send_func(obj->event_cb, obj, event, data);
223c: 4760 bx ip
}
223e: 2001 movs r0, #1
2240: b004 add sp, #16
2242: bd70 pop {r4, r5, r6, pc}
2244: 00001a65 .word 0x00001a65
2248: 00026c2a .word 0x00026c2a
224c: 000268df .word 0x000268df
2250: 0000eb79 .word 0x0000eb79
2254: 00026943 .word 0x00026943
2258: 00001a6d .word 0x00001a6d
225c: 00002135 .word 0x00002135
00002260 <lv_obj_set_signal_cb>:
{
2260: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2262: 4b0b ldr r3, [pc, #44] ; (2290 <lv_obj_set_signal_cb+0x30>)
{
2264: 4604 mov r4, r0
2266: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2268: 4798 blx r3
226a: 4605 mov r5, r0
226c: b968 cbnz r0, 228a <lv_obj_set_signal_cb+0x2a>
226e: 4b09 ldr r3, [pc, #36] ; (2294 <lv_obj_set_signal_cb+0x34>)
2270: 4909 ldr r1, [pc, #36] ; (2298 <lv_obj_set_signal_cb+0x38>)
2272: 9300 str r3, [sp, #0]
2274: f240 721b movw r2, #1819 ; 0x71b
2278: 2003 movs r0, #3
227a: 4e08 ldr r6, [pc, #32] ; (229c <lv_obj_set_signal_cb+0x3c>)
227c: 47b0 blx r6
227e: 4808 ldr r0, [pc, #32] ; (22a0 <lv_obj_set_signal_cb+0x40>)
2280: 4908 ldr r1, [pc, #32] ; (22a4 <lv_obj_set_signal_cb+0x44>)
2282: 4622 mov r2, r4
2284: 462b mov r3, r5
2286: 4788 blx r1
2288: e7fe b.n 2288 <lv_obj_set_signal_cb+0x28>
obj->signal_cb = signal_cb;
228a: 61e6 str r6, [r4, #28]
}
228c: b002 add sp, #8
228e: bd70 pop {r4, r5, r6, pc}
2290: 00001a65 .word 0x00001a65
2294: 00026c38 .word 0x00026c38
2298: 000268df .word 0x000268df
229c: 0000eb79 .word 0x0000eb79
22a0: 00026943 .word 0x00026943
22a4: 00001a6d .word 0x00001a6d
000022a8 <lv_signal_send>:
if(obj == NULL) return LV_RES_OK;
22a8: b110 cbz r0, 22b0 <lv_signal_send+0x8>
if(obj->signal_cb) res = obj->signal_cb(obj, signal, param);
22aa: 69c3 ldr r3, [r0, #28]
22ac: b103 cbz r3, 22b0 <lv_signal_send+0x8>
22ae: 4718 bx r3
}
22b0: 2001 movs r0, #1
22b2: 4770 bx lr
000022b4 <lv_obj_set_design_cb>:
{
22b4: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
22b6: 4b0b ldr r3, [pc, #44] ; (22e4 <lv_obj_set_design_cb+0x30>)
{
22b8: 4604 mov r4, r0
22ba: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
22bc: 4798 blx r3
22be: 4605 mov r5, r0
22c0: b968 cbnz r0, 22de <lv_obj_set_design_cb+0x2a>
22c2: 4b09 ldr r3, [pc, #36] ; (22e8 <lv_obj_set_design_cb+0x34>)
22c4: 4909 ldr r1, [pc, #36] ; (22ec <lv_obj_set_design_cb+0x38>)
22c6: 9300 str r3, [sp, #0]
22c8: f240 7237 movw r2, #1847 ; 0x737
22cc: 2003 movs r0, #3
22ce: 4e08 ldr r6, [pc, #32] ; (22f0 <lv_obj_set_design_cb+0x3c>)
22d0: 47b0 blx r6
22d2: 4808 ldr r0, [pc, #32] ; (22f4 <lv_obj_set_design_cb+0x40>)
22d4: 4908 ldr r1, [pc, #32] ; (22f8 <lv_obj_set_design_cb+0x44>)
22d6: 4622 mov r2, r4
22d8: 462b mov r3, r5
22da: 4788 blx r1
22dc: e7fe b.n 22dc <lv_obj_set_design_cb+0x28>
obj->design_cb = design_cb;
22de: 6226 str r6, [r4, #32]
}
22e0: b002 add sp, #8
22e2: bd70 pop {r4, r5, r6, pc}
22e4: 00001a65 .word 0x00001a65
22e8: 00026c4d .word 0x00026c4d
22ec: 000268df .word 0x000268df
22f0: 0000eb79 .word 0x0000eb79
22f4: 00026943 .word 0x00026943
22f8: 00001a6d .word 0x00001a6d
000022fc <lv_obj_allocate_ext_attr>:
{
22fc: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
22fe: 4b0e ldr r3, [pc, #56] ; (2338 <lv_obj_allocate_ext_attr+0x3c>)
{
2300: 9103 str r1, [sp, #12]
2302: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2304: 4798 blx r3
2306: 9903 ldr r1, [sp, #12]
2308: 4605 mov r5, r0
230a: b968 cbnz r0, 2328 <lv_obj_allocate_ext_attr+0x2c>
230c: 4b0b ldr r3, [pc, #44] ; (233c <lv_obj_allocate_ext_attr+0x40>)
230e: 490c ldr r1, [pc, #48] ; (2340 <lv_obj_allocate_ext_attr+0x44>)
2310: 9300 str r3, [sp, #0]
2312: f240 7249 movw r2, #1865 ; 0x749
2316: 2003 movs r0, #3
2318: 4e0a ldr r6, [pc, #40] ; (2344 <lv_obj_allocate_ext_attr+0x48>)
231a: 47b0 blx r6
231c: 480a ldr r0, [pc, #40] ; (2348 <lv_obj_allocate_ext_attr+0x4c>)
231e: 490b ldr r1, [pc, #44] ; (234c <lv_obj_allocate_ext_attr+0x50>)
2320: 4622 mov r2, r4
2322: 462b mov r3, r5
2324: 4788 blx r1
2326: e7fe b.n 2326 <lv_obj_allocate_ext_attr+0x2a>
void * new_ext = lv_mem_realloc(obj->ext_attr, ext_size);
2328: 6a60 ldr r0, [r4, #36] ; 0x24
232a: 4b09 ldr r3, [pc, #36] ; (2350 <lv_obj_allocate_ext_attr+0x54>)
232c: 4798 blx r3
if(new_ext == NULL) return NULL;
232e: b100 cbz r0, 2332 <lv_obj_allocate_ext_attr+0x36>
obj->ext_attr = new_ext;
2330: 6260 str r0, [r4, #36] ; 0x24
}
2332: b004 add sp, #16
2334: bd70 pop {r4, r5, r6, pc}
2336: bf00 nop
2338: 00001a65 .word 0x00001a65
233c: 00026c62 .word 0x00026c62
2340: 000268df .word 0x000268df
2344: 0000eb79 .word 0x0000eb79
2348: 00026943 .word 0x00026943
234c: 00001a6d .word 0x00001a6d
2350: 0000f0a5 .word 0x0000f0a5
00002354 <lv_obj_refresh_ext_draw_pad>:
{
2354: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2356: 4b0e ldr r3, [pc, #56] ; (2390 <lv_obj_refresh_ext_draw_pad+0x3c>)
{
2358: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
235a: 4798 blx r3
235c: 4605 mov r5, r0
235e: b968 cbnz r0, 237c <lv_obj_refresh_ext_draw_pad+0x28>
2360: 4b0c ldr r3, [pc, #48] ; (2394 <lv_obj_refresh_ext_draw_pad+0x40>)
2362: 490d ldr r1, [pc, #52] ; (2398 <lv_obj_refresh_ext_draw_pad+0x44>)
2364: 9300 str r3, [sp, #0]
2366: f240 7259 movw r2, #1881 ; 0x759
236a: 2003 movs r0, #3
236c: 4e0b ldr r6, [pc, #44] ; (239c <lv_obj_refresh_ext_draw_pad+0x48>)
236e: 47b0 blx r6
2370: 480b ldr r0, [pc, #44] ; (23a0 <lv_obj_refresh_ext_draw_pad+0x4c>)
2372: 490c ldr r1, [pc, #48] ; (23a4 <lv_obj_refresh_ext_draw_pad+0x50>)
2374: 4622 mov r2, r4
2376: 462b mov r3, r5
2378: 4788 blx r1
237a: e7fe b.n 237a <lv_obj_refresh_ext_draw_pad+0x26>
obj->signal_cb(obj, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL);
237c: 69e3 ldr r3, [r4, #28]
obj->ext_draw_pad = 0;
237e: 2200 movs r2, #0
obj->signal_cb(obj, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL);
2380: 2106 movs r1, #6
2382: 4620 mov r0, r4
obj->ext_draw_pad = 0;
2384: 8662 strh r2, [r4, #50] ; 0x32
}
2386: b002 add sp, #8
2388: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
obj->signal_cb(obj, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL);
238c: 4718 bx r3
238e: bf00 nop
2390: 00001a65 .word 0x00001a65
2394: 00026c7b .word 0x00026c7b
2398: 000268df .word 0x000268df
239c: 0000eb79 .word 0x0000eb79
23a0: 00026943 .word 0x00026943
23a4: 00001a6d .word 0x00001a6d
000023a8 <lv_obj_get_parent>:
{
23a8: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
23aa: 4b0b ldr r3, [pc, #44] ; (23d8 <lv_obj_get_parent+0x30>)
{
23ac: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
23ae: 4798 blx r3
23b0: 4605 mov r5, r0
23b2: b968 cbnz r0, 23d0 <lv_obj_get_parent+0x28>
23b4: 4b09 ldr r3, [pc, #36] ; (23dc <lv_obj_get_parent+0x34>)
23b6: 490a ldr r1, [pc, #40] ; (23e0 <lv_obj_get_parent+0x38>)
23b8: 9300 str r3, [sp, #0]
23ba: f240 729f movw r2, #1951 ; 0x79f
23be: 2003 movs r0, #3
23c0: 4e08 ldr r6, [pc, #32] ; (23e4 <lv_obj_get_parent+0x3c>)
23c2: 47b0 blx r6
23c4: 4808 ldr r0, [pc, #32] ; (23e8 <lv_obj_get_parent+0x40>)
23c6: 4909 ldr r1, [pc, #36] ; (23ec <lv_obj_get_parent+0x44>)
23c8: 4622 mov r2, r4
23ca: 462b mov r3, r5
23cc: 4788 blx r1
23ce: e7fe b.n 23ce <lv_obj_get_parent+0x26>
}
23d0: 6820 ldr r0, [r4, #0]
23d2: b002 add sp, #8
23d4: bd70 pop {r4, r5, r6, pc}
23d6: bf00 nop
23d8: 00001a65 .word 0x00001a65
23dc: 00026c97 .word 0x00026c97
23e0: 000268df .word 0x000268df
23e4: 0000eb79 .word 0x0000eb79
23e8: 00026943 .word 0x00026943
23ec: 00001a6d .word 0x00001a6d
000023f0 <lv_obj_get_screen>:
{
23f0: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
23f2: 4b0e ldr r3, [pc, #56] ; (242c <lv_obj_get_screen+0x3c>)
{
23f4: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
23f6: 4798 blx r3
23f8: 4605 mov r5, r0
23fa: b148 cbz r0, 2410 <lv_obj_get_screen+0x20>
par = lv_obj_get_parent(act_p);
23fc: 4e0c ldr r6, [pc, #48] ; (2430 <lv_obj_get_screen+0x40>)
23fe: 4620 mov r0, r4
2400: 47b0 blx r6
} while(par != NULL);
2402: 4625 mov r5, r4
2404: 4604 mov r4, r0
2406: 2800 cmp r0, #0
2408: d1f9 bne.n 23fe <lv_obj_get_screen+0xe>
}
240a: 4628 mov r0, r5
240c: b002 add sp, #8
240e: bd70 pop {r4, r5, r6, pc}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2410: 4b08 ldr r3, [pc, #32] ; (2434 <lv_obj_get_screen+0x44>)
2412: 4909 ldr r1, [pc, #36] ; (2438 <lv_obj_get_screen+0x48>)
2414: 9300 str r3, [sp, #0]
2416: f240 726b movw r2, #1899 ; 0x76b
241a: 2003 movs r0, #3
241c: 4e07 ldr r6, [pc, #28] ; (243c <lv_obj_get_screen+0x4c>)
241e: 47b0 blx r6
2420: 4807 ldr r0, [pc, #28] ; (2440 <lv_obj_get_screen+0x50>)
2422: 4908 ldr r1, [pc, #32] ; (2444 <lv_obj_get_screen+0x54>)
2424: 4622 mov r2, r4
2426: 462b mov r3, r5
2428: 4788 blx r1
242a: e7fe b.n 242a <lv_obj_get_screen+0x3a>
242c: 00001a65 .word 0x00001a65
2430: 000023a9 .word 0x000023a9
2434: 00026ca9 .word 0x00026ca9
2438: 000268df .word 0x000268df
243c: 0000eb79 .word 0x0000eb79
2440: 00026943 .word 0x00026943
2444: 00001a6d .word 0x00001a6d
00002448 <lv_obj_get_disp>:
{
2448: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
244c: 4b1e ldr r3, [pc, #120] ; (24c8 <lv_obj_get_disp+0x80>)
{
244e: 4605 mov r5, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2450: 4798 blx r3
2452: 4604 mov r4, r0
2454: b968 cbnz r0, 2472 <lv_obj_get_disp+0x2a>
2456: 4b1d ldr r3, [pc, #116] ; (24cc <lv_obj_get_disp+0x84>)
2458: 491d ldr r1, [pc, #116] ; (24d0 <lv_obj_get_disp+0x88>)
245a: 9300 str r3, [sp, #0]
245c: f240 727f movw r2, #1919 ; 0x77f
2460: 2003 movs r0, #3
2462: 4e1c ldr r6, [pc, #112] ; (24d4 <lv_obj_get_disp+0x8c>)
2464: 47b0 blx r6
2466: 481c ldr r0, [pc, #112] ; (24d8 <lv_obj_get_disp+0x90>)
2468: 491c ldr r1, [pc, #112] ; (24dc <lv_obj_get_disp+0x94>)
246a: 462a mov r2, r5
246c: 4623 mov r3, r4
246e: 4788 blx r1
2470: e7fe b.n 2470 <lv_obj_get_disp+0x28>
if(obj->parent == NULL)
2472: 682b ldr r3, [r5, #0]
2474: b11b cbz r3, 247e <lv_obj_get_disp+0x36>
scr = lv_obj_get_screen(obj); /*get the screen of `obj`*/
2476: 4628 mov r0, r5
2478: 4b19 ldr r3, [pc, #100] ; (24e0 <lv_obj_get_disp+0x98>)
247a: 4798 blx r3
247c: 4605 mov r5, r0
_LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) {
247e: 4819 ldr r0, [pc, #100] ; (24e4 <lv_obj_get_disp+0x9c>)
2480: 4e19 ldr r6, [pc, #100] ; (24e8 <lv_obj_get_disp+0xa0>)
_LV_LL_READ(d->scr_ll, s) {
2482: 4f1a ldr r7, [pc, #104] ; (24ec <lv_obj_get_disp+0xa4>)
_LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) {
2484: f8df 805c ldr.w r8, [pc, #92] ; 24e4 <lv_obj_get_disp+0x9c>
2488: 47b0 blx r6
248a: 4604 mov r4, r0
248c: b964 cbnz r4, 24a8 <lv_obj_get_disp+0x60>
LV_LOG_WARN("lv_scr_get_disp: screen not found")
248e: 4b18 ldr r3, [pc, #96] ; (24f0 <lv_obj_get_disp+0xa8>)
2490: 9300 str r3, [sp, #0]
2492: 490f ldr r1, [pc, #60] ; (24d0 <lv_obj_get_disp+0x88>)
2494: 4b0d ldr r3, [pc, #52] ; (24cc <lv_obj_get_disp+0x84>)
2496: 4d0f ldr r5, [pc, #60] ; (24d4 <lv_obj_get_disp+0x8c>)
2498: f44f 62f2 mov.w r2, #1936 ; 0x790
249c: 2002 movs r0, #2
249e: 47a8 blx r5
}
24a0: 4620 mov r0, r4
24a2: b003 add sp, #12
24a4: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
_LV_LL_READ(d->scr_ll, s) {
24a8: f104 0930 add.w r9, r4, #48 ; 0x30
24ac: 4648 mov r0, r9
24ae: 47b0 blx r6
24b0: b920 cbnz r0, 24bc <lv_obj_get_disp+0x74>
_LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) {
24b2: 4621 mov r1, r4
24b4: 4640 mov r0, r8
24b6: 47b8 blx r7
24b8: 4604 mov r4, r0
24ba: e7e7 b.n 248c <lv_obj_get_disp+0x44>
if(s == scr) return d;
24bc: 4285 cmp r5, r0
24be: d0ef beq.n 24a0 <lv_obj_get_disp+0x58>
_LV_LL_READ(d->scr_ll, s) {
24c0: 4601 mov r1, r0
24c2: 4648 mov r0, r9
24c4: 47b8 blx r7
24c6: e7f3 b.n 24b0 <lv_obj_get_disp+0x68>
24c8: 00001a65 .word 0x00001a65
24cc: 00026cbb .word 0x00026cbb
24d0: 000268df .word 0x000268df
24d4: 0000eb79 .word 0x0000eb79
24d8: 00026943 .word 0x00026943
24dc: 00001a6d .word 0x00001a6d
24e0: 000023f1 .word 0x000023f1
24e4: 200035dc .word 0x200035dc
24e8: 0000e92d .word 0x0000e92d
24ec: 0000e939 .word 0x0000e939
24f0: 00026950 .word 0x00026950
000024f4 <lv_obj_get_child>:
{
24f4: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
24f6: 4b10 ldr r3, [pc, #64] ; (2538 <lv_obj_get_child+0x44>)
{
24f8: 4604 mov r4, r0
24fa: 460d mov r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
24fc: 4798 blx r3
24fe: 4606 mov r6, r0
2500: b968 cbnz r0, 251e <lv_obj_get_child+0x2a>
2502: 4b0e ldr r3, [pc, #56] ; (253c <lv_obj_get_child+0x48>)
2504: 490e ldr r1, [pc, #56] ; (2540 <lv_obj_get_child+0x4c>)
2506: 9300 str r3, [sp, #0]
2508: f240 72ad movw r2, #1965 ; 0x7ad
250c: 2003 movs r0, #3
250e: 4d0d ldr r5, [pc, #52] ; (2544 <lv_obj_get_child+0x50>)
2510: 47a8 blx r5
2512: 480d ldr r0, [pc, #52] ; (2548 <lv_obj_get_child+0x54>)
2514: 490d ldr r1, [pc, #52] ; (254c <lv_obj_get_child+0x58>)
2516: 4622 mov r2, r4
2518: 4633 mov r3, r6
251a: 4788 blx r1
251c: e7fe b.n 251c <lv_obj_get_child+0x28>
result = _lv_ll_get_head(&obj->child_ll);
251e: 1d20 adds r0, r4, #4
if(child == NULL) {
2520: b925 cbnz r5, 252c <lv_obj_get_child+0x38>
result = _lv_ll_get_head(&obj->child_ll);
2522: 4b0b ldr r3, [pc, #44] ; (2550 <lv_obj_get_child+0x5c>)
}
2524: b002 add sp, #8
2526: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
result = _lv_ll_get_head(&obj->child_ll);
252a: 4718 bx r3
result = _lv_ll_get_next(&obj->child_ll, child);
252c: 4b09 ldr r3, [pc, #36] ; (2554 <lv_obj_get_child+0x60>)
252e: 4629 mov r1, r5
}
2530: b002 add sp, #8
2532: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
result = _lv_ll_get_next(&obj->child_ll, child);
2536: 4718 bx r3
2538: 00001a65 .word 0x00001a65
253c: 00026ccb .word 0x00026ccb
2540: 000268df .word 0x000268df
2544: 0000eb79 .word 0x0000eb79
2548: 00026943 .word 0x00026943
254c: 00001a6d .word 0x00001a6d
2550: 0000e92d .word 0x0000e92d
2554: 0000e939 .word 0x0000e939
00002558 <lv_obj_get_coords>:
{
2558: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
255a: 4b0e ldr r3, [pc, #56] ; (2594 <lv_obj_get_coords+0x3c>)
{
255c: 4604 mov r4, r0
255e: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2560: 4798 blx r3
2562: 4605 mov r5, r0
2564: b968 cbnz r0, 2582 <lv_obj_get_coords+0x2a>
2566: 4b0c ldr r3, [pc, #48] ; (2598 <lv_obj_get_coords+0x40>)
2568: 490c ldr r1, [pc, #48] ; (259c <lv_obj_get_coords+0x44>)
256a: 9300 str r3, [sp, #0]
256c: f640 0201 movw r2, #2049 ; 0x801
2570: 2003 movs r0, #3
2572: 4e0b ldr r6, [pc, #44] ; (25a0 <lv_obj_get_coords+0x48>)
2574: 47b0 blx r6
2576: 480b ldr r0, [pc, #44] ; (25a4 <lv_obj_get_coords+0x4c>)
2578: 490b ldr r1, [pc, #44] ; (25a8 <lv_obj_get_coords+0x50>)
257a: 4622 mov r2, r4
257c: 462b mov r3, r5
257e: 4788 blx r1
2580: e7fe b.n 2580 <lv_obj_get_coords+0x28>
lv_area_copy(cords_p, &obj->coords);
2582: 4b0a ldr r3, [pc, #40] ; (25ac <lv_obj_get_coords+0x54>)
2584: f104 0110 add.w r1, r4, #16
2588: 4630 mov r0, r6
}
258a: b002 add sp, #8
258c: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_area_copy(cords_p, &obj->coords);
2590: 4718 bx r3
2592: bf00 nop
2594: 00001a65 .word 0x00001a65
2598: 00026d3c .word 0x00026d3c
259c: 000268df .word 0x000268df
25a0: 0000eb79 .word 0x0000eb79
25a4: 00026943 .word 0x00026943
25a8: 00001a6d .word 0x00001a6d
25ac: 00001f9d .word 0x00001f9d
000025b0 <lv_obj_get_x>:
{
25b0: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
25b2: 4b10 ldr r3, [pc, #64] ; (25f4 <lv_obj_get_x+0x44>)
{
25b4: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
25b6: 4798 blx r3
25b8: 4605 mov r5, r0
25ba: b968 cbnz r0, 25d8 <lv_obj_get_x+0x28>
25bc: 4b0e ldr r3, [pc, #56] ; (25f8 <lv_obj_get_x+0x48>)
25be: 490f ldr r1, [pc, #60] ; (25fc <lv_obj_get_x+0x4c>)
25c0: 9300 str r3, [sp, #0]
25c2: f640 0222 movw r2, #2082 ; 0x822
25c6: 2003 movs r0, #3
25c8: 4e0d ldr r6, [pc, #52] ; (2600 <lv_obj_get_x+0x50>)
25ca: 47b0 blx r6
25cc: 480d ldr r0, [pc, #52] ; (2604 <lv_obj_get_x+0x54>)
25ce: 490e ldr r1, [pc, #56] ; (2608 <lv_obj_get_x+0x58>)
25d0: 4622 mov r2, r4
25d2: 462b mov r3, r5
25d4: 4788 blx r1
25d6: e7fe b.n 25d6 <lv_obj_get_x+0x26>
lv_obj_t * parent = lv_obj_get_parent(obj);
25d8: 4b0c ldr r3, [pc, #48] ; (260c <lv_obj_get_x+0x5c>)
25da: 4620 mov r0, r4
25dc: 4798 blx r3
if(parent) {
25de: b128 cbz r0, 25ec <lv_obj_get_x+0x3c>
rel_x = obj->coords.x1 - parent->coords.x1;
25e0: 8a23 ldrh r3, [r4, #16]
25e2: 8a02 ldrh r2, [r0, #16]
25e4: 1a98 subs r0, r3, r2
25e6: b200 sxth r0, r0
}
25e8: b002 add sp, #8
25ea: bd70 pop {r4, r5, r6, pc}
rel_x = obj->coords.x1;
25ec: f9b4 0010 ldrsh.w r0, [r4, #16]
25f0: e7fa b.n 25e8 <lv_obj_get_x+0x38>
25f2: bf00 nop
25f4: 00001a65 .word 0x00001a65
25f8: 00026d4e .word 0x00026d4e
25fc: 000268df .word 0x000268df
2600: 0000eb79 .word 0x0000eb79
2604: 00026943 .word 0x00026943
2608: 00001a6d .word 0x00001a6d
260c: 000023a9 .word 0x000023a9
00002610 <lv_obj_get_y>:
{
2610: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2612: 4b10 ldr r3, [pc, #64] ; (2654 <lv_obj_get_y+0x44>)
{
2614: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2616: 4798 blx r3
2618: 4605 mov r5, r0
261a: b968 cbnz r0, 2638 <lv_obj_get_y+0x28>
261c: 4b0e ldr r3, [pc, #56] ; (2658 <lv_obj_get_y+0x48>)
261e: 490f ldr r1, [pc, #60] ; (265c <lv_obj_get_y+0x4c>)
2620: 9300 str r3, [sp, #0]
2622: f640 0236 movw r2, #2102 ; 0x836
2626: 2003 movs r0, #3
2628: 4e0d ldr r6, [pc, #52] ; (2660 <lv_obj_get_y+0x50>)
262a: 47b0 blx r6
262c: 480d ldr r0, [pc, #52] ; (2664 <lv_obj_get_y+0x54>)
262e: 490e ldr r1, [pc, #56] ; (2668 <lv_obj_get_y+0x58>)
2630: 4622 mov r2, r4
2632: 462b mov r3, r5
2634: 4788 blx r1
2636: e7fe b.n 2636 <lv_obj_get_y+0x26>
lv_obj_t * parent = lv_obj_get_parent(obj);
2638: 4b0c ldr r3, [pc, #48] ; (266c <lv_obj_get_y+0x5c>)
263a: 4620 mov r0, r4
263c: 4798 blx r3
if(parent) {
263e: b128 cbz r0, 264c <lv_obj_get_y+0x3c>
rel_y = obj->coords.y1 - parent->coords.y1;
2640: 8a63 ldrh r3, [r4, #18]
2642: 8a42 ldrh r2, [r0, #18]
2644: 1a98 subs r0, r3, r2
2646: b200 sxth r0, r0
}
2648: b002 add sp, #8
264a: bd70 pop {r4, r5, r6, pc}
rel_y = obj->coords.y1;
264c: f9b4 0012 ldrsh.w r0, [r4, #18]
2650: e7fa b.n 2648 <lv_obj_get_y+0x38>
2652: bf00 nop
2654: 00001a65 .word 0x00001a65
2658: 00026d5b .word 0x00026d5b
265c: 000268df .word 0x000268df
2660: 0000eb79 .word 0x0000eb79
2664: 00026943 .word 0x00026943
2668: 00001a6d .word 0x00001a6d
266c: 000023a9 .word 0x000023a9
00002670 <lv_obj_get_width>:
{
2670: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2672: 4b0d ldr r3, [pc, #52] ; (26a8 <lv_obj_get_width+0x38>)
{
2674: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2676: 4798 blx r3
2678: 4605 mov r5, r0
267a: b968 cbnz r0, 2698 <lv_obj_get_width+0x28>
267c: 4b0b ldr r3, [pc, #44] ; (26ac <lv_obj_get_width+0x3c>)
267e: 490c ldr r1, [pc, #48] ; (26b0 <lv_obj_get_width+0x40>)
2680: 9300 str r3, [sp, #0]
2682: f640 024a movw r2, #2122 ; 0x84a
2686: 2003 movs r0, #3
2688: 4e0a ldr r6, [pc, #40] ; (26b4 <lv_obj_get_width+0x44>)
268a: 47b0 blx r6
268c: 480a ldr r0, [pc, #40] ; (26b8 <lv_obj_get_width+0x48>)
268e: 490b ldr r1, [pc, #44] ; (26bc <lv_obj_get_width+0x4c>)
2690: 4622 mov r2, r4
2692: 462b mov r3, r5
2694: 4788 blx r1
2696: e7fe b.n 2696 <lv_obj_get_width+0x26>
* @param area_p pointer to an area
* @return the width of the area (if x1 == x2 -> width = 1)
*/
static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p)
{
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
2698: 8aa3 ldrh r3, [r4, #20]
269a: 8a22 ldrh r2, [r4, #16]
269c: 3301 adds r3, #1
269e: 1a98 subs r0, r3, r2
}
26a0: b200 sxth r0, r0
26a2: b002 add sp, #8
26a4: bd70 pop {r4, r5, r6, pc}
26a6: bf00 nop
26a8: 00001a65 .word 0x00001a65
26ac: 00026d68 .word 0x00026d68
26b0: 000268df .word 0x000268df
26b4: 0000eb79 .word 0x0000eb79
26b8: 00026943 .word 0x00026943
26bc: 00001a6d .word 0x00001a6d
000026c0 <lv_obj_get_height>:
{
26c0: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
26c2: 4b0d ldr r3, [pc, #52] ; (26f8 <lv_obj_get_height+0x38>)
{
26c4: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
26c6: 4798 blx r3
26c8: 4605 mov r5, r0
26ca: b968 cbnz r0, 26e8 <lv_obj_get_height+0x28>
26cc: 4b0b ldr r3, [pc, #44] ; (26fc <lv_obj_get_height+0x3c>)
26ce: 490c ldr r1, [pc, #48] ; (2700 <lv_obj_get_height+0x40>)
26d0: 9300 str r3, [sp, #0]
26d2: f640 0256 movw r2, #2134 ; 0x856
26d6: 2003 movs r0, #3
26d8: 4e0a ldr r6, [pc, #40] ; (2704 <lv_obj_get_height+0x44>)
26da: 47b0 blx r6
26dc: 480a ldr r0, [pc, #40] ; (2708 <lv_obj_get_height+0x48>)
26de: 490b ldr r1, [pc, #44] ; (270c <lv_obj_get_height+0x4c>)
26e0: 4622 mov r2, r4
26e2: 462b mov r3, r5
26e4: 4788 blx r1
26e6: e7fe b.n 26e6 <lv_obj_get_height+0x26>
* @param area_p pointer to an area
* @return the height of the area (if y1 == y2 -> height = 1)
*/
static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p)
{
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
26e8: 8ae3 ldrh r3, [r4, #22]
26ea: 8a62 ldrh r2, [r4, #18]
26ec: 3301 adds r3, #1
26ee: 1a98 subs r0, r3, r2
}
26f0: b200 sxth r0, r0
26f2: b002 add sp, #8
26f4: bd70 pop {r4, r5, r6, pc}
26f6: bf00 nop
26f8: 00001a65 .word 0x00001a65
26fc: 00026d79 .word 0x00026d79
2700: 000268df .word 0x000268df
2704: 0000eb79 .word 0x0000eb79
2708: 00026943 .word 0x00026943
270c: 00001a6d .word 0x00001a6d
00002710 <lv_obj_get_style_list>:
{
2710: b513 push {r0, r1, r4, lr}
if(part == LV_OBJ_PART_MAIN) return &((lv_obj_t *)obj)->style_list;
2712: b911 cbnz r1, 271a <lv_obj_get_style_list+0xa>
2714: 3028 adds r0, #40 ; 0x28
}
2716: b002 add sp, #8
2718: bd10 pop {r4, pc}
info.part = part;
271a: f88d 1000 strb.w r1, [sp]
info.result = NULL;
271e: 2400 movs r4, #0
res = lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STYLE, &info);
2720: 4b04 ldr r3, [pc, #16] ; (2734 <lv_obj_get_style_list+0x24>)
info.result = NULL;
2722: 9401 str r4, [sp, #4]
res = lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STYLE, &info);
2724: 466a mov r2, sp
2726: 2108 movs r1, #8
2728: 4798 blx r3
if(res != LV_RES_OK) return NULL;
272a: 2801 cmp r0, #1
return info.result;
272c: bf0c ite eq
272e: 9801 ldreq r0, [sp, #4]
if(res != LV_RES_OK) return NULL;
2730: 4620 movne r0, r4
2732: e7f0 b.n 2716 <lv_obj_get_style_list+0x6>
2734: 000022a9 .word 0x000022a9
00002738 <trans_del>:
* @param part a part of object or 0xFF to remove from all parts
* @param prop a property or 0xFF to remove all porpeties
* @param tr_limit delete transitions only "older" then this. `NULL` is not used
*/
static void trans_del(lv_obj_t * obj, uint8_t part, lv_style_property_t prop, lv_style_trans_t * tr_limit)
{
2738: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
273c: 4607 mov r7, r0
273e: 4698 mov r8, r3
lv_style_trans_t * tr;
lv_style_trans_t * tr_prev;
tr = _lv_ll_get_tail(&LV_GC_ROOT(_lv_obj_style_trans_ll));
2740: 4819 ldr r0, [pc, #100] ; (27a8 <trans_del+0x70>)
2742: 4b1a ldr r3, [pc, #104] ; (27ac <trans_del+0x74>)
while(tr != NULL) {
if(tr == tr_limit) break;
/*'tr' might be deleted, so get the next object while 'tr' is valid*/
tr_prev = _lv_ll_get_prev(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
2744: f8df 9060 ldr.w r9, [pc, #96] ; 27a8 <trans_del+0x70>
if(tr->obj == obj && (part == tr->part || part == 0xFF) && (prop == tr->prop || prop == 0xFF)) {
/* Remove the transitioned property from trans. style
* to allow changing it by normal styles*/
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
2748: f8df b07c ldr.w fp, [pc, #124] ; 27c8 <trans_del+0x90>
{
274c: 460d mov r5, r1
274e: 4616 mov r6, r2
tr = _lv_ll_get_tail(&LV_GC_ROOT(_lv_obj_style_trans_ll));
2750: 4798 blx r3
2752: 4604 mov r4, r0
while(tr != NULL) {
2754: b90c cbnz r4, 275a <trans_del+0x22>
_lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
lv_mem_free(tr);
}
tr = tr_prev;
}
}
2756: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(tr == tr_limit) break;
275a: 4544 cmp r4, r8
275c: d0fb beq.n 2756 <trans_del+0x1e>
tr_prev = _lv_ll_get_prev(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
275e: 4b14 ldr r3, [pc, #80] ; (27b0 <trans_del+0x78>)
2760: 4621 mov r1, r4
2762: 4648 mov r0, r9
2764: 4798 blx r3
2766: 4682 mov sl, r0
if(tr->obj == obj && (part == tr->part || part == 0xFF) && (prop == tr->prop || prop == 0xFF)) {
2768: 6820 ldr r0, [r4, #0]
276a: 42b8 cmp r0, r7
276c: d11a bne.n 27a4 <trans_del+0x6c>
276e: 79a1 ldrb r1, [r4, #6]
2770: 42a9 cmp r1, r5
2772: d001 beq.n 2778 <trans_del+0x40>
2774: 2dff cmp r5, #255 ; 0xff
2776: d115 bne.n 27a4 <trans_del+0x6c>
2778: 88a2 ldrh r2, [r4, #4]
277a: 42b2 cmp r2, r6
277c: d001 beq.n 2782 <trans_del+0x4a>
277e: 2eff cmp r6, #255 ; 0xff
2780: d110 bne.n 27a4 <trans_del+0x6c>
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
2782: 47d8 blx fp
lv_style_t * style_trans = _lv_style_list_get_transition_style(list);
2784: 4a0b ldr r2, [pc, #44] ; (27b4 <trans_del+0x7c>)
2786: 4790 blx r2
lv_style_remove_prop(style_trans, tr->prop);
2788: 88a1 ldrh r1, [r4, #4]
278a: 4a0b ldr r2, [pc, #44] ; (27b8 <trans_del+0x80>)
278c: 4790 blx r2
lv_anim_del(tr, NULL);
278e: 4a0b ldr r2, [pc, #44] ; (27bc <trans_del+0x84>)
2790: 2100 movs r1, #0
2792: 4620 mov r0, r4
2794: 4790 blx r2
_lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
2796: 4a0a ldr r2, [pc, #40] ; (27c0 <trans_del+0x88>)
2798: 4648 mov r0, r9
279a: 4621 mov r1, r4
279c: 4790 blx r2
lv_mem_free(tr);
279e: 4a09 ldr r2, [pc, #36] ; (27c4 <trans_del+0x8c>)
27a0: 4620 mov r0, r4
27a2: 4790 blx r2
{
27a4: 4654 mov r4, sl
27a6: e7d5 b.n 2754 <trans_del+0x1c>
27a8: 20003630 .word 0x20003630
27ac: 0000e933 .word 0x0000e933
27b0: 0000e959 .word 0x0000e959
27b4: 00005f3d .word 0x00005f3d
27b8: 00005a95 .word 0x00005a95
27bc: 0000df35 .word 0x0000df35
27c0: 0000e9f1 .word 0x0000e9f1
27c4: 0000ed75 .word 0x0000ed75
27c8: 00002711 .word 0x00002711
000027cc <lv_obj_clean_style_list>:
{
27cc: b537 push {r0, r1, r2, r4, r5, lr}
lv_style_list_t * style_dsc = lv_obj_get_style_list(obj, part);
27ce: 4b0e ldr r3, [pc, #56] ; (2808 <lv_obj_clean_style_list+0x3c>)
{
27d0: 4604 mov r4, r0
27d2: 460d mov r5, r1
lv_style_list_t * style_dsc = lv_obj_get_style_list(obj, part);
27d4: 4798 blx r3
if(style_dsc == NULL) {
27d6: b950 cbnz r0, 27ee <lv_obj_clean_style_list+0x22>
LV_LOG_WARN("lv_obj_clean_style_list: can't find style with `part`");
27d8: 4b0c ldr r3, [pc, #48] ; (280c <lv_obj_clean_style_list+0x40>)
27da: 9300 str r3, [sp, #0]
27dc: 490c ldr r1, [pc, #48] ; (2810 <lv_obj_clean_style_list+0x44>)
27de: 4b0d ldr r3, [pc, #52] ; (2814 <lv_obj_clean_style_list+0x48>)
27e0: 4c0d ldr r4, [pc, #52] ; (2818 <lv_obj_clean_style_list+0x4c>)
27e2: f240 4292 movw r2, #1170 ; 0x492
27e6: 2002 movs r0, #2
27e8: 47a0 blx r4
}
27ea: b003 add sp, #12
27ec: bd30 pop {r4, r5, pc}
_lv_style_list_reset(style_dsc);
27ee: 4b0b ldr r3, [pc, #44] ; (281c <lv_obj_clean_style_list+0x50>)
27f0: 4798 blx r3
trans_del(obj, part, 0xFF, NULL);
27f2: 4620 mov r0, r4
27f4: 4c0a ldr r4, [pc, #40] ; (2820 <lv_obj_clean_style_list+0x54>)
27f6: 2300 movs r3, #0
27f8: 22ff movs r2, #255 ; 0xff
27fa: 4629 mov r1, r5
27fc: 46a4 mov ip, r4
}
27fe: b003 add sp, #12
2800: e8bd 4030 ldmia.w sp!, {r4, r5, lr}
trans_del(obj, part, 0xFF, NULL);
2804: 4760 bx ip
2806: bf00 nop
2808: 00002711 .word 0x00002711
280c: 00026998 .word 0x00026998
2810: 000268df .word 0x000268df
2814: 00026e35 .word 0x00026e35
2818: 0000eb79 .word 0x0000eb79
281c: 00005f4d .word 0x00005f4d
2820: 00002739 .word 0x00002739
00002824 <trans_anim_ready_cb>:
tr->prop = prop_tmp;
}
static void trans_anim_ready_cb(lv_anim_t * a)
{
2824: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
* if there no more transitions for this property
* It allows changing it by normal styles*/
bool running = false;
lv_style_trans_t * tr_i;
_LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) {
2828: 4b15 ldr r3, [pc, #84] ; (2880 <trans_anim_ready_cb+0x5c>)
lv_style_trans_t * tr = a->var;
282a: 6804 ldr r4, [r0, #0]
_LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) {
282c: 4815 ldr r0, [pc, #84] ; (2884 <trans_anim_ready_cb+0x60>)
282e: 4e15 ldr r6, [pc, #84] ; (2884 <trans_anim_ready_cb+0x60>)
2830: 4f15 ldr r7, [pc, #84] ; (2888 <trans_anim_ready_cb+0x64>)
2832: 4798 blx r3
bool running = false;
2834: 2500 movs r5, #0
_LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) {
2836: b990 cbnz r0, 285e <trans_anim_ready_cb+0x3a>
if(tr_i != tr && tr_i->obj == tr->obj && tr_i->part == tr->part && tr_i->prop == tr->prop) {
running = true;
}
}
if(!running) {
2838: b945 cbnz r5, 284c <trans_anim_ready_cb+0x28>
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
283a: 79a1 ldrb r1, [r4, #6]
283c: 4b13 ldr r3, [pc, #76] ; (288c <trans_anim_ready_cb+0x68>)
283e: 6820 ldr r0, [r4, #0]
2840: 4798 blx r3
lv_style_t * style_trans = _lv_style_list_get_transition_style(list);
2842: 4b13 ldr r3, [pc, #76] ; (2890 <trans_anim_ready_cb+0x6c>)
2844: 4798 blx r3
lv_style_remove_prop(style_trans, tr->prop);
2846: 88a1 ldrh r1, [r4, #4]
2848: 4b12 ldr r3, [pc, #72] ; (2894 <trans_anim_ready_cb+0x70>)
284a: 4798 blx r3
}
_lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr);
284c: 480d ldr r0, [pc, #52] ; (2884 <trans_anim_ready_cb+0x60>)
284e: 4b12 ldr r3, [pc, #72] ; (2898 <trans_anim_ready_cb+0x74>)
2850: 4621 mov r1, r4
2852: 4798 blx r3
lv_mem_free(tr);
2854: 4620 mov r0, r4
2856: 4b11 ldr r3, [pc, #68] ; (289c <trans_anim_ready_cb+0x78>)
}
2858: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
lv_mem_free(tr);
285c: 4718 bx r3
if(tr_i != tr && tr_i->obj == tr->obj && tr_i->part == tr->part && tr_i->prop == tr->prop) {
285e: 42a0 cmp r0, r4
2860: d00a beq.n 2878 <trans_anim_ready_cb+0x54>
2862: 6802 ldr r2, [r0, #0]
2864: 6823 ldr r3, [r4, #0]
2866: 429a cmp r2, r3
2868: d106 bne.n 2878 <trans_anim_ready_cb+0x54>
286a: 6843 ldr r3, [r0, #4]
286c: 6862 ldr r2, [r4, #4]
286e: 4053 eors r3, r2
running = true;
2870: f033 437f bics.w r3, r3, #4278190080 ; 0xff000000
2874: bf08 it eq
2876: 2501 moveq r5, #1
_LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) {
2878: 4601 mov r1, r0
287a: 4630 mov r0, r6
287c: 47b8 blx r7
287e: e7da b.n 2836 <trans_anim_ready_cb+0x12>
2880: 0000e92d .word 0x0000e92d
2884: 20003630 .word 0x20003630
2888: 0000e939 .word 0x0000e939
288c: 00002711 .word 0x00002711
2890: 00005f3d .word 0x00005f3d
2894: 00005a95 .word 0x00005a95
2898: 0000e9f1 .word 0x0000e9f1
289c: 0000ed75 .word 0x0000ed75
000028a0 <lv_obj_get_hidden>:
{
28a0: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
28a2: 4b0c ldr r3, [pc, #48] ; (28d4 <lv_obj_get_hidden+0x34>)
{
28a4: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
28a6: 4798 blx r3
28a8: 4605 mov r5, r0
28aa: b968 cbnz r0, 28c8 <lv_obj_get_hidden+0x28>
28ac: 4b0a ldr r3, [pc, #40] ; (28d8 <lv_obj_get_hidden+0x38>)
28ae: 490b ldr r1, [pc, #44] ; (28dc <lv_obj_get_hidden+0x3c>)
28b0: 9300 str r3, [sp, #0]
28b2: f640 2241 movw r2, #2625 ; 0xa41
28b6: 2003 movs r0, #3
28b8: 4e09 ldr r6, [pc, #36] ; (28e0 <lv_obj_get_hidden+0x40>)
28ba: 47b0 blx r6
28bc: 4809 ldr r0, [pc, #36] ; (28e4 <lv_obj_get_hidden+0x44>)
28be: 490a ldr r1, [pc, #40] ; (28e8 <lv_obj_get_hidden+0x48>)
28c0: 4622 mov r2, r4
28c2: 462b mov r3, r5
28c4: 4788 blx r1
28c6: e7fe b.n 28c6 <lv_obj_get_hidden+0x26>
return obj->hidden == 0 ? false : true;
28c8: f894 0034 ldrb.w r0, [r4, #52] ; 0x34
}
28cc: f3c0 1000 ubfx r0, r0, #4, #1
28d0: b002 add sp, #8
28d2: bd70 pop {r4, r5, r6, pc}
28d4: 00001a65 .word 0x00001a65
28d8: 00026e83 .word 0x00026e83
28dc: 000268df .word 0x000268df
28e0: 0000eb79 .word 0x0000eb79
28e4: 00026943 .word 0x00026943
28e8: 00001a6d .word 0x00001a6d
000028ec <lv_obj_invalidate_area>:
{
28ec: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
28f0: 4b35 ldr r3, [pc, #212] ; (29c8 <lv_obj_invalidate_area+0xdc>)
{
28f2: b086 sub sp, #24
28f4: 4604 mov r4, r0
28f6: 4688 mov r8, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
28f8: 4798 blx r3
28fa: 4605 mov r5, r0
28fc: b968 cbnz r0, 291a <lv_obj_invalidate_area+0x2e>
28fe: 4b33 ldr r3, [pc, #204] ; (29cc <lv_obj_invalidate_area+0xe0>)
2900: 4933 ldr r1, [pc, #204] ; (29d0 <lv_obj_invalidate_area+0xe4>)
2902: 9300 str r3, [sp, #0]
2904: f44f 72f0 mov.w r2, #480 ; 0x1e0
2908: 2003 movs r0, #3
290a: 4e32 ldr r6, [pc, #200] ; (29d4 <lv_obj_invalidate_area+0xe8>)
290c: 47b0 blx r6
290e: 4832 ldr r0, [pc, #200] ; (29d8 <lv_obj_invalidate_area+0xec>)
2910: 4932 ldr r1, [pc, #200] ; (29dc <lv_obj_invalidate_area+0xf0>)
2912: 4622 mov r2, r4
2914: 462b mov r3, r5
2916: 4788 blx r1
2918: e7fe b.n 2918 <lv_obj_invalidate_area+0x2c>
if(lv_obj_get_hidden(obj)) return;
291a: 4f31 ldr r7, [pc, #196] ; (29e0 <lv_obj_invalidate_area+0xf4>)
291c: 4620 mov r0, r4
291e: 47b8 blx r7
2920: 2800 cmp r0, #0
2922: d141 bne.n 29a8 <lv_obj_invalidate_area+0xbc>
lv_obj_t * obj_scr = lv_obj_get_screen(obj);
2924: 4b2f ldr r3, [pc, #188] ; (29e4 <lv_obj_invalidate_area+0xf8>)
2926: 4620 mov r0, r4
2928: 4798 blx r3
lv_disp_t * disp = lv_obj_get_disp(obj_scr);
292a: 4b2f ldr r3, [pc, #188] ; (29e8 <lv_obj_invalidate_area+0xfc>)
lv_obj_t * obj_scr = lv_obj_get_screen(obj);
292c: 4605 mov r5, r0
lv_disp_t * disp = lv_obj_get_disp(obj_scr);
292e: 4798 blx r3
if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) ||
2930: 4b2e ldr r3, [pc, #184] ; (29ec <lv_obj_invalidate_area+0x100>)
lv_disp_t * disp = lv_obj_get_disp(obj_scr);
2932: 4606 mov r6, r0
if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) ||
2934: 4798 blx r3
2936: 4285 cmp r5, r0
2938: d12c bne.n 2994 <lv_obj_invalidate_area+0xa8>
lv_coord_t ext_size = obj->ext_draw_pad;
293a: f9b4 5032 ldrsh.w r5, [r4, #50] ; 0x32
lv_area_copy(&obj_coords, &obj->coords);
293e: 4b2c ldr r3, [pc, #176] ; (29f0 <lv_obj_invalidate_area+0x104>)
2940: f104 0110 add.w r1, r4, #16
2944: a802 add r0, sp, #8
2946: 4798 blx r3
obj_coords.x1 -= ext_size;
2948: f8bd 2008 ldrh.w r2, [sp, #8]
294c: b2ab uxth r3, r5
294e: 1ad2 subs r2, r2, r3
2950: f8ad 2008 strh.w r2, [sp, #8]
obj_coords.y1 -= ext_size;
2954: f8bd 200a ldrh.w r2, [sp, #10]
is_common = _lv_area_intersect(&area_trunc, area, &obj_coords);
2958: 4d26 ldr r5, [pc, #152] ; (29f4 <lv_obj_invalidate_area+0x108>)
obj_coords.y1 -= ext_size;
295a: 1ad2 subs r2, r2, r3
295c: f8ad 200a strh.w r2, [sp, #10]
obj_coords.x2 += ext_size;
2960: f8bd 200c ldrh.w r2, [sp, #12]
2964: 441a add r2, r3
2966: f8ad 200c strh.w r2, [sp, #12]
obj_coords.y2 += ext_size;
296a: f8bd 200e ldrh.w r2, [sp, #14]
is_common = _lv_area_intersect(&area_trunc, area, &obj_coords);
296e: 4641 mov r1, r8
obj_coords.y2 += ext_size;
2970: 4413 add r3, r2
is_common = _lv_area_intersect(&area_trunc, area, &obj_coords);
2972: a804 add r0, sp, #16
2974: aa02 add r2, sp, #8
obj_coords.y2 += ext_size;
2976: f8ad 300e strh.w r3, [sp, #14]
is_common = _lv_area_intersect(&area_trunc, area, &obj_coords);
297a: 47a8 blx r5
if(is_common == false) return; /*The area is not on the object*/
297c: b1a0 cbz r0, 29a8 <lv_obj_invalidate_area+0xbc>
lv_obj_t * par = lv_obj_get_parent(obj);
297e: f8df 8084 ldr.w r8, [pc, #132] ; 2a04 <lv_obj_invalidate_area+0x118>
2982: 4620 mov r0, r4
par = lv_obj_get_parent(par);
2984: 47c0 blx r8
2986: 4604 mov r4, r0
while(par != NULL) {
2988: b988 cbnz r0, 29ae <lv_obj_invalidate_area+0xc2>
if(is_common) _lv_inv_area(disp, &area_trunc);
298a: 4b1b ldr r3, [pc, #108] ; (29f8 <lv_obj_invalidate_area+0x10c>)
298c: a904 add r1, sp, #16
298e: 4630 mov r0, r6
2990: 4798 blx r3
2992: e009 b.n 29a8 <lv_obj_invalidate_area+0xbc>
if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) ||
2994: 4b19 ldr r3, [pc, #100] ; (29fc <lv_obj_invalidate_area+0x110>)
2996: 4630 mov r0, r6
2998: 4798 blx r3
299a: 4285 cmp r5, r0
299c: d0cd beq.n 293a <lv_obj_invalidate_area+0x4e>
obj_scr == lv_disp_get_layer_sys(disp)) {
299e: 4b18 ldr r3, [pc, #96] ; (2a00 <lv_obj_invalidate_area+0x114>)
29a0: 4630 mov r0, r6
29a2: 4798 blx r3
if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) ||
29a4: 4285 cmp r5, r0
29a6: d0c8 beq.n 293a <lv_obj_invalidate_area+0x4e>
}
29a8: b006 add sp, #24
29aa: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
is_common = _lv_area_intersect(&area_trunc, &area_trunc, &par->coords);
29ae: a904 add r1, sp, #16
29b0: f104 0210 add.w r2, r4, #16
29b4: 4608 mov r0, r1
29b6: 47a8 blx r5
if(is_common == false) break; /*If no common parts with parent break;*/
29b8: 2800 cmp r0, #0
29ba: d0f5 beq.n 29a8 <lv_obj_invalidate_area+0xbc>
if(lv_obj_get_hidden(par)) return; /*If the parent is hidden then the child is hidden and won't be drawn*/
29bc: 4620 mov r0, r4
29be: 47b8 blx r7
29c0: 2800 cmp r0, #0
29c2: d1f1 bne.n 29a8 <lv_obj_invalidate_area+0xbc>
par = lv_obj_get_parent(par);
29c4: 4620 mov r0, r4
29c6: e7dd b.n 2984 <lv_obj_invalidate_area+0x98>
29c8: 00001a65 .word 0x00001a65
29cc: 00026e95 .word 0x00026e95
29d0: 000268df .word 0x000268df
29d4: 0000eb79 .word 0x0000eb79
29d8: 00026943 .word 0x00026943
29dc: 00001a6d .word 0x00001a6d
29e0: 000028a1 .word 0x000028a1
29e4: 000023f1 .word 0x000023f1
29e8: 00002449 .word 0x00002449
29ec: 00001af5 .word 0x00001af5
29f0: 00001f9d .word 0x00001f9d
29f4: 0000e111 .word 0x0000e111
29f8: 00005191 .word 0x00005191
29fc: 00001b31 .word 0x00001b31
2a00: 00001b6d .word 0x00001b6d
2a04: 000023a9 .word 0x000023a9
00002a08 <lv_obj_invalidate>:
{
2a08: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2a0a: 4b1a ldr r3, [pc, #104] ; (2a74 <lv_obj_invalidate+0x6c>)
{
2a0c: 4605 mov r5, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2a0e: 4798 blx r3
2a10: 4604 mov r4, r0
2a12: b968 cbnz r0, 2a30 <lv_obj_invalidate+0x28>
2a14: 4b18 ldr r3, [pc, #96] ; (2a78 <lv_obj_invalidate+0x70>)
2a16: 4919 ldr r1, [pc, #100] ; (2a7c <lv_obj_invalidate+0x74>)
2a18: 9300 str r3, [sp, #0]
2a1a: f240 220d movw r2, #525 ; 0x20d
2a1e: 2003 movs r0, #3
2a20: 4e17 ldr r6, [pc, #92] ; (2a80 <lv_obj_invalidate+0x78>)
2a22: 47b0 blx r6
2a24: 4817 ldr r0, [pc, #92] ; (2a84 <lv_obj_invalidate+0x7c>)
2a26: 4918 ldr r1, [pc, #96] ; (2a88 <lv_obj_invalidate+0x80>)
2a28: 462a mov r2, r5
2a2a: 4623 mov r3, r4
2a2c: 4788 blx r1
2a2e: e7fe b.n 2a2e <lv_obj_invalidate+0x26>
lv_coord_t ext_size = obj->ext_draw_pad;
2a30: f9b5 4032 ldrsh.w r4, [r5, #50] ; 0x32
lv_area_copy(&obj_coords, &obj->coords);
2a34: 4b15 ldr r3, [pc, #84] ; (2a8c <lv_obj_invalidate+0x84>)
2a36: f105 0110 add.w r1, r5, #16
2a3a: a802 add r0, sp, #8
2a3c: 4798 blx r3
obj_coords.x1 -= ext_size;
2a3e: f8bd 2008 ldrh.w r2, [sp, #8]
2a42: b2a3 uxth r3, r4
2a44: 1ad2 subs r2, r2, r3
2a46: f8ad 2008 strh.w r2, [sp, #8]
obj_coords.y1 -= ext_size;
2a4a: f8bd 200a ldrh.w r2, [sp, #10]
2a4e: 1ad2 subs r2, r2, r3
2a50: f8ad 200a strh.w r2, [sp, #10]
obj_coords.x2 += ext_size;
2a54: f8bd 200c ldrh.w r2, [sp, #12]
2a58: 441a add r2, r3
2a5a: f8ad 200c strh.w r2, [sp, #12]
obj_coords.y2 += ext_size;
2a5e: f8bd 200e ldrh.w r2, [sp, #14]
2a62: 4413 add r3, r2
2a64: f8ad 300e strh.w r3, [sp, #14]
lv_obj_invalidate_area(obj, &obj_coords);
2a68: a902 add r1, sp, #8
2a6a: 4b09 ldr r3, [pc, #36] ; (2a90 <lv_obj_invalidate+0x88>)
2a6c: 4628 mov r0, r5
2a6e: 4798 blx r3
}
2a70: b004 add sp, #16
2a72: bd70 pop {r4, r5, r6, pc}
2a74: 00001a65 .word 0x00001a65
2a78: 00026eac .word 0x00026eac
2a7c: 000268df .word 0x000268df
2a80: 0000eb79 .word 0x0000eb79
2a84: 00026943 .word 0x00026943
2a88: 00001a6d .word 0x00001a6d
2a8c: 00001f9d .word 0x00001f9d
2a90: 000028ed .word 0x000028ed
00002a94 <lv_obj_move_foreground>:
{
2a94: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2a96: 4b19 ldr r3, [pc, #100] ; (2afc <lv_obj_move_foreground+0x68>)
{
2a98: 4605 mov r5, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2a9a: 4798 blx r3
2a9c: 4604 mov r4, r0
2a9e: b968 cbnz r0, 2abc <lv_obj_move_foreground+0x28>
2aa0: 4b17 ldr r3, [pc, #92] ; (2b00 <lv_obj_move_foreground+0x6c>)
2aa2: 4918 ldr r1, [pc, #96] ; (2b04 <lv_obj_move_foreground+0x70>)
2aa4: 9300 str r3, [sp, #0]
2aa6: f240 2262 movw r2, #610 ; 0x262
2aaa: 2003 movs r0, #3
2aac: 4e16 ldr r6, [pc, #88] ; (2b08 <lv_obj_move_foreground+0x74>)
2aae: 47b0 blx r6
2ab0: 4816 ldr r0, [pc, #88] ; (2b0c <lv_obj_move_foreground+0x78>)
2ab2: 4917 ldr r1, [pc, #92] ; (2b10 <lv_obj_move_foreground+0x7c>)
2ab4: 462a mov r2, r5
2ab6: 4623 mov r3, r4
2ab8: 4788 blx r1
2aba: e7fe b.n 2aba <lv_obj_move_foreground+0x26>
lv_obj_t * parent = lv_obj_get_parent(obj);
2abc: 4b15 ldr r3, [pc, #84] ; (2b14 <lv_obj_move_foreground+0x80>)
2abe: 4628 mov r0, r5
2ac0: 4798 blx r3
if(_lv_ll_get_head(&parent->child_ll) == obj) return;
2ac2: 1d07 adds r7, r0, #4
2ac4: 4b14 ldr r3, [pc, #80] ; (2b18 <lv_obj_move_foreground+0x84>)
lv_obj_t * parent = lv_obj_get_parent(obj);
2ac6: 4604 mov r4, r0
if(_lv_ll_get_head(&parent->child_ll) == obj) return;
2ac8: 4638 mov r0, r7
2aca: 4798 blx r3
2acc: 4285 cmp r5, r0
2ace: d013 beq.n 2af8 <lv_obj_move_foreground+0x64>
lv_obj_invalidate(parent);
2ad0: 4e12 ldr r6, [pc, #72] ; (2b1c <lv_obj_move_foreground+0x88>)
2ad2: 4620 mov r0, r4
2ad4: 47b0 blx r6
_lv_ll_chg_list(&parent->child_ll, &parent->child_ll, obj, true);
2ad6: 462a mov r2, r5
2ad8: 4639 mov r1, r7
2ada: 4638 mov r0, r7
2adc: 2301 movs r3, #1
2ade: 4f10 ldr r7, [pc, #64] ; (2b20 <lv_obj_move_foreground+0x8c>)
2ae0: 47b8 blx r7
parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG, obj);
2ae2: 69e3 ldr r3, [r4, #28]
2ae4: 462a mov r2, r5
2ae6: 2101 movs r1, #1
2ae8: 4620 mov r0, r4
2aea: 4798 blx r3
lv_obj_invalidate(parent);
2aec: 4620 mov r0, r4
2aee: 4633 mov r3, r6
}
2af0: b003 add sp, #12
2af2: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr}
lv_obj_invalidate(parent);
2af6: 4718 bx r3
}
2af8: b003 add sp, #12
2afa: bdf0 pop {r4, r5, r6, r7, pc}
2afc: 00001a65 .word 0x00001a65
2b00: 00026ebe .word 0x00026ebe
2b04: 000268df .word 0x000268df
2b08: 0000eb79 .word 0x0000eb79
2b0c: 00026943 .word 0x00026943
2b10: 00001a6d .word 0x00001a6d
2b14: 000023a9 .word 0x000023a9
2b18: 0000e92d .word 0x0000e92d
2b1c: 00002a09 .word 0x00002a09
2b20: 0000ea71 .word 0x0000ea71
00002b24 <lv_obj_set_pos>:
{
2b24: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2b28: 4b2e ldr r3, [pc, #184] ; (2be4 <lv_obj_set_pos+0xc0>)
{
2b2a: b087 sub sp, #28
2b2c: 4604 mov r4, r0
2b2e: 4688 mov r8, r1
2b30: 4617 mov r7, r2
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2b32: 4798 blx r3
2b34: 4605 mov r5, r0
2b36: b968 cbnz r0, 2b54 <lv_obj_set_pos+0x30>
2b38: 4b2b ldr r3, [pc, #172] ; (2be8 <lv_obj_set_pos+0xc4>)
2b3a: 492c ldr r1, [pc, #176] ; (2bec <lv_obj_set_pos+0xc8>)
2b3c: 9300 str r3, [sp, #0]
2b3e: f240 2296 movw r2, #662 ; 0x296
2b42: 2003 movs r0, #3
2b44: 4e2a ldr r6, [pc, #168] ; (2bf0 <lv_obj_set_pos+0xcc>)
2b46: 47b0 blx r6
2b48: 482a ldr r0, [pc, #168] ; (2bf4 <lv_obj_set_pos+0xd0>)
2b4a: 492b ldr r1, [pc, #172] ; (2bf8 <lv_obj_set_pos+0xd4>)
2b4c: 4622 mov r2, r4
2b4e: 462b mov r3, r5
2b50: 4788 blx r1
2b52: e7fe b.n 2b52 <lv_obj_set_pos+0x2e>
lv_obj_t * par = obj->parent;
2b54: 6826 ldr r6, [r4, #0]
if(par == NULL) {
2b56: b95e cbnz r6, 2b70 <lv_obj_set_pos+0x4c>
LV_LOG_WARN("lv_obj_set_pos: not changing position of screen object");
2b58: 4b28 ldr r3, [pc, #160] ; (2bfc <lv_obj_set_pos+0xd8>)
2b5a: 9300 str r3, [sp, #0]
2b5c: 4923 ldr r1, [pc, #140] ; (2bec <lv_obj_set_pos+0xc8>)
2b5e: 4b22 ldr r3, [pc, #136] ; (2be8 <lv_obj_set_pos+0xc4>)
2b60: 4c23 ldr r4, [pc, #140] ; (2bf0 <lv_obj_set_pos+0xcc>)
2b62: f44f 7227 mov.w r2, #668 ; 0x29c
2b66: 2002 movs r0, #2
2b68: 47a0 blx r4
}
2b6a: b007 add sp, #28
2b6c: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
diff.x = x - obj->coords.x1;
2b70: 8a22 ldrh r2, [r4, #16]
2b72: 8a33 ldrh r3, [r6, #16]
2b74: 1a9b subs r3, r3, r2
2b76: eb03 0108 add.w r1, r3, r8
diff.y = y - obj->coords.y1;
2b7a: 8a62 ldrh r2, [r4, #18]
2b7c: 8a73 ldrh r3, [r6, #18]
2b7e: 1a9b subs r3, r3, r2
2b80: 19da adds r2, r3, r7
2b82: b297 uxth r7, r2
diff.x = x - obj->coords.x1;
2b84: fa1f f881 uxth.w r8, r1
diff.y = y - obj->coords.y1;
2b88: b212 sxth r2, r2
if(diff.x == 0 && diff.y == 0) return;
2b8a: ea58 0307 orrs.w r3, r8, r7
diff.x = x - obj->coords.x1;
2b8e: b20d sxth r5, r1
diff.y = y - obj->coords.y1;
2b90: 9203 str r2, [sp, #12]
if(diff.x == 0 && diff.y == 0) return;
2b92: d0ea beq.n 2b6a <lv_obj_set_pos+0x46>
lv_obj_invalidate(obj);
2b94: 4620 mov r0, r4
2b96: f8df 9070 ldr.w r9, [pc, #112] ; 2c08 <lv_obj_set_pos+0xe4>
2b9a: 47c8 blx r9
lv_obj_get_coords(obj, &ori);
2b9c: a904 add r1, sp, #16
2b9e: 4620 mov r0, r4
2ba0: 4b17 ldr r3, [pc, #92] ; (2c00 <lv_obj_set_pos+0xdc>)
2ba2: 4798 blx r3
obj->coords.x1 += diff.x;
2ba4: 8a23 ldrh r3, [r4, #16]
refresh_children_position(obj, diff.x, diff.y);
2ba6: 9a03 ldr r2, [sp, #12]
obj->coords.x1 += diff.x;
2ba8: 4443 add r3, r8
2baa: 8223 strh r3, [r4, #16]
obj->coords.y1 += diff.y;
2bac: 8a63 ldrh r3, [r4, #18]
2bae: 443b add r3, r7
2bb0: 8263 strh r3, [r4, #18]
obj->coords.x2 += diff.x;
2bb2: 8aa3 ldrh r3, [r4, #20]
2bb4: 4498 add r8, r3
obj->coords.y2 += diff.y;
2bb6: 8ae3 ldrh r3, [r4, #22]
obj->coords.x2 += diff.x;
2bb8: f8a4 8014 strh.w r8, [r4, #20]
obj->coords.y2 += diff.y;
2bbc: 441f add r7, r3
refresh_children_position(obj, diff.x, diff.y);
2bbe: 4629 mov r1, r5
2bc0: 4620 mov r0, r4
2bc2: 4b10 ldr r3, [pc, #64] ; (2c04 <lv_obj_set_pos+0xe0>)
obj->coords.y2 += diff.y;
2bc4: 82e7 strh r7, [r4, #22]
refresh_children_position(obj, diff.x, diff.y);
2bc6: 4798 blx r3
obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori);
2bc8: 69e3 ldr r3, [r4, #28]
2bca: aa04 add r2, sp, #16
2bcc: 2102 movs r1, #2
2bce: 4620 mov r0, r4
2bd0: 4798 blx r3
par->signal_cb(par, LV_SIGNAL_CHILD_CHG, obj);
2bd2: 69f3 ldr r3, [r6, #28]
2bd4: 4622 mov r2, r4
2bd6: 2101 movs r1, #1
2bd8: 4630 mov r0, r6
2bda: 4798 blx r3
lv_obj_invalidate(obj);
2bdc: 4620 mov r0, r4
2bde: 47c8 blx r9
2be0: e7c3 b.n 2b6a <lv_obj_set_pos+0x46>
2be2: bf00 nop
2be4: 00001a65 .word 0x00001a65
2be8: 00026eec .word 0x00026eec
2bec: 000268df .word 0x000268df
2bf0: 0000eb79 .word 0x0000eb79
2bf4: 00026943 .word 0x00026943
2bf8: 00001a6d .word 0x00001a6d
2bfc: 000269ce .word 0x000269ce
2c00: 00002559 .word 0x00002559
2c04: 00001f45 .word 0x00001f45
2c08: 00002a09 .word 0x00002a09
00002c0c <lv_obj_set_x>:
{
2c0c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2c0e: 4b0f ldr r3, [pc, #60] ; (2c4c <lv_obj_set_x+0x40>)
{
2c10: 4604 mov r4, r0
2c12: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2c14: 4798 blx r3
2c16: 4605 mov r5, r0
2c18: b968 cbnz r0, 2c36 <lv_obj_set_x+0x2a>
2c1a: 4b0d ldr r3, [pc, #52] ; (2c50 <lv_obj_set_x+0x44>)
2c1c: 490d ldr r1, [pc, #52] ; (2c54 <lv_obj_set_x+0x48>)
2c1e: 9300 str r3, [sp, #0]
2c20: f44f 7233 mov.w r2, #716 ; 0x2cc
2c24: 2003 movs r0, #3
2c26: 4e0c ldr r6, [pc, #48] ; (2c58 <lv_obj_set_x+0x4c>)
2c28: 47b0 blx r6
2c2a: 480c ldr r0, [pc, #48] ; (2c5c <lv_obj_set_x+0x50>)
2c2c: 490c ldr r1, [pc, #48] ; (2c60 <lv_obj_set_x+0x54>)
2c2e: 4622 mov r2, r4
2c30: 462b mov r3, r5
2c32: 4788 blx r1
2c34: e7fe b.n 2c34 <lv_obj_set_x+0x28>
lv_obj_set_pos(obj, x, lv_obj_get_y(obj));
2c36: 4b0b ldr r3, [pc, #44] ; (2c64 <lv_obj_set_x+0x58>)
2c38: 4620 mov r0, r4
2c3a: 4798 blx r3
2c3c: 4b0a ldr r3, [pc, #40] ; (2c68 <lv_obj_set_x+0x5c>)
2c3e: 4602 mov r2, r0
2c40: 4631 mov r1, r6
2c42: 4620 mov r0, r4
}
2c44: b002 add sp, #8
2c46: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_set_pos(obj, x, lv_obj_get_y(obj));
2c4a: 4718 bx r3
2c4c: 00001a65 .word 0x00001a65
2c50: 00026efb .word 0x00026efb
2c54: 000268df .word 0x000268df
2c58: 0000eb79 .word 0x0000eb79
2c5c: 00026943 .word 0x00026943
2c60: 00001a6d .word 0x00001a6d
2c64: 00002611 .word 0x00002611
2c68: 00002b25 .word 0x00002b25
00002c6c <lv_obj_set_y>:
{
2c6c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2c6e: 4b0f ldr r3, [pc, #60] ; (2cac <lv_obj_set_y+0x40>)
{
2c70: 4604 mov r4, r0
2c72: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2c74: 4798 blx r3
2c76: 4605 mov r5, r0
2c78: b968 cbnz r0, 2c96 <lv_obj_set_y+0x2a>
2c7a: 4b0d ldr r3, [pc, #52] ; (2cb0 <lv_obj_set_y+0x44>)
2c7c: 490d ldr r1, [pc, #52] ; (2cb4 <lv_obj_set_y+0x48>)
2c7e: 9300 str r3, [sp, #0]
2c80: f44f 7236 mov.w r2, #728 ; 0x2d8
2c84: 2003 movs r0, #3
2c86: 4e0c ldr r6, [pc, #48] ; (2cb8 <lv_obj_set_y+0x4c>)
2c88: 47b0 blx r6
2c8a: 480c ldr r0, [pc, #48] ; (2cbc <lv_obj_set_y+0x50>)
2c8c: 490c ldr r1, [pc, #48] ; (2cc0 <lv_obj_set_y+0x54>)
2c8e: 4622 mov r2, r4
2c90: 462b mov r3, r5
2c92: 4788 blx r1
2c94: e7fe b.n 2c94 <lv_obj_set_y+0x28>
lv_obj_set_pos(obj, lv_obj_get_x(obj), y);
2c96: 4b0b ldr r3, [pc, #44] ; (2cc4 <lv_obj_set_y+0x58>)
2c98: 4620 mov r0, r4
2c9a: 4798 blx r3
2c9c: 4b0a ldr r3, [pc, #40] ; (2cc8 <lv_obj_set_y+0x5c>)
2c9e: 4601 mov r1, r0
2ca0: 4632 mov r2, r6
2ca2: 4620 mov r0, r4
}
2ca4: b002 add sp, #8
2ca6: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_set_pos(obj, lv_obj_get_x(obj), y);
2caa: 4718 bx r3
2cac: 00001a65 .word 0x00001a65
2cb0: 00026f08 .word 0x00026f08
2cb4: 000268df .word 0x000268df
2cb8: 0000eb79 .word 0x0000eb79
2cbc: 00026943 .word 0x00026943
2cc0: 00001a6d .word 0x00001a6d
2cc4: 000025b1 .word 0x000025b1
2cc8: 00002b25 .word 0x00002b25
00002ccc <lv_obj_align>:
{
2ccc: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2cd0: f8df a0d8 ldr.w sl, [pc, #216] ; 2dac <lv_obj_align+0xe0>
{
2cd4: f9bd 8030 ldrsh.w r8, [sp, #48] ; 0x30
2cd8: 4604 mov r4, r0
2cda: 460d mov r5, r1
2cdc: 4617 mov r7, r2
2cde: 461e mov r6, r3
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2ce0: 47d0 blx sl
2ce2: 4681 mov r9, r0
2ce4: b968 cbnz r0, 2d02 <lv_obj_align+0x36>
2ce6: 4b2a ldr r3, [pc, #168] ; (2d90 <lv_obj_align+0xc4>)
2ce8: 492a ldr r1, [pc, #168] ; (2d94 <lv_obj_align+0xc8>)
2cea: 9300 str r3, [sp, #0]
2cec: f240 326d movw r2, #877 ; 0x36d
2cf0: 2003 movs r0, #3
2cf2: 4d29 ldr r5, [pc, #164] ; (2d98 <lv_obj_align+0xcc>)
2cf4: 47a8 blx r5
2cf6: 4829 ldr r0, [pc, #164] ; (2d9c <lv_obj_align+0xd0>)
2cf8: 4929 ldr r1, [pc, #164] ; (2da0 <lv_obj_align+0xd4>)
2cfa: 4622 mov r2, r4
2cfc: 464b mov r3, r9
2cfe: 4788 blx r1
2d00: e7fe b.n 2d00 <lv_obj_align+0x34>
if(base == NULL) base = lv_obj_get_parent(obj);
2d02: b91d cbnz r5, 2d0c <lv_obj_align+0x40>
2d04: 4b27 ldr r3, [pc, #156] ; (2da4 <lv_obj_align+0xd8>)
2d06: 4620 mov r0, r4
2d08: 4798 blx r3
2d0a: 4605 mov r5, r0
LV_ASSERT_OBJ(base, LV_OBJX_NAME);
2d0c: 4628 mov r0, r5
2d0e: 47d0 blx sl
2d10: 4681 mov r9, r0
2d12: b968 cbnz r0, 2d30 <lv_obj_align+0x64>
2d14: 4b1e ldr r3, [pc, #120] ; (2d90 <lv_obj_align+0xc4>)
2d16: 491f ldr r1, [pc, #124] ; (2d94 <lv_obj_align+0xc8>)
2d18: 9300 str r3, [sp, #0]
2d1a: f240 3271 movw r2, #881 ; 0x371
2d1e: 2003 movs r0, #3
2d20: 4c1d ldr r4, [pc, #116] ; (2d98 <lv_obj_align+0xcc>)
2d22: 47a0 blx r4
2d24: 481d ldr r0, [pc, #116] ; (2d9c <lv_obj_align+0xd0>)
2d26: 491e ldr r1, [pc, #120] ; (2da0 <lv_obj_align+0xd4>)
2d28: 462a mov r2, r5
2d2a: 464b mov r3, r9
2d2c: 4788 blx r1
2d2e: e7fe b.n 2d2e <lv_obj_align+0x62>
_lv_area_align(&base->coords, &obj->coords, align, &new_pos);
2d30: 463a mov r2, r7
2d32: f104 0110 add.w r1, r4, #16
2d36: ab03 add r3, sp, #12
2d38: f105 0010 add.w r0, r5, #16
2d3c: f8df 9070 ldr.w r9, [pc, #112] ; 2db0 <lv_obj_align+0xe4>
2d40: 47c8 blx r9
lv_obj_t * par = lv_obj_get_parent(obj);
2d42: 4b18 ldr r3, [pc, #96] ; (2da4 <lv_obj_align+0xd8>)
2d44: 4620 mov r0, r4
2d46: 4798 blx r3
new_pos.y += y_ofs;
2d48: f8bd 200e ldrh.w r2, [sp, #14]
new_pos.x += x_ofs;
2d4c: f8bd 100c ldrh.w r1, [sp, #12]
lv_coord_t par_abs_y = par->coords.y1;
2d50: f9b0 3012 ldrsh.w r3, [r0, #18]
new_pos.x -= par_abs_x;
2d54: 8a00 ldrh r0, [r0, #16]
new_pos.y += y_ofs;
2d56: 4442 add r2, r8
new_pos.x += x_ofs;
2d58: 4431 add r1, r6
new_pos.x -= par_abs_x;
2d5a: 1a09 subs r1, r1, r0
new_pos.y -= par_abs_y;
2d5c: 1ad2 subs r2, r2, r3
new_pos.x -= par_abs_x;
2d5e: b209 sxth r1, r1
new_pos.y -= par_abs_y;
2d60: b212 sxth r2, r2
lv_obj_set_pos(obj, new_pos.x, new_pos.y);
2d62: 4b11 ldr r3, [pc, #68] ; (2da8 <lv_obj_align+0xdc>)
new_pos.x -= par_abs_x;
2d64: f8ad 100c strh.w r1, [sp, #12]
lv_obj_set_pos(obj, new_pos.x, new_pos.y);
2d68: 4620 mov r0, r4
new_pos.y -= par_abs_y;
2d6a: f8ad 200e strh.w r2, [sp, #14]
lv_obj_set_pos(obj, new_pos.x, new_pos.y);
2d6e: 4798 blx r3
obj->realign.origo_align = 0;
2d70: f894 3049 ldrb.w r3, [r4, #73] ; 0x49
obj->realign.align = align;
2d74: f884 7048 strb.w r7, [r4, #72] ; 0x48
obj->realign.origo_align = 0;
2d78: f36f 0341 bfc r3, #1, #1
obj->realign.xofs = x_ofs;
2d7c: f8a4 6044 strh.w r6, [r4, #68] ; 0x44
obj->realign.yofs = y_ofs;
2d80: f8a4 8046 strh.w r8, [r4, #70] ; 0x46
obj->realign.base = base;
2d84: 6425 str r5, [r4, #64] ; 0x40
obj->realign.origo_align = 0;
2d86: f884 3049 strb.w r3, [r4, #73] ; 0x49
}
2d8a: b004 add sp, #16
2d8c: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
2d90: 00026f15 .word 0x00026f15
2d94: 000268df .word 0x000268df
2d98: 0000eb79 .word 0x0000eb79
2d9c: 00026943 .word 0x00026943
2da0: 00001a6d .word 0x00001a6d
2da4: 000023a9 .word 0x000023a9
2da8: 00002b25 .word 0x00002b25
2dac: 00001a65 .word 0x00001a65
2db0: 0000e3b5 .word 0x0000e3b5
00002db4 <lv_obj_align_origo>:
{
2db4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
2db8: b087 sub sp, #28
2dba: e9cd 2303 strd r2, r3, [sp, #12]
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2dbe: f8df b1a4 ldr.w fp, [pc, #420] ; 2f64 <lv_obj_align_origo+0x1b0>
{
2dc2: f9bd 3040 ldrsh.w r3, [sp, #64] ; 0x40
2dc6: 9305 str r3, [sp, #20]
2dc8: 4680 mov r8, r0
2dca: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2dcc: 47d8 blx fp
2dce: 4604 mov r4, r0
2dd0: b968 cbnz r0, 2dee <lv_obj_align_origo+0x3a>
2dd2: 4b5a ldr r3, [pc, #360] ; (2f3c <lv_obj_align_origo+0x188>)
2dd4: 495a ldr r1, [pc, #360] ; (2f40 <lv_obj_align_origo+0x18c>)
2dd6: 9300 str r3, [sp, #0]
2dd8: f240 3295 movw r2, #917 ; 0x395
2ddc: 2003 movs r0, #3
2dde: 4d59 ldr r5, [pc, #356] ; (2f44 <lv_obj_align_origo+0x190>)
2de0: 47a8 blx r5
2de2: 4859 ldr r0, [pc, #356] ; (2f48 <lv_obj_align_origo+0x194>)
2de4: 4959 ldr r1, [pc, #356] ; (2f4c <lv_obj_align_origo+0x198>)
2de6: 4642 mov r2, r8
2de8: 4623 mov r3, r4
2dea: 4788 blx r1
2dec: e7fe b.n 2dec <lv_obj_align_origo+0x38>
lv_coord_t new_x = lv_obj_get_x(obj);
2dee: 4b58 ldr r3, [pc, #352] ; (2f50 <lv_obj_align_origo+0x19c>)
lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2;
2df0: f8df 9174 ldr.w r9, [pc, #372] ; 2f68 <lv_obj_align_origo+0x1b4>
lv_coord_t new_x = lv_obj_get_x(obj);
2df4: 4640 mov r0, r8
2df6: 4798 blx r3
lv_coord_t new_y = lv_obj_get_y(obj);
2df8: 4b56 ldr r3, [pc, #344] ; (2f54 <lv_obj_align_origo+0x1a0>)
lv_coord_t new_x = lv_obj_get_x(obj);
2dfa: 4604 mov r4, r0
lv_coord_t new_y = lv_obj_get_y(obj);
2dfc: 4640 mov r0, r8
2dfe: 4798 blx r3
lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2;
2e00: 4a55 ldr r2, [pc, #340] ; (2f58 <lv_obj_align_origo+0x1a4>)
lv_coord_t new_y = lv_obj_get_y(obj);
2e02: 4682 mov sl, r0
lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2;
2e04: 4640 mov r0, r8
2e06: 4790 blx r2
2e08: 4605 mov r5, r0
lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2;
2e0a: 4640 mov r0, r8
2e0c: 47c8 blx r9
2e0e: 4607 mov r7, r0
if(base == NULL) {
2e10: b91e cbnz r6, 2e1a <lv_obj_align_origo+0x66>
base = lv_obj_get_parent(obj);
2e12: 4952 ldr r1, [pc, #328] ; (2f5c <lv_obj_align_origo+0x1a8>)
2e14: 4640 mov r0, r8
2e16: 4788 blx r1
2e18: 4606 mov r6, r0
LV_ASSERT_OBJ(base, LV_OBJX_NAME);
2e1a: 4630 mov r0, r6
2e1c: 47d8 blx fp
2e1e: 4a4e ldr r2, [pc, #312] ; (2f58 <lv_obj_align_origo+0x1a4>)
2e20: 4683 mov fp, r0
2e22: b968 cbnz r0, 2e40 <lv_obj_align_origo+0x8c>
2e24: 4b45 ldr r3, [pc, #276] ; (2f3c <lv_obj_align_origo+0x188>)
2e26: 4946 ldr r1, [pc, #280] ; (2f40 <lv_obj_align_origo+0x18c>)
2e28: 9300 str r3, [sp, #0]
2e2a: f240 32a1 movw r2, #929 ; 0x3a1
2e2e: 2003 movs r0, #3
2e30: 4c44 ldr r4, [pc, #272] ; (2f44 <lv_obj_align_origo+0x190>)
2e32: 47a0 blx r4
2e34: 4844 ldr r0, [pc, #272] ; (2f48 <lv_obj_align_origo+0x194>)
2e36: 4945 ldr r1, [pc, #276] ; (2f4c <lv_obj_align_origo+0x198>)
2e38: 4632 mov r2, r6
2e3a: 465b mov r3, fp
2e3c: 4788 blx r1
2e3e: e7fe b.n 2e3e <lv_obj_align_origo+0x8a>
switch(align) {
2e40: 9b03 ldr r3, [sp, #12]
lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2;
2e42: eb05 75d5 add.w r5, r5, r5, lsr #31
lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2;
2e46: eb07 77d7 add.w r7, r7, r7, lsr #31
lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2;
2e4a: f345 054f sbfx r5, r5, #1, #16
lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2;
2e4e: f347 074f sbfx r7, r7, #1, #16
switch(align) {
2e52: 2b14 cmp r3, #20
2e54: d824 bhi.n 2ea0 <lv_obj_align_origo+0xec>
2e56: e8df f003 tbb [pc, r3]
2e5a: 580b .short 0x580b
2e5c: 4b5e6119 .word 0x4b5e6119
2e60: 58665b6b .word 0x58665b6b
2e64: 4b5e6119 .word 0x4b5e6119
2e68: 5e5b586b .word 0x5e5b586b
2e6c: 6661 .short 0x6661
2e6e: 6b .byte 0x6b
2e6f: 00 .byte 0x00
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
2e70: 4630 mov r0, r6
2e72: 4790 blx r2
2e74: eb00 70d0 add.w r0, r0, r0, lsr #31
2e78: ebc5 0460 rsb r4, r5, r0, asr #1
2e7c: b224 sxth r4, r4
new_y = lv_obj_get_height(base) / 2 - obj_h_half;
2e7e: 4630 mov r0, r6
2e80: 47c8 blx r9
2e82: eb00 70d0 add.w r0, r0, r0, lsr #31
2e86: ebc7 0360 rsb r3, r7, r0, asr #1
2e8a: e007 b.n 2e9c <lv_obj_align_origo+0xe8>
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
2e8c: 4630 mov r0, r6
2e8e: 4790 blx r2
2e90: eb00 70d0 add.w r0, r0, r0, lsr #31
2e94: ebc5 0460 rsb r4, r5, r0, asr #1
2e98: b224 sxth r4, r4
new_y = -obj_h_half;
2e9a: 427b negs r3, r7
new_y = lv_obj_get_height(base) / 2 - obj_h_half;
2e9c: fa0f fa83 sxth.w sl, r3
lv_obj_t * par = lv_obj_get_parent(obj);
2ea0: 4a2e ldr r2, [pc, #184] ; (2f5c <lv_obj_align_origo+0x1a8>)
2ea2: 4640 mov r0, r8
2ea4: 4790 blx r2
new_x += x_ofs + base_abs_x;
2ea6: 9b04 ldr r3, [sp, #16]
2ea8: 8a31 ldrh r1, [r6, #16]
new_x -= par_abs_x;
2eaa: 8a02 ldrh r2, [r0, #16]
new_x += x_ofs + base_abs_x;
2eac: 4419 add r1, r3
2eae: 4421 add r1, r4
new_y += y_ofs + base_abs_y;
2eb0: 9b05 ldr r3, [sp, #20]
new_x -= par_abs_x;
2eb2: 1a89 subs r1, r1, r2
new_y += y_ofs + base_abs_y;
2eb4: 8a72 ldrh r2, [r6, #18]
2eb6: 441a add r2, r3
new_y -= par_abs_y;
2eb8: 8a43 ldrh r3, [r0, #18]
new_y += y_ofs + base_abs_y;
2eba: 4452 add r2, sl
new_y -= par_abs_y;
2ebc: 1ad2 subs r2, r2, r3
lv_obj_set_pos(obj, new_x, new_y);
2ebe: b212 sxth r2, r2
2ec0: 4b27 ldr r3, [pc, #156] ; (2f60 <lv_obj_align_origo+0x1ac>)
2ec2: b209 sxth r1, r1
2ec4: 4640 mov r0, r8
2ec6: 4798 blx r3
obj->realign.align = align;
2ec8: 9b03 ldr r3, [sp, #12]
2eca: f888 3048 strb.w r3, [r8, #72] ; 0x48
obj->realign.xofs = x_ofs;
2ece: 9b04 ldr r3, [sp, #16]
2ed0: f8a8 3044 strh.w r3, [r8, #68] ; 0x44
obj->realign.yofs = y_ofs;
2ed4: 9b05 ldr r3, [sp, #20]
2ed6: f8a8 3046 strh.w r3, [r8, #70] ; 0x46
obj->realign.origo_align = 1;
2eda: f898 3049 ldrb.w r3, [r8, #73] ; 0x49
obj->realign.base = base;
2ede: f8c8 6040 str.w r6, [r8, #64] ; 0x40
obj->realign.origo_align = 1;
2ee2: f043 0302 orr.w r3, r3, #2
2ee6: f888 3049 strb.w r3, [r8, #73] ; 0x49
}
2eea: b007 add sp, #28
2eec: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
new_x = lv_obj_get_width(base) / 2 - obj_w_half;
2ef0: 4630 mov r0, r6
2ef2: 4790 blx r2
2ef4: eb00 70d0 add.w r0, r0, r0, lsr #31
2ef8: ebc5 0460 rsb r4, r5, r0, asr #1
2efc: b224 sxth r4, r4
new_y = lv_obj_get_height(base) - obj_h_half;
2efe: 4630 mov r0, r6
2f00: 47c8 blx r9
2f02: 1bc0 subs r0, r0, r7
2f04: fa0f fa80 sxth.w sl, r0
break;
2f08: e7ca b.n 2ea0 <lv_obj_align_origo+0xec>
new_x = -obj_w_half;
2f0a: 426d negs r5, r5
2f0c: b22c sxth r4, r5
new_y = -obj_h_half;
2f0e: e7c4 b.n 2e9a <lv_obj_align_origo+0xe6>
new_x = -obj_w_half;
2f10: 426d negs r5, r5
2f12: b22c sxth r4, r5
new_y = lv_obj_get_height(base) / 2 - obj_h_half;
2f14: e7b3 b.n 2e7e <lv_obj_align_origo+0xca>
new_x = -obj_w_half;
2f16: 426d negs r5, r5
2f18: b22c sxth r4, r5
new_y = lv_obj_get_height(base) - obj_h_half;
2f1a: e7f0 b.n 2efe <lv_obj_align_origo+0x14a>
new_x = lv_obj_get_width(base) - obj_w_half;
2f1c: 4630 mov r0, r6
2f1e: 4790 blx r2
2f20: 1b40 subs r0, r0, r5
2f22: b204 sxth r4, r0
2f24: e7b9 b.n 2e9a <lv_obj_align_origo+0xe6>
new_x = lv_obj_get_width(base) - obj_w_half;
2f26: 4630 mov r0, r6
2f28: 4790 blx r2
2f2a: 1b40 subs r0, r0, r5
2f2c: b204 sxth r4, r0
2f2e: e7a6 b.n 2e7e <lv_obj_align_origo+0xca>
new_x = lv_obj_get_width(base) - obj_w_half;
2f30: 4630 mov r0, r6
2f32: 4790 blx r2
2f34: 1b40 subs r0, r0, r5
2f36: b204 sxth r4, r0
2f38: e7e1 b.n 2efe <lv_obj_align_origo+0x14a>
2f3a: bf00 nop
2f3c: 00026f22 .word 0x00026f22
2f40: 000268df .word 0x000268df
2f44: 0000eb79 .word 0x0000eb79
2f48: 00026943 .word 0x00026943
2f4c: 00001a6d .word 0x00001a6d
2f50: 000025b1 .word 0x000025b1
2f54: 00002611 .word 0x00002611
2f58: 00002671 .word 0x00002671
2f5c: 000023a9 .word 0x000023a9
2f60: 00002b25 .word 0x00002b25
2f64: 00001a65 .word 0x00001a65
2f68: 000026c1 .word 0x000026c1
00002f6c <lv_obj_realign>:
{
2f6c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2f6e: 4b12 ldr r3, [pc, #72] ; (2fb8 <lv_obj_realign+0x4c>)
{
2f70: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
2f72: 4798 blx r3
2f74: 4605 mov r5, r0
2f76: b968 cbnz r0, 2f94 <lv_obj_realign+0x28>
2f78: 4b10 ldr r3, [pc, #64] ; (2fbc <lv_obj_realign+0x50>)
2f7a: 4911 ldr r1, [pc, #68] ; (2fc0 <lv_obj_realign+0x54>)
2f7c: 9300 str r3, [sp, #0]
2f7e: f240 422a movw r2, #1066 ; 0x42a
2f82: 2003 movs r0, #3
2f84: 4e0f ldr r6, [pc, #60] ; (2fc4 <lv_obj_realign+0x58>)
2f86: 47b0 blx r6
2f88: 480f ldr r0, [pc, #60] ; (2fc8 <lv_obj_realign+0x5c>)
2f8a: 4910 ldr r1, [pc, #64] ; (2fcc <lv_obj_realign+0x60>)
2f8c: 4622 mov r2, r4
2f8e: 462b mov r3, r5
2f90: 4788 blx r1
2f92: e7fe b.n 2f92 <lv_obj_realign+0x26>
if(obj->realign.origo_align)
2f94: f894 5049 ldrb.w r5, [r4, #73] ; 0x49
lv_obj_align_origo(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs);
2f98: f9b4 0046 ldrsh.w r0, [r4, #70] ; 0x46
2f9c: 6c21 ldr r1, [r4, #64] ; 0x40
2f9e: f894 2048 ldrb.w r2, [r4, #72] ; 0x48
2fa2: f9b4 3044 ldrsh.w r3, [r4, #68] ; 0x44
2fa6: 9000 str r0, [sp, #0]
2fa8: 4620 mov r0, r4
if(obj->realign.origo_align)
2faa: 07ac lsls r4, r5, #30
lv_obj_align_origo(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs);
2fac: bf4c ite mi
2fae: 4c08 ldrmi r4, [pc, #32] ; (2fd0 <lv_obj_realign+0x64>)
lv_obj_align(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs);
2fb0: 4c08 ldrpl r4, [pc, #32] ; (2fd4 <lv_obj_realign+0x68>)
2fb2: 47a0 blx r4
}
2fb4: b002 add sp, #8
2fb6: bd70 pop {r4, r5, r6, pc}
2fb8: 00001a65 .word 0x00001a65
2fbc: 00026f35 .word 0x00026f35
2fc0: 000268df .word 0x000268df
2fc4: 0000eb79 .word 0x0000eb79
2fc8: 00026943 .word 0x00026943
2fcc: 00001a6d .word 0x00001a6d
2fd0: 00002db5 .word 0x00002db5
2fd4: 00002ccd .word 0x00002ccd
00002fd8 <refresh_children_style>:
{
2fd8: b5f8 push {r3, r4, r5, r6, r7, lr}
lv_obj_t * child = lv_obj_get_child(obj, NULL);
2fda: 2100 movs r1, #0
2fdc: 4e0b ldr r6, [pc, #44] ; (300c <refresh_children_style+0x34>)
lv_obj_invalidate(child);
2fde: 4f0c ldr r7, [pc, #48] ; (3010 <refresh_children_style+0x38>)
{
2fe0: 4605 mov r5, r0
lv_obj_t * child = lv_obj_get_child(obj, NULL);
2fe2: 47b0 blx r6
2fe4: 4604 mov r4, r0
while(child != NULL) {
2fe6: b904 cbnz r4, 2fea <refresh_children_style+0x12>
}
2fe8: bdf8 pop {r3, r4, r5, r6, r7, pc}
lv_obj_invalidate(child);
2fea: 4620 mov r0, r4
2fec: 47b8 blx r7
child->signal_cb(child, LV_SIGNAL_STYLE_CHG, NULL);
2fee: 69e3 ldr r3, [r4, #28]
2ff0: 2200 movs r2, #0
2ff2: 2104 movs r1, #4
2ff4: 4620 mov r0, r4
2ff6: 4798 blx r3
lv_obj_invalidate(child);
2ff8: 4620 mov r0, r4
2ffa: 47b8 blx r7
refresh_children_style(child); /*Check children too*/
2ffc: 4620 mov r0, r4
2ffe: f7ff ffeb bl 2fd8 <refresh_children_style>
child = lv_obj_get_child(obj, child);
3002: 4621 mov r1, r4
3004: 4628 mov r0, r5
3006: 47b0 blx r6
3008: 4604 mov r4, r0
300a: e7ec b.n 2fe6 <refresh_children_style+0xe>
300c: 000024f5 .word 0x000024f5
3010: 00002a09 .word 0x00002a09
00003014 <lv_obj_refresh_style>:
{
3014: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3016: 4b36 ldr r3, [pc, #216] ; (30f0 <lv_obj_refresh_style+0xdc>)
{
3018: 4605 mov r5, r0
301a: 460c mov r4, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
301c: 4798 blx r3
301e: 4606 mov r6, r0
3020: b968 cbnz r0, 303e <lv_obj_refresh_style+0x2a>
3022: 4b34 ldr r3, [pc, #208] ; (30f4 <lv_obj_refresh_style+0xe0>)
3024: 4934 ldr r1, [pc, #208] ; (30f8 <lv_obj_refresh_style+0xe4>)
3026: 9300 str r3, [sp, #0]
3028: f240 521d movw r2, #1309 ; 0x51d
302c: 2003 movs r0, #3
302e: 4c33 ldr r4, [pc, #204] ; (30fc <lv_obj_refresh_style+0xe8>)
3030: 47a0 blx r4
3032: 4833 ldr r0, [pc, #204] ; (3100 <lv_obj_refresh_style+0xec>)
3034: 4933 ldr r1, [pc, #204] ; (3104 <lv_obj_refresh_style+0xf0>)
3036: 462a mov r2, r5
3038: 4633 mov r3, r6
303a: 4788 blx r1
303c: e7fe b.n 303c <lv_obj_refresh_style+0x28>
switch(prop) {
303e: 2c90 cmp r4, #144 ; 0x90
3040: 4e31 ldr r6, [pc, #196] ; (3108 <lv_obj_refresh_style+0xf4>)
3042: d838 bhi.n 30b6 <lv_obj_refresh_style+0xa2>
3044: 2c72 cmp r4, #114 ; 0x72
3046: d819 bhi.n 307c <lv_obj_refresh_style+0x68>
3048: 2c53 cmp r4, #83 ; 0x53
304a: d82e bhi.n 30aa <lv_obj_refresh_style+0x96>
304c: 2c3f cmp r4, #63 ; 0x3f
304e: d822 bhi.n 3096 <lv_obj_refresh_style+0x82>
3050: 2c07 cmp r4, #7
3052: d825 bhi.n 30a0 <lv_obj_refresh_style+0x8c>
3054: 2c01 cmp r4, #1
3056: d918 bls.n 308a <lv_obj_refresh_style+0x76>
lv_obj_invalidate(obj);
3058: 4628 mov r0, r5
305a: 47b0 blx r6
obj->signal_cb(obj, LV_SIGNAL_STYLE_CHG, NULL);
305c: 69eb ldr r3, [r5, #28]
305e: 2200 movs r2, #0
3060: 2104 movs r1, #4
3062: 4628 mov r0, r5
3064: 4798 blx r3
switch(prop) {
3066: 2c18 cmp r4, #24
3068: d834 bhi.n 30d4 <lv_obj_refresh_style+0xc0>
306a: 2c14 cmp r4, #20
306c: d934 bls.n 30d8 <lv_obj_refresh_style+0xc4>
if(obj->parent) obj->parent->signal_cb(obj->parent, LV_SIGNAL_CHILD_CHG, NULL);
306e: 6828 ldr r0, [r5, #0]
3070: b390 cbz r0, 30d8 <lv_obj_refresh_style+0xc4>
3072: 69c3 ldr r3, [r0, #28]
3074: 2200 movs r2, #0
3076: 2101 movs r1, #1
3078: 4798 blx r3
307a: e02d b.n 30d8 <lv_obj_refresh_style+0xc4>
307c: f1a4 0273 sub.w r2, r4, #115 ; 0x73
3080: 4b22 ldr r3, [pc, #136] ; (310c <lv_obj_refresh_style+0xf8>)
3082: b292 uxth r2, r2
3084: 40d3 lsrs r3, r2
3086: 07da lsls r2, r3, #31
3088: d4e6 bmi.n 3058 <lv_obj_refresh_style+0x44>
lv_obj_invalidate(obj);
308a: 4628 mov r0, r5
308c: 4633 mov r3, r6
}
308e: b002 add sp, #8
3090: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
if(prop == LV_STYLE_PROP_ALL || (prop & LV_STYLE_INHERIT_MASK)) refresh_children_style(obj);
3094: 4718 bx r3
3096: f1a4 0240 sub.w r2, r4, #64 ; 0x40
309a: 4b1d ldr r3, [pc, #116] ; (3110 <lv_obj_refresh_style+0xfc>)
309c: b292 uxth r2, r2
309e: e7f1 b.n 3084 <lv_obj_refresh_style+0x70>
switch(prop) {
30a0: f1a4 0310 sub.w r3, r4, #16
30a4: 2b08 cmp r3, #8
30a6: d8f0 bhi.n 308a <lv_obj_refresh_style+0x76>
30a8: e7d6 b.n 3058 <lv_obj_refresh_style+0x44>
30aa: 2c5c cmp r4, #92 ; 0x5c
30ac: d0d4 beq.n 3058 <lv_obj_refresh_style+0x44>
30ae: f1a4 0370 sub.w r3, r4, #112 ; 0x70
30b2: 2b01 cmp r3, #1
30b4: e7f7 b.n 30a6 <lv_obj_refresh_style+0x92>
30b6: f248 0381 movw r3, #32897 ; 0x8081
30ba: 429c cmp r4, r3
30bc: d806 bhi.n 30cc <lv_obj_refresh_style+0xb8>
30be: f248 037f movw r3, #32895 ; 0x807f
30c2: 429c cmp r4, r3
30c4: d8c8 bhi.n 3058 <lv_obj_refresh_style+0x44>
30c6: 2cff cmp r4, #255 ; 0xff
30c8: d1df bne.n 308a <lv_obj_refresh_style+0x76>
30ca: e7c5 b.n 3058 <lv_obj_refresh_style+0x44>
30cc: f248 038e movw r3, #32910 ; 0x808e
30d0: 429c cmp r4, r3
30d2: e7f9 b.n 30c8 <lv_obj_refresh_style+0xb4>
switch(prop) {
30d4: 2cff cmp r4, #255 ; 0xff
30d6: d0ca beq.n 306e <lv_obj_refresh_style+0x5a>
lv_obj_invalidate(obj);
30d8: 4628 mov r0, r5
30da: 47b0 blx r6
if(prop == LV_STYLE_PROP_ALL || (prop & LV_STYLE_INHERIT_MASK)) refresh_children_style(obj);
30dc: 2cff cmp r4, #255 ; 0xff
30de: d001 beq.n 30e4 <lv_obj_refresh_style+0xd0>
30e0: 0423 lsls r3, r4, #16
30e2: d502 bpl.n 30ea <lv_obj_refresh_style+0xd6>
30e4: 4b0b ldr r3, [pc, #44] ; (3114 <lv_obj_refresh_style+0x100>)
30e6: 4628 mov r0, r5
30e8: e7d1 b.n 308e <lv_obj_refresh_style+0x7a>
}
30ea: b002 add sp, #8
30ec: bd70 pop {r4, r5, r6, pc}
30ee: bf00 nop
30f0: 00001a65 .word 0x00001a65
30f4: 00026f44 .word 0x00026f44
30f8: 000268df .word 0x000268df
30fc: 0000eb79 .word 0x0000eb79
3100: 00026943 .word 0x00026943
3104: 00001a6d .word 0x00001a6d
3108: 00002a09 .word 0x00002a09
310c: 20001a07 .word 0x20001a07
3110: 000f1003 .word 0x000f1003
3114: 00002fd9 .word 0x00002fd9
00003118 <lv_obj_reset_style_list>:
{
3118: b510 push {r4, lr}
lv_obj_clean_style_list(obj, part);
311a: 4b04 ldr r3, [pc, #16] ; (312c <lv_obj_reset_style_list+0x14>)
{
311c: 4604 mov r4, r0
lv_obj_clean_style_list(obj, part);
311e: 4798 blx r3
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
3120: 4620 mov r0, r4
3122: 4b03 ldr r3, [pc, #12] ; (3130 <lv_obj_reset_style_list+0x18>)
}
3124: e8bd 4010 ldmia.w sp!, {r4, lr}
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
3128: 21ff movs r1, #255 ; 0xff
312a: 4718 bx r3
312c: 000027cd .word 0x000027cd
3130: 00003015 .word 0x00003015
00003134 <report_style_mod_core>:
{
3134: b5f8 push {r3, r4, r5, r6, r7, lr}
lv_style_list_t * dsc = lv_obj_get_style_list(obj, part_sub);
3136: 4c1e ldr r4, [pc, #120] ; (31b0 <report_style_mod_core+0x7c>)
{
3138: 4606 mov r6, r0
313a: 460d mov r5, r1
313c: 2700 movs r7, #0
lv_style_list_t * dsc = lv_obj_get_style_list(obj, part_sub);
313e: b2f9 uxtb r1, r7
3140: 4628 mov r0, r5
3142: 47a0 blx r4
if(dsc == NULL) break;
3144: 4602 mov r2, r0
3146: b1f8 cbz r0, 3188 <report_style_mod_core+0x54>
for(ci = 0; ci < dsc->style_cnt; ci++) {
3148: 7901 ldrb r1, [r0, #4]
314a: f04f 0c00 mov.w ip, #0
314e: fa5f f38c uxtb.w r3, ip
3152: 4299 cmp r1, r3
3154: d915 bls.n 3182 <report_style_mod_core+0x4e>
*/
void _lv_style_list_reset(lv_style_list_t * style_list);
static inline lv_style_t * lv_style_list_get_style(lv_style_list_t * list, uint8_t id)
{
if(list->has_trans && list->skip_trans) id++;
3156: 7950 ldrb r0, [r2, #5]
3158: f000 0006 and.w r0, r0, #6
315c: 2806 cmp r0, #6
315e: d123 bne.n 31a8 <report_style_mod_core+0x74>
3160: 3301 adds r3, #1
3162: b2db uxtb r3, r3
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
3164: 4299 cmp r1, r3
3166: d916 bls.n 3196 <report_style_mod_core+0x62>
return list->style_list[id];
3168: 6810 ldr r0, [r2, #0]
316a: f850 3023 ldr.w r3, [r0, r3, lsl #2]
if(class == style || style == NULL) {
316e: 429e cmp r6, r3
3170: d003 beq.n 317a <report_style_mod_core+0x46>
3172: f10c 0c01 add.w ip, ip, #1
3176: 2e00 cmp r6, #0
3178: d1e9 bne.n 314e <report_style_mod_core+0x1a>
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
317a: 4b0e ldr r3, [pc, #56] ; (31b4 <report_style_mod_core+0x80>)
317c: 21ff movs r1, #255 ; 0xff
317e: 4628 mov r0, r5
3180: 4798 blx r3
for(part_sub = 0; part_sub != _LV_OBJ_PART_REAL_LAST; part_sub++) {
3182: 3701 adds r7, #1
3184: 2f40 cmp r7, #64 ; 0x40
3186: d1da bne.n 313e <report_style_mod_core+0xa>
lv_obj_t * child = lv_obj_get_child(obj, NULL);
3188: 4f0b ldr r7, [pc, #44] ; (31b8 <report_style_mod_core+0x84>)
318a: 2100 movs r1, #0
318c: 4628 mov r0, r5
child = lv_obj_get_child(obj, child);
318e: 47b8 blx r7
3190: 4604 mov r4, r0
while(child) {
3192: b910 cbnz r0, 319a <report_style_mod_core+0x66>
}
3194: bdf8 pop {r3, r4, r5, r6, r7, pc}
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
3196: 2300 movs r3, #0
3198: e7e9 b.n 316e <report_style_mod_core+0x3a>
report_style_mod_core(style, child);
319a: 4621 mov r1, r4
319c: 4630 mov r0, r6
319e: f7ff ffc9 bl 3134 <report_style_mod_core>
child = lv_obj_get_child(obj, child);
31a2: 4621 mov r1, r4
31a4: 4628 mov r0, r5
31a6: e7f2 b.n 318e <report_style_mod_core+0x5a>
31a8: 2900 cmp r1, #0
31aa: d1dd bne.n 3168 <report_style_mod_core+0x34>
31ac: 460b mov r3, r1
31ae: e7de b.n 316e <report_style_mod_core+0x3a>
31b0: 00002711 .word 0x00002711
31b4: 00003015 .word 0x00003015
31b8: 000024f5 .word 0x000024f5
000031bc <lv_obj_report_style_mod>:
{
31bc: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_disp_t * d = lv_disp_get_next(NULL);
31c0: 4f0f ldr r7, [pc, #60] ; (3200 <lv_obj_report_style_mod+0x44>)
_LV_LL_READ(d->scr_ll, i) {
31c2: f8df 9040 ldr.w r9, [pc, #64] ; 3204 <lv_obj_report_style_mod+0x48>
report_style_mod_core(style, i);
31c6: f8df a040 ldr.w sl, [pc, #64] ; 3208 <lv_obj_report_style_mod+0x4c>
{
31ca: 4606 mov r6, r0
lv_disp_t * d = lv_disp_get_next(NULL);
31cc: 2000 movs r0, #0
31ce: 47b8 blx r7
31d0: 4604 mov r4, r0
while(d) {
31d2: b90c cbnz r4, 31d8 <lv_obj_report_style_mod+0x1c>
}
31d4: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
_LV_LL_READ(d->scr_ll, i) {
31d8: f104 0830 add.w r8, r4, #48 ; 0x30
31dc: 4640 mov r0, r8
31de: 47c8 blx r9
31e0: f8df b028 ldr.w fp, [pc, #40] ; 320c <lv_obj_report_style_mod+0x50>
31e4: 4605 mov r5, r0
31e6: b91d cbnz r5, 31f0 <lv_obj_report_style_mod+0x34>
d = lv_disp_get_next(d);
31e8: 4620 mov r0, r4
31ea: 47b8 blx r7
31ec: 4604 mov r4, r0
31ee: e7f0 b.n 31d2 <lv_obj_report_style_mod+0x16>
report_style_mod_core(style, i);
31f0: 4629 mov r1, r5
31f2: 4630 mov r0, r6
31f4: 47d0 blx sl
_LV_LL_READ(d->scr_ll, i) {
31f6: 4629 mov r1, r5
31f8: 4640 mov r0, r8
31fa: 47d8 blx fp
31fc: 4605 mov r5, r0
31fe: e7f2 b.n 31e6 <lv_obj_report_style_mod+0x2a>
3200: 0000dc49 .word 0x0000dc49
3204: 0000e92d .word 0x0000e92d
3208: 00003135 .word 0x00003135
320c: 0000e939 .word 0x0000e939
00003210 <trans_anim_cb>:
{
3210: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
3214: 4b3b ldr r3, [pc, #236] ; (3304 <trans_anim_cb+0xf4>)
{
3216: 4604 mov r4, r0
3218: 460d mov r5, r1
lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part);
321a: 7981 ldrb r1, [r0, #6]
321c: 6800 ldr r0, [r0, #0]
321e: 4798 blx r3
lv_style_t * style = _lv_style_list_get_transition_style(list);
3220: 4b39 ldr r3, [pc, #228] ; (3308 <trans_anim_cb+0xf8>)
3222: 4798 blx r3
if((tr->prop & 0xF) < LV_STYLE_ID_COLOR) { /*Value*/
3224: 88a1 ldrh r1, [r4, #4]
3226: f001 030f and.w r3, r1, #15
322a: 2b08 cmp r3, #8
322c: d816 bhi.n 325c <trans_anim_cb+0x4c>
if(v == 0) x = tr->start_value._int;
322e: b94d cbnz r5, 3244 <trans_anim_cb+0x34>
3230: f9b4 2008 ldrsh.w r2, [r4, #8]
_lv_style_set_int(style, tr->prop, x);
3234: 4b35 ldr r3, [pc, #212] ; (330c <trans_anim_cb+0xfc>)
3236: 4798 blx r3
lv_obj_refresh_style(tr->obj, tr->prop);
3238: 88a1 ldrh r1, [r4, #4]
323a: 6820 ldr r0, [r4, #0]
323c: 4b34 ldr r3, [pc, #208] ; (3310 <trans_anim_cb+0x100>)
}
323e: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
lv_obj_refresh_style(tr->obj, tr->prop);
3242: 4718 bx r3
else if(v == 255) x = tr->end_value._int;
3244: 2dff cmp r5, #255 ; 0xff
3246: f9b4 200c ldrsh.w r2, [r4, #12]
324a: d0f3 beq.n 3234 <trans_anim_cb+0x24>
else x = tr->start_value._int + ((int32_t)((int32_t)(tr->end_value._int - tr->start_value._int) * v) >> 8);
324c: f9b4 3008 ldrsh.w r3, [r4, #8]
3250: 1ad2 subs r2, r2, r3
3252: 436a muls r2, r5
3254: eb03 2322 add.w r3, r3, r2, asr #8
3258: b21a sxth r2, r3
325a: e7eb b.n 3234 <trans_anim_cb+0x24>
else if((tr->prop & 0xF) < LV_STYLE_ID_OPA) { /*Color*/
325c: 2b0b cmp r3, #11
325e: d838 bhi.n 32d2 <trans_anim_cb+0xc2>
if(v <= 0) x = tr->start_value._color;
3260: 2d00 cmp r5, #0
3262: dc03 bgt.n 326c <trans_anim_cb+0x5c>
3264: 8922 ldrh r2, [r4, #8]
_lv_style_set_color(style, tr->prop, x);
3266: 4b2b ldr r3, [pc, #172] ; (3314 <trans_anim_cb+0x104>)
3268: 4798 blx r3
326a: e7e5 b.n 3238 <trans_anim_cb+0x28>
else if(v >= 255) x = tr->end_value._color;
326c: 2dfe cmp r5, #254 ; 0xfe
326e: dd01 ble.n 3274 <trans_anim_cb+0x64>
3270: 89a2 ldrh r2, [r4, #12]
3272: e7f8 b.n 3266 <trans_anim_cb+0x56>
{
lv_color_t ret;
#if LV_COLOR_DEPTH != 1
/*LV_COLOR_DEPTH == 8, 16 or 32*/
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
3274: 8923 ldrh r3, [r4, #8]
3276: 89a2 ldrh r2, [r4, #12]
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
3278: f894 c008 ldrb.w ip, [r4, #8]
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
327c: f1c5 07ff rsb r7, r5, #255 ; 0xff
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
3280: f3c3 1345 ubfx r3, r3, #5, #6
3284: 437b muls r3, r7
3286: f3c2 1245 ubfx r2, r2, #5, #6
328a: fb15 3202 smlabb r2, r5, r2, r3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
328e: 7b23 ldrb r3, [r4, #12]
3290: f00c 0c1f and.w ip, ip, #31
3294: fb07 fc0c mul.w ip, r7, ip
3298: f003 031f and.w r3, r3, #31
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
329c: f248 0681 movw r6, #32897 ; 0x8081
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
32a0: fb15 c303 smlabb r3, r5, r3, ip
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
32a4: 4372 muls r2, r6
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
32a6: 4373 muls r3, r6
32a8: f3c3 53c4 ubfx r3, r3, #23, #5
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
32ac: f894 c009 ldrb.w ip, [r4, #9]
32b0: f3c2 52c5 ubfx r2, r2, #23, #6
32b4: ea43 1242 orr.w r2, r3, r2, lsl #5
32b8: 7b63 ldrb r3, [r4, #13]
32ba: ea4f 0cdc mov.w ip, ip, lsr #3
32be: 08db lsrs r3, r3, #3
32c0: fb07 f70c mul.w r7, r7, ip
32c4: fb15 7303 smlabb r3, r5, r3, r7
32c8: 4373 muls r3, r6
32ca: 0ddb lsrs r3, r3, #23
32cc: ea42 22c3 orr.w r2, r2, r3, lsl #11
32d0: e7c9 b.n 3266 <trans_anim_cb+0x56>
else if((tr->prop & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/
32d2: 2b0d cmp r3, #13
32d4: d80f bhi.n 32f6 <trans_anim_cb+0xe6>
if(v <= 0) x = tr->start_value._opa;
32d6: 2d00 cmp r5, #0
32d8: dc03 bgt.n 32e2 <trans_anim_cb+0xd2>
32da: 7a22 ldrb r2, [r4, #8]
_lv_style_set_opa(style, tr->prop, x);
32dc: 4b0e ldr r3, [pc, #56] ; (3318 <trans_anim_cb+0x108>)
32de: 4798 blx r3
32e0: e7aa b.n 3238 <trans_anim_cb+0x28>
else if(v >= 255) x = tr->end_value._opa;
32e2: 2dfe cmp r5, #254 ; 0xfe
32e4: 7b22 ldrb r2, [r4, #12]
32e6: dcf9 bgt.n 32dc <trans_anim_cb+0xcc>
else x = tr->start_value._opa + (((tr->end_value._opa - tr->start_value._opa) * v) >> 8);
32e8: 7a23 ldrb r3, [r4, #8]
32ea: 1ad2 subs r2, r2, r3
32ec: 436a muls r2, r5
32ee: eb03 2322 add.w r3, r3, r2, asr #8
32f2: b2da uxtb r2, r3
32f4: e7f2 b.n 32dc <trans_anim_cb+0xcc>
if(v < 128) x = tr->start_value._ptr;
32f6: 2d7f cmp r5, #127 ; 0x7f
32f8: bfd4 ite le
32fa: 68a2 ldrle r2, [r4, #8]
else x = tr->end_value._ptr;
32fc: 68e2 ldrgt r2, [r4, #12]
_lv_style_set_ptr(style, tr->prop, x);
32fe: 4b07 ldr r3, [pc, #28] ; (331c <trans_anim_cb+0x10c>)
3300: 4798 blx r3
3302: e799 b.n 3238 <trans_anim_cb+0x28>
3304: 00002711 .word 0x00002711
3308: 00005f3d .word 0x00005f3d
330c: 00005afd .word 0x00005afd
3310: 00003015 .word 0x00003015
3314: 00005bcd .word 0x00005bcd
3318: 00005c9d .word 0x00005c9d
331c: 00005d71 .word 0x00005d71
00003320 <lv_obj_get_base_dir>:
{
3320: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3322: 4b0b ldr r3, [pc, #44] ; (3350 <lv_obj_get_base_dir+0x30>)
{
3324: 4605 mov r5, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3326: 4798 blx r3
3328: 4604 mov r4, r0
332a: b968 cbnz r0, 3348 <lv_obj_get_base_dir+0x28>
332c: 4b09 ldr r3, [pc, #36] ; (3354 <lv_obj_get_base_dir+0x34>)
332e: 490a ldr r1, [pc, #40] ; (3358 <lv_obj_get_base_dir+0x38>)
3330: 9300 str r3, [sp, #0]
3332: f640 22b1 movw r2, #2737 ; 0xab1
3336: 2003 movs r0, #3
3338: 4e08 ldr r6, [pc, #32] ; (335c <lv_obj_get_base_dir+0x3c>)
333a: 47b0 blx r6
333c: 4808 ldr r0, [pc, #32] ; (3360 <lv_obj_get_base_dir+0x40>)
333e: 4909 ldr r1, [pc, #36] ; (3364 <lv_obj_get_base_dir+0x44>)
3340: 462a mov r2, r5
3342: 4623 mov r3, r4
3344: 4788 blx r1
3346: e7fe b.n 3346 <lv_obj_get_base_dir+0x26>
}
3348: 2000 movs r0, #0
334a: b002 add sp, #8
334c: bd70 pop {r4, r5, r6, pc}
334e: bf00 nop
3350: 00001a65 .word 0x00001a65
3354: 00027005 .word 0x00027005
3358: 000268df .word 0x000268df
335c: 0000eb79 .word 0x0000eb79
3360: 00026943 .word 0x00026943
3364: 00001a6d .word 0x00001a6d
00003368 <lv_obj_create>:
{
3368: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
336c: 460d mov r5, r1
if(parent == NULL) {
336e: 4606 mov r6, r0
3370: 2800 cmp r0, #0
3372: d177 bne.n 3464 <lv_obj_create+0xfc>
lv_disp_t * disp = lv_disp_get_default();
3374: 4b89 ldr r3, [pc, #548] ; (359c <lv_obj_create+0x234>)
3376: 4798 blx r3
if(!disp) {
3378: 4604 mov r4, r0
337a: b940 cbnz r0, 338e <lv_obj_create+0x26>
LV_LOG_WARN("lv_obj_create: not display created to so far. No place to assign the new screen");
337c: 4b88 ldr r3, [pc, #544] ; (35a0 <lv_obj_create+0x238>)
337e: 9300 str r3, [sp, #0]
3380: 4988 ldr r1, [pc, #544] ; (35a4 <lv_obj_create+0x23c>)
3382: 4b89 ldr r3, [pc, #548] ; (35a8 <lv_obj_create+0x240>)
3384: 22cf movs r2, #207 ; 0xcf
3386: 2002 movs r0, #2
LV_LOG_INFO("Object create ready");
3388: 4d88 ldr r5, [pc, #544] ; (35ac <lv_obj_create+0x244>)
338a: 47a8 blx r5
return new_obj;
338c: e016 b.n 33bc <lv_obj_create+0x54>
new_obj = _lv_ll_ins_head(&disp->scr_ll);
338e: 4b88 ldr r3, [pc, #544] ; (35b0 <lv_obj_create+0x248>)
3390: 3030 adds r0, #48 ; 0x30
3392: 4798 blx r3
LV_ASSERT_MEM(new_obj);
3394: 4b87 ldr r3, [pc, #540] ; (35b4 <lv_obj_create+0x24c>)
new_obj = _lv_ll_ins_head(&disp->scr_ll);
3396: 4604 mov r4, r0
LV_ASSERT_MEM(new_obj);
3398: 4798 blx r3
339a: 4607 mov r7, r0
339c: b960 cbnz r0, 33b8 <lv_obj_create+0x50>
339e: 4b82 ldr r3, [pc, #520] ; (35a8 <lv_obj_create+0x240>)
33a0: 4980 ldr r1, [pc, #512] ; (35a4 <lv_obj_create+0x23c>)
33a2: 9300 str r3, [sp, #0]
33a4: 22d4 movs r2, #212 ; 0xd4
33a6: 2003 movs r0, #3
33a8: 4d80 ldr r5, [pc, #512] ; (35ac <lv_obj_create+0x244>)
33aa: 47a8 blx r5
33ac: 4882 ldr r0, [pc, #520] ; (35b8 <lv_obj_create+0x250>)
33ae: 4983 ldr r1, [pc, #524] ; (35bc <lv_obj_create+0x254>)
33b0: 4622 mov r2, r4
33b2: 463b mov r3, r7
33b4: 4788 blx r1
33b6: e7fe b.n 33b6 <lv_obj_create+0x4e>
if(new_obj == NULL) return NULL;
33b8: b924 cbnz r4, 33c4 <lv_obj_create+0x5c>
33ba: 2400 movs r4, #0
}
33bc: 4620 mov r0, r4
33be: b004 add sp, #16
33c0: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
_lv_memset_00(new_obj, sizeof(lv_obj_t));
33c4: 214c movs r1, #76 ; 0x4c
33c6: 4b7e ldr r3, [pc, #504] ; (35c0 <lv_obj_create+0x258>)
33c8: 4620 mov r0, r4
33ca: 4798 blx r3
new_obj->base_dir = LV_BIDI_DIR_LTR;
33cc: f894 3035 ldrb.w r3, [r4, #53] ; 0x35
new_obj->event_cb = NULL;
33d0: 61a6 str r6, [r4, #24]
new_obj->base_dir = LV_BIDI_DIR_LTR;
33d2: f366 1305 bfi r3, r6, #4, #2
33d6: f884 3035 strb.w r3, [r4, #53] ; 0x35
new_obj->signal_cb = lv_obj_signal;
33da: 4b7a ldr r3, [pc, #488] ; (35c4 <lv_obj_create+0x25c>)
33dc: 61e3 str r3, [r4, #28]
new_obj->design_cb = lv_obj_design;
33de: 4b7a ldr r3, [pc, #488] ; (35c8 <lv_obj_create+0x260>)
33e0: 6223 str r3, [r4, #32]
new_obj->coords.x1 = 0;
33e2: 6126 str r6, [r4, #16]
new_obj->coords.x2 = lv_disp_get_hor_res(NULL) - 1;
33e4: 4b79 ldr r3, [pc, #484] ; (35cc <lv_obj_create+0x264>)
33e6: 4630 mov r0, r6
33e8: 4798 blx r3
33ea: 3801 subs r0, #1
33ec: 82a0 strh r0, [r4, #20]
new_obj->coords.y2 = lv_disp_get_ver_res(NULL) - 1;
33ee: 4b78 ldr r3, [pc, #480] ; (35d0 <lv_obj_create+0x268>)
33f0: 4630 mov r0, r6
33f2: 4798 blx r3
33f4: 3801 subs r0, #1
33f6: 82e0 strh r0, [r4, #22]
_lv_ll_init(&(new_obj->child_ll), sizeof(lv_obj_t));
33f8: 4b76 ldr r3, [pc, #472] ; (35d4 <lv_obj_create+0x26c>)
33fa: 214c movs r1, #76 ; 0x4c
33fc: 1d20 adds r0, r4, #4
33fe: 4798 blx r3
new_obj->realign.align = LV_ALIGN_CENTER;
3400: f8b4 3048 ldrh.w r3, [r4, #72] ; 0x48
3404: f423 73ff bic.w r3, r3, #510 ; 0x1fe
3408: f023 0301 bic.w r3, r3, #1
340c: f8a4 3048 strh.w r3, [r4, #72] ; 0x48
new_obj->click = 1;
3410: 8ea3 ldrh r3, [r4, #52] ; 0x34
3412: f423 637f bic.w r3, r3, #4080 ; 0xff0
3416: f023 030f bic.w r3, r3, #15
341a: f443 63e0 orr.w r3, r3, #1792 ; 0x700
new_obj->realign.base = NULL;
341e: 2200 movs r2, #0
new_obj->click = 1;
3420: f043 0301 orr.w r3, r3, #1
lv_style_list_init(&new_obj->style_list);
3424: f104 0028 add.w r0, r4, #40 ; 0x28
new_obj->click = 1;
3428: 86a3 strh r3, [r4, #52] ; 0x34
new_obj->realign.xofs = 0;
342a: e9c4 2210 strd r2, r2, [r4, #64] ; 0x40
lv_style_list_init(&new_obj->style_list);
342e: 4b6a ldr r3, [pc, #424] ; (35d8 <lv_obj_create+0x270>)
new_obj->ext_click_pad_hor = 0;
3430: 6322 str r2, [r4, #48] ; 0x30
new_obj->group_p = NULL;
3432: 63a2 str r2, [r4, #56] ; 0x38
new_obj->protect = LV_PROTECT_NONE;
3434: 87a2 strh r2, [r4, #60] ; 0x3c
new_obj->ext_attr = NULL;
3436: 6262 str r2, [r4, #36] ; 0x24
lv_style_list_init(&new_obj->style_list);
3438: 9003 str r0, [sp, #12]
343a: 4798 blx r3
if(copy == NULL) {
343c: 9803 ldr r0, [sp, #12]
343e: 2d00 cmp r5, #0
3440: f040 80d8 bne.w 35f4 <lv_obj_create+0x28c>
if(parent != NULL) lv_theme_apply(new_obj, LV_THEME_OBJ);
3444: 4b65 ldr r3, [pc, #404] ; (35dc <lv_obj_create+0x274>)
3446: 2e00 cmp r6, #0
3448: f000 809d beq.w 3586 <lv_obj_create+0x21e>
344c: 2102 movs r1, #2
344e: 4620 mov r0, r4
3450: 4798 blx r3
parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG, new_obj);
3452: 69f3 ldr r3, [r6, #28]
3454: 4622 mov r2, r4
3456: 2101 movs r1, #1
3458: 4630 mov r0, r6
345a: 4798 blx r3
lv_obj_invalidate(new_obj);
345c: 4b60 ldr r3, [pc, #384] ; (35e0 <lv_obj_create+0x278>)
345e: 4620 mov r0, r4
3460: 4798 blx r3
3462: e093 b.n 358c <lv_obj_create+0x224>
LV_ASSERT_OBJ(parent, LV_OBJX_NAME);
3464: 4f53 ldr r7, [pc, #332] ; (35b4 <lv_obj_create+0x24c>)
3466: 47b8 blx r7
3468: 4604 mov r4, r0
346a: b960 cbnz r0, 3486 <lv_obj_create+0x11e>
346c: 4b4e ldr r3, [pc, #312] ; (35a8 <lv_obj_create+0x240>)
346e: 494d ldr r1, [pc, #308] ; (35a4 <lv_obj_create+0x23c>)
3470: 9300 str r3, [sp, #0]
3472: 22ed movs r2, #237 ; 0xed
3474: 2003 movs r0, #3
3476: 4d4d ldr r5, [pc, #308] ; (35ac <lv_obj_create+0x244>)
3478: 47a8 blx r5
347a: 485a ldr r0, [pc, #360] ; (35e4 <lv_obj_create+0x27c>)
347c: 494f ldr r1, [pc, #316] ; (35bc <lv_obj_create+0x254>)
347e: 4632 mov r2, r6
3480: 4623 mov r3, r4
3482: 4788 blx r1
3484: e7fe b.n 3484 <lv_obj_create+0x11c>
new_obj = _lv_ll_ins_head(&parent->child_ll);
3486: 4b4a ldr r3, [pc, #296] ; (35b0 <lv_obj_create+0x248>)
3488: 1d30 adds r0, r6, #4
348a: 4798 blx r3
348c: 4604 mov r4, r0
LV_ASSERT_MEM(new_obj);
348e: 47b8 blx r7
3490: 4607 mov r7, r0
3492: b960 cbnz r0, 34ae <lv_obj_create+0x146>
3494: 4b44 ldr r3, [pc, #272] ; (35a8 <lv_obj_create+0x240>)
3496: 4943 ldr r1, [pc, #268] ; (35a4 <lv_obj_create+0x23c>)
3498: 9300 str r3, [sp, #0]
349a: 22f0 movs r2, #240 ; 0xf0
349c: 2003 movs r0, #3
349e: 4d43 ldr r5, [pc, #268] ; (35ac <lv_obj_create+0x244>)
34a0: 47a8 blx r5
34a2: 4845 ldr r0, [pc, #276] ; (35b8 <lv_obj_create+0x250>)
34a4: 4945 ldr r1, [pc, #276] ; (35bc <lv_obj_create+0x254>)
34a6: 4622 mov r2, r4
34a8: 463b mov r3, r7
34aa: 4788 blx r1
34ac: e7fe b.n 34ac <lv_obj_create+0x144>
if(new_obj == NULL) return NULL;
34ae: 2c00 cmp r4, #0
34b0: d083 beq.n 33ba <lv_obj_create+0x52>
_lv_memset_00(new_obj, sizeof(lv_obj_t));
34b2: 4b43 ldr r3, [pc, #268] ; (35c0 <lv_obj_create+0x258>)
new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT;
34b4: f8df 9138 ldr.w r9, [pc, #312] ; 35f0 <lv_obj_create+0x288>
_lv_memset_00(new_obj, sizeof(lv_obj_t));
34b8: 214c movs r1, #76 ; 0x4c
34ba: 4620 mov r0, r4
34bc: 4798 blx r3
new_obj->base_dir = LV_BIDI_DIR_LTR;
34be: f894 3035 ldrb.w r3, [r4, #53] ; 0x35
new_obj->parent = parent;
34c2: 6026 str r6, [r4, #0]
new_obj->base_dir = LV_BIDI_DIR_LTR;
34c4: f36f 1305 bfc r3, #4, #2
34c8: f884 3035 strb.w r3, [r4, #53] ; 0x35
new_obj->signal_cb = lv_obj_signal;
34cc: 4b3d ldr r3, [pc, #244] ; (35c4 <lv_obj_create+0x25c>)
34ce: 61e3 str r3, [r4, #28]
new_obj->design_cb = lv_obj_design;
34d0: 4b3d ldr r3, [pc, #244] ; (35c8 <lv_obj_create+0x260>)
34d2: 6223 str r3, [r4, #32]
new_obj->event_cb = NULL;
34d4: f04f 0800 mov.w r8, #0
new_obj->coords.y1 = parent->coords.y1;
34d8: f9b6 3012 ldrsh.w r3, [r6, #18]
34dc: 8263 strh r3, [r4, #18]
new_obj->event_cb = NULL;
34de: f8c4 8018 str.w r8, [r4, #24]
new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT;
34e2: 4640 mov r0, r8
34e4: 8a77 ldrh r7, [r6, #18]
34e6: 47c8 blx r9
34e8: f04f 0a32 mov.w sl, #50 ; 0x32
34ec: fb00 f00a mul.w r0, r0, sl
34f0: 28ef cmp r0, #239 ; 0xef
34f2: dd2c ble.n 354e <lv_obj_create+0x1e6>
34f4: 4640 mov r0, r8
34f6: 47c8 blx r9
34f8: 2350 movs r3, #80 ; 0x50
34fa: fb00 300a mla r0, r0, sl, r3
34fe: 23a0 movs r3, #160 ; 0xa0
3500: fb90 f0f3 sdiv r0, r0, r3
3504: b280 uxth r0, r0
3506: 4407 add r7, r0
3508: 82e7 strh r7, [r4, #22]
if(lv_obj_get_base_dir(new_obj) == LV_BIDI_DIR_RTL) {
350a: 4b37 ldr r3, [pc, #220] ; (35e8 <lv_obj_create+0x280>)
350c: 4620 mov r0, r4
350e: 4798 blx r3
3510: 2801 cmp r0, #1
3512: 4607 mov r7, r0
3514: d11d bne.n 3552 <lv_obj_create+0x1ea>
new_obj->coords.x2 = parent->coords.x2;
3516: f9b6 8014 ldrsh.w r8, [r6, #20]
351a: f8a4 8014 strh.w r8, [r4, #20]
new_obj->coords.x1 = parent->coords.x2 - LV_OBJ_DEF_WIDTH;
351e: 2000 movs r0, #0
3520: 47c8 blx r9
3522: f04f 0a64 mov.w sl, #100 ; 0x64
3526: fb00 f00a mul.w r0, r0, sl
352a: 28ef cmp r0, #239 ; 0xef
352c: fa1f f888 uxth.w r8, r8
3530: dd08 ble.n 3544 <lv_obj_create+0x1dc>
3532: 2000 movs r0, #0
3534: 47c8 blx r9
3536: 2750 movs r7, #80 ; 0x50
3538: fb00 770a mla r7, r0, sl, r7
353c: 23a0 movs r3, #160 ; 0xa0
353e: fb97 f7f3 sdiv r7, r7, r3
3542: b2bf uxth r7, r7
3544: eba8 0807 sub.w r8, r8, r7
3548: f8a4 8010 strh.w r8, [r4, #16]
354c: e754 b.n 33f8 <lv_obj_create+0x90>
new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT;
354e: 2001 movs r0, #1
3550: e7d9 b.n 3506 <lv_obj_create+0x19e>
new_obj->coords.x1 = parent->coords.x1;
3552: f9b6 7010 ldrsh.w r7, [r6, #16]
3556: 8227 strh r7, [r4, #16]
new_obj->coords.x2 = parent->coords.x1 + LV_OBJ_DEF_WIDTH;
3558: 2000 movs r0, #0
355a: 47c8 blx r9
355c: f04f 0864 mov.w r8, #100 ; 0x64
3560: fb00 f008 mul.w r0, r0, r8
3564: 28ef cmp r0, #239 ; 0xef
3566: b2bf uxth r7, r7
3568: dd0b ble.n 3582 <lv_obj_create+0x21a>
356a: 2000 movs r0, #0
356c: 47c8 blx r9
356e: 2350 movs r3, #80 ; 0x50
3570: fb00 3008 mla r0, r0, r8, r3
3574: 23a0 movs r3, #160 ; 0xa0
3576: fb90 f0f3 sdiv r0, r0, r3
357a: b280 uxth r0, r0
357c: 4407 add r7, r0
357e: 82a7 strh r7, [r4, #20]
3580: e73a b.n 33f8 <lv_obj_create+0x90>
3582: 2001 movs r0, #1
3584: e7fa b.n 357c <lv_obj_create+0x214>
else lv_theme_apply(new_obj, LV_THEME_SCR);
3586: 2101 movs r1, #1
3588: 4620 mov r0, r4
358a: 4798 blx r3
LV_LOG_INFO("Object create ready");
358c: 4b17 ldr r3, [pc, #92] ; (35ec <lv_obj_create+0x284>)
358e: 9300 str r3, [sp, #0]
3590: 4904 ldr r1, [pc, #16] ; (35a4 <lv_obj_create+0x23c>)
3592: 4b05 ldr r3, [pc, #20] ; (35a8 <lv_obj_create+0x240>)
3594: f240 1287 movw r2, #391 ; 0x187
3598: 2001 movs r0, #1
359a: e6f5 b.n 3388 <lv_obj_create+0x20>
359c: 0000db81 .word 0x0000db81
35a0: 00026a34 .word 0x00026a34
35a4: 000268df .word 0x000268df
35a8: 00027019 .word 0x00027019
35ac: 0000eb79 .word 0x0000eb79
35b0: 0000e89d .word 0x0000e89d
35b4: 00001a65 .word 0x00001a65
35b8: 00026842 .word 0x00026842
35bc: 00001a6d .word 0x00001a6d
35c0: 0000f2a9 .word 0x0000f2a9
35c4: 00004db1 .word 0x00004db1
35c8: 00004821 .word 0x00004821
35cc: 0000db8d .word 0x0000db8d
35d0: 0000dbb1 .word 0x0000dbb1
35d4: 0000e889 .word 0x0000e889
35d8: 000057c1 .word 0x000057c1
35dc: 00010575 .word 0x00010575
35e0: 00002a09 .word 0x00002a09
35e4: 00026943 .word 0x00026943
35e8: 00003321 .word 0x00003321
35ec: 00026a84 .word 0x00026a84
35f0: 0000dbd5 .word 0x0000dbd5
lv_style_list_copy(&new_obj->style_list, &copy->style_list);
35f4: 4b54 ldr r3, [pc, #336] ; (3748 <lv_obj_create+0x3e0>)
35f6: f105 0128 add.w r1, r5, #40 ; 0x28
35fa: 4798 blx r3
lv_area_copy(&new_obj->coords, &copy->coords);
35fc: 4b53 ldr r3, [pc, #332] ; (374c <lv_obj_create+0x3e4>)
35fe: f104 0010 add.w r0, r4, #16
3602: f105 0110 add.w r1, r5, #16
3606: 4798 blx r3
new_obj->ext_draw_pad = copy->ext_draw_pad;
3608: f9b5 3032 ldrsh.w r3, [r5, #50] ; 0x32
360c: 8663 strh r3, [r4, #50] ; 0x32
new_obj->ext_click_pad_hor = copy->ext_click_pad_hor;
360e: f895 3030 ldrb.w r3, [r5, #48] ; 0x30
3612: f884 3030 strb.w r3, [r4, #48] ; 0x30
new_obj->ext_click_pad_ver = copy->ext_click_pad_ver;
3616: f895 3031 ldrb.w r3, [r5, #49] ; 0x31
361a: f884 3031 strb.w r3, [r4, #49] ; 0x31
new_obj->realign.align = copy->realign.align;
361e: f895 3048 ldrb.w r3, [r5, #72] ; 0x48
3622: f884 3048 strb.w r3, [r4, #72] ; 0x48
new_obj->realign.xofs = copy->realign.xofs;
3626: f9b5 3044 ldrsh.w r3, [r5, #68] ; 0x44
362a: f8a4 3044 strh.w r3, [r4, #68] ; 0x44
new_obj->realign.yofs = copy->realign.yofs;
362e: f9b5 3046 ldrsh.w r3, [r5, #70] ; 0x46
3632: f8a4 3046 strh.w r3, [r4, #70] ; 0x46
new_obj->realign.base = copy->realign.base;
3636: 6c2b ldr r3, [r5, #64] ; 0x40
new_obj->realign.auto_realign = copy->realign.auto_realign;
3638: f895 2049 ldrb.w r2, [r5, #73] ; 0x49
new_obj->realign.base = copy->realign.base;
363c: 6423 str r3, [r4, #64] ; 0x40
new_obj->realign.auto_realign = copy->realign.auto_realign;
363e: f894 3049 ldrb.w r3, [r4, #73] ; 0x49
3642: f362 0300 bfi r3, r2, #0, #1
3646: f884 3049 strb.w r3, [r4, #73] ; 0x49
new_obj->event_cb = copy->event_cb;
364a: 69ab ldr r3, [r5, #24]
364c: 61a3 str r3, [r4, #24]
new_obj->adv_hittest = copy->adv_hittest;
364e: f895 3034 ldrb.w r3, [r5, #52] ; 0x34
3652: f894 2034 ldrb.w r2, [r4, #52] ; 0x34
3656: 09db lsrs r3, r3, #7
3658: f363 12c7 bfi r2, r3, #7, #1
365c: f884 2034 strb.w r2, [r4, #52] ; 0x34
new_obj->click = copy->click;
3660: f895 2034 ldrb.w r2, [r5, #52] ; 0x34
3664: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
3668: f362 0300 bfi r3, r2, #0, #1
366c: f884 3034 strb.w r3, [r4, #52] ; 0x34
new_obj->drag = copy->drag;
3670: f895 3034 ldrb.w r3, [r5, #52] ; 0x34
3674: f894 2034 ldrb.w r2, [r4, #52] ; 0x34
3678: f3c3 0340 ubfx r3, r3, #1, #1
367c: f363 0241 bfi r2, r3, #1, #1
3680: f884 2034 strb.w r2, [r4, #52] ; 0x34
new_obj->drag_dir = copy->drag_dir;
3684: f895 3035 ldrb.w r3, [r5, #53] ; 0x35
3688: f894 2035 ldrb.w r2, [r4, #53] ; 0x35
368c: f3c3 0342 ubfx r3, r3, #1, #3
3690: f363 0243 bfi r2, r3, #1, #3
3694: f884 2035 strb.w r2, [r4, #53] ; 0x35
new_obj->drag_throw = copy->drag_throw;
3698: f895 3034 ldrb.w r3, [r5, #52] ; 0x34
369c: f894 2034 ldrb.w r2, [r4, #52] ; 0x34
36a0: f3c3 0380 ubfx r3, r3, #2, #1
36a4: f363 0282 bfi r2, r3, #2, #1
36a8: f884 2034 strb.w r2, [r4, #52] ; 0x34
new_obj->drag_parent = copy->drag_parent;
36ac: f895 3034 ldrb.w r3, [r5, #52] ; 0x34
36b0: b2d2 uxtb r2, r2
36b2: f3c3 03c0 ubfx r3, r3, #3, #1
36b6: f363 02c3 bfi r2, r3, #3, #1
36ba: f884 2034 strb.w r2, [r4, #52] ; 0x34
new_obj->hidden = copy->hidden;
36be: f895 3034 ldrb.w r3, [r5, #52] ; 0x34
36c2: b2d2 uxtb r2, r2
36c4: f3c3 1300 ubfx r3, r3, #4, #1
36c8: f363 1204 bfi r2, r3, #4, #1
36cc: f884 2034 strb.w r2, [r4, #52] ; 0x34
new_obj->top = copy->top;
36d0: f895 3034 ldrb.w r3, [r5, #52] ; 0x34
36d4: b2d2 uxtb r2, r2
36d6: f3c3 1340 ubfx r3, r3, #5, #1
36da: f363 1245 bfi r2, r3, #5, #1
36de: f884 2034 strb.w r2, [r4, #52] ; 0x34
new_obj->parent_event = copy->parent_event;
36e2: f895 3034 ldrb.w r3, [r5, #52] ; 0x34
36e6: b2d2 uxtb r2, r2
36e8: f3c3 1380 ubfx r3, r3, #6, #1
36ec: f363 1286 bfi r2, r3, #6, #1
36f0: f884 2034 strb.w r2, [r4, #52] ; 0x34
new_obj->protect = copy->protect;
36f4: f895 303c ldrb.w r3, [r5, #60] ; 0x3c
36f8: f884 303c strb.w r3, [r4, #60] ; 0x3c
new_obj->gesture_parent = copy->gesture_parent;
36fc: f895 2035 ldrb.w r2, [r5, #53] ; 0x35
3700: f894 3035 ldrb.w r3, [r4, #53] ; 0x35
3704: f362 0300 bfi r3, r2, #0, #1
3708: f884 3035 strb.w r3, [r4, #53] ; 0x35
if(copy->group_p != NULL) {
370c: 6ba8 ldr r0, [r5, #56] ; 0x38
370e: b110 cbz r0, 3716 <lv_obj_create+0x3ae>
lv_group_add_obj(copy->group_p, new_obj);
3710: 4b0f ldr r3, [pc, #60] ; (3750 <lv_obj_create+0x3e8>)
3712: 4621 mov r1, r4
3714: 4798 blx r3
if(lv_obj_get_parent(copy) != NULL && parent != NULL) {
3716: 4b0f ldr r3, [pc, #60] ; (3754 <lv_obj_create+0x3ec>)
3718: 4628 mov r0, r5
371a: 4798 blx r3
371c: b178 cbz r0, 373e <lv_obj_create+0x3d6>
371e: 2e00 cmp r6, #0
3720: f43f af34 beq.w 358c <lv_obj_create+0x224>
lv_obj_set_pos(new_obj, lv_obj_get_x(copy), lv_obj_get_y(copy));
3724: 4b0c ldr r3, [pc, #48] ; (3758 <lv_obj_create+0x3f0>)
3726: 4628 mov r0, r5
3728: 4798 blx r3
372a: 4b0c ldr r3, [pc, #48] ; (375c <lv_obj_create+0x3f4>)
372c: 9003 str r0, [sp, #12]
372e: 4628 mov r0, r5
3730: 4798 blx r3
3732: 9903 ldr r1, [sp, #12]
3734: 4b0a ldr r3, [pc, #40] ; (3760 <lv_obj_create+0x3f8>)
3736: 4602 mov r2, r0
3738: 4620 mov r0, r4
373a: 4798 blx r3
if(parent != NULL) {
373c: e689 b.n 3452 <lv_obj_create+0xea>
373e: 2e00 cmp r6, #0
3740: f47f ae87 bne.w 3452 <lv_obj_create+0xea>
3744: e722 b.n 358c <lv_obj_create+0x224>
3746: bf00 nop
3748: 00005fb1 .word 0x00005fb1
374c: 00001f9d .word 0x00001f9d
3750: 00001d21 .word 0x00001d21
3754: 000023a9 .word 0x000023a9
3758: 000025b1 .word 0x000025b1
375c: 00002611 .word 0x00002611
3760: 00002b25 .word 0x00002b25
00003764 <lv_obj_set_size>:
{
3764: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3768: 4b33 ldr r3, [pc, #204] ; (3838 <lv_obj_set_size+0xd4>)
{
376a: 4604 mov r4, r0
376c: 460d mov r5, r1
376e: 4617 mov r7, r2
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3770: 4798 blx r3
3772: 4606 mov r6, r0
3774: b968 cbnz r0, 3792 <lv_obj_set_size+0x2e>
3776: 4b31 ldr r3, [pc, #196] ; (383c <lv_obj_set_size+0xd8>)
3778: 4931 ldr r1, [pc, #196] ; (3840 <lv_obj_set_size+0xdc>)
377a: 9300 str r3, [sp, #0]
377c: f240 22e5 movw r2, #741 ; 0x2e5
3780: 2003 movs r0, #3
3782: 4d30 ldr r5, [pc, #192] ; (3844 <lv_obj_set_size+0xe0>)
3784: 47a8 blx r5
3786: 4830 ldr r0, [pc, #192] ; (3848 <lv_obj_set_size+0xe4>)
3788: 4930 ldr r1, [pc, #192] ; (384c <lv_obj_set_size+0xe8>)
378a: 4622 mov r2, r4
378c: 4633 mov r3, r6
378e: 4788 blx r1
3790: e7fe b.n 3790 <lv_obj_set_size+0x2c>
if(lv_obj_get_width(obj) == w && lv_obj_get_height(obj) == h) {
3792: 4b2f ldr r3, [pc, #188] ; (3850 <lv_obj_set_size+0xec>)
3794: 4620 mov r0, r4
3796: 4798 blx r3
3798: 4285 cmp r5, r0
379a: d104 bne.n 37a6 <lv_obj_set_size+0x42>
379c: 4b2d ldr r3, [pc, #180] ; (3854 <lv_obj_set_size+0xf0>)
379e: 4620 mov r0, r4
37a0: 4798 blx r3
37a2: 4287 cmp r7, r0
37a4: d03a beq.n 381c <lv_obj_set_size+0xb8>
lv_obj_invalidate(obj);
37a6: 4620 mov r0, r4
37a8: 4e2b ldr r6, [pc, #172] ; (3858 <lv_obj_set_size+0xf4>)
37aa: 47b0 blx r6
lv_obj_get_coords(obj, &ori);
37ac: a902 add r1, sp, #8
37ae: 4b2b ldr r3, [pc, #172] ; (385c <lv_obj_set_size+0xf8>)
37b0: 4620 mov r0, r4
37b2: 4798 blx r3
obj->coords.y2 = obj->coords.y1 + h - 1;
37b4: 8a63 ldrh r3, [r4, #18]
37b6: 3f01 subs r7, #1
37b8: 441f add r7, r3
37ba: 82e7 strh r7, [r4, #22]
if(lv_obj_get_base_dir(obj) == LV_BIDI_DIR_RTL) {
37bc: 4b28 ldr r3, [pc, #160] ; (3860 <lv_obj_set_size+0xfc>)
37be: 4620 mov r0, r4
37c0: 4798 blx r3
37c2: 2801 cmp r0, #1
obj->coords.x1 = obj->coords.x2 - w + 1;
37c4: b2ad uxth r5, r5
37c6: bf0b itete eq
37c8: 8aa3 ldrheq r3, [r4, #20]
obj->coords.x2 = obj->coords.x1 + w - 1;
37ca: 8a23 ldrhne r3, [r4, #16]
obj->coords.x1 = obj->coords.x2 - w + 1;
37cc: f1c5 0501 rsbeq r5, r5, #1
obj->coords.x2 = obj->coords.x1 + w - 1;
37d0: f105 35ff addne.w r5, r5, #4294967295 ; 0xffffffff
obj->coords.x1 = obj->coords.x2 - w + 1;
37d4: bf0a itet eq
37d6: 18ed addeq r5, r5, r3
obj->coords.x2 = obj->coords.x1 + w - 1;
37d8: 18ed addne r5, r5, r3
obj->coords.x1 = obj->coords.x2 - w + 1;
37da: 8225 strheq r5, [r4, #16]
obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori);
37dc: 69e3 ldr r3, [r4, #28]
obj->coords.x2 = obj->coords.x1 + w - 1;
37de: bf18 it ne
37e0: 82a5 strhne r5, [r4, #20]
obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori);
37e2: aa02 add r2, sp, #8
37e4: 2102 movs r1, #2
37e6: 4620 mov r0, r4
37e8: 4798 blx r3
lv_obj_t * par = lv_obj_get_parent(obj);
37ea: 4b1e ldr r3, [pc, #120] ; (3864 <lv_obj_set_size+0x100>)
37ec: 4620 mov r0, r4
37ee: 4798 blx r3
if(par != NULL) par->signal_cb(par, LV_SIGNAL_CHILD_CHG, obj);
37f0: b118 cbz r0, 37fa <lv_obj_set_size+0x96>
37f2: 69c3 ldr r3, [r0, #28]
37f4: 4622 mov r2, r4
37f6: 2101 movs r1, #1
37f8: 4798 blx r3
_LV_LL_READ(obj->child_ll, i) {
37fa: 1d27 adds r7, r4, #4
37fc: 4b1a ldr r3, [pc, #104] ; (3868 <lv_obj_set_size+0x104>)
37fe: f8df 8070 ldr.w r8, [pc, #112] ; 3870 <lv_obj_set_size+0x10c>
3802: 4638 mov r0, r7
3804: 4798 blx r3
3806: 4605 mov r5, r0
3808: b95d cbnz r5, 3822 <lv_obj_set_size+0xbe>
lv_obj_invalidate(obj);
380a: 4620 mov r0, r4
380c: 47b0 blx r6
if(obj->realign.auto_realign) lv_obj_realign(obj);
380e: f894 3049 ldrb.w r3, [r4, #73] ; 0x49
3812: 07db lsls r3, r3, #31
3814: d502 bpl.n 381c <lv_obj_set_size+0xb8>
3816: 4b15 ldr r3, [pc, #84] ; (386c <lv_obj_set_size+0x108>)
3818: 4620 mov r0, r4
381a: 4798 blx r3
}
381c: b004 add sp, #16
381e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
i->signal_cb(i, LV_SIGNAL_PARENT_SIZE_CHG, &ori);
3822: 69eb ldr r3, [r5, #28]
3824: aa02 add r2, sp, #8
3826: 2103 movs r1, #3
3828: 4628 mov r0, r5
382a: 4798 blx r3
_LV_LL_READ(obj->child_ll, i) {
382c: 4629 mov r1, r5
382e: 4638 mov r0, r7
3830: 47c0 blx r8
3832: 4605 mov r5, r0
3834: e7e8 b.n 3808 <lv_obj_set_size+0xa4>
3836: bf00 nop
3838: 00001a65 .word 0x00001a65
383c: 00027039 .word 0x00027039
3840: 000268df .word 0x000268df
3844: 0000eb79 .word 0x0000eb79
3848: 00026943 .word 0x00026943
384c: 00001a6d .word 0x00001a6d
3850: 00002671 .word 0x00002671
3854: 000026c1 .word 0x000026c1
3858: 00002a09 .word 0x00002a09
385c: 00002559 .word 0x00002559
3860: 00003321 .word 0x00003321
3864: 000023a9 .word 0x000023a9
3868: 0000e92d .word 0x0000e92d
386c: 00002f6d .word 0x00002f6d
3870: 0000e939 .word 0x0000e939
00003874 <lv_obj_set_height>:
{
3874: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3876: 4b0f ldr r3, [pc, #60] ; (38b4 <lv_obj_set_height+0x40>)
{
3878: 4604 mov r4, r0
387a: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
387c: 4798 blx r3
387e: 4605 mov r5, r0
3880: b968 cbnz r0, 389e <lv_obj_set_height+0x2a>
3882: 4b0d ldr r3, [pc, #52] ; (38b8 <lv_obj_set_height+0x44>)
3884: 490d ldr r1, [pc, #52] ; (38bc <lv_obj_set_height+0x48>)
3886: 9300 str r3, [sp, #0]
3888: f240 3227 movw r2, #807 ; 0x327
388c: 2003 movs r0, #3
388e: 4e0c ldr r6, [pc, #48] ; (38c0 <lv_obj_set_height+0x4c>)
3890: 47b0 blx r6
3892: 480c ldr r0, [pc, #48] ; (38c4 <lv_obj_set_height+0x50>)
3894: 490c ldr r1, [pc, #48] ; (38c8 <lv_obj_set_height+0x54>)
3896: 4622 mov r2, r4
3898: 462b mov r3, r5
389a: 4788 blx r1
389c: e7fe b.n 389c <lv_obj_set_height+0x28>
lv_obj_set_size(obj, lv_obj_get_width(obj), h);
389e: 4b0b ldr r3, [pc, #44] ; (38cc <lv_obj_set_height+0x58>)
38a0: 4620 mov r0, r4
38a2: 4798 blx r3
38a4: 4b0a ldr r3, [pc, #40] ; (38d0 <lv_obj_set_height+0x5c>)
38a6: 4601 mov r1, r0
38a8: 4632 mov r2, r6
38aa: 4620 mov r0, r4
}
38ac: b002 add sp, #8
38ae: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_set_size(obj, lv_obj_get_width(obj), h);
38b2: 4718 bx r3
38b4: 00001a65 .word 0x00001a65
38b8: 0002705a .word 0x0002705a
38bc: 000268df .word 0x000268df
38c0: 0000eb79 .word 0x0000eb79
38c4: 00026943 .word 0x00026943
38c8: 00001a6d .word 0x00001a6d
38cc: 00002671 .word 0x00002671
38d0: 00003765 .word 0x00003765
000038d4 <lv_obj_is_protected>:
{
38d4: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
38d6: 4b0e ldr r3, [pc, #56] ; (3910 <lv_obj_is_protected+0x3c>)
{
38d8: 4604 mov r4, r0
38da: 460e mov r6, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
38dc: 4798 blx r3
38de: 4605 mov r5, r0
38e0: b968 cbnz r0, 38fe <lv_obj_is_protected+0x2a>
38e2: 4b0c ldr r3, [pc, #48] ; (3914 <lv_obj_is_protected+0x40>)
38e4: 490c ldr r1, [pc, #48] ; (3918 <lv_obj_is_protected+0x44>)
38e6: 9300 str r3, [sp, #0]
38e8: f640 22d7 movw r2, #2775 ; 0xad7
38ec: 2003 movs r0, #3
38ee: 4e0b ldr r6, [pc, #44] ; (391c <lv_obj_is_protected+0x48>)
38f0: 47b0 blx r6
38f2: 480b ldr r0, [pc, #44] ; (3920 <lv_obj_is_protected+0x4c>)
38f4: 490b ldr r1, [pc, #44] ; (3924 <lv_obj_is_protected+0x50>)
38f6: 4622 mov r2, r4
38f8: 462b mov r3, r5
38fa: 4788 blx r1
38fc: e7fe b.n 38fc <lv_obj_is_protected+0x28>
return (obj->protect & prot) == 0 ? false : true;
38fe: f894 303c ldrb.w r3, [r4, #60] ; 0x3c
3902: 421e tst r6, r3
}
3904: bf14 ite ne
3906: 2001 movne r0, #1
3908: 2000 moveq r0, #0
390a: b002 add sp, #8
390c: bd70 pop {r4, r5, r6, pc}
390e: bf00 nop
3910: 00001a65 .word 0x00001a65
3914: 0002707f .word 0x0002707f
3918: 000268df .word 0x000268df
391c: 0000eb79 .word 0x0000eb79
3920: 00026943 .word 0x00026943
3924: 00001a6d .word 0x00001a6d
00003928 <lv_obj_get_state>:
{
3928: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
392a: 4b13 ldr r3, [pc, #76] ; (3978 <lv_obj_get_state+0x50>)
{
392c: 4604 mov r4, r0
392e: 460d mov r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3930: 4798 blx r3
3932: 4606 mov r6, r0
3934: b968 cbnz r0, 3952 <lv_obj_get_state+0x2a>
3936: 4b11 ldr r3, [pc, #68] ; (397c <lv_obj_get_state+0x54>)
3938: 4911 ldr r1, [pc, #68] ; (3980 <lv_obj_get_state+0x58>)
393a: 9300 str r3, [sp, #0]
393c: f640 22de movw r2, #2782 ; 0xade
3940: 2003 movs r0, #3
3942: 4d10 ldr r5, [pc, #64] ; (3984 <lv_obj_get_state+0x5c>)
3944: 47a8 blx r5
3946: 4810 ldr r0, [pc, #64] ; (3988 <lv_obj_get_state+0x60>)
3948: 4910 ldr r1, [pc, #64] ; (398c <lv_obj_get_state+0x64>)
394a: 4622 mov r2, r4
394c: 4633 mov r3, r6
394e: 4788 blx r1
3950: e7fe b.n 3950 <lv_obj_get_state+0x28>
if(part < _LV_OBJ_PART_REAL_LAST) return ((lv_obj_t *)obj)->state;
3952: 2d3f cmp r5, #63 ; 0x3f
3954: d803 bhi.n 395e <lv_obj_get_state+0x36>
3956: f894 003d ldrb.w r0, [r4, #61] ; 0x3d
}
395a: b004 add sp, #16
395c: bd70 pop {r4, r5, r6, pc}
info.result = LV_STATE_DEFAULT;
395e: 2300 movs r3, #0
3960: f88d 300d strb.w r3, [sp, #13]
lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STATE_DSC, &info);
3964: aa03 add r2, sp, #12
3966: 4b0a ldr r3, [pc, #40] ; (3990 <lv_obj_get_state+0x68>)
info.part = part;
3968: f88d 500c strb.w r5, [sp, #12]
lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STATE_DSC, &info);
396c: 2109 movs r1, #9
396e: 4620 mov r0, r4
3970: 4798 blx r3
return info.result;
3972: f89d 000d ldrb.w r0, [sp, #13]
3976: e7f0 b.n 395a <lv_obj_get_state+0x32>
3978: 00001a65 .word 0x00001a65
397c: 00027093 .word 0x00027093
3980: 000268df .word 0x000268df
3984: 0000eb79 .word 0x0000eb79
3988: 00026943 .word 0x00026943
398c: 00001a6d .word 0x00001a6d
3990: 000022a9 .word 0x000022a9
00003994 <_lv_obj_get_style_int>:
{
3994: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_state_t state = lv_obj_get_state(parent, part);
3998: f8df a094 ldr.w sl, [pc, #148] ; 3a30 <_lv_obj_get_style_int+0x9c>
res = _lv_style_list_get_int(dsc, prop, &value_act);
399c: f8df b094 ldr.w fp, [pc, #148] ; 3a34 <_lv_obj_get_style_int+0xa0>
{
39a0: 4605 mov r5, r0
39a2: 460e mov r6, r1
39a4: 4617 mov r7, r2
attr.full = prop_ori >> 8;
39a6: ea4f 2812 mov.w r8, r2, lsr #8
while(parent) {
39aa: 4614 mov r4, r2
39ac: b965 cbnz r5, 39c8 <_lv_obj_get_style_int+0x34>
prop = prop & (~LV_STYLE_STATE_MASK);
39ae: f424 44fe bic.w r4, r4, #32512 ; 0x7f00
switch(prop) {
39b2: 2c22 cmp r4, #34 ; 0x22
prop = prop & (~LV_STYLE_STATE_MASK);
39b4: b2a0 uxth r0, r4
switch(prop) {
39b6: d030 beq.n 3a1a <_lv_obj_get_style_int+0x86>
39b8: d827 bhi.n 3a0a <_lv_obj_get_style_int+0x76>
39ba: 2803 cmp r0, #3
39bc: d02f beq.n 3a1e <_lv_obj_get_style_int+0x8a>
39be: 1fc2 subs r2, r0, #7
39c0: 4250 negs r0, r2
39c2: 4150 adcs r0, r2
39c4: 0200 lsls r0, r0, #8
39c6: e013 b.n 39f0 <_lv_obj_get_style_int+0x5c>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
39c8: 4b17 ldr r3, [pc, #92] ; (3a28 <_lv_obj_get_style_int+0x94>)
39ca: 4631 mov r1, r6
39cc: 4628 mov r0, r5
39ce: 4798 blx r3
lv_state_t state = lv_obj_get_state(parent, part);
39d0: 4631 mov r1, r6
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
39d2: 4681 mov r9, r0
lv_state_t state = lv_obj_get_state(parent, part);
39d4: 4628 mov r0, r5
39d6: 47d0 blx sl
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
39d8: eb07 2000 add.w r0, r7, r0, lsl #8
39dc: b284 uxth r4, r0
res = _lv_style_list_get_int(dsc, prop, &value_act);
39de: f10d 0206 add.w r2, sp, #6
39e2: 4621 mov r1, r4
39e4: 4648 mov r0, r9
39e6: 47d8 blx fp
if(res == LV_RES_OK) return value_act;
39e8: 2801 cmp r0, #1
39ea: d104 bne.n 39f6 <_lv_obj_get_style_int+0x62>
39ec: f9bd 0006 ldrsh.w r0, [sp, #6]
}
39f0: b003 add sp, #12
39f2: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(attr.bits.inherit == 0) break;
39f6: f018 0f80 tst.w r8, #128 ; 0x80
39fa: d0d8 beq.n 39ae <_lv_obj_get_style_int+0x1a>
if(part != LV_OBJ_PART_MAIN) {
39fc: b91e cbnz r6, 3a06 <_lv_obj_get_style_int+0x72>
parent = lv_obj_get_parent(parent);
39fe: 4628 mov r0, r5
3a00: 4b0a ldr r3, [pc, #40] ; (3a2c <_lv_obj_get_style_int+0x98>)
3a02: 4798 blx r3
3a04: 4605 mov r5, r0
{
3a06: 2600 movs r6, #0
3a08: e7d0 b.n 39ac <_lv_obj_get_style_int+0x18>
switch(prop) {
3a0a: 2831 cmp r0, #49 ; 0x31
3a0c: d009 beq.n 3a22 <_lv_obj_get_style_int+0x8e>
3a0e: f1a0 03c0 sub.w r3, r0, #192 ; 0xc0
3a12: 4258 negs r0, r3
3a14: 4158 adcs r0, r3
3a16: 0100 lsls r0, r0, #4
3a18: e7ea b.n 39f0 <_lv_obj_get_style_int+0x5c>
return 255;
3a1a: 20ff movs r0, #255 ; 0xff
3a1c: e7e8 b.n 39f0 <_lv_obj_get_style_int+0x5c>
switch(prop) {
3a1e: 2006 movs r0, #6
3a20: e7e6 b.n 39f0 <_lv_obj_get_style_int+0x5c>
return LV_BORDER_SIDE_FULL;
3a22: 200f movs r0, #15
3a24: e7e4 b.n 39f0 <_lv_obj_get_style_int+0x5c>
3a26: bf00 nop
3a28: 00002711 .word 0x00002711
3a2c: 000023a9 .word 0x000023a9
3a30: 00003929 .word 0x00003929
3a34: 00006111 .word 0x00006111
00003a38 <_lv_obj_get_style_color>:
{
3a38: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_state_t state = lv_obj_get_state(parent, part);
3a3c: f8df a074 ldr.w sl, [pc, #116] ; 3ab4 <_lv_obj_get_style_color+0x7c>
res = _lv_style_list_get_color(dsc, prop, &value_act);
3a40: f8df b074 ldr.w fp, [pc, #116] ; 3ab8 <_lv_obj_get_style_color+0x80>
{
3a44: 4605 mov r5, r0
3a46: 460e mov r6, r1
3a48: 4617 mov r7, r2
attr.full = prop_ori >> 8;
3a4a: ea4f 2812 mov.w r8, r2, lsr #8
while(parent) {
3a4e: 4614 mov r4, r2
3a50: b94d cbnz r5, 3a66 <_lv_obj_get_style_color+0x2e>
prop = prop & (~LV_STYLE_STATE_MASK);
3a52: f424 44fe bic.w r4, r4, #32512 ; 0x7f00
switch(prop) {
3a56: 3c29 subs r4, #41 ; 0x29
3a58: 2c01 cmp r4, #1
return LV_COLOR_WHITE;
3a5a: bf96 itet ls
3a5c: 4b12 ldrls r3, [pc, #72] ; (3aa8 <_lv_obj_get_style_color+0x70>)
return LV_COLOR_BLACK;
3a5e: 2000 movhi r0, #0
return LV_COLOR_WHITE;
3a60: f8b3 0602 ldrhls.w r0, [r3, #1538] ; 0x602
return LV_COLOR_BLACK;
3a64: e012 b.n 3a8c <_lv_obj_get_style_color+0x54>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3a66: 4b11 ldr r3, [pc, #68] ; (3aac <_lv_obj_get_style_color+0x74>)
3a68: 4631 mov r1, r6
3a6a: 4628 mov r0, r5
3a6c: 4798 blx r3
lv_state_t state = lv_obj_get_state(parent, part);
3a6e: 4631 mov r1, r6
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3a70: 4681 mov r9, r0
lv_state_t state = lv_obj_get_state(parent, part);
3a72: 4628 mov r0, r5
3a74: 47d0 blx sl
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
3a76: eb07 2000 add.w r0, r7, r0, lsl #8
3a7a: b284 uxth r4, r0
res = _lv_style_list_get_color(dsc, prop, &value_act);
3a7c: aa01 add r2, sp, #4
3a7e: 4621 mov r1, r4
3a80: 4648 mov r0, r9
3a82: 47d8 blx fp
if(res == LV_RES_OK) return value_act;
3a84: 2801 cmp r0, #1
3a86: d104 bne.n 3a92 <_lv_obj_get_style_color+0x5a>
3a88: f8bd 0004 ldrh.w r0, [sp, #4]
}
3a8c: b003 add sp, #12
3a8e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(attr.bits.inherit == 0) break;
3a92: f018 0f80 tst.w r8, #128 ; 0x80
3a96: d0dc beq.n 3a52 <_lv_obj_get_style_color+0x1a>
if(part != LV_OBJ_PART_MAIN) {
3a98: b91e cbnz r6, 3aa2 <_lv_obj_get_style_color+0x6a>
parent = lv_obj_get_parent(parent);
3a9a: 4628 mov r0, r5
3a9c: 4b04 ldr r3, [pc, #16] ; (3ab0 <_lv_obj_get_style_color+0x78>)
3a9e: 4798 blx r3
3aa0: 4605 mov r5, r0
{
3aa2: 2600 movs r6, #0
3aa4: e7d4 b.n 3a50 <_lv_obj_get_style_color+0x18>
3aa6: bf00 nop
3aa8: 00026ae6 .word 0x00026ae6
3aac: 00002711 .word 0x00002711
3ab0: 000023a9 .word 0x000023a9
3ab4: 00003929 .word 0x00003929
3ab8: 00006199 .word 0x00006199
00003abc <_lv_obj_get_style_opa>:
{
3abc: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_state_t state = lv_obj_get_state(parent, part);
3ac0: f8df a080 ldr.w sl, [pc, #128] ; 3b44 <_lv_obj_get_style_opa+0x88>
res = _lv_style_list_get_opa(dsc, prop, &value_act);
3ac4: f8df b080 ldr.w fp, [pc, #128] ; 3b48 <_lv_obj_get_style_opa+0x8c>
{
3ac8: 4605 mov r5, r0
3aca: 460e mov r6, r1
3acc: 4617 mov r7, r2
attr.full = prop_ori >> 8;
3ace: ea4f 2812 mov.w r8, r2, lsr #8
while(parent) {
3ad2: 4614 mov r4, r2
3ad4: b975 cbnz r5, 3af4 <_lv_obj_get_style_opa+0x38>
prop = prop & (~LV_STYLE_STATE_MASK);
3ad6: f424 44fe bic.w r4, r4, #32512 ; 0x7f00
switch(prop) {
3ada: 2c6d cmp r4, #109 ; 0x6d
prop = prop & (~LV_STYLE_STATE_MASK);
3adc: b2a0 uxth r0, r4
switch(prop) {
3ade: d02a beq.n 3b36 <_lv_obj_get_style_opa+0x7a>
3ae0: f248 03ad movw r3, #32941 ; 0x80ad
3ae4: 4298 cmp r0, r3
3ae6: d026 beq.n 3b36 <_lv_obj_get_style_opa+0x7a>
3ae8: 382c subs r0, #44 ; 0x2c
3aea: bf18 it ne
3aec: f04f 30ff movne.w r0, #4294967295 ; 0xffffffff
3af0: b2c0 uxtb r0, r0
3af2: e013 b.n 3b1c <_lv_obj_get_style_opa+0x60>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3af4: 4b11 ldr r3, [pc, #68] ; (3b3c <_lv_obj_get_style_opa+0x80>)
3af6: 4631 mov r1, r6
3af8: 4628 mov r0, r5
3afa: 4798 blx r3
lv_state_t state = lv_obj_get_state(parent, part);
3afc: 4631 mov r1, r6
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3afe: 4681 mov r9, r0
lv_state_t state = lv_obj_get_state(parent, part);
3b00: 4628 mov r0, r5
3b02: 47d0 blx sl
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
3b04: eb07 2000 add.w r0, r7, r0, lsl #8
3b08: b284 uxth r4, r0
res = _lv_style_list_get_opa(dsc, prop, &value_act);
3b0a: f10d 0207 add.w r2, sp, #7
3b0e: 4621 mov r1, r4
3b10: 4648 mov r0, r9
3b12: 47d8 blx fp
if(res == LV_RES_OK) return value_act;
3b14: 2801 cmp r0, #1
3b16: d104 bne.n 3b22 <_lv_obj_get_style_opa+0x66>
3b18: f89d 0007 ldrb.w r0, [sp, #7]
}
3b1c: b003 add sp, #12
3b1e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(attr.bits.inherit == 0) break;
3b22: f018 0f80 tst.w r8, #128 ; 0x80
3b26: d0d6 beq.n 3ad6 <_lv_obj_get_style_opa+0x1a>
if(part != LV_OBJ_PART_MAIN) {
3b28: b91e cbnz r6, 3b32 <_lv_obj_get_style_opa+0x76>
parent = lv_obj_get_parent(parent);
3b2a: 4628 mov r0, r5
3b2c: 4b04 ldr r3, [pc, #16] ; (3b40 <_lv_obj_get_style_opa+0x84>)
3b2e: 4798 blx r3
3b30: 4605 mov r5, r0
{
3b32: 2600 movs r6, #0
3b34: e7ce b.n 3ad4 <_lv_obj_get_style_opa+0x18>
return LV_OPA_TRANSP;
3b36: 2000 movs r0, #0
3b38: e7f0 b.n 3b1c <_lv_obj_get_style_opa+0x60>
3b3a: bf00 nop
3b3c: 00002711 .word 0x00002711
3b40: 000023a9 .word 0x000023a9
3b44: 00003929 .word 0x00003929
3b48: 00006221 .word 0x00006221
00003b4c <_lv_obj_get_style_ptr>:
{
3b4c: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_state_t state = lv_obj_get_state(parent, part);
3b50: f8df a084 ldr.w sl, [pc, #132] ; 3bd8 <_lv_obj_get_style_ptr+0x8c>
res = _lv_style_list_get_ptr(dsc, prop, &value_act);
3b54: f8df b084 ldr.w fp, [pc, #132] ; 3bdc <_lv_obj_get_style_ptr+0x90>
{
3b58: 4605 mov r5, r0
3b5a: 460e mov r6, r1
3b5c: 4617 mov r7, r2
attr.full = prop_ori >> 8;
3b5e: ea4f 2812 mov.w r8, r2, lsr #8
while(parent) {
3b62: 4614 mov r4, r2
3b64: b96d cbnz r5, 3b82 <_lv_obj_get_style_ptr+0x36>
prop = prop & (~LV_STYLE_STATE_MASK);
3b66: f424 44fe bic.w r4, r4, #32512 ; 0x7f00
switch(prop) {
3b6a: 2cbe cmp r4, #190 ; 0xbe
prop = prop & (~LV_STYLE_STATE_MASK);
3b6c: b2a3 uxth r3, r4
switch(prop) {
3b6e: d027 beq.n 3bc0 <_lv_obj_get_style_ptr+0x74>
3b70: f248 028e movw r2, #32910 ; 0x808e
3b74: 4293 cmp r3, r2
3b76: d001 beq.n 3b7c <_lv_obj_get_style_ptr+0x30>
3b78: 2b7e cmp r3, #126 ; 0x7e
3b7a: d123 bne.n 3bc4 <_lv_obj_get_style_ptr+0x78>
return lv_theme_get_font_normal();
3b7c: 4b12 ldr r3, [pc, #72] ; (3bc8 <_lv_obj_get_style_ptr+0x7c>)
3b7e: 4798 blx r3
3b80: e011 b.n 3ba6 <_lv_obj_get_style_ptr+0x5a>
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3b82: 4b12 ldr r3, [pc, #72] ; (3bcc <_lv_obj_get_style_ptr+0x80>)
3b84: 4631 mov r1, r6
3b86: 4628 mov r0, r5
3b88: 4798 blx r3
lv_state_t state = lv_obj_get_state(parent, part);
3b8a: 4631 mov r1, r6
lv_style_list_t * dsc = lv_obj_get_style_list(parent, part);
3b8c: 4681 mov r9, r0
lv_state_t state = lv_obj_get_state(parent, part);
3b8e: 4628 mov r0, r5
3b90: 47d0 blx sl
prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS);
3b92: eb07 2000 add.w r0, r7, r0, lsl #8
3b96: b284 uxth r4, r0
res = _lv_style_list_get_ptr(dsc, prop, &value_act);
3b98: aa01 add r2, sp, #4
3b9a: 4621 mov r1, r4
3b9c: 4648 mov r0, r9
3b9e: 47d8 blx fp
if(res == LV_RES_OK) return value_act;
3ba0: 2801 cmp r0, #1
3ba2: d103 bne.n 3bac <_lv_obj_get_style_ptr+0x60>
3ba4: 9801 ldr r0, [sp, #4]
}
3ba6: b003 add sp, #12
3ba8: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(attr.bits.inherit == 0) break;
3bac: f018 0f80 tst.w r8, #128 ; 0x80
3bb0: d0d9 beq.n 3b66 <_lv_obj_get_style_ptr+0x1a>
if(part != LV_OBJ_PART_MAIN) {
3bb2: b91e cbnz r6, 3bbc <_lv_obj_get_style_ptr+0x70>
parent = lv_obj_get_parent(parent);
3bb4: 4628 mov r0, r5
3bb6: 4b06 ldr r3, [pc, #24] ; (3bd0 <_lv_obj_get_style_ptr+0x84>)
3bb8: 4798 blx r3
3bba: 4605 mov r5, r0
{
3bbc: 2600 movs r6, #0
3bbe: e7d1 b.n 3b64 <_lv_obj_get_style_ptr+0x18>
return &lv_anim_path_def;
3bc0: 4804 ldr r0, [pc, #16] ; (3bd4 <_lv_obj_get_style_ptr+0x88>)
3bc2: e7f0 b.n 3ba6 <_lv_obj_get_style_ptr+0x5a>
switch(prop) {
3bc4: 2000 movs r0, #0
3bc6: e7ee b.n 3ba6 <_lv_obj_get_style_ptr+0x5a>
3bc8: 00010569 .word 0x00010569
3bcc: 00002711 .word 0x00002711
3bd0: 000023a9 .word 0x000023a9
3bd4: 0002b9a8 .word 0x0002b9a8
3bd8: 00003929 .word 0x00003929
3bdc: 000062a9 .word 0x000062a9
00003be0 <trans_anim_start_cb>:
{
3be0: b570 push {r4, r5, r6, lr}
lv_style_trans_t * tr = a->var;
3be2: 6804 ldr r4, [r0, #0]
lv_style_property_t prop_tmp = tr->prop;
3be4: 88a5 ldrh r5, [r4, #4]
tr->start_value._int = _lv_obj_get_style_int(tr->obj, tr->part, prop_tmp);
3be6: 6820 ldr r0, [r4, #0]
3be8: 79a1 ldrb r1, [r4, #6]
3bea: f005 030f and.w r3, r5, #15
if((prop_tmp & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/
3bee: 2b08 cmp r3, #8
tr->start_value._int = _lv_obj_get_style_int(tr->obj, tr->part, prop_tmp);
3bf0: 462a mov r2, r5
if((prop_tmp & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/
3bf2: d80c bhi.n 3c0e <trans_anim_start_cb+0x2e>
tr->start_value._int = _lv_obj_get_style_int(tr->obj, tr->part, prop_tmp);
3bf4: 4b0d ldr r3, [pc, #52] ; (3c2c <trans_anim_start_cb+0x4c>)
3bf6: 4798 blx r3
tr->start_value._color = _lv_obj_get_style_color(tr->obj, tr->part, prop_tmp);
3bf8: 8120 strh r0, [r4, #8]
tr->prop = 0;
3bfa: 2300 movs r3, #0
3bfc: 80a3 strh r3, [r4, #4]
trans_del(tr->obj, tr->part, prop_tmp, tr);
3bfe: 79a1 ldrb r1, [r4, #6]
3c00: 6820 ldr r0, [r4, #0]
3c02: 4e0b ldr r6, [pc, #44] ; (3c30 <trans_anim_start_cb+0x50>)
3c04: 4623 mov r3, r4
3c06: 462a mov r2, r5
3c08: 47b0 blx r6
tr->prop = prop_tmp;
3c0a: 80a5 strh r5, [r4, #4]
}
3c0c: bd70 pop {r4, r5, r6, pc}
else if((prop_tmp & 0xF) < LV_STYLE_ID_OPA) { /*Color*/
3c0e: 2b0b cmp r3, #11
3c10: d802 bhi.n 3c18 <trans_anim_start_cb+0x38>
tr->start_value._color = _lv_obj_get_style_color(tr->obj, tr->part, prop_tmp);
3c12: 4b08 ldr r3, [pc, #32] ; (3c34 <trans_anim_start_cb+0x54>)
3c14: 4798 blx r3
3c16: e7ef b.n 3bf8 <trans_anim_start_cb+0x18>
else if((prop_tmp & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/
3c18: 2b0d cmp r3, #13
3c1a: d803 bhi.n 3c24 <trans_anim_start_cb+0x44>
tr->start_value._opa = _lv_obj_get_style_opa(tr->obj, tr->part, prop_tmp);
3c1c: 4b06 ldr r3, [pc, #24] ; (3c38 <trans_anim_start_cb+0x58>)
3c1e: 4798 blx r3
3c20: 7220 strb r0, [r4, #8]
3c22: e7ea b.n 3bfa <trans_anim_start_cb+0x1a>
tr->start_value._ptr = _lv_obj_get_style_ptr(tr->obj, tr->part, prop_tmp);
3c24: 4b05 ldr r3, [pc, #20] ; (3c3c <trans_anim_start_cb+0x5c>)
3c26: 4798 blx r3
3c28: 60a0 str r0, [r4, #8]
3c2a: e7e6 b.n 3bfa <trans_anim_start_cb+0x1a>
3c2c: 00003995 .word 0x00003995
3c30: 00002739 .word 0x00002739
3c34: 00003a39 .word 0x00003a39
3c38: 00003abd .word 0x00003abd
3c3c: 00003b4d .word 0x00003b4d
00003c40 <lv_obj_set_state>:
{
3c40: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
if(obj->state == new_state) return;
3c44: f890 303d ldrb.w r3, [r0, #61] ; 0x3d
3c48: 428b cmp r3, r1
{
3c4a: b09f sub sp, #124 ; 0x7c
3c4c: 4604 mov r4, r0
3c4e: 4688 mov r8, r1
if(obj->state == new_state) return;
3c50: f000 8242 beq.w 40d8 <lv_obj_set_state+0x498>
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
3c54: 4b95 ldr r3, [pc, #596] ; (3eac <lv_obj_set_state+0x26c>)
3c56: 4798 blx r3
3c58: 4605 mov r5, r0
3c5a: b968 cbnz r0, 3c78 <lv_obj_set_state+0x38>
3c5c: 4b94 ldr r3, [pc, #592] ; (3eb0 <lv_obj_set_state+0x270>)
3c5e: 4995 ldr r1, [pc, #596] ; (3eb4 <lv_obj_set_state+0x274>)
3c60: 9300 str r3, [sp, #0]
3c62: f240 6237 movw r2, #1591 ; 0x637
3c66: 2003 movs r0, #3
3c68: 4e93 ldr r6, [pc, #588] ; (3eb8 <lv_obj_set_state+0x278>)
3c6a: 47b0 blx r6
3c6c: 4893 ldr r0, [pc, #588] ; (3ebc <lv_obj_set_state+0x27c>)
3c6e: 4994 ldr r1, [pc, #592] ; (3ec0 <lv_obj_set_state+0x280>)
3c70: 4622 mov r2, r4
3c72: 462b mov r3, r5
3c74: 4788 blx r1
3c76: e7fe b.n 3c76 <lv_obj_set_state+0x36>
lv_state_t prev_state = obj->state;
3c78: f894 303d ldrb.w r3, [r4, #61] ; 0x3d
3c7c: 9302 str r3, [sp, #8]
obj->state = new_state;
3c7e: 2300 movs r3, #0
3c80: f884 803d strb.w r8, [r4, #61] ; 0x3d
3c84: 9303 str r3, [sp, #12]
3c86: f89d 600c ldrb.w r6, [sp, #12]
lv_style_list_t * style_list = lv_obj_get_style_list(obj, part);
3c8a: 4b8e ldr r3, [pc, #568] ; (3ec4 <lv_obj_set_state+0x284>)
3c8c: 4631 mov r1, r6
3c8e: 4620 mov r0, r4
3c90: 4798 blx r3
if(style_list == NULL) break; /*No more style lists*/
3c92: 9005 str r0, [sp, #20]
3c94: b140 cbz r0, 3ca8 <lv_obj_set_state+0x68>
if(style_list->ignore_trans) continue;
3c96: 7947 ldrb r7, [r0, #5]
3c98: f017 0708 ands.w r7, r7, #8
3c9c: d00b beq.n 3cb6 <lv_obj_set_state+0x76>
for(part = 0; part < _LV_OBJ_PART_REAL_LAST; part++) {
3c9e: 9b03 ldr r3, [sp, #12]
3ca0: 3301 adds r3, #1
3ca2: 2b40 cmp r3, #64 ; 0x40
3ca4: 9303 str r3, [sp, #12]
3ca6: d1ee bne.n 3c86 <lv_obj_set_state+0x46>
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
3ca8: 4b87 ldr r3, [pc, #540] ; (3ec8 <lv_obj_set_state+0x288>)
3caa: 21ff movs r1, #255 ; 0xff
3cac: 4620 mov r0, r4
}
3cae: b01f add sp, #124 ; 0x7c
3cb0: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
3cb4: 4718 bx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_OPA, line_opa, lv_opa_t, _opa, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_BLEND_MODE, image_blend_mode, lv_blend_mode_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_OPA, image_opa, lv_opa_t, _opa, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR_OPA, image_recolor_opa, lv_opa_t, _opa, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
3cb6: 4d85 ldr r5, [pc, #532] ; (3ecc <lv_obj_set_state+0x28c>)
3cb8: 22b0 movs r2, #176 ; 0xb0
3cba: 4631 mov r1, r6
3cbc: 4620 mov r0, r4
3cbe: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar)
3cc0: 22b1 movs r2, #177 ; 0xb1
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
3cc2: 9009 str r0, [sp, #36] ; 0x24
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar)
3cc4: 4631 mov r1, r6
3cc6: 4620 mov r0, r4
3cc8: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_3, transition_prop_3, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
#if LV_USE_ANIMATION
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar)
3cca: 4b81 ldr r3, [pc, #516] ; (3ed0 <lv_obj_set_state+0x290>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar)
3ccc: 9008 str r0, [sp, #32]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar)
3cce: 22be movs r2, #190 ; 0xbe
3cd0: 4631 mov r1, r6
3cd2: 4620 mov r0, r4
3cd4: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_1, transition_prop_1, lv_style_int_t, _int, scalar)
3cd6: 22b2 movs r2, #178 ; 0xb2
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar)
3cd8: 9006 str r0, [sp, #24]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_1, transition_prop_1, lv_style_int_t, _int, scalar)
3cda: 4631 mov r1, r6
3cdc: 4620 mov r0, r4
3cde: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_2, transition_prop_2, lv_style_int_t, _int, scalar)
3ce0: 22b3 movs r2, #179 ; 0xb3
props[0] = lv_obj_get_style_transition_prop_1(obj, part);
3ce2: f8ad 002c strh.w r0, [sp, #44] ; 0x2c
3ce6: 4631 mov r1, r6
3ce8: 4620 mov r0, r4
3cea: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_3, transition_prop_3, lv_style_int_t, _int, scalar)
3cec: 22b4 movs r2, #180 ; 0xb4
props[1] = lv_obj_get_style_transition_prop_2(obj, part);
3cee: f8ad 002e strh.w r0, [sp, #46] ; 0x2e
3cf2: 4631 mov r1, r6
3cf4: 4620 mov r0, r4
3cf6: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar)
3cf8: 22b5 movs r2, #181 ; 0xb5
props[2] = lv_obj_get_style_transition_prop_3(obj, part);
3cfa: f8ad 0030 strh.w r0, [sp, #48] ; 0x30
3cfe: 4631 mov r1, r6
3d00: 4620 mov r0, r4
3d02: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
3d04: 22b6 movs r2, #182 ; 0xb6
props[3] = lv_obj_get_style_transition_prop_4(obj, part);
3d06: f8ad 0032 strh.w r0, [sp, #50] ; 0x32
3d0a: 4631 mov r1, r6
3d0c: 4620 mov r0, r4
3d0e: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
3d10: 22b7 movs r2, #183 ; 0xb7
props[4] = lv_obj_get_style_transition_prop_5(obj, part);
3d12: f8ad 0034 strh.w r0, [sp, #52] ; 0x34
3d16: 4631 mov r1, r6
3d18: 4620 mov r0, r4
3d1a: 47a8 blx r5
props[5] = lv_obj_get_style_transition_prop_6(obj, part);
3d1c: 9704 str r7, [sp, #16]
3d1e: f8ad 0036 strh.w r0, [sp, #54] ; 0x36
if(props[i] != 0) {
3d22: 9a04 ldr r2, [sp, #16]
3d24: ab0b add r3, sp, #44 ; 0x2c
3d26: f833 7012 ldrh.w r7, [r3, r2, lsl #1]
3d2a: 2f00 cmp r7, #0
3d2c: f000 80b6 beq.w 3e9c <lv_obj_set_state+0x25c>
_lv_style_list_add_trans_style(style_list);
3d30: 4b68 ldr r3, [pc, #416] ; (3ed4 <lv_obj_set_state+0x294>)
3d32: 9805 ldr r0, [sp, #20]
3d34: 4798 blx r3
lv_style_list_t * style_list = lv_obj_get_style_list(obj, part);
3d36: 4b63 ldr r3, [pc, #396] ; (3ec4 <lv_obj_set_state+0x284>)
3d38: 4631 mov r1, r6
3d3a: 4620 mov r0, r4
3d3c: 4798 blx r3
lv_style_t * style_trans = _lv_style_list_get_transition_style(style_list);
3d3e: 4b66 ldr r3, [pc, #408] ; (3ed8 <lv_obj_set_state+0x298>)
lv_style_list_t * style_list = lv_obj_get_style_list(obj, part);
3d40: 4605 mov r5, r0
lv_style_t * style_trans = _lv_style_list_get_transition_style(style_list);
3d42: 4798 blx r3
3d44: f007 030f and.w r3, r7, #15
if((prop & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/
3d48: 2b08 cmp r3, #8
lv_style_t * style_trans = _lv_style_list_get_transition_style(style_list);
3d4a: 4682 mov sl, r0
if((prop & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/
3d4c: f200 80dc bhi.w 3f08 <lv_obj_set_state+0x2c8>
style_list->skip_trans = 1;
3d50: 796b ldrb r3, [r5, #5]
lv_style_int_t int1 = _lv_obj_get_style_int(obj, part, prop);
3d52: f8df b178 ldr.w fp, [pc, #376] ; 3ecc <lv_obj_set_state+0x28c>
style_list->skip_trans = 1;
3d56: f043 0304 orr.w r3, r3, #4
3d5a: 716b strb r3, [r5, #5]
obj->state = prev_state;
3d5c: 9b02 ldr r3, [sp, #8]
3d5e: f884 303d strb.w r3, [r4, #61] ; 0x3d
lv_style_int_t int1 = _lv_obj_get_style_int(obj, part, prop);
3d62: 463a mov r2, r7
3d64: 4631 mov r1, r6
3d66: 4620 mov r0, r4
3d68: 47d8 blx fp
lv_style_int_t int2 = _lv_obj_get_style_int(obj, part, prop);
3d6a: 463a mov r2, r7
lv_style_int_t int1 = _lv_obj_get_style_int(obj, part, prop);
3d6c: 9007 str r0, [sp, #28]
obj->state = new_state;
3d6e: f884 803d strb.w r8, [r4, #61] ; 0x3d
lv_style_int_t int2 = _lv_obj_get_style_int(obj, part, prop);
3d72: 4631 mov r1, r6
3d74: 4620 mov r0, r4
3d76: 47d8 blx fp
style_list->skip_trans = 0;
3d78: 796a ldrb r2, [r5, #5]
if(int1 == int2) return NULL;
3d7a: 9b07 ldr r3, [sp, #28]
style_list->skip_trans = 0;
3d7c: f36f 0282 bfc r2, #2, #1
if(int1 == int2) return NULL;
3d80: 4283 cmp r3, r0
lv_style_int_t int2 = _lv_obj_get_style_int(obj, part, prop);
3d82: 4681 mov r9, r0
style_list->skip_trans = 0;
3d84: 716a strb r2, [r5, #5]
if(int1 == int2) return NULL;
3d86: f000 8089 beq.w 3e9c <lv_obj_set_state+0x25c>
obj->state = prev_state;
3d8a: 9b02 ldr r3, [sp, #8]
3d8c: f884 303d strb.w r3, [r4, #61] ; 0x3d
int1 = _lv_obj_get_style_int(obj, part, prop);
3d90: 463a mov r2, r7
3d92: 4631 mov r1, r6
3d94: 4620 mov r0, r4
3d96: 47d8 blx fp
_lv_style_set_int(style_trans, prop, int1); /*Be sure `trans_style` has a valid value */
3d98: 4b50 ldr r3, [pc, #320] ; (3edc <lv_obj_set_state+0x29c>)
obj->state = new_state;
3d9a: f884 803d strb.w r8, [r4, #61] ; 0x3d
_lv_style_set_int(style_trans, prop, int1); /*Be sure `trans_style` has a valid value */
3d9e: 4602 mov r2, r0
int1 = _lv_obj_get_style_int(obj, part, prop);
3da0: 4683 mov fp, r0
_lv_style_set_int(style_trans, prop, int1); /*Be sure `trans_style` has a valid value */
3da2: 4639 mov r1, r7
3da4: 4650 mov r0, sl
3da6: 4798 blx r3
if(prop == LV_STYLE_RADIUS) {
3da8: 2f01 cmp r7, #1
3daa: d122 bne.n 3df2 <lv_obj_set_state+0x1b2>
if(int1 == LV_RADIUS_CIRCLE || int2 == LV_RADIUS_CIRCLE) {
3dac: f647 73ff movw r3, #32767 ; 0x7fff
3db0: 459b cmp fp, r3
3db2: d001 beq.n 3db8 <lv_obj_set_state+0x178>
3db4: 4599 cmp r9, r3
3db6: d11c bne.n 3df2 <lv_obj_set_state+0x1b2>
lv_coord_t whalf = lv_obj_get_width(obj) / 2;
3db8: f8df a148 ldr.w sl, [pc, #328] ; 3f04 <lv_obj_set_state+0x2c4>
3dbc: 4620 mov r0, r4
3dbe: 47d0 blx sl
3dc0: eb00 70d0 add.w r0, r0, r0, lsr #31
3dc4: f340 054f sbfx r5, r0, #1, #16
lv_coord_t hhalf = lv_obj_get_width(obj) / 2;
3dc8: 4620 mov r0, r4
3dca: 47d0 blx sl
if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3dcc: f647 73ff movw r3, #32767 ; 0x7fff
lv_coord_t hhalf = lv_obj_get_width(obj) / 2;
3dd0: eb00 70d0 add.w r0, r0, r0, lsr #31
if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3dd4: 459b cmp fp, r3
lv_coord_t hhalf = lv_obj_get_width(obj) / 2;
3dd6: f340 004f sbfx r0, r0, #1, #16
if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3dda: d12a bne.n 3e32 <lv_obj_set_state+0x1f2>
3ddc: 4285 cmp r5, r0
3dde: da1e bge.n 3e1e <lv_obj_set_state+0x1de>
3de0: f105 0b01 add.w fp, r5, #1
if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3de4: 4599 cmp r9, r3
if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3de6: fa0f fb8b sxth.w fp, fp
if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3dea: d102 bne.n 3df2 <lv_obj_set_state+0x1b2>
3dec: 3501 adds r5, #1
3dee: fa0f f985 sxth.w r9, r5
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
3df2: 4b3b ldr r3, [pc, #236] ; (3ee0 <lv_obj_set_state+0x2a0>)
3df4: 483b ldr r0, [pc, #236] ; (3ee4 <lv_obj_set_state+0x2a4>)
3df6: 4798 blx r3
LV_ASSERT_MEM(tr);
3df8: 4b2c ldr r3, [pc, #176] ; (3eac <lv_obj_set_state+0x26c>)
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
3dfa: 4605 mov r5, r0
LV_ASSERT_MEM(tr);
3dfc: 4798 blx r3
3dfe: 4682 mov sl, r0
3e00: b9e0 cbnz r0, 3e3c <lv_obj_set_state+0x1fc>
3e02: 4b39 ldr r3, [pc, #228] ; (3ee8 <lv_obj_set_state+0x2a8>)
3e04: 492b ldr r1, [pc, #172] ; (3eb4 <lv_obj_set_state+0x274>)
3e06: 9300 str r3, [sp, #0]
3e08: f640 62b2 movw r2, #3762 ; 0xeb2
3e0c: 2003 movs r0, #3
3e0e: 4c2a ldr r4, [pc, #168] ; (3eb8 <lv_obj_set_state+0x278>)
3e10: 47a0 blx r4
3e12: 4836 ldr r0, [pc, #216] ; (3eec <lv_obj_set_state+0x2ac>)
3e14: 492a ldr r1, [pc, #168] ; (3ec0 <lv_obj_set_state+0x280>)
3e16: 462a mov r2, r5
3e18: 4653 mov r3, sl
3e1a: 4788 blx r1
3e1c: e7fe b.n 3e1c <lv_obj_set_state+0x1dc>
if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3e1e: f100 0b01 add.w fp, r0, #1
if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3e22: 4599 cmp r9, r3
if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3e24: fa0f fb8b sxth.w fp, fp
if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1);
3e28: d1e3 bne.n 3df2 <lv_obj_set_state+0x1b2>
3e2a: 3001 adds r0, #1
3e2c: fa0f f980 sxth.w r9, r0
3e30: e7df b.n 3df2 <lv_obj_set_state+0x1b2>
3e32: 4599 cmp r9, r3
3e34: d1dd bne.n 3df2 <lv_obj_set_state+0x1b2>
3e36: 4285 cmp r5, r0
3e38: daf7 bge.n 3e2a <lv_obj_set_state+0x1ea>
3e3a: e7d7 b.n 3dec <lv_obj_set_state+0x1ac>
if(tr == NULL) return NULL;
3e3c: 2d00 cmp r5, #0
3e3e: d02d beq.n 3e9c <lv_obj_set_state+0x25c>
tr->start_value._int = int1;
3e40: f8a5 b008 strh.w fp, [r5, #8]
tr->end_value._int = int2;
3e44: f8a5 900c strh.w r9, [r5, #12]
lv_anim_init(&a);
3e48: 4b29 ldr r3, [pc, #164] ; (3ef0 <lv_obj_set_state+0x2b0>)
tr->obj = obj;
3e4a: 602c str r4, [r5, #0]
tr->prop = props[i];
3e4c: 80af strh r7, [r5, #4]
tr->part = part;
3e4e: 71ae strb r6, [r5, #6]
lv_anim_init(&a);
3e50: a80e add r0, sp, #56 ; 0x38
3e52: 4798 blx r3
* LittelvGL's built-in functions can be used.
* E.g. lv_obj_set_x
*/
static inline void lv_anim_set_exec_cb(lv_anim_t * a, lv_anim_exec_xcb_t exec_cb)
{
a->exec_cb = exec_cb;
3e54: 4b27 ldr r3, [pc, #156] ; (3ef4 <lv_obj_set_state+0x2b4>)
3e56: 930f str r3, [sp, #60] ; 0x3c
* @param a pointer to an initialized `lv_anim_t` variable
* @param start_cb a function call when the animation starts
*/
static inline void lv_anim_set_start_cb(lv_anim_t * a, lv_anim_ready_cb_t start_cb)
{
a->start_cb = start_cb;
3e58: 4b27 ldr r3, [pc, #156] ; (3ef8 <lv_obj_set_state+0x2b8>)
3e5a: 9310 str r3, [sp, #64] ; 0x40
* @param a pointer to an initialized `lv_anim_t` variable
* @param ready_cb a function call when the animation is ready
*/
static inline void lv_anim_set_ready_cb(lv_anim_t * a, lv_anim_ready_cb_t ready_cb)
{
a->ready_cb = ready_cb;
3e5c: 4b27 ldr r3, [pc, #156] ; (3efc <lv_obj_set_state+0x2bc>)
3e5e: 9311 str r3, [sp, #68] ; 0x44
a->end = end;
3e60: 2200 movs r2, #0
3e62: 23ff movs r3, #255 ; 0xff
3e64: e9cd 2314 strd r2, r3, [sp, #80] ; 0x50
a->time = duration;
3e68: 9b09 ldr r3, [sp, #36] ; 0x24
3e6a: 9316 str r3, [sp, #88] ; 0x58
a->act_time = (int32_t)(-delay);
3e6c: 9b08 ldr r3, [sp, #32]
3e6e: 9a06 ldr r2, [sp, #24]
a->var = var;
3e70: 950e str r5, [sp, #56] ; 0x38
a->act_time = (int32_t)(-delay);
3e72: 425b negs r3, r3
3e74: 9317 str r3, [sp, #92] ; 0x5c
3e76: 9b06 ldr r3, [sp, #24]
3e78: 1dd1 adds r1, r2, #7
3e7a: 3b01 subs r3, #1
uint8_t * d8 = (uint8_t *)dst;
3e7c: aa12 add r2, sp, #72 ; 0x48
*d8 = *s8;
3e7e: f813 0f01 ldrb.w r0, [r3, #1]!
3e82: f802 0b01 strb.w r0, [r2], #1
while(len) {
3e86: 4299 cmp r1, r3
3e88: d1f9 bne.n 3e7e <lv_obj_set_state+0x23e>
a.early_apply = 0;
3e8a: f89d 306e ldrb.w r3, [sp, #110] ; 0x6e
3e8e: f36f 0300 bfc r3, #0, #1
3e92: f88d 306e strb.w r3, [sp, #110] ; 0x6e
lv_anim_start(&a);
3e96: a80e add r0, sp, #56 ; 0x38
3e98: 4b19 ldr r3, [pc, #100] ; (3f00 <lv_obj_set_state+0x2c0>)
3e9a: 4798 blx r3
for(i = 0; i < LV_STYLE_TRANS_NUM_MAX; i++) {
3e9c: 9b04 ldr r3, [sp, #16]
3e9e: 3301 adds r3, #1
3ea0: 2b06 cmp r3, #6
3ea2: 9304 str r3, [sp, #16]
3ea4: f47f af3d bne.w 3d22 <lv_obj_set_state+0xe2>
3ea8: e6f9 b.n 3c9e <lv_obj_set_state+0x5e>
3eaa: bf00 nop
3eac: 00001a65 .word 0x00001a65
3eb0: 000270ea .word 0x000270ea
3eb4: 000268df .word 0x000268df
3eb8: 0000eb79 .word 0x0000eb79
3ebc: 00026943 .word 0x00026943
3ec0: 00001a6d .word 0x00001a6d
3ec4: 00002711 .word 0x00002711
3ec8: 00003015 .word 0x00003015
3ecc: 00003995 .word 0x00003995
3ed0: 00003b4d .word 0x00003b4d
3ed4: 00006065 .word 0x00006065
3ed8: 00005f3d .word 0x00005f3d
3edc: 00005afd .word 0x00005afd
3ee0: 0000e89d .word 0x0000e89d
3ee4: 20003630 .word 0x20003630
3ee8: 000270fb .word 0x000270fb
3eec: 00026842 .word 0x00026842
3ef0: 0000defd .word 0x0000defd
3ef4: 00003211 .word 0x00003211
3ef8: 00003be1 .word 0x00003be1
3efc: 00002825 .word 0x00002825
3f00: 0000dfa5 .word 0x0000dfa5
3f04: 00002671 .word 0x00002671
else if((prop & 0xF) < LV_STYLE_ID_OPA) { /*Color*/
3f08: 2b0b cmp r3, #11
3f0a: d84b bhi.n 3fa4 <lv_obj_set_state+0x364>
style_list->skip_trans = 1;
3f0c: 796b ldrb r3, [r5, #5]
lv_color_t c1 = _lv_obj_get_style_color(obj, part, prop);
3f0e: f8df b200 ldr.w fp, [pc, #512] ; 4110 <lv_obj_set_state+0x4d0>
style_list->skip_trans = 1;
3f12: f043 0304 orr.w r3, r3, #4
3f16: 716b strb r3, [r5, #5]
obj->state = prev_state;
3f18: 9b02 ldr r3, [sp, #8]
3f1a: f884 303d strb.w r3, [r4, #61] ; 0x3d
lv_color_t c1 = _lv_obj_get_style_color(obj, part, prop);
3f1e: 463a mov r2, r7
3f20: 4631 mov r1, r6
3f22: 4620 mov r0, r4
3f24: 47d8 blx fp
lv_color_t c2 = _lv_obj_get_style_color(obj, part, prop);
3f26: 463a mov r2, r7
lv_color_t c1 = _lv_obj_get_style_color(obj, part, prop);
3f28: 4681 mov r9, r0
obj->state = new_state;
3f2a: f884 803d strb.w r8, [r4, #61] ; 0x3d
lv_color_t c2 = _lv_obj_get_style_color(obj, part, prop);
3f2e: 4631 mov r1, r6
3f30: 4620 mov r0, r4
3f32: 47d8 blx fp
style_list->skip_trans = 0;
3f34: 796a ldrb r2, [r5, #5]
lv_color_t c2 = _lv_obj_get_style_color(obj, part, prop);
3f36: f8ad 001c strh.w r0, [sp, #28]
style_list->skip_trans = 0;
3f3a: f36f 0282 bfc r2, #2, #1
3f3e: 716a strb r2, [r5, #5]
if(c1.full == c2.full) return NULL;
3f40: fa1f f989 uxth.w r9, r9
3f44: b282 uxth r2, r0
3f46: 4591 cmp r9, r2
3f48: d0a8 beq.n 3e9c <lv_obj_set_state+0x25c>
obj->state = prev_state;
3f4a: 9b02 ldr r3, [sp, #8]
3f4c: f884 303d strb.w r3, [r4, #61] ; 0x3d
c1 = _lv_obj_get_style_color(obj, part, prop);
3f50: 463a mov r2, r7
3f52: 4631 mov r1, r6
3f54: 4620 mov r0, r4
3f56: 47d8 blx fp
_lv_style_set_color(style_trans, prop, c1); /*Be sure `trans_style` has a valid value */
3f58: 4639 mov r1, r7
3f5a: 4602 mov r2, r0
3f5c: 4b60 ldr r3, [pc, #384] ; (40e0 <lv_obj_set_state+0x4a0>)
obj->state = new_state;
3f5e: f884 803d strb.w r8, [r4, #61] ; 0x3d
c1 = _lv_obj_get_style_color(obj, part, prop);
3f62: 4681 mov r9, r0
_lv_style_set_color(style_trans, prop, c1); /*Be sure `trans_style` has a valid value */
3f64: 4650 mov r0, sl
3f66: 4798 blx r3
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
3f68: 4b5e ldr r3, [pc, #376] ; (40e4 <lv_obj_set_state+0x4a4>)
3f6a: 485f ldr r0, [pc, #380] ; (40e8 <lv_obj_set_state+0x4a8>)
3f6c: 4798 blx r3
LV_ASSERT_MEM(tr);
3f6e: 4b5f ldr r3, [pc, #380] ; (40ec <lv_obj_set_state+0x4ac>)
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
3f70: 4605 mov r5, r0
LV_ASSERT_MEM(tr);
3f72: 4798 blx r3
3f74: 4682 mov sl, r0
3f76: b968 cbnz r0, 3f94 <lv_obj_set_state+0x354>
3f78: 4b5d ldr r3, [pc, #372] ; (40f0 <lv_obj_set_state+0x4b0>)
3f7a: 495e ldr r1, [pc, #376] ; (40f4 <lv_obj_set_state+0x4b4>)
3f7c: 9300 str r3, [sp, #0]
3f7e: f640 62c6 movw r2, #3782 ; 0xec6
3f82: 2003 movs r0, #3
3f84: 4c5c ldr r4, [pc, #368] ; (40f8 <lv_obj_set_state+0x4b8>)
3f86: 47a0 blx r4
3f88: 485c ldr r0, [pc, #368] ; (40fc <lv_obj_set_state+0x4bc>)
3f8a: 495d ldr r1, [pc, #372] ; (4100 <lv_obj_set_state+0x4c0>)
3f8c: 462a mov r2, r5
3f8e: 4653 mov r3, sl
3f90: 4788 blx r1
3f92: e7fe b.n 3f92 <lv_obj_set_state+0x352>
if(tr == NULL) return NULL;
3f94: 2d00 cmp r5, #0
3f96: d081 beq.n 3e9c <lv_obj_set_state+0x25c>
tr->end_value._color = c2;
3f98: f8bd 301c ldrh.w r3, [sp, #28]
tr->start_value._color = c1;
3f9c: f8a5 9008 strh.w r9, [r5, #8]
tr->end_value._color = c2;
3fa0: 81ab strh r3, [r5, #12]
3fa2: e751 b.n 3e48 <lv_obj_set_state+0x208>
else if((prop & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/
3fa4: 2b0d cmp r3, #13
3fa6: d849 bhi.n 403c <lv_obj_set_state+0x3fc>
style_list->skip_trans = 1;
3fa8: 796b ldrb r3, [r5, #5]
lv_opa_t o1 = _lv_obj_get_style_opa(obj, part, prop);
3faa: f8df b168 ldr.w fp, [pc, #360] ; 4114 <lv_obj_set_state+0x4d4>
style_list->skip_trans = 1;
3fae: f043 0304 orr.w r3, r3, #4
3fb2: 716b strb r3, [r5, #5]
obj->state = prev_state;
3fb4: 9b02 ldr r3, [sp, #8]
3fb6: f884 303d strb.w r3, [r4, #61] ; 0x3d
lv_opa_t o1 = _lv_obj_get_style_opa(obj, part, prop);
3fba: 463a mov r2, r7
3fbc: 4631 mov r1, r6
3fbe: 4620 mov r0, r4
3fc0: 47d8 blx fp
lv_opa_t o2 = _lv_obj_get_style_opa(obj, part, prop);
3fc2: 463a mov r2, r7
lv_opa_t o1 = _lv_obj_get_style_opa(obj, part, prop);
3fc4: 9007 str r0, [sp, #28]
obj->state = new_state;
3fc6: f884 803d strb.w r8, [r4, #61] ; 0x3d
lv_opa_t o2 = _lv_obj_get_style_opa(obj, part, prop);
3fca: 4631 mov r1, r6
3fcc: 4620 mov r0, r4
3fce: 47d8 blx fp
style_list->skip_trans = 0;
3fd0: 796a ldrb r2, [r5, #5]
if(o1 == o2) return NULL;
3fd2: 9b07 ldr r3, [sp, #28]
style_list->skip_trans = 0;
3fd4: f36f 0282 bfc r2, #2, #1
if(o1 == o2) return NULL;
3fd8: 4283 cmp r3, r0
lv_opa_t o2 = _lv_obj_get_style_opa(obj, part, prop);
3fda: 4681 mov r9, r0
style_list->skip_trans = 0;
3fdc: 716a strb r2, [r5, #5]
if(o1 == o2) return NULL;
3fde: f43f af5d beq.w 3e9c <lv_obj_set_state+0x25c>
obj->state = prev_state;
3fe2: 9b02 ldr r3, [sp, #8]
3fe4: f884 303d strb.w r3, [r4, #61] ; 0x3d
o1 = _lv_obj_get_style_opa(obj, part, prop);
3fe8: 463a mov r2, r7
3fea: 4631 mov r1, r6
3fec: 4620 mov r0, r4
3fee: 47d8 blx fp
_lv_style_set_opa(style_trans, prop, o1); /*Be sure `trans_style` has a valid value */
3ff0: 4639 mov r1, r7
3ff2: 4602 mov r2, r0
3ff4: 4b43 ldr r3, [pc, #268] ; (4104 <lv_obj_set_state+0x4c4>)
obj->state = new_state;
3ff6: f884 803d strb.w r8, [r4, #61] ; 0x3d
o1 = _lv_obj_get_style_opa(obj, part, prop);
3ffa: 4683 mov fp, r0
_lv_style_set_opa(style_trans, prop, o1); /*Be sure `trans_style` has a valid value */
3ffc: 4650 mov r0, sl
3ffe: 4798 blx r3
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
4000: 4b38 ldr r3, [pc, #224] ; (40e4 <lv_obj_set_state+0x4a4>)
4002: 4839 ldr r0, [pc, #228] ; (40e8 <lv_obj_set_state+0x4a8>)
4004: 4798 blx r3
LV_ASSERT_MEM(tr);
4006: 4b39 ldr r3, [pc, #228] ; (40ec <lv_obj_set_state+0x4ac>)
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
4008: 4605 mov r5, r0
LV_ASSERT_MEM(tr);
400a: 4798 blx r3
400c: 4682 mov sl, r0
400e: b968 cbnz r0, 402c <lv_obj_set_state+0x3ec>
4010: 4b37 ldr r3, [pc, #220] ; (40f0 <lv_obj_set_state+0x4b0>)
4012: 4938 ldr r1, [pc, #224] ; (40f4 <lv_obj_set_state+0x4b4>)
4014: 9300 str r3, [sp, #0]
4016: f640 62db movw r2, #3803 ; 0xedb
401a: 2003 movs r0, #3
401c: 4c36 ldr r4, [pc, #216] ; (40f8 <lv_obj_set_state+0x4b8>)
401e: 47a0 blx r4
4020: 4836 ldr r0, [pc, #216] ; (40fc <lv_obj_set_state+0x4bc>)
4022: 4937 ldr r1, [pc, #220] ; (4100 <lv_obj_set_state+0x4c0>)
4024: 462a mov r2, r5
4026: 4653 mov r3, sl
4028: 4788 blx r1
402a: e7fe b.n 402a <lv_obj_set_state+0x3ea>
if(tr == NULL) return NULL;
402c: 2d00 cmp r5, #0
402e: f43f af35 beq.w 3e9c <lv_obj_set_state+0x25c>
tr->start_value._opa = o1;
4032: f885 b008 strb.w fp, [r5, #8]
tr->end_value._opa = o2;
4036: f885 900c strb.w r9, [r5, #12]
403a: e705 b.n 3e48 <lv_obj_set_state+0x208>
obj->state = prev_state;
403c: 9b02 ldr r3, [sp, #8]
403e: f884 303d strb.w r3, [r4, #61] ; 0x3d
style_list->skip_trans = 1;
4042: 796b ldrb r3, [r5, #5]
const void * p1 = _lv_obj_get_style_ptr(obj, part, prop);
4044: f8df b0d0 ldr.w fp, [pc, #208] ; 4118 <lv_obj_set_state+0x4d8>
style_list->skip_trans = 1;
4048: f043 0304 orr.w r3, r3, #4
404c: 716b strb r3, [r5, #5]
const void * p1 = _lv_obj_get_style_ptr(obj, part, prop);
404e: 463a mov r2, r7
4050: 4631 mov r1, r6
4052: 4620 mov r0, r4
4054: 47d8 blx fp
const void * p2 = _lv_obj_get_style_ptr(obj, part, prop);
4056: 463a mov r2, r7
const void * p1 = _lv_obj_get_style_ptr(obj, part, prop);
4058: 900a str r0, [sp, #40] ; 0x28
const void * p2 = _lv_obj_get_style_ptr(obj, part, prop);
405a: 4631 mov r1, r6
obj->state = new_state;
405c: f884 803d strb.w r8, [r4, #61] ; 0x3d
const void * p2 = _lv_obj_get_style_ptr(obj, part, prop);
4060: 4620 mov r0, r4
4062: 47d8 blx fp
4064: 900e str r0, [sp, #56] ; 0x38
style_list->skip_trans = 0;
4066: 796b ldrb r3, [r5, #5]
4068: f36f 0382 bfc r3, #2, #1
const void * p2 = _lv_obj_get_style_ptr(obj, part, prop);
406c: 4681 mov r9, r0
style_list->skip_trans = 0;
406e: 716b strb r3, [r5, #5]
if(memcmp(&p1, &p2, sizeof(const void *)) == 0) return NULL;
4070: 2204 movs r2, #4
4072: 4b25 ldr r3, [pc, #148] ; (4108 <lv_obj_set_state+0x4c8>)
4074: a90e add r1, sp, #56 ; 0x38
4076: a80a add r0, sp, #40 ; 0x28
4078: 4798 blx r3
407a: 2800 cmp r0, #0
407c: f43f af0e beq.w 3e9c <lv_obj_set_state+0x25c>
obj->state = prev_state;
4080: 9b02 ldr r3, [sp, #8]
4082: f884 303d strb.w r3, [r4, #61] ; 0x3d
p1 = _lv_obj_get_style_ptr(obj, part, prop);
4086: 463a mov r2, r7
4088: 4631 mov r1, r6
408a: 4620 mov r0, r4
408c: 47d8 blx fp
_lv_style_set_ptr(style_trans, prop, p1); /*Be sure `trans_style` has a valid value */
408e: 4639 mov r1, r7
4090: 4602 mov r2, r0
4092: 4b1e ldr r3, [pc, #120] ; (410c <lv_obj_set_state+0x4cc>)
p1 = _lv_obj_get_style_ptr(obj, part, prop);
4094: 900a str r0, [sp, #40] ; 0x28
4096: 4683 mov fp, r0
obj->state = new_state;
4098: f884 803d strb.w r8, [r4, #61] ; 0x3d
_lv_style_set_ptr(style_trans, prop, p1); /*Be sure `trans_style` has a valid value */
409c: 4650 mov r0, sl
409e: 4798 blx r3
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
40a0: 4b10 ldr r3, [pc, #64] ; (40e4 <lv_obj_set_state+0x4a4>)
40a2: 4811 ldr r0, [pc, #68] ; (40e8 <lv_obj_set_state+0x4a8>)
40a4: 4798 blx r3
LV_ASSERT_MEM(tr);
40a6: 4b11 ldr r3, [pc, #68] ; (40ec <lv_obj_set_state+0x4ac>)
tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll));
40a8: 4605 mov r5, r0
LV_ASSERT_MEM(tr);
40aa: 4798 blx r3
40ac: 4682 mov sl, r0
40ae: b968 cbnz r0, 40cc <lv_obj_set_state+0x48c>
40b0: 4b0f ldr r3, [pc, #60] ; (40f0 <lv_obj_set_state+0x4b0>)
40b2: 4910 ldr r1, [pc, #64] ; (40f4 <lv_obj_set_state+0x4b4>)
40b4: 9300 str r3, [sp, #0]
40b6: f640 62ef movw r2, #3823 ; 0xeef
40ba: 2003 movs r0, #3
40bc: 4c0e ldr r4, [pc, #56] ; (40f8 <lv_obj_set_state+0x4b8>)
40be: 47a0 blx r4
40c0: 480e ldr r0, [pc, #56] ; (40fc <lv_obj_set_state+0x4bc>)
40c2: 490f ldr r1, [pc, #60] ; (4100 <lv_obj_set_state+0x4c0>)
40c4: 462a mov r2, r5
40c6: 4653 mov r3, sl
40c8: 4788 blx r1
40ca: e7fe b.n 40ca <lv_obj_set_state+0x48a>
if(tr == NULL) return NULL;
40cc: 2d00 cmp r5, #0
40ce: f43f aee5 beq.w 3e9c <lv_obj_set_state+0x25c>
tr->end_value._ptr = p2;
40d2: e9c5 b902 strd fp, r9, [r5, #8]
40d6: e6b7 b.n 3e48 <lv_obj_set_state+0x208>
}
40d8: b01f add sp, #124 ; 0x7c
40da: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
40de: bf00 nop
40e0: 00005bcd .word 0x00005bcd
40e4: 0000e89d .word 0x0000e89d
40e8: 20003630 .word 0x20003630
40ec: 00001a65 .word 0x00001a65
40f0: 000270fb .word 0x000270fb
40f4: 000268df .word 0x000268df
40f8: 0000eb79 .word 0x0000eb79
40fc: 00026842 .word 0x00026842
4100: 00001a6d .word 0x00001a6d
4104: 00005c9d .word 0x00005c9d
4108: 00016cc1 .word 0x00016cc1
410c: 00005d71 .word 0x00005d71
4110: 00003a39 .word 0x00003a39
4114: 00003abd .word 0x00003abd
4118: 00003b4d .word 0x00003b4d
0000411c <lv_obj_add_state>:
{
411c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
411e: 4b11 ldr r3, [pc, #68] ; (4164 <lv_obj_add_state+0x48>)
{
4120: 4604 mov r4, r0
4122: 460d mov r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
4124: 4798 blx r3
4126: 4606 mov r6, r0
4128: b968 cbnz r0, 4146 <lv_obj_add_state+0x2a>
412a: 4b0f ldr r3, [pc, #60] ; (4168 <lv_obj_add_state+0x4c>)
412c: 490f ldr r1, [pc, #60] ; (416c <lv_obj_add_state+0x50>)
412e: 9300 str r3, [sp, #0]
4130: f240 627e movw r2, #1662 ; 0x67e
4134: 2003 movs r0, #3
4136: 4d0e ldr r5, [pc, #56] ; (4170 <lv_obj_add_state+0x54>)
4138: 47a8 blx r5
413a: 480e ldr r0, [pc, #56] ; (4174 <lv_obj_add_state+0x58>)
413c: 490e ldr r1, [pc, #56] ; (4178 <lv_obj_add_state+0x5c>)
413e: 4622 mov r2, r4
4140: 4633 mov r3, r6
4142: 4788 blx r1
4144: e7fe b.n 4144 <lv_obj_add_state+0x28>
lv_state_t new_state = obj->state | state;
4146: f894 303d ldrb.w r3, [r4, #61] ; 0x3d
414a: ea43 0105 orr.w r1, r3, r5
if(obj->state != new_state) {
414e: 439d bics r5, r3
4150: d005 beq.n 415e <lv_obj_add_state+0x42>
lv_obj_set_state(obj, new_state);
4152: 4b0a ldr r3, [pc, #40] ; (417c <lv_obj_add_state+0x60>)
4154: 4620 mov r0, r4
}
4156: b002 add sp, #8
4158: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_set_state(obj, new_state);
415c: 4718 bx r3
}
415e: b002 add sp, #8
4160: bd70 pop {r4, r5, r6, pc}
4162: bf00 nop
4164: 00001a65 .word 0x00001a65
4168: 00027108 .word 0x00027108
416c: 000268df .word 0x000268df
4170: 0000eb79 .word 0x0000eb79
4174: 00026943 .word 0x00026943
4178: 00001a6d .word 0x00001a6d
417c: 00003c41 .word 0x00003c41
00004180 <lv_obj_clear_state>:
{
4180: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
4182: 4b11 ldr r3, [pc, #68] ; (41c8 <lv_obj_clear_state+0x48>)
{
4184: 4604 mov r4, r0
4186: 460d mov r5, r1
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
4188: 4798 blx r3
418a: 4606 mov r6, r0
418c: b968 cbnz r0, 41aa <lv_obj_clear_state+0x2a>
418e: 4b0f ldr r3, [pc, #60] ; (41cc <lv_obj_clear_state+0x4c>)
4190: 490f ldr r1, [pc, #60] ; (41d0 <lv_obj_clear_state+0x50>)
4192: 9300 str r3, [sp, #0]
4194: f240 628f movw r2, #1679 ; 0x68f
4198: 2003 movs r0, #3
419a: 4d0e ldr r5, [pc, #56] ; (41d4 <lv_obj_clear_state+0x54>)
419c: 47a8 blx r5
419e: 480e ldr r0, [pc, #56] ; (41d8 <lv_obj_clear_state+0x58>)
41a0: 490e ldr r1, [pc, #56] ; (41dc <lv_obj_clear_state+0x5c>)
41a2: 4622 mov r2, r4
41a4: 4633 mov r3, r6
41a6: 4788 blx r1
41a8: e7fe b.n 41a8 <lv_obj_clear_state+0x28>
lv_state_t new_state = obj->state & (~state);
41aa: f894 303d ldrb.w r3, [r4, #61] ; 0x3d
if(obj->state != new_state) {
41ae: 421d tst r5, r3
lv_state_t new_state = obj->state & (~state);
41b0: ea23 0105 bic.w r1, r3, r5
if(obj->state != new_state) {
41b4: d005 beq.n 41c2 <lv_obj_clear_state+0x42>
lv_obj_set_state(obj, new_state);
41b6: 4b0a ldr r3, [pc, #40] ; (41e0 <lv_obj_clear_state+0x60>)
41b8: 4620 mov r0, r4
}
41ba: b002 add sp, #8
41bc: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_set_state(obj, new_state);
41c0: 4718 bx r3
}
41c2: b002 add sp, #8
41c4: bd70 pop {r4, r5, r6, pc}
41c6: bf00 nop
41c8: 00001a65 .word 0x00001a65
41cc: 00027119 .word 0x00027119
41d0: 000268df .word 0x000268df
41d4: 0000eb79 .word 0x0000eb79
41d8: 00026943 .word 0x00026943
41dc: 00001a6d .word 0x00001a6d
41e0: 00003c41 .word 0x00003c41
000041e4 <lv_obj_get_signal_cb>:
{
41e4: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
41e6: 4b0b ldr r3, [pc, #44] ; (4214 <lv_obj_get_signal_cb+0x30>)
{
41e8: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
41ea: 4798 blx r3
41ec: 4605 mov r5, r0
41ee: b968 cbnz r0, 420c <lv_obj_get_signal_cb+0x28>
41f0: 4b09 ldr r3, [pc, #36] ; (4218 <lv_obj_get_signal_cb+0x34>)
41f2: 490a ldr r1, [pc, #40] ; (421c <lv_obj_get_signal_cb+0x38>)
41f4: 9300 str r3, [sp, #0]
41f6: f640 22f5 movw r2, #2805 ; 0xaf5
41fa: 2003 movs r0, #3
41fc: 4e08 ldr r6, [pc, #32] ; (4220 <lv_obj_get_signal_cb+0x3c>)
41fe: 47b0 blx r6
4200: 4808 ldr r0, [pc, #32] ; (4224 <lv_obj_get_signal_cb+0x40>)
4202: 4909 ldr r1, [pc, #36] ; (4228 <lv_obj_get_signal_cb+0x44>)
4204: 4622 mov r2, r4
4206: 462b mov r3, r5
4208: 4788 blx r1
420a: e7fe b.n 420a <lv_obj_get_signal_cb+0x26>
}
420c: 69e0 ldr r0, [r4, #28]
420e: b002 add sp, #8
4210: bd70 pop {r4, r5, r6, pc}
4212: bf00 nop
4214: 00001a65 .word 0x00001a65
4218: 0002712c .word 0x0002712c
421c: 000268df .word 0x000268df
4220: 0000eb79 .word 0x0000eb79
4224: 00026943 .word 0x00026943
4228: 00001a6d .word 0x00001a6d
0000422c <lv_obj_get_ext_attr>:
{
422c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
422e: 4b0b ldr r3, [pc, #44] ; (425c <lv_obj_get_ext_attr+0x30>)
{
4230: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
4232: 4798 blx r3
4234: 4605 mov r5, r0
4236: b968 cbnz r0, 4254 <lv_obj_get_ext_attr+0x28>
4238: 4b09 ldr r3, [pc, #36] ; (4260 <lv_obj_get_ext_attr+0x34>)
423a: 490a ldr r1, [pc, #40] ; (4264 <lv_obj_get_ext_attr+0x38>)
423c: 9300 str r3, [sp, #0]
423e: f640 321e movw r2, #2846 ; 0xb1e
4242: 2003 movs r0, #3
4244: 4e08 ldr r6, [pc, #32] ; (4268 <lv_obj_get_ext_attr+0x3c>)
4246: 47b0 blx r6
4248: 4808 ldr r0, [pc, #32] ; (426c <lv_obj_get_ext_attr+0x40>)
424a: 4909 ldr r1, [pc, #36] ; (4270 <lv_obj_get_ext_attr+0x44>)
424c: 4622 mov r2, r4
424e: 462b mov r3, r5
4250: 4788 blx r1
4252: e7fe b.n 4252 <lv_obj_get_ext_attr+0x26>
}
4254: 6a60 ldr r0, [r4, #36] ; 0x24
4256: b002 add sp, #8
4258: bd70 pop {r4, r5, r6, pc}
425a: bf00 nop
425c: 00001a65 .word 0x00001a65
4260: 0002716a .word 0x0002716a
4264: 000268df .word 0x000268df
4268: 0000eb79 .word 0x0000eb79
426c: 00026943 .word 0x00026943
4270: 00001a6d .word 0x00001a6d
00004274 <lv_obj_get_group>:
{
4274: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
4276: 4b0b ldr r3, [pc, #44] ; (42a4 <lv_obj_get_group+0x30>)
{
4278: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
427a: 4798 blx r3
427c: 4605 mov r5, r0
427e: b968 cbnz r0, 429c <lv_obj_get_group+0x28>
4280: 4b09 ldr r3, [pc, #36] ; (42a8 <lv_obj_get_group+0x34>)
4282: 490a ldr r1, [pc, #40] ; (42ac <lv_obj_get_group+0x38>)
4284: 9300 str r3, [sp, #0]
4286: f640 326f movw r2, #2927 ; 0xb6f
428a: 2003 movs r0, #3
428c: 4e08 ldr r6, [pc, #32] ; (42b0 <lv_obj_get_group+0x3c>)
428e: 47b0 blx r6
4290: 4808 ldr r0, [pc, #32] ; (42b4 <lv_obj_get_group+0x40>)
4292: 4909 ldr r1, [pc, #36] ; (42b8 <lv_obj_get_group+0x44>)
4294: 4622 mov r2, r4
4296: 462b mov r3, r5
4298: 4788 blx r1
429a: e7fe b.n 429a <lv_obj_get_group+0x26>
}
429c: 6ba0 ldr r0, [r4, #56] ; 0x38
429e: b002 add sp, #8
42a0: bd70 pop {r4, r5, r6, pc}
42a2: bf00 nop
42a4: 00001a65 .word 0x00001a65
42a8: 0002718e .word 0x0002718e
42ac: 000268df .word 0x000268df
42b0: 0000eb79 .word 0x0000eb79
42b4: 00026943 .word 0x00026943
42b8: 00001a6d .word 0x00001a6d
000042bc <obj_del_core>:
{
42bc: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
lv_event_send(obj, LV_EVENT_DELETE, NULL);
42c0: 4b39 ldr r3, [pc, #228] ; (43a8 <obj_del_core+0xec>)
{
42c2: 4604 mov r4, r0
lv_event_send(obj, LV_EVENT_DELETE, NULL);
42c4: 2200 movs r2, #0
42c6: 2115 movs r1, #21
42c8: 4798 blx r3
lv_group_t * group = lv_obj_get_group(obj);
42ca: 4b38 ldr r3, [pc, #224] ; (43ac <obj_del_core+0xf0>)
42cc: 4620 mov r0, r4
42ce: 4798 blx r3
if(group) lv_group_remove_obj(obj);
42d0: 4607 mov r7, r0
42d2: b110 cbz r0, 42da <obj_del_core+0x1e>
42d4: 4b36 ldr r3, [pc, #216] ; (43b0 <obj_del_core+0xf4>)
42d6: 4620 mov r0, r4
42d8: 4798 blx r3
lv_anim_del(obj, NULL);
42da: 4b36 ldr r3, [pc, #216] ; (43b4 <obj_del_core+0xf8>)
trans_del(obj, 0xFF, 0xFF, NULL);
42dc: 4d36 ldr r5, [pc, #216] ; (43b8 <obj_del_core+0xfc>)
i_next = _lv_ll_get_next(&(obj->child_ll), i);
42de: f8df 90f4 ldr.w r9, [pc, #244] ; 43d4 <obj_del_core+0x118>
lv_anim_del(obj, NULL);
42e2: 2100 movs r1, #0
42e4: 4620 mov r0, r4
42e6: 4798 blx r3
trans_del(obj, 0xFF, 0xFF, NULL);
42e8: 22ff movs r2, #255 ; 0xff
42ea: 2300 movs r3, #0
42ec: 4611 mov r1, r2
42ee: 4620 mov r0, r4
i = _lv_ll_get_head(&(obj->child_ll));
42f0: f104 0804 add.w r8, r4, #4
trans_del(obj, 0xFF, 0xFF, NULL);
42f4: 47a8 blx r5
i = _lv_ll_get_head(&(obj->child_ll));
42f6: 4b31 ldr r3, [pc, #196] ; (43bc <obj_del_core+0x100>)
42f8: 4640 mov r0, r8
42fa: 4798 blx r3
42fc: 4605 mov r5, r0
while(i != NULL) {
42fe: bb3d cbnz r5, 4350 <obj_del_core+0x94>
#endif
static void lv_event_mark_deleted(lv_obj_t * obj)
{
lv_event_temp_data_t * t = event_temp_data_head;
4300: 4b2f ldr r3, [pc, #188] ; (43c0 <obj_del_core+0x104>)
4302: 685e ldr r6, [r3, #4]
while(t) {
if(t->obj == obj) t->deleted = true;
4304: 2301 movs r3, #1
while(t) {
4306: bb66 cbnz r6, 4362 <obj_del_core+0xa6>
lv_indev_t * indev = lv_indev_get_next(NULL);
4308: f8df 80cc ldr.w r8, [pc, #204] ; 43d8 <obj_del_core+0x11c>
lv_indev_reset(indev, obj);
430c: f8df 90cc ldr.w r9, [pc, #204] ; 43dc <obj_del_core+0x120>
if(indev->group == group && obj == lv_indev_get_obj_act()) {
4310: f8df a0cc ldr.w sl, [pc, #204] ; 43e0 <obj_del_core+0x124>
lv_indev_t * indev = lv_indev_get_next(NULL);
4314: 4630 mov r0, r6
4316: 47c0 blx r8
4318: 4605 mov r5, r0
while(indev) {
431a: bb45 cbnz r5, 436e <obj_del_core+0xb2>
obj->signal_cb(obj, LV_SIGNAL_CLEANUP, NULL);
431c: 462a mov r2, r5
431e: 4629 mov r1, r5
4320: 69e3 ldr r3, [r4, #28]
4322: 4d28 ldr r5, [pc, #160] ; (43c4 <obj_del_core+0x108>)
4324: 4620 mov r0, r4
4326: 4798 blx r3
lv_obj_t * par = lv_obj_get_parent(obj);
4328: 4b27 ldr r3, [pc, #156] ; (43c8 <obj_del_core+0x10c>)
432a: 4620 mov r0, r4
432c: 4798 blx r3
if(par == NULL) { /*It is a screen*/
432e: 2800 cmp r0, #0
4330: d137 bne.n 43a2 <obj_del_core+0xe6>
lv_disp_t * d = lv_obj_get_disp(obj);
4332: 4b26 ldr r3, [pc, #152] ; (43cc <obj_del_core+0x110>)
4334: 4620 mov r0, r4
4336: 4798 blx r3
_lv_ll_remove(&d->scr_ll, obj);
4338: 4621 mov r1, r4
433a: 3030 adds r0, #48 ; 0x30
_lv_ll_remove(&(par->child_ll), obj);
433c: 47a8 blx r5
if(obj->ext_attr != NULL) lv_mem_free(obj->ext_attr);
433e: 6a60 ldr r0, [r4, #36] ; 0x24
4340: 4d23 ldr r5, [pc, #140] ; (43d0 <obj_del_core+0x114>)
4342: b100 cbz r0, 4346 <obj_del_core+0x8a>
4344: 47a8 blx r5
lv_mem_free(obj); /*Free the object itself*/
4346: 4620 mov r0, r4
4348: 462b mov r3, r5
}
434a: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
lv_mem_free(obj); /*Free the object itself*/
434e: 4718 bx r3
i_next = _lv_ll_get_next(&(obj->child_ll), i);
4350: 4629 mov r1, r5
4352: 4640 mov r0, r8
4354: 47c8 blx r9
4356: 4606 mov r6, r0
obj_del_core(i);
4358: 4628 mov r0, r5
435a: f7ff ffaf bl 42bc <obj_del_core>
i = i_next;
435e: 4635 mov r5, r6
4360: e7cd b.n 42fe <obj_del_core+0x42>
if(t->obj == obj) t->deleted = true;
4362: 6832 ldr r2, [r6, #0]
4364: 4294 cmp r4, r2
4366: bf08 it eq
4368: 7133 strbeq r3, [r6, #4]
t = t->prev;
436a: 68b6 ldr r6, [r6, #8]
436c: e7cb b.n 4306 <obj_del_core+0x4a>
if(indev->proc.types.pointer.act_obj == obj || indev->proc.types.pointer.last_obj == obj) {
436e: 6b6b ldr r3, [r5, #52] ; 0x34
4370: 42a3 cmp r3, r4
4372: d002 beq.n 437a <obj_del_core+0xbe>
4374: 6bab ldr r3, [r5, #56] ; 0x38
4376: 42a3 cmp r3, r4
4378: d102 bne.n 4380 <obj_del_core+0xc4>
lv_indev_reset(indev, obj);
437a: 4621 mov r1, r4
437c: 4628 mov r0, r5
437e: 47c8 blx r9
if(indev->proc.types.pointer.last_pressed == obj) {
4380: 6beb ldr r3, [r5, #60] ; 0x3c
4382: 42a3 cmp r3, r4
if(indev->group == group && obj == lv_indev_get_obj_act()) {
4384: 6dab ldr r3, [r5, #88] ; 0x58
indev->proc.types.pointer.last_pressed = NULL;
4386: bf08 it eq
4388: 63ee streq r6, [r5, #60] ; 0x3c
if(indev->group == group && obj == lv_indev_get_obj_act()) {
438a: 42bb cmp r3, r7
438c: d105 bne.n 439a <obj_del_core+0xde>
438e: 47d0 blx sl
4390: 4284 cmp r4, r0
4392: d102 bne.n 439a <obj_del_core+0xde>
lv_indev_reset(indev, obj);
4394: 4621 mov r1, r4
4396: 4628 mov r0, r5
4398: 47c8 blx r9
indev = lv_indev_get_next(indev);
439a: 4628 mov r0, r5
439c: 47c0 blx r8
439e: 4605 mov r5, r0
43a0: e7bb b.n 431a <obj_del_core+0x5e>
_lv_ll_remove(&(par->child_ll), obj);
43a2: 4621 mov r1, r4
43a4: 3004 adds r0, #4
43a6: e7c9 b.n 433c <obj_del_core+0x80>
43a8: 000021fd .word 0x000021fd
43ac: 00004275 .word 0x00004275
43b0: 00001df9 .word 0x00001df9
43b4: 0000df35 .word 0x0000df35
43b8: 00002739 .word 0x00002739
43bc: 0000e92d .word 0x0000e92d
43c0: 200030c4 .word 0x200030c4
43c4: 0000e9f1 .word 0x0000e9f1
43c8: 000023a9 .word 0x000023a9
43cc: 00002449 .word 0x00002449
43d0: 0000ed75 .word 0x0000ed75
43d4: 0000e939 .word 0x0000e939
43d8: 0000dc9d .word 0x0000dc9d
43dc: 00001efd .word 0x00001efd
43e0: 00001f39 .word 0x00001f39
000043e4 <lv_obj_del>:
{
43e4: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
43e6: 4b1b ldr r3, [pc, #108] ; (4454 <lv_obj_del+0x70>)
{
43e8: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
43ea: 4798 blx r3
43ec: 4605 mov r5, r0
43ee: b968 cbnz r0, 440c <lv_obj_del+0x28>
43f0: 4b19 ldr r3, [pc, #100] ; (4458 <lv_obj_del+0x74>)
43f2: 491a ldr r1, [pc, #104] ; (445c <lv_obj_del+0x78>)
43f4: 9300 str r3, [sp, #0]
43f6: f240 1293 movw r2, #403 ; 0x193
43fa: 2003 movs r0, #3
43fc: 4e18 ldr r6, [pc, #96] ; (4460 <lv_obj_del+0x7c>)
43fe: 47b0 blx r6
4400: 4818 ldr r0, [pc, #96] ; (4464 <lv_obj_del+0x80>)
4402: 4919 ldr r1, [pc, #100] ; (4468 <lv_obj_del+0x84>)
4404: 4622 mov r2, r4
4406: 462b mov r3, r5
4408: 4788 blx r1
440a: e7fe b.n 440a <lv_obj_del+0x26>
lv_obj_invalidate(obj);
440c: 4b17 ldr r3, [pc, #92] ; (446c <lv_obj_del+0x88>)
440e: 4620 mov r0, r4
4410: 4798 blx r3
lv_obj_t * par = lv_obj_get_parent(obj);
4412: 4b17 ldr r3, [pc, #92] ; (4470 <lv_obj_del+0x8c>)
4414: 4620 mov r0, r4
4416: 4798 blx r3
if(par == NULL) {
4418: 4606 mov r6, r0
441a: b9b8 cbnz r0, 444c <lv_obj_del+0x68>
disp = lv_obj_get_disp(obj);
441c: 4b15 ldr r3, [pc, #84] ; (4474 <lv_obj_del+0x90>)
441e: 4620 mov r0, r4
4420: 4798 blx r3
if(!disp) return LV_RES_INV; /*Shouldn't happen*/
4422: 4605 mov r5, r0
4424: b178 cbz r0, 4446 <lv_obj_del+0x62>
if(disp->act_scr == obj) act_scr_del = true;
4426: 6bc7 ldr r7, [r0, #60] ; 0x3c
4428: 1b3b subs r3, r7, r4
442a: 425f negs r7, r3
442c: 415f adcs r7, r3
obj_del_core(obj);
442e: 4b12 ldr r3, [pc, #72] ; (4478 <lv_obj_del+0x94>)
4430: 4620 mov r0, r4
4432: 4798 blx r3
if(par) {
4434: b126 cbz r6, 4440 <lv_obj_del+0x5c>
par->signal_cb(par, LV_SIGNAL_CHILD_CHG, NULL);
4436: 69f3 ldr r3, [r6, #28]
4438: 2200 movs r2, #0
443a: 2101 movs r1, #1
443c: 4630 mov r0, r6
443e: 4798 blx r3
if(act_scr_del) {
4440: b10f cbz r7, 4446 <lv_obj_del+0x62>
disp->act_scr = NULL;
4442: 2300 movs r3, #0
4444: 63eb str r3, [r5, #60] ; 0x3c
}
4446: 2000 movs r0, #0
4448: b003 add sp, #12
444a: bdf0 pop {r4, r5, r6, r7, pc}
bool act_scr_del = false;
444c: 2700 movs r7, #0
lv_disp_t * disp = NULL;
444e: 463d mov r5, r7
4450: e7ed b.n 442e <lv_obj_del+0x4a>
4452: bf00 nop
4454: 00001a65 .word 0x00001a65
4458: 0002719f .word 0x0002719f
445c: 000268df .word 0x000268df
4460: 0000eb79 .word 0x0000eb79
4464: 00026943 .word 0x00026943
4468: 00001a6d .word 0x00001a6d
446c: 00002a09 .word 0x00002a09
4470: 000023a9 .word 0x000023a9
4474: 00002449 .word 0x00002449
4478: 000042bd .word 0x000042bd
0000447c <lv_obj_is_focused>:
{
447c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
447e: 4b0e ldr r3, [pc, #56] ; (44b8 <lv_obj_is_focused+0x3c>)
{
4480: 4604 mov r4, r0
LV_ASSERT_OBJ(obj, LV_OBJX_NAME);
4482: 4798 blx r3
4484: 4605 mov r5, r0
4486: b968 cbnz r0, 44a4 <lv_obj_is_focused+0x28>
4488: 4b0c ldr r3, [pc, #48] ; (44bc <lv_obj_is_focused+0x40>)
448a: 490d ldr r1, [pc, #52] ; (44c0 <lv_obj_is_focused+0x44>)
448c: 9300 str r3, [sp, #0]
448e: f44f 6238 mov.w r2, #2944 ; 0xb80
4492: 2003 movs r0, #3
4494: 4e0b ldr r6, [pc, #44] ; (44c4 <lv_obj_is_focused+0x48>)
4496: 47b0 blx r6
4498: 480b ldr r0, [pc, #44] ; (44c8 <lv_obj_is_focused+0x4c>)
449a: 490c ldr r1, [pc, #48] ; (44cc <lv_obj_is_focused+0x50>)
449c: 4622 mov r2, r4
449e: 462b mov r3, r5
44a0: 4788 blx r1
44a2: e7fe b.n 44a2 <lv_obj_is_focused+0x26>
if(obj->group_p) {
44a4: 6ba0 ldr r0, [r4, #56] ; 0x38
44a6: b120 cbz r0, 44b2 <lv_obj_is_focused+0x36>
if(lv_group_get_focused(obj->group_p) == obj) return true;
44a8: 4b09 ldr r3, [pc, #36] ; (44d0 <lv_obj_is_focused+0x54>)
44aa: 4798 blx r3
44ac: 1a23 subs r3, r4, r0
44ae: 4258 negs r0, r3
44b0: 4158 adcs r0, r3
}
44b2: b002 add sp, #8
44b4: bd70 pop {r4, r5, r6, pc}
44b6: bf00 nop
44b8: 00001a65 .word 0x00001a65
44bc: 000271cb .word 0x000271cb
44c0: 000268df .word 0x000268df
44c4: 0000eb79 .word 0x0000eb79
44c8: 00026943 .word 0x00026943
44cc: 00001a6d .word 0x00001a6d
44d0: 00001e95 .word 0x00001e95
000044d4 <lv_obj_is_point_on_coords>:
{
44d4: b507 push {r0, r1, r2, lr}
ext_area.x1 = obj->coords.x1 - obj->ext_click_pad_hor;
44d6: 8a02 ldrh r2, [r0, #16]
44d8: f890 3030 ldrb.w r3, [r0, #48] ; 0x30
44dc: 1ad2 subs r2, r2, r3
44de: f8ad 2000 strh.w r2, [sp]
ext_area.x2 = obj->coords.x2 + obj->ext_click_pad_hor;
44e2: 8a82 ldrh r2, [r0, #20]
44e4: 4413 add r3, r2
44e6: f8ad 3004 strh.w r3, [sp, #4]
ext_area.y1 = obj->coords.y1 - obj->ext_click_pad_ver;
44ea: 8a42 ldrh r2, [r0, #18]
44ec: f890 3031 ldrb.w r3, [r0, #49] ; 0x31
44f0: 1ad2 subs r2, r2, r3
44f2: f8ad 2002 strh.w r2, [sp, #2]
ext_area.y2 = obj->coords.y2 + obj->ext_click_pad_ver;
44f6: 8ac2 ldrh r2, [r0, #22]
44f8: 4413 add r3, r2
44fa: f8ad 3006 strh.w r3, [sp, #6]
if(!_lv_area_is_point_on(&ext_area, point, 0)) {
44fe: 2200 movs r2, #0
4500: 4b02 ldr r3, [pc, #8] ; (450c <lv_obj_is_point_on_coords+0x38>)
4502: 4668 mov r0, sp
4504: 4798 blx r3
}
4506: b003 add sp, #12
4508: f85d fb04 ldr.w pc, [sp], #4
450c: 0000e1a9 .word 0x0000e1a9
00004510 <lv_obj_handle_get_type_signal>:
{
4510: b510 push {r4, lr}
4512: 2300 movs r3, #0
if(buf->type[i] == NULL) break;
4514: f850 4023 ldr.w r4, [r0, r3, lsl #2]
4518: b2da uxtb r2, r3
451a: b11c cbz r4, 4524 <lv_obj_handle_get_type_signal+0x14>
for(i = 0; i < LV_MAX_ANCESTOR_NUM - 1; i++) { /*Find the last set data*/
451c: 3301 adds r3, #1
451e: 2b07 cmp r3, #7
4520: d1f8 bne.n 4514 <lv_obj_handle_get_type_signal+0x4>
4522: 461a mov r2, r3
buf->type[i] = name;
4524: f840 1022 str.w r1, [r0, r2, lsl #2]
}
4528: 2001 movs r0, #1
452a: bd10 pop {r4, pc}
0000452c <lv_obj_init_draw_rect_dsc>:
{
452c: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
4530: 4614 mov r4, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
4532: 4fb6 ldr r7, [pc, #728] ; (480c <lv_obj_init_draw_rect_dsc+0x2e0>)
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
4534: f8df 82e0 ldr.w r8, [pc, #736] ; 4818 <lv_obj_init_draw_rect_dsc+0x2ec>
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
4538: 2201 movs r2, #1
453a: 4605 mov r5, r0
453c: 460e mov r6, r1
453e: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
4540: f248 020c movw r2, #32780 ; 0x800c
draw_dsc->radius = lv_obj_get_style_radius(obj, part);
4544: 8020 strh r0, [r4, #0]
4546: 4631 mov r1, r6
4548: 4628 mov r0, r5
454a: 47c0 blx r8
if(opa_scale <= LV_OPA_MIN) {
454c: 2805 cmp r0, #5
454e: 4681 mov r9, r0
4550: d80a bhi.n 4568 <lv_obj_init_draw_rect_dsc+0x3c>
draw_dsc->bg_opa = LV_OPA_TRANSP;
4552: 2300 movs r3, #0
4554: 7323 strb r3, [r4, #12]
draw_dsc->border_opa = LV_OPA_TRANSP;
4556: 7523 strb r3, [r4, #20]
draw_dsc->shadow_opa = LV_OPA_TRANSP;
4558: f884 3028 strb.w r3, [r4, #40] ; 0x28
draw_dsc->pattern_opa = LV_OPA_TRANSP;
455c: f884 3036 strb.w r3, [r4, #54] ; 0x36
draw_dsc->value_opa = (uint16_t)((uint16_t)draw_dsc->value_opa * opa_scale) >> 8;
4560: f884 3044 strb.w r3, [r4, #68] ; 0x44
}
4564: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
if(draw_dsc->bg_opa != LV_OPA_TRANSP) {
4568: 7b23 ldrb r3, [r4, #12]
456a: b343 cbz r3, 45be <lv_obj_init_draw_rect_dsc+0x92>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
456c: 222c movs r2, #44 ; 0x2c
456e: 4631 mov r1, r6
4570: 4628 mov r0, r5
4572: 47c0 blx r8
if(draw_dsc->bg_opa > LV_OPA_MIN) {
4574: 2805 cmp r0, #5
draw_dsc->bg_opa = lv_obj_get_style_bg_opa(obj, part);
4576: 7320 strb r0, [r4, #12]
if(draw_dsc->bg_opa > LV_OPA_MIN) {
4578: d921 bls.n 45be <lv_obj_init_draw_rect_dsc+0x92>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
457a: 2229 movs r2, #41 ; 0x29
457c: 4631 mov r1, r6
457e: f8df a290 ldr.w sl, [pc, #656] ; 4810 <lv_obj_init_draw_rect_dsc+0x2e4>
4582: 4628 mov r0, r5
4584: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_DIR, bg_grad_dir, lv_grad_dir_t, _int, scalar)
4586: 2223 movs r2, #35 ; 0x23
draw_dsc->bg_color = lv_obj_get_style_bg_color(obj, part);
4588: 8060 strh r0, [r4, #2]
458a: 4631 mov r1, r6
458c: 4628 mov r0, r5
458e: 47b8 blx r7
4590: b2c0 uxtb r0, r0
draw_dsc->bg_grad_dir = lv_obj_get_style_bg_grad_dir(obj, part);
4592: 71a0 strb r0, [r4, #6]
if(draw_dsc->bg_grad_dir != LV_GRAD_DIR_NONE) {
4594: b170 cbz r0, 45b4 <lv_obj_init_draw_rect_dsc+0x88>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_COLOR, bg_grad_color, lv_color_t, _color, nonscalar)
4596: 222a movs r2, #42 ; 0x2a
4598: 4631 mov r1, r6
459a: 4628 mov r0, r5
459c: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_MAIN_STOP, bg_main_stop, lv_style_int_t, _int, scalar)
459e: 2221 movs r2, #33 ; 0x21
draw_dsc->bg_grad_color = lv_obj_get_style_bg_grad_color(obj, part);
45a0: 80a0 strh r0, [r4, #4]
45a2: 4631 mov r1, r6
45a4: 4628 mov r0, r5
45a6: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_STOP, bg_grad_stop, lv_style_int_t, _int, scalar)
45a8: 2222 movs r2, #34 ; 0x22
draw_dsc->bg_main_color_stop = lv_obj_get_style_bg_main_stop(obj, part);
45aa: 8120 strh r0, [r4, #8]
45ac: 4631 mov r1, r6
45ae: 4628 mov r0, r5
45b0: 47b8 blx r7
draw_dsc->bg_grad_color_stop = lv_obj_get_style_bg_grad_stop(obj, part);
45b2: 8160 strh r0, [r4, #10]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_BLEND_MODE, bg_blend_mode, lv_blend_mode_t, _int, scalar)
45b4: 2220 movs r2, #32
45b6: 4631 mov r1, r6
45b8: 4628 mov r0, r5
45ba: 47b8 blx r7
45bc: 7360 strb r0, [r4, #13]
if(draw_dsc->border_opa != LV_OPA_TRANSP) {
45be: 7d23 ldrb r3, [r4, #20]
45c0: b1eb cbz r3, 45fe <lv_obj_init_draw_rect_dsc+0xd2>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
45c2: 2230 movs r2, #48 ; 0x30
45c4: 4631 mov r1, r6
45c6: 4628 mov r0, r5
45c8: 47b8 blx r7
draw_dsc->border_width = lv_obj_get_style_border_width(obj, part);
45ca: 8220 strh r0, [r4, #16]
if(draw_dsc->border_width) {
45cc: b1b8 cbz r0, 45fe <lv_obj_init_draw_rect_dsc+0xd2>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar)
45ce: 223c movs r2, #60 ; 0x3c
45d0: 4631 mov r1, r6
45d2: 4628 mov r0, r5
45d4: 47c0 blx r8
if(draw_dsc->border_opa > LV_OPA_MIN) {
45d6: 2805 cmp r0, #5
draw_dsc->border_opa = lv_obj_get_style_border_opa(obj, part);
45d8: 7520 strb r0, [r4, #20]
if(draw_dsc->border_opa > LV_OPA_MIN) {
45da: d90b bls.n 45f4 <lv_obj_init_draw_rect_dsc+0xc8>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
45dc: 2231 movs r2, #49 ; 0x31
45de: 4631 mov r1, r6
45e0: 4628 mov r0, r5
45e2: 47b8 blx r7
draw_dsc->border_side = lv_obj_get_style_border_side(obj, part);
45e4: b2c0 uxtb r0, r0
45e6: 8260 strh r0, [r4, #18]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
45e8: 4b89 ldr r3, [pc, #548] ; (4810 <lv_obj_init_draw_rect_dsc+0x2e4>)
45ea: 2239 movs r2, #57 ; 0x39
45ec: 4631 mov r1, r6
45ee: 4628 mov r0, r5
45f0: 4798 blx r3
draw_dsc->border_color = lv_obj_get_style_border_color(obj, part);
45f2: 81e0 strh r0, [r4, #14]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_BLEND_MODE, border_blend_mode, lv_blend_mode_t, _int, scalar)
45f4: 2232 movs r2, #50 ; 0x32
45f6: 4631 mov r1, r6
45f8: 4628 mov r0, r5
45fa: 47b8 blx r7
45fc: 7560 strb r0, [r4, #21]
if(draw_dsc->outline_opa != LV_OPA_TRANSP) {
45fe: 7f23 ldrb r3, [r4, #28]
4600: b1e3 cbz r3, 463c <lv_obj_init_draw_rect_dsc+0x110>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
4602: 2240 movs r2, #64 ; 0x40
4604: 4631 mov r1, r6
4606: 4628 mov r0, r5
4608: 47b8 blx r7
draw_dsc->outline_width = lv_obj_get_style_outline_width(obj, part);
460a: 8320 strh r0, [r4, #24]
if(draw_dsc->outline_width) {
460c: b1b0 cbz r0, 463c <lv_obj_init_draw_rect_dsc+0x110>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
460e: 224c movs r2, #76 ; 0x4c
4610: 4631 mov r1, r6
4612: 4628 mov r0, r5
4614: 47c0 blx r8
if(draw_dsc->outline_opa > LV_OPA_MIN) {
4616: 2805 cmp r0, #5
draw_dsc->outline_opa = lv_obj_get_style_outline_opa(obj, part);
4618: 7720 strb r0, [r4, #28]
if(draw_dsc->outline_opa > LV_OPA_MIN) {
461a: d90a bls.n 4632 <lv_obj_init_draw_rect_dsc+0x106>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar)
461c: 2241 movs r2, #65 ; 0x41
461e: 4631 mov r1, r6
4620: 4628 mov r0, r5
4622: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
4624: 4b7a ldr r3, [pc, #488] ; (4810 <lv_obj_init_draw_rect_dsc+0x2e4>)
draw_dsc->outline_pad = lv_obj_get_style_outline_pad(obj, part);
4626: 8360 strh r0, [r4, #26]
4628: 2249 movs r2, #73 ; 0x49
462a: 4631 mov r1, r6
462c: 4628 mov r0, r5
462e: 4798 blx r3
draw_dsc->outline_color = lv_obj_get_style_outline_color(obj, part);
4630: 82e0 strh r0, [r4, #22]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_BLEND_MODE, outline_blend_mode, lv_blend_mode_t, _int, scalar)
4632: 2242 movs r2, #66 ; 0x42
4634: 4631 mov r1, r6
4636: 4628 mov r0, r5
4638: 47b8 blx r7
463a: 7760 strb r0, [r4, #29]
if(draw_dsc->pattern_opa != LV_OPA_TRANSP) {
463c: f894 3036 ldrb.w r3, [r4, #54] ; 0x36
4640: 2b00 cmp r3, #0
4642: d03b beq.n 46bc <lv_obj_init_draw_rect_dsc+0x190>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar)
4644: f8df a1d4 ldr.w sl, [pc, #468] ; 481c <lv_obj_init_draw_rect_dsc+0x2f0>
4648: 226e movs r2, #110 ; 0x6e
464a: 4631 mov r1, r6
464c: 4628 mov r0, r5
464e: 47d0 blx sl
draw_dsc->pattern_image = lv_obj_get_style_pattern_image(obj, part);
4650: 62e0 str r0, [r4, #44] ; 0x2c
if(draw_dsc->pattern_image) {
4652: 2800 cmp r0, #0
4654: d032 beq.n 46bc <lv_obj_init_draw_rect_dsc+0x190>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_OPA, pattern_opa, lv_opa_t, _opa, scalar)
4656: 226c movs r2, #108 ; 0x6c
4658: 4631 mov r1, r6
465a: 4628 mov r0, r5
465c: 47c0 blx r8
if(draw_dsc->pattern_opa > LV_OPA_MIN) {
465e: 2805 cmp r0, #5
draw_dsc->pattern_opa = lv_obj_get_style_pattern_opa(obj, part);
4660: f884 0036 strb.w r0, [r4, #54] ; 0x36
if(draw_dsc->pattern_opa > LV_OPA_MIN) {
4664: d92a bls.n 46bc <lv_obj_init_draw_rect_dsc+0x190>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR_OPA, pattern_recolor_opa, lv_opa_t, _opa, scalar)
4666: 226d movs r2, #109 ; 0x6d
4668: 4631 mov r1, r6
466a: 4628 mov r0, r5
466c: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_REPEAT, pattern_repeat, bool, _int, scalar)
466e: 2261 movs r2, #97 ; 0x61
draw_dsc->pattern_recolor_opa = lv_obj_get_style_pattern_recolor_opa(obj, part);
4670: f884 0037 strb.w r0, [r4, #55] ; 0x37
4674: 4631 mov r1, r6
4676: 4628 mov r0, r5
4678: 47b8 blx r7
draw_dsc->pattern_repeat = lv_obj_get_style_pattern_repeat(obj, part);
467a: f894 3038 ldrb.w r3, [r4, #56] ; 0x38
467e: 3800 subs r0, #0
4680: bf18 it ne
4682: 2001 movne r0, #1
4684: f360 0300 bfi r3, r0, #0, #1
4688: f884 3038 strb.w r3, [r4, #56] ; 0x38
if(lv_img_src_get_type(draw_dsc->pattern_image) == LV_IMG_SRC_SYMBOL) {
468c: 6ae0 ldr r0, [r4, #44] ; 0x2c
468e: 4b61 ldr r3, [pc, #388] ; (4814 <lv_obj_init_draw_rect_dsc+0x2e8>)
4690: 4798 blx r3
4692: 2802 cmp r0, #2
4694: f040 80ad bne.w 47f2 <lv_obj_init_draw_rect_dsc+0x2c6>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
4698: 4b5d ldr r3, [pc, #372] ; (4810 <lv_obj_init_draw_rect_dsc+0x2e4>)
469a: 2269 movs r2, #105 ; 0x69
469c: 4631 mov r1, r6
469e: 4628 mov r0, r5
46a0: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
46a2: f248 028e movw r2, #32910 ; 0x808e
draw_dsc->pattern_recolor = lv_obj_get_style_pattern_recolor(obj, part);
46a6: 86a0 strh r0, [r4, #52] ; 0x34
46a8: 4631 mov r1, r6
46aa: 4628 mov r0, r5
46ac: 47d0 blx sl
draw_dsc->pattern_font = lv_obj_get_style_text_font(obj, part);
46ae: 6320 str r0, [r4, #48] ; 0x30
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_BLEND_MODE, pattern_blend_mode, lv_blend_mode_t, _int, scalar)
46b0: 2260 movs r2, #96 ; 0x60
46b2: 4631 mov r1, r6
46b4: 4628 mov r0, r5
46b6: 47b8 blx r7
46b8: f884 0039 strb.w r0, [r4, #57] ; 0x39
if(draw_dsc->shadow_opa > LV_OPA_MIN) {
46bc: f894 3028 ldrb.w r3, [r4, #40] ; 0x28
46c0: 2b05 cmp r3, #5
46c2: d928 bls.n 4716 <lv_obj_init_draw_rect_dsc+0x1ea>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
46c4: 2250 movs r2, #80 ; 0x50
46c6: 4631 mov r1, r6
46c8: 4628 mov r0, r5
46ca: 47b8 blx r7
draw_dsc->shadow_width = lv_obj_get_style_shadow_width(obj, part);
46cc: 8420 strh r0, [r4, #32]
if(draw_dsc->shadow_width) {
46ce: b310 cbz r0, 4716 <lv_obj_init_draw_rect_dsc+0x1ea>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OPA, shadow_opa, lv_opa_t, _opa, scalar)
46d0: 225c movs r2, #92 ; 0x5c
46d2: 4631 mov r1, r6
46d4: 4628 mov r0, r5
46d6: 47c0 blx r8
if(draw_dsc->shadow_opa > LV_OPA_MIN) {
46d8: 2805 cmp r0, #5
draw_dsc->shadow_opa = lv_obj_get_style_shadow_opa(obj, part);
46da: f884 0028 strb.w r0, [r4, #40] ; 0x28
if(draw_dsc->shadow_opa > LV_OPA_MIN) {
46de: d91a bls.n 4716 <lv_obj_init_draw_rect_dsc+0x1ea>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar)
46e0: 2251 movs r2, #81 ; 0x51
46e2: 4631 mov r1, r6
46e4: 4628 mov r0, r5
46e6: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar)
46e8: 2252 movs r2, #82 ; 0x52
draw_dsc->shadow_ofs_x = lv_obj_get_style_shadow_ofs_x(obj, part);
46ea: 8460 strh r0, [r4, #34] ; 0x22
46ec: 4631 mov r1, r6
46ee: 4628 mov r0, r5
46f0: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar)
46f2: 2253 movs r2, #83 ; 0x53
draw_dsc->shadow_ofs_y = lv_obj_get_style_shadow_ofs_y(obj, part);
46f4: 84a0 strh r0, [r4, #36] ; 0x24
46f6: 4631 mov r1, r6
46f8: 4628 mov r0, r5
46fa: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar)
46fc: 4b44 ldr r3, [pc, #272] ; (4810 <lv_obj_init_draw_rect_dsc+0x2e4>)
draw_dsc->shadow_spread = lv_obj_get_style_shadow_spread(obj, part);
46fe: 84e0 strh r0, [r4, #38] ; 0x26
4700: 2259 movs r2, #89 ; 0x59
4702: 4631 mov r1, r6
4704: 4628 mov r0, r5
4706: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_BLEND_MODE, shadow_blend_mode, lv_blend_mode_t, _int, scalar)
4708: 2254 movs r2, #84 ; 0x54
draw_dsc->shadow_color = lv_obj_get_style_shadow_color(obj, part);
470a: 83e0 strh r0, [r4, #30]
470c: 4631 mov r1, r6
470e: 4628 mov r0, r5
4710: 47b8 blx r7
4712: f884 0029 strb.w r0, [r4, #41] ; 0x29
if(draw_dsc->value_opa > LV_OPA_MIN) {
4716: f894 3044 ldrb.w r3, [r4, #68] ; 0x44
471a: 2b05 cmp r3, #5
471c: d940 bls.n 47a0 <lv_obj_init_draw_rect_dsc+0x274>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char *, _ptr, scalar)
471e: f8df a0fc ldr.w sl, [pc, #252] ; 481c <lv_obj_init_draw_rect_dsc+0x2f0>
4722: 227f movs r2, #127 ; 0x7f
4724: 4631 mov r1, r6
4726: 4628 mov r0, r5
4728: 47d0 blx sl
draw_dsc->value_str = lv_obj_get_style_value_str(obj, part);
472a: 63e0 str r0, [r4, #60] ; 0x3c
if(draw_dsc->value_str) {
472c: 2800 cmp r0, #0
472e: d037 beq.n 47a0 <lv_obj_init_draw_rect_dsc+0x274>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OPA, value_opa, lv_opa_t, _opa, scalar)
4730: 227c movs r2, #124 ; 0x7c
4732: 4631 mov r1, r6
4734: 4628 mov r0, r5
4736: 47c0 blx r8
if(draw_dsc->value_opa > LV_OPA_MIN) {
4738: 2805 cmp r0, #5
draw_dsc->value_opa = lv_obj_get_style_value_opa(obj, part);
473a: f884 0044 strb.w r0, [r4, #68] ; 0x44
if(draw_dsc->value_opa > LV_OPA_MIN) {
473e: d92f bls.n 47a0 <lv_obj_init_draw_rect_dsc+0x274>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar)
4740: 2273 movs r2, #115 ; 0x73
4742: 4631 mov r1, r6
4744: 4628 mov r0, r5
4746: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar)
4748: 2274 movs r2, #116 ; 0x74
draw_dsc->value_ofs_x = lv_obj_get_style_value_ofs_x(obj, part);
474a: f8a4 0048 strh.w r0, [r4, #72] ; 0x48
474e: 4631 mov r1, r6
4750: 4628 mov r0, r5
4752: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
4754: 4b2e ldr r3, [pc, #184] ; (4810 <lv_obj_init_draw_rect_dsc+0x2e4>)
draw_dsc->value_ofs_y = lv_obj_get_style_value_ofs_y(obj, part);
4756: f8a4 004a strh.w r0, [r4, #74] ; 0x4a
475a: 2279 movs r2, #121 ; 0x79
475c: 4631 mov r1, r6
475e: 4628 mov r0, r5
4760: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
4762: 227e movs r2, #126 ; 0x7e
draw_dsc->value_color = lv_obj_get_style_value_color(obj, part);
4764: f8a4 0046 strh.w r0, [r4, #70] ; 0x46
4768: 4631 mov r1, r6
476a: 4628 mov r0, r5
476c: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar)
476e: 2270 movs r2, #112 ; 0x70
draw_dsc->value_font = lv_obj_get_style_value_font(obj, part);
4770: 6420 str r0, [r4, #64] ; 0x40
4772: 4631 mov r1, r6
4774: 4628 mov r0, r5
4776: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LINE_SPACE, value_line_space, lv_style_int_t, _int, scalar)
4778: 2271 movs r2, #113 ; 0x71
draw_dsc->value_letter_space = lv_obj_get_style_value_letter_space(obj, part);
477a: f8a4 004c strh.w r0, [r4, #76] ; 0x4c
477e: 4631 mov r1, r6
4780: 4628 mov r0, r5
4782: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar)
4784: 2275 movs r2, #117 ; 0x75
draw_dsc->value_line_space = lv_obj_get_style_value_line_space(obj, part);
4786: f8a4 004e strh.w r0, [r4, #78] ; 0x4e
478a: 4631 mov r1, r6
478c: 4628 mov r0, r5
478e: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_BLEND_MODE, value_blend_mode, lv_blend_mode_t, _int, scalar)
4790: 2272 movs r2, #114 ; 0x72
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar)
4792: f884 0050 strb.w r0, [r4, #80] ; 0x50
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_BLEND_MODE, value_blend_mode, lv_blend_mode_t, _int, scalar)
4796: 4631 mov r1, r6
4798: 4628 mov r0, r5
479a: 47b8 blx r7
479c: f884 0051 strb.w r0, [r4, #81] ; 0x51
if(opa_scale < LV_OPA_MAX) {
47a0: f1b9 0ff9 cmp.w r9, #249 ; 0xf9
47a4: f63f aede bhi.w 4564 <lv_obj_init_draw_rect_dsc+0x38>
draw_dsc->bg_opa = (uint16_t)((uint16_t)draw_dsc->bg_opa * opa_scale) >> 8;
47a8: 7b23 ldrb r3, [r4, #12]
47aa: fa1f f089 uxth.w r0, r9
47ae: fb13 f300 smulbb r3, r3, r0
47b2: f3c3 2307 ubfx r3, r3, #8, #8
47b6: 7323 strb r3, [r4, #12]
draw_dsc->border_opa = (uint16_t)((uint16_t)draw_dsc->border_opa * opa_scale) >> 8;
47b8: 7d23 ldrb r3, [r4, #20]
47ba: fb13 f300 smulbb r3, r3, r0
47be: f3c3 2307 ubfx r3, r3, #8, #8
47c2: 7523 strb r3, [r4, #20]
draw_dsc->shadow_opa = (uint16_t)((uint16_t)draw_dsc->shadow_opa * opa_scale) >> 8;
47c4: f894 3028 ldrb.w r3, [r4, #40] ; 0x28
47c8: fb13 f300 smulbb r3, r3, r0
47cc: f3c3 2307 ubfx r3, r3, #8, #8
47d0: f884 3028 strb.w r3, [r4, #40] ; 0x28
draw_dsc->pattern_opa = (uint16_t)((uint16_t)draw_dsc->pattern_opa * opa_scale) >> 8;
47d4: f894 3036 ldrb.w r3, [r4, #54] ; 0x36
47d8: fb13 f300 smulbb r3, r3, r0
47dc: f3c3 2307 ubfx r3, r3, #8, #8
47e0: f884 3036 strb.w r3, [r4, #54] ; 0x36
draw_dsc->value_opa = (uint16_t)((uint16_t)draw_dsc->value_opa * opa_scale) >> 8;
47e4: f894 3044 ldrb.w r3, [r4, #68] ; 0x44
47e8: fb13 f300 smulbb r3, r3, r0
47ec: f3c3 2307 ubfx r3, r3, #8, #8
47f0: e6b6 b.n 4560 <lv_obj_init_draw_rect_dsc+0x34>
else if(draw_dsc->pattern_recolor_opa > LV_OPA_MIN) {
47f2: f894 3037 ldrb.w r3, [r4, #55] ; 0x37
47f6: 2b05 cmp r3, #5
47f8: f67f af5a bls.w 46b0 <lv_obj_init_draw_rect_dsc+0x184>
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
47fc: 4b04 ldr r3, [pc, #16] ; (4810 <lv_obj_init_draw_rect_dsc+0x2e4>)
47fe: 2269 movs r2, #105 ; 0x69
4800: 4631 mov r1, r6
4802: 4628 mov r0, r5
4804: 4798 blx r3
draw_dsc->pattern_recolor = lv_obj_get_style_pattern_recolor(obj, part);
4806: 86a0 strh r0, [r4, #52] ; 0x34
4808: e752 b.n 46b0 <lv_obj_init_draw_rect_dsc+0x184>
480a: bf00 nop
480c: 00003995 .word 0x00003995
4810: 00003a39 .word 0x00003a39
4814: 00007a89 .word 0x00007a89
4818: 00003abd .word 0x00003abd
481c: 00003b4d .word 0x00003b4d
00004820 <lv_obj_design>:
{
4820: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
if(mode == LV_DESIGN_COVER_CHK) {
4824: 2a02 cmp r2, #2
{
4826: b099 sub sp, #100 ; 0x64
4828: 4604 mov r4, r0
482a: 460f mov r7, r1
482c: 4615 mov r5, r2
if(mode == LV_DESIGN_COVER_CHK) {
482e: d159 bne.n 48e4 <lv_obj_design+0xc4>
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
4830: f8df 9230 ldr.w r9, [pc, #560] ; 4a64 <lv_obj_design+0x244>
4834: 2100 movs r1, #0
4836: 47c8 blx r9
if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) return LV_DESIGN_RES_MASKED;
4838: 4606 mov r6, r0
483a: 2800 cmp r0, #0
483c: d150 bne.n 48e0 <lv_obj_design+0xc0>
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
483e: 4601 mov r1, r0
4840: 2201 movs r2, #1
4842: 4620 mov r0, r4
4844: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
4846: 2204 movs r2, #4
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
4848: 4682 mov sl, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
484a: 4631 mov r1, r6
484c: 4620 mov r0, r4
484e: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4850: 2205 movs r2, #5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
4852: 4683 mov fp, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4854: 4631 mov r1, r6
4856: 4620 mov r0, r4
4858: 47c8 blx r9
lv_area_copy(&coords, &obj->coords);
485a: 4b77 ldr r3, [pc, #476] ; (4a38 <lv_obj_design+0x218>)
485c: 4680 mov r8, r0
485e: f104 0110 add.w r1, r4, #16
4862: a803 add r0, sp, #12
4864: 4798 blx r3
coords.x1 -= w;
4866: f8bd 300c ldrh.w r3, [sp, #12]
coords.y1 -= h;
486a: f8bd 200e ldrh.w r2, [sp, #14]
coords.x1 -= w;
486e: fa1f f08b uxth.w r0, fp
4872: 1a1b subs r3, r3, r0
4874: f8ad 300c strh.w r3, [sp, #12]
coords.x2 += w;
4878: f8bd 3010 ldrh.w r3, [sp, #16]
487c: 4418 add r0, r3
coords.y1 -= h;
487e: fa1f f388 uxth.w r3, r8
4882: 1ad2 subs r2, r2, r3
4884: f8ad 200e strh.w r2, [sp, #14]
coords.y2 += h;
4888: f8bd 2012 ldrh.w r2, [sp, #18]
coords.x2 += w;
488c: f8ad 0010 strh.w r0, [sp, #16]
coords.y2 += h;
4890: 4413 add r3, r2
4892: f8ad 3012 strh.w r3, [sp, #18]
if(_lv_area_is_in(clip_area, &coords, r) == false) return LV_DESIGN_RES_NOT_COVER;
4896: 4652 mov r2, sl
4898: 4b68 ldr r3, [pc, #416] ; (4a3c <lv_obj_design+0x21c>)
489a: a903 add r1, sp, #12
489c: 4638 mov r0, r7
489e: 4798 blx r3
48a0: b1d0 cbz r0, 48d8 <lv_obj_design+0xb8>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
48a2: 4f67 ldr r7, [pc, #412] ; (4a40 <lv_obj_design+0x220>)
48a4: 222c movs r2, #44 ; 0x2c
48a6: 4631 mov r1, r6
48a8: 4620 mov r0, r4
48aa: 47b8 blx r7
if(lv_obj_get_style_bg_opa(obj, LV_OBJ_PART_MAIN) < LV_OPA_MAX) return LV_DESIGN_RES_NOT_COVER;
48ac: 28f9 cmp r0, #249 ; 0xf9
48ae: d913 bls.n 48d8 <lv_obj_design+0xb8>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_BLEND_MODE, bg_blend_mode, lv_blend_mode_t, _int, scalar)
48b0: 4631 mov r1, r6
48b2: 2220 movs r2, #32
48b4: 4620 mov r0, r4
48b6: 47c8 blx r9
if(lv_obj_get_style_bg_blend_mode(obj, LV_OBJ_PART_MAIN) != LV_BLEND_MODE_NORMAL) return LV_DESIGN_RES_NOT_COVER;
48b8: f010 01ff ands.w r1, r0, #255 ; 0xff
48bc: d10c bne.n 48d8 <lv_obj_design+0xb8>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_BLEND_MODE, border_blend_mode, lv_blend_mode_t, _int, scalar)
48be: 2232 movs r2, #50 ; 0x32
48c0: 4620 mov r0, r4
48c2: 47c8 blx r9
if(lv_obj_get_style_border_blend_mode(obj, LV_OBJ_PART_MAIN) != LV_BLEND_MODE_NORMAL) return LV_DESIGN_RES_NOT_COVER;
48c4: f010 01ff ands.w r1, r0, #255 ; 0xff
48c8: d106 bne.n 48d8 <lv_obj_design+0xb8>
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
48ca: f248 020c movw r2, #32780 ; 0x800c
48ce: 4620 mov r0, r4
48d0: 47b8 blx r7
return LV_DESIGN_RES_COVER;
48d2: 28f9 cmp r0, #249 ; 0xf9
48d4: bf88 it hi
48d6: 2501 movhi r5, #1
}
48d8: 4628 mov r0, r5
48da: b019 add sp, #100 ; 0x64
48dc: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) return LV_DESIGN_RES_MASKED;
48e0: 2503 movs r5, #3
48e2: e7f9 b.n 48d8 <lv_obj_design+0xb8>
else if(mode == LV_DESIGN_DRAW_MAIN) {
48e4: 2a00 cmp r2, #0
48e6: d156 bne.n 4996 <lv_obj_design+0x176>
lv_draw_rect_dsc_init(&draw_dsc);
48e8: a803 add r0, sp, #12
48ea: 4b56 ldr r3, [pc, #344] ; (4a44 <lv_obj_design+0x224>)
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
48ec: f8df 8174 ldr.w r8, [pc, #372] ; 4a64 <lv_obj_design+0x244>
48f0: 4798 blx r3
48f2: 2233 movs r2, #51 ; 0x33
48f4: 4629 mov r1, r5
48f6: 4620 mov r0, r4
48f8: 47c0 blx r8
if(lv_obj_get_style_border_post(obj, LV_OBJ_PART_MAIN)) {
48fa: b108 cbz r0, 4900 <lv_obj_design+0xe0>
draw_dsc.border_opa = LV_OPA_TRANSP;
48fc: f88d 5020 strb.w r5, [sp, #32]
lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc);
4900: 4b51 ldr r3, [pc, #324] ; (4a48 <lv_obj_design+0x228>)
4902: aa03 add r2, sp, #12
4904: 2100 movs r1, #0
4906: 4620 mov r0, r4
4908: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
490a: 2204 movs r2, #4
490c: 2100 movs r1, #0
490e: 4620 mov r0, r4
4910: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4912: 2205 movs r2, #5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
4914: 4606 mov r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4916: 2100 movs r1, #0
4918: 4620 mov r0, r4
491a: 47c0 blx r8
lv_area_copy(&coords, &obj->coords);
491c: f104 0910 add.w r9, r4, #16
4920: 4b45 ldr r3, [pc, #276] ; (4a38 <lv_obj_design+0x218>)
4922: 4682 mov sl, r0
4924: 4649 mov r1, r9
4926: a801 add r0, sp, #4
4928: 4798 blx r3
coords.x1 -= w;
492a: f8bd 2004 ldrh.w r2, [sp, #4]
492e: b2b3 uxth r3, r6
4930: 1ad2 subs r2, r2, r3
4932: f8ad 2004 strh.w r2, [sp, #4]
coords.x2 += w;
4936: f8bd 2008 ldrh.w r2, [sp, #8]
493a: 4413 add r3, r2
493c: f8ad 3008 strh.w r3, [sp, #8]
coords.y1 -= h;
4940: f8bd 3006 ldrh.w r3, [sp, #6]
4944: fa1f f08a uxth.w r0, sl
4948: 1a1b subs r3, r3, r0
494a: f8ad 3006 strh.w r3, [sp, #6]
coords.y2 += h;
494e: f8bd 300a ldrh.w r3, [sp, #10]
4952: 4418 add r0, r3
4954: f8ad 000a strh.w r0, [sp, #10]
lv_draw_rect(&coords, clip_area, &draw_dsc);
4958: aa03 add r2, sp, #12
495a: 4639 mov r1, r7
495c: a801 add r0, sp, #4
495e: 4b3b ldr r3, [pc, #236] ; (4a4c <lv_obj_design+0x22c>)
4960: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
4962: 2202 movs r2, #2
4964: 2100 movs r1, #0
4966: 4620 mov r0, r4
4968: 47c0 blx r8
if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) {
496a: 2800 cmp r0, #0
496c: d0b4 beq.n 48d8 <lv_obj_design+0xb8>
lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t));
496e: 4b38 ldr r3, [pc, #224] ; (4a50 <lv_obj_design+0x230>)
lv_draw_mask_radius_init(mp, &obj->coords, r, false);
4970: 4f38 ldr r7, [pc, #224] ; (4a54 <lv_obj_design+0x234>)
lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t));
4972: 201c movs r0, #28
4974: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
4976: 2201 movs r2, #1
4978: 4606 mov r6, r0
497a: 2100 movs r1, #0
497c: 4620 mov r0, r4
497e: 47c0 blx r8
lv_draw_mask_radius_init(mp, &obj->coords, r, false);
4980: 4649 mov r1, r9
4982: 4602 mov r2, r0
4984: 2300 movs r3, #0
4986: 4630 mov r0, r6
4988: 47b8 blx r7
lv_draw_mask_add(mp, obj + 8);
498a: 4b33 ldr r3, [pc, #204] ; (4a58 <lv_obj_design+0x238>)
498c: f504 7118 add.w r1, r4, #608 ; 0x260
4990: 4630 mov r0, r6
4992: 4798 blx r3
4994: e7a0 b.n 48d8 <lv_obj_design+0xb8>
else if(mode == LV_DESIGN_DRAW_POST) {
4996: 2a01 cmp r2, #1
4998: d001 beq.n 499e <lv_obj_design+0x17e>
return LV_DESIGN_RES_OK;
499a: 2500 movs r5, #0
499c: e79c b.n 48d8 <lv_obj_design+0xb8>
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
499e: f8df 80c4 ldr.w r8, [pc, #196] ; 4a64 <lv_obj_design+0x244>
49a2: 2202 movs r2, #2
49a4: 2100 movs r1, #0
49a6: 47c0 blx r8
if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) {
49a8: b128 cbz r0, 49b6 <lv_obj_design+0x196>
lv_draw_mask_radius_param_t * param = lv_draw_mask_remove_custom(obj + 8);
49aa: 4b2c ldr r3, [pc, #176] ; (4a5c <lv_obj_design+0x23c>)
49ac: f504 7018 add.w r0, r4, #608 ; 0x260
49b0: 4798 blx r3
_lv_mem_buf_release(param);
49b2: 4b2b ldr r3, [pc, #172] ; (4a60 <lv_obj_design+0x240>)
49b4: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
49b6: 2233 movs r2, #51 ; 0x33
49b8: 2100 movs r1, #0
49ba: 4620 mov r0, r4
49bc: 47c0 blx r8
if(lv_obj_get_style_border_post(obj, LV_OBJ_PART_MAIN)) {
49be: 2800 cmp r0, #0
49c0: d0eb beq.n 499a <lv_obj_design+0x17a>
draw_dsc.bg_opa = LV_OPA_TRANSP;
49c2: 2500 movs r5, #0
lv_draw_rect_dsc_init(&draw_dsc);
49c4: a803 add r0, sp, #12
49c6: 4b1f ldr r3, [pc, #124] ; (4a44 <lv_obj_design+0x224>)
49c8: 4798 blx r3
lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc);
49ca: 4b1f ldr r3, [pc, #124] ; (4a48 <lv_obj_design+0x228>)
draw_dsc.bg_opa = LV_OPA_TRANSP;
49cc: f88d 5018 strb.w r5, [sp, #24]
lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc);
49d0: aa03 add r2, sp, #12
49d2: 4629 mov r1, r5
49d4: 4620 mov r0, r4
draw_dsc.pattern_opa = LV_OPA_TRANSP;
49d6: f88d 5042 strb.w r5, [sp, #66] ; 0x42
draw_dsc.shadow_opa = LV_OPA_TRANSP;
49da: f88d 5034 strb.w r5, [sp, #52] ; 0x34
lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc);
49de: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
49e0: 4629 mov r1, r5
49e2: 2204 movs r2, #4
49e4: 4620 mov r0, r4
49e6: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
49e8: 2205 movs r2, #5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
49ea: 4606 mov r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
49ec: 4629 mov r1, r5
49ee: 4620 mov r0, r4
49f0: 47c0 blx r8
lv_area_copy(&coords, &obj->coords);
49f2: f104 0110 add.w r1, r4, #16
49f6: 4680 mov r8, r0
49f8: 4b0f ldr r3, [pc, #60] ; (4a38 <lv_obj_design+0x218>)
49fa: a801 add r0, sp, #4
49fc: 4798 blx r3
coords.x1 -= w;
49fe: f8bd 2004 ldrh.w r2, [sp, #4]
4a02: b2b3 uxth r3, r6
4a04: 1ad2 subs r2, r2, r3
4a06: f8ad 2004 strh.w r2, [sp, #4]
coords.x2 += w;
4a0a: f8bd 2008 ldrh.w r2, [sp, #8]
4a0e: 4413 add r3, r2
4a10: f8ad 3008 strh.w r3, [sp, #8]
coords.y1 -= h;
4a14: f8bd 3006 ldrh.w r3, [sp, #6]
4a18: fa1f f088 uxth.w r0, r8
4a1c: 1a1b subs r3, r3, r0
4a1e: f8ad 3006 strh.w r3, [sp, #6]
coords.y2 += h;
4a22: f8bd 300a ldrh.w r3, [sp, #10]
4a26: 4418 add r0, r3
4a28: f8ad 000a strh.w r0, [sp, #10]
lv_draw_rect(&coords, clip_area, &draw_dsc);
4a2c: 4b07 ldr r3, [pc, #28] ; (4a4c <lv_obj_design+0x22c>)
4a2e: aa03 add r2, sp, #12
4a30: 4639 mov r1, r7
4a32: a801 add r0, sp, #4
4a34: 4798 blx r3
4a36: e74f b.n 48d8 <lv_obj_design+0xb8>
4a38: 00001f9d .word 0x00001f9d
4a3c: 0000e315 .word 0x0000e315
4a40: 00003abd .word 0x00003abd
4a44: 00009e25 .word 0x00009e25
4a48: 0000452d .word 0x0000452d
4a4c: 00009e71 .word 0x00009e71
4a50: 0000f145 .word 0x0000f145
4a54: 00009b99 .word 0x00009b99
4a58: 00009995 .word 0x00009995
4a5c: 00009a4d .word 0x00009a4d
4a60: 0000edf9 .word 0x0000edf9
4a64: 00003995 .word 0x00003995
00004a68 <lv_obj_init_draw_label_dsc>:
{
4a68: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
4a6c: 4614 mov r4, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_OPA, text_opa, lv_opa_t, _opa, scalar)
4a6e: 4f28 ldr r7, [pc, #160] ; (4b10 <lv_obj_init_draw_label_dsc+0xa8>)
4a70: f248 028c movw r2, #32908 ; 0x808c
4a74: 4605 mov r5, r0
4a76: 460e mov r6, r1
4a78: 47b8 blx r7
if(draw_dsc->opa <= LV_OPA_MIN) return;
4a7a: 2805 cmp r0, #5
draw_dsc->opa = lv_obj_get_style_text_opa(obj, part);
4a7c: 7220 strb r0, [r4, #8]
if(draw_dsc->opa <= LV_OPA_MIN) return;
4a7e: d945 bls.n 4b0c <lv_obj_init_draw_label_dsc+0xa4>
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
4a80: f248 020c movw r2, #32780 ; 0x800c
4a84: 4631 mov r1, r6
4a86: 4628 mov r0, r5
4a88: 47b8 blx r7
if(opa_scale < LV_OPA_MAX) {
4a8a: 28f9 cmp r0, #249 ; 0xf9
draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8;
4a8c: bf9f itttt ls
4a8e: 7a23 ldrbls r3, [r4, #8]
4a90: fb13 f000 smulbbls r0, r3, r0
4a94: f3c0 2007 ubfxls r0, r0, #8, #8
4a98: 7220 strbls r0, [r4, #8]
if(draw_dsc->opa <= LV_OPA_MIN) return;
4a9a: 7a23 ldrb r3, [r4, #8]
4a9c: 2b05 cmp r3, #5
4a9e: d935 bls.n 4b0c <lv_obj_init_draw_label_dsc+0xa4>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
4aa0: f248 0289 movw r2, #32905 ; 0x8089
4aa4: 4631 mov r1, r6
4aa6: f8df 8074 ldr.w r8, [pc, #116] ; 4b1c <lv_obj_init_draw_label_dsc+0xb4>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
4aaa: 4f1a ldr r7, [pc, #104] ; (4b14 <lv_obj_init_draw_label_dsc+0xac>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
4aac: 4628 mov r0, r5
4aae: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
4ab0: f248 0280 movw r2, #32896 ; 0x8080
draw_dsc->color = lv_obj_get_style_text_color(obj, part);
4ab4: 8020 strh r0, [r4, #0]
4ab6: 4631 mov r1, r6
4ab8: 4628 mov r0, r5
4aba: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
4abc: f248 0281 movw r2, #32897 ; 0x8081
draw_dsc->letter_space = lv_obj_get_style_text_letter_space(obj, part);
4ac0: 81a0 strh r0, [r4, #12]
4ac2: 4631 mov r1, r6
4ac4: 4628 mov r0, r5
4ac6: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_DECOR, text_decor, lv_text_decor_t, _int, scalar)
4ac8: f248 0282 movw r2, #32898 ; 0x8082
draw_dsc->line_space = lv_obj_get_style_text_line_space(obj, part);
4acc: 8160 strh r0, [r4, #10]
4ace: 4631 mov r1, r6
4ad0: 4628 mov r0, r5
4ad2: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar)
4ad4: f248 0283 movw r2, #32899 ; 0x8083
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_DECOR, text_decor, lv_text_decor_t, _int, scalar)
4ad8: 7620 strb r0, [r4, #24]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar)
4ada: 4631 mov r1, r6
4adc: 4628 mov r0, r5
4ade: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
4ae0: 4b0d ldr r3, [pc, #52] ; (4b18 <lv_obj_init_draw_label_dsc+0xb0>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar)
4ae2: 7660 strb r0, [r4, #25]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
4ae4: f248 028e movw r2, #32910 ; 0x808e
4ae8: 4631 mov r1, r6
4aea: 4628 mov r0, r5
4aec: 4798 blx r3
if(draw_dsc->sel_start != LV_DRAW_LABEL_NO_TXT_SEL && draw_dsc->sel_end != LV_DRAW_LABEL_NO_TXT_SEL) {
4aee: 89e2 ldrh r2, [r4, #14]
draw_dsc->font = lv_obj_get_style_text_font(obj, part);
4af0: 6060 str r0, [r4, #4]
if(draw_dsc->sel_start != LV_DRAW_LABEL_NO_TXT_SEL && draw_dsc->sel_end != LV_DRAW_LABEL_NO_TXT_SEL) {
4af2: f64f 73ff movw r3, #65535 ; 0xffff
4af6: 429a cmp r2, r3
4af8: d008 beq.n 4b0c <lv_obj_init_draw_label_dsc+0xa4>
4afa: 8a22 ldrh r2, [r4, #16]
4afc: 429a cmp r2, r3
4afe: d005 beq.n 4b0c <lv_obj_init_draw_label_dsc+0xa4>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_SEL_COLOR, text_sel_color, lv_color_t, _color, nonscalar)
4b00: f248 028a movw r2, #32906 ; 0x808a
4b04: 4631 mov r1, r6
4b06: 4628 mov r0, r5
4b08: 47c0 blx r8
draw_dsc->color = lv_obj_get_style_text_sel_color(obj, part);
4b0a: 8020 strh r0, [r4, #0]
}
4b0c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
4b10: 00003abd .word 0x00003abd
4b14: 00003995 .word 0x00003995
4b18: 00003b4d .word 0x00003b4d
4b1c: 00003a39 .word 0x00003a39
00004b20 <lv_obj_init_draw_img_dsc>:
{
4b20: b5f8 push {r3, r4, r5, r6, r7, lr}
4b22: 4614 mov r4, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_OPA, image_opa, lv_opa_t, _opa, scalar)
4b24: 4f23 ldr r7, [pc, #140] ; (4bb4 <lv_obj_init_draw_img_dsc+0x94>)
4b26: f248 02ac movw r2, #32940 ; 0x80ac
4b2a: 4605 mov r5, r0
4b2c: 460e mov r6, r1
4b2e: 47b8 blx r7
if(draw_dsc->opa <= LV_OPA_MIN) return;
4b30: 2805 cmp r0, #5
draw_dsc->opa = lv_obj_get_style_image_opa(obj, part);
4b32: 7020 strb r0, [r4, #0]
if(draw_dsc->opa <= LV_OPA_MIN) return;
4b34: d93c bls.n 4bb0 <lv_obj_init_draw_img_dsc+0x90>
_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar)
4b36: f248 020c movw r2, #32780 ; 0x800c
4b3a: 4631 mov r1, r6
4b3c: 4628 mov r0, r5
4b3e: 47b8 blx r7
if(opa_scale < LV_OPA_MAX) {
4b40: 28f9 cmp r0, #249 ; 0xf9
draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8;
4b42: bf9f itttt ls
4b44: 7823 ldrbls r3, [r4, #0]
4b46: fb13 f000 smulbbls r0, r3, r0
4b4a: f3c0 2007 ubfxls r0, r0, #8, #8
4b4e: 7020 strbls r0, [r4, #0]
if(draw_dsc->opa <= LV_OPA_MIN) return;
4b50: 7823 ldrb r3, [r4, #0]
4b52: 2b05 cmp r3, #5
4b54: d92c bls.n 4bb0 <lv_obj_init_draw_img_dsc+0x90>
draw_dsc->angle = 0;
4b56: 2300 movs r3, #0
4b58: 8063 strh r3, [r4, #2]
draw_dsc->zoom = LV_IMG_ZOOM_NONE;
4b5a: f44f 7380 mov.w r3, #256 ; 0x100
4b5e: 8123 strh r3, [r4, #8]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
4b60: 8aab ldrh r3, [r5, #20]
4b62: 8a2a ldrh r2, [r5, #16]
4b64: 3301 adds r3, #1
4b66: 1a9b subs r3, r3, r2
draw_dsc->pivot.x = lv_area_get_width(&obj->coords) / 2;
4b68: f3c3 32c0 ubfx r2, r3, #15, #1
4b6c: fa02 f383 sxtah r3, r2, r3
4b70: 105b asrs r3, r3, #1
4b72: 80a3 strh r3, [r4, #4]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
4b74: 8aeb ldrh r3, [r5, #22]
4b76: 8a6a ldrh r2, [r5, #18]
4b78: 3301 adds r3, #1
4b7a: 1a9b subs r3, r3, r2
draw_dsc->pivot.y = lv_area_get_height(&obj->coords) / 2;
4b7c: f3c3 32c0 ubfx r2, r3, #15, #1
4b80: fa02 f383 sxtah r3, r2, r3
4b84: 105b asrs r3, r3, #1
4b86: 80e3 strh r3, [r4, #6]
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR_OPA, image_recolor_opa, lv_opa_t, _opa, scalar)
4b88: f248 02ad movw r2, #32941 ; 0x80ad
4b8c: 4631 mov r1, r6
4b8e: 4628 mov r0, r5
4b90: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
4b92: 4b09 ldr r3, [pc, #36] ; (4bb8 <lv_obj_init_draw_img_dsc+0x98>)
draw_dsc->recolor_opa = lv_obj_get_style_image_recolor_opa(obj, part);
4b94: 72a0 strb r0, [r4, #10]
4b96: f248 02a9 movw r2, #32937 ; 0x80a9
4b9a: 4631 mov r1, r6
4b9c: 4628 mov r0, r5
4b9e: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_BLEND_MODE, image_blend_mode, lv_blend_mode_t, _int, scalar)
4ba0: 4b06 ldr r3, [pc, #24] ; (4bbc <lv_obj_init_draw_img_dsc+0x9c>)
draw_dsc->recolor = lv_obj_get_style_image_recolor(obj, part);
4ba2: 81a0 strh r0, [r4, #12]
4ba4: f248 02a0 movw r2, #32928 ; 0x80a0
4ba8: 4631 mov r1, r6
4baa: 4628 mov r0, r5
4bac: 4798 blx r3
4bae: 73a0 strb r0, [r4, #14]
}
4bb0: bdf8 pop {r3, r4, r5, r6, r7, pc}
4bb2: bf00 nop
4bb4: 00003abd .word 0x00003abd
4bb8: 00003a39 .word 0x00003a39
4bbc: 00003995 .word 0x00003995
00004bc0 <lv_obj_get_draw_rect_ext_pad_size>:
{
4bc0: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
4bc4: 2250 movs r2, #80 ; 0x50
4bc6: 4f75 ldr r7, [pc, #468] ; (4d9c <lv_obj_get_draw_rect_ext_pad_size+0x1dc>)
4bc8: b08a sub sp, #40 ; 0x28
4bca: 4604 mov r4, r0
4bcc: 460e mov r6, r1
4bce: 47b8 blx r7
if(sh_width) {
4bd0: 4605 mov r5, r0
4bd2: 2800 cmp r0, #0
4bd4: f040 80b4 bne.w 4d40 <lv_obj_get_draw_rect_ext_pad_size+0x180>
lv_coord_t s = 0;
4bd8: 2500 movs r5, #0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char *, _ptr, scalar)
4bda: f8df a1c8 ldr.w sl, [pc, #456] ; 4da4 <lv_obj_get_draw_rect_ext_pad_size+0x1e4>
4bde: 227f movs r2, #127 ; 0x7f
4be0: 4631 mov r1, r6
4be2: 4620 mov r0, r4
4be4: 47d0 blx sl
if(value_str) {
4be6: 4680 mov r8, r0
4be8: 2800 cmp r0, #0
4bea: d07e beq.n 4cea <lv_obj_get_draw_rect_ext_pad_size+0x12a>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OPA, value_opa, lv_opa_t, _opa, scalar)
4bec: 4b6c ldr r3, [pc, #432] ; (4da0 <lv_obj_get_draw_rect_ext_pad_size+0x1e0>)
4bee: 227c movs r2, #124 ; 0x7c
4bf0: 4631 mov r1, r6
4bf2: 4620 mov r0, r4
4bf4: 4798 blx r3
if(value_opa > LV_OPA_MIN) {
4bf6: 2805 cmp r0, #5
4bf8: d977 bls.n 4cea <lv_obj_get_draw_rect_ext_pad_size+0x12a>
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar)
4bfa: 2270 movs r2, #112 ; 0x70
4bfc: 4631 mov r1, r6
4bfe: 4620 mov r0, r4
4c00: 47b8 blx r7
4c02: 2270 movs r2, #112 ; 0x70
4c04: 9005 str r0, [sp, #20]
4c06: 4631 mov r1, r6
4c08: 4620 mov r0, r4
4c0a: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
4c0c: 227e movs r2, #126 ; 0x7e
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar)
4c0e: 4681 mov r9, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
4c10: 4631 mov r1, r6
4c12: 4620 mov r0, r4
4c14: 47d0 blx sl
_lv_txt_get_size(&txt_size, value_str, font, letter_space, line_space, LV_COORD_MAX, LV_TXT_FLAG_NONE);
4c16: f04f 0a00 mov.w sl, #0
4c1a: f647 4118 movw r1, #31768 ; 0x7c18
4c1e: e9cd 1a01 strd r1, sl, [sp, #4]
4c22: 4602 mov r2, r0
4c24: 4641 mov r1, r8
4c26: 9b05 ldr r3, [sp, #20]
4c28: f8df 817c ldr.w r8, [pc, #380] ; 4da8 <lv_obj_get_draw_rect_ext_pad_size+0x1e8>
4c2c: f8cd 9000 str.w r9, [sp]
4c30: a806 add r0, sp, #24
4c32: 47c0 blx r8
value_area.x2 = txt_size.x - 1;
4c34: f8bd 3018 ldrh.w r3, [sp, #24]
value_area.x1 = 0;
4c38: f8cd a020 str.w sl, [sp, #32]
value_area.x2 = txt_size.x - 1;
4c3c: 3b01 subs r3, #1
4c3e: f8ad 3024 strh.w r3, [sp, #36] ; 0x24
value_area.y2 = txt_size.y - 1;
4c42: f8bd 301a ldrh.w r3, [sp, #26]
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar)
4c46: 2275 movs r2, #117 ; 0x75
4c48: 3b01 subs r3, #1
4c4a: 4631 mov r1, r6
4c4c: 4620 mov r0, r4
4c4e: f8ad 3026 strh.w r3, [sp, #38] ; 0x26
4c52: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar)
4c54: 2273 movs r2, #115 ; 0x73
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar)
4c56: 4682 mov sl, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar)
4c58: 4631 mov r1, r6
4c5a: 4620 mov r0, r4
4c5c: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar)
4c5e: 2274 movs r2, #116 ; 0x74
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar)
4c60: 4681 mov r9, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar)
4c62: 4631 mov r1, r6
4c64: 4620 mov r0, r4
4c66: 47b8 blx r7
_lv_area_align(&obj->coords, &value_area, align, &p_align);
4c68: fa5f f28a uxtb.w r2, sl
4c6c: 4680 mov r8, r0
4c6e: ab07 add r3, sp, #28
4c70: a908 add r1, sp, #32
4c72: f104 0010 add.w r0, r4, #16
4c76: f8df a134 ldr.w sl, [pc, #308] ; 4dac <lv_obj_get_draw_rect_ext_pad_size+0x1ec>
4c7a: 47d0 blx sl
value_area.y1 += p_align.y + yofs;
4c7c: f8bd 201e ldrh.w r2, [sp, #30]
value_area.x1 += p_align.x + xofs;
4c80: f8bd 301c ldrh.w r3, [sp, #28]
s = LV_MATH_MAX(s, obj->coords.x1 - value_area.x1);
4c84: f9b4 1010 ldrsh.w r1, [r4, #16]
value_area.y1 += p_align.y + yofs;
4c88: eb08 0002 add.w r0, r8, r2
value_area.x1 += p_align.x + xofs;
4c8c: f8bd 2020 ldrh.w r2, [sp, #32]
4c90: 444b add r3, r9
4c92: fa12 f283 uxtah r2, r2, r3
s = LV_MATH_MAX(s, obj->coords.x1 - value_area.x1);
4c96: b212 sxth r2, r2
4c98: 1a89 subs r1, r1, r2
4c9a: 42a9 cmp r1, r5
4c9c: bfb8 it lt
4c9e: 4629 movlt r1, r5
value_area.y1 += p_align.y + yofs;
4ca0: f8bd 5022 ldrh.w r5, [sp, #34] ; 0x22
s = LV_MATH_MAX(s, obj->coords.y1 - value_area.y1);
4ca4: f9b4 2012 ldrsh.w r2, [r4, #18]
value_area.y1 += p_align.y + yofs;
4ca8: fa15 f580 uxtah r5, r5, r0
s = LV_MATH_MAX(s, obj->coords.y1 - value_area.y1);
4cac: b22d sxth r5, r5
4cae: 1b52 subs r2, r2, r5
4cb0: b209 sxth r1, r1
4cb2: 428a cmp r2, r1
4cb4: bfb8 it lt
4cb6: 460a movlt r2, r1
value_area.x2 += p_align.x + xofs;
4cb8: f8bd 1024 ldrh.w r1, [sp, #36] ; 0x24
4cbc: fa11 f383 uxtah r3, r1, r3
s = LV_MATH_MAX(s, value_area.x2 - obj->coords.x2);
4cc0: f9b4 1014 ldrsh.w r1, [r4, #20]
4cc4: b21b sxth r3, r3
4cc6: 1a5b subs r3, r3, r1
4cc8: b212 sxth r2, r2
4cca: 4293 cmp r3, r2
4ccc: bfb8 it lt
4cce: 4613 movlt r3, r2
value_area.y2 += p_align.y + yofs;
4cd0: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26
4cd4: fa12 f080 uxtah r0, r2, r0
s = LV_MATH_MAX(s, value_area.y2 - obj->coords.y2);
4cd8: f9b4 2016 ldrsh.w r2, [r4, #22]
4cdc: b200 sxth r0, r0
4cde: 1a80 subs r0, r0, r2
4ce0: b21b sxth r3, r3
4ce2: 4298 cmp r0, r3
4ce4: bfb8 it lt
4ce6: 4618 movlt r0, r3
4ce8: b205 sxth r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
4cea: 2240 movs r2, #64 ; 0x40
4cec: 4631 mov r1, r6
4cee: 4620 mov r0, r4
4cf0: 47b8 blx r7
if(outline_width) {
4cf2: 4680 mov r8, r0
4cf4: b178 cbz r0, 4d16 <lv_obj_get_draw_rect_ext_pad_size+0x156>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
4cf6: 4b2a ldr r3, [pc, #168] ; (4da0 <lv_obj_get_draw_rect_ext_pad_size+0x1e0>)
4cf8: 224c movs r2, #76 ; 0x4c
4cfa: 4631 mov r1, r6
4cfc: 4620 mov r0, r4
4cfe: 4798 blx r3
if(outline_opa > LV_OPA_MIN) {
4d00: 2805 cmp r0, #5
4d02: d908 bls.n 4d16 <lv_obj_get_draw_rect_ext_pad_size+0x156>
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar)
4d04: 2241 movs r2, #65 ; 0x41
4d06: 4631 mov r1, r6
4d08: 4620 mov r0, r4
4d0a: 47b8 blx r7
s = LV_MATH_MAX(s, outline_pad + outline_width);
4d0c: 4440 add r0, r8
4d0e: 42a8 cmp r0, r5
4d10: bfb8 it lt
4d12: 4628 movlt r0, r5
4d14: b205 sxth r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
4d16: 4631 mov r1, r6
4d18: 2204 movs r2, #4
4d1a: 4620 mov r0, r4
4d1c: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4d1e: 2205 movs r2, #5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
4d20: 4680 mov r8, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
4d22: 4631 mov r1, r6
4d24: 4620 mov r0, r4
4d26: 47b8 blx r7
lv_coord_t wh = LV_MATH_MAX(w, h);
4d28: 4540 cmp r0, r8
4d2a: bfb8 it lt
4d2c: 4640 movlt r0, r8
4d2e: b200 sxth r0, r0
if(wh > 0) s += wh;
4d30: 2800 cmp r0, #0
4d32: bfc4 itt gt
4d34: 1940 addgt r0, r0, r5
4d36: b205 sxthgt r5, r0
}
4d38: 4628 mov r0, r5
4d3a: b00a add sp, #40 ; 0x28
4d3c: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OPA, shadow_opa, lv_opa_t, _opa, scalar)
4d40: 4b17 ldr r3, [pc, #92] ; (4da0 <lv_obj_get_draw_rect_ext_pad_size+0x1e0>)
4d42: 225c movs r2, #92 ; 0x5c
4d44: 4631 mov r1, r6
4d46: 4620 mov r0, r4
4d48: 4798 blx r3
if(sh_opa > LV_OPA_MIN) {
4d4a: 2805 cmp r0, #5
4d4c: f67f af44 bls.w 4bd8 <lv_obj_get_draw_rect_ext_pad_size+0x18>
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar)
4d50: 2253 movs r2, #83 ; 0x53
4d52: 4631 mov r1, r6
4d54: 4620 mov r0, r4
4d56: 47b8 blx r7
sh_width = sh_width / 2; /*THe blur adds only half width*/
4d58: eb05 75d5 add.w r5, r5, r5, lsr #31
sh_width++;
4d5c: eb00 0565 add.w r5, r0, r5, asr #1
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar)
4d60: 2251 movs r2, #81 ; 0x51
4d62: 4631 mov r1, r6
4d64: 4620 mov r0, r4
4d66: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar)
4d68: 2252 movs r2, #82 ; 0x52
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar)
4d6a: 4680 mov r8, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar)
4d6c: 4631 mov r1, r6
4d6e: 4620 mov r0, r4
4d70: 47b8 blx r7
sh_width += LV_MATH_MAX(LV_MATH_ABS(sh_ofs_x), LV_MATH_ABS(sh_ofs_y));
4d72: 2800 cmp r0, #0
4d74: bfb8 it lt
4d76: 4240 neglt r0, r0
4d78: f1b8 0f00 cmp.w r8, #0
4d7c: bfb8 it lt
4d7e: f1c8 0800 rsblt r8, r8, #0
sh_width += lv_obj_get_style_shadow_spread(obj, part);
4d82: 3501 adds r5, #1
4d84: b2ad uxth r5, r5
sh_width += LV_MATH_MAX(LV_MATH_ABS(sh_ofs_x), LV_MATH_ABS(sh_ofs_y));
4d86: b280 uxth r0, r0
4d88: fa1f f888 uxth.w r8, r8
4d8c: 4540 cmp r0, r8
4d8e: bf2c ite cs
4d90: 182d addcs r5, r5, r0
4d92: 4445 addcc r5, r8
s = LV_MATH_MAX(s, sh_width);
4d94: b22d sxth r5, r5
4d96: ea25 75e5 bic.w r5, r5, r5, asr #31
4d9a: e71e b.n 4bda <lv_obj_get_draw_rect_ext_pad_size+0x1a>
4d9c: 00003995 .word 0x00003995
4da0: 00003abd .word 0x00003abd
4da4: 00003b4d .word 0x00003b4d
4da8: 0001042d .word 0x0001042d
4dac: 0000e3b5 .word 0x0000e3b5
00004db0 <lv_obj_signal>:
{
4db0: b570 push {r4, r5, r6, lr}
4db2: 4605 mov r5, r0
4db4: 4610 mov r0, r2
4db6: 2917 cmp r1, #23
4db8: d811 bhi.n 4dde <lv_obj_signal+0x2e>
4dba: e8df f001 tbb [pc, r1]
4dbe: 1a55 .short 0x1a55
4dc0: 10372e10 .word 0x10372e10
4dc4: 100c1523 .word 0x100c1523
4dc8: 40103b10 .word 0x40103b10
4dcc: 10101040 .word 0x10101040
4dd0: 10101010 .word 0x10101010
4dd4: 5344 .short 0x5344
if(info->part == LV_OBJ_PART_MAIN) info->result = &obj->style_list;
4dd6: 7813 ldrb r3, [r2, #0]
4dd8: b91b cbnz r3, 4de2 <lv_obj_signal+0x32>
4dda: 3528 adds r5, #40 ; 0x28
4ddc: 6055 str r5, [r2, #4]
lv_res_t res = LV_RES_OK;
4dde: 2401 movs r4, #1
4de0: e00e b.n 4e00 <lv_obj_signal+0x50>
else info->result = NULL;
4de2: 2300 movs r3, #0
4de4: 6053 str r3, [r2, #4]
4de6: e7fa b.n 4dde <lv_obj_signal+0x2e>
}
4de8: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
else if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
4dec: 4920 ldr r1, [pc, #128] ; (4e70 <lv_obj_signal+0xc0>)
4dee: 4b21 ldr r3, [pc, #132] ; (4e74 <lv_obj_signal+0xc4>)
4df0: 4718 bx r3
if(lv_obj_is_protected(obj, LV_PROTECT_CHILD_CHG) != false) res = LV_RES_INV;
4df2: 4b21 ldr r3, [pc, #132] ; (4e78 <lv_obj_signal+0xc8>)
4df4: 2101 movs r1, #1
4df6: 4628 mov r0, r5
4df8: 4798 blx r3
4dfa: f080 0001 eor.w r0, r0, #1
return LV_RES_OK;
4dfe: b2c4 uxtb r4, r0
}
4e00: 4620 mov r0, r4
4e02: bd70 pop {r4, r5, r6, pc}
lv_coord_t d = lv_obj_get_draw_rect_ext_pad_size(obj, LV_OBJ_PART_MAIN);
4e04: 4b1d ldr r3, [pc, #116] ; (4e7c <lv_obj_signal+0xcc>)
4e06: 2100 movs r1, #0
4e08: 4628 mov r0, r5
4e0a: 4798 blx r3
obj->ext_draw_pad = LV_MATH_MAX(obj->ext_draw_pad, d);
4e0c: f9b5 3032 ldrsh.w r3, [r5, #50] ; 0x32
4e10: 4298 cmp r0, r3
4e12: bfb8 it lt
4e14: 4618 movlt r0, r3
4e16: 8668 strh r0, [r5, #50] ; 0x32
4e18: e7e1 b.n 4dde <lv_obj_signal+0x2e>
if(obj->realign.auto_realign) {
4e1a: f895 4049 ldrb.w r4, [r5, #73] ; 0x49
4e1e: f014 0401 ands.w r4, r4, #1
4e22: d0dc beq.n 4dde <lv_obj_signal+0x2e>
lv_obj_realign(obj);
4e24: 4b16 ldr r3, [pc, #88] ; (4e80 <lv_obj_signal+0xd0>)
4e26: 4628 mov r0, r5
4e28: 4798 blx r3
4e2a: e7e9 b.n 4e00 <lv_obj_signal+0x50>
lv_obj_refresh_ext_draw_pad(obj);
4e2c: 4b15 ldr r3, [pc, #84] ; (4e84 <lv_obj_signal+0xd4>)
4e2e: 4628 mov r0, r5
4e30: 4798 blx r3
4e32: e7d4 b.n 4dde <lv_obj_signal+0x2e>
lv_obj_add_state(obj, LV_STATE_PRESSED);
4e34: 4b14 ldr r3, [pc, #80] ; (4e88 <lv_obj_signal+0xd8>)
4e36: 2110 movs r1, #16
4e38: 4628 mov r0, r5
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
4e3a: 4798 blx r3
4e3c: e7cf b.n 4dde <lv_obj_signal+0x2e>
lv_obj_clear_state(obj, LV_STATE_PRESSED);
4e3e: 2110 movs r1, #16
lv_obj_clear_state(obj, LV_STATE_EDITED);
4e40: 4b12 ldr r3, [pc, #72] ; (4e8c <lv_obj_signal+0xdc>)
4e42: 4628 mov r0, r5
4e44: e7f9 b.n 4e3a <lv_obj_signal+0x8a>
if(lv_group_get_editing(lv_obj_get_group(obj))) {
4e46: 4b12 ldr r3, [pc, #72] ; (4e90 <lv_obj_signal+0xe0>)
4e48: 4628 mov r0, r5
4e4a: 4798 blx r3
4e4c: 4b11 ldr r3, [pc, #68] ; (4e94 <lv_obj_signal+0xe4>)
4e4e: 4798 blx r3
4e50: 4b0d ldr r3, [pc, #52] ; (4e88 <lv_obj_signal+0xd8>)
4e52: b110 cbz r0, 4e5a <lv_obj_signal+0xaa>
lv_obj_add_state(obj, state);
4e54: 2106 movs r1, #6
4e56: 4628 mov r0, r5
4e58: e7ef b.n 4e3a <lv_obj_signal+0x8a>
lv_obj_add_state(obj, LV_STATE_FOCUSED);
4e5a: 2102 movs r1, #2
4e5c: 4628 mov r0, r5
4e5e: 4798 blx r3
lv_obj_clear_state(obj, LV_STATE_EDITED);
4e60: 2104 movs r1, #4
4e62: e7ed b.n 4e40 <lv_obj_signal+0x90>
lv_obj_clear_state(obj, LV_STATE_FOCUSED | LV_STATE_EDITED);
4e64: 2106 movs r1, #6
4e66: e7eb b.n 4e40 <lv_obj_signal+0x90>
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
4e68: 4b0b ldr r3, [pc, #44] ; (4e98 <lv_obj_signal+0xe8>)
4e6a: 2100 movs r1, #0
4e6c: 4628 mov r0, r5
4e6e: e7e4 b.n 4e3a <lv_obj_signal+0x8a>
4e70: 00026adf .word 0x00026adf
4e74: 00004511 .word 0x00004511
4e78: 000038d5 .word 0x000038d5
4e7c: 00004bc1 .word 0x00004bc1
4e80: 00002f6d .word 0x00002f6d
4e84: 00002355 .word 0x00002355
4e88: 0000411d .word 0x0000411d
4e8c: 00004181 .word 0x00004181
4e90: 00004275 .word 0x00004275
4e94: 00001e9f .word 0x00001e9f
4e98: 000027cd .word 0x000027cd
00004e9c <lv_refr_vdb_flush>:
/**
* Flush the content of the VDB
*/
static void lv_refr_vdb_flush(void)
{
4e9c: b538 push {r3, r4, r5, lr}
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
4e9e: 4d17 ldr r5, [pc, #92] ; (4efc <lv_refr_vdb_flush+0x60>)
4ea0: 4b17 ldr r3, [pc, #92] ; (4f00 <lv_refr_vdb_flush+0x64>)
4ea2: 6828 ldr r0, [r5, #0]
4ea4: 4798 blx r3
/*In double buffered mode wait until the other buffer is flushed before flushing the current
* one*/
if(lv_disp_is_double_buf(disp_refr)) {
4ea6: 4b17 ldr r3, [pc, #92] ; (4f04 <lv_refr_vdb_flush+0x68>)
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
4ea8: 4604 mov r4, r0
if(lv_disp_is_double_buf(disp_refr)) {
4eaa: 6828 ldr r0, [r5, #0]
4eac: 4798 blx r3
4eae: b958 cbnz r0, 4ec8 <lv_refr_vdb_flush+0x2c>
}
}
vdb->flushing = 1;
if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1;
4eb0: 6828 ldr r0, [r5, #0]
vdb->flushing = 1;
4eb2: 2301 movs r3, #1
if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1;
4eb4: 6842 ldr r2, [r0, #4]
vdb->flushing = 1;
4eb6: 61a3 str r3, [r4, #24]
if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1;
4eb8: 6a11 ldr r1, [r2, #32]
4eba: 07c9 lsls r1, r1, #31
4ebc: d409 bmi.n 4ed2 <lv_refr_vdb_flush+0x36>
else vdb->flushing_last = 0;
4ebe: 2300 movs r3, #0
4ec0: e00a b.n 4ed8 <lv_refr_vdb_flush+0x3c>
if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver);
4ec2: 69c3 ldr r3, [r0, #28]
4ec4: b10b cbz r3, 4eca <lv_refr_vdb_flush+0x2e>
4ec6: 4798 blx r3
4ec8: 6828 ldr r0, [r5, #0]
while(vdb->flushing) {
4eca: 69a3 ldr r3, [r4, #24]
4ecc: 2b00 cmp r3, #0
4ece: d1f8 bne.n 4ec2 <lv_refr_vdb_flush+0x26>
4ed0: e7ee b.n 4eb0 <lv_refr_vdb_flush+0x14>
if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1;
4ed2: 6a12 ldr r2, [r2, #32]
4ed4: 0792 lsls r2, r2, #30
4ed6: d5f2 bpl.n 4ebe <lv_refr_vdb_flush+0x22>
else vdb->flushing_last = 0;
4ed8: 61e3 str r3, [r4, #28]
/*Flush the rendered content to the display*/
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
if(disp->driver.flush_cb) disp->driver.flush_cb(&disp->driver, &vdb->area, vdb->buf_act);
4eda: 68c3 ldr r3, [r0, #12]
4edc: b11b cbz r3, 4ee6 <lv_refr_vdb_flush+0x4a>
4ede: 68a2 ldr r2, [r4, #8]
4ee0: f104 0110 add.w r1, r4, #16
4ee4: 4798 blx r3
if(vdb->buf1 && vdb->buf2) {
4ee6: 6822 ldr r2, [r4, #0]
4ee8: b132 cbz r2, 4ef8 <lv_refr_vdb_flush+0x5c>
4eea: 6863 ldr r3, [r4, #4]
4eec: b123 cbz r3, 4ef8 <lv_refr_vdb_flush+0x5c>
if(vdb->buf_act == vdb->buf1)
4eee: 68a1 ldr r1, [r4, #8]
vdb->buf_act = vdb->buf2;
4ef0: 428a cmp r2, r1
4ef2: bf18 it ne
4ef4: 4613 movne r3, r2
4ef6: 60a3 str r3, [r4, #8]
else
vdb->buf_act = vdb->buf1;
}
}
4ef8: bd38 pop {r3, r4, r5, pc}
4efa: bf00 nop
4efc: 200030d0 .word 0x200030d0
4f00: 0000dc65 .word 0x0000dc65
4f04: 0000dc69 .word 0x0000dc69
00004f08 <lv_refr_get_top_obj>:
{
4f08: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) {
4f0c: 2200 movs r2, #0
{
4f0e: 460c mov r4, r1
if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) {
4f10: 4b17 ldr r3, [pc, #92] ; (4f70 <lv_refr_get_top_obj+0x68>)
4f12: 3110 adds r1, #16
{
4f14: 4607 mov r7, r0
if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) {
4f16: 4798 blx r3
4f18: b910 cbnz r0, 4f20 <lv_refr_get_top_obj+0x18>
lv_obj_t * found_p = NULL;
4f1a: 2000 movs r0, #0
}
4f1c: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) {
4f20: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
4f24: 06db lsls r3, r3, #27
4f26: d4f8 bmi.n 4f1a <lv_refr_get_top_obj+0x12>
lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p,
4f28: 6a23 ldr r3, [r4, #32]
4f2a: b19b cbz r3, 4f54 <lv_refr_get_top_obj+0x4c>
4f2c: 2202 movs r2, #2
4f2e: 4639 mov r1, r7
4f30: 4620 mov r0, r4
4f32: 4798 blx r3
if(design_res == LV_DESIGN_RES_MASKED) return NULL;
4f34: 2803 cmp r0, #3
lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p,
4f36: 4606 mov r6, r0
if(design_res == LV_DESIGN_RES_MASKED) return NULL;
4f38: d0ef beq.n 4f1a <lv_refr_get_top_obj+0x12>
_LV_LL_READ(obj->child_ll, i) {
4f3a: f104 0804 add.w r8, r4, #4
4f3e: 4b0d ldr r3, [pc, #52] ; (4f74 <lv_refr_get_top_obj+0x6c>)
4f40: f8df 9034 ldr.w r9, [pc, #52] ; 4f78 <lv_refr_get_top_obj+0x70>
4f44: 4640 mov r0, r8
4f46: 4798 blx r3
4f48: 4605 mov r5, r0
4f4a: b92d cbnz r5, 4f58 <lv_refr_get_top_obj+0x50>
if(design_res == LV_DESIGN_RES_COVER) {
4f4c: 2e01 cmp r6, #1
4f4e: d1e4 bne.n 4f1a <lv_refr_get_top_obj+0x12>
4f50: 4620 mov r0, r4
4f52: e7e3 b.n 4f1c <lv_refr_get_top_obj+0x14>
lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p,
4f54: 2602 movs r6, #2
4f56: e7f0 b.n 4f3a <lv_refr_get_top_obj+0x32>
found_p = lv_refr_get_top_obj(area_p, i);
4f58: 4629 mov r1, r5
4f5a: 4638 mov r0, r7
4f5c: f7ff ffd4 bl 4f08 <lv_refr_get_top_obj>
if(found_p != NULL) {
4f60: 2800 cmp r0, #0
4f62: d1db bne.n 4f1c <lv_refr_get_top_obj+0x14>
_LV_LL_READ(obj->child_ll, i) {
4f64: 4629 mov r1, r5
4f66: 4640 mov r0, r8
4f68: 47c8 blx r9
4f6a: 4605 mov r5, r0
4f6c: e7ed b.n 4f4a <lv_refr_get_top_obj+0x42>
4f6e: bf00 nop
4f70: 0000e315 .word 0x0000e315
4f74: 0000e92d .word 0x0000e92d
4f78: 0000e939 .word 0x0000e939
00004f7c <lv_refr_obj>:
{
4f7c: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
if(obj->hidden != 0) return;
4f80: f890 8034 ldrb.w r8, [r0, #52] ; 0x34
4f84: f018 0810 ands.w r8, r8, #16
{
4f88: b08b sub sp, #44 ; 0x2c
4f8a: 4604 mov r4, r0
4f8c: 460f mov r7, r1
if(obj->hidden != 0) return;
4f8e: d13c bne.n 500a <lv_refr_obj+0x8e>
lv_coord_t ext_size = obj->ext_draw_pad;
4f90: f9b0 5032 ldrsh.w r5, [r0, #50] ; 0x32
lv_obj_get_coords(obj, &obj_area);
4f94: 4e31 ldr r6, [pc, #196] ; (505c <lv_refr_obj+0xe0>)
union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area);
4f96: f8df 90cc ldr.w r9, [pc, #204] ; 5064 <lv_refr_obj+0xe8>
lv_obj_get_coords(obj, &obj_area);
4f9a: a904 add r1, sp, #16
4f9c: 47b0 blx r6
obj_area.x1 -= ext_size;
4f9e: f8bd 2010 ldrh.w r2, [sp, #16]
4fa2: b2ab uxth r3, r5
4fa4: 1ad2 subs r2, r2, r3
4fa6: f8ad 2010 strh.w r2, [sp, #16]
obj_area.y1 -= ext_size;
4faa: f8bd 2012 ldrh.w r2, [sp, #18]
4fae: 1ad2 subs r2, r2, r3
4fb0: f8ad 2012 strh.w r2, [sp, #18]
obj_area.x2 += ext_size;
4fb4: f8bd 2014 ldrh.w r2, [sp, #20]
4fb8: 441a add r2, r3
4fba: f8ad 2014 strh.w r2, [sp, #20]
obj_area.y2 += ext_size;
4fbe: f8bd 2016 ldrh.w r2, [sp, #22]
union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area);
4fc2: 4639 mov r1, r7
obj_area.y2 += ext_size;
4fc4: 4413 add r3, r2
union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area);
4fc6: a802 add r0, sp, #8
4fc8: aa04 add r2, sp, #16
obj_area.y2 += ext_size;
4fca: f8ad 3016 strh.w r3, [sp, #22]
union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area);
4fce: 47c8 blx r9
if(union_ok != false) {
4fd0: b1d8 cbz r0, 500a <lv_refr_obj+0x8e>
if(obj->design_cb) obj->design_cb(obj, &obj_ext_mask, LV_DESIGN_DRAW_MAIN);
4fd2: 6a23 ldr r3, [r4, #32]
4fd4: b11b cbz r3, 4fde <lv_refr_obj+0x62>
4fd6: 4642 mov r2, r8
4fd8: a902 add r1, sp, #8
4fda: 4620 mov r0, r4
4fdc: 4798 blx r3
lv_obj_get_coords(obj, &obj_area);
4fde: a904 add r1, sp, #16
4fe0: 4620 mov r0, r4
4fe2: 47b0 blx r6
union_ok = _lv_area_intersect(&obj_mask, mask_ori_p, &obj_area);
4fe4: aa04 add r2, sp, #16
4fe6: 4639 mov r1, r7
4fe8: 4668 mov r0, sp
4fea: 47c8 blx r9
if(union_ok != false) {
4fec: b138 cbz r0, 4ffe <lv_refr_obj+0x82>
_LV_LL_READ_BACK(obj->child_ll, child_p) {
4fee: 1d27 adds r7, r4, #4
4ff0: 4b1b ldr r3, [pc, #108] ; (5060 <lv_refr_obj+0xe4>)
4ff2: f8df 8074 ldr.w r8, [pc, #116] ; 5068 <lv_refr_obj+0xec>
4ff6: 4638 mov r0, r7
4ff8: 4798 blx r3
4ffa: 4605 mov r5, r0
4ffc: b945 cbnz r5, 5010 <lv_refr_obj+0x94>
if(obj->design_cb) obj->design_cb(obj, &obj_ext_mask, LV_DESIGN_DRAW_POST);
4ffe: 6a23 ldr r3, [r4, #32]
5000: b11b cbz r3, 500a <lv_refr_obj+0x8e>
5002: 2201 movs r2, #1
5004: a902 add r1, sp, #8
5006: 4620 mov r0, r4
5008: 4798 blx r3
}
500a: b00b add sp, #44 ; 0x2c
500c: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
lv_obj_get_coords(child_p, &child_area);
5010: a908 add r1, sp, #32
5012: 4628 mov r0, r5
5014: 47b0 blx r6
child_area.x1 -= ext_size;
5016: 8e6b ldrh r3, [r5, #50] ; 0x32
5018: f8bd 2020 ldrh.w r2, [sp, #32]
501c: 1ad2 subs r2, r2, r3
501e: f8ad 2020 strh.w r2, [sp, #32]
child_area.y1 -= ext_size;
5022: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22
5026: 1ad2 subs r2, r2, r3
5028: f8ad 2022 strh.w r2, [sp, #34] ; 0x22
child_area.x2 += ext_size;
502c: f8bd 2024 ldrh.w r2, [sp, #36] ; 0x24
5030: 441a add r2, r3
5032: f8ad 2024 strh.w r2, [sp, #36] ; 0x24
child_area.y2 += ext_size;
5036: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26
union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area);
503a: 4669 mov r1, sp
child_area.y2 += ext_size;
503c: 4413 add r3, r2
union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area);
503e: a806 add r0, sp, #24
5040: aa08 add r2, sp, #32
child_area.y2 += ext_size;
5042: f8ad 3026 strh.w r3, [sp, #38] ; 0x26
union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area);
5046: 47c8 blx r9
if(union_ok) {
5048: b118 cbz r0, 5052 <lv_refr_obj+0xd6>
lv_refr_obj(child_p, &mask_child);
504a: a906 add r1, sp, #24
504c: 4628 mov r0, r5
504e: f7ff ff95 bl 4f7c <lv_refr_obj>
_LV_LL_READ_BACK(obj->child_ll, child_p) {
5052: 4629 mov r1, r5
5054: 4638 mov r0, r7
5056: 47c0 blx r8
5058: 4605 mov r5, r0
505a: e7cf b.n 4ffc <lv_refr_obj+0x80>
505c: 00002559 .word 0x00002559
5060: 0000e933 .word 0x0000e933
5064: 0000e111 .word 0x0000e111
5068: 0000e959 .word 0x0000e959
0000506c <lv_refr_obj_and_children>:
{
506c: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
5070: 460e mov r6, r1
if(top_p == NULL) top_p = lv_disp_get_scr_act(disp_refr);
5072: 4604 mov r4, r0
5074: b928 cbnz r0, 5082 <lv_refr_obj_and_children+0x16>
5076: 4b15 ldr r3, [pc, #84] ; (50cc <lv_refr_obj_and_children+0x60>)
5078: 6818 ldr r0, [r3, #0]
507a: 4b15 ldr r3, [pc, #84] ; (50d0 <lv_refr_obj_and_children+0x64>)
507c: 4798 blx r3
if(top_p == NULL) return; /*Shouldn't happen*/
507e: 4604 mov r4, r0
5080: b158 cbz r0, 509a <lv_refr_obj_and_children+0x2e>
lv_refr_obj(top_p, mask_p);
5082: 4631 mov r1, r6
5084: 4620 mov r0, r4
5086: 4f13 ldr r7, [pc, #76] ; (50d4 <lv_refr_obj_and_children+0x68>)
par = lv_obj_get_parent(top_p);
5088: f8df 804c ldr.w r8, [pc, #76] ; 50d8 <lv_refr_obj_and_children+0x6c>
lv_obj_t * i = _lv_ll_get_prev(&(par->child_ll), border_p);
508c: f8df 904c ldr.w r9, [pc, #76] ; 50dc <lv_refr_obj_and_children+0x70>
lv_refr_obj(top_p, mask_p);
5090: 47b8 blx r7
par = lv_obj_get_parent(top_p);
5092: 4620 mov r0, r4
5094: 47c0 blx r8
5096: 4605 mov r5, r0
while(par != NULL) {
5098: b90d cbnz r5, 509e <lv_refr_obj_and_children+0x32>
}
509a: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
lv_obj_t * i = _lv_ll_get_prev(&(par->child_ll), border_p);
509e: f105 0a04 add.w sl, r5, #4
i = _lv_ll_get_prev(&(par->child_ll), i);
50a2: 4621 mov r1, r4
50a4: 4650 mov r0, sl
50a6: 47c8 blx r9
50a8: 4604 mov r4, r0
while(i != NULL) {
50aa: b950 cbnz r0, 50c2 <lv_refr_obj_and_children+0x56>
if(par->design_cb) par->design_cb(par, mask_p, LV_DESIGN_DRAW_POST);
50ac: 6a2b ldr r3, [r5, #32]
50ae: b11b cbz r3, 50b8 <lv_refr_obj_and_children+0x4c>
50b0: 2201 movs r2, #1
50b2: 4631 mov r1, r6
50b4: 4628 mov r0, r5
50b6: 4798 blx r3
par = lv_obj_get_parent(par);
50b8: 4628 mov r0, r5
50ba: 47c0 blx r8
50bc: 462c mov r4, r5
50be: 4605 mov r5, r0
50c0: e7ea b.n 5098 <lv_refr_obj_and_children+0x2c>
lv_refr_obj(i, mask_p);
50c2: 4631 mov r1, r6
50c4: 4620 mov r0, r4
50c6: 47b8 blx r7
50c8: e7eb b.n 50a2 <lv_refr_obj_and_children+0x36>
50ca: bf00 nop
50cc: 200030d0 .word 0x200030d0
50d0: 00001af5 .word 0x00001af5
50d4: 00004f7d .word 0x00004f7d
50d8: 000023a9 .word 0x000023a9
50dc: 0000e959 .word 0x0000e959
000050e0 <lv_refr_area_part>:
{
50e0: b573 push {r0, r1, r4, r5, r6, lr}
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
50e2: 4c1a ldr r4, [pc, #104] ; (514c <lv_refr_area_part+0x6c>)
50e4: 4b1a ldr r3, [pc, #104] ; (5150 <lv_refr_area_part+0x70>)
{
50e6: 4606 mov r6, r0
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
50e8: 6820 ldr r0, [r4, #0]
50ea: 4798 blx r3
if(lv_disp_is_double_buf(disp_refr) == false) {
50ec: 4b19 ldr r3, [pc, #100] ; (5154 <lv_refr_area_part+0x74>)
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
50ee: 4605 mov r5, r0
if(lv_disp_is_double_buf(disp_refr) == false) {
50f0: 6820 ldr r0, [r4, #0]
50f2: 4798 blx r3
50f4: b320 cbz r0, 5140 <lv_refr_area_part+0x60>
_lv_area_intersect(&start_mask, area_p, &vdb->area);
50f6: f105 0210 add.w r2, r5, #16
50fa: 4631 mov r1, r6
50fc: 4b16 ldr r3, [pc, #88] ; (5158 <lv_refr_area_part+0x78>)
lv_refr_obj_and_children(top_p, &start_mask);
50fe: 4d17 ldr r5, [pc, #92] ; (515c <lv_refr_area_part+0x7c>)
_lv_area_intersect(&start_mask, area_p, &vdb->area);
5100: 4668 mov r0, sp
5102: 4798 blx r3
top_p = lv_refr_get_top_obj(&start_mask, lv_disp_get_scr_act(disp_refr));
5104: 4b16 ldr r3, [pc, #88] ; (5160 <lv_refr_area_part+0x80>)
5106: 6820 ldr r0, [r4, #0]
5108: 4798 blx r3
510a: 4b16 ldr r3, [pc, #88] ; (5164 <lv_refr_area_part+0x84>)
510c: 4601 mov r1, r0
510e: 4668 mov r0, sp
5110: 4798 blx r3
lv_refr_obj_and_children(top_p, &start_mask);
5112: 4669 mov r1, sp
5114: 47a8 blx r5
lv_refr_obj_and_children(lv_disp_get_layer_top(disp_refr), &start_mask);
5116: 4b14 ldr r3, [pc, #80] ; (5168 <lv_refr_area_part+0x88>)
5118: 6820 ldr r0, [r4, #0]
511a: 4798 blx r3
511c: 4669 mov r1, sp
511e: 47a8 blx r5
lv_refr_obj_and_children(lv_disp_get_layer_sys(disp_refr), &start_mask);
5120: 4b12 ldr r3, [pc, #72] ; (516c <lv_refr_area_part+0x8c>)
5122: 6820 ldr r0, [r4, #0]
5124: 4798 blx r3
5126: 4669 mov r1, sp
5128: 47a8 blx r5
if(lv_disp_is_true_double_buf(disp_refr) == false) {
512a: 6820 ldr r0, [r4, #0]
512c: 4b10 ldr r3, [pc, #64] ; (5170 <lv_refr_area_part+0x90>)
512e: 4798 blx r3
5130: b908 cbnz r0, 5136 <lv_refr_area_part+0x56>
lv_refr_vdb_flush();
5132: 4b10 ldr r3, [pc, #64] ; (5174 <lv_refr_area_part+0x94>)
5134: 4798 blx r3
}
5136: b002 add sp, #8
5138: bd70 pop {r4, r5, r6, pc}
if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver);
513a: 69c3 ldr r3, [r0, #28]
513c: b10b cbz r3, 5142 <lv_refr_area_part+0x62>
513e: 4798 blx r3
5140: 6820 ldr r0, [r4, #0]
while(vdb->flushing) {
5142: 69ab ldr r3, [r5, #24]
5144: 2b00 cmp r3, #0
5146: d1f8 bne.n 513a <lv_refr_area_part+0x5a>
5148: e7d5 b.n 50f6 <lv_refr_area_part+0x16>
514a: bf00 nop
514c: 200030d0 .word 0x200030d0
5150: 0000dc65 .word 0x0000dc65
5154: 0000dc69 .word 0x0000dc69
5158: 0000e111 .word 0x0000e111
515c: 0000506d .word 0x0000506d
5160: 00001af5 .word 0x00001af5
5164: 00004f09 .word 0x00004f09
5168: 00001b31 .word 0x00001b31
516c: 00001b6d .word 0x00001b6d
5170: 0000dc79 .word 0x0000dc79
5174: 00004e9d .word 0x00004e9d
00005178 <lv_area_copy>:
5178: 3901 subs r1, #1
517a: f100 0308 add.w r3, r0, #8
*d8 = *s8;
517e: f811 2f01 ldrb.w r2, [r1, #1]!
5182: f800 2b01 strb.w r2, [r0], #1
while(len) {
5186: 4298 cmp r0, r3
5188: d1f9 bne.n 517e <lv_area_copy+0x6>
}
518a: 4770 bx lr
0000518c <_lv_refr_init>:
}
518c: 4770 bx lr
...
00005190 <_lv_inv_area>:
{
5190: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
5194: 460d mov r5, r1
if(!disp) disp = lv_disp_get_default();
5196: 4604 mov r4, r0
5198: b918 cbnz r0, 51a2 <_lv_inv_area+0x12>
519a: 4b2d ldr r3, [pc, #180] ; (5250 <_lv_inv_area+0xc0>)
519c: 4798 blx r3
if(!disp) return;
519e: 4604 mov r4, r0
51a0: b130 cbz r0, 51b0 <_lv_inv_area+0x20>
if(area_p == NULL) {
51a2: b945 cbnz r5, 51b6 <_lv_inv_area+0x26>
disp->inv_p = 0;
51a4: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168
51a8: f365 0309 bfi r3, r5, #0, #10
51ac: f8a4 3168 strh.w r3, [r4, #360] ; 0x168
}
51b0: b004 add sp, #16
51b2: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
scr_area.x1 = 0;
51b6: 2300 movs r3, #0
51b8: 9300 str r3, [sp, #0]
scr_area.x2 = lv_disp_get_hor_res(disp) - 1;
51ba: 4620 mov r0, r4
51bc: 4b25 ldr r3, [pc, #148] ; (5254 <_lv_inv_area+0xc4>)
51be: 4798 blx r3
51c0: 3801 subs r0, #1
scr_area.y2 = lv_disp_get_ver_res(disp) - 1;
51c2: 4b25 ldr r3, [pc, #148] ; (5258 <_lv_inv_area+0xc8>)
scr_area.x2 = lv_disp_get_hor_res(disp) - 1;
51c4: f8ad 0004 strh.w r0, [sp, #4]
scr_area.y2 = lv_disp_get_ver_res(disp) - 1;
51c8: 4620 mov r0, r4
51ca: 4798 blx r3
51cc: 3801 subs r0, #1
51ce: f8ad 0006 strh.w r0, [sp, #6]
suc = _lv_area_intersect(&com_area, area_p, &scr_area);
51d2: 4b22 ldr r3, [pc, #136] ; (525c <_lv_inv_area+0xcc>)
51d4: 466a mov r2, sp
51d6: 4629 mov r1, r5
51d8: a802 add r0, sp, #8
51da: 4798 blx r3
if(suc != false) {
51dc: 2800 cmp r0, #0
51de: d0e7 beq.n 51b0 <_lv_inv_area+0x20>
if(disp->driver.rounder_cb) disp->driver.rounder_cb(&disp->driver, &com_area);
51e0: 6923 ldr r3, [r4, #16]
51e2: b113 cbz r3, 51ea <_lv_inv_area+0x5a>
51e4: a902 add r1, sp, #8
51e6: 4620 mov r0, r4
51e8: 4798 blx r3
51ea: f104 0548 add.w r5, r4, #72 ; 0x48
if(_lv_area_is_in(&com_area, &disp->inv_areas[i], 0) != false) return;
51ee: f8df 8078 ldr.w r8, [pc, #120] ; 5268 <_lv_inv_area+0xd8>
{
51f2: 2600 movs r6, #0
51f4: 462f mov r7, r5
for(i = 0; i < disp->inv_p; i++) {
51f6: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168
51fa: b2b2 uxth r2, r6
51fc: f3c3 0009 ubfx r0, r3, #0, #10
5200: 4290 cmp r0, r2
5202: d81c bhi.n 523e <_lv_inv_area+0xae>
if(disp->inv_p < LV_INV_BUF_SIZE) {
5204: 281f cmp r0, #31
lv_area_copy(&disp->inv_areas[disp->inv_p], &com_area);
5206: bf9b ittet ls
5208: 3009 addls r0, #9
520a: f3c0 0009 ubfxls r0, r0, #0, #10
disp->inv_p = 0;
520e: f36f 0309 bfchi r3, #0, #10
lv_area_copy(&disp->inv_areas[disp->inv_p], &com_area);
5212: a902 addls r1, sp, #8
5214: bf91 iteee ls
5216: eb04 00c0 addls.w r0, r4, r0, lsl #3
disp->inv_p = 0;
521a: f8a4 3168 strhhi.w r3, [r4, #360] ; 0x168
lv_area_copy(&disp->inv_areas[disp->inv_p], &scr_area);
521e: 4669 movhi r1, sp
5220: 4638 movhi r0, r7
5222: 4a0f ldr r2, [pc, #60] ; (5260 <_lv_inv_area+0xd0>)
5224: 4790 blx r2
disp->inv_p++;
5226: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168
lv_task_set_prio(disp->refr_task, LV_REFR_TASK_PRIO);
522a: 6ae0 ldr r0, [r4, #44] ; 0x2c
disp->inv_p++;
522c: 1c5a adds r2, r3, #1
522e: f362 0309 bfi r3, r2, #0, #10
5232: f8a4 3168 strh.w r3, [r4, #360] ; 0x168
lv_task_set_prio(disp->refr_task, LV_REFR_TASK_PRIO);
5236: 2103 movs r1, #3
5238: 4b0a ldr r3, [pc, #40] ; (5264 <_lv_inv_area+0xd4>)
523a: 4798 blx r3
523c: e7b8 b.n 51b0 <_lv_inv_area+0x20>
if(_lv_area_is_in(&com_area, &disp->inv_areas[i], 0) != false) return;
523e: 4629 mov r1, r5
5240: 2200 movs r2, #0
5242: a802 add r0, sp, #8
5244: 47c0 blx r8
5246: 3601 adds r6, #1
5248: 3508 adds r5, #8
524a: 2800 cmp r0, #0
524c: d0d3 beq.n 51f6 <_lv_inv_area+0x66>
524e: e7af b.n 51b0 <_lv_inv_area+0x20>
5250: 0000db81 .word 0x0000db81
5254: 0000db8d .word 0x0000db8d
5258: 0000dbb1 .word 0x0000dbb1
525c: 0000e111 .word 0x0000e111
5260: 00005179 .word 0x00005179
5264: 0000fdfd .word 0x0000fdfd
5268: 0000e315 .word 0x0000e315
0000526c <_lv_refr_get_disp_refreshing>:
}
526c: 4b01 ldr r3, [pc, #4] ; (5274 <_lv_refr_get_disp_refreshing+0x8>)
526e: 6818 ldr r0, [r3, #0]
5270: 4770 bx lr
5272: bf00 nop
5274: 200030d0 .word 0x200030d0
00005278 <_lv_disp_refr_task>:
{
5278: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
527c: ed2d 8b02 vpush {d8}
uint32_t start = lv_tick_get();
5280: 4b82 ldr r3, [pc, #520] ; (548c <_lv_disp_refr_task+0x214>)
disp_refr = task->user_data;
5282: 4c83 ldr r4, [pc, #524] ; (5490 <_lv_disp_refr_task+0x218>)
{
5284: b08b sub sp, #44 ; 0x2c
5286: 4605 mov r5, r0
uint32_t start = lv_tick_get();
5288: 4798 blx r3
disp_refr = task->user_data;
528a: 68eb ldr r3, [r5, #12]
528c: 6023 str r3, [r4, #0]
lv_task_set_prio(task, LV_TASK_PRIO_OFF);
528e: 2100 movs r1, #0
5290: 4b80 ldr r3, [pc, #512] ; (5494 <_lv_disp_refr_task+0x21c>)
uint32_t start = lv_tick_get();
5292: ee08 0a90 vmov s17, r0
lv_task_set_prio(task, LV_TASK_PRIO_OFF);
5296: 4628 mov r0, r5
5298: 4798 blx r3
if(disp_refr->act_scr == NULL) {
529a: 6823 ldr r3, [r4, #0]
529c: 6bd9 ldr r1, [r3, #60] ; 0x3c
529e: 2900 cmp r1, #0
52a0: f040 808b bne.w 53ba <_lv_disp_refr_task+0x142>
disp_refr->inv_p = 0;
52a4: f8b3 2168 ldrh.w r2, [r3, #360] ; 0x168
52a8: f361 0209 bfi r2, r1, #0, #10
52ac: f8a3 2168 strh.w r2, [r3, #360] ; 0x168
}
52b0: b00b add sp, #44 ; 0x2c
52b2: ecbd 8b02 vpop {d8}
52b6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(disp_refr->inv_area_joined[join_in] != 0) continue;
52ba: 4433 add r3, r6
52bc: f893 5148 ldrb.w r5, [r3, #328] ; 0x148
52c0: 2d00 cmp r5, #0
52c2: d03c beq.n 533e <_lv_disp_refr_task+0xc6>
for(join_in = 0; join_in < disp_refr->inv_p; join_in++) {
52c4: 3601 adds r6, #1
52c6: 6823 ldr r3, [r4, #0]
52c8: f8b3 2168 ldrh.w r2, [r3, #360] ; 0x168
52cc: f3c2 0109 ubfx r1, r2, #0, #10
52d0: 428e cmp r6, r1
52d2: d3f2 bcc.n 52ba <_lv_disp_refr_task+0x42>
px_num = 0;
52d4: 2000 movs r0, #0
52d6: 6060 str r0, [r4, #4]
if(disp_refr->inv_p == 0) return;
52d8: 2900 cmp r1, #0
52da: d171 bne.n 53c0 <_lv_disp_refr_task+0x148>
if(disp_refr->inv_p != 0) {
52dc: 4f6c ldr r7, [pc, #432] ; (5490 <_lv_disp_refr_task+0x218>)
52de: 6838 ldr r0, [r7, #0]
52e0: f8b0 3168 ldrh.w r3, [r0, #360] ; 0x168
52e4: f3c3 0309 ubfx r3, r3, #0, #10
52e8: b303 cbz r3, 532c <_lv_disp_refr_task+0xb4>
if(lv_disp_is_true_double_buf(disp_refr) && disp_refr->driver.set_px_cb == NULL) {
52ea: 4b6b ldr r3, [pc, #428] ; (5498 <_lv_disp_refr_task+0x220>)
52ec: 4798 blx r3
52ee: 2800 cmp r0, #0
52f0: f040 81a1 bne.w 5636 <_lv_disp_refr_task+0x3be>
_lv_memset_00(disp_refr->inv_areas, sizeof(disp_refr->inv_areas));
52f4: 6820 ldr r0, [r4, #0]
52f6: 4d69 ldr r5, [pc, #420] ; (549c <_lv_disp_refr_task+0x224>)
52f8: f44f 7180 mov.w r1, #256 ; 0x100
52fc: 3048 adds r0, #72 ; 0x48
52fe: 47a8 blx r5
_lv_memset_00(disp_refr->inv_area_joined, sizeof(disp_refr->inv_area_joined));
5300: 6820 ldr r0, [r4, #0]
5302: 2120 movs r1, #32
5304: f500 70a4 add.w r0, r0, #328 ; 0x148
5308: 47a8 blx r5
disp_refr->inv_p = 0;
530a: 6823 ldr r3, [r4, #0]
530c: f8b3 2168 ldrh.w r2, [r3, #360] ; 0x168
5310: f36f 0209 bfc r2, #0, #10
5314: f8a3 2168 strh.w r2, [r3, #360] ; 0x168
elaps = lv_tick_elaps(start);
5318: ee18 0a90 vmov r0, s17
531c: 4b60 ldr r3, [pc, #384] ; (54a0 <_lv_disp_refr_task+0x228>)
531e: 4798 blx r3
5320: 4601 mov r1, r0
if(disp_refr->driver.monitor_cb) {
5322: 6820 ldr r0, [r4, #0]
5324: 6983 ldr r3, [r0, #24]
5326: 2b00 cmp r3, #0
5328: f040 81dd bne.w 56e6 <_lv_disp_refr_task+0x46e>
_lv_mem_buf_free_all();
532c: 4b5d ldr r3, [pc, #372] ; (54a4 <_lv_disp_refr_task+0x22c>)
532e: 4798 blx r3
_lv_font_clean_up_fmt_txt();
5330: 4b5d ldr r3, [pc, #372] ; (54a8 <_lv_disp_refr_task+0x230>)
}
5332: b00b add sp, #44 ; 0x2c
5334: ecbd 8b02 vpop {d8}
5338: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
_lv_font_clean_up_fmt_txt();
533c: 4718 bx r3
533e: ea4f 09c6 mov.w r9, r6, lsl #3
if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) +
5342: f8df a184 ldr.w sl, [pc, #388] ; 54c8 <_lv_disp_refr_task+0x250>
5346: f109 0948 add.w r9, r9, #72 ; 0x48
for(join_from = 0; join_from < disp_refr->inv_p; join_from++) {
534a: 6820 ldr r0, [r4, #0]
534c: f8b0 3168 ldrh.w r3, [r0, #360] ; 0x168
5350: f3c3 0309 ubfx r3, r3, #0, #10
5354: 429d cmp r5, r3
5356: d2b5 bcs.n 52c4 <_lv_disp_refr_task+0x4c>
if(disp_refr->inv_area_joined[join_from] != 0 || join_in == join_from) {
5358: 1943 adds r3, r0, r5
535a: f893 3148 ldrb.w r3, [r3, #328] ; 0x148
535e: bb53 cbnz r3, 53b6 <_lv_disp_refr_task+0x13e>
5360: 42ae cmp r6, r5
5362: d028 beq.n 53b6 <_lv_disp_refr_task+0x13e>
if(_lv_area_is_on(&disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]) == false) {
5364: ea4f 0bc5 mov.w fp, r5, lsl #3
5368: f10b 0b48 add.w fp, fp, #72 ; 0x48
536c: eb00 010b add.w r1, r0, fp
5370: 4448 add r0, r9
5372: 47b8 blx r7
5374: b1f8 cbz r0, 53b6 <_lv_disp_refr_task+0x13e>
_lv_area_join(&joined_area, &disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]);
5376: 6821 ldr r1, [r4, #0]
5378: 4b4c ldr r3, [pc, #304] ; (54ac <_lv_disp_refr_task+0x234>)
537a: eb01 020b add.w r2, r1, fp
537e: a808 add r0, sp, #32
5380: 4449 add r1, r9
5382: 4798 blx r3
if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) +
5384: a808 add r0, sp, #32
5386: 47d0 blx sl
5388: 4680 mov r8, r0
538a: 6820 ldr r0, [r4, #0]
538c: 4448 add r0, r9
538e: 47d0 blx sl
5390: 9003 str r0, [sp, #12]
lv_area_get_size(&disp_refr->inv_areas[join_from]))) {
5392: 6820 ldr r0, [r4, #0]
5394: 4458 add r0, fp
5396: 47d0 blx sl
if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) +
5398: 9b03 ldr r3, [sp, #12]
539a: 4418 add r0, r3
539c: 4580 cmp r8, r0
539e: d20a bcs.n 53b6 <_lv_disp_refr_task+0x13e>
lv_area_copy(&disp_refr->inv_areas[join_in], &joined_area);
53a0: f8d4 b000 ldr.w fp, [r4]
53a4: 4b42 ldr r3, [pc, #264] ; (54b0 <_lv_disp_refr_task+0x238>)
53a6: eb0b 0009 add.w r0, fp, r9
53aa: a908 add r1, sp, #32
disp_refr->inv_area_joined[join_from] = 1;
53ac: 44ab add fp, r5
lv_area_copy(&disp_refr->inv_areas[join_in], &joined_area);
53ae: 4798 blx r3
disp_refr->inv_area_joined[join_from] = 1;
53b0: 2301 movs r3, #1
53b2: f88b 3148 strb.w r3, [fp, #328] ; 0x148
for(join_from = 0; join_from < disp_refr->inv_p; join_from++) {
53b6: 3501 adds r5, #1
53b8: e7c7 b.n 534a <_lv_disp_refr_task+0xd2>
if(_lv_area_is_on(&disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]) == false) {
53ba: 4f3e ldr r7, [pc, #248] ; (54b4 <_lv_disp_refr_task+0x23c>)
for(join_in = 0; join_in < disp_refr->inv_p; join_in++) {
53bc: 2600 movs r6, #0
53be: e782 b.n 52c6 <_lv_disp_refr_task+0x4e>
for(i = disp_refr->inv_p - 1; i >= 0; i--) {
53c0: 1e4f subs r7, r1, #1
if(disp_refr->inv_area_joined[i] == 0) {
53c2: f503 72a4 add.w r2, r3, #328 ; 0x148
for(i = disp_refr->inv_p - 1; i >= 0; i--) {
53c6: 1c79 adds r1, r7, #1
53c8: d15b bne.n 5482 <_lv_disp_refr_task+0x20a>
int32_t last_i = 0;
53ca: 2700 movs r7, #0
disp_refr->driver.buffer->last_area = 0;
53cc: 685b ldr r3, [r3, #4]
for(i = 0; i < disp_refr->inv_p; i++) {
53ce: f8df 80c0 ldr.w r8, [pc, #192] ; 5490 <_lv_disp_refr_task+0x218>
disp_refr->driver.buffer->last_area = 0;
53d2: f893 2020 ldrb.w r2, [r3, #32]
53d6: f36f 0200 bfc r2, #0, #1
53da: f883 2020 strb.w r2, [r3, #32]
disp_refr->driver.buffer->last_part = 0;
53de: f893 2020 ldrb.w r2, [r3, #32]
53e2: f36f 0241 bfc r2, #1, #1
53e6: f883 2020 strb.w r2, [r3, #32]
for(i = 0; i < disp_refr->inv_p; i++) {
53ea: f04f 0b00 mov.w fp, #0
53ee: f8d8 5000 ldr.w r5, [r8]
53f2: f8b5 3168 ldrh.w r3, [r5, #360] ; 0x168
53f6: f3c3 0309 ubfx r3, r3, #0, #10
53fa: 459b cmp fp, r3
53fc: f6bf af6e bge.w 52dc <_lv_disp_refr_task+0x64>
if(disp_refr->inv_area_joined[i] == 0) {
5400: eb05 030b add.w r3, r5, fp
5404: f893 3148 ldrb.w r3, [r3, #328] ; 0x148
5408: 2b00 cmp r3, #0
540a: f040 80c6 bne.w 559a <_lv_disp_refr_task+0x322>
if(i == last_i) disp_refr->driver.buffer->last_area = 1;
540e: 686b ldr r3, [r5, #4]
5410: 45bb cmp fp, r7
5412: bf02 ittt eq
5414: f893 2020 ldrbeq.w r2, [r3, #32]
5418: f042 0201 orreq.w r2, r2, #1
541c: f883 2020 strbeq.w r2, [r3, #32]
disp_refr->driver.buffer->last_part = 0;
5420: f893 2020 ldrb.w r2, [r3, #32]
5424: ea4f 09cb mov.w r9, fp, lsl #3
5428: f36f 0241 bfc r2, #1, #1
542c: f883 2020 strb.w r2, [r3, #32]
lv_refr_area(&disp_refr->inv_areas[i]);
5430: f109 0348 add.w r3, r9, #72 ; 0x48
5434: 9304 str r3, [sp, #16]
5436: 18eb adds r3, r5, r3
5438: ee08 3a10 vmov s16, r3
if(lv_disp_is_true_double_buf(disp_refr)) {
543c: 4628 mov r0, r5
543e: 4b16 ldr r3, [pc, #88] ; (5498 <_lv_disp_refr_task+0x220>)
5440: 4798 blx r3
5442: 4b1d ldr r3, [pc, #116] ; (54b8 <_lv_disp_refr_task+0x240>)
5444: 2800 cmp r0, #0
5446: d041 beq.n 54cc <_lv_disp_refr_task+0x254>
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
5448: 6820 ldr r0, [r4, #0]
544a: 4798 blx r3
vdb->area.x1 = 0;
544c: 2600 movs r6, #0
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
544e: 4605 mov r5, r0
vdb->area.x2 = lv_disp_get_hor_res(disp_refr) - 1;
5450: 4b1a ldr r3, [pc, #104] ; (54bc <_lv_disp_refr_task+0x244>)
vdb->area.x1 = 0;
5452: 8206 strh r6, [r0, #16]
vdb->area.x2 = lv_disp_get_hor_res(disp_refr) - 1;
5454: 6820 ldr r0, [r4, #0]
5456: 4798 blx r3
5458: 3801 subs r0, #1
vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1;
545a: 4b19 ldr r3, [pc, #100] ; (54c0 <_lv_disp_refr_task+0x248>)
vdb->area.x2 = lv_disp_get_hor_res(disp_refr) - 1;
545c: 82a8 strh r0, [r5, #20]
vdb->area.y1 = 0;
545e: 826e strh r6, [r5, #18]
vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1;
5460: 6820 ldr r0, [r4, #0]
5462: 4798 blx r3
disp_refr->driver.buffer->last_part = 1;
5464: 6823 ldr r3, [r4, #0]
vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1;
5466: 3801 subs r0, #1
disp_refr->driver.buffer->last_part = 1;
5468: 685a ldr r2, [r3, #4]
vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1;
546a: 82e8 strh r0, [r5, #22]
disp_refr->driver.buffer->last_part = 1;
546c: f892 3020 ldrb.w r3, [r2, #32]
5470: f043 0302 orr.w r3, r3, #2
5474: f882 3020 strb.w r3, [r2, #32]
lv_refr_area_part(area_p);
5478: ee18 0a10 vmov r0, s16
547c: 4b11 ldr r3, [pc, #68] ; (54c4 <_lv_disp_refr_task+0x24c>)
547e: 4798 blx r3
5480: e07e b.n 5580 <_lv_disp_refr_task+0x308>
if(disp_refr->inv_area_joined[i] == 0) {
5482: 5dd1 ldrb r1, [r2, r7]
5484: 2900 cmp r1, #0
5486: d0a1 beq.n 53cc <_lv_disp_refr_task+0x154>
for(i = disp_refr->inv_p - 1; i >= 0; i--) {
5488: 3f01 subs r7, #1
548a: e79c b.n 53c6 <_lv_disp_refr_task+0x14e>
548c: 0000dccd .word 0x0000dccd
5490: 200030d0 .word 0x200030d0
5494: 0000fdfd .word 0x0000fdfd
5498: 0000dc79 .word 0x0000dc79
549c: 0000f2a9 .word 0x0000f2a9
54a0: 0000dce1 .word 0x0000dce1
54a4: 0000ee6d .word 0x0000ee6d
54a8: 0000d9c5 .word 0x0000d9c5
54ac: 0000e165 .word 0x0000e165
54b0: 00005179 .word 0x00005179
54b4: 0000e2d9 .word 0x0000e2d9
54b8: 0000dc65 .word 0x0000dc65
54bc: 0000db8d .word 0x0000db8d
54c0: 0000dbb1 .word 0x0000dbb1
54c4: 000050e1 .word 0x000050e1
54c8: 0000e0f5 .word 0x0000e0f5
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
54cc: 444d add r5, r9
54ce: 6820 ldr r0, [r4, #0]
54d0: 4798 blx r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
54d2: f8b5 904c ldrh.w r9, [r5, #76] ; 0x4c
54d6: f8b5 3048 ldrh.w r3, [r5, #72] ; 0x48
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
54da: f9b5 204e ldrsh.w r2, [r5, #78] ; 0x4e
54de: 9203 str r2, [sp, #12]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
54e0: f109 0901 add.w r9, r9, #1
54e4: eba9 0903 sub.w r9, r9, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
54e8: f8b5 304a ldrh.w r3, [r5, #74] ; 0x4a
54ec: f102 0a01 add.w sl, r2, #1
54f0: ebaa 0a03 sub.w sl, sl, r3
54f4: 4606 mov r6, r0
area_p->y2 >= lv_disp_get_ver_res(disp_refr) ? lv_disp_get_ver_res(disp_refr) - 1 : area_p->y2;
54f6: 4b7d ldr r3, [pc, #500] ; (56ec <_lv_disp_refr_task+0x474>)
54f8: 6820 ldr r0, [r4, #0]
54fa: 4798 blx r3
lv_coord_t y2 =
54fc: 9a03 ldr r2, [sp, #12]
54fe: 4b7b ldr r3, [pc, #492] ; (56ec <_lv_disp_refr_task+0x474>)
5500: 4282 cmp r2, r0
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
5502: fa0f f989 sxth.w r9, r9
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
5506: fa0f fa8a sxth.w sl, sl
550a: db49 blt.n 55a0 <_lv_disp_refr_task+0x328>
area_p->y2 >= lv_disp_get_ver_res(disp_refr) ? lv_disp_get_ver_res(disp_refr) - 1 : area_p->y2;
550c: 6820 ldr r0, [r4, #0]
550e: 4798 blx r3
5510: 3801 subs r0, #1
lv_coord_t y2 =
5512: b203 sxth r3, r0
int32_t max_row = (uint32_t)vdb->size / w;
5514: 68f2 ldr r2, [r6, #12]
5516: fbb2 f2f9 udiv r2, r2, r9
551a: 4552 cmp r2, sl
551c: bfa8 it ge
551e: 4652 movge r2, sl
5520: 9203 str r2, [sp, #12]
if(disp_refr->driver.rounder_cb) {
5522: f8d8 2000 ldr.w r2, [r8]
5526: 6912 ldr r2, [r2, #16]
5528: 2a00 cmp r2, #0
552a: d040 beq.n 55ae <_lv_disp_refr_task+0x336>
tmp.x1 = 0;
552c: 2200 movs r2, #0
lv_coord_t h_tmp = max_row;
552e: f9bd 900c ldrsh.w r9, [sp, #12]
tmp.x1 = 0;
5532: 9208 str r2, [sp, #32]
tmp.x2 = 0;
5534: f8ad 2024 strh.w r2, [sp, #36] ; 0x24
disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp);
5538: f8d8 0000 ldr.w r0, [r8]
553c: 9305 str r3, [sp, #20]
tmp.y2 = h_tmp - 1;
553e: 46ca mov sl, r9
5540: f109 39ff add.w r9, r9, #4294967295 ; 0xffffffff
5544: fa0f f989 sxth.w r9, r9
disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp);
5548: 6902 ldr r2, [r0, #16]
tmp.y2 = h_tmp - 1;
554a: f8ad 9026 strh.w r9, [sp, #38] ; 0x26
disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp);
554e: a908 add r1, sp, #32
5550: 4790 blx r2
5552: f9bd 1026 ldrsh.w r1, [sp, #38] ; 0x26
5556: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22
if(lv_area_get_height(&tmp) <= max_row) break;
555a: 9b03 ldr r3, [sp, #12]
555c: 3101 adds r1, #1
555e: 1a8a subs r2, r1, r2
5560: b212 sxth r2, r2
5562: 4293 cmp r3, r2
5564: 9b05 ldr r3, [sp, #20]
5566: da1e bge.n 55a6 <_lv_disp_refr_task+0x32e>
} while(h_tmp > 0);
5568: f1b9 0f00 cmp.w r9, #0
556c: dce4 bgt.n 5538 <_lv_disp_refr_task+0x2c0>
LV_LOG_WARN("Can't set VDB height using the round function. (Wrong round_cb or to "
556e: 4b60 ldr r3, [pc, #384] ; (56f0 <_lv_disp_refr_task+0x478>)
5570: 9300 str r3, [sp, #0]
5572: 4960 ldr r1, [pc, #384] ; (56f4 <_lv_disp_refr_task+0x47c>)
5574: 4b60 ldr r3, [pc, #384] ; (56f8 <_lv_disp_refr_task+0x480>)
5576: 4d61 ldr r5, [pc, #388] ; (56fc <_lv_disp_refr_task+0x484>)
5578: f44f 72cf mov.w r2, #414 ; 0x19e
557c: 2002 movs r0, #2
557e: 47a8 blx r5
if(disp_refr->driver.monitor_cb) px_num += lv_area_get_size(&disp_refr->inv_areas[i]);
5580: f8d8 0000 ldr.w r0, [r8]
5584: 6983 ldr r3, [r0, #24]
5586: b143 cbz r3, 559a <_lv_disp_refr_task+0x322>
5588: 9b04 ldr r3, [sp, #16]
558a: 4418 add r0, r3
558c: 4b5c ldr r3, [pc, #368] ; (5700 <_lv_disp_refr_task+0x488>)
558e: 4798 blx r3
5590: f8d8 3004 ldr.w r3, [r8, #4]
5594: 4418 add r0, r3
5596: f8c8 0004 str.w r0, [r8, #4]
for(i = 0; i < disp_refr->inv_p; i++) {
559a: f10b 0b01 add.w fp, fp, #1
559e: e726 b.n 53ee <_lv_disp_refr_task+0x176>
lv_coord_t y2 =
55a0: f9b5 304e ldrsh.w r3, [r5, #78] ; 0x4e
55a4: e7b6 b.n 5514 <_lv_disp_refr_task+0x29c>
if(h_tmp <= 0) {
55a6: f1ba 0f00 cmp.w sl, #0
55aa: dde0 ble.n 556e <_lv_disp_refr_task+0x2f6>
max_row = tmp.y2 + 1;
55ac: 9103 str r1, [sp, #12]
vdb->area.y2 = row + max_row - 1;
55ae: f8bd 100c ldrh.w r1, [sp, #12]
for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) {
55b2: f9b5 204a ldrsh.w r2, [r5, #74] ; 0x4a
55b6: 1e48 subs r0, r1, #1
lv_coord_t row_last = 0;
55b8: f04f 0900 mov.w r9, #0
55bc: 9005 str r0, [sp, #20]
for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) {
55be: 9803 ldr r0, [sp, #12]
55c0: 1810 adds r0, r2, r0
55c2: 3801 subs r0, #1
55c4: 4298 cmp r0, r3
55c6: dd0c ble.n 55e2 <_lv_disp_refr_task+0x36a>
if(y2 != row_last) {
55c8: 454b cmp r3, r9
55ca: d0d9 beq.n 5580 <_lv_disp_refr_task+0x308>
vdb->area.x1 = area_p->x1;
55cc: f9b5 0048 ldrsh.w r0, [r5, #72] ; 0x48
if(y2 == row_last) disp_refr->driver.buffer->last_part = 1;
55d0: 6821 ldr r1, [r4, #0]
vdb->area.x1 = area_p->x1;
55d2: 8230 strh r0, [r6, #16]
vdb->area.x2 = area_p->x2;
55d4: f9b5 004c ldrsh.w r0, [r5, #76] ; 0x4c
55d8: 82b0 strh r0, [r6, #20]
vdb->area.y1 = row;
55da: 8272 strh r2, [r6, #18]
vdb->area.y2 = y2;
55dc: 82f3 strh r3, [r6, #22]
disp_refr->driver.buffer->last_part = 1;
55de: 684a ldr r2, [r1, #4]
55e0: e744 b.n 546c <_lv_disp_refr_task+0x1f4>
vdb->area.x1 = area_p->x1;
55e2: f9b5 0048 ldrsh.w r0, [r5, #72] ; 0x48
55e6: 8230 strh r0, [r6, #16]
vdb->area.x2 = area_p->x2;
55e8: f9b5 004c ldrsh.w r0, [r5, #76] ; 0x4c
55ec: 82b0 strh r0, [r6, #20]
vdb->area.y1 = row;
55ee: 9805 ldr r0, [sp, #20]
55f0: 8272 strh r2, [r6, #18]
vdb->area.y2 = row + max_row - 1;
55f2: fa1f fa82 uxth.w sl, r2
55f6: fa10 f282 uxtah r2, r0, r2
55fa: b212 sxth r2, r2
if(vdb->area.y2 > y2) vdb->area.y2 = y2;
55fc: 4293 cmp r3, r2
55fe: 4699 mov r9, r3
5600: bfa8 it ge
5602: 4691 movge r9, r2
if(y2 == row_last) disp_refr->driver.buffer->last_part = 1;
5604: 4293 cmp r3, r2
5606: f8a6 9016 strh.w r9, [r6, #22]
560a: dc08 bgt.n 561e <_lv_disp_refr_task+0x3a6>
560c: f8d8 2000 ldr.w r2, [r8]
5610: 6850 ldr r0, [r2, #4]
5612: f890 2020 ldrb.w r2, [r0, #32]
5616: f042 0202 orr.w r2, r2, #2
561a: f880 2020 strb.w r2, [r0, #32]
lv_refr_area_part(area_p);
561e: 4a39 ldr r2, [pc, #228] ; (5704 <_lv_disp_refr_task+0x48c>)
5620: ee18 0a10 vmov r0, s16
5624: e9cd 3106 strd r3, r1, [sp, #24]
5628: 4790 blx r2
for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) {
562a: 9907 ldr r1, [sp, #28]
562c: 9b06 ldr r3, [sp, #24]
562e: 448a add sl, r1
5630: fa0f f28a sxth.w r2, sl
5634: e7c3 b.n 55be <_lv_disp_refr_task+0x346>
if(lv_disp_is_true_double_buf(disp_refr) && disp_refr->driver.set_px_cb == NULL) {
5636: 6838 ldr r0, [r7, #0]
5638: 6943 ldr r3, [r0, #20]
563a: 2b00 cmp r3, #0
563c: f47f ae5a bne.w 52f4 <_lv_disp_refr_task+0x7c>
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
5640: 4b31 ldr r3, [pc, #196] ; (5708 <_lv_disp_refr_task+0x490>)
5642: 4798 blx r3
lv_refr_vdb_flush();
5644: 4b31 ldr r3, [pc, #196] ; (570c <_lv_disp_refr_task+0x494>)
lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr);
5646: 4605 mov r5, r0
lv_refr_vdb_flush();
5648: 4798 blx r3
while(vdb->flushing)
564a: 69ab ldr r3, [r5, #24]
564c: 2b00 cmp r3, #0
564e: d1fc bne.n 564a <_lv_disp_refr_task+0x3d2>
uint8_t * buf_ina = (uint8_t *)vdb->buf_act == vdb->buf1 ? vdb->buf2 : vdb->buf1;
5650: f8d5 9000 ldr.w r9, [r5]
uint8_t * buf_act = (uint8_t *)vdb->buf_act;
5654: f8d5 b008 ldr.w fp, [r5, #8]
lv_coord_t hres = lv_disp_get_hor_res(disp_refr);
5658: 4b2d ldr r3, [pc, #180] ; (5710 <_lv_disp_refr_task+0x498>)
565a: 6838 ldr r0, [r7, #0]
uint8_t * buf_ina = (uint8_t *)vdb->buf_act == vdb->buf1 ? vdb->buf2 : vdb->buf1;
565c: 45d9 cmp r9, fp
565e: bf08 it eq
5660: f8d5 9004 ldreq.w r9, [r5, #4]
lv_coord_t hres = lv_disp_get_hor_res(disp_refr);
5664: 4798 blx r3
for(a = 0; a < disp_refr->inv_p; a++) {
5666: 2500 movs r5, #0
lv_coord_t hres = lv_disp_get_hor_res(disp_refr);
5668: 4680 mov r8, r0
start_offs += hres * sizeof(lv_color_t);
566a: 0043 lsls r3, r0, #1
for(a = 0; a < disp_refr->inv_p; a++) {
566c: 683a ldr r2, [r7, #0]
566e: f8b2 1168 ldrh.w r1, [r2, #360] ; 0x168
5672: b2a8 uxth r0, r5
5674: f3c1 0109 ubfx r1, r1, #0, #10
5678: 4281 cmp r1, r0
567a: f67f ae3b bls.w 52f4 <_lv_disp_refr_task+0x7c>
if(disp_refr->inv_area_joined[a] == 0) {
567e: 1951 adds r1, r2, r5
5680: f891 1148 ldrb.w r1, [r1, #328] ; 0x148
5684: b109 cbz r1, 568a <_lv_disp_refr_task+0x412>
for(a = 0; a < disp_refr->inv_p; a++) {
5686: 3501 adds r5, #1
5688: e7f0 b.n 566c <_lv_disp_refr_task+0x3f4>
uint32_t start_offs =
568a: eb02 02c5 add.w r2, r2, r5, lsl #3
(hres * disp_refr->inv_areas[a].y1 + disp_refr->inv_areas[a].x1) * sizeof(lv_color_t);
568e: f9b2 0048 ldrsh.w r0, [r2, #72] ; 0x48
5692: f9b2 604a ldrsh.w r6, [r2, #74] ; 0x4a
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
5696: f8b2 204c ldrh.w r2, [r2, #76] ; 0x4c
569a: 3201 adds r2, #1
569c: fb08 0106 mla r1, r8, r6, r0
56a0: 1a12 subs r2, r2, r0
for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) {
56a2: f105 0009 add.w r0, r5, #9
uint32_t line_length = lv_area_get_width(&disp_refr->inv_areas[a]) * sizeof(lv_color_t);
56a6: b212 sxth r2, r2
for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) {
56a8: 00c0 lsls r0, r0, #3
56aa: eb0b 0a41 add.w sl, fp, r1, lsl #1
uint32_t line_length = lv_area_get_width(&disp_refr->inv_areas[a]) * sizeof(lv_color_t);
56ae: ea4f 0c42 mov.w ip, r2, lsl #1
for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) {
56b2: eb09 0141 add.w r1, r9, r1, lsl #1
56b6: 9003 str r0, [sp, #12]
56b8: 6838 ldr r0, [r7, #0]
56ba: 9a03 ldr r2, [sp, #12]
56bc: 4410 add r0, r2
56be: f9b0 0006 ldrsh.w r0, [r0, #6]
56c2: 42b0 cmp r0, r6
56c4: dbdf blt.n 5686 <_lv_disp_refr_task+0x40e>
56c6: 9306 str r3, [sp, #24]
_lv_memcpy(buf_act + start_offs, buf_ina + start_offs, line_length);
56c8: 4662 mov r2, ip
56ca: 4b12 ldr r3, [pc, #72] ; (5714 <_lv_disp_refr_task+0x49c>)
56cc: 4650 mov r0, sl
56ce: e9cd 1c04 strd r1, ip, [sp, #16]
56d2: 4798 blx r3
for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) {
56d4: 9b06 ldr r3, [sp, #24]
56d6: 9904 ldr r1, [sp, #16]
56d8: f8dd c014 ldr.w ip, [sp, #20]
56dc: 3601 adds r6, #1
56de: b236 sxth r6, r6
56e0: 449a add sl, r3
56e2: 4419 add r1, r3
56e4: e7e8 b.n 56b8 <_lv_disp_refr_task+0x440>
disp_refr->driver.monitor_cb(&disp_refr->driver, elaps, px_num);
56e6: 6862 ldr r2, [r4, #4]
56e8: 4798 blx r3
56ea: e61f b.n 532c <_lv_disp_refr_task+0xb4>
56ec: 0000dbb1 .word 0x0000dbb1
56f0: 0002720d .word 0x0002720d
56f4: 000271dd .word 0x000271dd
56f8: 0002725d .word 0x0002725d
56fc: 0000eb79 .word 0x0000eb79
5700: 0000e0f5 .word 0x0000e0f5
5704: 000050e1 .word 0x000050e1
5708: 0000dc65 .word 0x0000dc65
570c: 00004e9d .word 0x00004e9d
5710: 0000db8d .word 0x0000db8d
5714: 0000eec1 .word 0x0000eec1
00005718 <lv_style_list_get_style>:
if(list->has_trans && list->skip_trans) id++;
5718: 7943 ldrb r3, [r0, #5]
571a: f003 0306 and.w r3, r3, #6
571e: 2b06 cmp r3, #6
5720: bf08 it eq
5722: 3101 addeq r1, #1
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
5724: 7903 ldrb r3, [r0, #4]
if(list->has_trans && list->skip_trans) id++;
5726: bf08 it eq
5728: b2c9 uxtbeq r1, r1
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
572a: 428b cmp r3, r1
return list->style_list[id];
572c: bf86 itte hi
572e: 6803 ldrhi r3, [r0, #0]
5730: f853 0021 ldrhi.w r0, [r3, r1, lsl #2]
if(list->style_cnt == 0 || id >= list->style_cnt) return NULL;
5734: 2000 movls r0, #0
}
5736: 4770 bx lr
00005738 <get_property_index.isra.0>:
* @param style pointer to a style
* @param prop a style property ORed with a state.
* E.g. `LV_STYLE_TEXT_FONT | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)`
* @return
*/
LV_ATTRIBUTE_FAST_MEM static inline int32_t get_property_index(const lv_style_t * style, lv_style_property_t prop)
5738: b5f0 push {r4, r5, r6, r7, lr}
{
LV_ASSERT_STYLE(style);
if(style->map == NULL) return -1;
573a: b378 cbz r0, 579c <get_property_index.isra.0+0x64>
uint8_t id_to_find = prop & 0xFF;
lv_style_attr_t attr;
attr.full = (prop >> 8) & 0xFF;
int16_t weight = -1;
int16_t id_guess = -1;
573c: f04f 35ff mov.w r5, #4294967295 ; 0xffffffff
uint8_t id_to_find = prop & 0xFF;
5740: b2cf uxtb r7, r1
attr.full = (prop >> 8) & 0xFF;
5742: ea4f 2c11 mov.w ip, r1, lsr #8
size_t i = 0;
5746: 2300 movs r3, #0
int16_t weight = -1;
5748: 462e mov r6, r5
if(attr_i.bits.state == attr.bits.state) {
return i;
}
/* Be sure the property not specifies other state than the requested.
* E.g. For HOVER+PRESS, HOVER only is OK, but HOVER+FOCUS not*/
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
574a: f3c1 2106 ubfx r1, r1, #8, #7
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
574e: 5cc2 ldrb r2, [r0, r3]
5750: 2aff cmp r2, #255 ; 0xff
5752: d101 bne.n 5758 <get_property_index.isra.0+0x20>
else i += sizeof(const void *);
i += sizeof(lv_style_property_t);
}
return id_guess;
5754: 4628 mov r0, r5
5756: e009 b.n 576c <get_property_index.isra.0+0x34>
if(style->map[i] == id_to_find) {
5758: 4297 cmp r7, r2
575a: d111 bne.n 5780 <get_property_index.isra.0+0x48>
attr_i.full = style->map[i + 1];
575c: 18c4 adds r4, r0, r3
575e: 7864 ldrb r4, [r4, #1]
if(attr_i.bits.state == attr.bits.state) {
5760: ea8c 0e04 eor.w lr, ip, r4
5764: f01e 0f7f tst.w lr, #127 ; 0x7f
5768: d101 bne.n 576e <get_property_index.isra.0+0x36>
return i;
576a: 4618 mov r0, r3
}
576c: bdf0 pop {r4, r5, r6, r7, pc}
else if((attr_i.bits.state & (~attr.bits.state)) == 0) {
576e: f004 047f and.w r4, r4, #127 ; 0x7f
5772: ea34 0e01 bics.w lr, r4, r1
5776: d103 bne.n 5780 <get_property_index.isra.0+0x48>
if(attr_i.bits.state > weight) {
5778: 42b4 cmp r4, r6
weight = attr_i.bits.state;
577a: bfc4 itt gt
577c: b226 sxthgt r6, r4
id_guess = i;
577e: b21d sxthgt r5, r3
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
5780: f002 020f and.w r2, r2, #15
5784: 2a08 cmp r2, #8
5786: d802 bhi.n 578e <get_property_index.isra.0+0x56>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
5788: 3302 adds r3, #2
i += sizeof(lv_style_property_t);
578a: 3302 adds r3, #2
578c: e7df b.n 574e <get_property_index.isra.0+0x16>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
578e: 2a0b cmp r2, #11
5790: d9fa bls.n 5788 <get_property_index.isra.0+0x50>
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
5792: 2a0d cmp r2, #13
5794: bf94 ite ls
5796: 3301 addls r3, #1
else i += sizeof(const void *);
5798: 3304 addhi r3, #4
579a: e7f6 b.n 578a <get_property_index.isra.0+0x52>
if(style->map == NULL) return -1;
579c: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
57a0: e7e4 b.n 576c <get_property_index.isra.0+0x34>
000057a2 <_lv_memcpy_small.isra.0>:
57a2: 3901 subs r1, #1
57a4: 4402 add r2, r0
*d8 = *s8;
57a6: f811 3f01 ldrb.w r3, [r1, #1]!
57aa: f800 3b01 strb.w r3, [r0], #1
while(len) {
57ae: 4290 cmp r0, r2
57b0: d1f9 bne.n 57a6 <_lv_memcpy_small.isra.0+0x4>
s8++;
len--;
}
return dst;
}
57b2: 4770 bx lr
000057b4 <lv_style_init>:
_lv_memset_00(style, sizeof(lv_style_t));
57b4: 4b01 ldr r3, [pc, #4] ; (57bc <lv_style_init+0x8>)
57b6: 2104 movs r1, #4
57b8: 4718 bx r3
57ba: bf00 nop
57bc: 0000f2a9 .word 0x0000f2a9
000057c0 <lv_style_list_init>:
_lv_memset_00(list, sizeof(lv_style_list_t));
57c0: 4b01 ldr r3, [pc, #4] ; (57c8 <lv_style_list_init+0x8>)
57c2: 2108 movs r1, #8
57c4: 4718 bx r3
57c6: bf00 nop
57c8: 0000f2a9 .word 0x0000f2a9
000057cc <_lv_style_list_remove_style>:
{
57cc: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
if(list->style_cnt == 0) return;
57ce: 7903 ldrb r3, [r0, #4]
{
57d0: 4604 mov r4, r0
57d2: 460e mov r6, r1
if(list->style_cnt == 0) return;
57d4: b14b cbz r3, 57ea <_lv_style_list_remove_style+0x1e>
if(list->style_list[i] == style) {
57d6: 6800 ldr r0, [r0, #0]
57d8: 2200 movs r2, #0
57da: f850 1022 ldr.w r1, [r0, r2, lsl #2]
57de: 42b1 cmp r1, r6
57e0: d03c beq.n 585c <_lv_style_list_remove_style+0x90>
for(i = 0; i < list->style_cnt; i++) {
57e2: 3201 adds r2, #1
57e4: b2d1 uxtb r1, r2
57e6: 428b cmp r3, r1
57e8: d8f7 bhi.n 57da <_lv_style_list_remove_style+0xe>
}
57ea: b003 add sp, #12
57ec: bdf0 pop {r4, r5, r6, r7, pc}
lv_style_t ** new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt - 1));
57ee: 3b01 subs r3, #1
57f0: 0099 lsls r1, r3, #2
57f2: 4b21 ldr r3, [pc, #132] ; (5878 <_lv_style_list_remove_style+0xac>)
57f4: 4798 blx r3
LV_ASSERT_MEM(new_classes);
57f6: 4b21 ldr r3, [pc, #132] ; (587c <_lv_style_list_remove_style+0xb0>)
lv_style_t ** new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt - 1));
57f8: 4605 mov r5, r0
LV_ASSERT_MEM(new_classes);
57fa: 4798 blx r3
57fc: 4607 mov r7, r0
57fe: b968 cbnz r0, 581c <_lv_style_list_remove_style+0x50>
5800: 4b1f ldr r3, [pc, #124] ; (5880 <_lv_style_list_remove_style+0xb4>)
5802: 4920 ldr r1, [pc, #128] ; (5884 <_lv_style_list_remove_style+0xb8>)
5804: 9300 str r3, [sp, #0]
5806: f44f 7282 mov.w r2, #260 ; 0x104
580a: 2003 movs r0, #3
580c: 4c1e ldr r4, [pc, #120] ; (5888 <_lv_style_list_remove_style+0xbc>)
580e: 47a0 blx r4
5810: 481e ldr r0, [pc, #120] ; (588c <_lv_style_list_remove_style+0xc0>)
5812: 491f ldr r1, [pc, #124] ; (5890 <_lv_style_list_remove_style+0xc4>)
5814: 462a mov r2, r5
5816: 463b mov r3, r7
5818: 4788 blx r1
581a: e7fe b.n 581a <_lv_style_list_remove_style+0x4e>
if(new_classes == NULL) {
581c: b14d cbz r5, 5832 <_lv_style_list_remove_style+0x66>
for(i = 0, j = 0; i < list->style_cnt; i++) {
581e: 2300 movs r3, #0
5820: 7921 ldrb r1, [r4, #4]
5822: 461a mov r2, r3
5824: b2d8 uxtb r0, r3
5826: 4288 cmp r0, r1
5828: d30d bcc.n 5846 <_lv_style_list_remove_style+0x7a>
list->style_cnt--;
582a: 3901 subs r1, #1
582c: 7121 strb r1, [r4, #4]
list->style_list = new_classes;
582e: 6025 str r5, [r4, #0]
5830: e7db b.n 57ea <_lv_style_list_remove_style+0x1e>
LV_LOG_WARN("lv_style_list_remove_style: couldn't reallocate class list");
5832: 4b18 ldr r3, [pc, #96] ; (5894 <_lv_style_list_remove_style+0xc8>)
5834: 9300 str r3, [sp, #0]
5836: 4913 ldr r1, [pc, #76] ; (5884 <_lv_style_list_remove_style+0xb8>)
5838: 4b11 ldr r3, [pc, #68] ; (5880 <_lv_style_list_remove_style+0xb4>)
583a: 4c13 ldr r4, [pc, #76] ; (5888 <_lv_style_list_remove_style+0xbc>)
583c: f44f 7283 mov.w r2, #262 ; 0x106
5840: 2002 movs r0, #2
5842: 47a0 blx r4
return;
5844: e7d1 b.n 57ea <_lv_style_list_remove_style+0x1e>
if(list->style_list[i] == style) continue;
5846: 6820 ldr r0, [r4, #0]
5848: f850 0023 ldr.w r0, [r0, r3, lsl #2]
584c: 42b0 cmp r0, r6
new_classes[j] = list->style_list[i];
584e: bf1e ittt ne
5850: f845 0022 strne.w r0, [r5, r2, lsl #2]
j++;
5854: 3201 addne r2, #1
5856: b2d2 uxtbne r2, r2
for(i = 0, j = 0; i < list->style_cnt; i++) {
5858: 3301 adds r3, #1
585a: e7e3 b.n 5824 <_lv_style_list_remove_style+0x58>
if(list->style_cnt == 1) {
585c: 2b01 cmp r3, #1
585e: d1c6 bne.n 57ee <_lv_style_list_remove_style+0x22>
lv_mem_free(list->style_list);
5860: 4b0d ldr r3, [pc, #52] ; (5898 <_lv_style_list_remove_style+0xcc>)
5862: 4798 blx r3
list->style_list = NULL;
5864: 2300 movs r3, #0
5866: 6023 str r3, [r4, #0]
list->style_cnt = 0;
5868: 88a3 ldrh r3, [r4, #4]
586a: f423 73ff bic.w r3, r3, #510 ; 0x1fe
586e: f023 0301 bic.w r3, r3, #1
5872: 80a3 strh r3, [r4, #4]
return;
5874: e7b9 b.n 57ea <_lv_style_list_remove_style+0x1e>
5876: bf00 nop
5878: 0000f0a5 .word 0x0000f0a5
587c: 00001a65 .word 0x00001a65
5880: 00027373 .word 0x00027373
5884: 0002726a .word 0x0002726a
5888: 0000eb79 .word 0x0000eb79
588c: 00026842 .word 0x00026842
5890: 00001a6d .word 0x00001a6d
5894: 0002729b .word 0x0002729b
5898: 0000ed75 .word 0x0000ed75
0000589c <_lv_style_list_add_style>:
{
589c: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
58a0: 460f mov r7, r1
if(list == NULL) return;
58a2: 4605 mov r5, r0
58a4: b338 cbz r0, 58f6 <_lv_style_list_add_style+0x5a>
_lv_style_list_remove_style(list, style);
58a6: 4b29 ldr r3, [pc, #164] ; (594c <_lv_style_list_add_style+0xb0>)
58a8: 4798 blx r3
if(list->style_cnt == 0) new_classes = lv_mem_alloc(sizeof(lv_style_t *));
58aa: 7929 ldrb r1, [r5, #4]
58ac: b9a1 cbnz r1, 58d8 <_lv_style_list_add_style+0x3c>
58ae: 4b28 ldr r3, [pc, #160] ; (5950 <_lv_style_list_add_style+0xb4>)
58b0: 2004 movs r0, #4
58b2: 4798 blx r3
LV_ASSERT_MEM(new_classes);
58b4: 4b27 ldr r3, [pc, #156] ; (5954 <_lv_style_list_add_style+0xb8>)
else new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt + 1));
58b6: 4604 mov r4, r0
LV_ASSERT_MEM(new_classes);
58b8: 4798 blx r3
58ba: 4606 mov r6, r0
58bc: b990 cbnz r0, 58e4 <_lv_style_list_add_style+0x48>
58be: 4b26 ldr r3, [pc, #152] ; (5958 <_lv_style_list_add_style+0xbc>)
58c0: 4926 ldr r1, [pc, #152] ; (595c <_lv_style_list_add_style+0xc0>)
58c2: 9300 str r3, [sp, #0]
58c4: 22d0 movs r2, #208 ; 0xd0
58c6: 2003 movs r0, #3
58c8: 4d25 ldr r5, [pc, #148] ; (5960 <_lv_style_list_add_style+0xc4>)
58ca: 47a8 blx r5
58cc: 4825 ldr r0, [pc, #148] ; (5964 <_lv_style_list_add_style+0xc8>)
58ce: 4926 ldr r1, [pc, #152] ; (5968 <_lv_style_list_add_style+0xcc>)
58d0: 4622 mov r2, r4
58d2: 4633 mov r3, r6
58d4: 4788 blx r1
58d6: e7fe b.n 58d6 <_lv_style_list_add_style+0x3a>
else new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt + 1));
58d8: 3101 adds r1, #1
58da: 6828 ldr r0, [r5, #0]
58dc: 4b23 ldr r3, [pc, #140] ; (596c <_lv_style_list_add_style+0xd0>)
58de: 0089 lsls r1, r1, #2
58e0: 4798 blx r3
58e2: e7e7 b.n 58b4 <_lv_style_list_add_style+0x18>
if(new_classes == NULL) {
58e4: b954 cbnz r4, 58fc <_lv_style_list_add_style+0x60>
LV_LOG_WARN("lv_style_list_add_style: couldn't add the class");
58e6: 4b22 ldr r3, [pc, #136] ; (5970 <_lv_style_list_add_style+0xd4>)
58e8: 9300 str r3, [sp, #0]
58ea: 491c ldr r1, [pc, #112] ; (595c <_lv_style_list_add_style+0xc0>)
58ec: 4b1a ldr r3, [pc, #104] ; (5958 <_lv_style_list_add_style+0xbc>)
58ee: 4c1c ldr r4, [pc, #112] ; (5960 <_lv_style_list_add_style+0xc4>)
58f0: 22d2 movs r2, #210 ; 0xd2
58f2: 2002 movs r0, #2
58f4: 47a0 blx r4
}
58f6: b002 add sp, #8
58f8: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
if(list->has_trans) first_style++;
58fc: 796b ldrb r3, [r5, #5]
for(i = list->style_cnt; i > first_style; i--) {
58fe: 792e ldrb r6, [r5, #4]
uint8_t first_style = 0;
5900: f3c3 0840 ubfx r8, r3, #1, #1
if(list->has_local) first_style++;
5904: 07db lsls r3, r3, #31
5906: bf48 it mi
5908: f108 0801 addmi.w r8, r8, #1
new_classes[i] = new_classes[i - 1];
590c: eba6 0208 sub.w r2, r6, r8
5910: b2d2 uxtb r2, r2
5912: 4546 cmp r6, r8
5914: f1c2 0001 rsb r0, r2, #1
5918: f106 4180 add.w r1, r6, #1073741824 ; 0x40000000
591c: ea4f 0080 mov.w r0, r0, lsl #2
5920: f101 31ff add.w r1, r1, #4294967295 ; 0xffffffff
5924: bf38 it cc
5926: 2004 movcc r0, #4
5928: eb00 0181 add.w r1, r0, r1, lsl #2
592c: eb00 0086 add.w r0, r0, r6, lsl #2
5930: ea4f 0282 mov.w r2, r2, lsl #2
5934: 4b0f ldr r3, [pc, #60] ; (5974 <_lv_style_list_add_style+0xd8>)
5936: bf38 it cc
5938: 2200 movcc r2, #0
593a: 4421 add r1, r4
593c: 4420 add r0, r4
list->style_cnt++;
593e: 3601 adds r6, #1
new_classes[i] = new_classes[i - 1];
5940: 4798 blx r3
new_classes[first_style] = style;
5942: f844 7028 str.w r7, [r4, r8, lsl #2]
list->style_cnt++;
5946: 712e strb r6, [r5, #4]
list->style_list = new_classes;
5948: 602c str r4, [r5, #0]
594a: e7d4 b.n 58f6 <_lv_style_list_add_style+0x5a>
594c: 000057cd .word 0x000057cd
5950: 0000ecbd .word 0x0000ecbd
5954: 00001a65 .word 0x00001a65
5958: 0002738f .word 0x0002738f
595c: 0002726a .word 0x0002726a
5960: 0000eb79 .word 0x0000eb79
5964: 00026842 .word 0x00026842
5968: 00001a6d .word 0x00001a6d
596c: 0000f0a5 .word 0x0000f0a5
5970: 000272d6 .word 0x000272d6
5974: 00016e59 .word 0x00016e59
00005978 <get_alloc_local_style>:
*/
static lv_style_t * get_alloc_local_style(lv_style_list_t * list)
{
LV_ASSERT_STYLE_LIST(list);
if(list->has_local) return lv_style_list_get_style(list, 0);
5978: 7943 ldrb r3, [r0, #5]
597a: 07db lsls r3, r3, #31
{
597c: b573 push {r0, r1, r4, r5, r6, lr}
597e: 4605 mov r5, r0
if(list->has_local) return lv_style_list_get_style(list, 0);
5980: d505 bpl.n 598e <get_alloc_local_style+0x16>
5982: 4b1a ldr r3, [pc, #104] ; (59ec <get_alloc_local_style+0x74>)
5984: 2100 movs r1, #0
/*Add the local style to the furst place*/
_lv_style_list_add_style(list, local_style);
list->has_local = 1;
return local_style;
}
5986: b002 add sp, #8
5988: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
if(list->has_local) return lv_style_list_get_style(list, 0);
598c: 4718 bx r3
lv_style_t * local_style = lv_mem_alloc(sizeof(lv_style_t));
598e: 4b18 ldr r3, [pc, #96] ; (59f0 <get_alloc_local_style+0x78>)
5990: 2004 movs r0, #4
5992: 4798 blx r3
LV_ASSERT_MEM(local_style);
5994: 4b17 ldr r3, [pc, #92] ; (59f4 <get_alloc_local_style+0x7c>)
lv_style_t * local_style = lv_mem_alloc(sizeof(lv_style_t));
5996: 4604 mov r4, r0
LV_ASSERT_MEM(local_style);
5998: 4798 blx r3
599a: 4606 mov r6, r0
599c: b968 cbnz r0, 59ba <get_alloc_local_style+0x42>
599e: 4b16 ldr r3, [pc, #88] ; (59f8 <get_alloc_local_style+0x80>)
59a0: 4916 ldr r1, [pc, #88] ; (59fc <get_alloc_local_style+0x84>)
59a2: 9300 str r3, [sp, #0]
59a4: f240 4235 movw r2, #1077 ; 0x435
59a8: 2003 movs r0, #3
59aa: 4d15 ldr r5, [pc, #84] ; (5a00 <get_alloc_local_style+0x88>)
59ac: 47a8 blx r5
59ae: 4815 ldr r0, [pc, #84] ; (5a04 <get_alloc_local_style+0x8c>)
59b0: 4915 ldr r1, [pc, #84] ; (5a08 <get_alloc_local_style+0x90>)
59b2: 4622 mov r2, r4
59b4: 4633 mov r3, r6
59b6: 4788 blx r1
59b8: e7fe b.n 59b8 <get_alloc_local_style+0x40>
if(local_style == NULL) {
59ba: b95c cbnz r4, 59d4 <get_alloc_local_style+0x5c>
LV_LOG_WARN("get_local_style: couldn't create local style");
59bc: 4b13 ldr r3, [pc, #76] ; (5a0c <get_alloc_local_style+0x94>)
59be: 9300 str r3, [sp, #0]
59c0: 490e ldr r1, [pc, #56] ; (59fc <get_alloc_local_style+0x84>)
59c2: 4b0d ldr r3, [pc, #52] ; (59f8 <get_alloc_local_style+0x80>)
59c4: 4d0e ldr r5, [pc, #56] ; (5a00 <get_alloc_local_style+0x88>)
59c6: f240 4237 movw r2, #1079 ; 0x437
59ca: 2002 movs r0, #2
59cc: 47a8 blx r5
}
59ce: 4620 mov r0, r4
59d0: b002 add sp, #8
59d2: bd70 pop {r4, r5, r6, pc}
lv_style_init(local_style);
59d4: 4b0e ldr r3, [pc, #56] ; (5a10 <get_alloc_local_style+0x98>)
59d6: 4620 mov r0, r4
59d8: 4798 blx r3
_lv_style_list_add_style(list, local_style);
59da: 4b0e ldr r3, [pc, #56] ; (5a14 <get_alloc_local_style+0x9c>)
59dc: 4621 mov r1, r4
59de: 4628 mov r0, r5
59e0: 4798 blx r3
list->has_local = 1;
59e2: 796b ldrb r3, [r5, #5]
59e4: f043 0301 orr.w r3, r3, #1
59e8: 716b strb r3, [r5, #5]
return local_style;
59ea: e7f0 b.n 59ce <get_alloc_local_style+0x56>
59ec: 00005719 .word 0x00005719
59f0: 0000ecbd .word 0x0000ecbd
59f4: 00001a65 .word 0x00001a65
59f8: 000273a8 .word 0x000273a8
59fc: 0002726a .word 0x0002726a
5a00: 0000eb79 .word 0x0000eb79
5a04: 00026842 .word 0x00026842
5a08: 00001a6d .word 0x00001a6d
5a0c: 00027306 .word 0x00027306
5a10: 000057b5 .word 0x000057b5
5a14: 0000589d .word 0x0000589d
00005a18 <lv_style_reset>:
{
5a18: b510 push {r4, lr}
lv_mem_free(style->map);
5a1a: 4b03 ldr r3, [pc, #12] ; (5a28 <lv_style_reset+0x10>)
{
5a1c: 4604 mov r4, r0
lv_mem_free(style->map);
5a1e: 6800 ldr r0, [r0, #0]
5a20: 4798 blx r3
style->map = NULL;
5a22: 2300 movs r3, #0
5a24: 6023 str r3, [r4, #0]
}
5a26: bd10 pop {r4, pc}
5a28: 0000ed75 .word 0x0000ed75
00005a2c <_lv_style_get_mem_size>:
if(style->map == NULL) return 0;
5a2c: 6800 ldr r0, [r0, #0]
5a2e: b128 cbz r0, 5a3c <_lv_style_get_mem_size+0x10>
size_t i = 0;
5a30: 2300 movs r3, #0
while(style->map[i] != _LV_STYLE_CLOSEING_PROP) {
5a32: 5cc2 ldrb r2, [r0, r3]
5a34: 2aff cmp r2, #255 ; 0xff
5a36: d102 bne.n 5a3e <_lv_style_get_mem_size+0x12>
return i + sizeof(lv_style_property_t);
5a38: 3302 adds r3, #2
5a3a: b298 uxth r0, r3
}
5a3c: 4770 bx lr
if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t);
5a3e: f002 020f and.w r2, r2, #15
5a42: 2a08 cmp r2, #8
5a44: d802 bhi.n 5a4c <_lv_style_get_mem_size+0x20>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
5a46: 3302 adds r3, #2
i += sizeof(lv_style_property_t);
5a48: 3302 adds r3, #2
5a4a: e7f2 b.n 5a32 <_lv_style_get_mem_size+0x6>
else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t);
5a4c: 2a0b cmp r2, #11
5a4e: d9fa bls.n 5a46 <_lv_style_get_mem_size+0x1a>
else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t);
5a50: 2a0d cmp r2, #13
5a52: bf94 ite ls
5a54: 3301 addls r3, #1
else i += sizeof(const void *);
5a56: 3304 addhi r3, #4
5a58: e7f6 b.n 5a48 <_lv_style_get_mem_size+0x1c>
...
00005a5c <lv_style_copy>:
{
5a5c: b537 push {r0, r1, r2, r4, r5, lr}
5a5e: 4605 mov r5, r0
if(style_src == NULL) return;
5a60: 460c mov r4, r1
5a62: b179 cbz r1, 5a84 <lv_style_copy+0x28>
if(style_src->map == NULL) return;
5a64: 680b ldr r3, [r1, #0]
5a66: b16b cbz r3, 5a84 <lv_style_copy+0x28>
uint16_t size = _lv_style_get_mem_size(style_src);
5a68: 4608 mov r0, r1
5a6a: 4b07 ldr r3, [pc, #28] ; (5a88 <lv_style_copy+0x2c>)
5a6c: 4798 blx r3
style_dest->map = lv_mem_alloc(size);
5a6e: 4b07 ldr r3, [pc, #28] ; (5a8c <lv_style_copy+0x30>)
uint16_t size = _lv_style_get_mem_size(style_src);
5a70: 9001 str r0, [sp, #4]
style_dest->map = lv_mem_alloc(size);
5a72: 4798 blx r3
5a74: 6028 str r0, [r5, #0]
_lv_memcpy(style_dest->map, style_src->map, size);
5a76: 9a01 ldr r2, [sp, #4]
5a78: 6821 ldr r1, [r4, #0]
5a7a: 4b05 ldr r3, [pc, #20] ; (5a90 <lv_style_copy+0x34>)
}
5a7c: b003 add sp, #12
5a7e: e8bd 4030 ldmia.w sp!, {r4, r5, lr}
_lv_memcpy(style_dest->map, style_src->map, size);
5a82: 4718 bx r3
}
5a84: b003 add sp, #12
5a86: bd30 pop {r4, r5, pc}
5a88: 00005a2d .word 0x00005a2d
5a8c: 0000ecbd .word 0x0000ecbd
5a90: 0000eec1 .word 0x0000eec1
00005a94 <lv_style_remove_prop>:
{
5a94: b5f8 push {r3, r4, r5, r6, r7, lr}
5a96: 460f mov r7, r1
if(style == NULL) return false;
5a98: 4604 mov r4, r0
5a9a: b330 cbz r0, 5aea <lv_style_remove_prop+0x56>
int32_t id = get_property_index(style, prop);
5a9c: 6806 ldr r6, [r0, #0]
5a9e: 4b14 ldr r3, [pc, #80] ; (5af0 <lv_style_remove_prop+0x5c>)
5aa0: 4630 mov r0, r6
5aa2: 4798 blx r3
if(id >= 0) {
5aa4: 1e05 subs r5, r0, #0
5aa6: db20 blt.n 5aea <lv_style_remove_prop+0x56>
attr_found.full = *(style->map + id + 1);
5aa8: 442e add r6, r5
if(attr_found.bits.state == attr_goal.bits.state) {
5aaa: 7873 ldrb r3, [r6, #1]
5aac: ea83 2317 eor.w r3, r3, r7, lsr #8
5ab0: 065b lsls r3, r3, #25
5ab2: d11a bne.n 5aea <lv_style_remove_prop+0x56>
uint32_t map_size = _lv_style_get_mem_size(style);
5ab4: 4b0f ldr r3, [pc, #60] ; (5af4 <lv_style_remove_prop+0x60>)
5ab6: 4620 mov r0, r4
5ab8: f007 010f and.w r1, r7, #15
5abc: 4798 blx r3
else if((prop & 0xF) < LV_STYLE_ID_OPA) prop_size += sizeof(lv_color_t);
5abe: 290b cmp r1, #11
5ac0: d90c bls.n 5adc <lv_style_remove_prop+0x48>
else prop_size += sizeof(const void *);
5ac2: 290e cmp r1, #14
5ac4: bf34 ite cc
5ac6: 2303 movcc r3, #3
5ac8: 2306 movcs r3, #6
for(i = id; i < map_size - prop_size; i++) {
5aca: 1ac1 subs r1, r0, r3
5acc: 42a9 cmp r1, r5
style->map[i] = style->map[i + prop_size];
5ace: 6820 ldr r0, [r4, #0]
for(i = id; i < map_size - prop_size; i++) {
5ad0: d806 bhi.n 5ae0 <lv_style_remove_prop+0x4c>
style->map = lv_mem_realloc(style->map, map_size - prop_size);
5ad2: 4b09 ldr r3, [pc, #36] ; (5af8 <lv_style_remove_prop+0x64>)
5ad4: 4798 blx r3
5ad6: 6020 str r0, [r4, #0]
return true;
5ad8: 2001 movs r0, #1
}
5ada: bdf8 pop {r3, r4, r5, r6, r7, pc}
else if((prop & 0xF) < LV_STYLE_ID_OPA) prop_size += sizeof(lv_color_t);
5adc: 2304 movs r3, #4
5ade: e7f4 b.n 5aca <lv_style_remove_prop+0x36>
style->map[i] = style->map[i + prop_size];
5ae0: 1942 adds r2, r0, r5
5ae2: 5cd2 ldrb r2, [r2, r3]
5ae4: 5542 strb r2, [r0, r5]
for(i = id; i < map_size - prop_size; i++) {
5ae6: 3501 adds r5, #1
5ae8: e7f0 b.n 5acc <lv_style_remove_prop+0x38>
if(style == NULL) return false;
5aea: 2000 movs r0, #0
5aec: e7f5 b.n 5ada <lv_style_remove_prop+0x46>
5aee: bf00 nop
5af0: 00005739 .word 0x00005739
5af4: 00005a2d .word 0x00005a2d
5af8: 0000f0a5 .word 0x0000f0a5
00005afc <_lv_style_set_int>:
{
5afc: b570 push {r4, r5, r6, lr}
5afe: 6806 ldr r6, [r0, #0]
int32_t id = get_property_index(style, prop);
5b00: 4b28 ldr r3, [pc, #160] ; (5ba4 <_lv_style_set_int+0xa8>)
{
5b02: b086 sub sp, #24
5b04: 4605 mov r5, r0
int32_t id = get_property_index(style, prop);
5b06: 4630 mov r0, r6
{
5b08: f8ad 100e strh.w r1, [sp, #14]
5b0c: f8ad 200c strh.w r2, [sp, #12]
int32_t id = get_property_index(style, prop);
5b10: 460c mov r4, r1
5b12: 4798 blx r3
if(id >= 0) {
5b14: 2800 cmp r0, #0
5b16: db0d blt.n 5b34 <_lv_style_set_int+0x38>
attr_found.full = *(style->map + id + 1);
5b18: 1833 adds r3, r6, r0
if(attr_found.bits.state == attr_goal.bits.state) {
5b1a: 785b ldrb r3, [r3, #1]
5b1c: ea83 2314 eor.w r3, r3, r4, lsr #8
5b20: 065b lsls r3, r3, #25
5b22: d107 bne.n 5b34 <_lv_style_set_int+0x38>
_lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &value, sizeof(lv_style_int_t));
5b24: 3002 adds r0, #2
5b26: 4b20 ldr r3, [pc, #128] ; (5ba8 <_lv_style_set_int+0xac>)
5b28: 2202 movs r2, #2
5b2a: a903 add r1, sp, #12
5b2c: 4430 add r0, r6
5b2e: 4798 blx r3
}
5b30: b006 add sp, #24
5b32: bd70 pop {r4, r5, r6, pc}
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
5b34: 23ff movs r3, #255 ; 0xff
5b36: f8ad 3016 strh.w r3, [sp, #22]
uint16_t size = _lv_style_get_mem_size(style);
5b3a: 4628 mov r0, r5
5b3c: 4b1b ldr r3, [pc, #108] ; (5bac <_lv_style_set_int+0xb0>)
5b3e: 4798 blx r3
if(size == 0) size += end_mark_size;
5b40: 1e04 subs r4, r0, #0
5b42: bf08 it eq
5b44: 2402 moveq r4, #2
size += sizeof(lv_style_property_t) + sizeof(lv_style_int_t);
5b46: 3404 adds r4, #4
style->map = lv_mem_realloc(style->map, size);
5b48: b2a4 uxth r4, r4
5b4a: 4b19 ldr r3, [pc, #100] ; (5bb0 <_lv_style_set_int+0xb4>)
5b4c: 4621 mov r1, r4
5b4e: 4630 mov r0, r6
5b50: 4798 blx r3
LV_ASSERT_MEM(style->map);
5b52: 4b18 ldr r3, [pc, #96] ; (5bb4 <_lv_style_set_int+0xb8>)
style->map = lv_mem_realloc(style->map, size);
5b54: 6028 str r0, [r5, #0]
LV_ASSERT_MEM(style->map);
5b56: 4798 blx r3
5b58: 4606 mov r6, r0
5b5a: b968 cbnz r0, 5b78 <_lv_style_set_int+0x7c>
5b5c: 4b16 ldr r3, [pc, #88] ; (5bb8 <_lv_style_set_int+0xbc>)
5b5e: 4917 ldr r1, [pc, #92] ; (5bbc <_lv_style_set_int+0xc0>)
5b60: 9300 str r3, [sp, #0]
5b62: f44f 72c3 mov.w r2, #390 ; 0x186
5b66: 2003 movs r0, #3
5b68: 4c15 ldr r4, [pc, #84] ; (5bc0 <_lv_style_set_int+0xc4>)
5b6a: 47a0 blx r4
5b6c: 682a ldr r2, [r5, #0]
5b6e: 4815 ldr r0, [pc, #84] ; (5bc4 <_lv_style_set_int+0xc8>)
5b70: 4915 ldr r1, [pc, #84] ; (5bc8 <_lv_style_set_int+0xcc>)
5b72: 4633 mov r3, r6
5b74: 4788 blx r1
5b76: e7fe b.n 5b76 <_lv_style_set_int+0x7a>
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
5b78: 6828 ldr r0, [r5, #0]
5b7a: 4e0b ldr r6, [pc, #44] ; (5ba8 <_lv_style_set_int+0xac>)
5b7c: 1fa3 subs r3, r4, #6
5b7e: f10d 010e add.w r1, sp, #14
5b82: 4418 add r0, r3
5b84: 2202 movs r2, #2
5b86: 47b0 blx r6
_lv_memcpy_small(style->map + size - sizeof(lv_style_int_t) - end_mark_size, &value, sizeof(lv_style_int_t));
5b88: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
5b8a: 1f23 subs r3, r4, #4
_lv_memcpy_small(style->map + size - sizeof(lv_style_int_t) - end_mark_size, &value, sizeof(lv_style_int_t));
5b8c: a903 add r1, sp, #12
5b8e: 4418 add r0, r3
5b90: 2202 movs r2, #2
5b92: 47b0 blx r6
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
5b94: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - sizeof(lv_style_int_t) - end_mark_size, &value, sizeof(lv_style_int_t));
5b96: 3c02 subs r4, #2
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
5b98: 2202 movs r2, #2
5b9a: f10d 0116 add.w r1, sp, #22
5b9e: 4420 add r0, r4
5ba0: 47b0 blx r6
5ba2: e7c5 b.n 5b30 <_lv_style_set_int+0x34>
5ba4: 00005739 .word 0x00005739
5ba8: 000057a3 .word 0x000057a3
5bac: 00005a2d .word 0x00005a2d
5bb0: 0000f0a5 .word 0x0000f0a5
5bb4: 00001a65 .word 0x00001a65
5bb8: 000273be .word 0x000273be
5bbc: 0002726a .word 0x0002726a
5bc0: 0000eb79 .word 0x0000eb79
5bc4: 00026842 .word 0x00026842
5bc8: 00001a6d .word 0x00001a6d
00005bcc <_lv_style_set_color>:
{
5bcc: b570 push {r4, r5, r6, lr}
5bce: 6806 ldr r6, [r0, #0]
int32_t id = get_property_index(style, prop);
5bd0: 4b28 ldr r3, [pc, #160] ; (5c74 <_lv_style_set_color+0xa8>)
{
5bd2: b086 sub sp, #24
5bd4: 4605 mov r5, r0
int32_t id = get_property_index(style, prop);
5bd6: 4630 mov r0, r6
{
5bd8: f8ad 200c strh.w r2, [sp, #12]
5bdc: f8ad 100e strh.w r1, [sp, #14]
int32_t id = get_property_index(style, prop);
5be0: 460c mov r4, r1
5be2: 4798 blx r3
if(id >= 0) {
5be4: 2800 cmp r0, #0
5be6: db0d blt.n 5c04 <_lv_style_set_color+0x38>
attr_found.full = *(style->map + id + 1);
5be8: 1833 adds r3, r6, r0
if(attr_found.bits.state == attr_goal.bits.state) {
5bea: 785b ldrb r3, [r3, #1]
5bec: ea83 2314 eor.w r3, r3, r4, lsr #8
5bf0: 065b lsls r3, r3, #25
5bf2: d107 bne.n 5c04 <_lv_style_set_color+0x38>
_lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &color, sizeof(lv_color_t));
5bf4: 3002 adds r0, #2
5bf6: 4b20 ldr r3, [pc, #128] ; (5c78 <_lv_style_set_color+0xac>)
5bf8: 2202 movs r2, #2
5bfa: a903 add r1, sp, #12
5bfc: 4430 add r0, r6
5bfe: 4798 blx r3
}
5c00: b006 add sp, #24
5c02: bd70 pop {r4, r5, r6, pc}
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
5c04: 23ff movs r3, #255 ; 0xff
5c06: f8ad 3016 strh.w r3, [sp, #22]
uint16_t size = _lv_style_get_mem_size(style);
5c0a: 4628 mov r0, r5
5c0c: 4b1b ldr r3, [pc, #108] ; (5c7c <_lv_style_set_color+0xb0>)
5c0e: 4798 blx r3
if(size == 0) size += end_mark_size;
5c10: 1e04 subs r4, r0, #0
5c12: bf08 it eq
5c14: 2402 moveq r4, #2
size += sizeof(lv_style_property_t) + sizeof(lv_color_t);
5c16: 3404 adds r4, #4
style->map = lv_mem_realloc(style->map, size);
5c18: b2a4 uxth r4, r4
5c1a: 4b19 ldr r3, [pc, #100] ; (5c80 <_lv_style_set_color+0xb4>)
5c1c: 4621 mov r1, r4
5c1e: 4630 mov r0, r6
5c20: 4798 blx r3
LV_ASSERT_MEM(style->map);
5c22: 4b18 ldr r3, [pc, #96] ; (5c84 <_lv_style_set_color+0xb8>)
style->map = lv_mem_realloc(style->map, size);
5c24: 6028 str r0, [r5, #0]
LV_ASSERT_MEM(style->map);
5c26: 4798 blx r3
5c28: 4606 mov r6, r0
5c2a: b968 cbnz r0, 5c48 <_lv_style_set_color+0x7c>
5c2c: 4b16 ldr r3, [pc, #88] ; (5c88 <_lv_style_set_color+0xbc>)
5c2e: 4917 ldr r1, [pc, #92] ; (5c8c <_lv_style_set_color+0xc0>)
5c30: 9300 str r3, [sp, #0]
5c32: f240 12b5 movw r2, #437 ; 0x1b5
5c36: 2003 movs r0, #3
5c38: 4c15 ldr r4, [pc, #84] ; (5c90 <_lv_style_set_color+0xc4>)
5c3a: 47a0 blx r4
5c3c: 682a ldr r2, [r5, #0]
5c3e: 4815 ldr r0, [pc, #84] ; (5c94 <_lv_style_set_color+0xc8>)
5c40: 4915 ldr r1, [pc, #84] ; (5c98 <_lv_style_set_color+0xcc>)
5c42: 4633 mov r3, r6
5c44: 4788 blx r1
5c46: e7fe b.n 5c46 <_lv_style_set_color+0x7a>
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
5c48: 6828 ldr r0, [r5, #0]
5c4a: 4e0b ldr r6, [pc, #44] ; (5c78 <_lv_style_set_color+0xac>)
5c4c: 1fa3 subs r3, r4, #6
5c4e: f10d 010e add.w r1, sp, #14
5c52: 4418 add r0, r3
5c54: 2202 movs r2, #2
5c56: 47b0 blx r6
_lv_memcpy_small(style->map + size - sizeof(lv_color_t) - end_mark_size, &color, sizeof(lv_color_t));
5c58: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
5c5a: 1f23 subs r3, r4, #4
_lv_memcpy_small(style->map + size - sizeof(lv_color_t) - end_mark_size, &color, sizeof(lv_color_t));
5c5c: a903 add r1, sp, #12
5c5e: 4418 add r0, r3
5c60: 2202 movs r2, #2
5c62: 47b0 blx r6
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
5c64: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - sizeof(lv_color_t) - end_mark_size, &color, sizeof(lv_color_t));
5c66: 3c02 subs r4, #2
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
5c68: 2202 movs r2, #2
5c6a: f10d 0116 add.w r1, sp, #22
5c6e: 4420 add r0, r4
5c70: 47b0 blx r6
5c72: e7c5 b.n 5c00 <_lv_style_set_color+0x34>
5c74: 00005739 .word 0x00005739
5c78: 000057a3 .word 0x000057a3
5c7c: 00005a2d .word 0x00005a2d
5c80: 0000f0a5 .word 0x0000f0a5
5c84: 00001a65 .word 0x00001a65
5c88: 000273d0 .word 0x000273d0
5c8c: 0002726a .word 0x0002726a
5c90: 0000eb79 .word 0x0000eb79
5c94: 00026842 .word 0x00026842
5c98: 00001a6d .word 0x00001a6d
00005c9c <_lv_style_set_opa>:
{
5c9c: b570 push {r4, r5, r6, lr}
5c9e: 6806 ldr r6, [r0, #0]
int32_t id = get_property_index(style, prop);
5ca0: 4b29 ldr r3, [pc, #164] ; (5d48 <_lv_style_set_opa+0xac>)
{
5ca2: b086 sub sp, #24
5ca4: 4605 mov r5, r0
int32_t id = get_property_index(style, prop);
5ca6: 4630 mov r0, r6
{
5ca8: f8ad 100e strh.w r1, [sp, #14]
5cac: f88d 200d strb.w r2, [sp, #13]
int32_t id = get_property_index(style, prop);
5cb0: 460c mov r4, r1
5cb2: 4798 blx r3
if(id >= 0) {
5cb4: 2800 cmp r0, #0
5cb6: db0e blt.n 5cd6 <_lv_style_set_opa+0x3a>
attr_found.full = *(style->map + id + 1);
5cb8: 1833 adds r3, r6, r0
if(attr_found.bits.state == attr_goal.bits.state) {
5cba: 785b ldrb r3, [r3, #1]
5cbc: ea83 2314 eor.w r3, r3, r4, lsr #8
5cc0: 065b lsls r3, r3, #25
5cc2: d108 bne.n 5cd6 <_lv_style_set_opa+0x3a>
_lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &opa, sizeof(lv_opa_t));
5cc4: 3002 adds r0, #2
5cc6: 4b21 ldr r3, [pc, #132] ; (5d4c <_lv_style_set_opa+0xb0>)
5cc8: 2201 movs r2, #1
5cca: f10d 010d add.w r1, sp, #13
5cce: 4430 add r0, r6
5cd0: 4798 blx r3
}
5cd2: b006 add sp, #24
5cd4: bd70 pop {r4, r5, r6, pc}
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
5cd6: 23ff movs r3, #255 ; 0xff
5cd8: f8ad 3016 strh.w r3, [sp, #22]
uint16_t size = _lv_style_get_mem_size(style);
5cdc: 4628 mov r0, r5
5cde: 4b1c ldr r3, [pc, #112] ; (5d50 <_lv_style_set_opa+0xb4>)
5ce0: 4798 blx r3
if(size == 0) size += end_mark_size;
5ce2: 1e04 subs r4, r0, #0
5ce4: bf08 it eq
5ce6: 2402 moveq r4, #2
size += sizeof(lv_style_property_t) + sizeof(lv_opa_t);
5ce8: 3403 adds r4, #3
style->map = lv_mem_realloc(style->map, size);
5cea: b2a4 uxth r4, r4
5cec: 4b19 ldr r3, [pc, #100] ; (5d54 <_lv_style_set_opa+0xb8>)
5cee: 4621 mov r1, r4
5cf0: 4630 mov r0, r6
5cf2: 4798 blx r3
LV_ASSERT_MEM(style->map);
5cf4: 4b18 ldr r3, [pc, #96] ; (5d58 <_lv_style_set_opa+0xbc>)
style->map = lv_mem_realloc(style->map, size);
5cf6: 6028 str r0, [r5, #0]
LV_ASSERT_MEM(style->map);
5cf8: 4798 blx r3
5cfa: 4606 mov r6, r0
5cfc: b968 cbnz r0, 5d1a <_lv_style_set_opa+0x7e>
5cfe: 4b17 ldr r3, [pc, #92] ; (5d5c <_lv_style_set_opa+0xc0>)
5d00: 4917 ldr r1, [pc, #92] ; (5d60 <_lv_style_set_opa+0xc4>)
5d02: 9300 str r3, [sp, #0]
5d04: f44f 72f2 mov.w r2, #484 ; 0x1e4
5d08: 2003 movs r0, #3
5d0a: 4c16 ldr r4, [pc, #88] ; (5d64 <_lv_style_set_opa+0xc8>)
5d0c: 47a0 blx r4
5d0e: 682a ldr r2, [r5, #0]
5d10: 4815 ldr r0, [pc, #84] ; (5d68 <_lv_style_set_opa+0xcc>)
5d12: 4916 ldr r1, [pc, #88] ; (5d6c <_lv_style_set_opa+0xd0>)
5d14: 4633 mov r3, r6
5d16: 4788 blx r1
5d18: e7fe b.n 5d18 <_lv_style_set_opa+0x7c>
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
5d1a: 6828 ldr r0, [r5, #0]
5d1c: 4e0b ldr r6, [pc, #44] ; (5d4c <_lv_style_set_opa+0xb0>)
5d1e: 1f63 subs r3, r4, #5
5d20: f10d 010e add.w r1, sp, #14
5d24: 4418 add r0, r3
5d26: 2202 movs r2, #2
5d28: 47b0 blx r6
_lv_memcpy_small(style->map + size - sizeof(lv_opa_t) - end_mark_size, &opa, sizeof(lv_opa_t));
5d2a: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
5d2c: 1ee3 subs r3, r4, #3
_lv_memcpy_small(style->map + size - sizeof(lv_opa_t) - end_mark_size, &opa, sizeof(lv_opa_t));
5d2e: f10d 010d add.w r1, sp, #13
5d32: 4418 add r0, r3
5d34: 2201 movs r2, #1
5d36: 47b0 blx r6
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
5d38: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - sizeof(lv_opa_t) - end_mark_size, &opa, sizeof(lv_opa_t));
5d3a: 3c02 subs r4, #2
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
5d3c: 2202 movs r2, #2
5d3e: f10d 0116 add.w r1, sp, #22
5d42: 4420 add r0, r4
5d44: 47b0 blx r6
5d46: e7c4 b.n 5cd2 <_lv_style_set_opa+0x36>
5d48: 00005739 .word 0x00005739
5d4c: 000057a3 .word 0x000057a3
5d50: 00005a2d .word 0x00005a2d
5d54: 0000f0a5 .word 0x0000f0a5
5d58: 00001a65 .word 0x00001a65
5d5c: 000273e4 .word 0x000273e4
5d60: 0002726a .word 0x0002726a
5d64: 0000eb79 .word 0x0000eb79
5d68: 00026842 .word 0x00026842
5d6c: 00001a6d .word 0x00001a6d
00005d70 <_lv_style_set_ptr>:
{
5d70: b570 push {r4, r5, r6, lr}
5d72: 6806 ldr r6, [r0, #0]
int32_t id = get_property_index(style, prop);
5d74: 4b28 ldr r3, [pc, #160] ; (5e18 <_lv_style_set_ptr+0xa8>)
{
5d76: b086 sub sp, #24
5d78: 4605 mov r5, r0
int32_t id = get_property_index(style, prop);
5d7a: 4630 mov r0, r6
{
5d7c: 9202 str r2, [sp, #8]
5d7e: f8ad 100e strh.w r1, [sp, #14]
int32_t id = get_property_index(style, prop);
5d82: 460c mov r4, r1
5d84: 4798 blx r3
if(id >= 0) {
5d86: 2800 cmp r0, #0
5d88: db0d blt.n 5da6 <_lv_style_set_ptr+0x36>
attr_found.full = *(style->map + id + 1);
5d8a: 1833 adds r3, r6, r0
if(attr_found.bits.state == attr_goal.bits.state) {
5d8c: 785b ldrb r3, [r3, #1]
5d8e: ea83 2314 eor.w r3, r3, r4, lsr #8
5d92: 065b lsls r3, r3, #25
5d94: d107 bne.n 5da6 <_lv_style_set_ptr+0x36>
_lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &p, sizeof(const void *));
5d96: 3002 adds r0, #2
5d98: 4b20 ldr r3, [pc, #128] ; (5e1c <_lv_style_set_ptr+0xac>)
5d9a: 2204 movs r2, #4
5d9c: a902 add r1, sp, #8
5d9e: 4430 add r0, r6
5da0: 4798 blx r3
}
5da2: b006 add sp, #24
5da4: bd70 pop {r4, r5, r6, pc}
lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP;
5da6: 23ff movs r3, #255 ; 0xff
5da8: f8ad 3016 strh.w r3, [sp, #22]
uint16_t size = _lv_style_get_mem_size(style);
5dac: 4628 mov r0, r5
5dae: 4b1c ldr r3, [pc, #112] ; (5e20 <_lv_style_set_ptr+0xb0>)
5db0: 4798 blx r3
if(size == 0) size += end_mark_size;
5db2: 1e04 subs r4, r0, #0
5db4: bf08 it eq
5db6: 2402 moveq r4, #2
size += sizeof(lv_style_property_t) + sizeof(const void *);
5db8: 3406 adds r4, #6
style->map = lv_mem_realloc(style->map, size);
5dba: b2a4 uxth r4, r4
5dbc: 4b19 ldr r3, [pc, #100] ; (5e24 <_lv_style_set_ptr+0xb4>)
5dbe: 4621 mov r1, r4
5dc0: 4630 mov r0, r6
5dc2: 4798 blx r3
LV_ASSERT_MEM(style->map);
5dc4: 4b18 ldr r3, [pc, #96] ; (5e28 <_lv_style_set_ptr+0xb8>)
style->map = lv_mem_realloc(style->map, size);
5dc6: 6028 str r0, [r5, #0]
LV_ASSERT_MEM(style->map);
5dc8: 4798 blx r3
5dca: 4606 mov r6, r0
5dcc: b968 cbnz r0, 5dea <_lv_style_set_ptr+0x7a>
5dce: 4b17 ldr r3, [pc, #92] ; (5e2c <_lv_style_set_ptr+0xbc>)
5dd0: 4917 ldr r1, [pc, #92] ; (5e30 <_lv_style_set_ptr+0xc0>)
5dd2: 9300 str r3, [sp, #0]
5dd4: f240 2213 movw r2, #531 ; 0x213
5dd8: 2003 movs r0, #3
5dda: 4c16 ldr r4, [pc, #88] ; (5e34 <_lv_style_set_ptr+0xc4>)
5ddc: 47a0 blx r4
5dde: 682a ldr r2, [r5, #0]
5de0: 4815 ldr r0, [pc, #84] ; (5e38 <_lv_style_set_ptr+0xc8>)
5de2: 4916 ldr r1, [pc, #88] ; (5e3c <_lv_style_set_ptr+0xcc>)
5de4: 4633 mov r3, r6
5de6: 4788 blx r1
5de8: e7fe b.n 5de8 <_lv_style_set_ptr+0x78>
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
5dea: 6828 ldr r0, [r5, #0]
5dec: 4e0b ldr r6, [pc, #44] ; (5e1c <_lv_style_set_ptr+0xac>)
5dee: f1a4 0308 sub.w r3, r4, #8
5df2: f10d 010e add.w r1, sp, #14
5df6: 4418 add r0, r3
5df8: 2202 movs r2, #2
5dfa: 47b0 blx r6
_lv_memcpy_small(style->map + size - sizeof(const void *) - end_mark_size, &p, sizeof(const void *));
5dfc: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t));
5dfe: 1fa3 subs r3, r4, #6
_lv_memcpy_small(style->map + size - sizeof(const void *) - end_mark_size, &p, sizeof(const void *));
5e00: a902 add r1, sp, #8
5e02: 4418 add r0, r3
5e04: 2204 movs r2, #4
5e06: 47b0 blx r6
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
5e08: 6828 ldr r0, [r5, #0]
_lv_memcpy_small(style->map + size - sizeof(const void *) - end_mark_size, &p, sizeof(const void *));
5e0a: 3c02 subs r4, #2
_lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark));
5e0c: 2202 movs r2, #2
5e0e: f10d 0116 add.w r1, sp, #22
5e12: 4420 add r0, r4
5e14: 47b0 blx r6
5e16: e7c4 b.n 5da2 <_lv_style_set_ptr+0x32>
5e18: 00005739 .word 0x00005739
5e1c: 000057a3 .word 0x000057a3
5e20: 00005a2d .word 0x00005a2d
5e24: 0000f0a5 .word 0x0000f0a5
5e28: 00001a65 .word 0x00001a65
5e2c: 000273f6 .word 0x000273f6
5e30: 0002726a .word 0x0002726a
5e34: 0000eb79 .word 0x0000eb79
5e38: 00026842 .word 0x00026842
5e3c: 00001a6d .word 0x00001a6d
00005e40 <_lv_style_get_int>:
{
5e40: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
5e44: 460e mov r6, r1
5e46: 4617 mov r7, r2
if(style == NULL) return -1;
5e48: 4605 mov r5, r0
5e4a: b1c0 cbz r0, 5e7e <_lv_style_get_int+0x3e>
if(style->map == NULL) return -1;
5e4c: f8d0 8000 ldr.w r8, [r0]
5e50: f1b8 0f00 cmp.w r8, #0
5e54: d013 beq.n 5e7e <_lv_style_get_int+0x3e>
int32_t id = get_property_index(style, prop);
5e56: 4b0b ldr r3, [pc, #44] ; (5e84 <_lv_style_get_int+0x44>)
5e58: 4640 mov r0, r8
5e5a: 4798 blx r3
if(id < 0) {
5e5c: 1e04 subs r4, r0, #0
5e5e: db0e blt.n 5e7e <_lv_style_get_int+0x3e>
_lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(lv_style_int_t));
5e60: 1ca1 adds r1, r4, #2
5e62: 4b09 ldr r3, [pc, #36] ; (5e88 <_lv_style_get_int+0x48>)
5e64: 4638 mov r0, r7
5e66: 2202 movs r2, #2
5e68: 4441 add r1, r8
5e6a: 4798 blx r3
attr_act.full = style->map[id + 1];
5e6c: 682b ldr r3, [r5, #0]
5e6e: 4423 add r3, r4
5e70: 7858 ldrb r0, [r3, #1]
return attr_act.bits.state & attr_goal.bits.state;
5e72: f3c0 0006 ubfx r0, r0, #0, #7
5e76: ea00 2016 and.w r0, r0, r6, lsr #8
}
5e7a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
if(style == NULL) return -1;
5e7e: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
5e82: e7fa b.n 5e7a <_lv_style_get_int+0x3a>
5e84: 00005739 .word 0x00005739
5e88: 000057a3 .word 0x000057a3
00005e8c <_lv_style_get_opa>:
{
5e8c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
5e90: 460e mov r6, r1
5e92: 4617 mov r7, r2
if(style == NULL) return -1;
5e94: 4605 mov r5, r0
5e96: b1c0 cbz r0, 5eca <_lv_style_get_opa+0x3e>
if(style->map == NULL) return -1;
5e98: f8d0 8000 ldr.w r8, [r0]
5e9c: f1b8 0f00 cmp.w r8, #0
5ea0: d013 beq.n 5eca <_lv_style_get_opa+0x3e>
int32_t id = get_property_index(style, prop);
5ea2: 4b0b ldr r3, [pc, #44] ; (5ed0 <_lv_style_get_opa+0x44>)
5ea4: 4640 mov r0, r8
5ea6: 4798 blx r3
if(id < 0) {
5ea8: 1e04 subs r4, r0, #0
5eaa: db0e blt.n 5eca <_lv_style_get_opa+0x3e>
_lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(lv_opa_t));
5eac: 1ca1 adds r1, r4, #2
5eae: 4b09 ldr r3, [pc, #36] ; (5ed4 <_lv_style_get_opa+0x48>)
5eb0: 4638 mov r0, r7
5eb2: 2201 movs r2, #1
5eb4: 4441 add r1, r8
5eb6: 4798 blx r3
attr_act.full = style->map[id + 1];
5eb8: 682b ldr r3, [r5, #0]
5eba: 4423 add r3, r4
5ebc: 7858 ldrb r0, [r3, #1]
return attr_act.bits.state & attr_goal.bits.state;
5ebe: f3c0 0006 ubfx r0, r0, #0, #7
5ec2: ea00 2016 and.w r0, r0, r6, lsr #8
}
5ec6: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
if(style == NULL) return -1;
5eca: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
5ece: e7fa b.n 5ec6 <_lv_style_get_opa+0x3a>
5ed0: 00005739 .word 0x00005739
5ed4: 000057a3 .word 0x000057a3
00005ed8 <_lv_style_get_ptr>:
{
5ed8: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
5edc: 460e mov r6, r1
5ede: 4617 mov r7, r2
if(style == NULL) return -1;
5ee0: 4605 mov r5, r0
5ee2: b1c0 cbz r0, 5f16 <_lv_style_get_ptr+0x3e>
if(style->map == NULL) return -1;
5ee4: f8d0 8000 ldr.w r8, [r0]
5ee8: f1b8 0f00 cmp.w r8, #0
5eec: d013 beq.n 5f16 <_lv_style_get_ptr+0x3e>
int32_t id = get_property_index(style, prop);
5eee: 4b0b ldr r3, [pc, #44] ; (5f1c <_lv_style_get_ptr+0x44>)
5ef0: 4640 mov r0, r8
5ef2: 4798 blx r3
if(id < 0) {
5ef4: 1e04 subs r4, r0, #0
5ef6: db0e blt.n 5f16 <_lv_style_get_ptr+0x3e>
_lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(const void *));
5ef8: 1ca1 adds r1, r4, #2
5efa: 4b09 ldr r3, [pc, #36] ; (5f20 <_lv_style_get_ptr+0x48>)
5efc: 4638 mov r0, r7
5efe: 2204 movs r2, #4
5f00: 4441 add r1, r8
5f02: 4798 blx r3
attr_act.full = style->map[id + 1];
5f04: 682b ldr r3, [r5, #0]
5f06: 4423 add r3, r4
5f08: 7858 ldrb r0, [r3, #1]
return attr_act.bits.state & attr_goal.bits.state;
5f0a: f3c0 0006 ubfx r0, r0, #0, #7
5f0e: ea00 2016 and.w r0, r0, r6, lsr #8
}
5f12: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
if(style == NULL) return -1;
5f16: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
5f1a: e7fa b.n 5f12 <_lv_style_get_ptr+0x3a>
5f1c: 00005739 .word 0x00005739
5f20: 000057a3 .word 0x000057a3
00005f24 <lv_style_list_get_local_style>:
if(!list->has_local) return NULL;
5f24: 7942 ldrb r2, [r0, #5]
5f26: f012 0301 ands.w r3, r2, #1
5f2a: d005 beq.n 5f38 <lv_style_list_get_local_style+0x14>
if(list->has_trans) return list->style_list[1];
5f2c: 6803 ldr r3, [r0, #0]
5f2e: 0792 lsls r2, r2, #30
5f30: bf4c ite mi
5f32: 6858 ldrmi r0, [r3, #4]
else return list->style_list[0];
5f34: 6818 ldrpl r0, [r3, #0]
5f36: 4770 bx lr
if(!list->has_local) return NULL;
5f38: 4618 mov r0, r3
}
5f3a: 4770 bx lr
00005f3c <_lv_style_list_get_transition_style>:
if(!list->has_trans) return NULL;
5f3c: 7943 ldrb r3, [r0, #5]
5f3e: f013 0302 ands.w r3, r3, #2
return list->style_list[0];
5f42: bf1a itte ne
5f44: 6803 ldrne r3, [r0, #0]
5f46: 6818 ldrne r0, [r3, #0]
if(!list->has_trans) return NULL;
5f48: 4618 moveq r0, r3
}
5f4a: 4770 bx lr
00005f4c <_lv_style_list_reset>:
{
5f4c: b538 push {r3, r4, r5, lr}
if(list == NULL) return;
5f4e: 4604 mov r4, r0
5f50: b328 cbz r0, 5f9e <_lv_style_list_reset+0x52>
if(list->has_local) {
5f52: 7943 ldrb r3, [r0, #5]
5f54: 07da lsls r2, r3, #31
5f56: d508 bpl.n 5f6a <_lv_style_list_reset+0x1e>
lv_style_t * local = lv_style_list_get_local_style(list);
5f58: 4b11 ldr r3, [pc, #68] ; (5fa0 <_lv_style_list_reset+0x54>)
5f5a: 4798 blx r3
if(local) {
5f5c: 4605 mov r5, r0
5f5e: b120 cbz r0, 5f6a <_lv_style_list_reset+0x1e>
lv_style_reset(local);
5f60: 4b10 ldr r3, [pc, #64] ; (5fa4 <_lv_style_list_reset+0x58>)
5f62: 4798 blx r3
lv_mem_free(local);
5f64: 4b10 ldr r3, [pc, #64] ; (5fa8 <_lv_style_list_reset+0x5c>)
5f66: 4628 mov r0, r5
5f68: 4798 blx r3
if(list->has_trans) {
5f6a: 7963 ldrb r3, [r4, #5]
5f6c: 079b lsls r3, r3, #30
5f6e: d509 bpl.n 5f84 <_lv_style_list_reset+0x38>
lv_style_t * trans = _lv_style_list_get_transition_style(list);
5f70: 4b0e ldr r3, [pc, #56] ; (5fac <_lv_style_list_reset+0x60>)
5f72: 4620 mov r0, r4
5f74: 4798 blx r3
if(trans) {
5f76: 4605 mov r5, r0
5f78: b120 cbz r0, 5f84 <_lv_style_list_reset+0x38>
lv_style_reset(trans);
5f7a: 4b0a ldr r3, [pc, #40] ; (5fa4 <_lv_style_list_reset+0x58>)
5f7c: 4798 blx r3
lv_mem_free(trans);
5f7e: 4b0a ldr r3, [pc, #40] ; (5fa8 <_lv_style_list_reset+0x5c>)
5f80: 4628 mov r0, r5
5f82: 4798 blx r3
if(list->style_cnt > 0) lv_mem_free(list->style_list);
5f84: 7923 ldrb r3, [r4, #4]
5f86: b113 cbz r3, 5f8e <_lv_style_list_reset+0x42>
5f88: 6820 ldr r0, [r4, #0]
5f8a: 4b07 ldr r3, [pc, #28] ; (5fa8 <_lv_style_list_reset+0x5c>)
5f8c: 4798 blx r3
list->style_list = NULL;
5f8e: 2300 movs r3, #0
5f90: 6023 str r3, [r4, #0]
list->style_cnt = 0;
5f92: 88a3 ldrh r3, [r4, #4]
5f94: f423 63ff bic.w r3, r3, #2040 ; 0x7f8
5f98: f023 0307 bic.w r3, r3, #7
5f9c: 80a3 strh r3, [r4, #4]
}
5f9e: bd38 pop {r3, r4, r5, pc}
5fa0: 00005f25 .word 0x00005f25
5fa4: 00005a19 .word 0x00005a19
5fa8: 0000ed75 .word 0x0000ed75
5fac: 00005f3d .word 0x00005f3d
00005fb0 <lv_style_list_copy>:
{
5fb0: b570 push {r4, r5, r6, lr}
5fb2: 460c mov r4, r1
_lv_style_list_reset(list_dest);
5fb4: 4b26 ldr r3, [pc, #152] ; (6050 <lv_style_list_copy+0xa0>)
{
5fb6: 4605 mov r5, r0
_lv_style_list_reset(list_dest);
5fb8: 4798 blx r3
if(list_src->style_list == NULL) return;
5fba: 6823 ldr r3, [r4, #0]
5fbc: b1b3 cbz r3, 5fec <lv_style_list_copy+0x3c>
if(list_src->has_local == 0) {
5fbe: 7963 ldrb r3, [r4, #5]
list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *));
5fc0: 7920 ldrb r0, [r4, #4]
5fc2: 4e24 ldr r6, [pc, #144] ; (6054 <lv_style_list_copy+0xa4>)
if(list_src->has_local == 0) {
5fc4: f013 0f01 tst.w r3, #1
if(list_src->has_trans) {
5fc8: f003 0202 and.w r2, r3, #2
5fcc: 4b22 ldr r3, [pc, #136] ; (6058 <lv_style_list_copy+0xa8>)
if(list_src->has_local == 0) {
5fce: d117 bne.n 6000 <lv_style_list_copy+0x50>
if(list_src->has_trans) {
5fd0: b16a cbz r2, 5fee <lv_style_list_copy+0x3e>
list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *));
5fd2: 3801 subs r0, #1
5fd4: 0080 lsls r0, r0, #2
5fd6: 4798 blx r3
5fd8: 6028 str r0, [r5, #0]
_lv_memcpy(list_dest->style_list, list_src->style_list + 1, (list_src->style_cnt - 1) * sizeof(lv_style_t *));
5fda: 7922 ldrb r2, [r4, #4]
5fdc: 6821 ldr r1, [r4, #0]
5fde: 3a01 subs r2, #1
5fe0: 0092 lsls r2, r2, #2
5fe2: 3104 adds r1, #4
5fe4: 47b0 blx r6
list_dest->style_cnt = list_src->style_cnt - 1;
5fe6: 7923 ldrb r3, [r4, #4]
5fe8: 3b01 subs r3, #1
list_dest->style_cnt = list_src->style_cnt;
5fea: 712b strb r3, [r5, #4]
}
5fec: bd70 pop {r4, r5, r6, pc}
list_dest->style_list = lv_mem_alloc(list_src->style_cnt * sizeof(lv_style_t *));
5fee: 0080 lsls r0, r0, #2
5ff0: 4798 blx r3
5ff2: 6028 str r0, [r5, #0]
_lv_memcpy(list_dest->style_list, list_src->style_list, list_src->style_cnt * sizeof(lv_style_t *));
5ff4: 7922 ldrb r2, [r4, #4]
5ff6: 6821 ldr r1, [r4, #0]
5ff8: 0092 lsls r2, r2, #2
5ffa: 47b0 blx r6
list_dest->style_cnt = list_src->style_cnt;
5ffc: 7923 ldrb r3, [r4, #4]
5ffe: e7f4 b.n 5fea <lv_style_list_copy+0x3a>
if(list_src->has_trans) {
6000: b1ca cbz r2, 6036 <lv_style_list_copy+0x86>
list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 2) * sizeof(lv_style_t *));
6002: 3802 subs r0, #2
6004: 0080 lsls r0, r0, #2
6006: 4798 blx r3
6008: 6028 str r0, [r5, #0]
_lv_memcpy(list_dest->style_list, list_src->style_list + 2, (list_src->style_cnt - 2) * sizeof(lv_style_t *));
600a: 7922 ldrb r2, [r4, #4]
600c: 6821 ldr r1, [r4, #0]
600e: 3a02 subs r2, #2
6010: 0092 lsls r2, r2, #2
6012: 3108 adds r1, #8
6014: 47b0 blx r6
list_dest->style_cnt = list_src->style_cnt - 2;
6016: 7923 ldrb r3, [r4, #4]
6018: 3b02 subs r3, #2
list_dest->style_cnt = list_src->style_cnt - 1;
601a: b2db uxtb r3, r3
list_dest->style_cnt = list_src->style_cnt - 2;
601c: 712b strb r3, [r5, #4]
lv_style_t * local_style = get_alloc_local_style(list_dest);
601e: 4e0f ldr r6, [pc, #60] ; (605c <lv_style_list_copy+0xac>)
6020: 4628 mov r0, r5
6022: 47b0 blx r6
6024: 4605 mov r5, r0
lv_style_copy(local_style, get_alloc_local_style((lv_style_list_t *)list_src));
6026: 4620 mov r0, r4
6028: 47b0 blx r6
602a: 4b0d ldr r3, [pc, #52] ; (6060 <lv_style_list_copy+0xb0>)
602c: 4601 mov r1, r0
602e: 4628 mov r0, r5
}
6030: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_style_copy(local_style, get_alloc_local_style((lv_style_list_t *)list_src));
6034: 4718 bx r3
list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *));
6036: 3801 subs r0, #1
6038: 0080 lsls r0, r0, #2
603a: 4798 blx r3
603c: 6028 str r0, [r5, #0]
_lv_memcpy(list_dest->style_list, list_src->style_list + 1, (list_src->style_cnt - 1) * sizeof(lv_style_t *));
603e: 7922 ldrb r2, [r4, #4]
6040: 6821 ldr r1, [r4, #0]
6042: 3a01 subs r2, #1
6044: 0092 lsls r2, r2, #2
6046: 3104 adds r1, #4
6048: 47b0 blx r6
list_dest->style_cnt = list_src->style_cnt - 1;
604a: 7923 ldrb r3, [r4, #4]
604c: 3b01 subs r3, #1
604e: e7e4 b.n 601a <lv_style_list_copy+0x6a>
6050: 00005f4d .word 0x00005f4d
6054: 0000eec1 .word 0x0000eec1
6058: 0000ecbd .word 0x0000ecbd
605c: 00005979 .word 0x00005979
6060: 00005a5d .word 0x00005a5d
00006064 <_lv_style_list_add_trans_style>:
if(list->has_trans) return _lv_style_list_get_transition_style(list);
6064: 7943 ldrb r3, [r0, #5]
6066: 079a lsls r2, r3, #30
{
6068: b573 push {r0, r1, r4, r5, r6, lr}
606a: 4605 mov r5, r0
if(list->has_trans) return _lv_style_list_get_transition_style(list);
606c: d504 bpl.n 6078 <_lv_style_list_add_trans_style+0x14>
606e: 4b1d ldr r3, [pc, #116] ; (60e4 <_lv_style_list_add_trans_style+0x80>)
}
6070: b002 add sp, #8
6072: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
if(list->has_trans) return _lv_style_list_get_transition_style(list);
6076: 4718 bx r3
lv_style_t * trans_style = lv_mem_alloc(sizeof(lv_style_t));
6078: 4b1b ldr r3, [pc, #108] ; (60e8 <_lv_style_list_add_trans_style+0x84>)
607a: 2004 movs r0, #4
607c: 4798 blx r3
LV_ASSERT_MEM(trans_style);
607e: 4b1b ldr r3, [pc, #108] ; (60ec <_lv_style_list_add_trans_style+0x88>)
lv_style_t * trans_style = lv_mem_alloc(sizeof(lv_style_t));
6080: 4604 mov r4, r0
LV_ASSERT_MEM(trans_style);
6082: 4798 blx r3
6084: 4606 mov r6, r0
6086: b968 cbnz r0, 60a4 <_lv_style_list_add_trans_style+0x40>
6088: 4b19 ldr r3, [pc, #100] ; (60f0 <_lv_style_list_add_trans_style+0x8c>)
608a: 491a ldr r1, [pc, #104] ; (60f4 <_lv_style_list_add_trans_style+0x90>)
608c: 9300 str r3, [sp, #0]
608e: f240 22cd movw r2, #717 ; 0x2cd
6092: 2003 movs r0, #3
6094: 4d18 ldr r5, [pc, #96] ; (60f8 <_lv_style_list_add_trans_style+0x94>)
6096: 47a8 blx r5
6098: 4818 ldr r0, [pc, #96] ; (60fc <_lv_style_list_add_trans_style+0x98>)
609a: 4919 ldr r1, [pc, #100] ; (6100 <_lv_style_list_add_trans_style+0x9c>)
609c: 4622 mov r2, r4
609e: 4633 mov r3, r6
60a0: 4788 blx r1
60a2: e7fe b.n 60a2 <_lv_style_list_add_trans_style+0x3e>
if(trans_style == NULL) {
60a4: b95c cbnz r4, 60be <_lv_style_list_add_trans_style+0x5a>
LV_LOG_WARN("lv_style_list_add_trans_style: couldn't create transition style");
60a6: 4b17 ldr r3, [pc, #92] ; (6104 <_lv_style_list_add_trans_style+0xa0>)
60a8: 9300 str r3, [sp, #0]
60aa: 4912 ldr r1, [pc, #72] ; (60f4 <_lv_style_list_add_trans_style+0x90>)
60ac: 4b10 ldr r3, [pc, #64] ; (60f0 <_lv_style_list_add_trans_style+0x8c>)
60ae: 4d12 ldr r5, [pc, #72] ; (60f8 <_lv_style_list_add_trans_style+0x94>)
60b0: f240 22cf movw r2, #719 ; 0x2cf
60b4: 2002 movs r0, #2
60b6: 47a8 blx r5
}
60b8: 4620 mov r0, r4
60ba: b002 add sp, #8
60bc: bd70 pop {r4, r5, r6, pc}
lv_style_init(trans_style);
60be: 4b12 ldr r3, [pc, #72] ; (6108 <_lv_style_list_add_trans_style+0xa4>)
60c0: 4620 mov r0, r4
60c2: 4798 blx r3
_lv_style_list_add_style(list, trans_style);
60c4: 4621 mov r1, r4
60c6: 4b11 ldr r3, [pc, #68] ; (610c <_lv_style_list_add_trans_style+0xa8>)
60c8: 4628 mov r0, r5
60ca: 4798 blx r3
list->has_trans = 1;
60cc: 796b ldrb r3, [r5, #5]
60ce: f043 0302 orr.w r3, r3, #2
60d2: 716b strb r3, [r5, #5]
if(list->has_local) {
60d4: 07db lsls r3, r3, #31
lv_style_t * tmp = list->style_list[0];
60d6: bf42 ittt mi
60d8: 682b ldrmi r3, [r5, #0]
list->style_list[0] = list->style_list[1];
60da: e9d3 2100 ldrdmi r2, r1, [r3]
list->style_list[1] = tmp;
60de: e9c3 1200 strdmi r1, r2, [r3]
60e2: e7e9 b.n 60b8 <_lv_style_list_add_trans_style+0x54>
60e4: 00005f3d .word 0x00005f3d
60e8: 0000ecbd .word 0x0000ecbd
60ec: 00001a65 .word 0x00001a65
60f0: 00027408 .word 0x00027408
60f4: 0002726a .word 0x0002726a
60f8: 0000eb79 .word 0x0000eb79
60fc: 00026842 .word 0x00026842
6100: 00001a6d .word 0x00001a6d
6104: 00027333 .word 0x00027333
6108: 000057b5 .word 0x000057b5
610c: 0000589d .word 0x0000589d
00006110 <_lv_style_list_get_int>:
{
6110: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
6114: 460f mov r7, r1
6116: 4690 mov r8, r2
if(list == NULL) return LV_RES_INV;
6118: 4605 mov r5, r0
611a: b318 cbz r0, 6164 <_lv_style_list_get_int+0x54>
if(list->style_list == NULL) return LV_RES_INV;
611c: 6800 ldr r0, [r0, #0]
611e: b308 cbz r0, 6164 <_lv_style_list_get_int+0x54>
lv_style_int_t value_act = 0;
6120: 2600 movs r6, #0
lv_style_t * class = lv_style_list_get_style(list, ci);
6122: 4b1b ldr r3, [pc, #108] ; (6190 <_lv_style_list_get_int+0x80>)
int16_t weight_act = _lv_style_get_int(class, prop, &value_act);
6124: f8df b06c ldr.w fp, [pc, #108] ; 6194 <_lv_style_list_get_int+0x84>
lv_style_int_t value_act = 0;
6128: f8ad 6006 strh.w r6, [sp, #6]
int16_t weight_goal = attr.full;
612c: ea4f 2a11 mov.w sl, r1, lsr #8
int16_t weight = -1;
6130: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff
for(ci = 0; ci < list->style_cnt; ci++) {
6134: 792a ldrb r2, [r5, #4]
6136: fa0f f986 sxth.w r9, r6
613a: 4591 cmp r9, r2
613c: db03 blt.n 6146 <_lv_style_list_get_int+0x36>
if(weight >= 0) return LV_RES_OK;
613e: 43e0 mvns r0, r4
if(list == NULL) return LV_RES_INV;
6140: f3c0 30c0 ubfx r0, r0, #15, #1
6144: e00e b.n 6164 <_lv_style_list_get_int+0x54>
lv_style_t * class = lv_style_list_get_style(list, ci);
6146: b2f1 uxtb r1, r6
6148: 4628 mov r0, r5
614a: 4798 blx r3
int16_t weight_act = _lv_style_get_int(class, prop, &value_act);
614c: f10d 0206 add.w r2, sp, #6
6150: 4639 mov r1, r7
6152: 47d8 blx fp
if(weight_act == weight_goal) {
6154: 4582 cmp sl, r0
6156: 4b0e ldr r3, [pc, #56] ; (6190 <_lv_style_list_get_int+0x80>)
6158: d107 bne.n 616a <_lv_style_list_get_int+0x5a>
*res = value_act;
615a: f8bd 3006 ldrh.w r3, [sp, #6]
615e: f8a8 3000 strh.w r3, [r8]
return LV_RES_OK;
6162: 2001 movs r0, #1
}
6164: b003 add sp, #12
6166: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
616a: 796a ldrb r2, [r5, #5]
616c: 0791 lsls r1, r2, #30
616e: d506 bpl.n 617e <_lv_style_list_get_int+0x6e>
6170: 2800 cmp r0, #0
6172: db04 blt.n 617e <_lv_style_list_get_int+0x6e>
6174: f1b9 0f00 cmp.w r9, #0
6178: d101 bne.n 617e <_lv_style_list_get_int+0x6e>
617a: 0752 lsls r2, r2, #29
617c: d5ed bpl.n 615a <_lv_style_list_get_int+0x4a>
else if(weight_act > weight) {
617e: 4284 cmp r4, r0
*res = value_act;
6180: bfbe ittt lt
6182: f8bd 2006 ldrhlt.w r2, [sp, #6]
6186: f8a8 2000 strhlt.w r2, [r8]
618a: 4604 movlt r4, r0
for(ci = 0; ci < list->style_cnt; ci++) {
618c: 3601 adds r6, #1
618e: e7d1 b.n 6134 <_lv_style_list_get_int+0x24>
6190: 00005719 .word 0x00005719
6194: 00005e41 .word 0x00005e41
00006198 <_lv_style_list_get_color>:
{
6198: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
619c: 460f mov r7, r1
619e: 4690 mov r8, r2
if(list == NULL) return LV_RES_INV;
61a0: 4605 mov r5, r0
61a2: b310 cbz r0, 61ea <_lv_style_list_get_color+0x52>
if(list->style_list == NULL) return LV_RES_INV;
61a4: 6800 ldr r0, [r0, #0]
61a6: b300 cbz r0, 61ea <_lv_style_list_get_color+0x52>
lv_color_t value_act = { 0 };
61a8: 2600 movs r6, #0
lv_style_t * class = lv_style_list_get_style(list, ci);
61aa: 4b1b ldr r3, [pc, #108] ; (6218 <_lv_style_list_get_color+0x80>)
int16_t weight_act = _lv_style_get_color(class, prop, &value_act);
61ac: f8df b06c ldr.w fp, [pc, #108] ; 621c <_lv_style_list_get_color+0x84>
lv_color_t value_act = { 0 };
61b0: f8ad 6004 strh.w r6, [sp, #4]
int16_t weight_goal = attr.full;
61b4: ea4f 2a11 mov.w sl, r1, lsr #8
int16_t weight = -1;
61b8: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff
for(ci = 0; ci < list->style_cnt; ci++) {
61bc: 792a ldrb r2, [r5, #4]
61be: fa0f f986 sxth.w r9, r6
61c2: 4591 cmp r9, r2
61c4: db03 blt.n 61ce <_lv_style_list_get_color+0x36>
if(weight >= 0) return LV_RES_OK;
61c6: 43e0 mvns r0, r4
if(list == NULL) return LV_RES_INV;
61c8: f3c0 30c0 ubfx r0, r0, #15, #1
61cc: e00d b.n 61ea <_lv_style_list_get_color+0x52>
lv_style_t * class = lv_style_list_get_style(list, ci);
61ce: b2f1 uxtb r1, r6
61d0: 4628 mov r0, r5
61d2: 4798 blx r3
int16_t weight_act = _lv_style_get_color(class, prop, &value_act);
61d4: aa01 add r2, sp, #4
61d6: 4639 mov r1, r7
61d8: 47d8 blx fp
if(weight_act == weight_goal) {
61da: 4582 cmp sl, r0
61dc: 4b0e ldr r3, [pc, #56] ; (6218 <_lv_style_list_get_color+0x80>)
61de: d107 bne.n 61f0 <_lv_style_list_get_color+0x58>
*res = value_act;
61e0: f8bd 3004 ldrh.w r3, [sp, #4]
61e4: f8a8 3000 strh.w r3, [r8]
return LV_RES_OK;
61e8: 2001 movs r0, #1
}
61ea: b003 add sp, #12
61ec: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
61f0: 796a ldrb r2, [r5, #5]
61f2: 0791 lsls r1, r2, #30
61f4: d506 bpl.n 6204 <_lv_style_list_get_color+0x6c>
61f6: 2800 cmp r0, #0
61f8: db04 blt.n 6204 <_lv_style_list_get_color+0x6c>
61fa: f1b9 0f00 cmp.w r9, #0
61fe: d101 bne.n 6204 <_lv_style_list_get_color+0x6c>
6200: 0752 lsls r2, r2, #29
6202: d5ed bpl.n 61e0 <_lv_style_list_get_color+0x48>
else if(weight_act > weight) {
6204: 4284 cmp r4, r0
*res = value_act;
6206: bfbe ittt lt
6208: f8bd 2004 ldrhlt.w r2, [sp, #4]
620c: f8a8 2000 strhlt.w r2, [r8]
6210: 4604 movlt r4, r0
for(ci = 0; ci < list->style_cnt; ci++) {
6212: 3601 adds r6, #1
6214: e7d2 b.n 61bc <_lv_style_list_get_color+0x24>
6216: bf00 nop
6218: 00005719 .word 0x00005719
621c: 00005e41 .word 0x00005e41
00006220 <_lv_style_list_get_opa>:
{
6220: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
6224: 460f mov r7, r1
6226: 4690 mov r8, r2
if(list == NULL) return LV_RES_INV;
6228: 4605 mov r5, r0
622a: b318 cbz r0, 6274 <_lv_style_list_get_opa+0x54>
if(list->style_list == NULL) return LV_RES_INV;
622c: 6800 ldr r0, [r0, #0]
622e: b308 cbz r0, 6274 <_lv_style_list_get_opa+0x54>
lv_opa_t value_act = LV_OPA_TRANSP;
6230: 2600 movs r6, #0
lv_style_t * class = lv_style_list_get_style(list, ci);
6232: 4b1b ldr r3, [pc, #108] ; (62a0 <_lv_style_list_get_opa+0x80>)
int16_t weight_act = _lv_style_get_opa(class, prop, &value_act);
6234: f8df b06c ldr.w fp, [pc, #108] ; 62a4 <_lv_style_list_get_opa+0x84>
lv_opa_t value_act = LV_OPA_TRANSP;
6238: f88d 6007 strb.w r6, [sp, #7]
int16_t weight_goal = attr.full;
623c: ea4f 2a11 mov.w sl, r1, lsr #8
int16_t weight = -1;
6240: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff
for(ci = 0; ci < list->style_cnt; ci++) {
6244: 792a ldrb r2, [r5, #4]
6246: fa0f f986 sxth.w r9, r6
624a: 4591 cmp r9, r2
624c: db03 blt.n 6256 <_lv_style_list_get_opa+0x36>
if(weight >= 0) return LV_RES_OK;
624e: 43e0 mvns r0, r4
if(list == NULL) return LV_RES_INV;
6250: f3c0 30c0 ubfx r0, r0, #15, #1
6254: e00e b.n 6274 <_lv_style_list_get_opa+0x54>
lv_style_t * class = lv_style_list_get_style(list, ci);
6256: b2f1 uxtb r1, r6
6258: 4628 mov r0, r5
625a: 4798 blx r3
int16_t weight_act = _lv_style_get_opa(class, prop, &value_act);
625c: f10d 0207 add.w r2, sp, #7
6260: 4639 mov r1, r7
6262: 47d8 blx fp
if(weight_act == weight_goal) {
6264: 4582 cmp sl, r0
6266: 4b0e ldr r3, [pc, #56] ; (62a0 <_lv_style_list_get_opa+0x80>)
6268: d107 bne.n 627a <_lv_style_list_get_opa+0x5a>
*res = value_act;
626a: f89d 3007 ldrb.w r3, [sp, #7]
626e: f888 3000 strb.w r3, [r8]
return LV_RES_OK;
6272: 2001 movs r0, #1
}
6274: b003 add sp, #12
6276: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
627a: 796a ldrb r2, [r5, #5]
627c: 0791 lsls r1, r2, #30
627e: d506 bpl.n 628e <_lv_style_list_get_opa+0x6e>
6280: 2800 cmp r0, #0
6282: db04 blt.n 628e <_lv_style_list_get_opa+0x6e>
6284: f1b9 0f00 cmp.w r9, #0
6288: d101 bne.n 628e <_lv_style_list_get_opa+0x6e>
628a: 0752 lsls r2, r2, #29
628c: d5ed bpl.n 626a <_lv_style_list_get_opa+0x4a>
else if(weight_act > weight) {
628e: 4284 cmp r4, r0
*res = value_act;
6290: bfbe ittt lt
6292: f89d 2007 ldrblt.w r2, [sp, #7]
6296: f888 2000 strblt.w r2, [r8]
629a: 4604 movlt r4, r0
for(ci = 0; ci < list->style_cnt; ci++) {
629c: 3601 adds r6, #1
629e: e7d1 b.n 6244 <_lv_style_list_get_opa+0x24>
62a0: 00005719 .word 0x00005719
62a4: 00005e8d .word 0x00005e8d
000062a8 <_lv_style_list_get_ptr>:
{
62a8: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
62ac: 460f mov r7, r1
62ae: 4690 mov r8, r2
if(list == NULL) return LV_RES_INV;
62b0: 4605 mov r5, r0
62b2: b1f8 cbz r0, 62f4 <_lv_style_list_get_ptr+0x4c>
if(list->style_list == NULL) return LV_RES_INV;
62b4: 6800 ldr r0, [r0, #0]
62b6: b1e8 cbz r0, 62f4 <_lv_style_list_get_ptr+0x4c>
lv_style_t * class = lv_style_list_get_style(list, ci);
62b8: 4b19 ldr r3, [pc, #100] ; (6320 <_lv_style_list_get_ptr+0x78>)
int16_t weight_act = _lv_style_get_ptr(class, prop, &value_act);
62ba: f8df b068 ldr.w fp, [pc, #104] ; 6324 <_lv_style_list_get_ptr+0x7c>
int16_t weight_goal = attr.full;
62be: ea4f 2a11 mov.w sl, r1, lsr #8
for(ci = 0; ci < list->style_cnt; ci++) {
62c2: 2600 movs r6, #0
int16_t weight = -1;
62c4: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff
for(ci = 0; ci < list->style_cnt; ci++) {
62c8: 792a ldrb r2, [r5, #4]
62ca: fa0f f986 sxth.w r9, r6
62ce: 4591 cmp r9, r2
62d0: db03 blt.n 62da <_lv_style_list_get_ptr+0x32>
if(weight >= 0) return LV_RES_OK;
62d2: 43e0 mvns r0, r4
if(list == NULL) return LV_RES_INV;
62d4: f3c0 30c0 ubfx r0, r0, #15, #1
62d8: e00c b.n 62f4 <_lv_style_list_get_ptr+0x4c>
lv_style_t * class = lv_style_list_get_style(list, ci);
62da: b2f1 uxtb r1, r6
62dc: 4628 mov r0, r5
62de: 4798 blx r3
int16_t weight_act = _lv_style_get_ptr(class, prop, &value_act);
62e0: aa01 add r2, sp, #4
62e2: 4639 mov r1, r7
62e4: 47d8 blx fp
if(weight_act == weight_goal) {
62e6: 4582 cmp sl, r0
62e8: 4b0d ldr r3, [pc, #52] ; (6320 <_lv_style_list_get_ptr+0x78>)
62ea: d106 bne.n 62fa <_lv_style_list_get_ptr+0x52>
*res = value_act;
62ec: 9b01 ldr r3, [sp, #4]
62ee: f8c8 3000 str.w r3, [r8]
return LV_RES_OK;
62f2: 2001 movs r0, #1
}
62f4: b003 add sp, #12
62f6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) {
62fa: 796a ldrb r2, [r5, #5]
62fc: 0791 lsls r1, r2, #30
62fe: d506 bpl.n 630e <_lv_style_list_get_ptr+0x66>
6300: 2800 cmp r0, #0
6302: db04 blt.n 630e <_lv_style_list_get_ptr+0x66>
6304: f1b9 0f00 cmp.w r9, #0
6308: d101 bne.n 630e <_lv_style_list_get_ptr+0x66>
630a: 0752 lsls r2, r2, #29
630c: d5ee bpl.n 62ec <_lv_style_list_get_ptr+0x44>
else if(weight_act > weight) {
630e: 4284 cmp r4, r0
*res = value_act;
6310: bfbe ittt lt
6312: 9a01 ldrlt r2, [sp, #4]
6314: f8c8 2000 strlt.w r2, [r8]
6318: 4604 movlt r4, r0
for(ci = 0; ci < list->style_cnt; ci++) {
631a: 3601 adds r6, #1
631c: e7d4 b.n 62c8 <_lv_style_list_get_ptr+0x20>
631e: bf00 nop
6320: 00005719 .word 0x00005719
6324: 00005ed9 .word 0x00005ed9
00006328 <lv_color_mix>:
* @param c2 the second color to mix (usually the background)
* @param mix The ratio of the colors. 0: full `c2`, 255: full `c1`, 127: half `c1` and half`c2`
* @return the mixed color
*/
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix)
{
6328: b5f0 push {r4, r5, r6, r7, lr}
lv_color_t ret;
#if LV_COLOR_DEPTH != 1
/*LV_COLOR_DEPTH == 8, 16 or 32*/
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
632a: f3c1 1345 ubfx r3, r1, #5, #6
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
632e: f1c2 06ff rsb r6, r2, #255 ; 0xff
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
6332: f3c0 1445 ubfx r4, r0, #5, #6
6336: 4373 muls r3, r6
6338: fb04 3302 mla r3, r4, r2, r3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
633c: f001 041f and.w r4, r1, #31
6340: f000 071f and.w r7, r0, #31
6344: 4374 muls r4, r6
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
6346: f248 0581 movw r5, #32897 ; 0x8081
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
634a: fb07 4402 mla r4, r7, r2, r4
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
634e: 436b muls r3, r5
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
6350: 436c muls r4, r5
#else
/*LV_COLOR_DEPTH == 1*/
ret.full = mix > LV_OPA_50 ? c1.full : c2.full;
#endif
return ret;
6352: f3c3 53c5 ubfx r3, r3, #23, #6
6356: f3c4 54c4 ubfx r4, r4, #23, #5
635a: ea44 1443 orr.w r4, r4, r3, lsl #5
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
635e: f3c1 23c4 ubfx r3, r1, #11, #5
6362: 4373 muls r3, r6
6364: f3c0 20c4 ubfx r0, r0, #11, #5
6368: fb00 3202 mla r2, r0, r2, r3
636c: fb05 f302 mul.w r3, r5, r2
6370: 0ddb lsrs r3, r3, #23
}
6372: ea44 20c3 orr.w r0, r4, r3, lsl #11
6376: bdf0 pop {r4, r5, r6, r7, pc}
00006378 <color_blend_true_color_additive>:
}
}
}
static inline lv_color_t color_blend_true_color_additive(lv_color_t fg, lv_color_t bg, lv_opa_t opa)
{
6378: 460b mov r3, r1
if(opa <= LV_OPA_MIN) return bg;
637a: 2a05 cmp r2, #5
{
637c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
6380: f000 0c1f and.w ip, r0, #31
6384: f3c0 1e45 ubfx lr, r0, #5, #6
6388: f3c0 28c4 ubfx r8, r0, #11, #5
638c: f003 061f and.w r6, r3, #31
6390: f3c3 1545 ubfx r5, r3, #5, #6
6394: f3c3 24c4 ubfx r4, r3, #11, #5
if(opa <= LV_OPA_MIN) return bg;
6398: d802 bhi.n 63a0 <color_blend_true_color_additive+0x28>
639a: 4608 mov r0, r1
#endif
if(opa == LV_OPA_COVER) return fg;
return lv_color_mix(fg, bg, opa);
}
639c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
tmp = bg.ch.red + fg.ch.red;
63a0: eb04 0308 add.w r3, r4, r8
fg.ch.red = LV_MATH_MIN(tmp, 31);
63a4: 2b1f cmp r3, #31
tmp = bg.ch.green + fg.ch.green;
63a6: eb05 040e add.w r4, r5, lr
fg.ch.red = LV_MATH_MIN(tmp, 31);
63aa: bf28 it cs
63ac: 231f movcs r3, #31
tmp = bg.ch.blue + fg.ch.blue;
63ae: eb06 050c add.w r5, r6, ip
fg.ch.green = LV_MATH_MIN(tmp, 63);
63b2: 2c3f cmp r4, #63 ; 0x3f
63b4: bf28 it cs
63b6: 243f movcs r4, #63 ; 0x3f
fg.ch.blue = LV_MATH_MIN(tmp, 31);
63b8: 2d1f cmp r5, #31
63ba: bf28 it cs
63bc: 251f movcs r5, #31
if(opa == LV_OPA_COVER) return fg;
63be: 2aff cmp r2, #255 ; 0xff
fg.ch.red = LV_MATH_MIN(tmp, 31);
63c0: f003 031f and.w r3, r3, #31
fg.ch.green = LV_MATH_MIN(tmp, 63);
63c4: f004 043f and.w r4, r4, #63 ; 0x3f
fg.ch.blue = LV_MATH_MIN(tmp, 31);
63c8: f005 051f and.w r5, r5, #31
if(opa == LV_OPA_COVER) return fg;
63cc: d108 bne.n 63e0 <color_blend_true_color_additive+0x68>
63ce: f04f 0000 mov.w r0, #0
63d2: f365 0004 bfi r0, r5, #0, #5
63d6: f364 104a bfi r0, r4, #5, #6
63da: f363 20cf bfi r0, r3, #11, #5
63de: e7dd b.n 639c <color_blend_true_color_additive+0x24>
return lv_color_mix(fg, bg, opa);
63e0: f365 0004 bfi r0, r5, #0, #5
63e4: f364 104a bfi r0, r4, #5, #6
63e8: f363 20cf bfi r0, r3, #11, #5
}
63ec: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
return lv_color_mix(fg, bg, opa);
63f0: 4b00 ldr r3, [pc, #0] ; (63f4 <color_blend_true_color_additive+0x7c>)
63f2: 4718 bx r3
63f4: 00006329 .word 0x00006329
000063f8 <color_blend_true_color_subtractive>:
static inline lv_color_t color_blend_true_color_subtractive(lv_color_t fg, lv_color_t bg, lv_opa_t opa)
{
63f8: 460b mov r3, r1
if(opa <= LV_OPA_MIN) return bg;
63fa: 2a05 cmp r2, #5
{
63fc: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
6400: f000 0c1f and.w ip, r0, #31
6404: f3c0 1e45 ubfx lr, r0, #5, #6
6408: f3c0 28c4 ubfx r8, r0, #11, #5
640c: f003 061f and.w r6, r3, #31
6410: f3c3 1545 ubfx r5, r3, #5, #6
6414: f3c3 24c4 ubfx r4, r3, #11, #5
if(opa <= LV_OPA_MIN) return bg;
6418: d802 bhi.n 6420 <color_blend_true_color_subtractive+0x28>
641a: 4608 mov r0, r1
fg.ch.blue = LV_MATH_MAX(tmp, 0);
if(opa == LV_OPA_COVER) return fg;
return lv_color_mix(fg, bg, opa);
}
641c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
tmp = bg.ch.red - fg.ch.red;
6420: eba4 0308 sub.w r3, r4, r8
tmp = bg.ch.green - fg.ch.green;
6424: eba5 040e sub.w r4, r5, lr
tmp = bg.ch.blue - fg.ch.blue;
6428: eba6 050c sub.w r5, r6, ip
fg.ch.red = LV_MATH_MAX(tmp, 0);
642c: ea23 73e3 bic.w r3, r3, r3, asr #31
fg.ch.green = LV_MATH_MAX(tmp, 0);
6430: ea24 74e4 bic.w r4, r4, r4, asr #31
fg.ch.blue = LV_MATH_MAX(tmp, 0);
6434: ea25 75e5 bic.w r5, r5, r5, asr #31
if(opa == LV_OPA_COVER) return fg;
6438: 2aff cmp r2, #255 ; 0xff
fg.ch.red = LV_MATH_MAX(tmp, 0);
643a: f003 031f and.w r3, r3, #31
fg.ch.green = LV_MATH_MAX(tmp, 0);
643e: f004 043f and.w r4, r4, #63 ; 0x3f
fg.ch.blue = LV_MATH_MAX(tmp, 0);
6442: f005 051f and.w r5, r5, #31
if(opa == LV_OPA_COVER) return fg;
6446: d108 bne.n 645a <color_blend_true_color_subtractive+0x62>
6448: f04f 0000 mov.w r0, #0
644c: f365 0004 bfi r0, r5, #0, #5
6450: f364 104a bfi r0, r4, #5, #6
6454: f363 20cf bfi r0, r3, #11, #5
6458: e7e0 b.n 641c <color_blend_true_color_subtractive+0x24>
return lv_color_mix(fg, bg, opa);
645a: f365 0004 bfi r0, r5, #0, #5
645e: f364 104a bfi r0, r4, #5, #6
6462: f363 20cf bfi r0, r3, #11, #5
}
6466: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
return lv_color_mix(fg, bg, opa);
646a: 4b01 ldr r3, [pc, #4] ; (6470 <color_blend_true_color_subtractive+0x78>)
646c: 4718 bx r3
646e: bf00 nop
6470: 00006329 .word 0x00006329
00006474 <_lv_blend_fill>:
{
6474: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
6478: b08d sub sp, #52 ; 0x34
647a: 4605 mov r5, r0
647c: 9305 str r3, [sp, #20]
647e: f89d 305c ldrb.w r3, [sp, #92] ; 0x5c
6482: f89d 7058 ldrb.w r7, [sp, #88] ; 0x58
6486: f89d b060 ldrb.w fp, [sp, #96] ; 0x60
648a: 9304 str r3, [sp, #16]
if(opa < LV_OPA_MIN) return;
648c: 2b04 cmp r3, #4
{
648e: 460e mov r6, r1
6490: 4614 mov r4, r2
if(opa < LV_OPA_MIN) return;
6492: f240 80a3 bls.w 65dc <_lv_blend_fill+0x168>
if(mask_res == LV_DRAW_MASK_RES_TRANSP) return;
6496: 2f00 cmp r7, #0
6498: f000 80a0 beq.w 65dc <_lv_blend_fill+0x168>
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
649c: 4ba4 ldr r3, [pc, #656] ; (6730 <_lv_blend_fill+0x2bc>)
649e: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
64a0: 4ba4 ldr r3, [pc, #656] ; (6734 <_lv_blend_fill+0x2c0>)
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
64a2: 4682 mov sl, r0
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
64a4: 4798 blx r3
is_common = _lv_area_intersect(&draw_area, clip_area, fill_area);
64a6: 4ba4 ldr r3, [pc, #656] ; (6738 <_lv_blend_fill+0x2c4>)
lv_color_t * disp_buf = vdb->buf_act;
64a8: f8d0 9008 ldr.w r9, [r0, #8]
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
64ac: 4680 mov r8, r0
is_common = _lv_area_intersect(&draw_area, clip_area, fill_area);
64ae: 4632 mov r2, r6
64b0: 4629 mov r1, r5
64b2: a80a add r0, sp, #40 ; 0x28
64b4: 4798 blx r3
if(!is_common) return;
64b6: 2800 cmp r0, #0
64b8: f000 8090 beq.w 65dc <_lv_blend_fill+0x168>
draw_area.x1 -= disp_area->x1;
64bc: f8bd 2028 ldrh.w r2, [sp, #40] ; 0x28
64c0: f8b8 0010 ldrh.w r0, [r8, #16]
draw_area.x2 -= disp_area->x1;
64c4: f8bd 302c ldrh.w r3, [sp, #44] ; 0x2c
draw_area.y1 -= disp_area->y1;
64c8: f8b8 6012 ldrh.w r6, [r8, #18]
64cc: f8bd 502a ldrh.w r5, [sp, #42] ; 0x2a
draw_area.x1 -= disp_area->x1;
64d0: 1a11 subs r1, r2, r0
draw_area.x2 -= disp_area->x1;
64d2: 1a18 subs r0, r3, r0
64d4: f8ad 002c strh.w r0, [sp, #44] ; 0x2c
draw_area.y2 -= disp_area->y1;
64d8: f8bd 002e ldrh.w r0, [sp, #46] ; 0x2e
64dc: 1b80 subs r0, r0, r6
draw_area.y1 -= disp_area->y1;
64de: 1bad subs r5, r5, r6
draw_area.y2 -= disp_area->y1;
64e0: f8ad 002e strh.w r0, [sp, #46] ; 0x2e
if(mask && disp->driver.antialiasing == 0)
64e4: 9805 ldr r0, [sp, #20]
draw_area.x1 -= disp_area->x1;
64e6: b209 sxth r1, r1
draw_area.y1 -= disp_area->y1;
64e8: b22d sxth r5, r5
draw_area.x1 -= disp_area->x1;
64ea: f8ad 1028 strh.w r1, [sp, #40] ; 0x28
draw_area.y1 -= disp_area->y1;
64ee: f8ad 502a strh.w r5, [sp, #42] ; 0x2a
if(mask && disp->driver.antialiasing == 0)
64f2: 2800 cmp r0, #0
64f4: d145 bne.n 6582 <_lv_blend_fill+0x10e>
if(disp->driver.set_px_cb) {
64f6: f8da 0014 ldr.w r0, [sl, #20]
64fa: b2a6 uxth r6, r4
64fc: 2800 cmp r0, #0
64fe: d15a bne.n 65b6 <_lv_blend_fill+0x142>
else if(mode == LV_BLEND_MODE_NORMAL) {
6500: f1bb 0f00 cmp.w fp, #0
6504: f040 8227 bne.w 6956 <_lv_blend_fill+0x4e2>
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6508: 4b89 ldr r3, [pc, #548] ; (6730 <_lv_blend_fill+0x2bc>)
650a: 4798 blx r3
* @param area_p pointer to an area
* @return the width of the area (if x1 == x2 -> width = 1)
*/
static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p)
{
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
650c: f8b8 3014 ldrh.w r3, [r8, #20]
6510: f8b8 2010 ldrh.w r2, [r8, #16]
* @param area_p pointer to an area
* @return the height of the area (if y1 == y2 -> height = 1)
*/
static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p)
{
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
6514: f9bd 102a ldrsh.w r1, [sp, #42] ; 0x2a
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
6518: 3301 adds r3, #1
651a: eba3 0802 sub.w r8, r3, r2
651e: f8bd 302c ldrh.w r3, [sp, #44] ; 0x2c
6522: f9bd 2028 ldrsh.w r2, [sp, #40] ; 0x28
6526: 3301 adds r3, #1
6528: 1a9b subs r3, r3, r2
652a: b21b sxth r3, r3
652c: 9306 str r3, [sp, #24]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
652e: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e
6532: 9308 str r3, [sp, #32]
6534: 3301 adds r3, #1
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
6536: fa0f f888 sxth.w r8, r8
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
653a: 1a5b subs r3, r3, r1
int32_t draw_area_h = lv_area_get_height(draw_area);
653c: b21b sxth r3, r3
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
653e: fb08 2201 mla r2, r8, r1, r2
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
6542: 2f01 cmp r7, #1
int32_t draw_area_h = lv_area_get_height(draw_area);
6544: 9307 str r3, [sp, #28]
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6546: 4682 mov sl, r0
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
6548: 460b mov r3, r1
654a: eb09 0542 add.w r5, r9, r2, lsl #1
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
654e: f040 8132 bne.w 67b6 <_lv_blend_fill+0x342>
if(opa > LV_OPA_MAX) {
6552: 9b04 ldr r3, [sp, #16]
6554: 2bfa cmp r3, #250 ; 0xfa
6556: f240 809e bls.w 6696 <_lv_blend_fill+0x222>
if(disp->driver.gpu_fill_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) {
655a: 6a43 ldr r3, [r0, #36] ; 0x24
655c: 2b00 cmp r3, #0
655e: f000 8095 beq.w 668c <_lv_blend_fill+0x218>
6562: 4b76 ldr r3, [pc, #472] ; (673c <_lv_blend_fill+0x2c8>)
6564: a80a add r0, sp, #40 ; 0x28
6566: 4798 blx r3
6568: 28f0 cmp r0, #240 ; 0xf0
656a: f240 808f bls.w 668c <_lv_blend_fill+0x218>
disp->driver.gpu_fill_cb(&disp->driver, disp_buf, disp_w, draw_area, color);
656e: f8da 5024 ldr.w r5, [sl, #36] ; 0x24
6572: f8ad 4000 strh.w r4, [sp]
6576: ab0a add r3, sp, #40 ; 0x28
6578: 4642 mov r2, r8
657a: 4649 mov r1, r9
657c: 4650 mov r0, sl
657e: 47a8 blx r5
return;
6580: e02c b.n 65dc <_lv_blend_fill+0x168>
if(mask && disp->driver.antialiasing == 0)
6582: f89a 0008 ldrb.w r0, [sl, #8]
6586: 07c0 lsls r0, r0, #31
6588: d4b5 bmi.n 64f6 <_lv_blend_fill+0x82>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
658a: 1c58 adds r0, r3, #1
658c: 1a80 subs r0, r0, r2
for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP;
658e: 9e05 ldr r6, [sp, #20]
int32_t mask_w = lv_area_get_width(&draw_area);
6590: fa0f fe80 sxth.w lr, r0
for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP;
6594: 9805 ldr r0, [sp, #20]
6596: f1c6 0c01 rsb ip, r6, #1
659a: 3801 subs r0, #1
659c: eb0c 0600 add.w r6, ip, r0
65a0: 45b6 cmp lr, r6
65a2: dda8 ble.n 64f6 <_lv_blend_fill+0x82>
65a4: f810 6f01 ldrb.w r6, [r0, #1]!
65a8: 2e80 cmp r6, #128 ; 0x80
65aa: f04f 36ff mov.w r6, #4294967295 ; 0xffffffff
65ae: bf98 it ls
65b0: 2600 movls r6, #0
65b2: 7006 strb r6, [r0, #0]
65b4: e7f2 b.n 659c <_lv_blend_fill+0x128>
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
65b6: 4b5e ldr r3, [pc, #376] ; (6730 <_lv_blend_fill+0x2bc>)
65b8: 4798 blx r3
65ba: f8b8 2014 ldrh.w r2, [r8, #20]
65be: f8b8 3010 ldrh.w r3, [r8, #16]
65c2: f9bd 502a ldrsh.w r5, [sp, #42] ; 0x2a
65c6: 3201 adds r2, #1
65c8: 1ad2 subs r2, r2, r3
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
65ca: 2f01 cmp r7, #1
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
65cc: 4606 mov r6, r0
65ce: b212 sxth r2, r2
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
65d0: d121 bne.n 6616 <_lv_blend_fill+0x1a2>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
65d2: 46aa mov sl, r5
65d4: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e
65d8: 459a cmp sl, r3
65da: dd02 ble.n 65e2 <_lv_blend_fill+0x16e>
}
65dc: b00d add sp, #52 ; 0x34
65de: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
for(x = draw_area->x1; x <= draw_area->x2; x++) {
65e2: f9bd 7028 ldrsh.w r7, [sp, #40] ; 0x28
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, opa);
65e6: fa0f f88a sxth.w r8, sl
for(x = draw_area->x1; x <= draw_area->x2; x++) {
65ea: f9bd 302c ldrsh.w r3, [sp, #44] ; 0x2c
65ee: 429f cmp r7, r3
65f0: dd02 ble.n 65f8 <_lv_blend_fill+0x184>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
65f2: f10a 0a01 add.w sl, sl, #1
65f6: e7ed b.n 65d4 <_lv_blend_fill+0x160>
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, opa);
65f8: 9b04 ldr r3, [sp, #16]
65fa: 9302 str r3, [sp, #8]
65fc: f8ad 4004 strh.w r4, [sp, #4]
6600: f8cd 8000 str.w r8, [sp]
6604: b23b sxth r3, r7
6606: 6975 ldr r5, [r6, #20]
6608: 9205 str r2, [sp, #20]
660a: 4649 mov r1, r9
660c: 4630 mov r0, r6
660e: 47a8 blx r5
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6610: 3701 adds r7, #1
6612: 9a05 ldr r2, [sp, #20]
6614: e7e9 b.n 65ea <_lv_blend_fill+0x176>
6616: f8bd 702c ldrh.w r7, [sp, #44] ; 0x2c
const lv_opa_t * mask_tmp = mask - draw_area->x1;
661a: f9bd 3028 ldrsh.w r3, [sp, #40] ; 0x28
661e: 9905 ldr r1, [sp, #20]
6620: 3701 adds r7, #1
6622: 1aff subs r7, r7, r3
6624: eba1 0a03 sub.w sl, r1, r3
6628: b23b sxth r3, r7
662a: 9305 str r3, [sp, #20]
for(y = draw_area->y1; y <= draw_area->y2; y++) {
662c: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e
6630: 429d cmp r5, r3
6632: dcd3 bgt.n 65dc <_lv_blend_fill+0x168>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6634: f9bd 8028 ldrsh.w r8, [sp, #40] ; 0x28
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color,
6638: fa0f fb85 sxth.w fp, r5
for(x = draw_area->x1; x <= draw_area->x2; x++) {
663c: f9bd 302c ldrsh.w r3, [sp, #44] ; 0x2c
6640: 4598 cmp r8, r3
6642: dd03 ble.n 664c <_lv_blend_fill+0x1d8>
mask_tmp += draw_area_w;
6644: 9b05 ldr r3, [sp, #20]
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6646: 3501 adds r5, #1
mask_tmp += draw_area_w;
6648: 449a add sl, r3
for(y = draw_area->y1; y <= draw_area->y2; y++) {
664a: e7ef b.n 662c <_lv_blend_fill+0x1b8>
(uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8);
664c: f81a 3008 ldrb.w r3, [sl, r8]
6650: 9904 ldr r1, [sp, #16]
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color,
6652: f8ad 4004 strh.w r4, [sp, #4]
(uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8);
6656: fb13 f301 smulbb r3, r3, r1
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color,
665a: 0a1b lsrs r3, r3, #8
665c: 9302 str r3, [sp, #8]
665e: f8cd b000 str.w fp, [sp]
6662: fa0f f388 sxth.w r3, r8
6666: 6977 ldr r7, [r6, #20]
6668: 9206 str r2, [sp, #24]
666a: 4649 mov r1, r9
666c: 4630 mov r0, r6
666e: 47b8 blx r7
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6670: f108 0801 add.w r8, r8, #1
6674: 9a06 ldr r2, [sp, #24]
6676: e7e1 b.n 663c <_lv_blend_fill+0x1c8>
lv_color_fill(disp_buf_first, color, draw_area_w);
6678: 4628 mov r0, r5
667a: 9a06 ldr r2, [sp, #24]
667c: 4631 mov r1, r6
667e: 47b8 blx r7
disp_buf_first += disp_w;
6680: 4445 add r5, r8
for(y = 0; y < draw_area_h; y++) {
6682: 3401 adds r4, #1
6684: 9b07 ldr r3, [sp, #28]
6686: 42a3 cmp r3, r4
6688: dcf6 bgt.n 6678 <_lv_blend_fill+0x204>
668a: e7a7 b.n 65dc <_lv_blend_fill+0x168>
lv_color_fill(disp_buf_first, color, draw_area_w);
668c: 4f2c ldr r7, [pc, #176] ; (6740 <_lv_blend_fill+0x2cc>)
disp_buf_first += disp_w;
668e: ea4f 0848 mov.w r8, r8, lsl #1
6692: 2400 movs r4, #0
6694: e7f6 b.n 6684 <_lv_blend_fill+0x210>
if(disp->driver.gpu_blend_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) {
6696: 6a03 ldr r3, [r0, #32]
6698: b313 cbz r3, 66e0 <_lv_blend_fill+0x26c>
669a: 4b28 ldr r3, [pc, #160] ; (673c <_lv_blend_fill+0x2c8>)
669c: a80a add r0, sp, #40 ; 0x28
669e: 4798 blx r3
66a0: 28f0 cmp r0, #240 ; 0xf0
66a2: d91d bls.n 66e0 <_lv_blend_fill+0x26c>
66a4: 4b27 ldr r3, [pc, #156] ; (6744 <_lv_blend_fill+0x2d0>)
for(x = 0; x < draw_area_w ; x++) blend_buf[x].full = color.full;
66a6: 9a06 ldr r2, [sp, #24]
66a8: 455a cmp r2, fp
66aa: dc14 bgt.n 66d6 <_lv_blend_fill+0x262>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
66ac: f9bd 602a ldrsh.w r6, [sp, #42] ; 0x2a
disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, blend_buf, draw_area_w, opa);
66b0: 4f24 ldr r7, [pc, #144] ; (6744 <_lv_blend_fill+0x2d0>)
disp_buf_first += disp_w;
66b2: ea4f 0848 mov.w r8, r8, lsl #1
for(y = draw_area->y1; y <= draw_area->y2; y++) {
66b6: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e
66ba: 429e cmp r6, r3
66bc: dc8e bgt.n 65dc <_lv_blend_fill+0x168>
disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, blend_buf, draw_area_w, opa);
66be: 9b04 ldr r3, [sp, #16]
66c0: 9300 str r3, [sp, #0]
66c2: 4629 mov r1, r5
66c4: f8da 4020 ldr.w r4, [sl, #32]
66c8: 9b06 ldr r3, [sp, #24]
66ca: 463a mov r2, r7
66cc: 4650 mov r0, sl
66ce: 47a0 blx r4
disp_buf_first += disp_w;
66d0: 4445 add r5, r8
for(y = draw_area->y1; y <= draw_area->y2; y++) {
66d2: 3601 adds r6, #1
66d4: e7ef b.n 66b6 <_lv_blend_fill+0x242>
for(x = 0; x < draw_area_w ; x++) blend_buf[x].full = color.full;
66d6: f823 6b02 strh.w r6, [r3], #2
66da: f10b 0b01 add.w fp, fp, #1
66de: e7e2 b.n 66a6 <_lv_blend_fill+0x232>
lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa);
66e0: 9a04 ldr r2, [sp, #16]
66e2: 4b19 ldr r3, [pc, #100] ; (6748 <_lv_blend_fill+0x2d4>)
66e4: 4620 mov r0, r4
lv_color_t last_dest_color = LV_COLOR_BLACK;
66e6: f04f 0100 mov.w r1, #0
lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa);
66ea: 4798 blx r3
LV_ATTRIBUTE_FAST_MEM static inline void lv_color_premult(lv_color_t c, uint8_t mix, uint16_t * out)
{
#if LV_COLOR_DEPTH != 1
out[0] = (uint16_t) LV_COLOR_GET_R(c) * mix;
66ec: 9e04 ldr r6, [sp, #16]
66ee: f3c4 22c4 ubfx r2, r4, #11, #5
66f2: 4372 muls r2, r6
66f4: 9205 str r2, [sp, #20]
out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix;
66f6: f3c4 1245 ubfx r2, r4, #5, #6
out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix;
66fa: f004 041f and.w r4, r4, #31
out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix;
66fe: fb02 fb06 mul.w fp, r2, r6
out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix;
6702: fb04 fa06 mul.w sl, r4, r6
disp_buf_first += disp_w;
6706: ea4f 0248 mov.w r2, r8, lsl #1
lv_opa_t opa_inv = 255 - opa;
670a: 43f6 mvns r6, r6
lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa);
670c: f000 031f and.w r3, r0, #31
6710: f3c0 1c45 ubfx ip, r0, #5, #6
disp_buf_first += disp_w;
6714: 9204 str r2, [sp, #16]
lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa);
6716: f3c0 20c4 ubfx r0, r0, #11, #5
for(y = 0; y < draw_area_h; y++) {
671a: f04f 0800 mov.w r8, #0
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix_premult(uint16_t * premult_c1, lv_color_t c2, uint8_t mix)
{
lv_color_t ret;
#if LV_COLOR_DEPTH != 1
/*LV_COLOR_DEPTH == 8, 16 or 32*/
LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8);
671e: b2f6 uxtb r6, r6
6720: 9a07 ldr r2, [sp, #28]
6722: 4542 cmp r2, r8
6724: f77f af5a ble.w 65dc <_lv_blend_fill+0x168>
6728: 462f mov r7, r5
for(x = 0; x < draw_area_w; x++) {
672a: f04f 0e00 mov.w lr, #0
672e: e03a b.n 67a6 <_lv_blend_fill+0x332>
6730: 0000526d .word 0x0000526d
6734: 0000dc65 .word 0x0000dc65
6738: 0000e111 .word 0x0000e111
673c: 0000e0f5 .word 0x0000e0f5
6740: 0000e58d .word 0x0000e58d
6744: 200030d8 .word 0x200030d8
6748: 00006329 .word 0x00006329
if(last_dest_color.full != disp_buf_first[x].full) {
674c: 463a mov r2, r7
674e: fa1f f981 uxth.w r9, r1
6752: 8814 ldrh r4, [r2, #0]
6754: 45a1 cmp r9, r4
6756: f107 0702 add.w r7, r7, #2
675a: d015 beq.n 6788 <_lv_blend_fill+0x314>
675c: 7850 ldrb r0, [r2, #1]
675e: 9b05 ldr r3, [sp, #20]
last_dest_color = disp_buf_first[x];
6760: f837 1c02 ldrh.w r1, [r7, #-2]
6764: 08c0 lsrs r0, r0, #3
6766: fb00 3006 mla r0, r0, r6, r3
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
676a: 7813 ldrb r3, [r2, #0]
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
676c: f3c4 1445 ubfx r4, r4, #5, #6
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
6770: f003 031f and.w r3, r3, #31
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
6774: fb04 b406 mla r4, r4, r6, fp
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
6778: fb03 a306 mla r3, r3, r6, sl
LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8);
677c: f3c0 2004 ubfx r0, r0, #8, #5
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
6780: f3c4 2c05 ubfx ip, r4, #8, #6
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
6784: f3c3 2304 ubfx r3, r3, #8, #5
disp_buf_first[x] = last_res_color;
6788: 7814 ldrb r4, [r2, #0]
678a: f363 0404 bfi r4, r3, #0, #5
678e: 7014 strb r4, [r2, #0]
6790: 8814 ldrh r4, [r2, #0]
6792: f36c 144a bfi r4, ip, #5, #6
6796: 8014 strh r4, [r2, #0]
6798: f3c4 2407 ubfx r4, r4, #8, #8
679c: f360 04c7 bfi r4, r0, #3, #5
67a0: 7054 strb r4, [r2, #1]
for(x = 0; x < draw_area_w; x++) {
67a2: f10e 0e01 add.w lr, lr, #1
67a6: 9a06 ldr r2, [sp, #24]
67a8: 4572 cmp r2, lr
67aa: dccf bgt.n 674c <_lv_blend_fill+0x2d8>
disp_buf_first += disp_w;
67ac: 9a04 ldr r2, [sp, #16]
for(y = 0; y < draw_area_h; y++) {
67ae: f108 0801 add.w r8, r8, #1
disp_buf_first += disp_w;
67b2: 4415 add r5, r2
for(y = 0; y < draw_area_h; y++) {
67b4: e7b4 b.n 6720 <_lv_blend_fill+0x2ac>
last_dest_color.full = disp_buf_first[0].full;
67b6: f839 1012 ldrh.w r1, [r9, r2, lsl #1]
disp_buf_first += disp_w;
67ba: ea4f 0248 mov.w r2, r8, lsl #1
67be: 9209 str r2, [sp, #36] ; 0x24
if(opa > LV_OPA_MAX) {
67c0: 9a04 ldr r2, [sp, #16]
67c2: 2afa cmp r2, #250 ; 0xfa
67c4: f240 80c4 bls.w 6950 <_lv_blend_fill+0x4dc>
int32_t x_end4 = draw_area_w - 4;
67c8: 9b06 ldr r3, [sp, #24]
FILL_NORMAL_MASK_PX(x, color)
67ca: f8df 8298 ldr.w r8, [pc, #664] ; 6a64 <_lv_blend_fill+0x5f0>
int32_t x_end4 = draw_area_w - 4;
67ce: 3b04 subs r3, #4
67d0: 9304 str r3, [sp, #16]
for(y = 0; y < draw_area_h; y++) {
67d2: 9b07 ldr r3, [sp, #28]
67d4: 455b cmp r3, fp
67d6: f77f af01 ble.w 65dc <_lv_blend_fill+0x168>
67da: f8dd a014 ldr.w sl, [sp, #20]
67de: 46a9 mov r9, r5
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
67e0: 2400 movs r4, #0
67e2: e013 b.n 680c <_lv_blend_fill+0x398>
FILL_NORMAL_MASK_PX(x, color)
67e4: f8b9 1000 ldrh.w r1, [r9]
67e8: 4630 mov r0, r6
67ea: 47c0 blx r8
67ec: f8a9 0000 strh.w r0, [r9]
67f0: e009 b.n 6806 <_lv_blend_fill+0x392>
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
67f2: f01a 0f03 tst.w sl, #3
67f6: d00d beq.n 6814 <_lv_blend_fill+0x3a0>
FILL_NORMAL_MASK_PX(x, color)
67f8: f81a 2b01 ldrb.w r2, [sl], #1
67fc: b11a cbz r2, 6806 <_lv_blend_fill+0x392>
67fe: 2aff cmp r2, #255 ; 0xff
6800: d1f0 bne.n 67e4 <_lv_blend_fill+0x370>
6802: f8a9 6000 strh.w r6, [r9]
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
6806: 3401 adds r4, #1
6808: f109 0902 add.w r9, r9, #2
680c: 9b06 ldr r3, [sp, #24]
680e: 42a3 cmp r3, r4
6810: 4657 mov r7, sl
6812: dcee bgt.n 67f2 <_lv_blend_fill+0x37e>
6814: eb05 0944 add.w r9, r5, r4, lsl #1
for(; x <= x_end4; x += 4) {
6818: 9b04 ldr r3, [sp, #16]
681a: 42a3 cmp r3, r4
681c: da0e bge.n 683c <_lv_blend_fill+0x3c8>
681e: 3f01 subs r7, #1
6820: eb05 0944 add.w r9, r5, r4, lsl #1
for(; x < draw_area_w ; x++) {
6824: 9b06 ldr r3, [sp, #24]
6826: 42a3 cmp r3, r4
6828: dc4c bgt.n 68c4 <_lv_blend_fill+0x450>
disp_buf_first += disp_w;
682a: 9b09 ldr r3, [sp, #36] ; 0x24
682c: 441d add r5, r3
mask += draw_area_w;
682e: e9dd 3205 ldrd r3, r2, [sp, #20]
6832: 4413 add r3, r2
6834: 9305 str r3, [sp, #20]
for(y = 0; y < draw_area_h; y++) {
6836: f10b 0b01 add.w fp, fp, #1
683a: e7ca b.n 67d2 <_lv_blend_fill+0x35e>
if(*mask32) {
683c: 683b ldr r3, [r7, #0]
683e: b14b cbz r3, 6854 <_lv_blend_fill+0x3e0>
if((*mask32) == 0xFFFFFFFF) {
6840: 3301 adds r3, #1
6842: d10c bne.n 685e <_lv_blend_fill+0x3ea>
disp_buf_first[x] = color;
6844: f8a9 6000 strh.w r6, [r9]
disp_buf_first[x + 1] = color;
6848: f8a9 6002 strh.w r6, [r9, #2]
disp_buf_first[x + 2] = color;
684c: f8a9 6004 strh.w r6, [r9, #4]
FILL_NORMAL_MASK_PX(x + 3, color)
6850: f8a9 6006 strh.w r6, [r9, #6]
mask32++;
6854: 3704 adds r7, #4
for(; x <= x_end4; x += 4) {
6856: 3404 adds r4, #4
6858: f109 0908 add.w r9, r9, #8
685c: e7dc b.n 6818 <_lv_blend_fill+0x3a4>
FILL_NORMAL_MASK_PX(x, color)
685e: 783a ldrb r2, [r7, #0]
6860: b11a cbz r2, 686a <_lv_blend_fill+0x3f6>
6862: 2aff cmp r2, #255 ; 0xff
6864: d119 bne.n 689a <_lv_blend_fill+0x426>
6866: f8a9 6000 strh.w r6, [r9]
FILL_NORMAL_MASK_PX(x + 1, color)
686a: 787a ldrb r2, [r7, #1]
686c: b11a cbz r2, 6876 <_lv_blend_fill+0x402>
686e: 2aff cmp r2, #255 ; 0xff
6870: d11a bne.n 68a8 <_lv_blend_fill+0x434>
6872: f8a9 6002 strh.w r6, [r9, #2]
FILL_NORMAL_MASK_PX(x + 2, color)
6876: 78ba ldrb r2, [r7, #2]
6878: b11a cbz r2, 6882 <_lv_blend_fill+0x40e>
687a: 2aff cmp r2, #255 ; 0xff
687c: d11b bne.n 68b6 <_lv_blend_fill+0x442>
687e: f8a9 6004 strh.w r6, [r9, #4]
FILL_NORMAL_MASK_PX(x + 3, color)
6882: 78fa ldrb r2, [r7, #3]
6884: 2a00 cmp r2, #0
6886: d0e5 beq.n 6854 <_lv_blend_fill+0x3e0>
6888: 2aff cmp r2, #255 ; 0xff
688a: d0e1 beq.n 6850 <_lv_blend_fill+0x3dc>
688c: f8b9 1006 ldrh.w r1, [r9, #6]
6890: 4630 mov r0, r6
6892: 47c0 blx r8
6894: f8a9 0006 strh.w r0, [r9, #6]
6898: e7dc b.n 6854 <_lv_blend_fill+0x3e0>
FILL_NORMAL_MASK_PX(x, color)
689a: f8b9 1000 ldrh.w r1, [r9]
689e: 4630 mov r0, r6
68a0: 47c0 blx r8
68a2: f8a9 0000 strh.w r0, [r9]
68a6: e7e0 b.n 686a <_lv_blend_fill+0x3f6>
FILL_NORMAL_MASK_PX(x + 1, color)
68a8: f8b9 1002 ldrh.w r1, [r9, #2]
68ac: 4630 mov r0, r6
68ae: 47c0 blx r8
68b0: f8a9 0002 strh.w r0, [r9, #2]
68b4: e7df b.n 6876 <_lv_blend_fill+0x402>
FILL_NORMAL_MASK_PX(x + 2, color)
68b6: f8b9 1004 ldrh.w r1, [r9, #4]
68ba: 4630 mov r0, r6
68bc: 47c0 blx r8
68be: f8a9 0004 strh.w r0, [r9, #4]
68c2: e7de b.n 6882 <_lv_blend_fill+0x40e>
FILL_NORMAL_MASK_PX(x, color)
68c4: f817 2f01 ldrb.w r2, [r7, #1]!
68c8: b11a cbz r2, 68d2 <_lv_blend_fill+0x45e>
68ca: 2aff cmp r2, #255 ; 0xff
68cc: d105 bne.n 68da <_lv_blend_fill+0x466>
68ce: f8a9 6000 strh.w r6, [r9]
for(; x < draw_area_w ; x++) {
68d2: 3401 adds r4, #1
68d4: f109 0902 add.w r9, r9, #2
68d8: e7a4 b.n 6824 <_lv_blend_fill+0x3b0>
FILL_NORMAL_MASK_PX(x, color)
68da: f8b9 1000 ldrh.w r1, [r9]
68de: 4630 mov r0, r6
68e0: 47c0 blx r8
68e2: f8a9 0000 strh.w r0, [r9]
68e6: e7f4 b.n 68d2 <_lv_blend_fill+0x45e>
if(*mask_tmp_x) {
68e8: 9a05 ldr r2, [sp, #20]
68ea: f812 4008 ldrb.w r4, [r2, r8]
68ee: b1d4 cbz r4, 6926 <_lv_blend_fill+0x4b2>
if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa :
68f0: 455c cmp r4, fp
if(*mask_tmp_x != last_mask || last_dest_color.full != disp_buf_first[x].full) {
68f2: f8b7 9000 ldrh.w r9, [r7]
if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa :
68f6: d012 beq.n 691e <_lv_blend_fill+0x4aa>
68f8: 2cff cmp r4, #255 ; 0xff
(uint32_t)((uint32_t)(*mask_tmp_x) * opa) >> 8;
68fa: bf17 itett ne
68fc: 9a04 ldrne r2, [sp, #16]
68fe: f8dd a010 ldreq.w sl, [sp, #16]
6902: fb14 f202 smulbbne r2, r4, r2
if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa :
6906: ea4f 2a12 movne.w sl, r2, lsr #8
690a: 9307 str r3, [sp, #28]
else last_res_color = lv_color_mix(color, disp_buf_first[x], opa_tmp);
690c: 8839 ldrh r1, [r7, #0]
690e: 4b55 ldr r3, [pc, #340] ; (6a64 <_lv_blend_fill+0x5f0>)
6910: 4652 mov r2, sl
6912: 4630 mov r0, r6
6914: 4798 blx r3
6916: 46a3 mov fp, r4
6918: 9b07 ldr r3, [sp, #28]
691a: b280 uxth r0, r0
last_dest_color.full = disp_buf_first[x].full;
691c: e001 b.n 6922 <_lv_blend_fill+0x4ae>
if(*mask_tmp_x != last_mask || last_dest_color.full != disp_buf_first[x].full) {
691e: 4549 cmp r1, r9
6920: d1f3 bne.n 690a <_lv_blend_fill+0x496>
disp_buf_first[x] = last_res_color;
6922: 8038 strh r0, [r7, #0]
if(*mask_tmp_x != last_mask || last_dest_color.full != disp_buf_first[x].full) {
6924: 4649 mov r1, r9
for(x = 0; x < draw_area_w; x++) {
6926: f108 0801 add.w r8, r8, #1
692a: 3702 adds r7, #2
692c: 9a06 ldr r2, [sp, #24]
692e: 4542 cmp r2, r8
6930: dcda bgt.n 68e8 <_lv_blend_fill+0x474>
disp_buf_first += disp_w;
6932: 9a09 ldr r2, [sp, #36] ; 0x24
6934: 4415 add r5, r2
mask += draw_area_w;
6936: e9dd 2405 ldrd r2, r4, [sp, #20]
693a: 4422 add r2, r4
693c: 9205 str r2, [sp, #20]
for(y = draw_area->y1; y <= draw_area->y2; y++) {
693e: 3301 adds r3, #1
6940: 9a08 ldr r2, [sp, #32]
6942: 4293 cmp r3, r2
6944: f73f ae4a bgt.w 65dc <_lv_blend_fill+0x168>
6948: 462f mov r7, r5
for(x = 0; x < draw_area_w; x++) {
694a: f04f 0800 mov.w r8, #0
694e: e7ed b.n 692c <_lv_blend_fill+0x4b8>
last_res_color.full = disp_buf_first[0].full;
6950: 4608 mov r0, r1
lv_opa_t opa_tmp = LV_OPA_TRANSP;
6952: 46da mov sl, fp
6954: e7f4 b.n 6940 <_lv_blend_fill+0x4cc>
switch(mode) {
6956: f1bb 0f01 cmp.w fp, #1
695a: f9b8 0010 ldrsh.w r0, [r8, #16]
695e: f9b8 6014 ldrsh.w r6, [r8, #20]
6962: d00c beq.n 697e <_lv_blend_fill+0x50a>
6964: f1bb 0f02 cmp.w fp, #2
6968: d02d beq.n 69c6 <_lv_blend_fill+0x552>
LV_LOG_WARN("fill_blended: unsupported blend mode");
696a: 4b3f ldr r3, [pc, #252] ; (6a68 <_lv_blend_fill+0x5f4>)
696c: 9300 str r3, [sp, #0]
696e: 493f ldr r1, [pc, #252] ; (6a6c <_lv_blend_fill+0x5f8>)
6970: 4b3f ldr r3, [pc, #252] ; (6a70 <_lv_blend_fill+0x5fc>)
6972: 4c40 ldr r4, [pc, #256] ; (6a74 <_lv_blend_fill+0x600>)
6974: f44f 7204 mov.w r2, #528 ; 0x210
6978: 2002 movs r0, #2
697a: 47a0 blx r4
return;
697c: e62e b.n 65dc <_lv_blend_fill+0x168>
blend_fp = color_blend_true_color_additive;
697e: f8df b0f8 ldr.w fp, [pc, #248] ; 6a78 <_lv_blend_fill+0x604>
6982: 3601 adds r6, #1
6984: 1a36 subs r6, r6, r0
6986: b236 sxth r6, r6
lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1;
6988: fb06 f005 mul.w r0, r6, r5
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
698c: 2f01 cmp r7, #1
lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1;
698e: eb09 0a40 add.w sl, r9, r0, lsl #1
disp_buf_tmp += disp_w;
6992: ea4f 0646 mov.w r6, r6, lsl #1
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
6996: d127 bne.n 69e8 <_lv_blend_fill+0x574>
lv_color_t last_dest_color = LV_COLOR_BLACK;
6998: f04f 0800 mov.w r8, #0
lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa);
699c: 9a04 ldr r2, [sp, #16]
699e: 4b31 ldr r3, [pc, #196] ; (6a64 <_lv_blend_fill+0x5f0>)
69a0: 4641 mov r1, r8
69a2: 4620 mov r0, r4
69a4: 4798 blx r3
for(y = draw_area->y1; y <= draw_area->y2; y++) {
69a6: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e
69aa: 429d cmp r5, r3
69ac: f73f ae16 bgt.w 65dc <_lv_blend_fill+0x168>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
69b0: f9bd 7028 ldrsh.w r7, [sp, #40] ; 0x28
69b4: eb0a 0947 add.w r9, sl, r7, lsl #1
69b8: f9bd 302c ldrsh.w r3, [sp, #44] ; 0x2c
69bc: 429f cmp r7, r3
69be: dd05 ble.n 69cc <_lv_blend_fill+0x558>
disp_buf_tmp += disp_w;
69c0: 44b2 add sl, r6
for(y = draw_area->y1; y <= draw_area->y2; y++) {
69c2: 3501 adds r5, #1
69c4: e7ef b.n 69a6 <_lv_blend_fill+0x532>
switch(mode) {
69c6: f8df b0b4 ldr.w fp, [pc, #180] ; 6a7c <_lv_blend_fill+0x608>
69ca: e7da b.n 6982 <_lv_blend_fill+0x50e>
if(last_dest_color.full != disp_buf_tmp[x].full) {
69cc: f8b9 1000 ldrh.w r1, [r9]
69d0: fa1f f388 uxth.w r3, r8
69d4: 428b cmp r3, r1
69d6: d003 beq.n 69e0 <_lv_blend_fill+0x56c>
last_res_color = blend_fp(color, disp_buf_tmp[x], opa);
69d8: 9a04 ldr r2, [sp, #16]
69da: 4620 mov r0, r4
last_dest_color = disp_buf_tmp[x];
69dc: 4688 mov r8, r1
last_res_color = blend_fp(color, disp_buf_tmp[x], opa);
69de: 47d8 blx fp
disp_buf_tmp[x] = last_res_color;
69e0: f829 0b02 strh.w r0, [r9], #2
for(x = draw_area->x1; x <= draw_area->x2; x++) {
69e4: 3701 adds r7, #1
69e6: e7e7 b.n 69b8 <_lv_blend_fill+0x544>
69e8: f1c2 0201 rsb r2, r2, #1
69ec: eb03 0802 add.w r8, r3, r2
const lv_opa_t * mask_tmp = mask - draw_area->x1;
69f0: 9b05 ldr r3, [sp, #20]
69f2: 1a5f subs r7, r3, r1
last_dest_color.full = disp_buf_tmp[0].full;
69f4: f839 1010 ldrh.w r1, [r9, r0, lsl #1]
69f8: fa0f f888 sxth.w r8, r8
last_res_color.full = disp_buf_tmp[0].full;
69fc: 4608 mov r0, r1
lv_opa_t last_mask = LV_OPA_TRANSP;
69fe: f04f 0c00 mov.w ip, #0
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6a02: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e
6a06: 429d cmp r5, r3
6a08: f73f ade8 bgt.w 65dc <_lv_blend_fill+0x168>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6a0c: f9bd 9028 ldrsh.w r9, [sp, #40] ; 0x28
6a10: eb0a 0349 add.w r3, sl, r9, lsl #1
6a14: f9bd 202c ldrsh.w r2, [sp, #44] ; 0x2c
6a18: 4591 cmp r9, r2
6a1a: dd03 ble.n 6a24 <_lv_blend_fill+0x5b0>
disp_buf_tmp += disp_w;
6a1c: 44b2 add sl, r6
mask_tmp += draw_area_w;
6a1e: 4447 add r7, r8
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6a20: 3501 adds r5, #1
6a22: e7ee b.n 6a02 <_lv_blend_fill+0x58e>
if(mask_tmp[x] == 0) continue;
6a24: f817 2009 ldrb.w r2, [r7, r9]
6a28: b1ba cbz r2, 6a5a <_lv_blend_fill+0x5e6>
if(mask_tmp[x] != last_mask || last_dest_color.full != disp_buf_tmp[x].full) {
6a2a: 4562 cmp r2, ip
6a2c: d103 bne.n 6a36 <_lv_blend_fill+0x5c2>
6a2e: f8b3 e000 ldrh.w lr, [r3]
6a32: 458e cmp lr, r1
6a34: d010 beq.n 6a58 <_lv_blend_fill+0x5e4>
lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : (uint32_t)((uint32_t)mask_tmp[x] * opa) >> 8;
6a36: 2af9 cmp r2, #249 ; 0xf9
6a38: bf94 ite ls
6a3a: 9904 ldrls r1, [sp, #16]
6a3c: 9a04 ldrhi r2, [sp, #16]
last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp);
6a3e: 9305 str r3, [sp, #20]
lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : (uint32_t)((uint32_t)mask_tmp[x] * opa) >> 8;
6a40: bf9c itt ls
6a42: fb12 f201 smulbbls r2, r2, r1
6a46: 0a12 lsrls r2, r2, #8
last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp);
6a48: 8819 ldrh r1, [r3, #0]
6a4a: 4620 mov r0, r4
6a4c: 47d8 blx fp
last_dest_color.full = disp_buf_tmp[x].full;
6a4e: 9b05 ldr r3, [sp, #20]
last_mask = mask_tmp[x];
6a50: f817 c009 ldrb.w ip, [r7, r9]
last_dest_color.full = disp_buf_tmp[x].full;
6a54: 8819 ldrh r1, [r3, #0]
last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp);
6a56: b280 uxth r0, r0
disp_buf_tmp[x] = last_res_color;
6a58: 8018 strh r0, [r3, #0]
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6a5a: f109 0901 add.w r9, r9, #1
6a5e: 3302 adds r3, #2
6a60: e7d8 b.n 6a14 <_lv_blend_fill+0x5a0>
6a62: bf00 nop
6a64: 00006329 .word 0x00006329
6a68: 0002745d .word 0x0002745d
6a6c: 00027427 .word 0x00027427
6a70: 00027482 .word 0x00027482
6a74: 0000eb79 .word 0x0000eb79
6a78: 00006379 .word 0x00006379
6a7c: 000063f9 .word 0x000063f9
00006a80 <_lv_blend_map>:
{
6a80: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
6a84: b08f sub sp, #60 ; 0x3c
6a86: 4689 mov r9, r1
6a88: 9306 str r3, [sp, #24]
6a8a: f89d 3060 ldrb.w r3, [sp, #96] ; 0x60
6a8e: 930a str r3, [sp, #40] ; 0x28
6a90: f89d 3064 ldrb.w r3, [sp, #100] ; 0x64
6a94: f89d a068 ldrb.w sl, [sp, #104] ; 0x68
6a98: 920b str r2, [sp, #44] ; 0x2c
if(opa < LV_OPA_MIN) return;
6a9a: 2b04 cmp r3, #4
{
6a9c: 9305 str r3, [sp, #20]
if(opa < LV_OPA_MIN) return;
6a9e: f240 80d7 bls.w 6c50 <_lv_blend_map+0x1d0>
if(mask_res == LV_DRAW_MASK_RES_TRANSP) return;
6aa2: 9b0a ldr r3, [sp, #40] ; 0x28
6aa4: 2b00 cmp r3, #0
6aa6: f000 80d3 beq.w 6c50 <_lv_blend_map+0x1d0>
is_common = _lv_area_intersect(&draw_area, clip_area, map_area);
6aaa: 460a mov r2, r1
6aac: 4bb6 ldr r3, [pc, #728] ; (6d88 <_lv_blend_map+0x308>)
6aae: 4601 mov r1, r0
6ab0: a80c add r0, sp, #48 ; 0x30
6ab2: 4798 blx r3
if(!is_common) return;
6ab4: 2800 cmp r0, #0
6ab6: f000 80cb beq.w 6c50 <_lv_blend_map+0x1d0>
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6aba: 4bb4 ldr r3, [pc, #720] ; (6d8c <_lv_blend_map+0x30c>)
6abc: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
6abe: 4bb4 ldr r3, [pc, #720] ; (6d90 <_lv_blend_map+0x310>)
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6ac0: 4605 mov r5, r0
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
6ac2: 4798 blx r3
6ac4: 4683 mov fp, r0
lv_color_t * disp_buf = vdb->buf_act;
6ac6: 6883 ldr r3, [r0, #8]
draw_area.y1 -= disp_area->y1;
6ac8: f8bd e032 ldrh.w lr, [sp, #50] ; 0x32
lv_color_t * disp_buf = vdb->buf_act;
6acc: 9308 str r3, [sp, #32]
draw_area.y1 -= disp_area->y1;
6ace: f8bb 3012 ldrh.w r3, [fp, #18]
draw_area.y2 -= disp_area->y1;
6ad2: f8bd c036 ldrh.w ip, [sp, #54] ; 0x36
draw_area.x1 -= disp_area->x1;
6ad6: f8bd 4030 ldrh.w r4, [sp, #48] ; 0x30
6ada: 8a00 ldrh r0, [r0, #16]
draw_area.y1 -= disp_area->y1;
6adc: ebae 0203 sub.w r2, lr, r3
6ae0: fa0f f882 sxth.w r8, r2
draw_area.y2 -= disp_area->y1;
6ae4: ebac 0303 sub.w r3, ip, r3
draw_area.x2 -= disp_area->x1;
6ae8: f8bd 2034 ldrh.w r2, [sp, #52] ; 0x34
draw_area.y2 -= disp_area->y1;
6aec: f8ad 3036 strh.w r3, [sp, #54] ; 0x36
draw_area.x1 -= disp_area->x1;
6af0: 1a21 subs r1, r4, r0
if(mask && disp->driver.antialiasing == 0)
6af2: 9b06 ldr r3, [sp, #24]
draw_area.y1 -= disp_area->y1;
6af4: f8ad 8032 strh.w r8, [sp, #50] ; 0x32
draw_area.x1 -= disp_area->x1;
6af8: b209 sxth r1, r1
draw_area.x2 -= disp_area->x1;
6afa: 1a10 subs r0, r2, r0
draw_area.x1 -= disp_area->x1;
6afc: f8ad 1030 strh.w r1, [sp, #48] ; 0x30
draw_area.x2 -= disp_area->x1;
6b00: f8ad 0034 strh.w r0, [sp, #52] ; 0x34
if(mask && disp->driver.antialiasing == 0)
6b04: 2b00 cmp r3, #0
6b06: d15e bne.n 6bc6 <_lv_blend_map+0x146>
if(disp->driver.set_px_cb) {
6b08: 696b ldr r3, [r5, #20]
6b0a: 2b00 cmp r3, #0
6b0c: d172 bne.n 6bf4 <_lv_blend_map+0x174>
6b0e: f1c4 0401 rsb r4, r4, #1
6b12: 4422 add r2, r4
6b14: f8b9 7004 ldrh.w r7, [r9, #4]
6b18: f8bb 6014 ldrh.w r6, [fp, #20]
6b1c: f9bb 3010 ldrsh.w r3, [fp, #16]
const lv_color_t * map_buf_first = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
6b20: f9bb 0012 ldrsh.w r0, [fp, #18]
6b24: b212 sxth r2, r2
6b26: 9207 str r2, [sp, #28]
6b28: f9b9 2000 ldrsh.w r2, [r9]
6b2c: f9b9 9002 ldrsh.w r9, [r9, #2]
6b30: 3601 adds r6, #1
6b32: 3701 adds r7, #1
6b34: 1af6 subs r6, r6, r3
6b36: 1abf subs r7, r7, r2
6b38: eba9 0900 sub.w r9, r9, r0
6b3c: b236 sxth r6, r6
6b3e: b23f sxth r7, r7
6b40: eba8 0909 sub.w r9, r8, r9
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
6b44: fb06 f408 mul.w r4, r6, r8
const lv_color_t * map_buf_first = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
6b48: fb07 f909 mul.w r9, r7, r9
else if(mode == LV_BLEND_MODE_NORMAL) {
6b4c: f1ba 0f00 cmp.w sl, #0
6b50: f040 81ea bne.w 6f28 <_lv_blend_map+0x4a8>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
6b54: f1ce 0001 rsb r0, lr, #1
map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1));
6b58: 1ad5 subs r5, r2, r3
6b5a: 4484 add ip, r0
6b5c: 9b0b ldr r3, [sp, #44] ; 0x2c
int32_t draw_area_h = lv_area_get_height(draw_area);
6b5e: fa0f f08c sxth.w r0, ip
map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1));
6b62: 1b4d subs r5, r1, r5
int32_t draw_area_h = lv_area_get_height(draw_area);
6b64: 9009 str r0, [sp, #36] ; 0x24
map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1));
6b66: 444d add r5, r9
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
6b68: 9808 ldr r0, [sp, #32]
6b6a: 440c add r4, r1
map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1));
6b6c: eb03 0545 add.w r5, r3, r5, lsl #1
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6b70: 4b86 ldr r3, [pc, #536] ; (6d8c <_lv_blend_map+0x30c>)
lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1;
6b72: eb00 0444 add.w r4, r0, r4, lsl #1
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6b76: 4798 blx r3
map_buf_first += map_w;
6b78: 007b lsls r3, r7, #1
6b7a: 9308 str r3, [sp, #32]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
6b7c: 9b0a ldr r3, [sp, #40] ; 0x28
6b7e: 2b01 cmp r3, #1
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6b80: 4680 mov r8, r0
disp_buf_first += disp_w;
6b82: ea4f 0b46 mov.w fp, r6, lsl #1
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
6b86: f040 80e0 bne.w 6d4a <_lv_blend_map+0x2ca>
if(disp->driver.gpu_blend_cb && (lv_area_get_size(draw_area) > GPU_SIZE_LIMIT)) {
6b8a: 6a03 ldr r3, [r0, #32]
6b8c: 2b00 cmp r3, #0
6b8e: f000 80af beq.w 6cf0 <_lv_blend_map+0x270>
6b92: 4b80 ldr r3, [pc, #512] ; (6d94 <_lv_blend_map+0x314>)
6b94: a80c add r0, sp, #48 ; 0x30
6b96: 4798 blx r3
6b98: 28f0 cmp r0, #240 ; 0xf0
6b9a: f240 80a9 bls.w 6cf0 <_lv_blend_map+0x270>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6b9e: f9bd 7032 ldrsh.w r7, [sp, #50] ; 0x32
6ba2: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36
6ba6: 429f cmp r7, r3
6ba8: dc52 bgt.n 6c50 <_lv_blend_map+0x1d0>
disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, map_buf_first, draw_area_w, opa);
6baa: 9b05 ldr r3, [sp, #20]
6bac: 9300 str r3, [sp, #0]
6bae: 462a mov r2, r5
6bb0: 9b07 ldr r3, [sp, #28]
6bb2: f8d8 6020 ldr.w r6, [r8, #32]
6bb6: 4621 mov r1, r4
6bb8: 4640 mov r0, r8
6bba: 47b0 blx r6
map_buf_first += map_w;
6bbc: 9b08 ldr r3, [sp, #32]
disp_buf_first += disp_w;
6bbe: 445c add r4, fp
map_buf_first += map_w;
6bc0: 441d add r5, r3
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6bc2: 3701 adds r7, #1
6bc4: e7ed b.n 6ba2 <_lv_blend_map+0x122>
if(mask && disp->driver.antialiasing == 0)
6bc6: 7a2b ldrb r3, [r5, #8]
6bc8: 07d8 lsls r0, r3, #31
6bca: d49d bmi.n 6b08 <_lv_blend_map+0x88>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
6bcc: 9806 ldr r0, [sp, #24]
for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP;
6bce: 9e06 ldr r6, [sp, #24]
6bd0: 1c53 adds r3, r2, #1
6bd2: 1b1b subs r3, r3, r4
int32_t mask_w = lv_area_get_width(&draw_area);
6bd4: b21b sxth r3, r3
for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP;
6bd6: 3801 subs r0, #1
6bd8: f1c6 0701 rsb r7, r6, #1
6bdc: 183e adds r6, r7, r0
6bde: 42b3 cmp r3, r6
6be0: dd92 ble.n 6b08 <_lv_blend_map+0x88>
6be2: f810 6f01 ldrb.w r6, [r0, #1]!
6be6: 2e80 cmp r6, #128 ; 0x80
6be8: f04f 36ff mov.w r6, #4294967295 ; 0xffffffff
6bec: bf98 it ls
6bee: 2600 movls r6, #0
6bf0: 7006 strb r6, [r0, #0]
6bf2: e7f3 b.n 6bdc <_lv_blend_map+0x15c>
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
6bf4: 4b65 ldr r3, [pc, #404] ; (6d8c <_lv_blend_map+0x30c>)
6bf6: 4798 blx r3
6bf8: f8b9 5004 ldrh.w r5, [r9, #4]
6bfc: f9b9 1000 ldrsh.w r1, [r9]
6c00: f8bb 2014 ldrh.w r2, [fp, #20]
const lv_color_t * map_buf_tmp = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
6c04: f9bb c012 ldrsh.w ip, [fp, #18]
6c08: f9b9 7002 ldrsh.w r7, [r9, #2]
6c0c: f9bb 4010 ldrsh.w r4, [fp, #16]
6c10: f9bd 6032 ldrsh.w r6, [sp, #50] ; 0x32
6c14: f9bd 3030 ldrsh.w r3, [sp, #48] ; 0x30
6c18: f9bd 8034 ldrsh.w r8, [sp, #52] ; 0x34
6c1c: 3501 adds r5, #1
6c1e: 1a6d subs r5, r5, r1
6c20: 3201 adds r2, #1
6c22: eba7 070c sub.w r7, r7, ip
6c26: 1b12 subs r2, r2, r4
6c28: b22d sxth r5, r5
map_buf_tmp -= draw_area->x1;
6c2a: 1a64 subs r4, r4, r1
const lv_color_t * map_buf_tmp = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
6c2c: 1bf7 subs r7, r6, r7
map_buf_tmp -= draw_area->x1;
6c2e: 990b ldr r1, [sp, #44] ; 0x2c
6c30: fb05 4407 mla r4, r5, r7, r4
6c34: eb01 0444 add.w r4, r1, r4, lsl #1
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
6c38: 990a ldr r1, [sp, #40] ; 0x28
6c3a: 2901 cmp r1, #1
6c3c: b212 sxth r2, r2
6c3e: f1c3 0a00 rsb sl, r3, #0
6c42: ea4f 0b45 mov.w fp, r5, lsl #1
6c46: d123 bne.n 6c90 <_lv_blend_map+0x210>
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6c48: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36
6c4c: 429e cmp r6, r3
6c4e: dd02 ble.n 6c56 <_lv_blend_map+0x1d6>
}
6c50: b00f add sp, #60 ; 0x3c
6c52: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6c56: f9bd 8030 ldrsh.w r8, [sp, #48] ; 0x30
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], opa);
6c5a: b237 sxth r7, r6
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6c5c: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34
6c60: 4598 cmp r8, r3
6c62: dd02 ble.n 6c6a <_lv_blend_map+0x1ea>
map_buf_tmp += map_w;
6c64: 445c add r4, fp
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6c66: 3601 adds r6, #1
6c68: e7ee b.n 6c48 <_lv_blend_map+0x1c8>
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], opa);
6c6a: 9b05 ldr r3, [sp, #20]
6c6c: 9302 str r3, [sp, #8]
6c6e: f834 3018 ldrh.w r3, [r4, r8, lsl #1]
6c72: f8ad 3004 strh.w r3, [sp, #4]
6c76: 9700 str r7, [sp, #0]
6c78: 6945 ldr r5, [r0, #20]
6c7a: 9908 ldr r1, [sp, #32]
6c7c: 9207 str r2, [sp, #28]
6c7e: fa0f f388 sxth.w r3, r8
6c82: 9006 str r0, [sp, #24]
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6c84: f108 0801 add.w r8, r8, #1
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], opa);
6c88: 47a8 blx r5
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6c8a: e9dd 0206 ldrd r0, r2, [sp, #24]
6c8e: e7e5 b.n 6c5c <_lv_blend_map+0x1dc>
6c90: f108 0801 add.w r8, r8, #1
6c94: eba8 0803 sub.w r8, r8, r3
const lv_opa_t * mask_tmp = mask - draw_area->x1;
6c98: 9b06 ldr r3, [sp, #24]
6c9a: 4453 add r3, sl
6c9c: fa0f f888 sxth.w r8, r8
6ca0: 469a mov sl, r3
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6ca2: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36
6ca6: 429e cmp r6, r3
6ca8: dcd2 bgt.n 6c50 <_lv_blend_map+0x1d0>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6caa: f9bd 9030 ldrsh.w r9, [sp, #48] ; 0x30
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x],
6cae: b237 sxth r7, r6
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6cb0: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34
6cb4: 4599 cmp r9, r3
6cb6: dd03 ble.n 6cc0 <_lv_blend_map+0x240>
mask_tmp += draw_area_w;
6cb8: 44c2 add sl, r8
map_buf_tmp += map_w;
6cba: 445c add r4, fp
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6cbc: 3601 adds r6, #1
6cbe: e7f0 b.n 6ca2 <_lv_blend_map+0x222>
(uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8);
6cc0: f81a 3009 ldrb.w r3, [sl, r9]
6cc4: 9905 ldr r1, [sp, #20]
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x],
6cc6: 9207 str r2, [sp, #28]
(uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8);
6cc8: fb13 f301 smulbb r3, r3, r1
disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x],
6ccc: 0a1b lsrs r3, r3, #8
6cce: 9302 str r3, [sp, #8]
6cd0: f834 3019 ldrh.w r3, [r4, r9, lsl #1]
6cd4: f8ad 3004 strh.w r3, [sp, #4]
6cd8: 9700 str r7, [sp, #0]
6cda: 6945 ldr r5, [r0, #20]
6cdc: 9908 ldr r1, [sp, #32]
6cde: 9006 str r0, [sp, #24]
6ce0: fa0f f389 sxth.w r3, r9
6ce4: 47a8 blx r5
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6ce6: f109 0901 add.w r9, r9, #1
6cea: e9dd 0206 ldrd r0, r2, [sp, #24]
6cee: e7df b.n 6cb0 <_lv_blend_map+0x230>
if(opa > LV_OPA_MAX) {
6cf0: 9b05 ldr r3, [sp, #20]
6cf2: 2bfa cmp r3, #250 ; 0xfa
6cf4: d925 bls.n 6d42 <_lv_blend_map+0x2c2>
_lv_memcpy(disp_buf_first, map_buf_first, draw_area_w * sizeof(lv_color_t));
6cf6: 9b07 ldr r3, [sp, #28]
6cf8: f8df 809c ldr.w r8, [pc, #156] ; 6d98 <_lv_blend_map+0x318>
6cfc: 005f lsls r7, r3, #1
for(y = 0; y < draw_area_h; y++) {
6cfe: 2600 movs r6, #0
6d00: 9b09 ldr r3, [sp, #36] ; 0x24
6d02: 42b3 cmp r3, r6
6d04: dda4 ble.n 6c50 <_lv_blend_map+0x1d0>
_lv_memcpy(disp_buf_first, map_buf_first, draw_area_w * sizeof(lv_color_t));
6d06: 4629 mov r1, r5
6d08: 4620 mov r0, r4
6d0a: 463a mov r2, r7
6d0c: 47c0 blx r8
map_buf_first += map_w;
6d0e: 9b08 ldr r3, [sp, #32]
disp_buf_first += disp_w;
6d10: 445c add r4, fp
map_buf_first += map_w;
6d12: 441d add r5, r3
for(y = 0; y < draw_area_h; y++) {
6d14: 3601 adds r6, #1
6d16: e7f3 b.n 6d00 <_lv_blend_map+0x280>
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa);
6d18: f834 1016 ldrh.w r1, [r4, r6, lsl #1]
6d1c: f835 0016 ldrh.w r0, [r5, r6, lsl #1]
6d20: 9a05 ldr r2, [sp, #20]
6d22: 47c0 blx r8
6d24: f824 0016 strh.w r0, [r4, r6, lsl #1]
for(x = 0; x < draw_area_w; x++) {
6d28: 3601 adds r6, #1
6d2a: 9b07 ldr r3, [sp, #28]
6d2c: 42b3 cmp r3, r6
6d2e: dcf3 bgt.n 6d18 <_lv_blend_map+0x298>
map_buf_first += map_w;
6d30: 9b08 ldr r3, [sp, #32]
disp_buf_first += disp_w;
6d32: 445c add r4, fp
map_buf_first += map_w;
6d34: 441d add r5, r3
for(y = 0; y < draw_area_h; y++) {
6d36: 3701 adds r7, #1
6d38: 9b09 ldr r3, [sp, #36] ; 0x24
6d3a: 42bb cmp r3, r7
6d3c: dd88 ble.n 6c50 <_lv_blend_map+0x1d0>
for(x = 0; x < draw_area_w; x++) {
6d3e: 2600 movs r6, #0
6d40: e7f3 b.n 6d2a <_lv_blend_map+0x2aa>
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa);
6d42: f8df 8058 ldr.w r8, [pc, #88] ; 6d9c <_lv_blend_map+0x31c>
for(y = 0; y < draw_area_h; y++) {
6d46: 2700 movs r7, #0
6d48: e7f6 b.n 6d38 <_lv_blend_map+0x2b8>
if(opa > LV_OPA_MAX) {
6d4a: 9b05 ldr r3, [sp, #20]
6d4c: 2bfa cmp r3, #250 ; 0xfa
6d4e: f240 80e9 bls.w 6f24 <_lv_blend_map+0x4a4>
int32_t x_end4 = draw_area_w - 4;
6d52: 9b07 ldr r3, [sp, #28]
MAP_NORMAL_MASK_PX(x)
6d54: f8df 8044 ldr.w r8, [pc, #68] ; 6d9c <_lv_blend_map+0x31c>
for(y = 0; y < draw_area_h; y++) {
6d58: f8cd a014 str.w sl, [sp, #20]
int32_t x_end4 = draw_area_w - 4;
6d5c: 3b04 subs r3, #4
6d5e: 930a str r3, [sp, #40] ; 0x28
for(y = 0; y < draw_area_h; y++) {
6d60: 9b09 ldr r3, [sp, #36] ; 0x24
6d62: 9a05 ldr r2, [sp, #20]
6d64: 4293 cmp r3, r2
6d66: f77f af73 ble.w 6c50 <_lv_blend_map+0x1d0>
6d6a: 9b06 ldr r3, [sp, #24]
6d6c: 46aa mov sl, r5
6d6e: 46a1 mov r9, r4
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
6d70: 2600 movs r6, #0
6d72: e025 b.n 6dc0 <_lv_blend_map+0x340>
MAP_NORMAL_MASK_PX(x)
6d74: f8b9 1000 ldrh.w r1, [r9]
6d78: f8ba 0000 ldrh.w r0, [sl]
6d7c: 930b str r3, [sp, #44] ; 0x2c
6d7e: 47c0 blx r8
6d80: 9b0b ldr r3, [sp, #44] ; 0x2c
6d82: f8a9 0000 strh.w r0, [r9]
6d86: e016 b.n 6db6 <_lv_blend_map+0x336>
6d88: 0000e111 .word 0x0000e111
6d8c: 0000526d .word 0x0000526d
6d90: 0000dc65 .word 0x0000dc65
6d94: 0000e0f5 .word 0x0000e0f5
6d98: 0000eec1 .word 0x0000eec1
6d9c: 00006329 .word 0x00006329
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
6da0: 079a lsls r2, r3, #30
6da2: d011 beq.n 6dc8 <_lv_blend_map+0x348>
MAP_NORMAL_MASK_PX(x)
6da4: f813 2b01 ldrb.w r2, [r3], #1
6da8: b12a cbz r2, 6db6 <_lv_blend_map+0x336>
6daa: 2aff cmp r2, #255 ; 0xff
6dac: d1e2 bne.n 6d74 <_lv_blend_map+0x2f4>
6dae: f8ba 2000 ldrh.w r2, [sl]
6db2: f8a9 2000 strh.w r2, [r9]
for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) {
6db6: 3601 adds r6, #1
6db8: f10a 0a02 add.w sl, sl, #2
6dbc: f109 0902 add.w r9, r9, #2
6dc0: 9a07 ldr r2, [sp, #28]
6dc2: 42b2 cmp r2, r6
6dc4: 461f mov r7, r3
6dc6: dceb bgt.n 6da0 <_lv_blend_map+0x320>
6dc8: eb05 0a46 add.w sl, r5, r6, lsl #1
6dcc: eb04 0946 add.w r9, r4, r6, lsl #1
for(; x < x_end4; x += 4) {
6dd0: 9b0a ldr r3, [sp, #40] ; 0x28
6dd2: 42b3 cmp r3, r6
6dd4: dc12 bgt.n 6dfc <_lv_blend_map+0x37c>
6dd6: 3f01 subs r7, #1
6dd8: eb05 0a46 add.w sl, r5, r6, lsl #1
6ddc: eb04 0946 add.w r9, r4, r6, lsl #1
for(; x < draw_area_w ; x++) {
6de0: 9b07 ldr r3, [sp, #28]
6de2: 42b3 cmp r3, r6
6de4: dc62 bgt.n 6eac <_lv_blend_map+0x42c>
mask += draw_area_w;
6de6: e9dd 3206 ldrd r3, r2, [sp, #24]
6dea: 4413 add r3, r2
6dec: 9306 str r3, [sp, #24]
map_buf_first += map_w;
6dee: 9b08 ldr r3, [sp, #32]
6df0: 441d add r5, r3
for(y = 0; y < draw_area_h; y++) {
6df2: 9b05 ldr r3, [sp, #20]
6df4: 3301 adds r3, #1
disp_buf_first += disp_w;
6df6: 445c add r4, fp
for(y = 0; y < draw_area_h; y++) {
6df8: 9305 str r3, [sp, #20]
6dfa: e7b1 b.n 6d60 <_lv_blend_map+0x2e0>
if(*mask32) {
6dfc: 683b ldr r3, [r7, #0]
6dfe: b18b cbz r3, 6e24 <_lv_blend_map+0x3a4>
if((*mask32) == 0xFFFFFFFF) {
6e00: 3301 adds r3, #1
6e02: d116 bne.n 6e32 <_lv_blend_map+0x3b2>
disp_buf_first[x] = map_buf_first[x];
6e04: f8ba 3000 ldrh.w r3, [sl]
6e08: f8a9 3000 strh.w r3, [r9]
disp_buf_first[x + 1] = map_buf_first[x + 1];
6e0c: f8ba 3002 ldrh.w r3, [sl, #2]
6e10: f8a9 3002 strh.w r3, [r9, #2]
disp_buf_first[x + 2] = map_buf_first[x + 2];
6e14: f8ba 3004 ldrh.w r3, [sl, #4]
6e18: f8a9 3004 strh.w r3, [r9, #4]
MAP_NORMAL_MASK_PX(x + 3)
6e1c: f8ba 3006 ldrh.w r3, [sl, #6]
6e20: f8a9 3006 strh.w r3, [r9, #6]
mask32++;
6e24: 3704 adds r7, #4
for(; x < x_end4; x += 4) {
6e26: 3604 adds r6, #4
6e28: f10a 0a08 add.w sl, sl, #8
6e2c: f109 0908 add.w r9, r9, #8
6e30: e7ce b.n 6dd0 <_lv_blend_map+0x350>
MAP_NORMAL_MASK_PX(x)
6e32: 783a ldrb r2, [r7, #0]
6e34: b12a cbz r2, 6e42 <_lv_blend_map+0x3c2>
6e36: 2aff cmp r2, #255 ; 0xff
6e38: d120 bne.n 6e7c <_lv_blend_map+0x3fc>
6e3a: f8ba 3000 ldrh.w r3, [sl]
6e3e: f8a9 3000 strh.w r3, [r9]
MAP_NORMAL_MASK_PX(x + 1)
6e42: 787a ldrb r2, [r7, #1]
6e44: b12a cbz r2, 6e52 <_lv_blend_map+0x3d2>
6e46: 2aff cmp r2, #255 ; 0xff
6e48: d120 bne.n 6e8c <_lv_blend_map+0x40c>
6e4a: f8ba 3002 ldrh.w r3, [sl, #2]
6e4e: f8a9 3002 strh.w r3, [r9, #2]
MAP_NORMAL_MASK_PX(x + 2)
6e52: 78ba ldrb r2, [r7, #2]
6e54: b12a cbz r2, 6e62 <_lv_blend_map+0x3e2>
6e56: 2aff cmp r2, #255 ; 0xff
6e58: d120 bne.n 6e9c <_lv_blend_map+0x41c>
6e5a: f8ba 3004 ldrh.w r3, [sl, #4]
6e5e: f8a9 3004 strh.w r3, [r9, #4]
MAP_NORMAL_MASK_PX(x + 3)
6e62: 78fa ldrb r2, [r7, #3]
6e64: 2a00 cmp r2, #0
6e66: d0dd beq.n 6e24 <_lv_blend_map+0x3a4>
6e68: 2aff cmp r2, #255 ; 0xff
6e6a: d0d7 beq.n 6e1c <_lv_blend_map+0x39c>
6e6c: f8b9 1006 ldrh.w r1, [r9, #6]
6e70: f8ba 0006 ldrh.w r0, [sl, #6]
6e74: 47c0 blx r8
6e76: f8a9 0006 strh.w r0, [r9, #6]
6e7a: e7d3 b.n 6e24 <_lv_blend_map+0x3a4>
MAP_NORMAL_MASK_PX(x)
6e7c: f8b9 1000 ldrh.w r1, [r9]
6e80: f8ba 0000 ldrh.w r0, [sl]
6e84: 47c0 blx r8
6e86: f8a9 0000 strh.w r0, [r9]
6e8a: e7da b.n 6e42 <_lv_blend_map+0x3c2>
MAP_NORMAL_MASK_PX(x + 1)
6e8c: f8b9 1002 ldrh.w r1, [r9, #2]
6e90: f8ba 0002 ldrh.w r0, [sl, #2]
6e94: 47c0 blx r8
6e96: f8a9 0002 strh.w r0, [r9, #2]
6e9a: e7da b.n 6e52 <_lv_blend_map+0x3d2>
MAP_NORMAL_MASK_PX(x + 2)
6e9c: f8b9 1004 ldrh.w r1, [r9, #4]
6ea0: f8ba 0004 ldrh.w r0, [sl, #4]
6ea4: 47c0 blx r8
6ea6: f8a9 0004 strh.w r0, [r9, #4]
6eaa: e7da b.n 6e62 <_lv_blend_map+0x3e2>
MAP_NORMAL_MASK_PX(x)
6eac: f817 2f01 ldrb.w r2, [r7, #1]!
6eb0: b12a cbz r2, 6ebe <_lv_blend_map+0x43e>
6eb2: 2aff cmp r2, #255 ; 0xff
6eb4: d109 bne.n 6eca <_lv_blend_map+0x44a>
6eb6: f8ba 3000 ldrh.w r3, [sl]
6eba: f8a9 3000 strh.w r3, [r9]
for(; x < draw_area_w ; x++) {
6ebe: 3601 adds r6, #1
6ec0: f10a 0a02 add.w sl, sl, #2
6ec4: f109 0902 add.w r9, r9, #2
6ec8: e78a b.n 6de0 <_lv_blend_map+0x360>
MAP_NORMAL_MASK_PX(x)
6eca: f8b9 1000 ldrh.w r1, [r9]
6ece: f8ba 0000 ldrh.w r0, [sl]
6ed2: 47c0 blx r8
6ed4: f8a9 0000 strh.w r0, [r9]
6ed8: e7f1 b.n 6ebe <_lv_blend_map+0x43e>
if(mask[x]) {
6eda: 9b06 ldr r3, [sp, #24]
6edc: 5d9a ldrb r2, [r3, r6]
6ede: b172 cbz r2, 6efe <_lv_blend_map+0x47e>
lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8);
6ee0: 2af9 cmp r2, #249 ; 0xf9
6ee2: bf98 it ls
6ee4: 9b05 ldrls r3, [sp, #20]
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp);
6ee6: f834 1016 ldrh.w r1, [r4, r6, lsl #1]
6eea: f835 0016 ldrh.w r0, [r5, r6, lsl #1]
6eee: bf8e itee hi
6ef0: 9a05 ldrhi r2, [sp, #20]
lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8);
6ef2: fb13 f202 smulbbls r2, r3, r2
6ef6: 0a12 lsrls r2, r2, #8
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp);
6ef8: 47b8 blx r7
6efa: f824 0016 strh.w r0, [r4, r6, lsl #1]
for(x = 0; x < draw_area_w; x++) {
6efe: 3601 adds r6, #1
6f00: 9b07 ldr r3, [sp, #28]
6f02: 42b3 cmp r3, r6
6f04: dce9 bgt.n 6eda <_lv_blend_map+0x45a>
mask += draw_area_w;
6f06: e9dd 3206 ldrd r3, r2, [sp, #24]
6f0a: 4413 add r3, r2
6f0c: 9306 str r3, [sp, #24]
map_buf_first += map_w;
6f0e: 9b08 ldr r3, [sp, #32]
disp_buf_first += disp_w;
6f10: 445c add r4, fp
map_buf_first += map_w;
6f12: 441d add r5, r3
for(y = 0; y < draw_area_h; y++) {
6f14: f10a 0a01 add.w sl, sl, #1
6f18: 9b09 ldr r3, [sp, #36] ; 0x24
6f1a: 4553 cmp r3, sl
6f1c: f77f ae98 ble.w 6c50 <_lv_blend_map+0x1d0>
for(x = 0; x < draw_area_w; x++) {
6f20: 2600 movs r6, #0
6f22: e7ed b.n 6f00 <_lv_blend_map+0x480>
disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp);
6f24: 4f36 ldr r7, [pc, #216] ; (7000 <_lv_blend_map+0x580>)
6f26: e7f7 b.n 6f18 <_lv_blend_map+0x498>
switch(mode) {
6f28: f1ba 0f01 cmp.w sl, #1
6f2c: d00c beq.n 6f48 <_lv_blend_map+0x4c8>
6f2e: f1ba 0f02 cmp.w sl, #2
6f32: d02b beq.n 6f8c <_lv_blend_map+0x50c>
LV_LOG_WARN("fill_blended: unsupported blend mode");
6f34: 4b33 ldr r3, [pc, #204] ; (7004 <_lv_blend_map+0x584>)
6f36: 9300 str r3, [sp, #0]
6f38: 4933 ldr r1, [pc, #204] ; (7008 <_lv_blend_map+0x588>)
6f3a: 4b34 ldr r3, [pc, #208] ; (700c <_lv_blend_map+0x58c>)
6f3c: 4c34 ldr r4, [pc, #208] ; (7010 <_lv_blend_map+0x590>)
6f3e: f240 3253 movw r2, #851 ; 0x353
6f42: 2002 movs r0, #2
6f44: 47a0 blx r4
return;
6f46: e683 b.n 6c50 <_lv_blend_map+0x1d0>
blend_fp = color_blend_true_color_additive;
6f48: f8df b0c8 ldr.w fp, [pc, #200] ; 7014 <_lv_blend_map+0x594>
lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1;
6f4c: 9808 ldr r0, [sp, #32]
6f4e: eb00 0444 add.w r4, r0, r4, lsl #1
const lv_color_t * map_buf_tmp = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1));
6f52: 980b ldr r0, [sp, #44] ; 0x2c
6f54: eb00 0949 add.w r9, r0, r9, lsl #1
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
6f58: 980a ldr r0, [sp, #40] ; 0x28
6f5a: 2801 cmp r0, #1
disp_buf_first += disp_w;
6f5c: ea4f 0646 mov.w r6, r6, lsl #1
map_buf_first += map_w;
6f60: ea4f 0747 mov.w r7, r7, lsl #1
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) {
6f64: d120 bne.n 6fa8 <_lv_blend_map+0x528>
map_buf_tmp -= draw_area->x1;
6f66: 1a9b subs r3, r3, r2
6f68: eb09 0543 add.w r5, r9, r3, lsl #1
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6f6c: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36
6f70: 4598 cmp r8, r3
6f72: f73f ae6d bgt.w 6c50 <_lv_blend_map+0x1d0>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6f76: f9bd 9030 ldrsh.w r9, [sp, #48] ; 0x30
6f7a: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34
6f7e: 4599 cmp r9, r3
6f80: dd07 ble.n 6f92 <_lv_blend_map+0x512>
disp_buf_tmp += disp_w;
6f82: 4434 add r4, r6
map_buf_tmp += map_w;
6f84: 443d add r5, r7
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6f86: f108 0801 add.w r8, r8, #1
6f8a: e7ef b.n 6f6c <_lv_blend_map+0x4ec>
switch(mode) {
6f8c: f8df b088 ldr.w fp, [pc, #136] ; 7018 <_lv_blend_map+0x598>
6f90: e7dc b.n 6f4c <_lv_blend_map+0x4cc>
disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa);
6f92: f834 1019 ldrh.w r1, [r4, r9, lsl #1]
6f96: f835 0019 ldrh.w r0, [r5, r9, lsl #1]
6f9a: 9a05 ldr r2, [sp, #20]
6f9c: 47d8 blx fp
6f9e: f824 0019 strh.w r0, [r4, r9, lsl #1]
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6fa2: f109 0901 add.w r9, r9, #1
6fa6: e7e8 b.n 6f7a <_lv_blend_map+0x4fa>
const lv_opa_t * mask_tmp = mask - draw_area->x1;
6fa8: 9b06 ldr r3, [sp, #24]
map_buf_tmp -= draw_area->x1;
6faa: eba9 0941 sub.w r9, r9, r1, lsl #1
const lv_opa_t * mask_tmp = mask - draw_area->x1;
6fae: 1a5d subs r5, r3, r1
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6fb0: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36
6fb4: 4598 cmp r8, r3
6fb6: f73f ae4b bgt.w 6c50 <_lv_blend_map+0x1d0>
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6fba: f9bd a030 ldrsh.w sl, [sp, #48] ; 0x30
6fbe: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34
6fc2: 459a cmp sl, r3
6fc4: dd06 ble.n 6fd4 <_lv_blend_map+0x554>
mask_tmp += draw_area_w;
6fc6: 9b07 ldr r3, [sp, #28]
disp_buf_tmp += disp_w;
6fc8: 4434 add r4, r6
mask_tmp += draw_area_w;
6fca: 441d add r5, r3
map_buf_tmp += map_w;
6fcc: 44b9 add r9, r7
for(y = draw_area->y1; y <= draw_area->y2; y++) {
6fce: f108 0801 add.w r8, r8, #1
6fd2: e7ed b.n 6fb0 <_lv_blend_map+0x530>
if(mask_tmp[x] == 0) continue;
6fd4: f815 200a ldrb.w r2, [r5, sl]
6fd8: b172 cbz r2, 6ff8 <_lv_blend_map+0x578>
lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : ((opa * mask_tmp[x]) >> 8);
6fda: 2af9 cmp r2, #249 ; 0xf9
6fdc: bf94 ite ls
6fde: 9b05 ldrls r3, [sp, #20]
6fe0: 9a05 ldrhi r2, [sp, #20]
disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa_tmp);
6fe2: f834 101a ldrh.w r1, [r4, sl, lsl #1]
6fe6: f839 001a ldrh.w r0, [r9, sl, lsl #1]
lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : ((opa * mask_tmp[x]) >> 8);
6fea: bf9c itt ls
6fec: fb13 f202 smulbbls r2, r3, r2
6ff0: 0a12 lsrls r2, r2, #8
disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa_tmp);
6ff2: 47d8 blx fp
6ff4: f824 001a strh.w r0, [r4, sl, lsl #1]
for(x = draw_area->x1; x <= draw_area->x2; x++) {
6ff8: f10a 0a01 add.w sl, sl, #1
6ffc: e7df b.n 6fbe <_lv_blend_map+0x53e>
6ffe: bf00 nop
7000: 00006329 .word 0x00006329
7004: 0002745d .word 0x0002745d
7008: 00027427 .word 0x00027427
700c: 0002748f .word 0x0002748f
7010: 0000eb79 .word 0x0000eb79
7014: 00006379 .word 0x00006379
7018: 000063f9 .word 0x000063f9
0000701c <show_error>:
}
}
}
static void show_error(const lv_area_t * coords, const lv_area_t * clip_area, const char * msg)
{
701c: b530 push {r4, r5, lr}
701e: b0a1 sub sp, #132 ; 0x84
7020: 4604 mov r4, r0
7022: 9203 str r2, [sp, #12]
lv_draw_rect_dsc_t rect_dsc;
lv_draw_rect_dsc_init(&rect_dsc);
7024: a80b add r0, sp, #44 ; 0x2c
7026: 4a0c ldr r2, [pc, #48] ; (7058 <show_error+0x3c>)
{
7028: 9102 str r1, [sp, #8]
lv_draw_rect_dsc_init(&rect_dsc);
702a: 4790 blx r2
rect_dsc.bg_color = LV_COLOR_WHITE;
702c: 4a0b ldr r2, [pc, #44] ; (705c <show_error+0x40>)
lv_draw_rect(coords, clip_area, &rect_dsc);
702e: 9902 ldr r1, [sp, #8]
rect_dsc.bg_color = LV_COLOR_WHITE;
7030: 8812 ldrh r2, [r2, #0]
7032: f8ad 202e strh.w r2, [sp, #46] ; 0x2e
lv_draw_rect(coords, clip_area, &rect_dsc);
7036: 4620 mov r0, r4
7038: aa0b add r2, sp, #44 ; 0x2c
703a: 4d09 ldr r5, [pc, #36] ; (7060 <show_error+0x44>)
703c: 47a8 blx r5
lv_draw_label_dsc_t label_dsc;
lv_draw_label_dsc_init(&label_dsc);
703e: a804 add r0, sp, #16
7040: 4a08 ldr r2, [pc, #32] ; (7064 <show_error+0x48>)
7042: 4790 blx r2
lv_draw_label(coords, clip_area, &label_dsc, msg, NULL);
7044: 2200 movs r2, #0
7046: 9200 str r2, [sp, #0]
7048: 4620 mov r0, r4
704a: 9b03 ldr r3, [sp, #12]
704c: 9902 ldr r1, [sp, #8]
704e: 4c06 ldr r4, [pc, #24] ; (7068 <show_error+0x4c>)
7050: aa04 add r2, sp, #16
7052: 47a0 blx r4
}
7054: b021 add sp, #132 ; 0x84
7056: bd30 pop {r4, r5, pc}
7058: 00009e25 .word 0x00009e25
705c: 00027520 .word 0x00027520
7060: 00009e71 .word 0x00009e71
7064: 00007ac9 .word 0x00007ac9
7068: 00007af9 .word 0x00007af9
0000706c <lv_area_copy>:
LV_ATTRIBUTE_FAST_MEM static inline void * _lv_memcpy_small(void * dst, const void * src, size_t len)
{
uint8_t * d8 = (uint8_t *)dst;
const uint8_t * s8 = (const uint8_t *)src;
while(len) {
706c: 3901 subs r1, #1
706e: f100 0308 add.w r3, r0, #8
*d8 = *s8;
7072: f811 2f01 ldrb.w r2, [r1, #1]!
7076: f800 2b01 strb.w r2, [r0], #1
while(len) {
707a: 4298 cmp r0, r3
707c: d1f9 bne.n 7072 <lv_area_copy+0x6>
}
707e: 4770 bx lr
00007080 <lv_draw_map>:
{
7080: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
7084: ed2d 8b02 vpush {d8}
7088: b0b9 sub sp, #228 ; 0xe4
708a: 461c mov r4, r3
708c: f89d 3110 ldrb.w r3, [sp, #272] ; 0x110
7090: 930c str r3, [sp, #48] ; 0x30
7092: f89d 3114 ldrb.w r3, [sp, #276] ; 0x114
7096: 9307 str r3, [sp, #28]
7098: 4682 mov sl, r0
lv_area_copy(&draw_area, clip_area);
709a: 4b9c ldr r3, [pc, #624] ; (730c <lv_draw_map+0x28c>)
709c: a822 add r0, sp, #136 ; 0x88
{
709e: 4689 mov r9, r1
70a0: 4615 mov r5, r2
lv_area_copy(&draw_area, clip_area);
70a2: 4798 blx r3
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
70a4: 4b9a ldr r3, [pc, #616] ; (7310 <lv_draw_map+0x290>)
70a6: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
70a8: 4b9a ldr r3, [pc, #616] ; (7314 <lv_draw_map+0x294>)
70aa: 4798 blx r3
draw_area.x1 -= disp_area->x1;
70ac: f8bd 3088 ldrh.w r3, [sp, #136] ; 0x88
70b0: 8a01 ldrh r1, [r0, #16]
draw_area.y1 -= disp_area->y1;
70b2: 8a42 ldrh r2, [r0, #18]
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
70b4: 9004 str r0, [sp, #16]
draw_area.x1 -= disp_area->x1;
70b6: 1a5b subs r3, r3, r1
70b8: f8ad 3088 strh.w r3, [sp, #136] ; 0x88
draw_area.y1 -= disp_area->y1;
70bc: f8bd 308a ldrh.w r3, [sp, #138] ; 0x8a
70c0: 1a9b subs r3, r3, r2
70c2: f8ad 308a strh.w r3, [sp, #138] ; 0x8a
draw_area.x2 -= disp_area->x1;
70c6: f8bd 308c ldrh.w r3, [sp, #140] ; 0x8c
70ca: 1a5b subs r3, r3, r1
70cc: f8ad 308c strh.w r3, [sp, #140] ; 0x8c
draw_area.y2 -= disp_area->y1;
70d0: f8bd 308e ldrh.w r3, [sp, #142] ; 0x8e
70d4: 1a9b subs r3, r3, r2
70d6: f8ad 308e strh.w r3, [sp, #142] ; 0x8e
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
70da: 4b8f ldr r3, [pc, #572] ; (7318 <lv_draw_map+0x298>)
70dc: 4798 blx r3
if(other_mask_cnt == 0 && draw_dsc->angle == 0 && draw_dsc->zoom == LV_IMG_ZOOM_NONE &&
70de: 900b str r0, [sp, #44] ; 0x2c
70e0: b9f8 cbnz r0, 7122 <lv_draw_map+0xa2>
70e2: 8863 ldrh r3, [r4, #2]
70e4: b9eb cbnz r3, 7122 <lv_draw_map+0xa2>
70e6: 8923 ldrh r3, [r4, #8]
70e8: f5b3 7f80 cmp.w r3, #256 ; 0x100
70ec: d119 bne.n 7122 <lv_draw_map+0xa2>
70ee: 9b0c ldr r3, [sp, #48] ; 0x30
70f0: b9bb cbnz r3, 7122 <lv_draw_map+0xa2>
chroma_key == false && alpha_byte == false && draw_dsc->recolor_opa == LV_OPA_TRANSP) {
70f2: 9b07 ldr r3, [sp, #28]
70f4: 2b00 cmp r3, #0
70f6: f040 8099 bne.w 722c <lv_draw_map+0x1ac>
70fa: 7aa3 ldrb r3, [r4, #10]
70fc: 2b00 cmp r3, #0
70fe: f040 8097 bne.w 7230 <lv_draw_map+0x1b0>
_lv_blend_map(clip_area, map_area, (lv_color_t *)map_p, NULL, LV_DRAW_MASK_RES_FULL_COVER, draw_dsc->opa,
7102: 7ba2 ldrb r2, [r4, #14]
7104: 9202 str r2, [sp, #8]
7106: 7822 ldrb r2, [r4, #0]
7108: 9201 str r2, [sp, #4]
710a: 2201 movs r2, #1
710c: 9200 str r2, [sp, #0]
710e: 4c83 ldr r4, [pc, #524] ; (731c <lv_draw_map+0x29c>)
7110: 462a mov r2, r5
7112: 4651 mov r1, sl
7114: 4648 mov r0, r9
7116: 47a0 blx r4
}
7118: b039 add sp, #228 ; 0xe4
711a: ecbd 8b02 vpop {d8}
711e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
uint8_t px_size_byte = alpha_byte ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t);
7122: 9b07 ldr r3, [sp, #28]
7124: 3302 adds r3, #2
7126: b2db uxtb r3, r3
7128: 9305 str r3, [sp, #20]
map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte;
712a: 9b04 ldr r3, [sp, #16]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
712c: f8ba 8004 ldrh.w r8, [sl, #4]
7130: f9b3 1012 ldrsh.w r1, [r3, #18]
7134: f9ba 2000 ldrsh.w r2, [sl]
map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte;
7138: f9b3 3010 ldrsh.w r3, [r3, #16]
map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte;
713c: f9ba 7002 ldrsh.w r7, [sl, #2]
map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte;
7140: f9bd 6088 ldrsh.w r6, [sp, #136] ; 0x88
map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte;
7144: f9bd 008a ldrsh.w r0, [sp, #138] ; 0x8a
7148: f108 0801 add.w r8, r8, #1
714c: eba8 0802 sub.w r8, r8, r2
7150: 1a7f subs r7, r7, r1
map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte;
7152: 1ad2 subs r2, r2, r3
map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte;
7154: 1bc7 subs r7, r0, r7
map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte;
7156: 1ab2 subs r2, r6, r2
7158: fa0f f888 sxth.w r8, r8
715c: fb08 2207 mla r2, r8, r7, r2
7160: 9f05 ldr r7, [sp, #20]
7162: fb02 5207 mla r2, r2, r7, r5
7166: 9208 str r2, [sp, #32]
7168: f8bd 208c ldrh.w r2, [sp, #140] ; 0x8c
716c: 3201 adds r2, #1
716e: 1b92 subs r2, r2, r6
blend_area.x1 = draw_area.x1 + disp_area->x1;
7170: fa13 f386 uxtah r3, r3, r6
7174: b296 uxth r6, r2
7176: b212 sxth r2, r2
7178: b29b uxth r3, r3
717a: 9211 str r2, [sp, #68] ; 0x44
blend_area.x2 = blend_area.x1 + lv_area_get_width(&draw_area) - 1;
717c: 1e72 subs r2, r6, #1
blend_area.x1 = draw_area.x1 + disp_area->x1;
717e: f8ad 3090 strh.w r3, [sp, #144] ; 0x90
blend_area.x2 = blend_area.x1 + lv_area_get_width(&draw_area) - 1;
7182: 4413 add r3, r2
7184: f8ad 3094 strh.w r3, [sp, #148] ; 0x94
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
7188: f8bd 308e ldrh.w r3, [sp, #142] ; 0x8e
718c: 3301 adds r3, #1
718e: 1a1b subs r3, r3, r0
7190: b21b sxth r3, r3
blend_area.y1 = disp_area->y1 + draw_area.y1;
7192: fa11 f180 uxtah r1, r1, r0
7196: 9317 str r3, [sp, #92] ; 0x5c
bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false;
7198: 8863 ldrh r3, [r4, #2]
blend_area.y1 = disp_area->y1 + draw_area.y1;
719a: b209 sxth r1, r1
719c: f8ad 1092 strh.w r1, [sp, #146] ; 0x92
blend_area.y2 = blend_area.y1;
71a0: f8ad 1096 strh.w r1, [sp, #150] ; 0x96
bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false;
71a4: 2b00 cmp r3, #0
71a6: f040 8264 bne.w 7672 <lv_draw_map+0x5f2>
71aa: 8923 ldrh r3, [r4, #8]
71ac: f5b3 7280 subs.w r2, r3, #256 ; 0x100
71b0: bf18 it ne
71b2: 2201 movne r2, #1
71b4: 9215 str r2, [sp, #84] ; 0x54
if(other_mask_cnt == 0 && !transform && !chroma_key && draw_dsc->recolor_opa == LV_OPA_TRANSP && alpha_byte) {
71b6: 9a0b ldr r2, [sp, #44] ; 0x2c
71b8: 2a00 cmp r2, #0
71ba: f040 825c bne.w 7676 <lv_draw_map+0x5f6>
71be: f5b3 7f80 cmp.w r3, #256 ; 0x100
71c2: f040 8258 bne.w 7676 <lv_draw_map+0x5f6>
71c6: 9b0c ldr r3, [sp, #48] ; 0x30
71c8: 2b00 cmp r3, #0
71ca: f040 8254 bne.w 7676 <lv_draw_map+0x5f6>
71ce: 7aa3 ldrb r3, [r4, #10]
71d0: 2b00 cmp r3, #0
71d2: f040 8250 bne.w 7676 <lv_draw_map+0x5f6>
71d6: 9b07 ldr r3, [sp, #28]
71d8: 2b00 cmp r3, #0
71da: f000 824c beq.w 7676 <lv_draw_map+0x5f6>
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
71de: 4d50 ldr r5, [pc, #320] ; (7320 <lv_draw_map+0x2a0>)
71e0: a822 add r0, sp, #136 ; 0x88
71e2: 47a8 blx r5
71e4: f5b0 7ff0 cmp.w r0, #480 ; 0x1e0
71e8: d824 bhi.n 7234 <lv_draw_map+0x1b4>
71ea: a822 add r0, sp, #136 ; 0x88
71ec: 47a8 blx r5
71ee: 4607 mov r7, r0
lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
71f0: 4e4c ldr r6, [pc, #304] ; (7324 <lv_draw_map+0x2a4>)
71f2: 0078 lsls r0, r7, #1
71f4: 47b0 blx r6
71f6: ee08 0a10 vmov s16, r0
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
71fa: 4638 mov r0, r7
71fc: 47b0 blx r6
map_buf_tmp += map_w * px_size_byte;
71fe: 9b05 ldr r3, [sp, #20]
7200: 9a11 ldr r2, [sp, #68] ; 0x44
7202: fb13 fa08 smulbb sl, r3, r8
7206: ea22 72e2 bic.w r2, r2, r2, asr #31
for(y = 0; y < draw_area_h; y++) {
720a: f04f 0800 mov.w r8, #0
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
720e: 4606 mov r6, r0
uint32_t px_i = 0;
7210: 4643 mov r3, r8
7212: 9204 str r2, [sp, #16]
for(y = 0; y < draw_area_h; y++) {
7214: 9a17 ldr r2, [sp, #92] ; 0x5c
7216: 4542 cmp r2, r8
7218: dd4d ble.n 72b6 <lv_draw_map+0x236>
721a: ee18 2a10 vmov r2, s16
721e: eb06 0c03 add.w ip, r6, r3
7222: eb02 0e43 add.w lr, r2, r3, lsl #1
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
7226: 2100 movs r1, #0
map_px = map_buf_tmp;
7228: 9a08 ldr r2, [sp, #32]
722a: e014 b.n 7256 <lv_draw_map+0x1d6>
uint8_t px_size_byte = alpha_byte ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t);
722c: 2303 movs r3, #3
722e: e77b b.n 7128 <lv_draw_map+0xa8>
7230: 2302 movs r3, #2
7232: e779 b.n 7128 <lv_draw_map+0xa8>
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
7234: f44f 77f0 mov.w r7, #480 ; 0x1e0
7238: e7da b.n 71f0 <lv_draw_map+0x170>
lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
723a: 7890 ldrb r0, [r2, #2]
mask_buf[px_i] = px_opa;
723c: f80c 0b01 strb.w r0, [ip], #1
if(px_opa) {
7240: b130 cbz r0, 7250 <lv_draw_map+0x1d0>
map2[px_i].full = map_px[0] + (map_px[1] << 8);
7242: f892 b001 ldrb.w fp, [r2, #1]
7246: 7810 ldrb r0, [r2, #0]
7248: eb00 200b add.w r0, r0, fp, lsl #8
724c: f82e 0011 strh.w r0, [lr, r1, lsl #1]
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
7250: 9805 ldr r0, [sp, #20]
7252: 3101 adds r1, #1
7254: 4402 add r2, r0
7256: 9811 ldr r0, [sp, #68] ; 0x44
7258: 4288 cmp r0, r1
725a: dcee bgt.n 723a <lv_draw_map+0x1ba>
725c: 9a04 ldr r2, [sp, #16]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
725e: f8bd 1088 ldrh.w r1, [sp, #136] ; 0x88
7262: 4413 add r3, r2
map_buf_tmp += map_w * px_size_byte;
7264: 9a08 ldr r2, [sp, #32]
7266: 4452 add r2, sl
7268: 9208 str r2, [sp, #32]
726a: f8bd 208c ldrh.w r2, [sp, #140] ; 0x8c
726e: 3201 adds r2, #1
7270: 1a52 subs r2, r2, r1
if(px_i + lv_area_get_width(&draw_area) < mask_buf_size) {
7272: fa03 f282 sxtah r2, r3, r2
7276: 42ba cmp r2, r7
7278: d208 bcs.n 728c <lv_draw_map+0x20c>
blend_area.y2 ++;
727a: f8bd 2096 ldrh.w r2, [sp, #150] ; 0x96
727e: 3201 adds r2, #1
7280: b212 sxth r2, r2
7282: f8ad 2096 strh.w r2, [sp, #150] ; 0x96
for(y = 0; y < draw_area_h; y++) {
7286: f108 0801 add.w r8, r8, #1
728a: e7c3 b.n 7214 <lv_draw_map+0x194>
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, LV_DRAW_MASK_RES_CHANGED, draw_dsc->opa, draw_dsc->blend_mode);
728c: 7ba3 ldrb r3, [r4, #14]
728e: 9302 str r3, [sp, #8]
7290: 7823 ldrb r3, [r4, #0]
7292: 9301 str r3, [sp, #4]
7294: 2302 movs r3, #2
7296: ee18 2a10 vmov r2, s16
729a: 9300 str r3, [sp, #0]
729c: 4d1f ldr r5, [pc, #124] ; (731c <lv_draw_map+0x29c>)
729e: 4633 mov r3, r6
72a0: a924 add r1, sp, #144 ; 0x90
72a2: 4648 mov r0, r9
72a4: 47a8 blx r5
blend_area.y1 = blend_area.y2 + 1;
72a6: f8bd 2096 ldrh.w r2, [sp, #150] ; 0x96
72aa: 3201 adds r2, #1
72ac: b212 sxth r2, r2
72ae: f8ad 2092 strh.w r2, [sp, #146] ; 0x92
px_i = 0;
72b2: 2300 movs r3, #0
72b4: e7e5 b.n 7282 <lv_draw_map+0x202>
if(blend_area.y1 != blend_area.y2) {
72b6: f9bd 3096 ldrsh.w r3, [sp, #150] ; 0x96
72ba: f9bd 2092 ldrsh.w r2, [sp, #146] ; 0x92
72be: 429a cmp r2, r3
72c0: d00f beq.n 72e2 <lv_draw_map+0x262>
blend_area.y2--;
72c2: 3b01 subs r3, #1
72c4: f8ad 3096 strh.w r3, [sp, #150] ; 0x96
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, LV_DRAW_MASK_RES_CHANGED, draw_dsc->opa, draw_dsc->blend_mode);
72c8: 7ba3 ldrb r3, [r4, #14]
72ca: 9302 str r3, [sp, #8]
72cc: 7823 ldrb r3, [r4, #0]
72ce: 9301 str r3, [sp, #4]
72d0: 2302 movs r3, #2
72d2: 9300 str r3, [sp, #0]
72d4: ee18 2a10 vmov r2, s16
72d8: 4c10 ldr r4, [pc, #64] ; (731c <lv_draw_map+0x29c>)
72da: 4633 mov r3, r6
72dc: a924 add r1, sp, #144 ; 0x90
72de: 4648 mov r0, r9
72e0: 47a0 blx r4
_lv_mem_buf_release(mask_buf);
72e2: 4630 mov r0, r6
_lv_mem_buf_release(mask_buf);
72e4: 4c10 ldr r4, [pc, #64] ; (7328 <lv_draw_map+0x2a8>)
72e6: 47a0 blx r4
_lv_mem_buf_release(map2);
72e8: ee18 0a10 vmov r0, s16
72ec: 47a0 blx r4
}
72ee: e713 b.n 7118 <lv_draw_map+0x98>
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
72f0: f44f 73f0 mov.w r3, #480 ; 0x1e0
72f4: 930a str r3, [sp, #40] ; 0x28
72f6: e1c8 b.n 768a <lv_draw_map+0x60a>
if(alpha_byte) cf = LV_IMG_CF_TRUE_COLOR_ALPHA;
72f8: 2205 movs r2, #5
72fa: e1de b.n 76ba <lv_draw_map+0x63a>
uint16_t recolor_premult[3] = {0};
72fc: 9310 str r3, [sp, #64] ; 0x40
72fe: 9316 str r3, [sp, #88] ; 0x58
7300: 9319 str r3, [sp, #100] ; 0x64
7302: e213 b.n 772c <lv_draw_map+0x6ac>
mask_res = (alpha_byte || chroma_key || draw_dsc->angle ||
7304: f04f 0b02 mov.w fp, #2
7308: e224 b.n 7754 <lv_draw_map+0x6d4>
730a: bf00 nop
730c: 0000706d .word 0x0000706d
7310: 0000526d .word 0x0000526d
7314: 0000dc65 .word 0x0000dc65
7318: 00009a75 .word 0x00009a75
731c: 00006a81 .word 0x00006a81
7320: 0000e0f5 .word 0x0000e0f5
7324: 0000f145 .word 0x0000f145
7328: 0000edf9 .word 0x0000edf9
int32_t rot_x = disp_area->x1 + draw_area.x1 - map_area->x1;
732c: 9b04 ldr r3, [sp, #16]
732e: f9bd 2088 ldrsh.w r2, [sp, #136] ; 0x88
7332: f9b3 3010 ldrsh.w r3, [r3, #16]
7336: 4413 add r3, r2
7338: f9ba 2000 ldrsh.w r2, [sl]
733c: 1a9b subs r3, r3, r2
733e: 931b str r3, [sp, #108] ; 0x6c
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
7340: eb07 0308 add.w r3, r7, r8
7344: ee08 3a90 vmov s17, r3
7348: 9306 str r3, [sp, #24]
734a: ee18 3a10 vmov r3, s16
734e: eb03 0348 add.w r3, r3, r8, lsl #1
7352: 931d str r3, [sp, #116] ; 0x74
map_px = map_buf_tmp;
7354: 9b08 ldr r3, [sp, #32]
7356: 930d str r3, [sp, #52] ; 0x34
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
7358: 2300 movs r3, #0
{
const uint8_t * src_u8 = (const uint8_t *)dsc->cfg.src;
/*Get the target point relative coordinates to the pivot*/
int32_t xt = x - dsc->cfg.pivot_x;
int32_t yt = y - dsc->cfg.pivot_y;
735a: 9a09 ldr r2, [sp, #36] ; 0x24
735c: 930e str r3, [sp, #56] ; 0x38
735e: 9b1a ldr r3, [sp, #104] ; 0x68
7360: 4413 add r3, r2
7362: b21b sxth r3, r3
7364: 931e str r3, [sp, #120] ; 0x78
7366: 9b11 ldr r3, [sp, #68] ; 0x44
7368: 9a0e ldr r2, [sp, #56] ; 0x38
736a: 4293 cmp r3, r2
736c: dc43 bgt.n 73f6 <lv_draw_map+0x376>
736e: 9b1f ldr r3, [sp, #124] ; 0x7c
7370: 4498 add r8, r3
if(other_mask_cnt) {
7372: 9b0b ldr r3, [sp, #44] ; 0x2c
7374: b333 cbz r3, 73c4 <lv_draw_map+0x344>
mask_res_sub = lv_draw_mask_apply(mask_buf + px_i_start, draw_area.x1 + vdb->area.x1, y + draw_area.y1 + vdb->area.y1,
7376: 9804 ldr r0, [sp, #16]
7378: f8bd 208a ldrh.w r2, [sp, #138] ; 0x8a
737c: 8a40 ldrh r0, [r0, #18]
737e: f8bd 308c ldrh.w r3, [sp, #140] ; 0x8c
7382: f8bd 1088 ldrh.w r1, [sp, #136] ; 0x88
7386: 4d9d ldr r5, [pc, #628] ; (75fc <lv_draw_map+0x57c>)
7388: 4402 add r2, r0
738a: 9809 ldr r0, [sp, #36] ; 0x24
738c: 4402 add r2, r0
738e: 9804 ldr r0, [sp, #16]
7390: 8a00 ldrh r0, [r0, #16]
7392: 3301 adds r3, #1
7394: 1a5b subs r3, r3, r1
7396: 4401 add r1, r0
7398: b21b sxth r3, r3
739a: ee18 0a90 vmov r0, s17
739e: b212 sxth r2, r2
73a0: b209 sxth r1, r1
73a2: 47a8 blx r5
if(mask_res_sub == LV_DRAW_MASK_RES_TRANSP) {
73a4: 2800 cmp r0, #0
73a6: f040 8123 bne.w 75f0 <lv_draw_map+0x570>
73aa: f8bd 108c ldrh.w r1, [sp, #140] ; 0x8c
73ae: f8bd 3088 ldrh.w r3, [sp, #136] ; 0x88
73b2: 3101 adds r1, #1
73b4: 1ac9 subs r1, r1, r3
_lv_memset_00(mask_buf + px_i_start, lv_area_get_width(&draw_area));
73b6: ee18 0a90 vmov r0, s17
73ba: 4b91 ldr r3, [pc, #580] ; (7600 <lv_draw_map+0x580>)
73bc: b209 sxth r1, r1
73be: 4798 blx r3
mask_res = LV_DRAW_MASK_RES_CHANGED;
73c0: f04f 0b02 mov.w fp, #2
map_buf_tmp += map_w * px_size_byte;
73c4: 9b08 ldr r3, [sp, #32]
73c6: 9a1c ldr r2, [sp, #112] ; 0x70
73c8: 4413 add r3, r2
73ca: 9308 str r3, [sp, #32]
73cc: f8bd 308c ldrh.w r3, [sp, #140] ; 0x8c
73d0: f8bd 2088 ldrh.w r2, [sp, #136] ; 0x88
73d4: 3301 adds r3, #1
73d6: 1a9b subs r3, r3, r2
if(px_i + lv_area_get_width(&draw_area) < mask_buf_size) {
73d8: 9a0a ldr r2, [sp, #40] ; 0x28
73da: fa08 f383 sxtah r3, r8, r3
73de: 4293 cmp r3, r2
73e0: f080 8116 bcs.w 7610 <lv_draw_map+0x590>
blend_area.y2 ++;
73e4: f8bd 3096 ldrh.w r3, [sp, #150] ; 0x96
73e8: 3301 adds r3, #1
73ea: f8ad 3096 strh.w r3, [sp, #150] ; 0x96
for(y = 0; y < draw_area_h; y++) {
73ee: 9b09 ldr r3, [sp, #36] ; 0x24
73f0: 3301 adds r3, #1
73f2: 9309 str r3, [sp, #36] ; 0x24
73f4: e1c9 b.n 778a <lv_draw_map+0x70a>
if(transform) {
73f6: 9b15 ldr r3, [sp, #84] ; 0x54
73f8: 2b00 cmp r3, #0
73fa: f000 80d7 beq.w 75ac <lv_draw_map+0x52c>
int32_t xt = x - dsc->cfg.pivot_x;
73fe: 9a0e ldr r2, [sp, #56] ; 0x38
7400: 9b1b ldr r3, [sp, #108] ; 0x6c
int32_t yt = y - dsc->cfg.pivot_y;
7402: 991e ldr r1, [sp, #120] ; 0x78
const uint8_t * src_u8 = (const uint8_t *)dsc->cfg.src;
7404: 9826 ldr r0, [sp, #152] ; 0x98
int32_t xt = x - dsc->cfg.pivot_x;
7406: 4413 add r3, r2
7408: f9bd 20a0 ldrsh.w r2, [sp, #160] ; 0xa0
740c: b21b sxth r3, r3
740e: 1a9b subs r3, r3, r2
int32_t yt = y - dsc->cfg.pivot_y;
7410: f9bd 20a2 ldrsh.w r2, [sp, #162] ; 0xa2
7414: 1a8a subs r2, r1, r2
int32_t xs;
int32_t ys;
if(dsc->cfg.zoom == LV_IMG_ZOOM_NONE) {
7416: f8bd 10a6 ldrh.w r1, [sp, #166] ; 0xa6
741a: f5b1 7f80 cmp.w r1, #256 ; 0x100
/*Get the source pixel from the upscaled image*/
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256;
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256;
741e: e9dd 652f ldrd r6, r5, [sp, #188] ; 0xbc
if(dsc->cfg.zoom == LV_IMG_ZOOM_NONE) {
7422: d119 bne.n 7458 <lv_draw_map+0x3d8>
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256;
7424: e9dd e131 ldrd lr, r1, [sp, #196] ; 0xc4
7428: fb01 fc03 mul.w ip, r1, r3
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256;
742c: 4351 muls r1, r2
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256;
742e: fb0e cc12 mls ip, lr, r2, ip
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256;
7432: fb0e 1103 mla r1, lr, r3, r1
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256;
7436: eb06 16ec add.w r6, r6, ip, asr #7
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256;
743a: eb05 13e1 add.w r3, r5, r1, asr #7
/*Get the integer part of the source pixel*/
int32_t xs_int = xs >> 8;
int32_t ys_int = ys >> 8;
if(xs_int >= dsc->cfg.src_w) return false;
743e: f9bd 209c ldrsh.w r2, [sp, #156] ; 0x9c
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256;
7442: 930f str r3, [sp, #60] ; 0x3c
if(xs_int >= dsc->cfg.src_w) return false;
7444: ebb2 2f26 cmp.w r2, r6, asr #8
int32_t xs_int = xs >> 8;
7448: ea4f 2326 mov.w r3, r6, asr #8
744c: 9318 str r3, [sp, #96] ; 0x60
if(xs_int >= dsc->cfg.src_w) return false;
744e: dc1b bgt.n 7488 <lv_draw_map+0x408>
mask_buf[px_i] = LV_OPA_TRANSP;
7450: 9a06 ldr r2, [sp, #24]
7452: 2300 movs r3, #0
7454: 7013 strb r3, [r2, #0]
continue;
7456: e0b0 b.n 75ba <lv_draw_map+0x53a>
xt *= dsc->tmp.zoom_inv;
7458: f8bd 10ce ldrh.w r1, [sp, #206] ; 0xce
745c: 434b muls r3, r1
yt *= dsc->tmp.zoom_inv;
745e: 434a muls r2, r1
else if(dsc->cfg.angle == 0) {
7460: f9bd 10a4 ldrsh.w r1, [sp, #164] ; 0xa4
7464: b911 cbnz r1, 746c <lv_draw_map+0x3ec>
xs = xt + dsc->tmp.pivot_x_256;
7466: 441e add r6, r3
ys = yt + dsc->tmp.pivot_y_256;
7468: 18ab adds r3, r5, r2
746a: e7e8 b.n 743e <lv_draw_map+0x3be>
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256;
746c: e9dd e131 ldrd lr, r1, [sp, #196] ; 0xc4
7470: fb03 fc01 mul.w ip, r3, r1
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256;
7474: 4351 muls r1, r2
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256;
7476: fb02 cc1e mls ip, r2, lr, ip
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256;
747a: fb03 110e mla r1, r3, lr, r1
xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256;
747e: eb06 36ec add.w r6, r6, ip, asr #15
ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256;
7482: eb05 33e1 add.w r3, r5, r1, asr #15
7486: e7da b.n 743e <lv_draw_map+0x3be>
else if(xs_int < 0) return false;
7488: 1233 asrs r3, r6, #8
748a: 2b00 cmp r3, #0
748c: dbe0 blt.n 7450 <lv_draw_map+0x3d0>
int32_t ys_int = ys >> 8;
748e: 9b0f ldr r3, [sp, #60] ; 0x3c
if(ys_int >= dsc->cfg.src_h) return false;
7490: 990f ldr r1, [sp, #60] ; 0x3c
int32_t ys_int = ys >> 8;
7492: 121b asrs r3, r3, #8
7494: 9312 str r3, [sp, #72] ; 0x48
if(ys_int >= dsc->cfg.src_h) return false;
7496: f9bd 309e ldrsh.w r3, [sp, #158] ; 0x9e
749a: ebb3 2f21 cmp.w r3, r1, asr #8
749e: ddd7 ble.n 7450 <lv_draw_map+0x3d0>
else if(ys_int < 0) return false;
74a0: 9b12 ldr r3, [sp, #72] ; 0x48
74a2: 2b00 cmp r3, #0
74a4: dbd4 blt.n 7450 <lv_draw_map+0x3d0>
uint8_t px_size;
uint32_t pxi;
if(dsc->tmp.native_color) {
74a6: f89d 50cc ldrb.w r5, [sp, #204] ; 0xcc
74aa: f015 0104 ands.w r1, r5, #4
74ae: 9113 str r1, [sp, #76] ; 0x4c
74b0: d066 beq.n 7580 <lv_draw_map+0x500>
if(dsc->tmp.has_alpha == 0) {
74b2: 1231 asrs r1, r6, #8
74b4: fb02 1203 mla r2, r2, r3, r1
74b8: f015 0f02 tst.w r5, #2
74bc: ea4f 0342 mov.w r3, r2, lsl #1
74c0: d151 bne.n 7566 <lv_draw_map+0x4e6>
*d8 = *s8;
74c2: f810 2012 ldrb.w r2, [r0, r2, lsl #1]
74c6: f88d 20ac strb.w r2, [sp, #172] ; 0xac
px_size = LV_COLOR_SIZE >> 3;
pxi = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size;
_lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size);
74ca: 18c1 adds r1, r0, r3
74cc: 784a ldrb r2, [r1, #1]
74ce: f88d 20ad strb.w r2, [sp, #173] ; 0xad
px_size = LV_COLOR_SIZE >> 3;
74d2: 2202 movs r2, #2
}
else {
px_size = LV_IMG_PX_SIZE_ALPHA_BYTE;
74d4: 9213 str r2, [sp, #76] ; 0x4c
px_size = 0; /*unused*/
dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color);
dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int);
}
if(dsc->tmp.chroma_keyed) {
74d6: f89d 20cc ldrb.w r2, [sp, #204] ; 0xcc
74da: 07d2 lsls r2, r2, #31
74dc: d504 bpl.n 74e8 <lv_draw_map+0x468>
lv_color_t ct = LV_COLOR_TRANSP;
if(dsc->res.color.full == ct.full) return false;
74de: f8bd 20ac ldrh.w r2, [sp, #172] ; 0xac
74e2: f5b2 6ffc cmp.w r2, #2016 ; 0x7e0
74e6: d0b3 beq.n 7450 <lv_draw_map+0x3d0>
}
if(dsc->cfg.antialias == false) return true;
74e8: f89d 20ab ldrb.w r2, [sp, #171] ; 0xab
74ec: b19a cbz r2, 7516 <lv_draw_map+0x496>
dsc->tmp.xs = xs;
dsc->tmp.ys = ys;
74ee: 9a0f ldr r2, [sp, #60] ; 0x3c
74f0: f8ad 20d2 strh.w r2, [sp, #210] ; 0xd2
dsc->tmp.xs_int = xs_int;
dsc->tmp.ys_int = ys_int;
dsc->tmp.pxi = pxi;
74f4: 9336 str r3, [sp, #216] ; 0xd8
dsc->tmp.xs_int = xs_int;
74f6: 9a18 ldr r2, [sp, #96] ; 0x60
dsc->tmp.px_size = px_size;
74f8: 9b13 ldr r3, [sp, #76] ; 0x4c
dsc->tmp.xs_int = xs_int;
74fa: f8ad 20d4 strh.w r2, [sp, #212] ; 0xd4
dsc->tmp.px_size = px_size;
74fe: f88d 30dc strb.w r3, [sp, #220] ; 0xdc
dsc->tmp.ys_int = ys_int;
7502: 9a12 ldr r2, [sp, #72] ; 0x48
bool ret;
ret = _lv_img_buf_transform_anti_alias(dsc);
7504: 4b3f ldr r3, [pc, #252] ; (7604 <lv_draw_map+0x584>)
dsc->tmp.xs = xs;
7506: f8ad 60d0 strh.w r6, [sp, #208] ; 0xd0
ret = _lv_img_buf_transform_anti_alias(dsc);
750a: a826 add r0, sp, #152 ; 0x98
dsc->tmp.ys_int = ys_int;
750c: f8ad 20d6 strh.w r2, [sp, #214] ; 0xd6
ret = _lv_img_buf_transform_anti_alias(dsc);
7510: 4798 blx r3
if(ret == false) {
7512: 2800 cmp r0, #0
7514: d09c beq.n 7450 <lv_draw_map+0x3d0>
mask_buf[px_i] = trans_dsc.res.opa;
7516: 9a06 ldr r2, [sp, #24]
7518: f89d 30ae ldrb.w r3, [sp, #174] ; 0xae
751c: 7013 strb r3, [r2, #0]
c.full = trans_dsc.res.color.full;
751e: f8bd 30ac ldrh.w r3, [sp, #172] ; 0xac
if(draw_dsc->recolor_opa != 0) {
7522: 7aa2 ldrb r2, [r4, #10]
7524: b1d2 cbz r2, 755c <lv_draw_map+0x4dc>
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
7526: 9916 ldr r1, [sp, #88] ; 0x58
7528: 9814 ldr r0, [sp, #80] ; 0x50
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
752a: 9d14 ldr r5, [sp, #80] ; 0x50
LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8);
752c: f3c3 1245 ubfx r2, r3, #5, #6
7530: fb02 1200 mla r2, r2, r0, r1
LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8);
7534: 9810 ldr r0, [sp, #64] ; 0x40
7536: f003 011f and.w r1, r3, #31
753a: 08d2 lsrs r2, r2, #3
753c: fb01 0105 mla r1, r1, r5, r0
7540: f3c1 2104 ubfx r1, r1, #8, #5
7544: f402 62fc and.w r2, r2, #2016 ; 0x7e0
7548: 430a orrs r2, r1
LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8);
754a: 9919 ldr r1, [sp, #100] ; 0x64
754c: 0adb lsrs r3, r3, #11
754e: fb03 1305 mla r3, r3, r5, r1
7552: f3c3 2307 ubfx r3, r3, #8, #8
7556: ea42 23c3 orr.w r3, r2, r3, lsl #11
755a: b29b uxth r3, r3
map2[px_i].full = c.full;
755c: 9a1d ldr r2, [sp, #116] ; 0x74
755e: 990e ldr r1, [sp, #56] ; 0x38
7560: f822 3011 strh.w r3, [r2, r1, lsl #1]
7564: e029 b.n 75ba <lv_draw_map+0x53a>
pxi = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size;
7566: 4413 add r3, r2
_lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size - 1);
7568: 18c2 adds r2, r0, r3
756a: 5cc1 ldrb r1, [r0, r3]
756c: f88d 10ac strb.w r1, [sp, #172] ; 0xac
7570: 7851 ldrb r1, [r2, #1]
7572: f88d 10ad strb.w r1, [sp, #173] ; 0xad
dsc->res.opa = src_u8[pxi + px_size - 1];
7576: 7892 ldrb r2, [r2, #2]
7578: f88d 20ae strb.w r2, [sp, #174] ; 0xae
px_size = LV_IMG_PX_SIZE_ALPHA_BYTE;
757c: 2203 movs r2, #3
757e: e7a9 b.n 74d4 <lv_draw_map+0x454>
dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color);
7580: f9bd 1060 ldrsh.w r1, [sp, #96] ; 0x60
7584: f9bd 2048 ldrsh.w r2, [sp, #72] ; 0x48
7588: f8bd 30a8 ldrh.w r3, [sp, #168] ; 0xa8
758c: 4d1e ldr r5, [pc, #120] ; (7608 <lv_draw_map+0x588>)
758e: a82c add r0, sp, #176 ; 0xb0
7590: e9cd 1220 strd r1, r2, [sp, #128] ; 0x80
7594: 47a8 blx r5
dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int);
7596: 4b1d ldr r3, [pc, #116] ; (760c <lv_draw_map+0x58c>)
dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color);
7598: f8ad 00ac strh.w r0, [sp, #172] ; 0xac
dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int);
759c: e9dd 1220 ldrd r1, r2, [sp, #128] ; 0x80
75a0: a82c add r0, sp, #176 ; 0xb0
75a2: 4798 blx r3
pxi = 0; /*unused*/
75a4: 9b13 ldr r3, [sp, #76] ; 0x4c
dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int);
75a6: f88d 00ae strb.w r0, [sp, #174] ; 0xae
75aa: e794 b.n 74d6 <lv_draw_map+0x456>
if(alpha_byte) {
75ac: 9b07 ldr r3, [sp, #28]
75ae: b17b cbz r3, 75d0 <lv_draw_map+0x550>
lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
75b0: 9b0d ldr r3, [sp, #52] ; 0x34
mask_buf[px_i] = px_opa;
75b2: 9a06 ldr r2, [sp, #24]
lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
75b4: 789b ldrb r3, [r3, #2]
mask_buf[px_i] = px_opa;
75b6: 7013 strb r3, [r2, #0]
if(px_opa == 0) {
75b8: b96b cbnz r3, 75d6 <lv_draw_map+0x556>
for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) {
75ba: 9b0e ldr r3, [sp, #56] ; 0x38
75bc: 9a05 ldr r2, [sp, #20]
75be: 3301 adds r3, #1
75c0: 930e str r3, [sp, #56] ; 0x38
75c2: 9b0d ldr r3, [sp, #52] ; 0x34
75c4: 4413 add r3, r2
75c6: 930d str r3, [sp, #52] ; 0x34
75c8: 9b06 ldr r3, [sp, #24]
75ca: 3301 adds r3, #1
75cc: 9306 str r3, [sp, #24]
75ce: e6ca b.n 7366 <lv_draw_map+0x2e6>
mask_buf[px_i] = 0xFF;
75d0: 9a06 ldr r2, [sp, #24]
75d2: 23ff movs r3, #255 ; 0xff
75d4: 7013 strb r3, [r2, #0]
c.full = map_px[0] + (map_px[1] << 8);
75d6: 9b0d ldr r3, [sp, #52] ; 0x34
75d8: 785a ldrb r2, [r3, #1]
75da: 781b ldrb r3, [r3, #0]
75dc: eb03 2302 add.w r3, r3, r2, lsl #8
if(chroma_key) {
75e0: 9a0c ldr r2, [sp, #48] ; 0x30
c.full = map_px[0] + (map_px[1] << 8);
75e2: b29b uxth r3, r3
if(chroma_key) {
75e4: 2a00 cmp r2, #0
75e6: d09c beq.n 7522 <lv_draw_map+0x4a2>
if(c.full == chroma_keyed_color.full) {
75e8: f5b3 6ffc cmp.w r3, #2016 ; 0x7e0
75ec: d199 bne.n 7522 <lv_draw_map+0x4a2>
75ee: e72f b.n 7450 <lv_draw_map+0x3d0>
mask_res = LV_DRAW_MASK_RES_CHANGED;
75f0: 2802 cmp r0, #2
75f2: bf08 it eq
75f4: f04f 0b02 moveq.w fp, #2
75f8: e6e4 b.n 73c4 <lv_draw_map+0x344>
75fa: bf00 nop
75fc: 000099e5 .word 0x000099e5
7600: 0000f2a9 .word 0x0000f2a9
7604: 0000c469 .word 0x0000c469
7608: 0000c00d .word 0x0000c00d
760c: 0000c0fd .word 0x0000c0fd
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, mask_res, draw_dsc->opa, draw_dsc->blend_mode);
7610: 7ba3 ldrb r3, [r4, #14]
7612: 9302 str r3, [sp, #8]
7614: 7823 ldrb r3, [r4, #0]
7616: 4d6b ldr r5, [pc, #428] ; (77c4 <lv_draw_map+0x744>)
7618: e9cd b300 strd fp, r3, [sp]
761c: ee18 2a10 vmov r2, s16
7620: 463b mov r3, r7
7622: a924 add r1, sp, #144 ; 0x90
7624: 4648 mov r0, r9
7626: 47a8 blx r5
blend_area.y1 = blend_area.y2 + 1;
7628: f8bd 3096 ldrh.w r3, [sp, #150] ; 0x96
762c: 3301 adds r3, #1
762e: b21b sxth r3, r3
7630: f8ad 3092 strh.w r3, [sp, #146] ; 0x92
blend_area.y2 = blend_area.y1;
7634: f8ad 3096 strh.w r3, [sp, #150] ; 0x96
mask_res = (alpha_byte || chroma_key || draw_dsc->angle ||
7638: 9b07 ldr r3, [sp, #28]
763a: b9a3 cbnz r3, 7666 <lv_draw_map+0x5e6>
763c: 9b0c ldr r3, [sp, #48] ; 0x30
763e: b993 cbnz r3, 7666 <lv_draw_map+0x5e6>
7640: 8863 ldrh r3, [r4, #2]
7642: b983 cbnz r3, 7666 <lv_draw_map+0x5e6>
7644: 8923 ldrh r3, [r4, #8]
7646: f5b3 7f80 cmp.w r3, #256 ; 0x100
764a: bf14 ite ne
764c: f04f 0b02 movne.w fp, #2
7650: f04f 0b01 moveq.w fp, #1
if(other_mask_cnt) {
7654: 9b0b ldr r3, [sp, #44] ; 0x2c
7656: b14b cbz r3, 766c <lv_draw_map+0x5ec>
_lv_memset_ff(mask_buf, mask_buf_size);
7658: 990a ldr r1, [sp, #40] ; 0x28
765a: 4b5b ldr r3, [pc, #364] ; (77c8 <lv_draw_map+0x748>)
765c: 4638 mov r0, r7
765e: 4798 blx r3
px_i = 0;
7660: f04f 0800 mov.w r8, #0
7664: e6c3 b.n 73ee <lv_draw_map+0x36e>
mask_res = (alpha_byte || chroma_key || draw_dsc->angle ||
7666: f04f 0b02 mov.w fp, #2
766a: e7f3 b.n 7654 <lv_draw_map+0x5d4>
px_i = 0;
766c: f8dd 802c ldr.w r8, [sp, #44] ; 0x2c
7670: e6bd b.n 73ee <lv_draw_map+0x36e>
bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false;
7672: 2301 movs r3, #1
7674: 9315 str r3, [sp, #84] ; 0x54
uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area);
7676: 4e55 ldr r6, [pc, #340] ; (77cc <lv_draw_map+0x74c>)
7678: a822 add r0, sp, #136 ; 0x88
767a: 47b0 blx r6
767c: f5b0 7ff0 cmp.w r0, #480 ; 0x1e0
7680: f63f ae36 bhi.w 72f0 <lv_draw_map+0x270>
7684: a822 add r0, sp, #136 ; 0x88
7686: 47b0 blx r6
7688: 900a str r0, [sp, #40] ; 0x28
lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
768a: 9b0a ldr r3, [sp, #40] ; 0x28
768c: 4e50 ldr r6, [pc, #320] ; (77d0 <lv_draw_map+0x750>)
768e: 0058 lsls r0, r3, #1
7690: 47b0 blx r6
7692: ee08 0a10 vmov s16, r0
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
7696: 980a ldr r0, [sp, #40] ; 0x28
7698: 47b0 blx r6
_lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t));
769a: 4b4e ldr r3, [pc, #312] ; (77d4 <lv_draw_map+0x754>)
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
769c: 4607 mov r7, r0
_lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t));
769e: 2148 movs r1, #72 ; 0x48
76a0: a826 add r0, sp, #152 ; 0x98
76a2: 4798 blx r3
if(transform) {
76a4: 9b15 ldr r3, [sp, #84] ; 0x54
76a6: b363 cbz r3, 7702 <lv_draw_map+0x682>
if(alpha_byte) cf = LV_IMG_CF_TRUE_COLOR_ALPHA;
76a8: 9b07 ldr r3, [sp, #28]
76aa: 2b00 cmp r3, #0
76ac: f47f ae24 bne.w 72f8 <lv_draw_map+0x278>
else if(chroma_key) cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED;
76b0: 9b0c ldr r3, [sp, #48] ; 0x30
76b2: 2b00 cmp r3, #0
76b4: bf0c ite eq
76b6: 2204 moveq r2, #4
76b8: 2206 movne r2, #6
trans_dsc.cfg.angle = draw_dsc->angle;
76ba: 8863 ldrh r3, [r4, #2]
76bc: f8ad 30a4 strh.w r3, [sp, #164] ; 0xa4
trans_dsc.cfg.zoom = draw_dsc->zoom;
76c0: 8923 ldrh r3, [r4, #8]
76c2: f8ad 30a6 strh.w r3, [sp, #166] ; 0xa6
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
76c6: f8ba 3006 ldrh.w r3, [sl, #6]
76ca: f8ba 1002 ldrh.w r1, [sl, #2]
trans_dsc.cfg.src = map_p;
76ce: 9526 str r5, [sp, #152] ; 0x98
76d0: 3301 adds r3, #1
76d2: 1a5b subs r3, r3, r1
trans_dsc.cfg.src_h = lv_area_get_height(map_area);;
76d4: f8ad 309e strh.w r3, [sp, #158] ; 0x9e
trans_dsc.cfg.pivot_x = draw_dsc->pivot.x;
76d8: 88a3 ldrh r3, [r4, #4]
76da: f8ad 30a0 strh.w r3, [sp, #160] ; 0xa0
trans_dsc.cfg.pivot_y = draw_dsc->pivot.y;
76de: 88e3 ldrh r3, [r4, #6]
76e0: f8ad 30a2 strh.w r3, [sp, #162] ; 0xa2
trans_dsc.cfg.color = draw_dsc->recolor;
76e4: 89a3 ldrh r3, [r4, #12]
76e6: f8ad 30a8 strh.w r3, [sp, #168] ; 0xa8
trans_dsc.cfg.antialias = draw_dsc->antialias;
76ea: 7be3 ldrb r3, [r4, #15]
trans_dsc.cfg.src_w = map_w;
76ec: f8ad 809c strh.w r8, [sp, #156] ; 0x9c
trans_dsc.cfg.antialias = draw_dsc->antialias;
76f0: f3c3 0300 ubfx r3, r3, #0, #1
76f4: f88d 30ab strb.w r3, [sp, #171] ; 0xab
_lv_img_buf_transform_init(&trans_dsc);
76f8: a826 add r0, sp, #152 ; 0x98
76fa: 4b37 ldr r3, [pc, #220] ; (77d8 <lv_draw_map+0x758>)
trans_dsc.cfg.cf = cf;
76fc: f88d 20aa strb.w r2, [sp, #170] ; 0xaa
_lv_img_buf_transform_init(&trans_dsc);
7700: 4798 blx r3
lv_opa_t recolor_opa_inv = 255 - draw_dsc->recolor_opa;
7702: 7aa3 ldrb r3, [r4, #10]
7704: 43da mvns r2, r3
7706: b2d2 uxtb r2, r2
7708: 9214 str r2, [sp, #80] ; 0x50
if(draw_dsc->recolor_opa != 0) {
770a: 2b00 cmp r3, #0
770c: f43f adf6 beq.w 72fc <lv_draw_map+0x27c>
out[0] = (uint16_t) LV_COLOR_GET_R(c) * mix;
7710: 7b62 ldrb r2, [r4, #13]
7712: 08d2 lsrs r2, r2, #3
7714: 435a muls r2, r3
7716: 9219 str r2, [sp, #100] ; 0x64
out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix;
7718: 89a2 ldrh r2, [r4, #12]
771a: f3c2 1245 ubfx r2, r2, #5, #6
771e: 435a muls r2, r3
7720: 9216 str r2, [sp, #88] ; 0x58
out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix;
7722: 7b22 ldrb r2, [r4, #12]
7724: f002 021f and.w r2, r2, #31
7728: 4353 muls r3, r2
772a: 9310 str r3, [sp, #64] ; 0x40
mask_res = (alpha_byte || chroma_key || draw_dsc->angle ||
772c: 9b07 ldr r3, [sp, #28]
772e: 2b00 cmp r3, #0
7730: f47f ade8 bne.w 7304 <lv_draw_map+0x284>
7734: 9b0c ldr r3, [sp, #48] ; 0x30
7736: 2b00 cmp r3, #0
7738: f47f ade4 bne.w 7304 <lv_draw_map+0x284>
773c: 8863 ldrh r3, [r4, #2]
773e: 2b00 cmp r3, #0
7740: f47f ade0 bne.w 7304 <lv_draw_map+0x284>
7744: 8923 ldrh r3, [r4, #8]
7746: f5b3 7f80 cmp.w r3, #256 ; 0x100
774a: bf14 ite ne
774c: f04f 0b02 movne.w fp, #2
7750: f04f 0b01 moveq.w fp, #1
if(other_mask_cnt) {
7754: 9b0b ldr r3, [sp, #44] ; 0x2c
7756: b11b cbz r3, 7760 <lv_draw_map+0x6e0>
_lv_memset_ff(mask_buf, mask_buf_size);
7758: 990a ldr r1, [sp, #40] ; 0x28
775a: 4b1b ldr r3, [pc, #108] ; (77c8 <lv_draw_map+0x748>)
775c: 4638 mov r0, r7
775e: 4798 blx r3
int32_t rot_y = disp_area->y1 + draw_area.y1 - map_area->y1;
7760: 9b04 ldr r3, [sp, #16]
7762: f9bd 208a ldrsh.w r2, [sp, #138] ; 0x8a
7766: f9b3 3012 ldrsh.w r3, [r3, #18]
776a: 4413 add r3, r2
776c: f9ba 2002 ldrsh.w r2, [sl, #2]
7770: 1a9b subs r3, r3, r2
7772: 931a str r3, [sp, #104] ; 0x68
map_buf_tmp += map_w * px_size_byte;
7774: 9b05 ldr r3, [sp, #20]
7776: fb13 f308 smulbb r3, r3, r8
777a: 931c str r3, [sp, #112] ; 0x70
for(y = 0; y < draw_area_h; y++) {
777c: 2300 movs r3, #0
777e: 9309 str r3, [sp, #36] ; 0x24
uint32_t px_i = 0;
7780: 4698 mov r8, r3
7782: 9b11 ldr r3, [sp, #68] ; 0x44
7784: ea23 73e3 bic.w r3, r3, r3, asr #31
7788: 931f str r3, [sp, #124] ; 0x7c
for(y = 0; y < draw_area_h; y++) {
778a: 9b17 ldr r3, [sp, #92] ; 0x5c
778c: 9a09 ldr r2, [sp, #36] ; 0x24
778e: 4293 cmp r3, r2
7790: f73f adcc bgt.w 732c <lv_draw_map+0x2ac>
if(blend_area.y1 != blend_area.y2) {
7794: f9bd 3096 ldrsh.w r3, [sp, #150] ; 0x96
7798: f9bd 2092 ldrsh.w r2, [sp, #146] ; 0x92
779c: 429a cmp r2, r3
779e: d00e beq.n 77be <lv_draw_map+0x73e>
blend_area.y2--;
77a0: 3b01 subs r3, #1
77a2: f8ad 3096 strh.w r3, [sp, #150] ; 0x96
_lv_blend_map(clip_area, &blend_area, map2, mask_buf, mask_res, draw_dsc->opa, draw_dsc->blend_mode);
77a6: 7ba3 ldrb r3, [r4, #14]
77a8: 9302 str r3, [sp, #8]
77aa: 7823 ldrb r3, [r4, #0]
77ac: 4c05 ldr r4, [pc, #20] ; (77c4 <lv_draw_map+0x744>)
77ae: e9cd b300 strd fp, r3, [sp]
77b2: ee18 2a10 vmov r2, s16
77b6: 463b mov r3, r7
77b8: a924 add r1, sp, #144 ; 0x90
77ba: 4648 mov r0, r9
77bc: 47a0 blx r4
_lv_mem_buf_release(mask_buf);
77be: 4638 mov r0, r7
77c0: e590 b.n 72e4 <lv_draw_map+0x264>
77c2: bf00 nop
77c4: 00006a81 .word 0x00006a81
77c8: 0000f305 .word 0x0000f305
77cc: 0000e0f5 .word 0x0000e0f5
77d0: 0000f145 .word 0x0000f145
77d4: 0000f2a9 .word 0x0000f2a9
77d8: 0000c1e9 .word 0x0000c1e9
000077dc <lv_draw_img_dsc_init>:
{
77dc: b510 push {r4, lr}
_lv_memset_00(dsc, sizeof(lv_draw_img_dsc_t));
77de: 4b08 ldr r3, [pc, #32] ; (7800 <lv_draw_img_dsc_init+0x24>)
{
77e0: 4604 mov r4, r0
_lv_memset_00(dsc, sizeof(lv_draw_img_dsc_t));
77e2: 2110 movs r1, #16
77e4: 4798 blx r3
dsc->recolor = LV_COLOR_BLACK;
77e6: 2300 movs r3, #0
77e8: 81a3 strh r3, [r4, #12]
dsc->opa = LV_OPA_COVER;
77ea: 23ff movs r3, #255 ; 0xff
77ec: 7023 strb r3, [r4, #0]
dsc->zoom = LV_IMG_ZOOM_NONE;
77ee: f44f 7380 mov.w r3, #256 ; 0x100
77f2: 8123 strh r3, [r4, #8]
dsc->antialias = LV_ANTIALIAS;
77f4: 7be3 ldrb r3, [r4, #15]
77f6: f043 0301 orr.w r3, r3, #1
77fa: 73e3 strb r3, [r4, #15]
}
77fc: bd10 pop {r4, pc}
77fe: bf00 nop
7800: 0000f2a9 .word 0x0000f2a9
00007804 <lv_img_cf_get_px_size>:
switch(cf) {
7804: 3804 subs r0, #4
7806: b2c0 uxtb r0, r0
7808: 280a cmp r0, #10
780a: bf9d ittte ls
780c: 4b02 ldrls r3, [pc, #8] ; (7818 <lv_img_cf_get_px_size+0x14>)
780e: 181b addls r3, r3, r0
7810: 7898 ldrbls r0, [r3, #2]
{
7812: 2000 movhi r0, #0
}
7814: 4770 bx lr
7816: bf00 nop
7818: 00027520 .word 0x00027520
0000781c <lv_img_cf_is_chroma_keyed>:
switch(cf) {
781c: 2803 cmp r0, #3
781e: d005 beq.n 782c <lv_img_cf_is_chroma_keyed+0x10>
7820: 3806 subs r0, #6
7822: 2804 cmp r0, #4
7824: bf8c ite hi
7826: 2000 movhi r0, #0
7828: 2001 movls r0, #1
782a: 4770 bx lr
is_chroma_keyed = true;
782c: 2001 movs r0, #1
}
782e: 4770 bx lr
00007830 <lv_img_cf_has_alpha>:
switch(cf) {
7830: 280e cmp r0, #14
7832: bf9d ittte ls
7834: f647 73a4 movwls r3, #32676 ; 0x7fa4
7838: fa23 f000 lsrls.w r0, r3, r0
783c: f000 0001 andls.w r0, r0, #1
{
7840: 2000 movhi r0, #0
}
7842: 4770 bx lr
00007844 <lv_draw_img>:
{
7844: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
7848: ed2d 8b02 vpush {d8}
784c: 4604 mov r4, r0
784e: b08d sub sp, #52 ; 0x34
7850: 4688 mov r8, r1
7852: 461f mov r7, r3
if(src == NULL) {
7854: 4610 mov r0, r2
7856: b94a cbnz r2, 786c <lv_draw_img+0x28>
LV_LOG_WARN("Image draw: src is NULL");
7858: 4b76 ldr r3, [pc, #472] ; (7a34 <lv_draw_img+0x1f0>)
785a: 9300 str r3, [sp, #0]
785c: 4b76 ldr r3, [pc, #472] ; (7a38 <lv_draw_img+0x1f4>)
785e: 224d movs r2, #77 ; 0x4d
LV_LOG_WARN("Image draw error");
7860: 4976 ldr r1, [pc, #472] ; (7a3c <lv_draw_img+0x1f8>)
7862: 4d77 ldr r5, [pc, #476] ; (7a40 <lv_draw_img+0x1fc>)
7864: 2002 movs r0, #2
7866: 47a8 blx r5
show_error(coords, mask, "No\ndata");
7868: 4a76 ldr r2, [pc, #472] ; (7a44 <lv_draw_img+0x200>)
786a: e017 b.n 789c <lv_draw_img+0x58>
if(dsc->opa <= LV_OPA_MIN) return;
786c: 781b ldrb r3, [r3, #0]
786e: 2b05 cmp r3, #5
7870: d969 bls.n 7946 <lv_draw_img+0x102>
lv_img_cache_entry_t * cdsc = _lv_img_cache_open(src, draw_dsc->recolor);
7872: 89b9 ldrh r1, [r7, #12]
7874: 4b74 ldr r3, [pc, #464] ; (7a48 <lv_draw_img+0x204>)
7876: 4798 blx r3
if(cdsc == NULL) return LV_RES_INV;
7878: 4605 mov r5, r0
787a: 2800 cmp r0, #0
787c: f000 80bc beq.w 79f8 <lv_draw_img+0x1b4>
bool chroma_keyed = lv_img_cf_is_chroma_keyed(cdsc->dec_dsc.header.cf);
7880: 7b03 ldrb r3, [r0, #12]
if(cdsc->dec_dsc.error_msg != NULL) {
7882: 6982 ldr r2, [r0, #24]
bool chroma_keyed = lv_img_cf_is_chroma_keyed(cdsc->dec_dsc.header.cf);
7884: f003 031f and.w r3, r3, #31
if(cdsc->dec_dsc.error_msg != NULL) {
7888: b18a cbz r2, 78ae <lv_draw_img+0x6a>
LV_LOG_WARN("Image draw error");
788a: 4b70 ldr r3, [pc, #448] ; (7a4c <lv_draw_img+0x208>)
788c: 9300 str r3, [sp, #0]
788e: 22f7 movs r2, #247 ; 0xf7
7890: 4b6f ldr r3, [pc, #444] ; (7a50 <lv_draw_img+0x20c>)
7892: 496a ldr r1, [pc, #424] ; (7a3c <lv_draw_img+0x1f8>)
7894: 4e6a ldr r6, [pc, #424] ; (7a40 <lv_draw_img+0x1fc>)
7896: 2002 movs r0, #2
7898: 47b0 blx r6
show_error(coords, clip_area, cdsc->dec_dsc.error_msg);
789a: 69aa ldr r2, [r5, #24]
show_error(coords, mask, "No\ndata");
789c: 4b6d ldr r3, [pc, #436] ; (7a54 <lv_draw_img+0x210>)
789e: 4641 mov r1, r8
78a0: 4620 mov r0, r4
}
78a2: b00d add sp, #52 ; 0x34
78a4: ecbd 8b02 vpop {d8}
78a8: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
show_error(coords, mask, "No\ndata");
78ac: 4718 bx r3
bool chroma_keyed = lv_img_cf_is_chroma_keyed(cdsc->dec_dsc.header.cf);
78ae: 4618 mov r0, r3
78b0: 4a69 ldr r2, [pc, #420] ; (7a58 <lv_draw_img+0x214>)
78b2: 4790 blx r2
78b4: 9003 str r0, [sp, #12]
bool alpha_byte = lv_img_cf_has_alpha(cdsc->dec_dsc.header.cf);
78b6: 4618 mov r0, r3
78b8: 4b68 ldr r3, [pc, #416] ; (7a5c <lv_draw_img+0x218>)
78ba: 4798 blx r3
else if(cdsc->dec_dsc.img_data) {
78bc: 692b ldr r3, [r5, #16]
bool alpha_byte = lv_img_cf_has_alpha(cdsc->dec_dsc.header.cf);
78be: 9004 str r0, [sp, #16]
else if(cdsc->dec_dsc.img_data) {
78c0: 2b00 cmp r3, #0
78c2: d045 beq.n 7950 <lv_draw_img+0x10c>
lv_area_copy(&map_area_rot, coords);
78c4: 4b66 ldr r3, [pc, #408] ; (7a60 <lv_draw_img+0x21c>)
78c6: a808 add r0, sp, #32
78c8: 4621 mov r1, r4
78ca: 4798 blx r3
if(draw_dsc->angle || draw_dsc->zoom != LV_IMG_ZOOM_NONE) {
78cc: 887b ldrh r3, [r7, #2]
78ce: 8938 ldrh r0, [r7, #8]
78d0: b913 cbnz r3, 78d8 <lv_draw_img+0x94>
78d2: f5b0 7f80 cmp.w r0, #256 ; 0x100
78d6: d026 beq.n 7926 <lv_draw_img+0xe2>
78d8: 88e2 ldrh r2, [r4, #6]
78da: 8861 ldrh r1, [r4, #2]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
78dc: 8826 ldrh r6, [r4, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
78de: 3201 adds r2, #1
78e0: 1a52 subs r2, r2, r1
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
78e2: 88a1 ldrh r1, [r4, #4]
78e4: 3101 adds r1, #1
78e6: 1b89 subs r1, r1, r6
_lv_img_buf_get_transformed_area(&map_area_rot, w, h, draw_dsc->angle, draw_dsc->zoom, &draw_dsc->pivot);
78e8: 1d3e adds r6, r7, #4
78ea: e9cd 0600 strd r0, r6, [sp]
78ee: b21b sxth r3, r3
78f0: b212 sxth r2, r2
78f2: b209 sxth r1, r1
78f4: 4e5b ldr r6, [pc, #364] ; (7a64 <lv_draw_img+0x220>)
78f6: a808 add r0, sp, #32
78f8: 47b0 blx r6
map_area_rot.x1 += coords->x1;
78fa: 8822 ldrh r2, [r4, #0]
78fc: f8bd 3020 ldrh.w r3, [sp, #32]
map_area_rot.y1 += coords->y1;
7900: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22
map_area_rot.x1 += coords->x1;
7904: 4413 add r3, r2
7906: f8ad 3020 strh.w r3, [sp, #32]
map_area_rot.y1 += coords->y1;
790a: 8863 ldrh r3, [r4, #2]
790c: 4419 add r1, r3
790e: f8ad 1022 strh.w r1, [sp, #34] ; 0x22
map_area_rot.x2 += coords->x1;
7912: f8bd 1024 ldrh.w r1, [sp, #36] ; 0x24
7916: 440a add r2, r1
7918: f8ad 2024 strh.w r2, [sp, #36] ; 0x24
map_area_rot.y2 += coords->y1;
791c: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26
7920: 4413 add r3, r2
7922: f8ad 3026 strh.w r3, [sp, #38] ; 0x26
union_ok = _lv_area_intersect(&mask_com, clip_area, &map_area_rot);
7926: 4b50 ldr r3, [pc, #320] ; (7a68 <lv_draw_img+0x224>)
7928: aa08 add r2, sp, #32
792a: 4641 mov r1, r8
792c: a80a add r0, sp, #40 ; 0x28
792e: 4798 blx r3
if(union_ok == false) {
7930: b148 cbz r0, 7946 <lv_draw_img+0x102>
lv_draw_map(coords, &mask_com, cdsc->dec_dsc.img_data, draw_dsc, chroma_keyed, alpha_byte);
7932: 9b04 ldr r3, [sp, #16]
7934: 9301 str r3, [sp, #4]
7936: 9b03 ldr r3, [sp, #12]
7938: 9300 str r3, [sp, #0]
793a: 4620 mov r0, r4
793c: 692a ldr r2, [r5, #16]
793e: 4c4b ldr r4, [pc, #300] ; (7a6c <lv_draw_img+0x228>)
7940: 463b mov r3, r7
7942: a90a add r1, sp, #40 ; 0x28
7944: 47a0 blx r4
}
7946: b00d add sp, #52 ; 0x34
7948: ecbd 8b02 vpop {d8}
794c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
union_ok = _lv_area_intersect(&mask_com, clip_area, coords);
7950: 4b45 ldr r3, [pc, #276] ; (7a68 <lv_draw_img+0x224>)
7952: 4622 mov r2, r4
7954: 4641 mov r1, r8
7956: a806 add r0, sp, #24
7958: 4798 blx r3
if(union_ok == false) {
795a: 2800 cmp r0, #0
795c: d0f3 beq.n 7946 <lv_draw_img+0x102>
795e: f8bd 601c ldrh.w r6, [sp, #28]
7962: f8bd 3018 ldrh.w r3, [sp, #24]
7966: 3601 adds r6, #1
7968: 1af6 subs r6, r6, r3
796a: b233 sxth r3, r6
796c: 9305 str r3, [sp, #20]
uint8_t * buf = _lv_mem_buf_get(lv_area_get_width(&mask_com) *
796e: eb03 0043 add.w r0, r3, r3, lsl #1
7972: 4b3f ldr r3, [pc, #252] ; (7a70 <lv_draw_img+0x22c>)
7974: 4798 blx r3
lv_area_copy(&line, &mask_com);
7976: 4b3a ldr r3, [pc, #232] ; (7a60 <lv_draw_img+0x21c>)
7978: a906 add r1, sp, #24
uint8_t * buf = _lv_mem_buf_get(lv_area_get_width(&mask_com) *
797a: 4681 mov r9, r0
lv_area_copy(&line, &mask_com);
797c: a808 add r0, sp, #32
797e: 4798 blx r3
lv_area_set_height(&line, 1);
7980: 4b3c ldr r3, [pc, #240] ; (7a74 <lv_draw_img+0x230>)
7982: 2101 movs r1, #1
7984: a808 add r0, sp, #32
7986: 4798 blx r3
int32_t x = mask_com.x1 - coords->x1;
7988: f9bd 3018 ldrsh.w r3, [sp, #24]
798c: f9b4 2000 ldrsh.w r2, [r4]
int32_t y = mask_com.y1 - coords->y1;
7990: f9bd a01a ldrsh.w sl, [sp, #26]
7994: f9b4 1002 ldrsh.w r1, [r4, #2]
read_res = lv_img_decoder_read_line(&cdsc->dec_dsc, x, y, width, buf);
7998: 1a9b subs r3, r3, r2
799a: b21b sxth r3, r3
799c: ee08 3a10 vmov s16, r3
int32_t y = mask_com.y1 - coords->y1;
79a0: ebaa 0b01 sub.w fp, sl, r1
for(row = mask_com.y1; row <= mask_com.y2; row++) {
79a4: f9bd 301e ldrsh.w r3, [sp, #30]
79a8: 459a cmp sl, r3
79aa: dd03 ble.n 79b4 <lv_draw_img+0x170>
_lv_mem_buf_release(buf);
79ac: 4b32 ldr r3, [pc, #200] ; (7a78 <lv_draw_img+0x234>)
79ae: 4648 mov r0, r9
79b0: 4798 blx r3
if(res == LV_RES_INV) {
79b2: e7c8 b.n 7946 <lv_draw_img+0x102>
union_ok = _lv_area_intersect(&mask_line, clip_area, &line);
79b4: 4b2c ldr r3, [pc, #176] ; (7a68 <lv_draw_img+0x224>)
79b6: aa08 add r2, sp, #32
79b8: 4641 mov r1, r8
79ba: a80a add r0, sp, #40 ; 0x28
79bc: 4798 blx r3
if(union_ok == false) continue;
79be: 2800 cmp r0, #0
79c0: d035 beq.n 7a2e <lv_draw_img+0x1ea>
read_res = lv_img_decoder_read_line(&cdsc->dec_dsc, x, y, width, buf);
79c2: 9b05 ldr r3, [sp, #20]
79c4: 4e2d ldr r6, [pc, #180] ; (7a7c <lv_draw_img+0x238>)
79c6: f8cd 9000 str.w r9, [sp]
79ca: ee18 1a10 vmov r1, s16
79ce: fa0f f28b sxth.w r2, fp
79d2: 4628 mov r0, r5
79d4: 47b0 blx r6
if(read_res != LV_RES_OK) {
79d6: 2801 cmp r0, #1
79d8: d013 beq.n 7a02 <lv_draw_img+0x1be>
lv_img_decoder_close(&cdsc->dec_dsc);
79da: 4628 mov r0, r5
79dc: 4b28 ldr r3, [pc, #160] ; (7a80 <lv_draw_img+0x23c>)
LV_LOG_WARN("Image draw can't read the line");
79de: 4d18 ldr r5, [pc, #96] ; (7a40 <lv_draw_img+0x1fc>)
lv_img_decoder_close(&cdsc->dec_dsc);
79e0: 4798 blx r3
LV_LOG_WARN("Image draw can't read the line");
79e2: 4b28 ldr r3, [pc, #160] ; (7a84 <lv_draw_img+0x240>)
79e4: 9300 str r3, [sp, #0]
79e6: 2002 movs r0, #2
79e8: 4b19 ldr r3, [pc, #100] ; (7a50 <lv_draw_img+0x20c>)
79ea: 4914 ldr r1, [pc, #80] ; (7a3c <lv_draw_img+0x1f8>)
79ec: f44f 729a mov.w r2, #308 ; 0x134
79f0: 47a8 blx r5
_lv_mem_buf_release(buf);
79f2: 4b21 ldr r3, [pc, #132] ; (7a78 <lv_draw_img+0x234>)
79f4: 4648 mov r0, r9
79f6: 4798 blx r3
LV_LOG_WARN("Image draw error");
79f8: 4b14 ldr r3, [pc, #80] ; (7a4c <lv_draw_img+0x208>)
79fa: 9300 str r3, [sp, #0]
79fc: 2258 movs r2, #88 ; 0x58
79fe: 4b0e ldr r3, [pc, #56] ; (7a38 <lv_draw_img+0x1f4>)
7a00: e72e b.n 7860 <lv_draw_img+0x1c>
lv_draw_map(&line, &mask_line, buf, draw_dsc, chroma_keyed, alpha_byte);
7a02: 9b04 ldr r3, [sp, #16]
7a04: 9301 str r3, [sp, #4]
7a06: 9b03 ldr r3, [sp, #12]
7a08: 9300 str r3, [sp, #0]
7a0a: 4e18 ldr r6, [pc, #96] ; (7a6c <lv_draw_img+0x228>)
7a0c: 463b mov r3, r7
7a0e: 464a mov r2, r9
7a10: a90a add r1, sp, #40 ; 0x28
7a12: a808 add r0, sp, #32
7a14: 47b0 blx r6
line.y1++;
7a16: f8bd 3022 ldrh.w r3, [sp, #34] ; 0x22
7a1a: 3301 adds r3, #1
7a1c: f8ad 3022 strh.w r3, [sp, #34] ; 0x22
line.y2++;
7a20: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26
7a24: 3301 adds r3, #1
7a26: f8ad 3026 strh.w r3, [sp, #38] ; 0x26
y++;
7a2a: f10b 0b01 add.w fp, fp, #1
for(row = mask_com.y1; row <= mask_com.y2; row++) {
7a2e: f10a 0a01 add.w sl, sl, #1
7a32: e7b7 b.n 79a4 <lv_draw_img+0x160>
7a34: 000274cf .word 0x000274cf
7a38: 0002752d .word 0x0002752d
7a3c: 0002749b .word 0x0002749b
7a40: 0000eb79 .word 0x0000eb79
7a44: 000274e7 .word 0x000274e7
7a48: 0000c729 .word 0x0000c729
7a4c: 000274ef .word 0x000274ef
7a50: 00027539 .word 0x00027539
7a54: 0000701d .word 0x0000701d
7a58: 0000781d .word 0x0000781d
7a5c: 00007831 .word 0x00007831
7a60: 0000706d .word 0x0000706d
7a64: 0000c2e5 .word 0x0000c2e5
7a68: 0000e111 .word 0x0000e111
7a6c: 00007081 .word 0x00007081
7a70: 0000f145 .word 0x0000f145
7a74: 0000e0eb .word 0x0000e0eb
7a78: 0000edf9 .word 0x0000edf9
7a7c: 0000d2b1 .word 0x0000d2b1
7a80: 0000d2d1 .word 0x0000d2d1
7a84: 00027500 .word 0x00027500
00007a88 <lv_img_src_get_type>:
if(src == NULL) return img_src_type;
7a88: b138 cbz r0, 7a9a <lv_img_src_get_type+0x12>
if(u8_p[0] >= 0x20 && u8_p[0] <= 0x7F) {
7a8a: 7800 ldrb r0, [r0, #0]
7a8c: f1a0 0320 sub.w r3, r0, #32
7a90: 2b5f cmp r3, #95 ; 0x5f
7a92: d904 bls.n 7a9e <lv_img_src_get_type+0x16>
else if(u8_p[0] >= 0x80) {
7a94: 09c0 lsrs r0, r0, #7
7a96: 0040 lsls r0, r0, #1
7a98: 4770 bx lr
if(src == NULL) return img_src_type;
7a9a: 2003 movs r0, #3
7a9c: 4770 bx lr
img_src_type = LV_IMG_SRC_FILE; /*If it's an ASCII character then it's file name*/
7a9e: 2001 movs r0, #1
}
7aa0: 4770 bx lr
00007aa2 <hex_char_to_num>:
*/
static uint8_t hex_char_to_num(char hex)
{
uint8_t result = 0;
if(hex >= '0' && hex <= '9') {
7aa2: f1a0 0330 sub.w r3, r0, #48 ; 0x30
7aa6: b2db uxtb r3, r3
7aa8: 2b09 cmp r3, #9
7aaa: d90a bls.n 7ac2 <hex_char_to_num+0x20>
result = hex - '0';
}
else {
if(hex >= 'a') hex -= 'a' - 'A'; /*Convert to upper case*/
7aac: 2860 cmp r0, #96 ; 0x60
7aae: bf84 itt hi
7ab0: 3820 subhi r0, #32
7ab2: b2c0 uxtbhi r0, r0
switch(hex) {
7ab4: f1a0 0341 sub.w r3, r0, #65 ; 0x41
7ab8: 2b05 cmp r3, #5
7aba: bf9a itte ls
7abc: 3837 subls r0, #55 ; 0x37
7abe: b2c3 uxtbls r3, r0
{
7ac0: 2300 movhi r3, #0
break;
}
}
return result;
}
7ac2: 4618 mov r0, r3
7ac4: 4770 bx lr
...
00007ac8 <lv_draw_label_dsc_init>:
{
7ac8: b510 push {r4, lr}
_lv_memset_00(dsc, sizeof(lv_draw_label_dsc_t));
7aca: 4b09 ldr r3, [pc, #36] ; (7af0 <lv_draw_label_dsc_init+0x28>)
{
7acc: 4604 mov r4, r0
_lv_memset_00(dsc, sizeof(lv_draw_label_dsc_t));
7ace: 211c movs r1, #28
7ad0: 4798 blx r3
dsc->opa = LV_OPA_COVER;
7ad2: 23ff movs r3, #255 ; 0xff
7ad4: 7223 strb r3, [r4, #8]
dsc->font = LV_THEME_DEFAULT_FONT_NORMAL;
7ad6: 4b07 ldr r3, [pc, #28] ; (7af4 <lv_draw_label_dsc_init+0x2c>)
7ad8: 6063 str r3, [r4, #4]
dsc->sel_start = LV_DRAW_LABEL_NO_TXT_SEL;
7ada: f64f 73ff movw r3, #65535 ; 0xffff
7ade: 81e3 strh r3, [r4, #14]
dsc->sel_end = LV_DRAW_LABEL_NO_TXT_SEL;
7ae0: 8223 strh r3, [r4, #16]
dsc->color = LV_COLOR_BLACK;
7ae2: f44f 13f8 mov.w r3, #2031616 ; 0x1f0000
7ae6: 6023 str r3, [r4, #0]
dsc->bidi_dir = LV_BIDI_DIR_LTR;
7ae8: 2300 movs r3, #0
7aea: 75a3 strb r3, [r4, #22]
}
7aec: bd10 pop {r4, pc}
7aee: bf00 nop
7af0: 0000f2a9 .word 0x0000f2a9
7af4: 20000004 .word 0x20000004
00007af8 <lv_draw_label>:
{
7af8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
7afc: ed2d 8b04 vpush {d8-d9}
7b00: b0d1 sub sp, #324 ; 0x144
7b02: 468a mov sl, r1
7b04: 930a str r3, [sp, #40] ; 0x28
7b06: 2300 movs r3, #0
7b08: 9321 str r3, [sp, #132] ; 0x84
if(dsc->opa <= LV_OPA_MIN) return;
7b0a: 7a13 ldrb r3, [r2, #8]
{
7b0c: 9c5e ldr r4, [sp, #376] ; 0x178
7b0e: 9005 str r0, [sp, #20]
if(dsc->opa <= LV_OPA_MIN) return;
7b10: 2b05 cmp r3, #5
{
7b12: 4693 mov fp, r2
if(dsc->opa <= LV_OPA_MIN) return;
7b14: f240 80db bls.w 7cce <lv_draw_label+0x1d6>
const lv_font_t * font = dsc->font;
7b18: 6853 ldr r3, [r2, #4]
7b1a: ee08 3a10 vmov s16, r3
if(txt[0] == '\0') return;
7b1e: 9b0a ldr r3, [sp, #40] ; 0x28
7b20: 781b ldrb r3, [r3, #0]
7b22: 2b00 cmp r3, #0
7b24: f000 80d3 beq.w 7cce <lv_draw_label+0x1d6>
bool clip_ok = _lv_area_intersect(&clipped_area, coords, mask);
7b28: 460a mov r2, r1
7b2a: 4b9c ldr r3, [pc, #624] ; (7d9c <lv_draw_label+0x2a4>)
7b2c: 4601 mov r1, r0
7b2e: a831 add r0, sp, #196 ; 0xc4
7b30: 4798 blx r3
if(!clip_ok) return;
7b32: 2800 cmp r0, #0
7b34: f000 80cb beq.w 7cce <lv_draw_label+0x1d6>
if((dsc->flag & LV_TXT_FLAG_EXPAND) == 0) {
7b38: f89b 3017 ldrb.w r3, [fp, #23]
7b3c: 079f lsls r7, r3, #30
7b3e: f100 80cb bmi.w 7cd8 <lv_draw_label+0x1e0>
7b42: 9b05 ldr r3, [sp, #20]
7b44: 9a05 ldr r2, [sp, #20]
7b46: 889b ldrh r3, [r3, #4]
7b48: 8812 ldrh r2, [r2, #0]
7b4a: 3301 adds r3, #1
7b4c: 1a9b subs r3, r3, r2
w = lv_area_get_width(coords);
7b4e: b21b sxth r3, r3
int32_t line_height_font = lv_font_get_line_height(font);
7b50: ee18 2a10 vmov r2, s16
7b54: f9b2 6008 ldrsh.w r6, [r2, #8]
pos.x = coords->x1;
7b58: 9a05 ldr r2, [sp, #20]
int32_t line_height = line_height_font + dsc->line_space;
7b5a: f9bb 500a ldrsh.w r5, [fp, #10]
pos.x = coords->x1;
7b5e: f9b2 2000 ldrsh.w r2, [r2]
7b62: 920b str r2, [sp, #44] ; 0x2c
pos.y = coords->y1;
7b64: 9a05 ldr r2, [sp, #20]
7b66: f9b2 0002 ldrsh.w r0, [r2, #2]
x_ofs = dsc->ofs_x;
7b6a: f9bb 2012 ldrsh.w r2, [fp, #18]
7b6e: 9224 str r2, [sp, #144] ; 0x90
y_ofs = dsc->ofs_y;
7b70: f9bb 2014 ldrsh.w r2, [fp, #20]
pos.y += y_ofs;
7b74: 1887 adds r7, r0, r2
7b76: b2b9 uxth r1, r7
7b78: b23f sxth r7, r7
int32_t line_height = line_height_font + dsc->line_space;
7b7a: 4435 add r5, r6
pos.y += y_ofs;
7b7c: 9706 str r7, [sp, #24]
if(hint && y_ofs == 0 && coords->y1 < 0) {
7b7e: 2c00 cmp r4, #0
7b80: f000 80bc beq.w 7cfc <lv_draw_label+0x204>
7b84: 2a00 cmp r2, #0
7b86: f040 80bb bne.w 7d00 <lv_draw_label+0x208>
7b8a: 2800 cmp r0, #0
7b8c: f280 80b9 bge.w 7d02 <lv_draw_label+0x20a>
if(LV_MATH_ABS(hint->coord_y - coords->y1) > LV_LABEL_HINT_UPDATE_TH - 2 * line_height) {
7b90: 68a2 ldr r2, [r4, #8]
7b92: 1a12 subs r2, r2, r0
7b94: 2a00 cmp r2, #0
7b96: bfb8 it lt
7b98: 4252 neglt r2, r2
7b9a: f5c5 7000 rsb r0, r5, #512 ; 0x200
7b9e: ebb2 0f40 cmp.w r2, r0, lsl #1
hint->line_start = -1;
7ba2: bfc4 itt gt
7ba4: f04f 32ff movgt.w r2, #4294967295 ; 0xffffffff
7ba8: 6022 strgt r2, [r4, #0]
last_line_start = hint->line_start;
7baa: 6822 ldr r2, [r4, #0]
if(hint && last_line_start >= 0) {
7bac: 2a00 cmp r2, #0
7bae: f2c0 80a7 blt.w 7d00 <lv_draw_label+0x208>
line_start = last_line_start;
7bb2: 9204 str r2, [sp, #16]
pos.y += hint->y;
7bb4: 6862 ldr r2, [r4, #4]
7bb6: 440a add r2, r1
7bb8: b212 sxth r2, r2
7bba: 9206 str r2, [sp, #24]
uint32_t line_end = line_start + _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
7bbc: b21b sxth r3, r3
7bbe: 9f04 ldr r7, [sp, #16]
7bc0: 980a ldr r0, [sp, #40] ; 0x28
7bc2: f9bb 200c ldrsh.w r2, [fp, #12]
7bc6: ee09 3a10 vmov s18, r3
7bca: f89b 3017 ldrb.w r3, [fp, #23]
7bce: 9300 str r3, [sp, #0]
7bd0: 4438 add r0, r7
7bd2: ee19 3a10 vmov r3, s18
7bd6: ee18 1a10 vmov r1, s16
7bda: 4f71 ldr r7, [pc, #452] ; (7da0 <lv_draw_label+0x2a8>)
7bdc: 47b8 blx r7
7bde: 9b04 ldr r3, [sp, #16]
7be0: 18c3 adds r3, r0, r3
7be2: 9307 str r3, [sp, #28]
while(pos.y + line_height_font < mask->y1) {
7be4: 9a06 ldr r2, [sp, #24]
7be6: f9ba 1002 ldrsh.w r1, [sl, #2]
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
7bea: f89b 3017 ldrb.w r3, [fp, #23]
while(pos.y + line_height_font < mask->y1) {
7bee: 4432 add r2, r6
7bf0: 428a cmp r2, r1
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
7bf2: 9a0a ldr r2, [sp, #40] ; 0x28
while(pos.y + line_height_font < mask->y1) {
7bf4: f2c0 8087 blt.w 7d06 <lv_draw_label+0x20e>
line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
7bf8: 9904 ldr r1, [sp, #16]
if(dsc->flag & LV_TXT_FLAG_CENTER) {
7bfa: 075e lsls r6, r3, #29
line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
7bfc: eb02 0001 add.w r0, r2, r1
if(dsc->flag & LV_TXT_FLAG_CENTER) {
7c00: f140 80ab bpl.w 7d5a <lv_draw_label+0x262>
line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
7c04: 9a07 ldr r2, [sp, #28]
7c06: 9300 str r3, [sp, #0]
7c08: 1a51 subs r1, r2, r1
7c0a: f9bb 300c ldrsh.w r3, [fp, #12]
7c0e: 4c65 ldr r4, [pc, #404] ; (7da4 <lv_draw_label+0x2ac>)
7c10: ee18 2a10 vmov r2, s16
7c14: b289 uxth r1, r1
7c16: 47a0 blx r4
7c18: 9b05 ldr r3, [sp, #20]
7c1a: 9a05 ldr r2, [sp, #20]
7c1c: 889b ldrh r3, [r3, #4]
7c1e: 8812 ldrh r2, [r2, #0]
7c20: 3301 adds r3, #1
7c22: 1a9b subs r3, r3, r2
pos.x += (lv_area_get_width(coords) - line_width) / 2;
7c24: b21b sxth r3, r3
7c26: 1a18 subs r0, r3, r0
7c28: 9b0b ldr r3, [sp, #44] ; 0x2c
7c2a: eb00 70d0 add.w r0, r0, r0, lsr #31
7c2e: eb03 0060 add.w r0, r3, r0, asr #1
pos.x += lv_area_get_width(coords) - line_width;
7c32: b203 sxth r3, r0
7c34: 930b str r3, [sp, #44] ; 0x2c
lv_opa_t opa = dsc->opa;
7c36: f89b 3008 ldrb.w r3, [fp, #8]
7c3a: 9320 str r3, [sp, #128] ; 0x80
uint16_t sel_start = dsc->sel_start;
7c3c: f8bb 300e ldrh.w r3, [fp, #14]
7c40: 9310 str r3, [sp, #64] ; 0x40
uint16_t sel_end = dsc->sel_end;
7c42: f8bb 3010 ldrh.w r3, [fp, #16]
7c46: 9311 str r3, [sp, #68] ; 0x44
if(sel_start > sel_end) {
7c48: e9dd 3210 ldrd r3, r2, [sp, #64] ; 0x40
7c4c: 4293 cmp r3, r2
7c4e: bf88 it hi
7c50: e9cd 2310 strdhi r2, r3, [sp, #64] ; 0x40
if((dsc->decor & LV_TEXT_DECOR_UNDERLINE) || (dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH)) {
7c54: f89b 3018 ldrb.w r3, [fp, #24]
7c58: 0799 lsls r1, r3, #30
7c5a: d01c beq.n 7c96 <lv_draw_label+0x19e>
lv_draw_line_dsc_init(&line_dsc);
7c5c: 4b52 ldr r3, [pc, #328] ; (7da8 <lv_draw_label+0x2b0>)
7c5e: a835 add r0, sp, #212 ; 0xd4
7c60: 4798 blx r3
line_dsc.color = dsc->color;
7c62: f8bb 3000 ldrh.w r3, [fp]
7c66: f8ad 30d4 strh.w r3, [sp, #212] ; 0xd4
line_dsc.width = (dsc->font->line_height + 5) / 10; /*+5 for rounding*/
7c6a: f8db 3004 ldr.w r3, [fp, #4]
7c6e: f9b3 3008 ldrsh.w r3, [r3, #8]
7c72: 220a movs r2, #10
7c74: 3305 adds r3, #5
7c76: fb93 f3f2 sdiv r3, r3, r2
7c7a: f8ad 30d6 strh.w r3, [sp, #214] ; 0xd6
line_dsc.opa = dsc->opa;
7c7e: f89b 3008 ldrb.w r3, [fp, #8]
line_dsc.blend_mode = dsc->blend_mode;
7c82: f89b 2019 ldrb.w r2, [fp, #25]
line_dsc.opa = dsc->opa;
7c86: f88d 30dc strb.w r3, [sp, #220] ; 0xdc
line_dsc.blend_mode = dsc->blend_mode;
7c8a: f89d 30dd ldrb.w r3, [sp, #221] ; 0xdd
7c8e: f362 0301 bfi r3, r2, #0, #2
7c92: f88d 30dd strb.w r3, [sp, #221] ; 0xdd
lv_draw_rect_dsc_init(&draw_dsc_sel);
7c96: 4b45 ldr r3, [pc, #276] ; (7dac <lv_draw_label+0x2b4>)
7c98: a83b add r0, sp, #236 ; 0xec
7c9a: 4798 blx r3
draw_dsc_sel.bg_color = dsc->sel_color;
7c9c: f8bb 3002 ldrh.w r3, [fp, #2]
7ca0: f8ad 30ee strh.w r3, [sp, #238] ; 0xee
while(txt[line_start] != '\0') {
7ca4: 9b20 ldr r3, [sp, #128] ; 0x80
7ca6: 9c0b ldr r4, [sp, #44] ; 0x2c
7ca8: 2bfa cmp r3, #250 ; 0xfa
7caa: bf88 it hi
7cac: 23ff movhi r3, #255 ; 0xff
7cae: 9309 str r3, [sp, #36] ; 0x24
7cb0: b2ab uxth r3, r5
7cb2: 9322 str r3, [sp, #136] ; 0x88
7cb4: f8bd 3018 ldrh.w r3, [sp, #24]
7cb8: 931e str r3, [sp, #120] ; 0x78
uint16_t par_start = 0;
7cba: 2300 movs r3, #0
7cbc: 931d str r3, [sp, #116] ; 0x74
while(txt[line_start] != '\0') {
7cbe: 9a04 ldr r2, [sp, #16]
7cc0: 9b0a ldr r3, [sp, #40] ; 0x28
7cc2: 4413 add r3, r2
7cc4: 931c str r3, [sp, #112] ; 0x70
7cc6: 9b0a ldr r3, [sp, #40] ; 0x28
7cc8: 5c9b ldrb r3, [r3, r2]
7cca: 2b00 cmp r3, #0
7ccc: d15e bne.n 7d8c <lv_draw_label+0x294>
}
7cce: b051 add sp, #324 ; 0x144
7cd0: ecbd 8b04 vpop {d8-d9}
7cd4: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
_lv_txt_get_size(&p, txt, dsc->font, dsc->letter_space, dsc->line_space, LV_COORD_MAX,
7cd8: 9302 str r3, [sp, #8]
7cda: f647 4318 movw r3, #31768 ; 0x7c18
7cde: 9301 str r3, [sp, #4]
7ce0: f9bb 300a ldrsh.w r3, [fp, #10]
7ce4: 9300 str r3, [sp, #0]
7ce6: f8db 2004 ldr.w r2, [fp, #4]
7cea: f9bb 300c ldrsh.w r3, [fp, #12]
7cee: 990a ldr r1, [sp, #40] ; 0x28
7cf0: 4d2f ldr r5, [pc, #188] ; (7db0 <lv_draw_label+0x2b8>)
7cf2: a83b add r0, sp, #236 ; 0xec
7cf4: 47a8 blx r5
w = p.x;
7cf6: f9bd 30ec ldrsh.w r3, [sp, #236] ; 0xec
7cfa: e729 b.n 7b50 <lv_draw_label+0x58>
uint32_t line_start = 0;
7cfc: 9404 str r4, [sp, #16]
7cfe: e75d b.n 7bbc <lv_draw_label+0xc4>
7d00: 2200 movs r2, #0
7d02: 9204 str r2, [sp, #16]
7d04: e75a b.n 7bbc <lv_draw_label+0xc4>
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
7d06: 9907 ldr r1, [sp, #28]
7d08: 9300 str r3, [sp, #0]
7d0a: eb02 0801 add.w r8, r2, r1
7d0e: ee19 3a10 vmov r3, s18
7d12: f9bb 200c ldrsh.w r2, [fp, #12]
7d16: ee18 1a10 vmov r1, s16
7d1a: 4640 mov r0, r8
7d1c: 47b8 blx r7
7d1e: 9b07 ldr r3, [sp, #28]
7d20: 4418 add r0, r3
pos.y += line_height;
7d22: 9b06 ldr r3, [sp, #24]
7d24: 442b add r3, r5
7d26: b21b sxth r3, r3
7d28: 9306 str r3, [sp, #24]
if(hint && pos.y >= -LV_LABEL_HINT_UPDATE_TH && hint->line_start < 0) {
7d2a: b174 cbz r4, 7d4a <lv_draw_label+0x252>
7d2c: f513 6f80 cmn.w r3, #1024 ; 0x400
7d30: db0b blt.n 7d4a <lv_draw_label+0x252>
7d32: 6823 ldr r3, [r4, #0]
7d34: 2b00 cmp r3, #0
7d36: da08 bge.n 7d4a <lv_draw_label+0x252>
hint->line_start = line_start;
7d38: 9b07 ldr r3, [sp, #28]
7d3a: 6023 str r3, [r4, #0]
hint->y = pos.y - coords->y1;
7d3c: 9b05 ldr r3, [sp, #20]
7d3e: 9a06 ldr r2, [sp, #24]
7d40: f9b3 3002 ldrsh.w r3, [r3, #2]
7d44: 1ad2 subs r2, r2, r3
hint->coord_y = coords->y1;
7d46: e9c4 2301 strd r2, r3, [r4, #4]
if(txt[line_start] == '\0') return;
7d4a: 9b07 ldr r3, [sp, #28]
7d4c: 9304 str r3, [sp, #16]
7d4e: f898 3000 ldrb.w r3, [r8]
7d52: 2b00 cmp r3, #0
7d54: d0bb beq.n 7cce <lv_draw_label+0x1d6>
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
7d56: 9007 str r0, [sp, #28]
7d58: e744 b.n 7be4 <lv_draw_label+0xec>
else if(dsc->flag & LV_TXT_FLAG_RIGHT) {
7d5a: 071c lsls r4, r3, #28
7d5c: f57f af6b bpl.w 7c36 <lv_draw_label+0x13e>
line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
7d60: 9a07 ldr r2, [sp, #28]
7d62: 9904 ldr r1, [sp, #16]
7d64: 9300 str r3, [sp, #0]
7d66: 1a51 subs r1, r2, r1
7d68: f9bb 300c ldrsh.w r3, [fp, #12]
7d6c: 4c0d ldr r4, [pc, #52] ; (7da4 <lv_draw_label+0x2ac>)
7d6e: ee18 2a10 vmov r2, s16
7d72: b289 uxth r1, r1
7d74: 47a0 blx r4
7d76: 9b05 ldr r3, [sp, #20]
7d78: 9a05 ldr r2, [sp, #20]
7d7a: 889b ldrh r3, [r3, #4]
7d7c: 8812 ldrh r2, [r2, #0]
7d7e: 3301 adds r3, #1
7d80: 1a9b subs r3, r3, r2
pos.x += lv_area_get_width(coords) - line_width;
7d82: b21b sxth r3, r3
7d84: 1a18 subs r0, r3, r0
7d86: 9b0b ldr r3, [sp, #44] ; 0x2c
7d88: 4418 add r0, r3
7d8a: e752 b.n 7c32 <lv_draw_label+0x13a>
pos.x += x_ofs;
7d8c: 9b24 ldr r3, [sp, #144] ; 0x90
7d8e: 441c add r4, r3
7d90: b223 sxth r3, r4
7d92: 930c str r3, [sp, #48] ; 0x30
i = 0;
7d94: 2300 movs r3, #0
7d96: 9330 str r3, [sp, #192] ; 0xc0
cmd_state = CMD_STATE_WAIT;
7d98: 9308 str r3, [sp, #32]
7d9a: e0c2 b.n 7f22 <lv_draw_label+0x42a>
7d9c: 0000e111 .word 0x0000e111
7da0: 00010255 .word 0x00010255
7da4: 000101ad .word 0x000101ad
7da8: 00008865 .word 0x00008865
7dac: 00009e25 .word 0x00009e25
7db0: 0001042d .word 0x0001042d
if(sel_start != 0xFFFF && sel_end != 0xFFFF) {
7db4: 9a10 ldr r2, [sp, #64] ; 0x40
7db6: f64f 73ff movw r3, #65535 ; 0xffff
7dba: 429a cmp r2, r3
7dbc: d024 beq.n 7e08 <lv_draw_label+0x310>
7dbe: 9a11 ldr r2, [sp, #68] ; 0x44
7dc0: 429a cmp r2, r3
7dc2: d021 beq.n 7e08 <lv_draw_label+0x310>
logical_char_pos = _lv_txt_encoded_get_char_id(txt, line_start + i);
7dc4: 9a04 ldr r2, [sp, #16]
7dc6: 4ba3 ldr r3, [pc, #652] ; (8054 <lv_draw_label+0x55c>)
7dc8: 980a ldr r0, [sp, #40] ; 0x28
7dca: 681b ldr r3, [r3, #0]
7dcc: 4411 add r1, r2
7dce: 4798 blx r3
7dd0: b286 uxth r6, r0
uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i);
7dd2: 4ca1 ldr r4, [pc, #644] ; (8058 <lv_draw_label+0x560>)
7dd4: 981c ldr r0, [sp, #112] ; 0x70
7dd6: 6823 ldr r3, [r4, #0]
7dd8: a930 add r1, sp, #192 ; 0xc0
7dda: 4798 blx r3
uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL);
7ddc: 9a1c ldr r2, [sp, #112] ; 0x70
7dde: 6823 ldr r3, [r4, #0]
uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i);
7de0: 4605 mov r5, r0
uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL);
7de2: 9830 ldr r0, [sp, #192] ; 0xc0
7de4: 2100 movs r1, #0
7de6: 4410 add r0, r2
7de8: 4798 blx r3
7dea: f89b 3017 ldrb.w r3, [fp, #23]
if((dsc->flag & LV_TXT_FLAG_RECOLOR) != 0) {
7dee: f013 0301 ands.w r3, r3, #1
uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL);
7df2: 4602 mov r2, r0
if((dsc->flag & LV_TXT_FLAG_RECOLOR) != 0) {
7df4: f000 8125 beq.w 8042 <lv_draw_label+0x54a>
if(letter == (uint32_t)LV_TXT_COLOR_CMD[0]) {
7df8: 2d23 cmp r5, #35 ; 0x23
7dfa: d10f bne.n 7e1c <lv_draw_label+0x324>
if(cmd_state == CMD_STATE_WAIT) { /*Start char*/
7dfc: 9908 ldr r1, [sp, #32]
7dfe: b929 cbnz r1, 7e0c <lv_draw_label+0x314>
par_start = i;
7e00: f8bd 20c0 ldrh.w r2, [sp, #192] ; 0xc0
7e04: 921d str r2, [sp, #116] ; 0x74
continue;
7e06: e7c7 b.n 7d98 <lv_draw_label+0x2a0>
uint16_t logical_char_pos = 0;
7e08: 2600 movs r6, #0
7e0a: e7e2 b.n 7dd2 <lv_draw_label+0x2da>
else if(cmd_state == CMD_STATE_PAR) { /*Other start char in parameter escaped cmd. char */
7e0c: 9b08 ldr r3, [sp, #32]
7e0e: 2b01 cmp r3, #1
7e10: d045 beq.n 7e9e <lv_draw_label+0x3a6>
else if(cmd_state == CMD_STATE_IN) { /*Command end */
7e12: 2b02 cmp r3, #2
7e14: f040 8118 bne.w 8048 <lv_draw_label+0x550>
cmd_state = CMD_STATE_WAIT;
7e18: 2300 movs r3, #0
7e1a: e7bd b.n 7d98 <lv_draw_label+0x2a0>
if(cmd_state == CMD_STATE_PAR) {
7e1c: 9b08 ldr r3, [sp, #32]
7e1e: 2b01 cmp r3, #1
7e20: f040 810f bne.w 8042 <lv_draw_label+0x54a>
if(letter == ' ') {
7e24: 2d20 cmp r5, #32
7e26: d17c bne.n 7f22 <lv_draw_label+0x42a>
if(i - par_start == LABEL_RECOLOR_PAR_LENGTH + 1) {
7e28: 9b30 ldr r3, [sp, #192] ; 0xc0
7e2a: 9a1d ldr r2, [sp, #116] ; 0x74
7e2c: 1a9b subs r3, r3, r2
7e2e: 2b07 cmp r3, #7
7e30: d132 bne.n 7e98 <lv_draw_label+0x3a0>
_lv_memcpy_small(buf, &bidi_txt[par_start], LABEL_RECOLOR_PAR_LENGTH);
7e32: 9b1c ldr r3, [sp, #112] ; 0x70
7e34: 991d ldr r1, [sp, #116] ; 0x74
7e36: 189a adds r2, r3, r2
7e38: 5858 ldr r0, [r3, r1]
7e3a: 8893 ldrh r3, [r2, #4]
7e3c: f8ad 30e4 strh.w r3, [sp, #228] ; 0xe4
r = (hex_char_to_num(buf[0]) << 4) + hex_char_to_num(buf[1]);
7e40: 4a86 ldr r2, [pc, #536] ; (805c <lv_draw_label+0x564>)
7e42: 9038 str r0, [sp, #224] ; 0xe0
7e44: f3c0 4507 ubfx r5, r0, #16, #8
7e48: f3c0 6407 ubfx r4, r0, #24, #8
7e4c: f3c0 2607 ubfx r6, r0, #8, #8
7e50: b2c0 uxtb r0, r0
7e52: 4790 blx r2
7e54: 4601 mov r1, r0
7e56: b2f0 uxtb r0, r6
7e58: 4790 blx r2
7e5a: eb00 1101 add.w r1, r0, r1, lsl #4
g = (hex_char_to_num(buf[2]) << 4) + hex_char_to_num(buf[3]);
7e5e: b2e8 uxtb r0, r5
7e60: 4790 blx r2
7e62: 4605 mov r5, r0
7e64: b2e0 uxtb r0, r4
7e66: 4790 blx r2
7e68: eb00 1405 add.w r4, r0, r5, lsl #4
b = (hex_char_to_num(buf[4]) << 4) + hex_char_to_num(buf[5]);
7e6c: f89d 00e4 ldrb.w r0, [sp, #228] ; 0xe4
7e70: 4790 blx r2
7e72: 4605 mov r5, r0
7e74: f89d 00e5 ldrb.w r0, [sp, #229] ; 0xe5
7e78: 4790 blx r2
7e7a: eb00 1005 add.w r0, r0, r5, lsl #4
7e7e: f3c0 00c4 ubfx r0, r0, #3, #5
7e82: f3c4 0485 ubfx r4, r4, #2, #6
7e86: ea40 1044 orr.w r0, r0, r4, lsl #5
7e8a: f3c1 01c4 ubfx r1, r1, #3, #5
7e8e: ea40 23c1 orr.w r3, r0, r1, lsl #11
recolor.full = dsc->color.full;
7e92: 9321 str r3, [sp, #132] ; 0x84
cmd_state = CMD_STATE_IN; /*After the parameter the text is in the command*/
7e94: 2302 movs r3, #2
7e96: e77f b.n 7d98 <lv_draw_label+0x2a0>
recolor.full = dsc->color.full;
7e98: f8bb 3000 ldrh.w r3, [fp]
7e9c: e7f9 b.n 7e92 <lv_draw_label+0x39a>
cmd_state = CMD_STATE_WAIT;
7e9e: 2300 movs r3, #0
lv_color_t color = dsc->color;
7ea0: f8bb 4000 ldrh.w r4, [fp]
cmd_state = CMD_STATE_WAIT;
7ea4: 9308 str r3, [sp, #32]
letter_w = lv_font_get_glyph_width(font, letter, letter_next);
7ea6: 4b6e ldr r3, [pc, #440] ; (8060 <lv_draw_label+0x568>)
7ea8: ee18 0a10 vmov r0, s16
7eac: 4629 mov r1, r5
7eae: 4798 blx r3
if(sel_start != 0xFFFF && sel_end != 0xFFFF) {
7eb0: 9a10 ldr r2, [sp, #64] ; 0x40
letter_w = lv_font_get_glyph_width(font, letter, letter_next);
7eb2: 901f str r0, [sp, #124] ; 0x7c
if(sel_start != 0xFFFF && sel_end != 0xFFFF) {
7eb4: f64f 73ff movw r3, #65535 ; 0xffff
7eb8: 429a cmp r2, r3
7eba: d020 beq.n 7efe <lv_draw_label+0x406>
7ebc: 9a11 ldr r2, [sp, #68] ; 0x44
7ebe: 429a cmp r2, r3
7ec0: d01d beq.n 7efe <lv_draw_label+0x406>
if(logical_char_pos >= sel_start && logical_char_pos < sel_end) {
7ec2: 9b10 ldr r3, [sp, #64] ; 0x40
7ec4: 42b3 cmp r3, r6
7ec6: d81a bhi.n 7efe <lv_draw_label+0x406>
7ec8: 42b2 cmp r2, r6
7eca: d918 bls.n 7efe <lv_draw_label+0x406>
sel_coords.x1 = pos.x;
7ecc: 9b0c ldr r3, [sp, #48] ; 0x30
7ece: f8ad 30e0 strh.w r3, [sp, #224] ; 0xe0
sel_coords.y1 = pos.y;
7ed2: 9b06 ldr r3, [sp, #24]
7ed4: f8ad 30e2 strh.w r3, [sp, #226] ; 0xe2
sel_coords.x2 = pos.x + letter_w + dsc->letter_space - 1;
7ed8: f8bb 300c ldrh.w r3, [fp, #12]
7edc: 9a0c ldr r2, [sp, #48] ; 0x30
7ede: 3b01 subs r3, #1
7ee0: 4413 add r3, r2
7ee2: 4403 add r3, r0
7ee4: f8ad 30e4 strh.w r3, [sp, #228] ; 0xe4
sel_coords.y2 = pos.y + line_height - 1;
7ee8: 9b22 ldr r3, [sp, #136] ; 0x88
7eea: 9a06 ldr r2, [sp, #24]
7eec: 3b01 subs r3, #1
7eee: 4413 add r3, r2
7ef0: f8ad 30e6 strh.w r3, [sp, #230] ; 0xe6
lv_draw_rect(&sel_coords, mask, &draw_dsc_sel);
7ef4: aa3b add r2, sp, #236 ; 0xec
7ef6: 4b5b ldr r3, [pc, #364] ; (8064 <lv_draw_label+0x56c>)
7ef8: 4651 mov r1, sl
7efa: a838 add r0, sp, #224 ; 0xe0
7efc: 4798 blx r3
lv_draw_letter(&pos, mask, font, letter, color, opa, dsc->blend_mode);
7efe: f89b 3019 ldrb.w r3, [fp, #25]
7f02: 931b str r3, [sp, #108] ; 0x6c
if(opa < LV_OPA_MIN) return;
7f04: 9b20 ldr r3, [sp, #128] ; 0x80
7f06: 2b04 cmp r3, #4
7f08: f200 8485 bhi.w 8816 <lv_draw_label+0xd1e>
if(letter_w > 0) {
7f0c: 9b1f ldr r3, [sp, #124] ; 0x7c
7f0e: b143 cbz r3, 7f22 <lv_draw_label+0x42a>
pos.x += letter_w + dsc->letter_space;
7f10: f8bb 300c ldrh.w r3, [fp, #12]
7f14: 9a0c ldr r2, [sp, #48] ; 0x30
7f16: 441a add r2, r3
7f18: 4613 mov r3, r2
7f1a: 9a1f ldr r2, [sp, #124] ; 0x7c
7f1c: 441a add r2, r3
7f1e: b213 sxth r3, r2
7f20: 930c str r3, [sp, #48] ; 0x30
while(i < line_end - line_start) {
7f22: 9b07 ldr r3, [sp, #28]
7f24: 9a04 ldr r2, [sp, #16]
7f26: 9930 ldr r1, [sp, #192] ; 0xc0
7f28: 1a9b subs r3, r3, r2
7f2a: 428b cmp r3, r1
7f2c: f63f af42 bhi.w 7db4 <lv_draw_label+0x2bc>
if(dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH) {
7f30: f89b 3018 ldrb.w r3, [fp, #24]
7f34: 079d lsls r5, r3, #30
7f36: d51f bpl.n 7f78 <lv_draw_label+0x480>
p1.x = pos_x_start;
7f38: 9b0b ldr r3, [sp, #44] ; 0x2c
7f3a: f8ad 30cc strh.w r3, [sp, #204] ; 0xcc
p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2;
7f3e: f8db 3004 ldr.w r3, [fp, #4]
lv_draw_line(&p1, &p2, mask, &line_dsc);
7f42: 4c49 ldr r4, [pc, #292] ; (8068 <lv_draw_label+0x570>)
p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2;
7f44: f9b3 3008 ldrsh.w r3, [r3, #8]
7f48: eb03 72d3 add.w r2, r3, r3, lsr #31
7f4c: f9bd 30d6 ldrsh.w r3, [sp, #214] ; 0xd6
7f50: eb03 73d3 add.w r3, r3, r3, lsr #31
7f54: 105b asrs r3, r3, #1
7f56: eb03 0362 add.w r3, r3, r2, asr #1
7f5a: 9a1e ldr r2, [sp, #120] ; 0x78
7f5c: 4413 add r3, r2
7f5e: b21b sxth r3, r3
p2.x = pos.x;
7f60: 9a0c ldr r2, [sp, #48] ; 0x30
p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2;
7f62: f8ad 30ce strh.w r3, [sp, #206] ; 0xce
p2.x = pos.x;
7f66: f8ad 20e0 strh.w r2, [sp, #224] ; 0xe0
p2.y = p1.y;
7f6a: f8ad 30e2 strh.w r3, [sp, #226] ; 0xe2
lv_draw_line(&p1, &p2, mask, &line_dsc);
7f6e: 4652 mov r2, sl
7f70: ab35 add r3, sp, #212 ; 0xd4
7f72: a938 add r1, sp, #224 ; 0xe0
7f74: a833 add r0, sp, #204 ; 0xcc
7f76: 47a0 blx r4
if(dsc->decor & LV_TEXT_DECOR_UNDERLINE) {
7f78: f89b 3018 ldrb.w r3, [fp, #24]
7f7c: 07dc lsls r4, r3, #31
7f7e: d51e bpl.n 7fbe <lv_draw_label+0x4c6>
p1.x = pos_x_start;
7f80: 9b0b ldr r3, [sp, #44] ; 0x2c
7f82: f8ad 30cc strh.w r3, [sp, #204] ; 0xcc
p1.y = pos.y + dsc->font->line_height - dsc->font->base_line + line_dsc.width / 2 + 1;
7f86: f9bd 30d6 ldrsh.w r3, [sp, #214] ; 0xd6
7f8a: f8db 2004 ldr.w r2, [fp, #4]
lv_draw_line(&p1, &p2, mask, &line_dsc);
7f8e: 4c36 ldr r4, [pc, #216] ; (8068 <lv_draw_label+0x570>)
p1.y = pos.y + dsc->font->line_height - dsc->font->base_line + line_dsc.width / 2 + 1;
7f90: 8911 ldrh r1, [r2, #8]
7f92: 8952 ldrh r2, [r2, #10]
7f94: eb03 73d3 add.w r3, r3, r3, lsr #31
7f98: 105b asrs r3, r3, #1
7f9a: 3301 adds r3, #1
7f9c: 440b add r3, r1
7f9e: 1a9b subs r3, r3, r2
7fa0: 9a1e ldr r2, [sp, #120] ; 0x78
7fa2: 4413 add r3, r2
7fa4: b21b sxth r3, r3
p2.x = pos.x;
7fa6: 9a0c ldr r2, [sp, #48] ; 0x30
p1.y = pos.y + dsc->font->line_height - dsc->font->base_line + line_dsc.width / 2 + 1;
7fa8: f8ad 30ce strh.w r3, [sp, #206] ; 0xce
p2.x = pos.x;
7fac: f8ad 20e0 strh.w r2, [sp, #224] ; 0xe0
p2.y = p1.y;
7fb0: f8ad 30e2 strh.w r3, [sp, #226] ; 0xe2
lv_draw_line(&p1, &p2, mask, &line_dsc);
7fb4: 4652 mov r2, sl
7fb6: ab35 add r3, sp, #212 ; 0xd4
7fb8: a938 add r1, sp, #224 ; 0xe0
7fba: a833 add r0, sp, #204 ; 0xcc
7fbc: 47a0 blx r4
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
7fbe: 9b0a ldr r3, [sp, #40] ; 0x28
7fc0: 9a07 ldr r2, [sp, #28]
7fc2: 4c2a ldr r4, [pc, #168] ; (806c <lv_draw_label+0x574>)
7fc4: 189e adds r6, r3, r2
7fc6: f89b 3017 ldrb.w r3, [fp, #23]
7fca: 9300 str r3, [sp, #0]
7fcc: ee18 1a10 vmov r1, s16
7fd0: ee19 3a10 vmov r3, s18
7fd4: f9bb 200c ldrsh.w r2, [fp, #12]
7fd8: 4630 mov r0, r6
7fda: 47a0 blx r4
7fdc: 9b07 ldr r3, [sp, #28]
7fde: 18c5 adds r5, r0, r3
pos.x = coords->x1;
7fe0: 9b05 ldr r3, [sp, #20]
7fe2: f9b3 4000 ldrsh.w r4, [r3]
if(dsc->flag & LV_TXT_FLAG_CENTER) {
7fe6: f89b 3017 ldrb.w r3, [fp, #23]
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
7fea: 4601 mov r1, r0
if(dsc->flag & LV_TXT_FLAG_CENTER) {
7fec: 0758 lsls r0, r3, #29
7fee: f140 83fd bpl.w 87ec <lv_draw_label+0xcf4>
_lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
7ff2: ee18 2a10 vmov r2, s16
7ff6: 9300 str r3, [sp, #0]
7ff8: 4630 mov r0, r6
7ffa: f9bb 300c ldrsh.w r3, [fp, #12]
7ffe: 4e1c ldr r6, [pc, #112] ; (8070 <lv_draw_label+0x578>)
8000: 47b0 blx r6
8002: 9b05 ldr r3, [sp, #20]
8004: 9a05 ldr r2, [sp, #20]
8006: 889b ldrh r3, [r3, #4]
8008: 8812 ldrh r2, [r2, #0]
800a: 3301 adds r3, #1
800c: 1a9b subs r3, r3, r2
pos.x += (lv_area_get_width(coords) - line_width) / 2;
800e: b21b sxth r3, r3
8010: 1a18 subs r0, r3, r0
8012: eb00 70d0 add.w r0, r0, r0, lsr #31
8016: eb04 0060 add.w r0, r4, r0, asr #1
pos.x += lv_area_get_width(coords) - line_width;
801a: b204 sxth r4, r0
pos.y += line_height;
801c: 9a22 ldr r2, [sp, #136] ; 0x88
801e: 9b06 ldr r3, [sp, #24]
8020: 4413 add r3, r2
8022: b21b sxth r3, r3
8024: 9306 str r3, [sp, #24]
if(pos.y > mask->y2) return;
8026: 9b1e ldr r3, [sp, #120] ; 0x78
8028: 4413 add r3, r2
802a: b29b uxth r3, r3
802c: 931e str r3, [sp, #120] ; 0x78
line_start = line_end;
802e: 9b07 ldr r3, [sp, #28]
if(pos.y > mask->y2) return;
8030: 9a06 ldr r2, [sp, #24]
line_start = line_end;
8032: 9304 str r3, [sp, #16]
if(pos.y > mask->y2) return;
8034: f9ba 3006 ldrsh.w r3, [sl, #6]
8038: 4293 cmp r3, r2
803a: f6ff ae48 blt.w 7cce <lv_draw_label+0x1d6>
line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag);
803e: 9507 str r5, [sp, #28]
8040: e63d b.n 7cbe <lv_draw_label+0x1c6>
if(cmd_state == CMD_STATE_IN) color = recolor;
8042: 9b08 ldr r3, [sp, #32]
8044: 2b02 cmp r3, #2
8046: d002 beq.n 804e <lv_draw_label+0x556>
lv_color_t color = dsc->color;
8048: f8bb 4000 ldrh.w r4, [fp]
804c: e72b b.n 7ea6 <lv_draw_label+0x3ae>
804e: 9c21 ldr r4, [sp, #132] ; 0x84
8050: e729 b.n 7ea6 <lv_draw_label+0x3ae>
8052: bf00 nop
8054: 20000058 .word 0x20000058
8058: 2000004c .word 0x2000004c
805c: 00007aa3 .word 0x00007aa3
8060: 0000d3f9 .word 0x0000d3f9
8064: 00009e71 .word 0x00009e71
8068: 00008881 .word 0x00008881
806c: 00010255 .word 0x00010255
8070: 000101ad .word 0x000101ad
if((g.box_h == 0) && (g.box_w == 0)) return;
8074: f8bd 20e4 ldrh.w r2, [sp, #228] ; 0xe4
8078: f8bd 10e2 ldrh.w r1, [sp, #226] ; 0xe2
807c: ea52 0301 orrs.w r3, r2, r1
8080: f43f af44 beq.w 7f0c <lv_draw_label+0x414>
int32_t pos_x = pos_p->x + g.ofs_x;
8084: 980c ldr r0, [sp, #48] ; 0x30
8086: f9bd 30e6 ldrsh.w r3, [sp, #230] ; 0xe6
808a: 4403 add r3, r0
808c: 930d str r3, [sp, #52] ; 0x34
if(pos_x + g.box_w < clip_area->x1 ||
808e: 9f0d ldr r7, [sp, #52] ; 0x34
8090: 4439 add r1, r7
8092: f9ba 7000 ldrsh.w r7, [sl]
int32_t pos_y = pos_p->y + (font_p->line_height - font_p->base_line) - g.box_h - g.ofs_y;
8096: ee18 0a10 vmov r0, s16
809a: ee18 3a10 vmov r3, s16
if(pos_x + g.box_w < clip_area->x1 ||
809e: 42b9 cmp r1, r7
int32_t pos_y = pos_p->y + (font_p->line_height - font_p->base_line) - g.box_h - g.ofs_y;
80a0: f9b0 600a ldrsh.w r6, [r0, #10]
80a4: f9b3 3008 ldrsh.w r3, [r3, #8]
80a8: f9bd 00e8 ldrsh.w r0, [sp, #232] ; 0xe8
if(pos_x + g.box_w < clip_area->x1 ||
80ac: f6ff af2e blt.w 7f0c <lv_draw_label+0x414>
pos_x > clip_area->x2 ||
80b0: f9ba 1004 ldrsh.w r1, [sl, #4]
if(pos_x + g.box_w < clip_area->x1 ||
80b4: 9f0d ldr r7, [sp, #52] ; 0x34
80b6: 428f cmp r7, r1
80b8: f73f af28 bgt.w 7f0c <lv_draw_label+0x414>
int32_t pos_y = pos_p->y + (font_p->line_height - font_p->base_line) - g.box_h - g.ofs_y;
80bc: 9906 ldr r1, [sp, #24]
80be: 1b9b subs r3, r3, r6
80c0: 440b add r3, r1
80c2: 1a9b subs r3, r3, r2
80c4: 1a1b subs r3, r3, r0
pos_y + g.box_h < clip_area->y1 ||
80c6: 441a add r2, r3
int32_t pos_y = pos_p->y + (font_p->line_height - font_p->base_line) - g.box_h - g.ofs_y;
80c8: 9316 str r3, [sp, #88] ; 0x58
pos_y + g.box_h < clip_area->y1 ||
80ca: f9ba 3002 ldrsh.w r3, [sl, #2]
pos_x > clip_area->x2 ||
80ce: 429a cmp r2, r3
80d0: f6ff af1c blt.w 7f0c <lv_draw_label+0x414>
pos_y > clip_area->y2) {
80d4: f9ba 3006 ldrsh.w r3, [sl, #6]
pos_y + g.box_h < clip_area->y1 ||
80d8: 9a16 ldr r2, [sp, #88] ; 0x58
80da: 429a cmp r2, r3
80dc: f73f af16 bgt.w 7f0c <lv_draw_label+0x414>
const uint8_t * map_p = lv_font_get_glyph_bitmap(font_p, letter);
80e0: ee18 0a10 vmov r0, s16
80e4: 4ba9 ldr r3, [pc, #676] ; (838c <lv_draw_label+0x894>)
80e6: 4629 mov r1, r5
80e8: 4798 blx r3
if(map_p == NULL) {
80ea: 4607 mov r7, r0
80ec: b928 cbnz r0, 80fa <lv_draw_label+0x602>
LV_LOG_WARN("lv_draw_letter: character's bitmap not found");
80ee: 4ba8 ldr r3, [pc, #672] ; (8390 <lv_draw_label+0x898>)
80f0: 9300 str r3, [sp, #0]
80f2: f240 12b7 movw r2, #439 ; 0x1b7
80f6: 4ba7 ldr r3, [pc, #668] ; (8394 <lv_draw_label+0x89c>)
80f8: e39f b.n 883a <lv_draw_label+0xd42>
if(font_p->subpx) {
80fa: ee18 3a10 vmov r3, s16
80fe: 7b1a ldrb r2, [r3, #12]
draw_letter_subpx(pos_x, pos_y, &g, clip_area, map_p, color, opa, blend_mode);
8100: f9bd 6034 ldrsh.w r6, [sp, #52] ; 0x34
8104: f9bd 8058 ldrsh.w r8, [sp, #88] ; 0x58
uint32_t bpp = g->bpp;
8108: f89d 30ea ldrb.w r3, [sp, #234] ; 0xea
if(font_p->subpx) {
810c: 0792 lsls r2, r2, #30
810e: f000 81fa beq.w 8506 <lv_draw_label+0xa0e>
draw_letter_subpx(pos_x, pos_y, &g, clip_area, map_p, color, opa, blend_mode);
8112: f004 021f and.w r2, r4, #31
8116: 922a str r2, [sp, #168] ; 0xa8
8118: f3c4 1245 ubfx r2, r4, #5, #6
811c: 9226 str r2, [sp, #152] ; 0x98
if(bpp == 3) bpp = 4;
811e: 2b03 cmp r3, #3
8120: f3c4 22c4 ubfx r2, r4, #11, #5
8124: 9225 str r2, [sp, #148] ; 0x94
8126: f000 80e6 beq.w 82f6 <lv_draw_label+0x7fe>
switch(bpp) {
812a: 3b01 subs r3, #1
812c: 2b07 cmp r3, #7
812e: f200 80d7 bhi.w 82e0 <lv_draw_label+0x7e8>
8132: e8df f013 tbh [pc, r3, lsl #1]
8136: 00db .short 0x00db
8138: 00d50008 .word 0x00d50008
813c: 00d500e0 .word 0x00d500e0
8140: 00d500d5 .word 0x00d500d5
8144: 00d0 .short 0x00d0
8146: 23c0 movs r3, #192 ; 0xc0
8148: 9313 str r3, [sp, #76] ; 0x4c
814a: 4b93 ldr r3, [pc, #588] ; (8398 <lv_draw_label+0x8a0>)
814c: 2402 movs r4, #2
bpp_opa_table = _lv_bpp4_opa_table;
814e: 9314 str r3, [sp, #80] ; 0x50
int32_t box_w = g->box_w;
8150: f8bd 30e2 ldrh.w r3, [sp, #226] ; 0xe2
8154: 9317 str r3, [sp, #92] ; 0x5c
int32_t width_bit = box_w * bpp; /*Letter width in bits*/
8156: fb04 f103 mul.w r1, r4, r3
int32_t col_start = pos_x >= clip_area->x1 ? 0 : (clip_area->x1 - pos_x) * 3;
815a: f9ba 3000 ldrsh.w r3, [sl]
int32_t col_end = pos_x + box_w / 3 <= clip_area->x2 ? box_w : (clip_area->x2 - pos_x + 1) * 3;
815e: 9d17 ldr r5, [sp, #92] ; 0x5c
int32_t box_h = g->box_h;
8160: f8bd 20e4 ldrh.w r2, [sp, #228] ; 0xe4
int32_t col_start = pos_x >= clip_area->x1 ? 0 : (clip_area->x1 - pos_x) * 3;
8164: 42b3 cmp r3, r6
8166: bfc6 itte gt
8168: 1b9b subgt r3, r3, r6
816a: eb03 0343 addgt.w r3, r3, r3, lsl #1
816e: 2300 movle r3, #0
8170: 9312 str r3, [sp, #72] ; 0x48
int32_t col_end = pos_x + box_w / 3 <= clip_area->x2 ? box_w : (clip_area->x2 - pos_x + 1) * 3;
8172: f9ba 3004 ldrsh.w r3, [sl, #4]
8176: 2003 movs r0, #3
8178: fbb5 f0f0 udiv r0, r5, r0
817c: 4430 add r0, r6
817e: 4298 cmp r0, r3
8180: bfc5 ittet gt
8182: 1b9b subgt r3, r3, r6
8184: 3301 addgt r3, #1
8186: 9b17 ldrle r3, [sp, #92] ; 0x5c
8188: eb03 0343 addgt.w r3, r3, r3, lsl #1
818c: 9319 str r3, [sp, #100] ; 0x64
int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y;
818e: f9ba 3002 ldrsh.w r3, [sl, #2]
8192: 4543 cmp r3, r8
8194: bfcc ite gt
8196: eba3 0308 subgt.w r3, r3, r8
819a: 2300 movle r3, #0
819c: 930e str r3, [sp, #56] ; 0x38
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
819e: f9ba 3006 ldrsh.w r3, [sl, #6]
81a2: eb02 0008 add.w r0, r2, r8
81a6: 4298 cmp r0, r3
81a8: bfc2 ittt gt
81aa: eba3 0308 subgt.w r3, r3, r8
81ae: 3301 addgt r3, #1
81b0: 9323 strgt r3, [sp, #140] ; 0x8c
int32_t bit_ofs = (row_start * width_bit) + (col_start * bpp);
81b2: 9b12 ldr r3, [sp, #72] ; 0x48
81b4: 980e ldr r0, [sp, #56] ; 0x38
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
81b6: bfd8 it le
81b8: 9223 strle r2, [sp, #140] ; 0x8c
int32_t bit_ofs = (row_start * width_bit) + (col_start * bpp);
81ba: 4363 muls r3, r4
81bc: fb00 3301 mla r3, r0, r1, r3
map_p += bit_ofs >> 3;
81c0: eb07 01e3 add.w r1, r7, r3, asr #3
col_bit = bit_ofs & 0x7; /* "& 0x7" equals to "% 8" just faster */
81c4: f003 0307 and.w r3, r3, #7
81c8: 930f str r3, [sp, #60] ; 0x3c
int32_t mask_buf_size = box_w * box_h > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : g->box_w * g->box_h;
81ca: 9b17 ldr r3, [sp, #92] ; 0x5c
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
81cc: 4f73 ldr r7, [pc, #460] ; (839c <lv_draw_label+0x8a4>)
map_p += bit_ofs >> 3;
81ce: 911a str r1, [sp, #104] ; 0x68
int32_t mask_buf_size = box_w * box_h > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : g->box_w * g->box_h;
81d0: 4353 muls r3, r2
81d2: f5b3 7ff0 cmp.w r3, #480 ; 0x1e0
81d6: bfa8 it ge
81d8: f44f 73f0 movge.w r3, #480 ; 0x1e0
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
81dc: 4618 mov r0, r3
81de: 9318 str r3, [sp, #96] ; 0x60
81e0: 47b8 blx r7
lv_color_t * color_buf = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
81e2: 9b18 ldr r3, [sp, #96] ; 0x60
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
81e4: 4605 mov r5, r0
lv_color_t * color_buf = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
81e6: 0058 lsls r0, r3, #1
81e8: 47b8 blx r7
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
81ea: 4b6d ldr r3, [pc, #436] ; (83a0 <lv_draw_label+0x8a8>)
lv_color_t * color_buf = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t));
81ec: ee08 0a90 vmov s17, r0
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
81f0: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
81f2: 4b6c ldr r3, [pc, #432] ; (83a4 <lv_draw_label+0x8ac>)
81f4: 4798 blx r3
81f6: f8b0 9014 ldrh.w r9, [r0, #20]
81fa: f9b0 c010 ldrsh.w ip, [r0, #16]
vdb_buf_tmp += (row_start * vdb_width) + col_start / 3;
81fe: 9b12 ldr r3, [sp, #72] ; 0x48
lv_color_t * vdb_buf_tmp = vdb->buf_act;
8200: f8d0 e008 ldr.w lr, [r0, #8]
vdb_buf_tmp += (row_start * vdb_width) + col_start / 3;
8204: 2203 movs r2, #3
8206: f109 0901 add.w r9, r9, #1
820a: fb93 f1f2 sdiv r1, r3, r2
vdb_buf_tmp += ((pos_y - vdb->area.y1) * vdb_width) + pos_x - vdb->area.x1;
820e: f9b0 3012 ldrsh.w r3, [r0, #18]
vdb_buf_tmp += (row_start * vdb_width) + col_start / 3;
8212: 980e ldr r0, [sp, #56] ; 0x38
8214: eba9 090c sub.w r9, r9, ip
8218: fa0f f989 sxth.w r9, r9
vdb_buf_tmp += ((pos_y - vdb->area.y1) * vdb_width) + pos_x - vdb->area.x1;
821c: eba8 0303 sub.w r3, r8, r3
8220: fb09 6303 mla r3, r9, r3, r6
vdb_buf_tmp += (row_start * vdb_width) + col_start / 3;
8224: fb09 1000 mla r0, r9, r0, r1
vdb_buf_tmp += ((pos_y - vdb->area.y1) * vdb_width) + pos_x - vdb->area.x1;
8228: eba3 030c sub.w r3, r3, ip
vdb_buf_tmp += (row_start * vdb_width) + col_start / 3;
822c: 4403 add r3, r0
822e: eb0e 0343 add.w r3, lr, r3, lsl #1
map_area.x1 = col_start / 3 + pos_x;
8232: 980d ldr r0, [sp, #52] ; 0x34
vdb_buf_tmp += (row_start * vdb_width) + col_start / 3;
8234: 9315 str r3, [sp, #84] ; 0x54
map_area.x1 = col_start / 3 + pos_x;
8236: f8bd 3034 ldrh.w r3, [sp, #52] ; 0x34
823a: fa11 f180 uxtah r1, r1, r0
map_area.x2 = col_end / 3 + pos_x - 1;
823e: 3b01 subs r3, #1
map_area.x1 = col_start / 3 + pos_x;
8240: f8ad 10cc strh.w r1, [sp, #204] ; 0xcc
map_area.x2 = col_end / 3 + pos_x - 1;
8244: 9919 ldr r1, [sp, #100] ; 0x64
8246: fb91 f2f2 sdiv r2, r1, r2
824a: 441a add r2, r3
824c: f8ad 20d0 strh.w r2, [sp, #208] ; 0xd0
map_area.y1 = row_start + pos_y;
8250: 9b16 ldr r3, [sp, #88] ; 0x58
8252: 9a0e ldr r2, [sp, #56] ; 0x38
8254: 4413 add r3, r2
8256: b21b sxth r3, r3
8258: f8ad 30ce strh.w r3, [sp, #206] ; 0xce
map_area.y2 = map_area.y1;
825c: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
8260: 4b51 ldr r3, [pc, #324] ; (83a8 <lv_draw_label+0x8b0>)
8262: 4798 blx r3
if((int32_t) mask_p + (col_end - col_start) < mask_buf_size) {
8264: 9a12 ldr r2, [sp, #72] ; 0x48
8266: 9b19 ldr r3, [sp, #100] ; 0x64
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
8268: 9027 str r0, [sp, #156] ; 0x9c
if((int32_t) mask_p + (col_end - col_start) < mask_buf_size) {
826a: 1a9b subs r3, r3, r2
826c: 9316 str r3, [sp, #88] ; 0x58
col_bit += ((box_w - col_end) + col_start) * bpp;
826e: 9b17 ldr r3, [sp, #92] ; 0x5c
8270: 4413 add r3, r2
8272: 9a19 ldr r2, [sp, #100] ; 0x64
8274: 1a9b subs r3, r3, r2
8276: 4363 muls r3, r4
vdb_buf_tmp += vdb_width - (col_end - col_start) / 3;
8278: 9a16 ldr r2, [sp, #88] ; 0x58
col_bit += ((box_w - col_end) + col_start) * bpp;
827a: 9328 str r3, [sp, #160] ; 0xa0
vdb_buf_tmp += vdb_width - (col_end - col_start) / 3;
827c: f06f 0302 mvn.w r3, #2
8280: fb92 f3f3 sdiv r3, r2, r3
8284: 444b add r3, r9
8286: 005b lsls r3, r3, #1
8288: 9329 str r3, [sp, #164] ; 0xa4
int32_t mask_p = 0;
828a: 2300 movs r3, #0
828c: 461f mov r7, r3
if(col_bit < (int32_t) (8 - bpp)) {
828e: f1c4 0308 rsb r3, r4, #8
8292: 932d str r3, [sp, #180] ; 0xb4
for(row = row_start ; row < row_end; row++) {
8294: 9b0e ldr r3, [sp, #56] ; 0x38
8296: 9a23 ldr r2, [sp, #140] ; 0x8c
8298: 4293 cmp r3, r2
829a: db31 blt.n 8300 <lv_draw_label+0x808>
if(map_area.y1 != map_area.y2) {
829c: f9bd 30d2 ldrsh.w r3, [sp, #210] ; 0xd2
82a0: f9bd 20ce ldrsh.w r2, [sp, #206] ; 0xce
82a4: 429a cmp r2, r3
82a6: d00f beq.n 82c8 <lv_draw_label+0x7d0>
map_area.y2--;
82a8: 3b01 subs r3, #1
82aa: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2
_lv_blend_map(clip_area, &map_area, color_buf, mask_buf, LV_DRAW_MASK_RES_CHANGED, opa, blend_mode);
82ae: 9b1b ldr r3, [sp, #108] ; 0x6c
82b0: 9302 str r3, [sp, #8]
82b2: 9b09 ldr r3, [sp, #36] ; 0x24
82b4: 9301 str r3, [sp, #4]
82b6: 2302 movs r3, #2
82b8: 9300 str r3, [sp, #0]
82ba: ee18 2a90 vmov r2, s17
82be: 4c3b ldr r4, [pc, #236] ; (83ac <lv_draw_label+0x8b4>)
82c0: 462b mov r3, r5
82c2: a933 add r1, sp, #204 ; 0xcc
82c4: 4650 mov r0, sl
82c6: 47a0 blx r4
_lv_mem_buf_release(mask_buf);
82c8: 4628 mov r0, r5
82ca: 4c39 ldr r4, [pc, #228] ; (83b0 <lv_draw_label+0x8b8>)
82cc: 47a0 blx r4
_lv_mem_buf_release(color_buf);
82ce: ee18 0a90 vmov r0, s17
82d2: 47a0 blx r4
82d4: e61a b.n 7f0c <lv_draw_label+0x414>
bitmask_init = 0xFF;
82d6: 23ff movs r3, #255 ; 0xff
82d8: 9313 str r3, [sp, #76] ; 0x4c
uint32_t bpp = g->bpp;
82da: 2408 movs r4, #8
bpp_opa_table = _lv_bpp8_opa_table;
82dc: 4b35 ldr r3, [pc, #212] ; (83b4 <lv_draw_label+0x8bc>)
82de: e736 b.n 814e <lv_draw_label+0x656>
LV_LOG_WARN("lv_draw_letter: invalid bpp not found");
82e0: 4b35 ldr r3, [pc, #212] ; (83b8 <lv_draw_label+0x8c0>)
82e2: 9300 str r3, [sp, #0]
82e4: f240 227a movw r2, #634 ; 0x27a
82e8: 4b34 ldr r3, [pc, #208] ; (83bc <lv_draw_label+0x8c4>)
82ea: e2a6 b.n 883a <lv_draw_label+0xd42>
bitmask_init = 0x80;
82ec: 2380 movs r3, #128 ; 0x80
82ee: 9313 str r3, [sp, #76] ; 0x4c
uint32_t bpp = g->bpp;
82f0: 2401 movs r4, #1
bpp_opa_table = _lv_bpp1_opa_table;
82f2: 4b33 ldr r3, [pc, #204] ; (83c0 <lv_draw_label+0x8c8>)
82f4: e72b b.n 814e <lv_draw_label+0x656>
bitmask_init = 0xF0;
82f6: 23f0 movs r3, #240 ; 0xf0
82f8: 9313 str r3, [sp, #76] ; 0x4c
switch(bpp) {
82fa: 2404 movs r4, #4
bpp_opa_table = _lv_bpp4_opa_table;
82fc: 4b31 ldr r3, [pc, #196] ; (83c4 <lv_draw_label+0x8cc>)
82fe: e726 b.n 814e <lv_draw_label+0x656>
bitmask = bitmask_init >> col_bit;
8300: 9a0f ldr r2, [sp, #60] ; 0x3c
8302: 9b13 ldr r3, [sp, #76] ; 0x4c
for(col = col_start; col < col_end; col++) {
8304: f8dd e048 ldr.w lr, [sp, #72] ; 0x48
bitmask = bitmask_init >> col_bit;
8308: fa23 fc02 lsr.w ip, r3, r2
for(col = col_start; col < col_end; col++) {
830c: 463e mov r6, r7
uint32_t subpx_cnt = 0;
830e: 2200 movs r2, #0
for(col = col_start; col < col_end; col++) {
8310: 9b19 ldr r3, [sp, #100] ; 0x64
8312: 4573 cmp r3, lr
8314: dc5c bgt.n 83d0 <lv_draw_label+0x8d8>
if(other_mask_cnt) {
8316: 9b27 ldr r3, [sp, #156] ; 0x9c
8318: b1cb cbz r3, 834e <lv_draw_label+0x856>
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, map_area.x1, map_area.y2,
831a: 463b mov r3, r7
831c: 442b add r3, r5
831e: 4698 mov r8, r3
8320: f8bd 30d0 ldrh.w r3, [sp, #208] ; 0xd0
8324: f9bd 10cc ldrsh.w r1, [sp, #204] ; 0xcc
8328: f9bd 20d2 ldrsh.w r2, [sp, #210] ; 0xd2
832c: 4f26 ldr r7, [pc, #152] ; (83c8 <lv_draw_label+0x8d0>)
832e: 3301 adds r3, #1
8330: 1a5b subs r3, r3, r1
8332: b21b sxth r3, r3
8334: 4640 mov r0, r8
8336: 47b8 blx r7
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
8338: b948 cbnz r0, 834e <lv_draw_label+0x856>
833a: f8bd 10d0 ldrh.w r1, [sp, #208] ; 0xd0
833e: f8bd 30cc ldrh.w r3, [sp, #204] ; 0xcc
8342: 3101 adds r1, #1
8344: 1ac9 subs r1, r1, r3
_lv_memset_00(mask_buf + mask_p_start, lv_area_get_width(&map_area));
8346: b209 sxth r1, r1
8348: 4b20 ldr r3, [pc, #128] ; (83cc <lv_draw_label+0x8d4>)
834a: 4640 mov r0, r8
834c: 4798 blx r3
if((int32_t) mask_p + (col_end - col_start) < mask_buf_size) {
834e: 9b16 ldr r3, [sp, #88] ; 0x58
8350: 9a18 ldr r2, [sp, #96] ; 0x60
8352: 18f3 adds r3, r6, r3
8354: 429a cmp r2, r3
8356: f340 80c1 ble.w 84dc <lv_draw_label+0x9e4>
map_area.y2 ++;
835a: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2
835e: 3301 adds r3, #1
8360: b21b sxth r3, r3
col_bit += ((box_w - col_end) + col_start) * bpp;
8362: 9a28 ldr r2, [sp, #160] ; 0xa0
map_area.y2 ++;
8364: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2
col_bit += ((box_w - col_end) + col_start) * bpp;
8368: 9b0f ldr r3, [sp, #60] ; 0x3c
836a: 4413 add r3, r2
map_p += (col_bit >> 3);
836c: 9a1a ldr r2, [sp, #104] ; 0x68
836e: eb02 02e3 add.w r2, r2, r3, asr #3
col_bit = col_bit & 0x7;
8372: f003 0307 and.w r3, r3, #7
map_p += (col_bit >> 3);
8376: 921a str r2, [sp, #104] ; 0x68
col_bit = col_bit & 0x7;
8378: 930f str r3, [sp, #60] ; 0x3c
vdb_buf_tmp += vdb_width - (col_end - col_start) / 3;
837a: 9a29 ldr r2, [sp, #164] ; 0xa4
837c: 9b15 ldr r3, [sp, #84] ; 0x54
837e: 4413 add r3, r2
8380: 9315 str r3, [sp, #84] ; 0x54
for(row = row_start ; row < row_end; row++) {
8382: 9b0e ldr r3, [sp, #56] ; 0x38
8384: 3301 adds r3, #1
8386: 930e str r3, [sp, #56] ; 0x38
8388: 4637 mov r7, r6
838a: e783 b.n 8294 <lv_draw_label+0x79c>
838c: 0000d3e9 .word 0x0000d3e9
8390: 000275a5 .word 0x000275a5
8394: 0002772a .word 0x0002772a
8398: 00027616 .word 0x00027616
839c: 0000f145 .word 0x0000f145
83a0: 0000526d .word 0x0000526d
83a4: 0000dc65 .word 0x0000dc65
83a8: 00009a75 .word 0x00009a75
83ac: 00006a81 .word 0x00006a81
83b0: 0000edf9 .word 0x0000edf9
83b4: 0002762a .word 0x0002762a
83b8: 000275d2 .word 0x000275d2
83bc: 00027739 .word 0x00027739
83c0: 00027614 .word 0x00027614
83c4: 0002761a .word 0x0002761a
83c8: 000099e5 .word 0x000099e5
83cc: 0000f2a9 .word 0x0000f2a9
letter_px = (*map_p & bitmask) >> (8 - col_bit - bpp);
83d0: 9b0f ldr r3, [sp, #60] ; 0x3c
83d2: 18e3 adds r3, r4, r3
83d4: 930d str r3, [sp, #52] ; 0x34
83d6: 9b1a ldr r3, [sp, #104] ; 0x68
83d8: 990d ldr r1, [sp, #52] ; 0x34
83da: 781b ldrb r3, [r3, #0]
83dc: f1c1 0108 rsb r1, r1, #8
83e0: ea03 030c and.w r3, r3, ip
if(letter_px != 0) {
83e4: 40cb lsrs r3, r1
83e6: d007 beq.n 83f8 <lv_draw_label+0x900>
if(opa == LV_OPA_COVER) {
83e8: 9909 ldr r1, [sp, #36] ; 0x24
83ea: 29ff cmp r1, #255 ; 0xff
83ec: d160 bne.n 84b0 <lv_draw_label+0x9b8>
px_opa = bpp == 8 ? letter_px : bpp_opa_table[letter_px];
83ee: 2c08 cmp r4, #8
83f0: bf1a itte ne
83f2: 9914 ldrne r1, [sp, #80] ; 0x50
83f4: 5ccb ldrbne r3, [r1, r3]
letter_px = (*map_p & bitmask) >> (8 - col_bit - bpp);
83f6: b2db uxtbeq r3, r3
font_rgb[subpx_cnt] = px_opa;
83f8: f502 71a0 add.w r1, r2, #320 ; 0x140
83fc: 4469 add r1, sp
subpx_cnt ++;
83fe: 3201 adds r2, #1
if(subpx_cnt == 3) {
8400: 2a03 cmp r2, #3
font_rgb[subpx_cnt] = px_opa;
8402: f801 3c84 strb.w r3, [r1, #-132]
if(subpx_cnt == 3) {
8406: d148 bne.n 849a <lv_draw_label+0x9a2>
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
8408: 9a15 ldr r2, [sp, #84] ; 0x54
res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8;
840a: f89d 30bc ldrb.w r3, [sp, #188] ; 0xbc
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
840e: 7851 ldrb r1, [r2, #1]
res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8;
8410: 9a25 ldr r2, [sp, #148] ; 0x94
res_color.ch.blue = (uint32_t)((uint16_t)txt_rgb[2] * font_rgb[2] + (bg_rgb[2] * (255 - font_rgb[2]))) >> 8;
8412: f89d 90be ldrb.w r9, [sp, #190] ; 0xbe
res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8;
8416: f1c3 00ff rsb r0, r3, #255 ; 0xff
841a: 08c9 lsrs r1, r1, #3
841c: fb13 f202 smulbb r2, r3, r2
8420: fb00 2201 mla r2, r0, r1, r2
8424: 0a12 lsrs r2, r2, #8
8426: 9217 str r2, [sp, #92] ; 0x5c
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
8428: 9a15 ldr r2, [sp, #84] ; 0x54
842a: 7810 ldrb r0, [r2, #0]
res_color.ch.blue = (uint32_t)((uint16_t)txt_rgb[2] * font_rgb[2] + (bg_rgb[2] * (255 - font_rgb[2]))) >> 8;
842c: 9a2a ldr r2, [sp, #168] ; 0xa8
842e: f000 001f and.w r0, r0, #31
8432: f1c9 08ff rsb r8, r9, #255 ; 0xff
8436: fb19 f102 smulbb r1, r9, r2
843a: fb08 1200 mla r2, r8, r0, r1
843e: 922b str r2, [sp, #172] ; 0xac
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
8440: 9a15 ldr r2, [sp, #84] ; 0x54
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
8442: f89d 80bd ldrb.w r8, [sp, #189] ; 0xbd
uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue};
8446: f832 0b02 ldrh.w r0, [r2], #2
844a: 9215 str r2, [sp, #84] ; 0x54
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
844c: f3c0 1245 ubfx r2, r0, #5, #6
8450: 4611 mov r1, r2
8452: f1c8 02ff rsb r2, r8, #255 ; 0xff
if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP;
8456: ea43 0309 orr.w r3, r3, r9
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
845a: 922c str r2, [sp, #176] ; 0xb0
845c: 9a26 ldr r2, [sp, #152] ; 0x98
if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP;
845e: ea58 0303 orrs.w r3, r8, r3
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
8462: fb18 f002 smulbb r0, r8, r2
if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP;
8466: bf18 it ne
8468: f04f 33ff movne.w r3, #4294967295 ; 0xffffffff
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
846c: 460a mov r2, r1
if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP;
846e: bf08 it eq
8470: 2300 moveq r3, #0
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
8472: 992c ldr r1, [sp, #176] ; 0xb0
if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP;
8474: 55ab strb r3, [r5, r6]
color_buf[mask_p] = res_color;
8476: 9b2b ldr r3, [sp, #172] ; 0xac
res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8;
8478: fb01 0002 mla r0, r1, r2, r0
color_buf[mask_p] = res_color;
847c: f3c0 2005 ubfx r0, r0, #8, #6
8480: f3c3 2104 ubfx r1, r3, #8, #5
8484: 9b17 ldr r3, [sp, #92] ; 0x5c
8486: ea41 1140 orr.w r1, r1, r0, lsl #5
848a: ea41 21c3 orr.w r1, r1, r3, lsl #11
848e: ee18 3a90 vmov r3, s17
subpx_cnt = 0;
8492: 2200 movs r2, #0
color_buf[mask_p] = res_color;
8494: f823 1016 strh.w r1, [r3, r6, lsl #1]
mask_p++;
8498: 3601 adds r6, #1
if(col_bit < (int32_t) (8 - bpp)) {
849a: 9b0f ldr r3, [sp, #60] ; 0x3c
849c: 992d ldr r1, [sp, #180] ; 0xb4
849e: 428b cmp r3, r1
84a0: da14 bge.n 84cc <lv_draw_label+0x9d4>
col_bit += bpp;
84a2: 9b0d ldr r3, [sp, #52] ; 0x34
84a4: 930f str r3, [sp, #60] ; 0x3c
bitmask = bitmask >> bpp;
84a6: fa2c fc04 lsr.w ip, ip, r4
for(col = col_start; col < col_end; col++) {
84aa: f10e 0e01 add.w lr, lr, #1
84ae: e72f b.n 8310 <lv_draw_label+0x818>
px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8
84b0: 2c08 cmp r4, #8
: (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8;
84b2: bf17 itett ne
84b4: 9914 ldrne r1, [sp, #80] ; 0x50
px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8
84b6: 9909 ldreq r1, [sp, #36] ; 0x24
: (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8;
84b8: 5ccb ldrbne r3, [r1, r3]
84ba: 9909 ldrne r1, [sp, #36] ; 0x24
px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8
84bc: bf0b itete eq
84be: 434b muleq r3, r1
: (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8;
84c0: fb13 f301 smulbbne r3, r3, r1
px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8
84c4: f3c3 2307 ubfxeq r3, r3, #8, #8
84c8: 0a1b lsrne r3, r3, #8
84ca: e795 b.n 83f8 <lv_draw_label+0x900>
map_p++;
84cc: 9b1a ldr r3, [sp, #104] ; 0x68
bitmask = bitmask_init;
84ce: f8dd c04c ldr.w ip, [sp, #76] ; 0x4c
map_p++;
84d2: 3301 adds r3, #1
84d4: 931a str r3, [sp, #104] ; 0x68
col_bit = 0;
84d6: 2300 movs r3, #0
84d8: 930f str r3, [sp, #60] ; 0x3c
84da: e7e6 b.n 84aa <lv_draw_label+0x9b2>
_lv_blend_map(clip_area, &map_area, color_buf, mask_buf, LV_DRAW_MASK_RES_CHANGED, opa, blend_mode);
84dc: 9b1b ldr r3, [sp, #108] ; 0x6c
84de: 9302 str r3, [sp, #8]
84e0: 9b09 ldr r3, [sp, #36] ; 0x24
84e2: 9301 str r3, [sp, #4]
84e4: 2302 movs r3, #2
84e6: 4ea7 ldr r6, [pc, #668] ; (8784 <lv_draw_label+0xc8c>)
84e8: 9300 str r3, [sp, #0]
84ea: ee18 2a90 vmov r2, s17
84ee: 462b mov r3, r5
84f0: a933 add r1, sp, #204 ; 0xcc
84f2: 4650 mov r0, sl
84f4: 47b0 blx r6
map_area.y1 = map_area.y2 + 1;
84f6: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2
84fa: 3301 adds r3, #1
84fc: b21b sxth r3, r3
84fe: f8ad 30ce strh.w r3, [sp, #206] ; 0xce
mask_p = 0;
8502: 2600 movs r6, #0
8504: e72d b.n 8362 <lv_draw_label+0x86a>
if(bpp == 3) bpp = 4;
8506: 2b03 cmp r3, #3
8508: ee09 4a90 vmov s19, r4
850c: f000 80c0 beq.w 8690 <lv_draw_label+0xb98>
switch(bpp) {
8510: 3b01 subs r3, #1
8512: 2b07 cmp r3, #7
8514: f200 80b0 bhi.w 8678 <lv_draw_label+0xb80>
8518: e8df f003 tbb [pc, r3]
851c: baae04b4 .word 0xbaae04b4
8520: a7aeaeae .word 0xa7aeaeae
8524: 22c0 movs r2, #192 ; 0xc0
8526: 9213 str r2, [sp, #76] ; 0x4c
8528: 4a97 ldr r2, [pc, #604] ; (8788 <lv_draw_label+0xc90>)
852a: 2502 movs r5, #2
852c: 2304 movs r3, #4
bpp_opa_table_p = _lv_bpp4_opa_table;
852e: 920e str r2, [sp, #56] ; 0x38
if(opa < LV_OPA_MAX) {
8530: 9a09 ldr r2, [sp, #36] ; 0x24
8532: 2af9 cmp r2, #249 ; 0xf9
8534: d812 bhi.n 855c <lv_draw_label+0xa64>
if(prev_opa != opa || prev_bpp != bpp) {
8536: 4a95 ldr r2, [pc, #596] ; (878c <lv_draw_label+0xc94>)
8538: 9809 ldr r0, [sp, #36] ; 0x24
853a: f892 1100 ldrb.w r1, [r2, #256] ; 0x100
853e: 4281 cmp r1, r0
8540: f040 80ac bne.w 869c <lv_draw_label+0xba4>
8544: f8d2 2104 ldr.w r2, [r2, #260] ; 0x104
8548: 42aa cmp r2, r5
854a: f040 80a7 bne.w 869c <lv_draw_label+0xba4>
prev_opa = opa;
854e: 4b8f ldr r3, [pc, #572] ; (878c <lv_draw_label+0xc94>)
8550: 9a09 ldr r2, [sp, #36] ; 0x24
8552: f883 2100 strb.w r2, [r3, #256] ; 0x100
prev_bpp = bpp;
8556: f8c3 5104 str.w r5, [r3, #260] ; 0x104
bpp_opa_table_p = opa_table;
855a: 930e str r3, [sp, #56] ; 0x38
int32_t col_start = pos_x >= clip_area->x1 ? 0 : clip_area->x1 - pos_x;
855c: f9ba 3000 ldrsh.w r3, [sl]
int32_t box_w = g->box_w;
8560: f8bd 90e2 ldrh.w r9, [sp, #226] ; 0xe2
int32_t box_h = g->box_h;
8564: f8bd 20e4 ldrh.w r2, [sp, #228] ; 0xe4
int32_t col_start = pos_x >= clip_area->x1 ? 0 : clip_area->x1 - pos_x;
8568: 42b3 cmp r3, r6
856a: bfcc ite gt
856c: 1b9b subgt r3, r3, r6
856e: 2300 movle r3, #0
8570: 930f str r3, [sp, #60] ; 0x3c
int32_t col_end = pos_x + box_w <= clip_area->x2 ? box_w : clip_area->x2 - pos_x + 1;
8572: f9ba 3004 ldrsh.w r3, [sl, #4]
8576: eb09 0006 add.w r0, r9, r6
857a: 4298 cmp r0, r3
857c: bfc4 itt gt
857e: 1b9b subgt r3, r3, r6
8580: 3301 addgt r3, #1
int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y;
8582: f9ba 6002 ldrsh.w r6, [sl, #2]
int32_t col_end = pos_x + box_w <= clip_area->x2 ? box_w : clip_area->x2 - pos_x + 1;
8586: bfc8 it gt
8588: 9312 strgt r3, [sp, #72] ; 0x48
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
858a: f9ba 3006 ldrsh.w r3, [sl, #6]
int32_t col_end = pos_x + box_w <= clip_area->x2 ? box_w : clip_area->x2 - pos_x + 1;
858e: bfd8 it le
8590: f8cd 9048 strle.w r9, [sp, #72] ; 0x48
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
8594: eb02 0008 add.w r0, r2, r8
int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y;
8598: 4546 cmp r6, r8
859a: bfcc ite gt
859c: eba6 0608 subgt.w r6, r6, r8
85a0: 2600 movle r6, #0
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
85a2: 4298 cmp r0, r3
85a4: bfc2 ittt gt
85a6: eba3 0308 subgt.w r3, r3, r8
85aa: 3301 addgt r3, #1
85ac: 9317 strgt r3, [sp, #92] ; 0x5c
uint32_t bit_ofs = (row_start * width_bit) + (col_start * bpp);
85ae: 9b0f ldr r3, [sp, #60] ; 0x3c
int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1;
85b0: bfd8 it le
85b2: 9217 strle r2, [sp, #92] ; 0x5c
int32_t width_bit = box_w * bpp; /*Letter width in bits*/
85b4: fb05 f109 mul.w r1, r5, r9
uint32_t bit_ofs = (row_start * width_bit) + (col_start * bpp);
85b8: fb03 f405 mul.w r4, r3, r5
85bc: fb06 4401 mla r4, r6, r1, r4
map_p += bit_ofs >> 3;
85c0: eb07 03d4 add.w r3, r7, r4, lsr #3
85c4: 9314 str r3, [sp, #80] ; 0x50
uint32_t mask_buf_size = box_w * box_h > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : box_w * box_h;
85c6: fb02 f309 mul.w r3, r2, r9
85ca: f5b3 7ff0 cmp.w r3, #480 ; 0x1e0
85ce: bfa8 it ge
85d0: f44f 73f0 movge.w r3, #480 ; 0x1e0
85d4: 9315 str r3, [sp, #84] ; 0x54
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
85d6: 4618 mov r0, r3
85d8: 4b6d ldr r3, [pc, #436] ; (8790 <lv_draw_label+0xc98>)
85da: 4798 blx r3
fill_area.x1 = col_start + pos_x;
85dc: 9a0d ldr r2, [sp, #52] ; 0x34
85de: 990f ldr r1, [sp, #60] ; 0x3c
85e0: f8bd 3034 ldrh.w r3, [sp, #52] ; 0x34
85e4: fa11 f282 uxtah r2, r1, r2
85e8: f8ad 20cc strh.w r2, [sp, #204] ; 0xcc
fill_area.x2 = col_end + pos_x - 1;
85ec: 9a12 ldr r2, [sp, #72] ; 0x48
85ee: 3b01 subs r3, #1
85f0: 4413 add r3, r2
85f2: f8ad 30d0 strh.w r3, [sp, #208] ; 0xd0
fill_area.y1 = row_start + pos_y;
85f6: 9b16 ldr r3, [sp, #88] ; 0x58
85f8: 4433 add r3, r6
85fa: b21b sxth r3, r3
85fc: f8ad 30ce strh.w r3, [sp, #206] ; 0xce
fill_area.y2 = fill_area.y1;
8600: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
8604: 4b63 ldr r3, [pc, #396] ; (8794 <lv_draw_label+0xc9c>)
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
8606: ee08 0a90 vmov s17, r0
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
860a: 4798 blx r3
uint32_t col_bit_max = 8 - bpp;
860c: f1c5 0308 rsb r3, r5, #8
8610: 930d str r3, [sp, #52] ; 0x34
uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp;
8612: 9b0f ldr r3, [sp, #60] ; 0x3c
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
8614: 9019 str r0, [sp, #100] ; 0x64
uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp;
8616: 4499 add r9, r3
8618: 9b12 ldr r3, [sp, #72] ; 0x48
861a: eba9 0903 sub.w r9, r9, r3
861e: fb05 f309 mul.w r3, r5, r9
col_bit = bit_ofs & 0x7; /* "& 0x7" equals to "% 8" just faster */
8622: f004 0407 and.w r4, r4, #7
uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp;
8626: 931a str r3, [sp, #104] ; 0x68
int32_t mask_p = 0;
8628: f04f 0900 mov.w r9, #0
for(row = row_start ; row < row_end; row++) {
862c: 9b17 ldr r3, [sp, #92] ; 0x5c
862e: 429e cmp r6, r3
8630: db45 blt.n 86be <lv_draw_label+0xbc6>
if(fill_area.y1 != fill_area.y2) {
8632: f9bd 30d2 ldrsh.w r3, [sp, #210] ; 0xd2
8636: f9bd 20ce ldrsh.w r2, [sp, #206] ; 0xce
863a: 429a cmp r2, r3
863c: d010 beq.n 8660 <lv_draw_label+0xb68>
fill_area.y2--;
863e: 3b01 subs r3, #1
8640: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2
_lv_blend_fill(clip_area, &fill_area,
8644: 9b1b ldr r3, [sp, #108] ; 0x6c
8646: 9302 str r3, [sp, #8]
8648: 26ff movs r6, #255 ; 0xff
864a: 2302 movs r3, #2
864c: e9cd 3600 strd r3, r6, [sp]
8650: ee19 2a90 vmov r2, s19
8654: ee18 3a90 vmov r3, s17
8658: 4c4f ldr r4, [pc, #316] ; (8798 <lv_draw_label+0xca0>)
865a: a933 add r1, sp, #204 ; 0xcc
865c: 4650 mov r0, sl
865e: 47a0 blx r4
_lv_mem_buf_release(mask_buf);
8660: ee18 0a90 vmov r0, s17
8664: 4b4d ldr r3, [pc, #308] ; (879c <lv_draw_label+0xca4>)
8666: 4798 blx r3
8668: e450 b.n 7f0c <lv_draw_label+0x414>
bitmask_init = 0xFF;
866a: 22ff movs r2, #255 ; 0xff
866c: 9213 str r2, [sp, #76] ; 0x4c
uint32_t bpp = g->bpp;
866e: 2508 movs r5, #8
bpp_opa_table_p = _lv_bpp8_opa_table;
8670: 4a4b ldr r2, [pc, #300] ; (87a0 <lv_draw_label+0xca8>)
shades = 256;
8672: f44f 7380 mov.w r3, #256 ; 0x100
8676: e75a b.n 852e <lv_draw_label+0xa36>
LV_LOG_WARN("lv_draw_letter: invalid bpp");
8678: 4b4a ldr r3, [pc, #296] ; (87a4 <lv_draw_label+0xcac>)
867a: 9300 str r3, [sp, #0]
867c: f240 12e5 movw r2, #485 ; 0x1e5
8680: 4b49 ldr r3, [pc, #292] ; (87a8 <lv_draw_label+0xcb0>)
8682: e0da b.n 883a <lv_draw_label+0xd42>
bitmask_init = 0x80;
8684: 2280 movs r2, #128 ; 0x80
8686: 9213 str r2, [sp, #76] ; 0x4c
uint32_t bpp = g->bpp;
8688: 2501 movs r5, #1
bpp_opa_table_p = _lv_bpp1_opa_table;
868a: 4a48 ldr r2, [pc, #288] ; (87ac <lv_draw_label+0xcb4>)
shades = 2;
868c: 2302 movs r3, #2
868e: e74e b.n 852e <lv_draw_label+0xa36>
bitmask_init = 0xF0;
8690: 22f0 movs r2, #240 ; 0xf0
8692: 9213 str r2, [sp, #76] ; 0x4c
switch(bpp) {
8694: 2504 movs r5, #4
bpp_opa_table_p = _lv_bpp4_opa_table;
8696: 4a46 ldr r2, [pc, #280] ; (87b0 <lv_draw_label+0xcb8>)
shades = 16;
8698: 2310 movs r3, #16
869a: e748 b.n 852e <lv_draw_label+0xa36>
869c: 990e ldr r1, [sp, #56] ; 0x38
869e: 483b ldr r0, [pc, #236] ; (878c <lv_draw_label+0xc94>)
86a0: 440b add r3, r1
opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8);
86a2: f811 2b01 ldrb.w r2, [r1], #1
86a6: 2aff cmp r2, #255 ; 0xff
86a8: bf17 itett ne
86aa: 9c09 ldrne r4, [sp, #36] ; 0x24
86ac: 9a09 ldreq r2, [sp, #36] ; 0x24
86ae: fb12 f204 smulbbne r2, r2, r4
86b2: 0a12 lsrne r2, r2, #8
for(i = 0; i < shades; i++) {
86b4: 4299 cmp r1, r3
opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8);
86b6: f800 2b01 strb.w r2, [r0], #1
for(i = 0; i < shades; i++) {
86ba: d1f2 bne.n 86a2 <lv_draw_label+0xbaa>
86bc: e747 b.n 854e <lv_draw_label+0xa56>
bitmask = bitmask_init >> col_bit;
86be: 9b13 ldr r3, [sp, #76] ; 0x4c
for(col = col_start; col < col_end; col++) {
86c0: 990f ldr r1, [sp, #60] ; 0x3c
86c2: f8cd 908c str.w r9, [sp, #140] ; 0x8c
bitmask = bitmask_init >> col_bit;
86c6: fa23 f204 lsr.w r2, r3, r4
for(col = col_start; col < col_end; col++) {
86ca: ee18 3a90 vmov r3, s17
86ce: eb03 0809 add.w r8, r3, r9
86d2: 4647 mov r7, r8
86d4: 9b12 ldr r3, [sp, #72] ; 0x48
86d6: 428b cmp r3, r1
86d8: dc3a bgt.n 8750 <lv_draw_label+0xc58>
86da: 9a0f ldr r2, [sp, #60] ; 0x3c
86dc: 9912 ldr r1, [sp, #72] ; 0x48
86de: 1a9b subs r3, r3, r2
86e0: 9316 str r3, [sp, #88] ; 0x58
86e2: 428a cmp r2, r1
86e4: bfc8 it gt
86e6: 2300 movgt r3, #0
86e8: 9318 str r3, [sp, #96] ; 0x60
86ea: 4499 add r9, r3
if(other_mask_cnt) {
86ec: 9b19 ldr r3, [sp, #100] ; 0x64
86ee: b1b3 cbz r3, 871e <lv_draw_label+0xc26>
86f0: f8bd 30d0 ldrh.w r3, [sp, #208] ; 0xd0
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, fill_area.x1, fill_area.y2,
86f4: f9bd 10cc ldrsh.w r1, [sp, #204] ; 0xcc
86f8: f9bd 20d2 ldrsh.w r2, [sp, #210] ; 0xd2
86fc: 4f2d ldr r7, [pc, #180] ; (87b4 <lv_draw_label+0xcbc>)
86fe: 3301 adds r3, #1
8700: 1a5b subs r3, r3, r1
8702: b21b sxth r3, r3
8704: 4640 mov r0, r8
8706: 47b8 blx r7
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
8708: b948 cbnz r0, 871e <lv_draw_label+0xc26>
870a: f8bd 10d0 ldrh.w r1, [sp, #208] ; 0xd0
870e: f8bd 30cc ldrh.w r3, [sp, #204] ; 0xcc
8712: 3101 adds r1, #1
8714: 1ac9 subs r1, r1, r3
_lv_memset_00(mask_buf + mask_p_start, lv_area_get_width(&fill_area));
8716: b209 sxth r1, r1
8718: 4b27 ldr r3, [pc, #156] ; (87b8 <lv_draw_label+0xcc0>)
871a: 4640 mov r0, r8
871c: 4798 blx r3
if((uint32_t) mask_p + (col_end - col_start) < mask_buf_size) {
871e: 9b18 ldr r3, [sp, #96] ; 0x60
8720: 9a16 ldr r2, [sp, #88] ; 0x58
8722: 4413 add r3, r2
8724: 4698 mov r8, r3
8726: 9b23 ldr r3, [sp, #140] ; 0x8c
8728: 4498 add r8, r3
872a: 9b15 ldr r3, [sp, #84] ; 0x54
872c: 4543 cmp r3, r8
872e: d945 bls.n 87bc <lv_draw_label+0xcc4>
fill_area.y2 ++;
8730: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2
8734: 3301 adds r3, #1
8736: b21b sxth r3, r3
8738: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2
col_bit += col_bit_row_ofs;
873c: 9b1a ldr r3, [sp, #104] ; 0x68
873e: 441c add r4, r3
map_p += (col_bit >> 3);
8740: 9b14 ldr r3, [sp, #80] ; 0x50
8742: eb03 03d4 add.w r3, r3, r4, lsr #3
8746: 9314 str r3, [sp, #80] ; 0x50
col_bit = col_bit & 0x7;
8748: f004 0407 and.w r4, r4, #7
for(row = row_start ; row < row_end; row++) {
874c: 3601 adds r6, #1
874e: e76d b.n 862c <lv_draw_label+0xb34>
letter_px = (*map_p & bitmask) >> (col_bit_max - col_bit);
8750: 9b14 ldr r3, [sp, #80] ; 0x50
8752: 980d ldr r0, [sp, #52] ; 0x34
8754: 781b ldrb r3, [r3, #0]
8756: eba0 0c04 sub.w ip, r0, r4
875a: 4013 ands r3, r2
if(letter_px) {
875c: fa33 f30c lsrs.w r3, r3, ip
mask_buf[mask_p] = bpp_opa_table_p[letter_px];
8760: bf1c itt ne
8762: 980e ldrne r0, [sp, #56] ; 0x38
8764: 5cc3 ldrbne r3, [r0, r3]
8766: f807 3b01 strb.w r3, [r7], #1
if(col_bit < col_bit_max) {
876a: 9b0d ldr r3, [sp, #52] ; 0x34
876c: 42a3 cmp r3, r4
map_p++;
876e: bf9d ittte ls
8770: 9b14 ldrls r3, [sp, #80] ; 0x50
bitmask = bitmask_init;
8772: 9a13 ldrls r2, [sp, #76] ; 0x4c
map_p++;
8774: 3301 addls r3, #1
col_bit += bpp;
8776: 1964 addhi r4, r4, r5
bitmask = bitmask >> bpp;
8778: bf8e itee hi
877a: 40ea lsrhi r2, r5
map_p++;
877c: 9314 strls r3, [sp, #80] ; 0x50
col_bit = 0;
877e: 2400 movls r4, #0
for(col = col_start; col < col_end; col++) {
8780: 3101 adds r1, #1
8782: e7a7 b.n 86d4 <lv_draw_label+0xbdc>
8784: 00006a81 .word 0x00006a81
8788: 00027616 .word 0x00027616
878c: 20003498 .word 0x20003498
8790: 0000f145 .word 0x0000f145
8794: 00009a75 .word 0x00009a75
8798: 00006475 .word 0x00006475
879c: 0000edf9 .word 0x0000edf9
87a0: 0002762a .word 0x0002762a
87a4: 000275f8 .word 0x000275f8
87a8: 0002774b .word 0x0002774b
87ac: 00027614 .word 0x00027614
87b0: 0002761a .word 0x0002761a
87b4: 000099e5 .word 0x000099e5
87b8: 0000f2a9 .word 0x0000f2a9
_lv_blend_fill(clip_area, &fill_area,
87bc: 9b1b ldr r3, [sp, #108] ; 0x6c
87be: 9302 str r3, [sp, #8]
87c0: 27ff movs r7, #255 ; 0xff
87c2: 2302 movs r3, #2
87c4: e9cd 3700 strd r3, r7, [sp]
87c8: ee19 2a90 vmov r2, s19
87cc: ee18 3a90 vmov r3, s17
87d0: f8df 808c ldr.w r8, [pc, #140] ; 8860 <lv_draw_label+0xd68>
87d4: a933 add r1, sp, #204 ; 0xcc
87d6: 4650 mov r0, sl
87d8: 47c0 blx r8
fill_area.y1 = fill_area.y2 + 1;
87da: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2
87de: 3301 adds r3, #1
87e0: b21b sxth r3, r3
87e2: f8ad 30ce strh.w r3, [sp, #206] ; 0xce
mask_p = 0;
87e6: f04f 0900 mov.w r9, #0
87ea: e7a5 b.n 8738 <lv_draw_label+0xc40>
else if(dsc->flag & LV_TXT_FLAG_RIGHT) {
87ec: 071a lsls r2, r3, #28
87ee: f57f ac15 bpl.w 801c <lv_draw_label+0x524>
_lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
87f2: ee18 2a10 vmov r2, s16
87f6: 9300 str r3, [sp, #0]
87f8: 4630 mov r0, r6
87fa: f9bb 300c ldrsh.w r3, [fp, #12]
87fe: 4e12 ldr r6, [pc, #72] ; (8848 <lv_draw_label+0xd50>)
8800: 47b0 blx r6
8802: 9b05 ldr r3, [sp, #20]
8804: 9a05 ldr r2, [sp, #20]
8806: 889b ldrh r3, [r3, #4]
8808: 8812 ldrh r2, [r2, #0]
880a: 3301 adds r3, #1
880c: 1a9b subs r3, r3, r2
pos.x += lv_area_get_width(coords) - line_width;
880e: b21b sxth r3, r3
8810: 1a18 subs r0, r3, r0
8812: 4420 add r0, r4
8814: e401 b.n 801a <lv_draw_label+0x522>
bool g_ret = lv_font_get_glyph_dsc(font_p, &g, letter, '\0');
8816: ee18 0a10 vmov r0, s16
881a: 4e0c ldr r6, [pc, #48] ; (884c <lv_draw_label+0xd54>)
881c: 2300 movs r3, #0
881e: 462a mov r2, r5
8820: a938 add r1, sp, #224 ; 0xe0
8822: 47b0 blx r6
if(g_ret == false) {
8824: 2800 cmp r0, #0
8826: f47f ac25 bne.w 8074 <lv_draw_label+0x57c>
if(letter >= 0x20) {
882a: 2d1f cmp r5, #31
882c: f67f ab6e bls.w 7f0c <lv_draw_label+0x414>
LV_LOG_WARN("lv_draw_letter: glyph dsc. not found");
8830: 4b07 ldr r3, [pc, #28] ; (8850 <lv_draw_label+0xd58>)
8832: 9300 str r3, [sp, #0]
8834: 4b07 ldr r3, [pc, #28] ; (8854 <lv_draw_label+0xd5c>)
8836: f240 12a1 movw r2, #417 ; 0x1a1
LV_LOG_WARN("lv_draw_letter: invalid bpp");
883a: 4907 ldr r1, [pc, #28] ; (8858 <lv_draw_label+0xd60>)
883c: 4c07 ldr r4, [pc, #28] ; (885c <lv_draw_label+0xd64>)
883e: 2002 movs r0, #2
8840: 47a0 blx r4
return; /*Invalid bpp. Can't render the letter*/
8842: f7ff bb63 b.w 7f0c <lv_draw_label+0x414>
8846: bf00 nop
8848: 000101ad .word 0x000101ad
884c: 0000d3ed .word 0x0000d3ed
8850: 00027580 .word 0x00027580
8854: 0002772a .word 0x0002772a
8858: 0002754a .word 0x0002754a
885c: 0000eb79 .word 0x0000eb79
8860: 00006475 .word 0x00006475
00008864 <lv_draw_line_dsc_init>:
/**********************
* GLOBAL FUNCTIONS
**********************/
LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc)
{
8864: b510 push {r4, lr}
_lv_memset_00(dsc, sizeof(lv_draw_line_dsc_t));
8866: 4b05 ldr r3, [pc, #20] ; (887c <lv_draw_line_dsc_init+0x18>)
{
8868: 4604 mov r4, r0
_lv_memset_00(dsc, sizeof(lv_draw_line_dsc_t));
886a: 210a movs r1, #10
886c: 4798 blx r3
dsc->width = 1;
dsc->opa = LV_OPA_COVER;
886e: 23ff movs r3, #255 ; 0xff
8870: 7223 strb r3, [r4, #8]
dsc->color = LV_COLOR_BLACK;
8872: 2300 movs r3, #0
8874: 8023 strh r3, [r4, #0]
dsc->width = 1;
8876: 2301 movs r3, #1
8878: 8063 strh r3, [r4, #2]
}
887a: bd10 pop {r4, pc}
887c: 0000f2a9 .word 0x0000f2a9
00008880 <lv_draw_line>:
* @param style pointer to a line's style
* @param opa_scale scale down all opacities by the factor
*/
LV_ATTRIBUTE_FAST_MEM void lv_draw_line(const lv_point_t * point1, const lv_point_t * point2, const lv_area_t * clip,
lv_draw_line_dsc_t * dsc)
{
8880: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
8884: ed2d 8b04 vpush {d8-d9}
8888: 469b mov fp, r3
if(dsc->width == 0) return;
888a: f9b3 3002 ldrsh.w r3, [r3, #2]
{
888e: b0c7 sub sp, #284 ; 0x11c
8890: e9cd 0105 strd r0, r1, [sp, #20]
8894: ee08 2a90 vmov s17, r2
if(dsc->width == 0) return;
8898: 2b00 cmp r3, #0
889a: f000 80e4 beq.w 8a66 <lv_draw_line+0x1e6>
if(dsc->opa <= LV_OPA_MIN) return;
889e: f89b 2008 ldrb.w r2, [fp, #8]
88a2: 2a05 cmp r2, #5
88a4: f240 80df bls.w 8a66 <lv_draw_line+0x1e6>
if(point1->x == point2->x && point1->y == point2->y) return;
88a8: 9a05 ldr r2, [sp, #20]
88aa: f9b0 4000 ldrsh.w r4, [r0]
88ae: f9b1 0000 ldrsh.w r0, [r1]
88b2: f9b2 1002 ldrsh.w r1, [r2, #2]
88b6: 9a06 ldr r2, [sp, #24]
88b8: 4284 cmp r4, r0
88ba: f9b2 2002 ldrsh.w r2, [r2, #2]
88be: d102 bne.n 88c6 <lv_draw_line+0x46>
88c0: 4291 cmp r1, r2
88c2: f000 80d0 beq.w 8a66 <lv_draw_line+0x1e6>
lv_area_t clip_line;
clip_line.x1 = LV_MATH_MIN(point1->x, point2->x) - dsc->width / 2;
88c6: eb03 73d3 add.w r3, r3, r3, lsr #31
88ca: f3c3 034f ubfx r3, r3, #1, #16
88ce: 4284 cmp r4, r0
88d0: bfd4 ite le
88d2: ebc3 0504 rsble r5, r3, r4
88d6: ebc3 0500 rsbgt r5, r3, r0
88da: f8ad 5028 strh.w r5, [sp, #40] ; 0x28
clip_line.x2 = LV_MATH_MAX(point1->x, point2->x) + dsc->width / 2;
88de: 4284 cmp r4, r0
88e0: bfac ite ge
88e2: 191d addge r5, r3, r4
88e4: 181d addlt r5, r3, r0
clip_line.y1 = LV_MATH_MIN(point1->y, point2->y) - dsc->width / 2;
88e6: 4291 cmp r1, r2
88e8: bfd4 ite le
88ea: ebc3 0001 rsble r0, r3, r1
88ee: ebc3 0002 rsbgt r0, r3, r2
clip_line.y2 = LV_MATH_MAX(point1->y, point2->y) + dsc->width / 2;
88f2: 4291 cmp r1, r2
88f4: bfac ite ge
88f6: 185b addge r3, r3, r1
88f8: 189b addlt r3, r3, r2
bool is_common;
is_common = _lv_area_intersect(&clip_line, &clip_line, clip);
88fa: a90a add r1, sp, #40 ; 0x28
clip_line.y1 = LV_MATH_MIN(point1->y, point2->y) - dsc->width / 2;
88fc: f8ad 002a strh.w r0, [sp, #42] ; 0x2a
is_common = _lv_area_intersect(&clip_line, &clip_line, clip);
8900: ee18 2a90 vmov r2, s17
8904: 4caa ldr r4, [pc, #680] ; (8bb0 <lv_draw_line+0x330>)
clip_line.x2 = LV_MATH_MAX(point1->x, point2->x) + dsc->width / 2;
8906: f8ad 502c strh.w r5, [sp, #44] ; 0x2c
is_common = _lv_area_intersect(&clip_line, &clip_line, clip);
890a: 4608 mov r0, r1
clip_line.y2 = LV_MATH_MAX(point1->y, point2->y) + dsc->width / 2;
890c: f8ad 302e strh.w r3, [sp, #46] ; 0x2e
is_common = _lv_area_intersect(&clip_line, &clip_line, clip);
8910: 47a0 blx r4
if(!is_common) return;
8912: 2800 cmp r0, #0
8914: f000 80a7 beq.w 8a66 <lv_draw_line+0x1e6>
if(point1->y == point2->y) draw_line_hor(point1, point2, &clip_line, dsc);
8918: 9b05 ldr r3, [sp, #20]
891a: f9b3 9002 ldrsh.w r9, [r3, #2]
891e: 9b06 ldr r3, [sp, #24]
8920: f9b3 8002 ldrsh.w r8, [r3, #2]
8924: 45c1 cmp r9, r8
8926: f040 8159 bne.w 8bdc <lv_draw_line+0x35c>
const lv_area_t * clip,
lv_draw_line_dsc_t * dsc)
{
lv_opa_t opa = dsc->opa;
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
892a: 4ba2 ldr r3, [pc, #648] ; (8bb4 <lv_draw_line+0x334>)
lv_opa_t opa = dsc->opa;
892c: f89b 4008 ldrb.w r4, [fp, #8]
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
8930: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
8932: 4ba1 ldr r3, [pc, #644] ; (8bb8 <lv_draw_line+0x338>)
8934: 4798 blx r3
const lv_area_t * disp_area = &vdb->area;
int32_t w = dsc->width - 1;
8936: f9bb 3002 ldrsh.w r3, [fp, #2]
int32_t w_half0 = w >> 1;
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
bool dashed = dsc->dash_gap && dsc->dash_width ? true : false;
893a: f9bb 5006 ldrsh.w r5, [fp, #6]
int32_t w = dsc->width - 1;
893e: 3b01 subs r3, #1
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
8940: f003 0601 and.w r6, r3, #1
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
8944: 4680 mov r8, r0
int32_t w_half0 = w >> 1;
8946: 105f asrs r7, r3, #1
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
8948: eb06 0663 add.w r6, r6, r3, asr #1
bool dashed = dsc->dash_gap && dsc->dash_width ? true : false;
894c: b125 cbz r5, 8958 <lv_draw_line+0xd8>
894e: f9bb 5004 ldrsh.w r5, [fp, #4]
8952: 3d00 subs r5, #0
8954: bf18 it ne
8956: 2501 movne r5, #1
bool simple_mode = true;
if(lv_draw_mask_get_cnt()) simple_mode = false;
8958: 4b98 ldr r3, [pc, #608] ; (8bbc <lv_draw_line+0x33c>)
895a: 4798 blx r3
895c: 2800 cmp r0, #0
895e: f040 8087 bne.w 8a70 <lv_draw_line+0x1f0>
else if(dashed) simple_mode = false;
8962: f085 0201 eor.w r2, r5, #1
lv_area_t draw_area;
draw_area.x1 = LV_MATH_MIN(point1->x, point2->x);
8966: 9b06 ldr r3, [sp, #24]
8968: 9905 ldr r1, [sp, #20]
896a: f9b3 3000 ldrsh.w r3, [r3]
896e: f9b1 1000 ldrsh.w r1, [r1]
8972: 428b cmp r3, r1
8974: 4618 mov r0, r3
8976: bfa8 it ge
8978: 4608 movge r0, r1
draw_area.x2 = LV_MATH_MAX(point1->x, point2->x) - 1;
897a: 428b cmp r3, r1
897c: bfb8 it lt
897e: 460b movlt r3, r1
8980: 3b01 subs r3, #1
8982: f8ad 309c strh.w r3, [sp, #156] ; 0x9c
draw_area.y1 = point1->y - w_half1;
8986: 9b05 ldr r3, [sp, #20]
draw_area.x1 = LV_MATH_MIN(point1->x, point2->x);
8988: f8ad 0098 strh.w r0, [sp, #152] ; 0x98
draw_area.y1 = point1->y - w_half1;
898c: 885b ldrh r3, [r3, #2]
898e: 1b9e subs r6, r3, r6
draw_area.y2 = point1->y + w_half0;
8990: 443b add r3, r7
draw_area.y1 = point1->y - w_half1;
8992: f8ad 609a strh.w r6, [sp, #154] ; 0x9a
draw_area.y2 = point1->y + w_half0;
8996: f8ad 309e strh.w r3, [sp, #158] ; 0x9e
/*If there is no mask then simply draw a rectangle*/
if(simple_mode) {
899a: 2a00 cmp r2, #0
899c: d06a beq.n 8a74 <lv_draw_line+0x1f4>
_lv_blend_fill(clip, &draw_area,
dsc->color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa,
dsc->blend_mode);
899e: f89b 3009 ldrb.w r3, [fp, #9]
_lv_blend_fill(clip, &draw_area,
89a2: f003 0303 and.w r3, r3, #3
89a6: e9cd 4301 strd r4, r3, [sp, #4]
draw_area.y1 = LV_MATH_MIN(point1->y, point2->y);
draw_area.y2 = LV_MATH_MAX(point1->y, point2->y) - 1;
/*If there is no mask then simply draw a rectangle*/
if(simple_mode) {
_lv_blend_fill(clip, &draw_area,
89aa: 2301 movs r3, #1
89ac: 9300 str r3, [sp, #0]
89ae: f8bb 2000 ldrh.w r2, [fp]
89b2: 4c83 ldr r4, [pc, #524] ; (8bc0 <lv_draw_line+0x340>)
89b4: 2300 movs r3, #0
89b6: a926 add r1, sp, #152 ; 0x98
89b8: a80a add r0, sp, #40 ; 0x28
89ba: 47a0 blx r4
if(dsc->round_end || dsc->round_start) {
89bc: f89b 3009 ldrb.w r3, [fp, #9]
89c0: f013 0f0c tst.w r3, #12
89c4: d04f beq.n 8a66 <lv_draw_line+0x1e6>
lv_draw_rect_dsc_init(&cir_dsc);
89c6: 4b7f ldr r3, [pc, #508] ; (8bc4 <lv_draw_line+0x344>)
89c8: a831 add r0, sp, #196 ; 0xc4
89ca: 4798 blx r3
cir_dsc.bg_color = dsc->color;
89cc: f8bb 3000 ldrh.w r3, [fp]
89d0: f8ad 30c6 strh.w r3, [sp, #198] ; 0xc6
cir_dsc.radius = LV_RADIUS_CIRCLE;
89d4: f647 73ff movw r3, #32767 ; 0x7fff
89d8: f8ad 30c4 strh.w r3, [sp, #196] ; 0xc4
cir_dsc.bg_opa = dsc->opa;
89dc: f89b 3008 ldrb.w r3, [fp, #8]
int32_t r = (dsc->width >> 1);
89e0: f9bb 5002 ldrsh.w r5, [fp, #2]
cir_dsc.bg_opa = dsc->opa;
89e4: f88d 30d0 strb.w r3, [sp, #208] ; 0xd0
if(dsc->round_start) {
89e8: f89b 3009 ldrb.w r3, [fp, #9]
int32_t r = (dsc->width >> 1);
89ec: 106c asrs r4, r5, #1
if(dsc->round_start) {
89ee: 075a lsls r2, r3, #29
89f0: ea6f 0505 mvn.w r5, r5
89f4: f005 0501 and.w r5, r5, #1
89f8: d518 bpl.n 8a2c <lv_draw_line+0x1ac>
cir_area.x1 = point1->x - r;
89fa: 9b05 ldr r3, [sp, #20]
89fc: 881a ldrh r2, [r3, #0]
89fe: b2a3 uxth r3, r4
8a00: 1ad1 subs r1, r2, r3
8a02: f8ad 1098 strh.w r1, [sp, #152] ; 0x98
cir_area.y1 = point1->y - r;
8a06: 9905 ldr r1, [sp, #20]
8a08: 8849 ldrh r1, [r1, #2]
cir_area.x2 = point1->x + r - r_corr;
8a0a: 441a add r2, r3
cir_area.y1 = point1->y - r;
8a0c: 1ac8 subs r0, r1, r3
cir_area.y2 = point1->y + r - r_corr ;
8a0e: 440b add r3, r1
cir_area.x2 = point1->x + r - r_corr;
8a10: 1b52 subs r2, r2, r5
cir_area.y2 = point1->y + r - r_corr ;
8a12: 1b5b subs r3, r3, r5
cir_area.y1 = point1->y - r;
8a14: f8ad 009a strh.w r0, [sp, #154] ; 0x9a
cir_area.x2 = point1->x + r - r_corr;
8a18: f8ad 209c strh.w r2, [sp, #156] ; 0x9c
cir_area.y2 = point1->y + r - r_corr ;
8a1c: f8ad 309e strh.w r3, [sp, #158] ; 0x9e
lv_draw_rect(&cir_area, clip, &cir_dsc);
8a20: ee18 1a90 vmov r1, s17
8a24: 4b68 ldr r3, [pc, #416] ; (8bc8 <lv_draw_line+0x348>)
8a26: aa31 add r2, sp, #196 ; 0xc4
8a28: a826 add r0, sp, #152 ; 0x98
8a2a: 4798 blx r3
if(dsc->round_end) {
8a2c: f89b 3009 ldrb.w r3, [fp, #9]
8a30: 071b lsls r3, r3, #28
8a32: d518 bpl.n 8a66 <lv_draw_line+0x1e6>
cir_area.x1 = point2->x - r;
8a34: 9b06 ldr r3, [sp, #24]
8a36: 881a ldrh r2, [r3, #0]
8a38: b2a3 uxth r3, r4
8a3a: 1ad1 subs r1, r2, r3
8a3c: f8ad 1098 strh.w r1, [sp, #152] ; 0x98
cir_area.y1 = point2->y - r;
8a40: 9906 ldr r1, [sp, #24]
8a42: 8849 ldrh r1, [r1, #2]
cir_area.x2 = point2->x + r - r_corr;
8a44: 441a add r2, r3
cir_area.y1 = point2->y - r;
8a46: 1ac8 subs r0, r1, r3
cir_area.y2 = point2->y + r - r_corr ;
8a48: 440b add r3, r1
cir_area.x2 = point2->x + r - r_corr;
8a4a: 1b52 subs r2, r2, r5
cir_area.y2 = point2->y + r - r_corr ;
8a4c: 1b5b subs r3, r3, r5
cir_area.y1 = point2->y - r;
8a4e: f8ad 009a strh.w r0, [sp, #154] ; 0x9a
cir_area.x2 = point2->x + r - r_corr;
8a52: f8ad 209c strh.w r2, [sp, #156] ; 0x9c
cir_area.y2 = point2->y + r - r_corr ;
8a56: f8ad 309e strh.w r3, [sp, #158] ; 0x9e
lv_draw_rect(&cir_area, clip, &cir_dsc);
8a5a: ee18 1a90 vmov r1, s17
8a5e: 4b5a ldr r3, [pc, #360] ; (8bc8 <lv_draw_line+0x348>)
8a60: aa31 add r2, sp, #196 ; 0xc4
8a62: a826 add r0, sp, #152 ; 0x98
8a64: 4798 blx r3
}
8a66: b047 add sp, #284 ; 0x11c
8a68: ecbd 8b04 vpop {d8-d9}
8a6c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(lv_draw_mask_get_cnt()) simple_mode = false;
8a70: 2200 movs r2, #0
8a72: e778 b.n 8966 <lv_draw_line+0xe6>
is_common = _lv_area_intersect(&draw_area, clip, &draw_area);
8a74: aa26 add r2, sp, #152 ; 0x98
8a76: 4b4e ldr r3, [pc, #312] ; (8bb0 <lv_draw_line+0x330>)
8a78: a90a add r1, sp, #40 ; 0x28
8a7a: 4610 mov r0, r2
8a7c: 4798 blx r3
if(!is_common) return;
8a7e: 2800 cmp r0, #0
8a80: d09c beq.n 89bc <lv_draw_line+0x13c>
draw_area.y1 -= disp_area->y1;
8a82: f8b8 e012 ldrh.w lr, [r8, #18]
8a86: f9bd 109a ldrsh.w r1, [sp, #154] ; 0x9a
draw_area.x1 -= disp_area->x1;
8a8a: f8b8 2010 ldrh.w r2, [r8, #16]
8a8e: f9b8 6010 ldrsh.w r6, [r8, #16]
8a92: f8bd 0098 ldrh.w r0, [sp, #152] ; 0x98
draw_area.x2 -= disp_area->x1;
8a96: f9bd 709c ldrsh.w r7, [sp, #156] ; 0x9c
draw_area.x1 -= disp_area->x1;
8a9a: f9bd c098 ldrsh.w ip, [sp, #152] ; 0x98
fill_area.x1 = draw_area.x1 + disp_area->x1;
8a9e: f8ad c0c4 strh.w ip, [sp, #196] ; 0xc4
draw_area.y1 -= disp_area->y1;
8aa2: eba1 040e sub.w r4, r1, lr
8aa6: f8ad 409a strh.w r4, [sp, #154] ; 0x9a
draw_area.x2 -= disp_area->x1;
8aaa: f8bd 409c ldrh.w r4, [sp, #156] ; 0x9c
fill_area.x2 = draw_area.x2 + disp_area->x1;
8aae: f8ad 70c8 strh.w r7, [sp, #200] ; 0xc8
draw_area.x1 -= disp_area->x1;
8ab2: 1a83 subs r3, r0, r2
draw_area.x2 -= disp_area->x1;
8ab4: 1aa2 subs r2, r4, r2
8ab6: f8ad 209c strh.w r2, [sp, #156] ; 0x9c
draw_area.y2 -= disp_area->y1;
8aba: f8bd 209e ldrh.w r2, [sp, #158] ; 0x9e
fill_area.y1 = draw_area.y1 + disp_area->y1;
8abe: f8ad 10c6 strh.w r1, [sp, #198] ; 0xc6
8ac2: 3401 adds r4, #1
draw_area.x1 -= disp_area->x1;
8ac4: b21b sxth r3, r3
draw_area.y2 -= disp_area->y1;
8ac6: eba2 020e sub.w r2, r2, lr
8aca: 1a24 subs r4, r4, r0
draw_area.x1 -= disp_area->x1;
8acc: f8ad 3098 strh.w r3, [sp, #152] ; 0x98
draw_area.y2 -= disp_area->y1;
8ad0: f8ad 209e strh.w r2, [sp, #158] ; 0x9e
8ad4: b224 sxth r4, r4
fill_area.y2 = fill_area.y1;
8ad6: f8ad 10ca strh.w r1, [sp, #202] ; 0xca
if(dashed) {
8ada: b1dd cbz r5, 8b14 <lv_draw_line+0x294>
dash_start = (vdb->area.x1 + draw_area.x1) % (dsc->dash_gap + dsc->dash_width);
8adc: 441e add r6, r3
8ade: f9bb 2004 ldrsh.w r2, [fp, #4]
8ae2: f9bb 3006 ldrsh.w r3, [fp, #6]
8ae6: 4413 add r3, r2
8ae8: fb96 f2f3 sdiv r2, r6, r3
8aec: fb03 6612 mls r6, r3, r2, r6
8af0: b233 sxth r3, r6
8af2: 9307 str r3, [sp, #28]
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
8af4: 4b35 ldr r3, [pc, #212] ; (8bcc <lv_draw_line+0x34c>)
_lv_blend_fill(clip, &fill_area,
8af6: f8df a0c8 ldr.w sl, [pc, #200] ; 8bc0 <lv_draw_line+0x340>
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
8afa: 4620 mov r0, r4
8afc: 4798 blx r3
for(h = draw_area.y1; h <= draw_area.y2; h++) {
8afe: f9bd 909a ldrsh.w r9, [sp, #154] ; 0x9a
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
8b02: 4607 mov r7, r0
for(h = draw_area.y1; h <= draw_area.y2; h++) {
8b04: f9bd 309e ldrsh.w r3, [sp, #158] ; 0x9e
8b08: 4599 cmp r9, r3
8b0a: dd05 ble.n 8b18 <lv_draw_line+0x298>
_lv_mem_buf_release(mask_buf);
8b0c: 4638 mov r0, r7
LV_BLEND_MODE_NORMAL);
fill_area.y1++;
fill_area.y2++;
}
_lv_mem_buf_release(mask_buf);
8b0e: 4b30 ldr r3, [pc, #192] ; (8bd0 <lv_draw_line+0x350>)
8b10: 4798 blx r3
8b12: e753 b.n 89bc <lv_draw_line+0x13c>
lv_style_int_t dash_start = 0;
8b14: 9507 str r5, [sp, #28]
8b16: e7ed b.n 8af4 <lv_draw_line+0x274>
_lv_memset_ff(mask_buf, draw_area_w);
8b18: 4b2e ldr r3, [pc, #184] ; (8bd4 <lv_draw_line+0x354>)
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
8b1a: 4e2f ldr r6, [pc, #188] ; (8bd8 <lv_draw_line+0x358>)
_lv_memset_ff(mask_buf, draw_area_w);
8b1c: 4621 mov r1, r4
8b1e: 4638 mov r0, r7
8b20: 4798 blx r3
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
8b22: f8bd 3098 ldrh.w r3, [sp, #152] ; 0x98
8b26: f8b8 2012 ldrh.w r2, [r8, #18]
8b2a: f8b8 1010 ldrh.w r1, [r8, #16]
8b2e: 444a add r2, r9
8b30: 4419 add r1, r3
8b32: b212 sxth r2, r2
8b34: 4623 mov r3, r4
8b36: b209 sxth r1, r1
8b38: 4638 mov r0, r7
8b3a: 47b0 blx r6
8b3c: 4602 mov r2, r0
if(dashed) {
8b3e: b195 cbz r5, 8b66 <lv_draw_line+0x2e6>
if(mask_res != LV_DRAW_MASK_RES_TRANSP) {
8b40: b188 cbz r0, 8b66 <lv_draw_line+0x2e6>
for(i = 0; i < draw_area_w; i++, dash_cnt++) {
8b42: 2300 movs r3, #0
lv_style_int_t dash_cnt = dash_start;
8b44: 9907 ldr r1, [sp, #28]
8b46: 4618 mov r0, r3
8b48: e00a b.n 8b60 <lv_draw_line+0x2e0>
if(dash_cnt <= dsc->dash_width) {
8b4a: f9bb 2004 ldrsh.w r2, [fp, #4]
8b4e: 428a cmp r2, r1
8b50: db25 blt.n 8b9e <lv_draw_line+0x31e>
i += diff;
8b52: 4413 add r3, r2
8b54: 1a5b subs r3, r3, r1
8b56: b21b sxth r3, r3
for(i = 0; i < draw_area_w; i++, dash_cnt++) {
8b58: 3301 adds r3, #1
8b5a: 3201 adds r2, #1
8b5c: b21b sxth r3, r3
8b5e: b211 sxth r1, r2
8b60: 429c cmp r4, r3
8b62: dcf2 bgt.n 8b4a <lv_draw_line+0x2ca>
mask_res = LV_DRAW_MASK_RES_CHANGED;
8b64: 2202 movs r2, #2
dsc->blend_mode);
8b66: f89b 3009 ldrb.w r3, [fp, #9]
_lv_blend_fill(clip, &fill_area,
8b6a: f003 0303 and.w r3, r3, #3
8b6e: 9302 str r3, [sp, #8]
8b70: f89b 3008 ldrb.w r3, [fp, #8]
8b74: a931 add r1, sp, #196 ; 0xc4
8b76: e9cd 2300 strd r2, r3, [sp]
8b7a: a80a add r0, sp, #40 ; 0x28
8b7c: 463b mov r3, r7
8b7e: f8bb 2000 ldrh.w r2, [fp]
8b82: 47d0 blx sl
fill_area.y1++;
8b84: f8bd 30c6 ldrh.w r3, [sp, #198] ; 0xc6
8b88: 3301 adds r3, #1
8b8a: f8ad 30c6 strh.w r3, [sp, #198] ; 0xc6
fill_area.y2++;
8b8e: f8bd 30ca ldrh.w r3, [sp, #202] ; 0xca
8b92: 3301 adds r3, #1
8b94: f8ad 30ca strh.w r3, [sp, #202] ; 0xca
for(h = draw_area.y1; h <= draw_area.y2; h++) {
8b98: f109 0901 add.w r9, r9, #1
8b9c: e7b2 b.n 8b04 <lv_draw_line+0x284>
else if(dash_cnt >= dsc->dash_gap + dsc->dash_width) {
8b9e: f9bb c006 ldrsh.w ip, [fp, #6]
8ba2: 4462 add r2, ip
8ba4: 4291 cmp r1, r2
mask_buf[i] = 0x00;
8ba6: bfba itte lt
8ba8: 54f8 strblt r0, [r7, r3]
8baa: 460a movlt r2, r1
dash_cnt = 0;
8bac: 2200 movge r2, #0
8bae: e7d3 b.n 8b58 <lv_draw_line+0x2d8>
8bb0: 0000e111 .word 0x0000e111
8bb4: 0000526d .word 0x0000526d
8bb8: 0000dc65 .word 0x0000dc65
8bbc: 00009a75 .word 0x00009a75
8bc0: 00006475 .word 0x00006475
8bc4: 00009e25 .word 0x00009e25
8bc8: 00009e71 .word 0x00009e71
8bcc: 0000f145 .word 0x0000f145
8bd0: 0000edf9 .word 0x0000edf9
8bd4: 0000f305 .word 0x0000f305
8bd8: 000099e5 .word 0x000099e5
else if(point1->x == point2->x) draw_line_ver(point1, point2, &clip_line, dsc);
8bdc: 9b05 ldr r3, [sp, #20]
8bde: f9b3 7000 ldrsh.w r7, [r3]
8be2: 9b06 ldr r3, [sp, #24]
8be4: f9b3 6000 ldrsh.w r6, [r3]
8be8: 42b7 cmp r7, r6
8bea: f040 80db bne.w 8da4 <lv_draw_line+0x524>
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
8bee: 4b66 ldr r3, [pc, #408] ; (8d88 <lv_draw_line+0x508>)
lv_opa_t opa = dsc->opa;
8bf0: f89b 6008 ldrb.w r6, [fp, #8]
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
8bf4: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
8bf6: 4b65 ldr r3, [pc, #404] ; (8d8c <lv_draw_line+0x50c>)
8bf8: 4798 blx r3
int32_t w = dsc->width - 1;
8bfa: f9bb 3002 ldrsh.w r3, [fp, #2]
bool dashed = dsc->dash_gap && dsc->dash_width ? true : false;
8bfe: f9bb 5006 ldrsh.w r5, [fp, #6]
int32_t w = dsc->width - 1;
8c02: 3b01 subs r3, #1
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
8c04: f003 0801 and.w r8, r3, #1
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
8c08: 4607 mov r7, r0
int32_t w_half0 = w >> 1;
8c0a: ea4f 0963 mov.w r9, r3, asr #1
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
8c0e: eb08 0863 add.w r8, r8, r3, asr #1
bool dashed = dsc->dash_gap && dsc->dash_width ? true : false;
8c12: b125 cbz r5, 8c1e <lv_draw_line+0x39e>
8c14: f9bb 5004 ldrsh.w r5, [fp, #4]
8c18: 3d00 subs r5, #0
8c1a: bf18 it ne
8c1c: 2501 movne r5, #1
if(lv_draw_mask_get_cnt()) simple_mode = false;
8c1e: 4b5c ldr r3, [pc, #368] ; (8d90 <lv_draw_line+0x510>)
8c20: 4798 blx r3
8c22: bb20 cbnz r0, 8c6e <lv_draw_line+0x3ee>
else if(dashed) simple_mode = false;
8c24: f085 0201 eor.w r2, r5, #1
draw_area.x1 = point1->x - w_half1;
8c28: 9b05 ldr r3, [sp, #20]
draw_area.y1 = LV_MATH_MIN(point1->y, point2->y);
8c2a: 9905 ldr r1, [sp, #20]
draw_area.x1 = point1->x - w_half1;
8c2c: 881b ldrh r3, [r3, #0]
draw_area.y1 = LV_MATH_MIN(point1->y, point2->y);
8c2e: f9b1 1002 ldrsh.w r1, [r1, #2]
draw_area.x1 = point1->x - w_half1;
8c32: eba3 0808 sub.w r8, r3, r8
draw_area.x2 = point1->x + w_half0;
8c36: 444b add r3, r9
8c38: f8ad 309c strh.w r3, [sp, #156] ; 0x9c
draw_area.y1 = LV_MATH_MIN(point1->y, point2->y);
8c3c: 9b06 ldr r3, [sp, #24]
draw_area.x1 = point1->x - w_half1;
8c3e: f8ad 8098 strh.w r8, [sp, #152] ; 0x98
draw_area.y1 = LV_MATH_MIN(point1->y, point2->y);
8c42: f9b3 3002 ldrsh.w r3, [r3, #2]
8c46: 428b cmp r3, r1
8c48: 4618 mov r0, r3
8c4a: bfa8 it ge
8c4c: 4608 movge r0, r1
draw_area.y2 = LV_MATH_MAX(point1->y, point2->y) - 1;
8c4e: 428b cmp r3, r1
8c50: bfb8 it lt
8c52: 460b movlt r3, r1
8c54: 3b01 subs r3, #1
draw_area.y1 = LV_MATH_MIN(point1->y, point2->y);
8c56: f8ad 009a strh.w r0, [sp, #154] ; 0x9a
draw_area.y2 = LV_MATH_MAX(point1->y, point2->y) - 1;
8c5a: f8ad 309e strh.w r3, [sp, #158] ; 0x9e
if(simple_mode) {
8c5e: b142 cbz r2, 8c72 <lv_draw_line+0x3f2>
dsc->blend_mode);
8c60: f89b 3009 ldrb.w r3, [fp, #9]
_lv_blend_fill(clip, &draw_area,
8c64: f003 0303 and.w r3, r3, #3
8c68: e9cd 6301 strd r6, r3, [sp, #4]
8c6c: e69d b.n 89aa <lv_draw_line+0x12a>
if(lv_draw_mask_get_cnt()) simple_mode = false;
8c6e: 2200 movs r2, #0
8c70: e7da b.n 8c28 <lv_draw_line+0x3a8>
is_common = _lv_area_intersect(&draw_area, clip, &draw_area);
8c72: aa26 add r2, sp, #152 ; 0x98
8c74: a90a add r1, sp, #40 ; 0x28
8c76: 4610 mov r0, r2
8c78: 47a0 blx r4
if(!is_common) return;
8c7a: 2800 cmp r0, #0
8c7c: f43f ae9e beq.w 89bc <lv_draw_line+0x13c>
draw_area.x1 -= vdb->area.x1;
8c80: 8a3b ldrh r3, [r7, #16]
8c82: f8bd 4098 ldrh.w r4, [sp, #152] ; 0x98
draw_area.y1 -= vdb->area.y1;
8c86: f8b7 c012 ldrh.w ip, [r7, #18]
draw_area.x1 -= vdb->area.x1;
8c8a: f9bd 0098 ldrsh.w r0, [sp, #152] ; 0x98
draw_area.x2 -= vdb->area.x1;
8c8e: f8bd 609c ldrh.w r6, [sp, #156] ; 0x9c
fill_area.x1 = draw_area.x1 + disp_area->x1;
8c92: f8ad 00c4 strh.w r0, [sp, #196] ; 0xc4
draw_area.x1 -= vdb->area.x1;
8c96: 1ae2 subs r2, r4, r3
8c98: f8ad 2098 strh.w r2, [sp, #152] ; 0x98
draw_area.y1 -= vdb->area.y1;
8c9c: f9bd 209a ldrsh.w r2, [sp, #154] ; 0x9a
fill_area.y1 = draw_area.y1 + disp_area->y1;
8ca0: f8ad 20c6 strh.w r2, [sp, #198] ; 0xc6
draw_area.y1 -= vdb->area.y1;
8ca4: eba2 010c sub.w r1, r2, ip
draw_area.x2 -= vdb->area.x1;
8ca8: 1af3 subs r3, r6, r3
draw_area.y1 -= vdb->area.y1;
8caa: f8ad 109a strh.w r1, [sp, #154] ; 0x9a
draw_area.x2 -= vdb->area.x1;
8cae: f9bd 109c ldrsh.w r1, [sp, #156] ; 0x9c
8cb2: f8ad 309c strh.w r3, [sp, #156] ; 0x9c
draw_area.y2 -= vdb->area.y1;
8cb6: f8bd 309e ldrh.w r3, [sp, #158] ; 0x9e
fill_area.x2 = draw_area.x2 + disp_area->x1;
8cba: f8ad 10c8 strh.w r1, [sp, #200] ; 0xc8
8cbe: 3601 adds r6, #1
draw_area.y2 -= vdb->area.y1;
8cc0: eba3 030c sub.w r3, r3, ip
8cc4: 1b36 subs r6, r6, r4
8cc6: f8ad 309e strh.w r3, [sp, #158] ; 0x9e
8cca: b233 sxth r3, r6
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
8ccc: 4618 mov r0, r3
8cce: ee08 3a10 vmov s16, r3
fill_area.y2 = fill_area.y1;
8cd2: f8ad 20ca strh.w r2, [sp, #202] ; 0xca
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
8cd6: 4b2f ldr r3, [pc, #188] ; (8d94 <lv_draw_line+0x514>)
8cd8: 4798 blx r3
8cda: 4680 mov r8, r0
if(dashed) {
8cdc: b1c5 cbz r5, 8d10 <lv_draw_line+0x490>
dash_start = (vdb->area.x1 + draw_area.x1) % (dsc->dash_gap + dsc->dash_width);
8cde: f9bd 3098 ldrsh.w r3, [sp, #152] ; 0x98
8ce2: f9b7 4010 ldrsh.w r4, [r7, #16]
8ce6: f9bb 2004 ldrsh.w r2, [fp, #4]
8cea: 441c add r4, r3
8cec: f9bb 3006 ldrsh.w r3, [fp, #6]
8cf0: 4413 add r3, r2
8cf2: fb94 f2f3 sdiv r2, r4, r3
8cf6: fb03 4412 mls r4, r3, r2, r4
8cfa: b224 sxth r4, r4
for(h = draw_area.y1; h <= draw_area.y2; h++) {
8cfc: f9bd 909a ldrsh.w r9, [sp, #154] ; 0x9a
_lv_blend_fill(clip, &fill_area,
8d00: f8df a09c ldr.w sl, [pc, #156] ; 8da0 <lv_draw_line+0x520>
for(h = draw_area.y1; h <= draw_area.y2; h++) {
8d04: f9bd 309e ldrsh.w r3, [sp, #158] ; 0x9e
8d08: 4599 cmp r9, r3
8d0a: dd03 ble.n 8d14 <lv_draw_line+0x494>
_lv_mem_buf_release(mask_buf);
8d0c: 4640 mov r0, r8
8d0e: e6fe b.n 8b0e <lv_draw_line+0x28e>
lv_style_int_t dash_start = 0;
8d10: 462c mov r4, r5
8d12: e7f3 b.n 8cfc <lv_draw_line+0x47c>
_lv_memset_ff(mask_buf, draw_area_w);
8d14: ee18 1a10 vmov r1, s16
8d18: 4b1f ldr r3, [pc, #124] ; (8d98 <lv_draw_line+0x518>)
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
8d1a: 4e20 ldr r6, [pc, #128] ; (8d9c <lv_draw_line+0x51c>)
_lv_memset_ff(mask_buf, draw_area_w);
8d1c: 4640 mov r0, r8
8d1e: 4798 blx r3
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
8d20: f8bd 3098 ldrh.w r3, [sp, #152] ; 0x98
8d24: 8a7a ldrh r2, [r7, #18]
8d26: 8a39 ldrh r1, [r7, #16]
8d28: 444a add r2, r9
8d2a: 4419 add r1, r3
8d2c: b212 sxth r2, r2
8d2e: ee18 3a10 vmov r3, s16
8d32: b209 sxth r1, r1
8d34: 4640 mov r0, r8
8d36: 47b0 blx r6
if(dashed) {
8d38: b16d cbz r5, 8d56 <lv_draw_line+0x4d6>
if(mask_res != LV_DRAW_MASK_RES_TRANSP) {
8d3a: b150 cbz r0, 8d52 <lv_draw_line+0x4d2>
if(dash_cnt > dsc->dash_width) {
8d3c: f9bb 2004 ldrsh.w r2, [fp, #4]
if(dash_cnt >= dsc->dash_gap + dsc->dash_width) {
8d40: f9bb 3006 ldrsh.w r3, [fp, #6]
8d44: 4413 add r3, r2
mask_res = LV_DRAW_MASK_RES_TRANSP;
8d46: 42a2 cmp r2, r4
8d48: bfb8 it lt
8d4a: 2000 movlt r0, #0
dash_cnt = 0;
8d4c: 429c cmp r4, r3
8d4e: bfa8 it ge
8d50: 2400 movge r4, #0
dash_cnt ++;
8d52: 3401 adds r4, #1
8d54: b224 sxth r4, r4
_lv_blend_fill(clip, &fill_area,
8d56: 2300 movs r3, #0
8d58: 9302 str r3, [sp, #8]
8d5a: f89b 3008 ldrb.w r3, [fp, #8]
8d5e: f8bb 2000 ldrh.w r2, [fp]
8d62: e9cd 0300 strd r0, r3, [sp]
8d66: a931 add r1, sp, #196 ; 0xc4
8d68: 4643 mov r3, r8
8d6a: a80a add r0, sp, #40 ; 0x28
8d6c: 47d0 blx sl
fill_area.y1++;
8d6e: f8bd 30c6 ldrh.w r3, [sp, #198] ; 0xc6
8d72: 3301 adds r3, #1
8d74: f8ad 30c6 strh.w r3, [sp, #198] ; 0xc6
fill_area.y2++;
8d78: f8bd 30ca ldrh.w r3, [sp, #202] ; 0xca
8d7c: 3301 adds r3, #1
8d7e: f8ad 30ca strh.w r3, [sp, #202] ; 0xca
for(h = draw_area.y1; h <= draw_area.y2; h++) {
8d82: f109 0901 add.w r9, r9, #1
8d86: e7bd b.n 8d04 <lv_draw_line+0x484>
8d88: 0000526d .word 0x0000526d
8d8c: 0000dc65 .word 0x0000dc65
8d90: 00009a75 .word 0x00009a75
8d94: 0000f145 .word 0x0000f145
8d98: 0000f305 .word 0x0000f305
8d9c: 000099e5 .word 0x000099e5
8da0: 00006475 .word 0x00006475
lv_draw_line_dsc_t * dsc)
{
/*Keep the great y in p1*/
lv_point_t p1;
lv_point_t p2;
if(point1->y < point2->y) {
8da4: 45c1 cmp r9, r8
8da6: db05 blt.n 8db4 <lv_draw_line+0x534>
8da8: 464b mov r3, r9
8daa: 46c1 mov r9, r8
8dac: 4698 mov r8, r3
8dae: 463b mov r3, r7
8db0: 4637 mov r7, r6
8db2: 461e mov r6, r3
p2.y = point1->y;
p1.x = point2->x;
p2.x = point1->x;
}
int32_t xdiff = p2.x - p1.x;
8db4: 1bf3 subs r3, r6, r7
8db6: 9309 str r3, [sp, #36] ; 0x24
int32_t ydiff = p2.y - p1.y;
8db8: eba8 0309 sub.w r3, r8, r9
8dbc: 9308 str r3, [sp, #32]
bool flat = LV_MATH_ABS(xdiff) > LV_MATH_ABS(ydiff) ? true : false;
8dbe: 1bf3 subs r3, r6, r7
8dc0: ea83 72e3 eor.w r2, r3, r3, asr #31
8dc4: eba2 72e3 sub.w r2, r2, r3, asr #31
8dc8: 9b08 ldr r3, [sp, #32]
8dca: 9207 str r2, [sp, #28]
8dcc: ea83 7ae3 eor.w sl, r3, r3, asr #31
8dd0: ebaa 7ae3 sub.w sl, sl, r3, asr #31
181,
};
int32_t w = dsc->width;
int32_t wcorr_i = 0;
if(flat) wcorr_i = (LV_MATH_ABS(ydiff) << 5) / LV_MATH_ABS(xdiff);
8dd4: 4552 cmp r2, sl
8dd6: 4613 mov r3, r2
else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff);
8dd8: bfd8 it le
8dda: 9b07 ldrle r3, [sp, #28]
int32_t w = dsc->width;
8ddc: f9bb 5002 ldrsh.w r5, [fp, #2]
if(flat) wcorr_i = (LV_MATH_ABS(ydiff) << 5) / LV_MATH_ABS(xdiff);
8de0: bfca itet gt
8de2: ea4f 134a movgt.w r3, sl, lsl #5
else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff);
8de6: 015b lslle r3, r3, #5
if(flat) wcorr_i = (LV_MATH_ABS(ydiff) << 5) / LV_MATH_ABS(xdiff);
8de8: fbb3 f3f2 udivgt r3, r3, r2
w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/
8dec: 4ab3 ldr r2, [pc, #716] ; (90bc <lv_draw_line+0x83c>)
else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff);
8dee: bfd8 it le
8df0: fbb3 f3fa udivle r3, r3, sl
w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/
8df4: 5cd2 ldrb r2, [r2, r3]
8df6: 233f movs r3, #63 ; 0x3f
8df8: fb15 3502 smlabb r5, r5, r2, r3
int32_t w_half0 = w >> 1;
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
lv_area_t draw_area;
draw_area.x1 = LV_MATH_MIN(p1.x, p2.x) - w;
8dfc: f3c5 13cf ubfx r3, r5, #7, #16
8e00: 42be cmp r6, r7
8e02: bfd4 ite le
8e04: ebc3 0206 rsble r2, r3, r6
8e08: ebc3 0207 rsbgt r2, r3, r7
8e0c: f8ad 2030 strh.w r2, [sp, #48] ; 0x30
draw_area.x2 = LV_MATH_MAX(p1.x, p2.x) + w;
8e10: 42be cmp r6, r7
8e12: bfac ite ge
8e14: 199a addge r2, r3, r6
8e16: 19da addlt r2, r3, r7
8e18: f8ad 2034 strh.w r2, [sp, #52] ; 0x34
draw_area.y2 = LV_MATH_MAX(p1.y, p2.y) + w;
/* Get the union of `coords` and `clip`*/
/* `clip` is already truncated to the `vdb` size
* in 'lv_refr_area' function */
bool is_common = _lv_area_intersect(&draw_area, &draw_area, clip);
8e1c: a90c add r1, sp, #48 ; 0x30
draw_area.y1 = LV_MATH_MIN(p1.y, p2.y) - w;
8e1e: 45c8 cmp r8, r9
8e20: bfd4 ite le
8e22: ebc3 0208 rsble r2, r3, r8
8e26: ebc3 0209 rsbgt r2, r3, r9
draw_area.y2 = LV_MATH_MAX(p1.y, p2.y) + w;
8e2a: 45c8 cmp r8, r9
8e2c: bfac ite ge
8e2e: 4443 addge r3, r8
8e30: 444b addlt r3, r9
draw_area.y1 = LV_MATH_MIN(p1.y, p2.y) - w;
8e32: f8ad 2032 strh.w r2, [sp, #50] ; 0x32
draw_area.y2 = LV_MATH_MAX(p1.y, p2.y) + w;
8e36: f8ad 3036 strh.w r3, [sp, #54] ; 0x36
bool is_common = _lv_area_intersect(&draw_area, &draw_area, clip);
8e3a: aa0a add r2, sp, #40 ; 0x28
8e3c: 4ba0 ldr r3, [pc, #640] ; (90c0 <lv_draw_line+0x840>)
8e3e: 4608 mov r0, r1
w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/
8e40: 11ec asrs r4, r5, #7
bool is_common = _lv_area_intersect(&draw_area, &draw_area, clip);
8e42: 4798 blx r3
if(is_common == false) return;
8e44: 2800 cmp r0, #0
8e46: f43f adb9 beq.w 89bc <lv_draw_line+0x13c>
lv_draw_mask_line_param_t mask_left_param;
lv_draw_mask_line_param_t mask_right_param;
lv_draw_mask_line_param_t mask_top_param;
lv_draw_mask_line_param_t mask_bottom_param;
if(flat) {
8e4a: 9b07 ldr r3, [sp, #28]
int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/
8e4c: f004 0401 and.w r4, r4, #1
8e50: eb04 2425 add.w r4, r4, r5, asr #8
if(flat) {
8e54: 4553 cmp r3, sl
if(xdiff > 0) {
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
LV_DRAW_MASK_LINE_SIDE_LEFT);
lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1,
8e56: b2a4 uxth r4, r4
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
8e58: f3c5 250f ubfx r5, r5, #8, #16
if(flat) {
8e5c: f340 80ed ble.w 903a <lv_draw_line+0x7ba>
lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1,
8e60: fa14 f389 uxtah r3, r4, r9
8e64: b21b sxth r3, r3
8e66: ee08 3a10 vmov s16, r3
if(xdiff > 0) {
8e6a: 1bf3 subs r3, r6, r7
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
8e6c: eba9 0a05 sub.w sl, r9, r5
lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1,
8e70: fa14 f488 uxtah r4, r4, r8
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
8e74: eba8 0505 sub.w r5, r8, r5
if(xdiff > 0) {
8e78: 2b00 cmp r3, #0
8e7a: f04f 0300 mov.w r3, #0
lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1,
8e7e: b224 sxth r4, r4
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
8e80: fa0f fa8a sxth.w sl, sl
8e84: b22d sxth r5, r5
8e86: 9301 str r3, [sp, #4]
if(xdiff > 0) {
8e88: f340 80c6 ble.w 9018 <lv_draw_line+0x798>
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
8e8c: 9500 str r5, [sp, #0]
8e8e: 4633 mov r3, r6
8e90: 4652 mov r2, sl
8e92: 4639 mov r1, r7
8e94: a810 add r0, sp, #64 ; 0x40
8e96: 4d8b ldr r5, [pc, #556] ; (90c4 <lv_draw_line+0x844>)
8e98: 47a8 blx r5
lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1,
8e9a: 2301 movs r3, #1
8e9c: e9cd 4300 strd r4, r3, [sp]
8ea0: ee18 2a10 vmov r2, s16
8ea4: 4633 mov r3, r6
8ea6: 4639 mov r1, r7
8ea8: a81b add r0, sp, #108 ; 0x6c
8eaa: 47a8 blx r5
LV_DRAW_MASK_LINE_SIDE_RIGHT);
}
/*Use the normal vector for the endings*/
int16_t mask_left_id = lv_draw_mask_add(&mask_left_param, NULL);
8eac: f8df a240 ldr.w sl, [pc, #576] ; 90f0 <lv_draw_line+0x870>
8eb0: 2100 movs r1, #0
8eb2: a810 add r0, sp, #64 ; 0x40
8eb4: 47d0 blx sl
int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL);
8eb6: 2100 movs r1, #0
int16_t mask_left_id = lv_draw_mask_add(&mask_left_param, NULL);
8eb8: ee09 0a10 vmov s18, r0
int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL);
8ebc: a81b add r0, sp, #108 ; 0x6c
8ebe: 47d0 blx sl
int16_t mask_top_id = LV_MASK_ID_INV;
int16_t mask_bottom_id = LV_MASK_ID_INV;
if(!dsc->raw_end) {
8ec0: f89b 5009 ldrb.w r5, [fp, #9]
8ec4: f015 0510 ands.w r5, r5, #16
int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL);
8ec8: ee09 0a90 vmov s19, r0
if(!dsc->raw_end) {
8ecc: f040 80cf bne.w 906e <lv_draw_line+0x7ee>
lv_draw_mask_line_points_init(&mask_top_param, p1.x, p1.y, p1.x - ydiff, p1.y + xdiff, LV_DRAW_MASK_LINE_SIDE_BOTTOM);
8ed0: 2203 movs r2, #3
8ed2: f8bd 4020 ldrh.w r4, [sp, #32]
8ed6: 9201 str r2, [sp, #4]
8ed8: 1bf2 subs r2, r6, r7
8eda: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24
8ede: 9307 str r3, [sp, #28]
8ee0: fa19 f282 uxtah r2, r9, r2
8ee4: 1b3b subs r3, r7, r4
8ee6: b212 sxth r2, r2
8ee8: 4639 mov r1, r7
8eea: 9200 str r2, [sp, #0]
8eec: 4f75 ldr r7, [pc, #468] ; (90c4 <lv_draw_line+0x844>)
8eee: b21b sxth r3, r3
8ef0: 464a mov r2, r9
8ef2: a826 add r0, sp, #152 ; 0x98
8ef4: 47b8 blx r7
lv_draw_mask_line_points_init(&mask_bottom_param, p2.x, p2.y, p2.x - ydiff, p2.y + xdiff, LV_DRAW_MASK_LINE_SIDE_TOP);
8ef6: 2202 movs r2, #2
8ef8: 9201 str r2, [sp, #4]
8efa: 9a07 ldr r2, [sp, #28]
8efc: 4442 add r2, r8
8efe: b212 sxth r2, r2
8f00: 1b33 subs r3, r6, r4
8f02: b21b sxth r3, r3
8f04: 9200 str r2, [sp, #0]
8f06: 4631 mov r1, r6
8f08: 4642 mov r2, r8
8f0a: a831 add r0, sp, #196 ; 0xc4
8f0c: 47b8 blx r7
mask_top_id = lv_draw_mask_add(&mask_top_param, NULL);
8f0e: 4629 mov r1, r5
8f10: a826 add r0, sp, #152 ; 0x98
8f12: 47d0 blx sl
mask_bottom_id = lv_draw_mask_add(&mask_bottom_param, NULL);
8f14: 4629 mov r1, r5
mask_top_id = lv_draw_mask_add(&mask_top_param, NULL);
8f16: 9009 str r0, [sp, #36] ; 0x24
mask_bottom_id = lv_draw_mask_add(&mask_bottom_param, NULL);
8f18: a831 add r0, sp, #196 ; 0xc4
8f1a: 47d0 blx sl
8f1c: 4682 mov sl, r0
}
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
8f1e: 4b6a ldr r3, [pc, #424] ; (90c8 <lv_draw_line+0x848>)
* So deal with it only with steep lines. */
int32_t draw_area_w = lv_area_get_width(&draw_area);
/*Draw the background line by line*/
int32_t h;
size_t mask_buf_size = LV_MATH_MIN(lv_area_get_size(&draw_area), LV_HOR_RES_MAX);
8f20: 4e6a ldr r6, [pc, #424] ; (90cc <lv_draw_line+0x84c>)
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
8f22: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
8f24: 4b6a ldr r3, [pc, #424] ; (90d0 <lv_draw_line+0x850>)
8f26: 4798 blx r3
draw_area.x1 -= disp_area->x1;
8f28: f8bd 2030 ldrh.w r2, [sp, #48] ; 0x30
8f2c: 8a03 ldrh r3, [r0, #16]
draw_area.x2 -= disp_area->x1;
8f2e: f8bd 4034 ldrh.w r4, [sp, #52] ; 0x34
draw_area.x1 -= disp_area->x1;
8f32: 1ad1 subs r1, r2, r3
draw_area.x2 -= disp_area->x1;
8f34: 1ae3 subs r3, r4, r3
draw_area.x1 -= disp_area->x1;
8f36: f8ad 1030 strh.w r1, [sp, #48] ; 0x30
draw_area.x2 -= disp_area->x1;
8f3a: f8ad 3034 strh.w r3, [sp, #52] ; 0x34
draw_area.y1 -= disp_area->y1;
8f3e: 8a41 ldrh r1, [r0, #18]
draw_area.y2 -= disp_area->y1;
8f40: f8bd 3036 ldrh.w r3, [sp, #54] ; 0x36
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
8f44: 4605 mov r5, r0
draw_area.y1 -= disp_area->y1;
8f46: f8bd 0032 ldrh.w r0, [sp, #50] ; 0x32
8f4a: 3401 adds r4, #1
8f4c: 1a40 subs r0, r0, r1
draw_area.y2 -= disp_area->y1;
8f4e: 1a5b subs r3, r3, r1
8f50: 1aa4 subs r4, r4, r2
draw_area.y1 -= disp_area->y1;
8f52: f8ad 0032 strh.w r0, [sp, #50] ; 0x32
draw_area.y2 -= disp_area->y1;
8f56: f8ad 3036 strh.w r3, [sp, #54] ; 0x36
size_t mask_buf_size = LV_MATH_MIN(lv_area_get_size(&draw_area), LV_HOR_RES_MAX);
8f5a: a80c add r0, sp, #48 ; 0x30
8f5c: b223 sxth r3, r4
8f5e: 9307 str r3, [sp, #28]
8f60: 47b0 blx r6
8f62: f5b0 7ff0 cmp.w r0, #480 ; 0x1e0
8f66: f080 8087 bcs.w 9078 <lv_draw_line+0x7f8>
8f6a: a80c add r0, sp, #48 ; 0x30
8f6c: 47b0 blx r6
8f6e: 4607 mov r7, r0
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
8f70: 4b58 ldr r3, [pc, #352] ; (90d4 <lv_draw_line+0x854>)
8f72: 4638 mov r0, r7
8f74: 4798 blx r3
lv_area_t fill_area;
fill_area.x1 = draw_area.x1 + disp_area->x1;
8f76: 8a2b ldrh r3, [r5, #16]
8f78: f8bd 2030 ldrh.w r2, [sp, #48] ; 0x30
8f7c: 441a add r2, r3
8f7e: b212 sxth r2, r2
8f80: 9208 str r2, [sp, #32]
8f82: f8ad 2038 strh.w r2, [sp, #56] ; 0x38
fill_area.x2 = draw_area.x2 + disp_area->x1;
8f86: f8bd 2034 ldrh.w r2, [sp, #52] ; 0x34
8f8a: 4413 add r3, r2
8f8c: f8ad 303c strh.w r3, [sp, #60] ; 0x3c
fill_area.y1 = draw_area.y1 + disp_area->y1;
8f90: 8a6a ldrh r2, [r5, #18]
8f92: f8bd 3032 ldrh.w r3, [sp, #50] ; 0x32
8f96: 4413 add r3, r2
8f98: b21b sxth r3, r3
8f9a: f8ad 303a strh.w r3, [sp, #58] ; 0x3a
fill_area.y2 = fill_area.y1;
8f9e: f8ad 303e strh.w r3, [sp, #62] ; 0x3e
int32_t x = vdb->area.x1 + draw_area.x1;
uint32_t mask_p = 0;
_lv_memset_ff(mask_buf, mask_buf_size);
8fa2: 4639 mov r1, r7
8fa4: 4b4c ldr r3, [pc, #304] ; (90d8 <lv_draw_line+0x858>)
lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size);
8fa6: 4606 mov r6, r0
_lv_memset_ff(mask_buf, mask_buf_size);
8fa8: 4798 blx r3
/*Fill the first row with 'color'*/
for(h = draw_area.y1 + disp_area->y1; h <= draw_area.y2 + disp_area->y1; h++) {
8faa: f9bd 8032 ldrsh.w r8, [sp, #50] ; 0x32
8fae: f9b5 3012 ldrsh.w r3, [r5, #18]
uint32_t mask_p = 0;
8fb2: f04f 0900 mov.w r9, #0
for(h = draw_area.y1 + disp_area->y1; h <= draw_area.y2 + disp_area->y1; h++) {
8fb6: 4498 add r8, r3
8fb8: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36
8fbc: f9b5 2012 ldrsh.w r2, [r5, #18]
8fc0: 4413 add r3, r2
8fc2: 4598 cmp r8, r3
8fc4: dd5b ble.n 907e <lv_draw_line+0x7fe>
_lv_memset_ff(mask_buf, mask_buf_size);
}
}
/*Flush the last part*/
if(fill_area.y1 != fill_area.y2) {
8fc6: f9bd 303e ldrsh.w r3, [sp, #62] ; 0x3e
8fca: f9bd 203a ldrsh.w r2, [sp, #58] ; 0x3a
8fce: 429a cmp r2, r3
8fd0: d013 beq.n 8ffa <lv_draw_line+0x77a>
fill_area.y2--;
8fd2: 3b01 subs r3, #1
8fd4: f8ad 303e strh.w r3, [sp, #62] ; 0x3e
_lv_blend_fill(&fill_area, clip,
dsc->color, mask_buf, LV_DRAW_MASK_RES_CHANGED, dsc->opa,
dsc->blend_mode);
8fd8: f89b 3009 ldrb.w r3, [fp, #9]
_lv_blend_fill(&fill_area, clip,
8fdc: f8bb 2000 ldrh.w r2, [fp]
8fe0: 4c3e ldr r4, [pc, #248] ; (90dc <lv_draw_line+0x85c>)
8fe2: f003 0303 and.w r3, r3, #3
8fe6: 9302 str r3, [sp, #8]
8fe8: f89b 3008 ldrb.w r3, [fp, #8]
8fec: 9301 str r3, [sp, #4]
8fee: 2302 movs r3, #2
8ff0: 9300 str r3, [sp, #0]
8ff2: a90a add r1, sp, #40 ; 0x28
8ff4: 4633 mov r3, r6
8ff6: a80e add r0, sp, #56 ; 0x38
8ff8: 47a0 blx r4
}
_lv_mem_buf_release(mask_buf);
8ffa: 4b39 ldr r3, [pc, #228] ; (90e0 <lv_draw_line+0x860>)
lv_draw_mask_remove_id(mask_left_id);
8ffc: 4c39 ldr r4, [pc, #228] ; (90e4 <lv_draw_line+0x864>)
_lv_mem_buf_release(mask_buf);
8ffe: 4630 mov r0, r6
9000: 4798 blx r3
lv_draw_mask_remove_id(mask_left_id);
9002: ee19 0a10 vmov r0, s18
9006: 47a0 blx r4
lv_draw_mask_remove_id(mask_right_id);
9008: ee19 0a90 vmov r0, s19
900c: 47a0 blx r4
lv_draw_mask_remove_id(mask_top_id);
900e: 9809 ldr r0, [sp, #36] ; 0x24
9010: 47a0 blx r4
lv_draw_mask_remove_id(mask_bottom_id);
9012: 4650 mov r0, sl
9014: 47a0 blx r4
9016: e4d1 b.n 89bc <lv_draw_line+0x13c>
lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1,
9018: ee18 2a10 vmov r2, s16
901c: 9400 str r4, [sp, #0]
901e: 4633 mov r3, r6
9020: 4639 mov r1, r7
9022: 4c28 ldr r4, [pc, #160] ; (90c4 <lv_draw_line+0x844>)
9024: a810 add r0, sp, #64 ; 0x40
9026: 47a0 blx r4
lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0,
9028: 2301 movs r3, #1
902a: e9cd 5300 strd r5, r3, [sp]
902e: 4652 mov r2, sl
9030: 4633 mov r3, r6
9032: 4639 mov r1, r7
lv_draw_mask_line_points_init(&mask_right_param, p1.x - w_half0, p1.y, p2.x - w_half0, p2.y,
9034: a81b add r0, sp, #108 ; 0x6c
9036: 47a0 blx r4
9038: e738 b.n 8eac <lv_draw_line+0x62c>
lv_draw_mask_line_points_init(&mask_left_param, p1.x + w_half1, p1.y, p2.x + w_half1, p2.y,
903a: fa14 f386 uxtah r3, r4, r6
903e: 2200 movs r2, #0
9040: fa14 f487 uxtah r4, r4, r7
9044: b221 sxth r1, r4
9046: e9cd 8200 strd r8, r2, [sp]
904a: b21b sxth r3, r3
904c: 464a mov r2, r9
904e: 4c1d ldr r4, [pc, #116] ; (90c4 <lv_draw_line+0x844>)
9050: a810 add r0, sp, #64 ; 0x40
9052: 47a0 blx r4
9054: fa1f fa86 uxth.w sl, r6
lv_draw_mask_line_points_init(&mask_right_param, p1.x - w_half0, p1.y, p2.x - w_half0, p2.y,
9058: b2ba uxth r2, r7
905a: 1b51 subs r1, r2, r5
905c: ebaa 0305 sub.w r3, sl, r5
9060: 2201 movs r2, #1
9062: e9cd 8200 strd r8, r2, [sp]
9066: b21b sxth r3, r3
9068: 464a mov r2, r9
906a: b209 sxth r1, r1
906c: e7e2 b.n 9034 <lv_draw_line+0x7b4>
int16_t mask_bottom_id = LV_MASK_ID_INV;
906e: f04f 3aff mov.w sl, #4294967295 ; 0xffffffff
int16_t mask_top_id = LV_MASK_ID_INV;
9072: f8cd a024 str.w sl, [sp, #36] ; 0x24
9076: e752 b.n 8f1e <lv_draw_line+0x69e>
size_t mask_buf_size = LV_MATH_MIN(lv_area_get_size(&draw_area), LV_HOR_RES_MAX);
9078: f44f 77f0 mov.w r7, #480 ; 0x1e0
907c: e778 b.n 8f70 <lv_draw_line+0x6f0>
lv_draw_mask_res_t mask_res = lv_draw_mask_apply(&mask_buf[mask_p], x, h, draw_area_w);
907e: eb06 0309 add.w r3, r6, r9
9082: ee08 3a10 vmov s16, r3
9086: 9908 ldr r1, [sp, #32]
9088: 9b07 ldr r3, [sp, #28]
908a: 4c17 ldr r4, [pc, #92] ; (90e8 <lv_draw_line+0x868>)
908c: ee18 0a10 vmov r0, s16
9090: fa0f f288 sxth.w r2, r8
9094: 47a0 blx r4
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
9096: b920 cbnz r0, 90a2 <lv_draw_line+0x822>
_lv_memset_00(&mask_buf[mask_p], draw_area_w);
9098: 9907 ldr r1, [sp, #28]
909a: 4b14 ldr r3, [pc, #80] ; (90ec <lv_draw_line+0x86c>)
909c: ee18 0a10 vmov r0, s16
90a0: 4798 blx r3
mask_p += draw_area_w;
90a2: 9b07 ldr r3, [sp, #28]
90a4: 4499 add r9, r3
if((uint32_t) mask_p + draw_area_w < mask_buf_size) {
90a6: 444b add r3, r9
90a8: 429f cmp r7, r3
90aa: d923 bls.n 90f4 <lv_draw_line+0x874>
fill_area.y2 ++;
90ac: f8bd 303e ldrh.w r3, [sp, #62] ; 0x3e
90b0: 3301 adds r3, #1
90b2: f8ad 303e strh.w r3, [sp, #62] ; 0x3e
for(h = draw_area.y1 + disp_area->y1; h <= draw_area.y2 + disp_area->y1; h++) {
90b6: f108 0801 add.w r8, r8, #1
90ba: e77d b.n 8fb8 <lv_draw_line+0x738>
90bc: 00027766 .word 0x00027766
90c0: 0000e111 .word 0x0000e111
90c4: 00009a91 .word 0x00009a91
90c8: 0000526d .word 0x0000526d
90cc: 0000e0f5 .word 0x0000e0f5
90d0: 0000dc65 .word 0x0000dc65
90d4: 0000f145 .word 0x0000f145
90d8: 0000f305 .word 0x0000f305
90dc: 00006475 .word 0x00006475
90e0: 0000edf9 .word 0x0000edf9
90e4: 00009a25 .word 0x00009a25
90e8: 000099e5 .word 0x000099e5
90ec: 0000f2a9 .word 0x0000f2a9
90f0: 00009995 .word 0x00009995
dsc->blend_mode);
90f4: f89b 3009 ldrb.w r3, [fp, #9]
_lv_blend_fill(&fill_area, clip,
90f8: f8bb 2000 ldrh.w r2, [fp]
90fc: 4c0d ldr r4, [pc, #52] ; (9134 <lv_draw_line+0x8b4>)
90fe: f003 0303 and.w r3, r3, #3
9102: 9302 str r3, [sp, #8]
9104: f89b 3008 ldrb.w r3, [fp, #8]
9108: 9301 str r3, [sp, #4]
910a: 2302 movs r3, #2
910c: 9300 str r3, [sp, #0]
910e: a90a add r1, sp, #40 ; 0x28
9110: 4633 mov r3, r6
9112: a80e add r0, sp, #56 ; 0x38
9114: 47a0 blx r4
fill_area.y1 = fill_area.y2 + 1;
9116: f8bd 303e ldrh.w r3, [sp, #62] ; 0x3e
911a: 3301 adds r3, #1
911c: b21b sxth r3, r3
911e: f8ad 303a strh.w r3, [sp, #58] ; 0x3a
fill_area.y2 = fill_area.y1;
9122: f8ad 303e strh.w r3, [sp, #62] ; 0x3e
_lv_memset_ff(mask_buf, mask_buf_size);
9126: 4639 mov r1, r7
9128: 4b03 ldr r3, [pc, #12] ; (9138 <lv_draw_line+0x8b8>)
912a: 4630 mov r0, r6
912c: 4798 blx r3
mask_p = 0;
912e: f04f 0900 mov.w r9, #0
9132: e7c0 b.n 90b6 <lv_draw_line+0x836>
9134: 00006475 .word 0x00006475
9138: 0000f305 .word 0x0000f305
0000913c <mask_mix>:
}
LV_ATTRIBUTE_FAST_MEM static inline lv_opa_t mask_mix(lv_opa_t mask_act, lv_opa_t mask_new)
{
if(mask_new >= LV_OPA_MAX) return mask_act;
913c: 29f9 cmp r1, #249 ; 0xf9
913e: d80a bhi.n 9156 <mask_mix+0x1a>
if(mask_new <= LV_OPA_MIN) return 0;
9140: 2905 cmp r1, #5
9142: d907 bls.n 9154 <mask_mix+0x18>
return LV_MATH_UDIV255(mask_act * mask_new);// >> 8);
9144: fb10 f001 smulbb r0, r0, r1
9148: f248 0381 movw r3, #32897 ; 0x8081
914c: 4358 muls r0, r3
914e: f3c0 50c7 ubfx r0, r0, #23, #8
9152: 4770 bx lr
if(mask_new <= LV_OPA_MIN) return 0;
9154: 2000 movs r0, #0
}
9156: 4770 bx lr
00009158 <lv_draw_mask_line>:
{
9158: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
915c: 9e08 ldr r6, [sp, #32]
915e: 461c mov r4, r3
abs_y -= p->origo.y;
9160: 8ab3 ldrh r3, [r6, #20]
9162: 1ad2 subs r2, r2, r3
abs_x -= p->origo.x;
9164: 8a73 ldrh r3, [r6, #18]
9166: 1ac9 subs r1, r1, r3
9168: b20f sxth r7, r1
if(p->flat) {
916a: f896 3028 ldrb.w r3, [r6, #40] ; 0x28
if(p->steep == 0) {
916e: 6a31 ldr r1, [r6, #32]
{
9170: 4605 mov r5, r0
abs_y -= p->origo.y;
9172: b212 sxth r2, r2
if(p->flat) {
9174: f003 0001 and.w r0, r3, #1
if(p->steep == 0) {
9178: bb99 cbnz r1, 91e2 <lv_draw_mask_line+0x8a>
if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT ||
917a: 7c33 ldrb r3, [r6, #16]
917c: f003 0602 and.w r6, r3, #2
if(p->flat) {
9180: b180 cbz r0, 91a4 <lv_draw_mask_line+0x4c>
if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT ||
9182: b13e cbz r6, 9194 <lv_draw_mask_line+0x3c>
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP && abs_y + 1 < 0) return LV_DRAW_MASK_RES_FULL_COVER;
9184: f003 0303 and.w r3, r3, #3
9188: 2b02 cmp r3, #2
918a: d105 bne.n 9198 <lv_draw_mask_line+0x40>
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
918c: 3201 adds r2, #1
918e: bfac ite ge
9190: 2000 movge r0, #0
9192: 2001 movlt r0, #1
}
9194: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM && abs_y > 0) return LV_DRAW_MASK_RES_FULL_COVER;
9198: 2b03 cmp r3, #3
919a: d101 bne.n 91a0 <lv_draw_mask_line+0x48>
919c: 2a00 cmp r2, #0
919e: dcf9 bgt.n 9194 <lv_draw_mask_line+0x3c>
return LV_DRAW_MASK_RES_TRANSP;
91a0: 2000 movs r0, #0
91a2: e7f7 b.n 9194 <lv_draw_mask_line+0x3c>
if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP ||
91a4: 2e00 cmp r6, #0
91a6: f040 8187 bne.w 94b8 <lv_draw_mask_line+0x360>
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT && abs_x > 0) return LV_DRAW_MASK_RES_FULL_COVER;
91aa: f003 0003 and.w r0, r3, #3
91ae: 2801 cmp r0, #1
91b0: d10a bne.n 91c8 <lv_draw_mask_line+0x70>
91b2: 2f00 cmp r7, #0
91b4: dcee bgt.n 9194 <lv_draw_mask_line+0x3c>
if(abs_x + len < 0) return LV_DRAW_MASK_RES_TRANSP;
91b6: 42e7 cmn r7, r4
91b8: d4f2 bmi.n 91a0 <lv_draw_mask_line+0x48>
if(k < 0) k = 0;
91ba: 2f00 cmp r7, #0
91bc: f300 817e bgt.w 94bc <lv_draw_mask_line+0x364>
int32_t k = - abs_x;
91c0: 4279 negs r1, r7
if(k >= len) return LV_DRAW_MASK_RES_TRANSP;
91c2: 428c cmp r4, r1
91c4: ddec ble.n 91a0 <lv_draw_mask_line+0x48>
91c6: e09b b.n 9300 <lv_draw_mask_line+0x1a8>
else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) {
91c8: 2800 cmp r0, #0
91ca: d1f4 bne.n 91b6 <lv_draw_mask_line+0x5e>
if(abs_x + len < 0) return LV_DRAW_MASK_RES_FULL_COVER;
91cc: 1939 adds r1, r7, r4
91ce: f100 8173 bmi.w 94b8 <lv_draw_mask_line+0x360>
if(k < 0) return LV_DRAW_MASK_RES_TRANSP;
91d2: 2f00 cmp r7, #0
91d4: dce4 bgt.n 91a0 <lv_draw_mask_line+0x48>
int32_t k = - abs_x;
91d6: 4278 negs r0, r7
if(k >= 0 && k < len) _lv_memset_00(&mask_buf[k], len - k);
91d8: 42a0 cmp r0, r4
91da: f2c0 809c blt.w 9316 <lv_draw_mask_line+0x1be>
return LV_DRAW_MASK_RES_CHANGED;
91de: 2002 movs r0, #2
91e0: e7d8 b.n 9194 <lv_draw_mask_line+0x3c>
if(p->flat) {
91e2: f003 0c02 and.w ip, r3, #2
91e6: 2800 cmp r0, #0
91e8: f000 8097 beq.w 931a <lv_draw_mask_line+0x1c2>
y_at_x = (int32_t)((int32_t)p->yx_steep * abs_x) >> 10;
91ec: 69f1 ldr r1, [r6, #28]
91ee: fb07 f301 mul.w r3, r7, r1
if(p->yx_steep > 0) {
91f2: 2900 cmp r1, #0
y_at_x = (int32_t)((int32_t)p->yx_steep * abs_x) >> 10;
91f4: ea4f 23a3 mov.w r3, r3, asr #10
if(p->inv) {
91f8: fa5f f08c uxtb.w r0, ip
if(p->yx_steep > 0) {
91fc: dd05 ble.n 920a <lv_draw_mask_line+0xb2>
if(y_at_x > abs_y) {
91fe: 429a cmp r2, r3
9200: da05 bge.n 920e <lv_draw_mask_line+0xb6>
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
9202: 3800 subs r0, #0
9204: bf18 it ne
9206: 2001 movne r0, #1
9208: e7c4 b.n 9194 <lv_draw_mask_line+0x3c>
if(y_at_x < abs_y) {
920a: 429a cmp r2, r3
920c: dcf9 bgt.n 9202 <lv_draw_mask_line+0xaa>
y_at_x = (int32_t)((int32_t)p->yx_steep * (abs_x + len)) >> 10;
920e: 193b adds r3, r7, r4
9210: 434b muls r3, r1
if(p->yx_steep > 0) {
9212: 2900 cmp r1, #0
y_at_x = (int32_t)((int32_t)p->yx_steep * (abs_x + len)) >> 10;
9214: ea4f 23a3 mov.w r3, r3, asr #10
if(p->yx_steep > 0) {
9218: dd05 ble.n 9226 <lv_draw_mask_line+0xce>
if(y_at_x < abs_y) {
921a: 429a cmp r2, r3
921c: dd06 ble.n 922c <lv_draw_mask_line+0xd4>
p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER;
921e: fab0 f080 clz r0, r0
9222: 0940 lsrs r0, r0, #5
9224: e7b6 b.n 9194 <lv_draw_mask_line+0x3c>
if(y_at_x > abs_y) {
9226: 429a cmp r2, r3
9228: dbf9 blt.n 921e <lv_draw_mask_line+0xc6>
else xe = (((abs_y + 1) << 8) * p->xy_steep) >> 10;
922a: 3201 adds r2, #1
922c: 69b3 ldr r3, [r6, #24]
922e: 0212 lsls r2, r2, #8
9230: 435a muls r2, r3
9232: 1292 asrs r2, r2, #10
int32_t xei = xe >> 8;
9234: 1211 asrs r1, r2, #8
if(xef == 0) px_h = 255;
9236: f012 02ff ands.w r2, r2, #255 ; 0xff
else px_h = 255 - (((255 - xef) * p->spx) >> 8);
923a: bf1f itttt ne
923c: 6a73 ldrne r3, [r6, #36] ; 0x24
923e: f1c2 08ff rsbne r8, r2, #255 ; 0xff
9242: fb03 f808 mulne.w r8, r3, r8
9246: ea4f 2828 movne.w r8, r8, asr #8
924a: bf14 ite ne
924c: f1c8 08ff rsbne r8, r8, #255 ; 0xff
if(xef == 0) px_h = 255;
9250: f04f 08ff moveq.w r8, #255 ; 0xff
int32_t k = xei - abs_x;
9254: 1bcf subs r7, r1, r7
if(xef) {
9256: 2a00 cmp r2, #0
9258: d054 beq.n 9304 <lv_draw_mask_line+0x1ac>
if(k >= 0 && k < len) {
925a: 2f00 cmp r7, #0
925c: db0f blt.n 927e <lv_draw_mask_line+0x126>
925e: 42bc cmp r4, r7
9260: dd0d ble.n 927e <lv_draw_mask_line+0x126>
m = 255 - (((255 - xef) * (255 - px_h)) >> 9);
9262: f1c2 01ff rsb r1, r2, #255 ; 0xff
9266: f1c8 03ff rsb r3, r8, #255 ; 0xff
926a: 4359 muls r1, r3
926c: f3c1 2147 ubfx r1, r1, #9, #8
if(p->inv) m = 255 - m;
9270: b908 cbnz r0, 9276 <lv_draw_mask_line+0x11e>
m = 255 - (((255 - xef) * (255 - px_h)) >> 9);
9272: 43c9 mvns r1, r1
9274: b2c9 uxtb r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
9276: 5de8 ldrb r0, [r5, r7]
9278: 4ba3 ldr r3, [pc, #652] ; (9508 <lv_draw_mask_line+0x3b0>)
927a: 4798 blx r3
927c: 55e8 strb r0, [r5, r7]
k++;
927e: 1c7a adds r2, r7, #1
mask_buf[k] = mask_mix(mask_buf[k], m);
9280: f8df 9284 ldr.w r9, [pc, #644] ; 9508 <lv_draw_mask_line+0x3b0>
while(px_h > p->spx) {
9284: 6a71 ldr r1, [r6, #36] ; 0x24
if(p->inv) m = 255 - m;
9286: f896 3028 ldrb.w r3, [r6, #40] ; 0x28
while(px_h > p->spx) {
928a: 4588 cmp r8, r1
if(p->inv) m = 255 - m;
928c: f003 0302 and.w r3, r3, #2
while(px_h > p->spx) {
9290: dc18 bgt.n 92c4 <lv_draw_mask_line+0x16c>
if(k < len && k >= 0) {
9292: 4294 cmp r4, r2
9294: dd29 ble.n 92ea <lv_draw_mask_line+0x192>
9296: 2a00 cmp r2, #0
9298: db27 blt.n 92ea <lv_draw_mask_line+0x192>
int32_t x_inters = (px_h * p->xy_steep) >> 10;
929a: 69b1 ldr r1, [r6, #24]
if(p->yx_steep < 0) m = 255 - m;
929c: 69f0 ldr r0, [r6, #28]
int32_t x_inters = (px_h * p->xy_steep) >> 10;
929e: fb01 f108 mul.w r1, r1, r8
92a2: 1289 asrs r1, r1, #10
m = (x_inters * px_h) >> 9;
92a4: fb08 f101 mul.w r1, r8, r1
92a8: f3c1 2147 ubfx r1, r1, #9, #8
if(p->yx_steep < 0) m = 255 - m;
92ac: 2800 cmp r0, #0
92ae: bfbc itt lt
92b0: 43c9 mvnlt r1, r1
92b2: b2c9 uxtblt r1, r1
if(p->inv) m = 255 - m;
92b4: b10b cbz r3, 92ba <lv_draw_mask_line+0x162>
92b6: 43c9 mvns r1, r1
92b8: b2c9 uxtb r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
92ba: 5ca8 ldrb r0, [r5, r2]
92bc: 4b92 ldr r3, [pc, #584] ; (9508 <lv_draw_mask_line+0x3b0>)
92be: 4798 blx r3
92c0: 54a8 strb r0, [r5, r2]
92c2: e012 b.n 92ea <lv_draw_mask_line+0x192>
if(k >= 0 && k < len) {
92c4: 2a00 cmp r2, #0
92c6: db0a blt.n 92de <lv_draw_mask_line+0x186>
92c8: 4294 cmp r4, r2
92ca: dd08 ble.n 92de <lv_draw_mask_line+0x186>
m = px_h - (p->spx >> 1);
92cc: eba8 0161 sub.w r1, r8, r1, asr #1
92d0: b2c9 uxtb r1, r1
if(p->inv) m = 255 - m;
92d2: b10b cbz r3, 92d8 <lv_draw_mask_line+0x180>
92d4: 43c9 mvns r1, r1
92d6: b2c9 uxtb r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
92d8: 5ca8 ldrb r0, [r5, r2]
92da: 47c8 blx r9
92dc: 54a8 strb r0, [r5, r2]
px_h -= p->spx;
92de: 6a73 ldr r3, [r6, #36] ; 0x24
k++;
92e0: 3201 adds r2, #1
if(k >= len) break;
92e2: 4294 cmp r4, r2
px_h -= p->spx;
92e4: eba8 0803 sub.w r8, r8, r3
if(k >= len) break;
92e8: dccc bgt.n 9284 <lv_draw_mask_line+0x12c>
if(p->inv) {
92ea: f896 3028 ldrb.w r3, [r6, #40] ; 0x28
92ee: 0799 lsls r1, r3, #30
92f0: d50a bpl.n 9308 <lv_draw_mask_line+0x1b0>
if(k > len) {
92f2: 42bc cmp r4, r7
92f4: f6ff af54 blt.w 91a0 <lv_draw_mask_line+0x48>
if(k >= 0) {
92f8: 2f00 cmp r7, #0
92fa: f6ff af70 blt.w 91de <lv_draw_mask_line+0x86>
_lv_memset_00(&mask_buf[0], k);
92fe: 4639 mov r1, r7
if(k >= 0) _lv_memset_00(&mask_buf[0], k);
9300: 4628 mov r0, r5
9302: e083 b.n 940c <lv_draw_mask_line+0x2b4>
int32_t k = xei - abs_x;
9304: 463a mov r2, r7
9306: e7bb b.n 9280 <lv_draw_mask_line+0x128>
if(k < 0) {
9308: 1c50 adds r0, r2, #1
930a: f53f af49 bmi.w 91a0 <lv_draw_mask_line+0x48>
if(k <= len) {
930e: 4284 cmp r4, r0
if(k >= 0) _lv_memset_00(&mask_buf[k], len - k);
9310: f6ff af65 blt.w 91de <lv_draw_mask_line+0x86>
9314: 1a21 subs r1, r4, r0
9316: 4428 add r0, r5
9318: e078 b.n 940c <lv_draw_mask_line+0x2b4>
x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10;
931a: 69b1 ldr r1, [r6, #24]
931c: fb01 f302 mul.w r3, r1, r2
if(p->xy_steep > 0) x_at_y++;
9320: 2900 cmp r1, #0
x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10;
9322: ea4f 23a3 mov.w r3, r3, asr #10
if(p->xy_steep > 0) x_at_y++;
9326: bfcc ite gt
9328: f103 0e01 addgt.w lr, r3, #1
x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10;
932c: 469e movle lr, r3
if(x_at_y < abs_x) {
932e: 4577 cmp r7, lr
if(p->inv) {
9330: fa5f f08c uxtb.w r0, ip
if(x_at_y < abs_x) {
9334: f73f af65 bgt.w 9202 <lv_draw_mask_line+0xaa>
if(x_at_y > abs_x + len) {
9338: eb07 0c04 add.w ip, r7, r4
933c: 4563 cmp r3, ip
933e: f73f af6e bgt.w 921e <lv_draw_mask_line+0xc6>
int32_t xs = ((abs_y << 8) * p->xy_steep) >> 10;
9342: ea4f 2c02 mov.w ip, r2, lsl #8
int32_t xe = (((abs_y + 1) << 8) * p->xy_steep) >> 10;
9346: 3201 adds r2, #1
9348: 0212 lsls r2, r2, #8
934a: 434a muls r2, r1
int32_t xs = ((abs_y << 8) * p->xy_steep) >> 10;
934c: fb01 fc0c mul.w ip, r1, ip
int32_t xei = xe >> 8;
9350: ea4f 49a2 mov.w r9, r2, asr #18
if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) {
9354: ebb9 4fac cmp.w r9, ip, asr #18
int32_t xsf = xs & 0xFF;
9358: f3cc 2387 ubfx r3, ip, #10, #8
k = xsi - abs_x;
935c: ebc7 4aac rsb sl, r7, ip, asr #18
if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) {
9360: f000 80ae beq.w 94c0 <lv_draw_mask_line+0x368>
9364: 2900 cmp r1, #0
9366: da5a bge.n 941e <lv_draw_mask_line+0x2c6>
k--;
9368: f10a 38ff add.w r8, sl, #4294967295 ; 0xffffffff
if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) {
936c: 2b00 cmp r3, #0
936e: f000 80c9 beq.w 9504 <lv_draw_mask_line+0x3ac>
y_inters = (xsf * (-p->yx_steep)) >> 10;
9372: 69f2 ldr r2, [r6, #28]
9374: 4252 negs r2, r2
9376: 435a muls r2, r3
if(k >= 0 && k < len) {
9378: f1ba 0f00 cmp.w sl, #0
y_inters = (xsf * (-p->yx_steep)) >> 10;
937c: ea4f 22a2 mov.w r2, r2, asr #10
if(k >= 0 && k < len) {
9380: db0d blt.n 939e <lv_draw_mask_line+0x246>
9382: 4554 cmp r4, sl
9384: dd0b ble.n 939e <lv_draw_mask_line+0x246>
m = (y_inters * xsf) >> 9;
9386: 4353 muls r3, r2
9388: f3c3 2147 ubfx r1, r3, #9, #8
if(p->inv) m = 255 - m;
938c: b108 cbz r0, 9392 <lv_draw_mask_line+0x23a>
938e: 43c9 mvns r1, r1
9390: b2c9 uxtb r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
9392: f815 000a ldrb.w r0, [r5, sl]
9396: 4b5c ldr r3, [pc, #368] ; (9508 <lv_draw_mask_line+0x3b0>)
9398: 4798 blx r3
939a: f805 000a strb.w r0, [r5, sl]
if(k >= 0 && k < len) {
939e: f1b8 0f00 cmp.w r8, #0
93a2: db17 blt.n 93d4 <lv_draw_mask_line+0x27c>
93a4: 4544 cmp r4, r8
93a6: dd15 ble.n 93d4 <lv_draw_mask_line+0x27c>
int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10;
93a8: 69b3 ldr r3, [r6, #24]
mask_buf[k] = mask_mix(mask_buf[k], m);
93aa: f815 0008 ldrb.w r0, [r5, r8]
int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10;
93ae: f1c2 02ff rsb r2, r2, #255 ; 0xff
93b2: 4259 negs r1, r3
93b4: 4351 muls r1, r2
if(p->inv) m = 255 - m;
93b6: f896 3028 ldrb.w r3, [r6, #40] ; 0x28
int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10;
93ba: 1289 asrs r1, r1, #10
m = 255 - (((255 - y_inters) * x_inters) >> 9);
93bc: 4351 muls r1, r2
if(p->inv) m = 255 - m;
93be: 079f lsls r7, r3, #30
m = 255 - (((255 - y_inters) * x_inters) >> 9);
93c0: f3c1 2147 ubfx r1, r1, #9, #8
93c4: bf58 it pl
93c6: 43c9 mvnpl r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
93c8: 4b4f ldr r3, [pc, #316] ; (9508 <lv_draw_mask_line+0x3b0>)
m = 255 - (((255 - y_inters) * x_inters) >> 9);
93ca: bf58 it pl
93cc: b2c9 uxtbpl r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
93ce: 4798 blx r3
93d0: f805 0008 strb.w r0, [r5, r8]
if(p->inv) {
93d4: f896 3028 ldrb.w r3, [r6, #40] ; 0x28
93d8: 079e lsls r6, r3, #30
93da: d51a bpl.n 9412 <lv_draw_mask_line+0x2ba>
if(k > len) k = len;
93dc: 4544 cmp r4, r8
93de: f6ff aefe blt.w 91de <lv_draw_mask_line+0x86>
else if(k > 0) _lv_memset_00(&mask_buf[0], k);
93e2: f1b8 0f00 cmp.w r8, #0
93e6: f77f aefa ble.w 91de <lv_draw_mask_line+0x86>
93ea: 4641 mov r1, r8
93ec: e788 b.n 9300 <lv_draw_mask_line+0x1a8>
k++;
93ee: f108 0801 add.w r8, r8, #1
93f2: 45a0 cmp r8, r4
93f4: bfa8 it ge
93f6: 46a0 movge r8, r4
if(k == 0) return LV_DRAW_MASK_RES_TRANSP;
93f8: f1b8 0f00 cmp.w r8, #0
93fc: f43f aed0 beq.w 91a0 <lv_draw_mask_line+0x48>
else if(k > 0) _lv_memset_00(&mask_buf[k], len - k);
9400: f77f aeed ble.w 91de <lv_draw_mask_line+0x86>
9404: eba4 0108 sub.w r1, r4, r8
9408: eb05 0008 add.w r0, r5, r8
else if(k > 0) _lv_memset_00(&mask_buf[k], len - k);
940c: 4b3f ldr r3, [pc, #252] ; (950c <lv_draw_mask_line+0x3b4>)
940e: 4798 blx r3
9410: e6e5 b.n 91de <lv_draw_mask_line+0x86>
k += 2;
9412: f10a 0001 add.w r0, sl, #1
if(k > len) return LV_DRAW_MASK_RES_FULL_COVER;
9416: 4284 cmp r4, r0
9418: db4e blt.n 94b8 <lv_draw_mask_line+0x360>
if(k >= 0) _lv_memset_00(&mask_buf[k], len - k);
941a: 2800 cmp r0, #0
941c: e778 b.n 9310 <lv_draw_mask_line+0x1b8>
y_inters = ((255 - xsf) * p->yx_steep) >> 10;
941e: 69f7 ldr r7, [r6, #28]
9420: f1c3 03ff rsb r3, r3, #255 ; 0xff
9424: 435f muls r7, r3
if(k >= 0 && k < len) {
9426: f1ba 0f00 cmp.w sl, #0
y_inters = ((255 - xsf) * p->yx_steep) >> 10;
942a: ea4f 27a7 mov.w r7, r7, asr #10
if(k >= 0 && k < len) {
942e: db0d blt.n 944c <lv_draw_mask_line+0x2f4>
9430: 4554 cmp r4, sl
9432: dd0b ble.n 944c <lv_draw_mask_line+0x2f4>
m = 255 - ((y_inters * (255 - xsf)) >> 9);
9434: 437b muls r3, r7
9436: f3c3 2147 ubfx r1, r3, #9, #8
if(p->inv) m = 255 - m;
943a: b908 cbnz r0, 9440 <lv_draw_mask_line+0x2e8>
m = 255 - ((y_inters * (255 - xsf)) >> 9);
943c: 43c9 mvns r1, r1
943e: b2c9 uxtb r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
9440: f815 000a ldrb.w r0, [r5, sl]
9444: 4b30 ldr r3, [pc, #192] ; (9508 <lv_draw_mask_line+0x3b0>)
9446: 4798 blx r3
9448: f805 000a strb.w r0, [r5, sl]
if(k >= 0 && k < len) {
944c: f11a 0201 adds.w r2, sl, #1
9450: d415 bmi.n 947e <lv_draw_mask_line+0x326>
9452: 4294 cmp r4, r2
9454: dd13 ble.n 947e <lv_draw_mask_line+0x326>
int32_t x_inters = ((255 - y_inters) * p->xy_steep) >> 10;
9456: 69b3 ldr r3, [r6, #24]
9458: f1c7 07ff rsb r7, r7, #255 ; 0xff
945c: fb03 f107 mul.w r1, r3, r7
9460: 1289 asrs r1, r1, #10
if(p->inv) m = 255 - m;
9462: f896 3028 ldrb.w r3, [r6, #40] ; 0x28
m = ((255 - y_inters) * x_inters) >> 9;
9466: 4379 muls r1, r7
if(p->inv) m = 255 - m;
9468: 0798 lsls r0, r3, #30
m = ((255 - y_inters) * x_inters) >> 9;
946a: f3c1 2147 ubfx r1, r1, #9, #8
if(p->inv) m = 255 - m;
946e: bf48 it mi
9470: 43c9 mvnmi r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
9472: 5ca8 ldrb r0, [r5, r2]
9474: 4b24 ldr r3, [pc, #144] ; (9508 <lv_draw_mask_line+0x3b0>)
if(p->inv) m = 255 - m;
9476: bf48 it mi
9478: b2c9 uxtbmi r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
947a: 4798 blx r3
947c: 54a8 strb r0, [r5, r2]
if(p->inv) {
947e: f896 3028 ldrb.w r3, [r6, #40] ; 0x28
9482: 079b lsls r3, r3, #30
9484: d508 bpl.n 9498 <lv_draw_mask_line+0x340>
if(k > len) return LV_DRAW_MASK_RES_TRANSP;
9486: 4554 cmp r4, sl
9488: f6ff ae8a blt.w 91a0 <lv_draw_mask_line+0x48>
if(k >= 0) _lv_memset_00(&mask_buf[0], k);
948c: f1ba 0f00 cmp.w sl, #0
9490: f6ff aea5 blt.w 91de <lv_draw_mask_line+0x86>
9494: 4651 mov r1, sl
9496: e733 b.n 9300 <lv_draw_mask_line+0x1a8>
k++;
9498: f10a 0a02 add.w sl, sl, #2
949c: 45a2 cmp sl, r4
949e: bfa8 it ge
94a0: 46a2 movge sl, r4
if(k == 0) return LV_DRAW_MASK_RES_TRANSP;
94a2: f1ba 0f00 cmp.w sl, #0
94a6: f43f ae7b beq.w 91a0 <lv_draw_mask_line+0x48>
else if(k > 0) _lv_memset_00(&mask_buf[k], len - k);
94aa: f77f ae98 ble.w 91de <lv_draw_mask_line+0x86>
94ae: eba4 010a sub.w r1, r4, sl
94b2: eb05 000a add.w r0, r5, sl
94b6: e7a9 b.n 940c <lv_draw_mask_line+0x2b4>
if(k > len) return LV_DRAW_MASK_RES_FULL_COVER;
94b8: 2001 movs r0, #1
94ba: e66b b.n 9194 <lv_draw_mask_line+0x3c>
if(k >= len) return LV_DRAW_MASK_RES_TRANSP;
94bc: 2c00 cmp r4, #0
94be: e681 b.n 91c4 <lv_draw_mask_line+0x6c>
k = xsi - abs_x;
94c0: 46d0 mov r8, sl
if(k >= 0 && k < len) {
94c2: f1b8 0f00 cmp.w r8, #0
94c6: db0f blt.n 94e8 <lv_draw_mask_line+0x390>
94c8: 4544 cmp r4, r8
94ca: dd0d ble.n 94e8 <lv_draw_mask_line+0x390>
int32_t xef = xe & 0xFF;
94cc: f3c2 2187 ubfx r1, r2, #10, #8
m = (xsf + xef) >> 1;
94d0: 4419 add r1, r3
94d2: f3c1 0147 ubfx r1, r1, #1, #8
if(p->inv) m = 255 - m;
94d6: b108 cbz r0, 94dc <lv_draw_mask_line+0x384>
94d8: 43c9 mvns r1, r1
94da: b2c9 uxtb r1, r1
mask_buf[k] = mask_mix(mask_buf[k], m);
94dc: f815 0008 ldrb.w r0, [r5, r8]
94e0: 4b09 ldr r3, [pc, #36] ; (9508 <lv_draw_mask_line+0x3b0>)
94e2: 4798 blx r3
94e4: f805 0008 strb.w r0, [r5, r8]
if(p->inv) {
94e8: f896 3028 ldrb.w r3, [r6, #40] ; 0x28
94ec: 079b lsls r3, r3, #30
94ee: f57f af7e bpl.w 93ee <lv_draw_mask_line+0x296>
k = xsi - abs_x;
94f2: eba9 0107 sub.w r1, r9, r7
if(k >= len) {
94f6: 428c cmp r4, r1
94f8: f77f ae52 ble.w 91a0 <lv_draw_mask_line+0x48>
if(k >= 0) _lv_memset_00(&mask_buf[0], k);
94fc: 2900 cmp r1, #0
94fe: f6ff ae6e blt.w 91de <lv_draw_mask_line+0x86>
9502: e6fd b.n 9300 <lv_draw_mask_line+0x1a8>
xsf = 0xFF;
9504: 23ff movs r3, #255 ; 0xff
9506: e7dc b.n 94c2 <lv_draw_mask_line+0x36a>
9508: 0000913d .word 0x0000913d
950c: 0000f2a9 .word 0x0000f2a9
00009510 <lv_area_copy>:
while(len) {
9510: 3901 subs r1, #1
9512: f100 0308 add.w r3, r0, #8
*d8 = *s8;
9516: f811 2f01 ldrb.w r2, [r1, #1]!
951a: f800 2b01 strb.w r2, [r0], #1
while(len) {
951e: 4298 cmp r0, r3
9520: d1f9 bne.n 9516 <lv_area_copy+0x6>
}
9522: 4770 bx lr
00009524 <lv_draw_mask_radius>:
{
9524: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
9528: b08d sub sp, #52 ; 0x34
952a: 461d mov r5, r3
952c: f8dd 8058 ldr.w r8, [sp, #88] ; 0x58
bool outer = p->cfg.outer;
9530: f898 9012 ldrb.w r9, [r8, #18]
int32_t radius = p->cfg.radius;
9534: f9b8 a010 ldrsh.w sl, [r8, #16]
{
9538: 2300 movs r3, #0
953a: e9cd 3302 strd r3, r3, [sp, #8]
953e: 4606 mov r6, r0
lv_area_copy(&rect, &p->cfg.rect);
9540: 4b8b ldr r3, [pc, #556] ; (9770 <lv_draw_mask_radius+0x24c>)
{
9542: 468b mov fp, r1
lv_area_copy(&rect, &p->cfg.rect);
9544: a80a add r0, sp, #40 ; 0x28
9546: f108 0108 add.w r1, r8, #8
bool outer = p->cfg.outer;
954a: f009 0901 and.w r9, r9, #1
{
954e: 4617 mov r7, r2
lv_area_copy(&rect, &p->cfg.rect);
9550: 4798 blx r3
if(outer == false) {
9552: f9bd 302a ldrsh.w r3, [sp, #42] ; 0x2a
9556: f1b9 0f00 cmp.w r9, #0
955a: d13a bne.n 95d2 <lv_draw_mask_radius+0xae>
if(abs_y < rect.y1 || abs_y > rect.y2) {
955c: 42bb cmp r3, r7
955e: dd01 ble.n 9564 <lv_draw_mask_radius+0x40>
return LV_DRAW_MASK_RES_TRANSP;
9560: 2000 movs r0, #0
9562: e039 b.n 95d8 <lv_draw_mask_radius+0xb4>
if(abs_y < rect.y1 || abs_y > rect.y2) {
9564: f9bd 202e ldrsh.w r2, [sp, #46] ; 0x2e
9568: 42ba cmp r2, r7
956a: dbf9 blt.n 9560 <lv_draw_mask_radius+0x3c>
if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) ||
956c: f9bd 1028 ldrsh.w r1, [sp, #40] ; 0x28
9570: eb01 020a add.w r2, r1, sl
9574: 4593 cmp fp, r2
9576: eba1 040b sub.w r4, r1, fp
957a: db07 blt.n 958c <lv_draw_mask_radius+0x68>
957c: f9bd 202c ldrsh.w r2, [sp, #44] ; 0x2c
9580: eb05 000b add.w r0, r5, fp
9584: eba2 020a sub.w r2, r2, sl
9588: 4290 cmp r0, r2
958a: dd09 ble.n 95a0 <lv_draw_mask_radius+0x7c>
(abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) {
958c: eb03 020a add.w r2, r3, sl
if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) ||
9590: 4297 cmp r7, r2
if(abs_y < rect.y1 || abs_y > rect.y2) {
9592: f9bd 002e ldrsh.w r0, [sp, #46] ; 0x2e
if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) ||
9596: db3d blt.n 9614 <lv_draw_mask_radius+0xf0>
(abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) {
9598: eba0 020a sub.w r2, r0, sl
959c: 4297 cmp r7, r2
959e: dc39 bgt.n 9614 <lv_draw_mask_radius+0xf0>
if(outer == false) {
95a0: f1b9 0f00 cmp.w r9, #0
95a4: d125 bne.n 95f2 <lv_draw_mask_radius+0xce>
if(last > len) return LV_DRAW_MASK_RES_TRANSP;
95a6: 42a5 cmp r5, r4
95a8: dbda blt.n 9560 <lv_draw_mask_radius+0x3c>
if(last >= 0) {
95aa: 2c00 cmp r4, #0
95ac: db03 blt.n 95b6 <lv_draw_mask_radius+0x92>
_lv_memset_00(&mask_buf[0], last);
95ae: 4b71 ldr r3, [pc, #452] ; (9774 <lv_draw_mask_radius+0x250>)
95b0: 4621 mov r1, r4
95b2: 4630 mov r0, r6
95b4: 4798 blx r3
int32_t first = rect.x2 - abs_x + 1;
95b6: f9bd 002c ldrsh.w r0, [sp, #44] ; 0x2c
95ba: eba0 000b sub.w r0, r0, fp
95be: 3001 adds r0, #1
if(first <= 0) return LV_DRAW_MASK_RES_TRANSP;
95c0: 2800 cmp r0, #0
95c2: ddcd ble.n 9560 <lv_draw_mask_radius+0x3c>
else if(first < len) {
95c4: 42a8 cmp r0, r5
95c6: da0f bge.n 95e8 <lv_draw_mask_radius+0xc4>
_lv_memset_00(&mask_buf[kr], len - kr);
95c8: 1a29 subs r1, r5, r0
_lv_memset_00(&mask_buf[first], len_tmp);
95ca: 4430 add r0, r6
if(kr < len) _lv_memset_00(&mask_buf[kr], len - kr);
95cc: 4b69 ldr r3, [pc, #420] ; (9774 <lv_draw_mask_radius+0x250>)
95ce: 4798 blx r3
95d0: e00d b.n 95ee <lv_draw_mask_radius+0xca>
if(abs_y < rect.y1 || abs_y > rect.y2) {
95d2: 42bb cmp r3, r7
95d4: dd03 ble.n 95de <lv_draw_mask_radius+0xba>
return LV_DRAW_MASK_RES_FULL_COVER;
95d6: 2001 movs r0, #1
}
95d8: b00d add sp, #52 ; 0x34
95da: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(abs_y < rect.y1 || abs_y > rect.y2) {
95de: f9bd 202e ldrsh.w r2, [sp, #46] ; 0x2e
95e2: 42ba cmp r2, r7
95e4: dac2 bge.n 956c <lv_draw_mask_radius+0x48>
95e6: e7f6 b.n 95d6 <lv_draw_mask_radius+0xb2>
if(last == 0 && first == len) return LV_DRAW_MASK_RES_FULL_COVER;
95e8: b90c cbnz r4, 95ee <lv_draw_mask_radius+0xca>
95ea: 42a8 cmp r0, r5
95ec: d0f3 beq.n 95d6 <lv_draw_mask_radius+0xb2>
return LV_DRAW_MASK_RES_CHANGED;
95ee: 2002 movs r0, #2
95f0: e7f2 b.n 95d8 <lv_draw_mask_radius+0xb4>
if(first < 0) first = 0;
95f2: ea24 70e4 bic.w r0, r4, r4, asr #31
if(first <= len) {
95f6: 42a8 cmp r0, r5
95f8: dcf9 bgt.n 95ee <lv_draw_mask_radius+0xca>
int32_t last = rect.x2 - abs_x - first + 1;
95fa: f9bd 102c ldrsh.w r1, [sp, #44] ; 0x2c
95fe: eba1 010b sub.w r1, r1, fp
9602: 1a09 subs r1, r1, r0
9604: 3101 adds r1, #1
if(first + last > len) last = len - first;
9606: 1843 adds r3, r0, r1
9608: 42ab cmp r3, r5
960a: dd00 ble.n 960e <lv_draw_mask_radius+0xea>
960c: 1a29 subs r1, r5, r0
if(first < len && len_tmp >= 0) {
960e: 2900 cmp r1, #0
9610: dbed blt.n 95ee <lv_draw_mask_radius+0xca>
9612: e7da b.n 95ca <lv_draw_mask_radius+0xa6>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
9614: f8bd 202c ldrh.w r2, [sp, #44] ; 0x2c
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
9618: b29b uxth r3, r3
961a: 3001 adds r0, #1
961c: 1ac0 subs r0, r0, r3
abs_y -= rect.y1;
961e: 1aff subs r7, r7, r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
9620: 3201 adds r2, #1
uint32_t r2 = p->cfg.radius * p->cfg.radius;
9622: f9b8 3010 ldrsh.w r3, [r8, #16]
9626: 1a52 subs r2, r2, r1
abs_y -= rect.y1;
9628: b23f sxth r7, r7
int32_t w = lv_area_get_width(&rect);
962a: b212 sxth r2, r2
uint32_t r2 = p->cfg.radius * p->cfg.radius;
962c: 435b muls r3, r3
if(abs_y < radius || abs_y > h - radius - 1) {
962e: 45ba cmp sl, r7
int32_t w = lv_area_get_width(&rect);
9630: 9204 str r2, [sp, #16]
int32_t h = lv_area_get_height(&rect);
9632: b200 sxth r0, r0
uint32_t r2 = p->cfg.radius * p->cfg.radius;
9634: 9301 str r3, [sp, #4]
if(abs_y < radius || abs_y > h - radius - 1) {
9636: f300 8190 bgt.w 995a <lv_draw_mask_radius+0x436>
963a: eba0 030a sub.w r3, r0, sl
963e: 429f cmp r7, r3
9640: dbd5 blt.n 95ee <lv_draw_mask_radius+0xca>
y = radius - (h - abs_y) + 1;
9642: 1bc0 subs r0, r0, r7
if((y - 1) == p->y_prev) {
9644: f8d8 3014 ldr.w r3, [r8, #20]
if(radius <= 256) sqrt_mask = 0x800;
9648: f5ba 7f80 cmp.w sl, #256 ; 0x100
y = radius - (h - abs_y) + 1;
964c: ebaa 0000 sub.w r0, sl, r0
if(radius <= 256) sqrt_mask = 0x800;
9650: bfd4 ite le
9652: f44f 6200 movle.w r2, #2048 ; 0x800
9656: f44f 4200 movgt.w r2, #32768 ; 0x8000
if((y - 1) == p->y_prev) {
965a: 4298 cmp r0, r3
y = radius - (h - abs_y) + 1;
965c: f100 0701 add.w r7, r0, #1
if((y - 1) == p->y_prev) {
9660: d067 beq.n 9732 <lv_draw_mask_radius+0x20e>
_lv_sqrt(r2 - ((y - 1) * (y - 1)), &x1, sqrt_mask);
9662: 9b01 ldr r3, [sp, #4]
9664: 9205 str r2, [sp, #20]
9666: fb00 3010 mls r0, r0, r0, r3
966a: a907 add r1, sp, #28
966c: 4b42 ldr r3, [pc, #264] ; (9778 <lv_draw_mask_radius+0x254>)
966e: 4798 blx r3
9670: 9a05 ldr r2, [sp, #20]
9672: e061 b.n 9738 <lv_draw_mask_radius+0x214>
x0.i = p->y_prev_x.i;
9674: f8d8 3018 ldr.w r3, [r8, #24]
9678: 9306 str r3, [sp, #24]
_lv_sqrt(r2 - ((y - 1) * (y - 1)), &x1, sqrt_mask);
967a: 9b01 ldr r3, [sp, #4]
967c: 9205 str r2, [sp, #20]
967e: f107 3bff add.w fp, r7, #4294967295 ; 0xffffffff
9682: fb0b 301b mls r0, fp, fp, r3
9686: a907 add r1, sp, #28
9688: 4b3b ldr r3, [pc, #236] ; (9778 <lv_draw_mask_radius+0x254>)
968a: 4798 blx r3
p->y_prev_x.f = x1.f;
968c: f8bd 301e ldrh.w r3, [sp, #30]
9690: f8a8 301a strh.w r3, [r8, #26]
p->y_prev_x.i = x1.i;
9694: f8bd 301c ldrh.w r3, [sp, #28]
p->y_prev = y - 1;
9698: f8c8 b014 str.w fp, [r8, #20]
if(x0.i == x1.i - 1 && x1.f == 0) {
969c: f8bd 101c ldrh.w r1, [sp, #28]
p->y_prev_x.i = x1.i;
96a0: f8a8 3018 strh.w r3, [r8, #24]
if(x0.i == x1.i - 1 && x1.f == 0) {
96a4: f8bd 3018 ldrh.w r3, [sp, #24]
p->y_prev_x.i = x0.i;
96a8: 9a05 ldr r2, [sp, #20]
if(x0.i == x1.i - 1 && x1.f == 0) {
96aa: 3901 subs r1, #1
96ac: 428b cmp r3, r1
96ae: d107 bne.n 96c0 <lv_draw_mask_radius+0x19c>
96b0: f8bd 101e ldrh.w r1, [sp, #30]
96b4: b921 cbnz r1, 96c0 <lv_draw_mask_radius+0x19c>
x1.f = 0xFF;
96b6: 21ff movs r1, #255 ; 0xff
x1.i--;
96b8: f8ad 301c strh.w r3, [sp, #28]
x1.f = 0xFF;
96bc: f8ad 101e strh.w r1, [sp, #30]
if(x0.i == x1.i) {
96c0: f8bd 101c ldrh.w r1, [sp, #28]
96c4: 4299 cmp r1, r3
96c6: d15b bne.n 9780 <lv_draw_mask_radius+0x25c>
lv_opa_t m = (x0.f + x1.f) >> 1;
96c8: f8bd 101a ldrh.w r1, [sp, #26]
96cc: f8bd 201e ldrh.w r2, [sp, #30]
96d0: 4411 add r1, r2
96d2: f3c1 0147 ubfx r1, r1, #1, #8
if(outer) m = 255 - m;
96d6: f1b9 0f00 cmp.w r9, #0
96da: d001 beq.n 96e0 <lv_draw_mask_radius+0x1bc>
96dc: 43c9 mvns r1, r1
96de: b2c9 uxtb r1, r1
int32_t ofs = radius - x0.i - 1;
96e0: ebaa 0303 sub.w r3, sl, r3
96e4: 1e5a subs r2, r3, #1
if(kl >= 0 && kl < len) {
96e6: 18a7 adds r7, r4, r2
96e8: d405 bmi.n 96f6 <lv_draw_mask_radius+0x1d2>
96ea: 42af cmp r7, r5
96ec: da03 bge.n 96f6 <lv_draw_mask_radius+0x1d2>
mask_buf[kl] = mask_mix(mask_buf[kl], m);
96ee: 5df0 ldrb r0, [r6, r7]
96f0: 4b22 ldr r3, [pc, #136] ; (977c <lv_draw_mask_radius+0x258>)
96f2: 4798 blx r3
96f4: 55f0 strb r0, [r6, r7]
int32_t kr = k + (w - ofs - 1);
96f6: 9b04 ldr r3, [sp, #16]
96f8: 1a9a subs r2, r3, r2
96fa: 1e50 subs r0, r2, #1
if(kr >= 0 && kr < len) {
96fc: 1904 adds r4, r0, r4
96fe: d405 bmi.n 970c <lv_draw_mask_radius+0x1e8>
9700: 42ac cmp r4, r5
9702: da03 bge.n 970c <lv_draw_mask_radius+0x1e8>
mask_buf[kr] = mask_mix(mask_buf[kr], m);
9704: 5d30 ldrb r0, [r6, r4]
9706: 4b1d ldr r3, [pc, #116] ; (977c <lv_draw_mask_radius+0x258>)
9708: 4798 blx r3
970a: 5530 strb r0, [r6, r4]
if(outer == false) {
970c: f1b9 0f00 cmp.w r9, #0
9710: d122 bne.n 9758 <lv_draw_mask_radius+0x234>
if(kl > len) {
9712: 42af cmp r7, r5
9714: f73f af24 bgt.w 9560 <lv_draw_mask_radius+0x3c>
if(kl >= 0) {
9718: 2f00 cmp r7, #0
971a: db03 blt.n 9724 <lv_draw_mask_radius+0x200>
_lv_memset_00(&mask_buf[0], kl);
971c: 4b15 ldr r3, [pc, #84] ; (9774 <lv_draw_mask_radius+0x250>)
971e: 4639 mov r1, r7
9720: 4630 mov r0, r6
9722: 4798 blx r3
if(kr < 0) {
9724: 1c60 adds r0, r4, #1
9726: f53f af1b bmi.w 9560 <lv_draw_mask_radius+0x3c>
if(kr <= len) {
972a: 42a8 cmp r0, r5
972c: f73f af5f bgt.w 95ee <lv_draw_mask_radius+0xca>
9730: e74a b.n 95c8 <lv_draw_mask_radius+0xa4>
x1.i = p->y_prev_x.i;
9732: f8d8 3018 ldr.w r3, [r8, #24]
9736: 9307 str r3, [sp, #28]
_lv_sqrt(r2 - (y * y), &x0, sqrt_mask);
9738: 9b01 ldr r3, [sp, #4]
973a: 9205 str r2, [sp, #20]
973c: fb07 3017 mls r0, r7, r7, r3
9740: a906 add r1, sp, #24
9742: 4b0d ldr r3, [pc, #52] ; (9778 <lv_draw_mask_radius+0x254>)
9744: 4798 blx r3
p->y_prev_x.f = x0.f;
9746: f8bd 301a ldrh.w r3, [sp, #26]
974a: f8a8 301a strh.w r3, [r8, #26]
p->y_prev = y;
974e: f8c8 7014 str.w r7, [r8, #20]
p->y_prev_x.i = x0.i;
9752: f8bd 3018 ldrh.w r3, [sp, #24]
9756: e7a1 b.n 969c <lv_draw_mask_radius+0x178>
kl++;
9758: 1c78 adds r0, r7, #1
975a: ea20 70e0 bic.w r0, r0, r0, asr #31
if(len_tmp + first > len) len_tmp = len - first;
975e: 42ac cmp r4, r5
int32_t len_tmp = kr - first;
9760: bfd4 ite le
9762: 1a21 suble r1, r4, r0
if(len_tmp + first > len) len_tmp = len - first;
9764: 1a29 subgt r1, r5, r0
if(first < len && len_tmp >= 0) {
9766: 42a8 cmp r0, r5
9768: f6bf af41 bge.w 95ee <lv_draw_mask_radius+0xca>
976c: e74f b.n 960e <lv_draw_mask_radius+0xea>
976e: bf00 nop
9770: 00009511 .word 0x00009511
9774: 0000f2a9 .word 0x0000f2a9
9778: 0000ec25 .word 0x0000ec25
977c: 0000913d .word 0x0000913d
int32_t kr = k + (w - ofs - 1);
9780: 9904 ldr r1, [sp, #16]
int32_t ofs = radius - (x0.i + 1);
9782: 3301 adds r3, #1
9784: ebaa 0303 sub.w r3, sl, r3
int32_t kl = k + ofs;
9788: eb04 0803 add.w r8, r4, r3
int32_t kr = k + (w - ofs - 1);
978c: 1acb subs r3, r1, r3
978e: 3b01 subs r3, #1
9790: 441c add r4, r3
if(outer) {
9792: f1b9 0f00 cmp.w r9, #0
9796: d010 beq.n 97ba <lv_draw_mask_radius+0x296>
int32_t first = kl + 1;
9798: f108 0001 add.w r0, r8, #1
979c: ea20 70e0 bic.w r0, r0, r0, asr #31
if(len_tmp + first > len) len_tmp = len - first;
97a0: 42a5 cmp r5, r4
int32_t len_tmp = kr - first;
97a2: bfac ite ge
97a4: 1a21 subge r1, r4, r0
if(len_tmp + first > len) len_tmp = len - first;
97a6: 1a29 sublt r1, r5, r0
if(first < len && len_tmp >= 0) {
97a8: 42a8 cmp r0, r5
97aa: da06 bge.n 97ba <lv_draw_mask_radius+0x296>
97ac: 2900 cmp r1, #0
97ae: db04 blt.n 97ba <lv_draw_mask_radius+0x296>
_lv_memset_00(&mask_buf[first], len_tmp);
97b0: 4b75 ldr r3, [pc, #468] ; (9988 <lv_draw_mask_radius+0x464>)
97b2: 9204 str r2, [sp, #16]
97b4: 4430 add r0, r6
97b6: 4798 blx r3
97b8: 9a04 ldr r2, [sp, #16]
uint32_t i = x0.i + 1;
97ba: f8bd b018 ldrh.w fp, [sp, #24]
_lv_sqrt(r2 - (x0.i * x0.i), &y_prev, sqrt_mask);
97be: 9b01 ldr r3, [sp, #4]
97c0: 9204 str r2, [sp, #16]
97c2: a908 add r1, sp, #32
97c4: fb0b 301b mls r0, fp, fp, r3
97c8: 4b70 ldr r3, [pc, #448] ; (998c <lv_draw_mask_radius+0x468>)
97ca: 4798 blx r3
if(y_prev.f == 0) {
97cc: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22
97d0: 4b6e ldr r3, [pc, #440] ; (998c <lv_draw_mask_radius+0x468>)
97d2: 9a04 ldr r2, [sp, #16]
uint32_t i = x0.i + 1;
97d4: f10b 0a01 add.w sl, fp, #1
if(y_prev.f == 0) {
97d8: b939 cbnz r1, 97ea <lv_draw_mask_radius+0x2c6>
y_prev.i--;
97da: f8bd 1020 ldrh.w r1, [sp, #32]
97de: 3901 subs r1, #1
97e0: f8ad 1020 strh.w r1, [sp, #32]
y_prev.f = 0xFF;
97e4: 21ff movs r1, #255 ; 0xff
97e6: f8ad 1022 strh.w r1, [sp, #34] ; 0x22
if(y_prev.i >= y) {
97ea: f8bd 1020 ldrh.w r1, [sp, #32]
97ee: 42b9 cmp r1, r7
97f0: db2e blt.n 9850 <lv_draw_mask_radius+0x32c>
_lv_sqrt(r2 - (i * i), &y_next, sqrt_mask);
97f2: 9801 ldr r0, [sp, #4]
97f4: a909 add r1, sp, #36 ; 0x24
97f6: fb0a 001a mls r0, sl, sl, r0
97fa: 4798 blx r3
m = 255 - (((255 - x0.f) * (255 - y_next.f)) >> 9);
97fc: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26
9800: f8bd 101a ldrh.w r1, [sp, #26]
9804: f1c2 03ff rsb r3, r2, #255 ; 0xff
9808: f1c1 01ff rsb r1, r1, #255 ; 0xff
980c: 4359 muls r1, r3
980e: f3c1 2147 ubfx r1, r1, #9, #8
if(outer) m = 255 - m;
9812: f1b9 0f00 cmp.w r9, #0
9816: d101 bne.n 981c <lv_draw_mask_radius+0x2f8>
m = 255 - (((255 - x0.f) * (255 - y_next.f)) >> 9);
9818: 43c9 mvns r1, r1
981a: b2c9 uxtb r1, r1
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
981c: f1b8 0f00 cmp.w r8, #0
9820: db07 blt.n 9832 <lv_draw_mask_radius+0x30e>
9822: 4545 cmp r5, r8
9824: dd05 ble.n 9832 <lv_draw_mask_radius+0x30e>
9826: f816 0008 ldrb.w r0, [r6, r8]
982a: 4b59 ldr r3, [pc, #356] ; (9990 <lv_draw_mask_radius+0x46c>)
982c: 4798 blx r3
982e: f806 0008 strb.w r0, [r6, r8]
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
9832: 2c00 cmp r4, #0
9834: db05 blt.n 9842 <lv_draw_mask_radius+0x31e>
9836: 42a5 cmp r5, r4
9838: dd03 ble.n 9842 <lv_draw_mask_radius+0x31e>
983a: 5d30 ldrb r0, [r6, r4]
983c: 4b54 ldr r3, [pc, #336] ; (9990 <lv_draw_mask_radius+0x46c>)
983e: 4798 blx r3
9840: 5530 strb r0, [r6, r4]
kl--;
9842: f108 38ff add.w r8, r8, #4294967295 ; 0xffffffff
kr++;
9846: 3401 adds r4, #1
y_prev.f = y_next.f;
9848: f8ad 2022 strh.w r2, [sp, #34] ; 0x22
i++;
984c: f10b 0a02 add.w sl, fp, #2
*/
LV_ATTRIBUTE_FAST_MEM static inline void sqrt_approx(lv_sqrt_res_t * q, lv_sqrt_res_t * ref, uint32_t x)
{
x = x << 8; /*Upscale for extra precision*/
uint32_t raw = (ref->i << 4) + (ref->f >> 4);
9850: f8bd 2020 ldrh.w r2, [sp, #32]
for(; i <= x1.i; i++) {
9854: f8bd b01c ldrh.w fp, [sp, #28]
9858: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
985c: 4f4c ldr r7, [pc, #304] ; (9990 <lv_draw_mask_radius+0x46c>)
uint32_t raw = (ref->i << 4) + (ref->f >> 4);
985e: 0112 lsls r2, r2, #4
9860: 2300 movs r3, #0
for(; i <= x1.i; i++) {
9862: 45d3 cmp fp, sl
9864: d242 bcs.n 98ec <lv_draw_mask_radius+0x3c8>
9866: b13b cbz r3, 9878 <lv_draw_mask_radius+0x354>
9868: 9b02 ldr r3, [sp, #8]
986a: f8ad 3026 strh.w r3, [sp, #38] ; 0x26
986e: 9b03 ldr r3, [sp, #12]
9870: f8ad 3024 strh.w r3, [sp, #36] ; 0x24
9874: f8ad 1022 strh.w r1, [sp, #34] ; 0x22
if(y_prev.f) {
9878: f8bd 3022 ldrh.w r3, [sp, #34] ; 0x22
987c: b1fb cbz r3, 98be <lv_draw_mask_radius+0x39a>
m = (y_prev.f * x1.f) >> 9;
987e: f8bd 101e ldrh.w r1, [sp, #30]
9882: 4359 muls r1, r3
9884: f3c1 2147 ubfx r1, r1, #9, #8
if(outer) m = 255 - m;
9888: f1b9 0f00 cmp.w r9, #0
988c: d001 beq.n 9892 <lv_draw_mask_radius+0x36e>
988e: 43c9 mvns r1, r1
9890: b2c9 uxtb r1, r1
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
9892: f1b8 0f00 cmp.w r8, #0
9896: db07 blt.n 98a8 <lv_draw_mask_radius+0x384>
9898: 4545 cmp r5, r8
989a: dd05 ble.n 98a8 <lv_draw_mask_radius+0x384>
989c: f816 0008 ldrb.w r0, [r6, r8]
98a0: 4b3b ldr r3, [pc, #236] ; (9990 <lv_draw_mask_radius+0x46c>)
98a2: 4798 blx r3
98a4: f806 0008 strb.w r0, [r6, r8]
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
98a8: 2c00 cmp r4, #0
98aa: db05 blt.n 98b8 <lv_draw_mask_radius+0x394>
98ac: 42a5 cmp r5, r4
98ae: dd03 ble.n 98b8 <lv_draw_mask_radius+0x394>
98b0: 5d30 ldrb r0, [r6, r4]
98b2: 4b37 ldr r3, [pc, #220] ; (9990 <lv_draw_mask_radius+0x46c>)
98b4: 4798 blx r3
98b6: 5530 strb r0, [r6, r4]
kl--;
98b8: f108 38ff add.w r8, r8, #4294967295 ; 0xffffffff
kr++;
98bc: 3401 adds r4, #1
if(outer == 0) {
98be: f1b9 0f00 cmp.w r9, #0
98c2: f47f ae94 bne.w 95ee <lv_draw_mask_radius+0xca>
kl++;
98c6: f108 0101 add.w r1, r8, #1
if(kl > len) {
98ca: 428d cmp r5, r1
98cc: f6ff ae48 blt.w 9560 <lv_draw_mask_radius+0x3c>
if(kl >= 0) _lv_memset_00(&mask_buf[0], kl);
98d0: 2900 cmp r1, #0
98d2: db02 blt.n 98da <lv_draw_mask_radius+0x3b6>
98d4: 4b2c ldr r3, [pc, #176] ; (9988 <lv_draw_mask_radius+0x464>)
98d6: 4630 mov r0, r6
98d8: 4798 blx r3
if(kr < 0) {
98da: 2c00 cmp r4, #0
98dc: f6ff ae40 blt.w 9560 <lv_draw_mask_radius+0x3c>
if(kr < len) _lv_memset_00(&mask_buf[kr], len - kr);
98e0: 42a5 cmp r5, r4
98e2: f77f ae84 ble.w 95ee <lv_draw_mask_radius+0xca>
98e6: 1b29 subs r1, r5, r4
98e8: 1930 adds r0, r6, r4
98ea: e66f b.n 95cc <lv_draw_mask_radius+0xa8>
sqrt_approx(&y_next, &y_prev, r2 - (i * i));
98ec: 9b01 ldr r3, [sp, #4]
uint32_t raw = (ref->i << 4) + (ref->f >> 4);
98ee: f3c1 100f ubfx r0, r1, #4, #16
98f2: 4410 add r0, r2
sqrt_approx(&y_next, &y_prev, r2 - (i * i));
98f4: fb0a 3c1a mls ip, sl, sl, r3
uint32_t raw2 = raw * raw;
98f8: fb00 f300 mul.w r3, r0, r0
int32_t d = x - raw2;
98fc: ebc3 230c rsb r3, r3, ip, lsl #8
d = (int32_t)d / (int32_t)(2 * raw) + raw;
9900: ea4f 0c40 mov.w ip, r0, lsl #1
9904: fb93 f3fc sdiv r3, r3, ip
9908: 4403 add r3, r0
q->i = d >> 4;
990a: f3c3 100f ubfx r0, r3, #4, #16
q->f = (d & 0xF) << 4;
990e: 011b lsls r3, r3, #4
9910: f003 03f0 and.w r3, r3, #240 ; 0xf0
m = (y_prev.f + y_next.f) >> 1;
9914: 4419 add r1, r3
q->i = d >> 4;
9916: 9003 str r0, [sp, #12]
q->f = (d & 0xF) << 4;
9918: 9302 str r3, [sp, #8]
m = (y_prev.f + y_next.f) >> 1;
991a: f3c1 0147 ubfx r1, r1, #1, #8
if(outer) m = 255 - m;
991e: f1b9 0f00 cmp.w r9, #0
9922: d001 beq.n 9928 <lv_draw_mask_radius+0x404>
9924: 43c9 mvns r1, r1
9926: b2c9 uxtb r1, r1
if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m);
9928: f1b8 0f00 cmp.w r8, #0
992c: db06 blt.n 993c <lv_draw_mask_radius+0x418>
992e: 4545 cmp r5, r8
9930: dd04 ble.n 993c <lv_draw_mask_radius+0x418>
9932: f816 0008 ldrb.w r0, [r6, r8]
9936: 47b8 blx r7
9938: f806 0008 strb.w r0, [r6, r8]
if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m);
993c: 2c00 cmp r4, #0
993e: db04 blt.n 994a <lv_draw_mask_radius+0x426>
9940: 42a5 cmp r5, r4
9942: dd02 ble.n 994a <lv_draw_mask_radius+0x426>
9944: 5d30 ldrb r0, [r6, r4]
9946: 47b8 blx r7
9948: 5530 strb r0, [r6, r4]
y_prev.f = y_next.f;
994a: 9902 ldr r1, [sp, #8]
kl--;
994c: f108 38ff add.w r8, r8, #4294967295 ; 0xffffffff
kr++;
9950: 3401 adds r4, #1
for(; i <= x1.i; i++) {
9952: f10a 0a01 add.w sl, sl, #1
9956: 2301 movs r3, #1
9958: e783 b.n 9862 <lv_draw_mask_radius+0x33e>
if(y == p->y_prev) {
995a: f8d8 3014 ldr.w r3, [r8, #20]
if(radius <= 256) sqrt_mask = 0x800;
995e: f5ba 7f80 cmp.w sl, #256 ; 0x100
y = radius - abs_y;
9962: ebaa 0707 sub.w r7, sl, r7
if(radius <= 256) sqrt_mask = 0x800;
9966: bfd4 ite le
9968: f44f 6200 movle.w r2, #2048 ; 0x800
996c: f44f 4200 movgt.w r2, #32768 ; 0x8000
if(y == p->y_prev) {
9970: 42bb cmp r3, r7
9972: f43f ae7f beq.w 9674 <lv_draw_mask_radius+0x150>
_lv_sqrt(r2 - (y * y), &x0, sqrt_mask);
9976: 9b01 ldr r3, [sp, #4]
9978: 9205 str r2, [sp, #20]
997a: fb07 3017 mls r0, r7, r7, r3
997e: a906 add r1, sp, #24
9980: 4b02 ldr r3, [pc, #8] ; (998c <lv_draw_mask_radius+0x468>)
9982: 4798 blx r3
9984: 9a05 ldr r2, [sp, #20]
9986: e678 b.n 967a <lv_draw_mask_radius+0x156>
9988: 0000f2a9 .word 0x0000f2a9
998c: 0000ec25 .word 0x0000ec25
9990: 0000913d .word 0x0000913d
00009994 <lv_draw_mask_add>:
{
9994: b573 push {r0, r1, r4, r5, r6, lr}
if(LV_GC_ROOT(_lv_draw_mask_list[i]).param == NULL) break;
9996: 4c0e ldr r4, [pc, #56] ; (99d0 <lv_draw_mask_add+0x3c>)
{
9998: 2300 movs r3, #0
if(LV_GC_ROOT(_lv_draw_mask_list[i]).param == NULL) break;
999a: f854 6033 ldr.w r6, [r4, r3, lsl #3]
999e: b2da uxtb r2, r3
99a0: eb04 05c3 add.w r5, r4, r3, lsl #3
99a4: b176 cbz r6, 99c4 <lv_draw_mask_add+0x30>
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
99a6: 3301 adds r3, #1
99a8: 2b10 cmp r3, #16
99aa: d1f6 bne.n 999a <lv_draw_mask_add+0x6>
LV_LOG_WARN("lv_mask_add: no place to add the mask");
99ac: 4b09 ldr r3, [pc, #36] ; (99d4 <lv_draw_mask_add+0x40>)
99ae: 9300 str r3, [sp, #0]
99b0: 2002 movs r0, #2
99b2: 4b09 ldr r3, [pc, #36] ; (99d8 <lv_draw_mask_add+0x44>)
99b4: 4909 ldr r1, [pc, #36] ; (99dc <lv_draw_mask_add+0x48>)
99b6: 4c0a ldr r4, [pc, #40] ; (99e0 <lv_draw_mask_add+0x4c>)
99b8: 2257 movs r2, #87 ; 0x57
99ba: 47a0 blx r4
return LV_MASK_ID_INV;
99bc: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
}
99c0: b002 add sp, #8
99c2: bd70 pop {r4, r5, r6, pc}
LV_GC_ROOT(_lv_draw_mask_list[i]).param = param;
99c4: f844 0033 str.w r0, [r4, r3, lsl #3]
LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id = custom_id;
99c8: 6069 str r1, [r5, #4]
return i;
99ca: b210 sxth r0, r2
99cc: e7f8 b.n 99c0 <lv_draw_mask_add+0x2c>
99ce: bf00 nop
99d0: 200036c4 .word 0x200036c4
99d4: 000277bc .word 0x000277bc
99d8: 000277e2 .word 0x000277e2
99dc: 00027787 .word 0x00027787
99e0: 0000eb79 .word 0x0000eb79
000099e4 <lv_draw_mask_apply>:
{
99e4: e92d 47f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr}
_lv_draw_mask_saved_t * m = LV_GC_ROOT(_lv_draw_mask_list);
99e8: 4e0d ldr r6, [pc, #52] ; (9a20 <lv_draw_mask_apply+0x3c>)
{
99ea: 4607 mov r7, r0
99ec: 4688 mov r8, r1
99ee: 4691 mov r9, r2
99f0: 469a mov sl, r3
bool changed = false;
99f2: 2400 movs r4, #0
while(m->param) {
99f4: 6835 ldr r5, [r6, #0]
99f6: b925 cbnz r5, 9a02 <lv_draw_mask_apply+0x1e>
return changed ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER;
99f8: 3401 adds r4, #1
99fa: b2e0 uxtb r0, r4
}
99fc: b002 add sp, #8
99fe: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
res = dsc->cb(mask_buf, abs_x, abs_y, len, (void *)m->param);
9a02: 9500 str r5, [sp, #0]
9a04: 682d ldr r5, [r5, #0]
9a06: 4653 mov r3, sl
9a08: 464a mov r2, r9
9a0a: 4641 mov r1, r8
9a0c: 4638 mov r0, r7
9a0e: 47a8 blx r5
if(res == LV_DRAW_MASK_RES_TRANSP) return LV_DRAW_MASK_RES_TRANSP;
9a10: 2800 cmp r0, #0
9a12: d0f3 beq.n 99fc <lv_draw_mask_apply+0x18>
else if(res == LV_DRAW_MASK_RES_CHANGED) changed = true;
9a14: 2802 cmp r0, #2
9a16: bf08 it eq
9a18: 2401 moveq r4, #1
m++;
9a1a: 3608 adds r6, #8
9a1c: e7ea b.n 99f4 <lv_draw_mask_apply+0x10>
9a1e: bf00 nop
9a20: 200036c4 .word 0x200036c4
00009a24 <lv_draw_mask_remove_id>:
if(id != LV_MASK_ID_INV) {
9a24: 1c43 adds r3, r0, #1
p = LV_GC_ROOT(_lv_draw_mask_list[id]).param;
9a26: bf18 it ne
9a28: 4b07 ldrne r3, [pc, #28] ; (9a48 <lv_draw_mask_remove_id+0x24>)
9a2a: f04f 0200 mov.w r2, #0
9a2e: bf1d ittte ne
9a30: f853 1030 ldrne.w r1, [r3, r0, lsl #3]
LV_GC_ROOT(_lv_draw_mask_list[id]).param = NULL;
9a34: f843 2030 strne.w r2, [r3, r0, lsl #3]
LV_GC_ROOT(_lv_draw_mask_list[id]).custom_id = NULL;
9a38: eb03 03c0 addne.w r3, r3, r0, lsl #3
void * p = NULL;
9a3c: 4611 moveq r1, r2
LV_GC_ROOT(_lv_draw_mask_list[id]).custom_id = NULL;
9a3e: bf18 it ne
9a40: 605a strne r2, [r3, #4]
}
9a42: 4608 mov r0, r1
9a44: 4770 bx lr
9a46: bf00 nop
9a48: 200036c4 .word 0x200036c4
00009a4c <lv_draw_mask_remove_custom>:
{
9a4c: 2200 movs r2, #0
9a4e: 4b08 ldr r3, [pc, #32] ; (9a70 <lv_draw_mask_remove_custom+0x24>)
9a50: b530 push {r4, r5, lr}
void * p = NULL;
9a52: 4611 mov r1, r2
LV_GC_ROOT(_lv_draw_mask_list[i]).param = NULL;
9a54: 4614 mov r4, r2
if(LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id == custom_id) {
9a56: 685d ldr r5, [r3, #4]
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
9a58: 3201 adds r2, #1
if(LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id == custom_id) {
9a5a: 4285 cmp r5, r0
p = LV_GC_ROOT(_lv_draw_mask_list[i]).param;
9a5c: bf04 itt eq
9a5e: 6819 ldreq r1, [r3, #0]
LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id = NULL;
9a60: e9c3 4400 strdeq r4, r4, [r3]
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
9a64: 2a10 cmp r2, #16
9a66: f103 0308 add.w r3, r3, #8
9a6a: d1f4 bne.n 9a56 <lv_draw_mask_remove_custom+0xa>
}
9a6c: 4608 mov r0, r1
9a6e: bd30 pop {r4, r5, pc}
9a70: 200036c4 .word 0x200036c4
00009a74 <lv_draw_mask_get_cnt>:
{
9a74: 2300 movs r3, #0
if(LV_GC_ROOT(_lv_draw_mask_list[i]).param) cnt++;
9a76: 4a05 ldr r2, [pc, #20] ; (9a8c <lv_draw_mask_get_cnt+0x18>)
uint8_t cnt = 0;
9a78: 4618 mov r0, r3
if(LV_GC_ROOT(_lv_draw_mask_list[i]).param) cnt++;
9a7a: f852 1033 ldr.w r1, [r2, r3, lsl #3]
9a7e: b109 cbz r1, 9a84 <lv_draw_mask_get_cnt+0x10>
9a80: 3001 adds r0, #1
9a82: b2c0 uxtb r0, r0
for(i = 0; i < _LV_MASK_MAX_NUM; i++) {
9a84: 3301 adds r3, #1
9a86: 2b10 cmp r3, #16
9a88: d1f7 bne.n 9a7a <lv_draw_mask_get_cnt+0x6>
}
9a8a: 4770 bx lr
9a8c: 200036c4 .word 0x200036c4
00009a90 <lv_draw_mask_line_points_init>:
{
9a90: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
9a94: f9bd 8018 ldrsh.w r8, [sp, #24]
9a98: 4615 mov r5, r2
9a9a: 460e mov r6, r1
9a9c: 461f mov r7, r3
_lv_memset_00(param, sizeof(lv_draw_mask_line_param_t));
9a9e: 212c movs r1, #44 ; 0x2c
9aa0: 4b3b ldr r3, [pc, #236] ; (9b90 <lv_draw_mask_line_points_init+0x100>)
{
9aa2: 4604 mov r4, r0
_lv_memset_00(param, sizeof(lv_draw_mask_line_param_t));
9aa4: 4798 blx r3
if(p1y > p2y) {
9aa6: 4545 cmp r5, r8
9aa8: dd05 ble.n 9ab6 <lv_draw_mask_line_points_init+0x26>
9aaa: 462b mov r3, r5
9aac: 4645 mov r5, r8
9aae: 4698 mov r8, r3
9ab0: 4633 mov r3, r6
p1x = t;
9ab2: 463e mov r6, r7
p2x = p1x;
9ab4: 461f mov r7, r3
param->cfg.side = side;
9ab6: 7c23 ldrb r3, [r4, #16]
9ab8: f89d 201c ldrb.w r2, [sp, #28]
param->cfg.p1.y = p1y;
9abc: 8165 strh r5, [r4, #10]
param->cfg.side = side;
9abe: f362 0301 bfi r3, r2, #0, #2
9ac2: 7423 strb r3, [r4, #16]
param->flat = (LV_MATH_ABS(p2x - p1x) > LV_MATH_ABS(p2y - p1y)) ? 1 : 0;
9ac4: eba8 0205 sub.w r2, r8, r5
9ac8: 1bbb subs r3, r7, r6
9aca: ea83 70e3 eor.w r0, r3, r3, asr #31
9ace: ea82 71e2 eor.w r1, r2, r2, asr #31
9ad2: eba0 70e3 sub.w r0, r0, r3, asr #31
9ad6: eba1 71e2 sub.w r1, r1, r2, asr #31
9ada: 4288 cmp r0, r1
9adc: f894 1028 ldrb.w r1, [r4, #40] ; 0x28
param->origo.y = p1y;
9ae0: 82a5 strh r5, [r4, #20]
param->flat = (LV_MATH_ABS(p2x - p1x) > LV_MATH_ABS(p2y - p1y)) ? 1 : 0;
9ae2: bfd4 ite le
9ae4: 2000 movle r0, #0
9ae6: 2001 movgt r0, #1
9ae8: f360 0100 bfi r1, r0, #0, #1
param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_line;
9aec: 4d29 ldr r5, [pc, #164] ; (9b94 <lv_draw_mask_line_points_init+0x104>)
param->flat = (LV_MATH_ABS(p2x - p1x) > LV_MATH_ABS(p2y - p1y)) ? 1 : 0;
9aee: f884 1028 strb.w r1, [r4, #40] ; 0x28
param->yx_steep = 0;
9af2: 2000 movs r0, #0
if(param->flat) {
9af4: 07c9 lsls r1, r1, #31
param->xy_steep = 0;
9af6: e9c4 0006 strd r0, r0, [r4, #24]
param->cfg.p1.x = p1x;
9afa: 8126 strh r6, [r4, #8]
param->cfg.p2.x = p2x;
9afc: 81a7 strh r7, [r4, #12]
param->cfg.p2.y = p2y;
9afe: f8a4 800e strh.w r8, [r4, #14]
param->origo.x = p1x;
9b02: 8266 strh r6, [r4, #18]
param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_line;
9b04: 6025 str r5, [r4, #0]
param->dsc.type = LV_DRAW_MASK_TYPE_LINE;
9b06: 7120 strb r0, [r4, #4]
if(param->flat) {
9b08: d52b bpl.n 9b62 <lv_draw_mask_line_points_init+0xd2>
if(dx) {
9b0a: b133 cbz r3, 9b1a <lv_draw_mask_line_points_init+0x8a>
m = (1 << 20) / dx; /*m is multiplier to normalize y (upscaled by 1024)*/
9b0c: f44f 1180 mov.w r1, #1048576 ; 0x100000
9b10: fb91 f1f3 sdiv r1, r1, r3
param->yx_steep = (m * dy) >> 10;
9b14: 4351 muls r1, r2
9b16: 1289 asrs r1, r1, #10
9b18: 61e1 str r1, [r4, #28]
if(dy) {
9b1a: b132 cbz r2, 9b2a <lv_draw_mask_line_points_init+0x9a>
m = (1 << 20) / dy; /*m is multiplier to normalize x (upscaled by 1024)*/
9b1c: f44f 1180 mov.w r1, #1048576 ; 0x100000
9b20: fb91 f2f2 sdiv r2, r1, r2
param->xy_steep = (m * dx) >> 10;
9b24: 4353 muls r3, r2
9b26: 129b asrs r3, r3, #10
9b28: 61a3 str r3, [r4, #24]
param->steep = param->yx_steep;
9b2a: 69e2 ldr r2, [r4, #28]
if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0;
9b2c: 7c23 ldrb r3, [r4, #16]
param->steep = param->yx_steep;
9b2e: 6222 str r2, [r4, #32]
if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0;
9b30: f013 0303 ands.w r3, r3, #3
9b34: d007 beq.n 9b46 <lv_draw_mask_line_points_init+0xb6>
else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) param->inv = 1;
9b36: 2b01 cmp r3, #1
9b38: d005 beq.n 9b46 <lv_draw_mask_line_points_init+0xb6>
else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP) {
9b3a: 2b02 cmp r3, #2
9b3c: d123 bne.n 9b86 <lv_draw_mask_line_points_init+0xf6>
if(param->steep > 0) param->inv = 1;
9b3e: 2a00 cmp r2, #0
9b40: bfd4 ite le
9b42: 2300 movle r3, #0
9b44: 2301 movgt r3, #1
if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0;
9b46: f894 1028 ldrb.w r1, [r4, #40] ; 0x28
if(param->steep < 0) param->spx = -param->spx;
9b4a: 2a00 cmp r2, #0
if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0;
9b4c: f363 0141 bfi r1, r3, #1, #1
param->spx = param->steep >> 2;
9b50: ea4f 03a2 mov.w r3, r2, asr #2
if(param->steep < 0) param->spx = -param->spx;
9b54: bfb8 it lt
9b56: 425b neglt r3, r3
if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0;
9b58: f884 1028 strb.w r1, [r4, #40] ; 0x28
if(param->steep < 0) param->spx = -param->spx;
9b5c: 6263 str r3, [r4, #36] ; 0x24
}
9b5e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
if(dy) {
9b62: b132 cbz r2, 9b72 <lv_draw_mask_line_points_init+0xe2>
m = (1 << 20) / dy; /*m is multiplier to normalize x (upscaled by 1024)*/
9b64: f44f 1180 mov.w r1, #1048576 ; 0x100000
9b68: fb91 f1f2 sdiv r1, r1, r2
param->xy_steep = (m * dx) >> 10;
9b6c: 4359 muls r1, r3
9b6e: 1289 asrs r1, r1, #10
9b70: 61a1 str r1, [r4, #24]
if(dx) {
9b72: b133 cbz r3, 9b82 <lv_draw_mask_line_points_init+0xf2>
m = (1 << 20) / dx; /*m is multiplier to normalize x (upscaled by 1024)*/
9b74: f44f 1180 mov.w r1, #1048576 ; 0x100000
9b78: fb91 f3f3 sdiv r3, r1, r3
param->yx_steep = (m * dy) >> 10;
9b7c: 4353 muls r3, r2
9b7e: 129b asrs r3, r3, #10
9b80: 61e3 str r3, [r4, #28]
param->steep = param->xy_steep;
9b82: 69a2 ldr r2, [r4, #24]
9b84: e7d2 b.n 9b2c <lv_draw_mask_line_points_init+0x9c>
if(param->steep > 0) param->inv = 0;
9b86: 2a00 cmp r2, #0
9b88: bfcc ite gt
9b8a: 2300 movgt r3, #0
9b8c: 2301 movle r3, #1
9b8e: e7da b.n 9b46 <lv_draw_mask_line_points_init+0xb6>
9b90: 0000f2a9 .word 0x0000f2a9
9b94: 00009159 .word 0x00009159
00009b98 <lv_draw_mask_radius_init>:
{
9b98: b5f8 push {r3, r4, r5, r6, r7, lr}
9b9a: 4604 mov r4, r0
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
9b9c: 88c8 ldrh r0, [r1, #6]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
9b9e: 888d ldrh r5, [r1, #4]
9ba0: 461f mov r7, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
9ba2: 884b ldrh r3, [r1, #2]
9ba4: 3001 adds r0, #1
9ba6: 1ac0 subs r0, r0, r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
9ba8: 880b ldrh r3, [r1, #0]
9baa: 3501 adds r5, #1
9bac: 1aed subs r5, r5, r3
int32_t short_side = LV_MATH_MIN(w, h);
9bae: b200 sxth r0, r0
9bb0: b22d sxth r5, r5
9bb2: 42a8 cmp r0, r5
9bb4: bfa8 it ge
9bb6: 4628 movge r0, r5
if(radius > short_side >> 1) radius = short_side >> 1;
9bb8: ebb2 0f60 cmp.w r2, r0, asr #1
9bbc: ea4f 0360 mov.w r3, r0, asr #1
{
9bc0: 4616 mov r6, r2
lv_area_copy(&param->cfg.rect, rect);
9bc2: f104 0008 add.w r0, r4, #8
if(radius > short_side >> 1) radius = short_side >> 1;
9bc6: bfc8 it gt
9bc8: b21e sxthgt r6, r3
lv_area_copy(&param->cfg.rect, rect);
9bca: 4b08 ldr r3, [pc, #32] ; (9bec <lv_draw_mask_radius_init+0x54>)
9bcc: 4798 blx r3
param->cfg.outer = inv ? 1 : 0;
9bce: 7ca3 ldrb r3, [r4, #18]
param->cfg.radius = radius;
9bd0: 8226 strh r6, [r4, #16]
param->cfg.outer = inv ? 1 : 0;
9bd2: f367 0300 bfi r3, r7, #0, #1
9bd6: 74a3 strb r3, [r4, #18]
param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_radius;
9bd8: 4b05 ldr r3, [pc, #20] ; (9bf0 <lv_draw_mask_radius_init+0x58>)
9bda: 6023 str r3, [r4, #0]
param->dsc.type = LV_DRAW_MASK_TYPE_RADIUS;
9bdc: 2302 movs r3, #2
9bde: 7123 strb r3, [r4, #4]
param->y_prev_x.i = 0;
9be0: f04f 4200 mov.w r2, #2147483648 ; 0x80000000
9be4: 2300 movs r3, #0
9be6: e9c4 2305 strd r2, r3, [r4, #20]
}
9bea: bdf8 pop {r3, r4, r5, r6, r7, pc}
9bec: 00009511 .word 0x00009511
9bf0: 00009525 .word 0x00009525
00009bf4 <grad_get>:
lv_draw_mask_remove_id(mask_rout_id);
_lv_mem_buf_release(mask_buf);
}
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t grad_get(lv_draw_rect_dsc_t * dsc, lv_coord_t s, lv_coord_t i)
{
9bf4: b570 push {r4, r5, r6, lr}
int32_t min = (dsc->bg_main_color_stop * s) >> 8;
9bf6: f9b0 4008 ldrsh.w r4, [r0, #8]
9bfa: fb04 f301 mul.w r3, r4, r1
if(i <= min) return dsc->bg_color;
9bfe: ebb2 2f23 cmp.w r2, r3, asr #8
int32_t min = (dsc->bg_main_color_stop * s) >> 8;
9c02: ea4f 2523 mov.w r5, r3, asr #8
if(i <= min) return dsc->bg_color;
9c06: dc01 bgt.n 9c0c <grad_get+0x18>
9c08: 8840 ldrh r0, [r0, #2]
int32_t d = dsc->bg_grad_color_stop - dsc->bg_main_color_stop;
d = (s * d) >> 8;
i -= min;
lv_opa_t mix = (i * 255) / d;
return lv_color_mix(dsc->bg_grad_color, dsc->bg_color, mix);
}
9c0a: bd70 pop {r4, r5, r6, pc}
int32_t max = (dsc->bg_grad_color_stop * s) >> 8;
9c0c: f9b0 300a ldrsh.w r3, [r0, #10]
9c10: fb01 f603 mul.w r6, r1, r3
if(i >= max) return dsc->bg_grad_color;
9c14: ebb2 2f26 cmp.w r2, r6, asr #8
9c18: db01 blt.n 9c1e <grad_get+0x2a>
9c1a: 8880 ldrh r0, [r0, #4]
9c1c: e7f5 b.n 9c0a <grad_get+0x16>
int32_t d = dsc->bg_grad_color_stop - dsc->bg_main_color_stop;
9c1e: 1b1b subs r3, r3, r4
d = (s * d) >> 8;
9c20: 4359 muls r1, r3
i -= min;
9c22: 1b52 subs r2, r2, r5
d = (s * d) >> 8;
9c24: 120b asrs r3, r1, #8
lv_opa_t mix = (i * 255) / d;
9c26: b212 sxth r2, r2
{
lv_color_t ret;
#if LV_COLOR_DEPTH != 1
/*LV_COLOR_DEPTH == 8, 16 or 32*/
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
9c28: 8841 ldrh r1, [r0, #2]
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
9c2a: 7906 ldrb r6, [r0, #4]
9c2c: ebc2 2202 rsb r2, r2, r2, lsl #8
9c30: fb92 f3f3 sdiv r3, r2, r3
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
9c34: 8882 ldrh r2, [r0, #4]
9c36: b2db uxtb r3, r3
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
9c38: f1c3 05ff rsb r5, r3, #255 ; 0xff
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
9c3c: f3c1 1145 ubfx r1, r1, #5, #6
9c40: f3c2 1245 ubfx r2, r2, #5, #6
9c44: 4369 muls r1, r5
9c46: fb03 1102 mla r1, r3, r2, r1
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
9c4a: 7882 ldrb r2, [r0, #2]
9c4c: f002 021f and.w r2, r2, #31
9c50: f006 061f and.w r6, r6, #31
9c54: 436a muls r2, r5
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
9c56: f248 0481 movw r4, #32897 ; 0x8081
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
9c5a: fb03 2206 mla r2, r3, r6, r2
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
9c5e: 4361 muls r1, r4
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
9c60: 4362 muls r2, r4
9c62: f3c1 51c5 ubfx r1, r1, #23, #6
9c66: f3c2 52c4 ubfx r2, r2, #23, #5
9c6a: ea42 1241 orr.w r2, r2, r1, lsl #5
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
9c6e: 78c1 ldrb r1, [r0, #3]
9c70: 7946 ldrb r6, [r0, #5]
9c72: 08c9 lsrs r1, r1, #3
9c74: 08f6 lsrs r6, r6, #3
9c76: 4369 muls r1, r5
9c78: fb03 1306 mla r3, r3, r6, r1
9c7c: 4363 muls r3, r4
9c7e: 0ddb lsrs r3, r3, #23
9c80: ea42 20c3 orr.w r0, r2, r3, lsl #11
return lv_color_mix(dsc->bg_grad_color, dsc->bg_color, mix);
9c84: e7c1 b.n 9c0a <grad_get+0x16>
...
00009c88 <shadow_blur_corner>:
#endif
}
LV_ATTRIBUTE_FAST_MEM static void shadow_blur_corner(lv_coord_t size, lv_coord_t sw, uint16_t * sh_ups_buf)
{
9c88: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
int32_t s_left = sw >> 1;
int32_t s_right = (sw >> 1);
if((sw & 1) == 0) s_left--;
/*Horizontal blur*/
uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t));
9c8c: 0045 lsls r5, r0, #1
int32_t s_left = sw >> 1;
9c8e: ea4f 0961 mov.w r9, r1, asr #1
{
9c92: b087 sub sp, #28
if((sw & 1) == 0) s_left--;
9c94: 07cb lsls r3, r1, #31
{
9c96: 4604 mov r4, r0
uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t));
9c98: 4b5a ldr r3, [pc, #360] ; (9e04 <shadow_blur_corner+0x17c>)
9c9a: 4628 mov r0, r5
{
9c9c: 460e mov r6, r1
9c9e: 4617 mov r7, r2
int32_t s_left = sw >> 1;
9ca0: 46ca mov sl, r9
if((sw & 1) == 0) s_left--;
9ca2: bf58 it pl
9ca4: f109 3aff addpl.w sl, r9, #4294967295 ; 0xffffffff
uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t));
9ca8: 4798 blx r3
int32_t y;
uint16_t * sh_ups_tmp_buf = sh_ups_buf;
for(y = 0; y < size; y++) {
int32_t v = sh_ups_tmp_buf[size - 1] * sw;
9caa: 1eab subs r3, r5, #2
9cac: 9300 str r3, [sp, #0]
9cae: ea4f 0349 mov.w r3, r9, lsl #1
9cb2: 9301 str r3, [sp, #4]
9cb4: f06f 0301 mvn.w r3, #1
9cb8: fb0a 3303 mla r3, sl, r3, r3
uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t));
9cbc: 4601 mov r1, r0
for(y = 0; y < size; y++) {
9cbe: 46b8 mov r8, r7
9cc0: f04f 0b00 mov.w fp, #0
9cc4: 9302 str r3, [sp, #8]
9cc6: 455c cmp r4, fp
9cc8: dc22 bgt.n 9d10 <shadow_blur_corner+0x88>
sh_ups_tmp_buf += size;
}
/*Vertical blur*/
uint32_t i;
sh_ups_buf[0] = sh_ups_buf[0] / sw;
9cca: 883b ldrh r3, [r7, #0]
9ccc: fb93 f3f6 sdiv r3, r3, r6
for(i = 1; i < (uint32_t)size * size; i++) {
9cd0: fb04 f804 mul.w r8, r4, r4
sh_ups_buf[0] = sh_ups_buf[0] / sw;
9cd4: 803b strh r3, [r7, #0]
for(i = 1; i < (uint32_t)size * size; i++) {
9cd6: 463a mov r2, r7
9cd8: 463b mov r3, r7
9cda: f04f 0c01 mov.w ip, #1
9cde: 45c4 cmp ip, r8
9ce0: d341 bcc.n 9d66 <shadow_blur_corner+0xde>
9ce2: 426b negs r3, r5
9ce4: fb09 f303 mul.w r3, r9, r3
9ce8: 9303 str r3, [sp, #12]
v -= top_val;
/*Add the bottom pixel*/
uint32_t bottom_val;
if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x];
else bottom_val = sh_ups_buf[(size - 1) * size + x];
9cea: 1e63 subs r3, r4, #1
9cec: fb05 7303 mla r3, r5, r3, r7
9cf0: 9302 str r3, [sp, #8]
9cf2: f10a 0301 add.w r3, sl, #1
9cf6: 9301 str r3, [sp, #4]
9cf8: fb0a 5a05 mla sl, sl, r5, r5
for(x = 0; x < size; x++) {
9cfc: f04f 0c00 mov.w ip, #0
9d00: 4564 cmp r4, ip
9d02: dc3e bgt.n 9d82 <shadow_blur_corner+0xfa>
for(y = 0; y < size; y++, sh_ups_tmp_buf += size) {
(*sh_ups_tmp_buf) = sh_ups_blur_buf[y];
}
}
_lv_mem_buf_release(sh_ups_blur_buf);
9d04: 4b40 ldr r3, [pc, #256] ; (9e08 <shadow_blur_corner+0x180>)
9d06: 4608 mov r0, r1
}
9d08: b007 add sp, #28
9d0a: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
_lv_mem_buf_release(sh_ups_blur_buf);
9d0e: 4718 bx r3
int32_t v = sh_ups_tmp_buf[size - 1] * sw;
9d10: 9b00 ldr r3, [sp, #0]
9d12: 9801 ldr r0, [sp, #4]
9d14: f838 2003 ldrh.w r2, [r8, r3]
9d18: eb00 0c08 add.w ip, r0, r8
9d1c: 9802 ldr r0, [sp, #8]
9d1e: 4372 muls r2, r6
for(x = size - 1; x >= 0; x--) {
9d20: 1e63 subs r3, r4, #1
9d22: 4440 add r0, r8
sh_ups_blur_buf[x] = v;
9d24: f821 2013 strh.w r2, [r1, r3, lsl #1]
if(x + s_right < size) right_val = sh_ups_tmp_buf[x + s_right];
9d28: eb03 0e09 add.w lr, r3, r9
9d2c: 4574 cmp r4, lr
9d2e: bfcc ite gt
9d30: f83c e013 ldrhgt.w lr, [ip, r3, lsl #1]
uint32_t right_val = 0;
9d34: f04f 0e00 movle.w lr, #0
v -= right_val;
9d38: eba2 0e0e sub.w lr, r2, lr
if(x - s_left - 1 < 0) left_val = sh_ups_tmp_buf[0];
9d3c: eba3 020a sub.w r2, r3, sl
9d40: 2a00 cmp r2, #0
9d42: bfd4 ite le
9d44: f8b8 2000 ldrhle.w r2, [r8]
else left_val = sh_ups_tmp_buf[x - s_left - 1];
9d48: f830 2013 ldrhgt.w r2, [r0, r3, lsl #1]
for(x = size - 1; x >= 0; x--) {
9d4c: 3b01 subs r3, #1
v += left_val;
9d4e: 4472 add r2, lr
for(x = size - 1; x >= 0; x--) {
9d50: d2e8 bcs.n 9d24 <shadow_blur_corner+0x9c>
_lv_memcpy(sh_ups_tmp_buf, sh_ups_blur_buf, size * sizeof(uint16_t));
9d52: 4640 mov r0, r8
9d54: 4b2d ldr r3, [pc, #180] ; (9e0c <shadow_blur_corner+0x184>)
9d56: 9103 str r1, [sp, #12]
9d58: 462a mov r2, r5
9d5a: 4798 blx r3
sh_ups_tmp_buf += size;
9d5c: 44a8 add r8, r5
for(y = 0; y < size; y++) {
9d5e: 9903 ldr r1, [sp, #12]
9d60: f10b 0b01 add.w fp, fp, #1
9d64: e7af b.n 9cc6 <shadow_blur_corner+0x3e>
if(sh_ups_buf[i] == sh_ups_buf[i - 1]) sh_ups_buf[i] = sh_ups_buf[i - 1];
9d66: 8858 ldrh r0, [r3, #2]
9d68: f833 eb02 ldrh.w lr, [r3], #2
9d6c: 4570 cmp r0, lr
else sh_ups_buf[i] = sh_ups_buf[i] / sw;
9d6e: bf1c itt ne
9d70: fb90 f0f6 sdivne r0, r0, r6
9d74: fa1f fe80 uxthne.w lr, r0
9d78: f8a3 e000 strh.w lr, [r3]
for(i = 1; i < (uint32_t)size * size; i++) {
9d7c: f10c 0c01 add.w ip, ip, #1
9d80: e7ad b.n 9cde <shadow_blur_corner+0x56>
sh_ups_tmp_buf = &sh_ups_buf[x];
9d82: 9803 ldr r0, [sp, #12]
int32_t v = sh_ups_tmp_buf[0] * sw;
9d84: 8813 ldrh r3, [r2, #0]
9d86: 1810 adds r0, r2, r0
9d88: 4373 muls r3, r6
9d8a: 9005 str r0, [sp, #20]
9d8c: 2700 movs r7, #0
9d8e: eb0a 0002 add.w r0, sl, r2
9d92: 9004 str r0, [sp, #16]
sh_ups_tmp_buf = &sh_ups_buf[x];
9d94: 4696 mov lr, r2
int32_t v = sh_ups_tmp_buf[0] * sw;
9d96: 9300 str r3, [sp, #0]
9d98: 4690 mov r8, r2
for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) {
9d9a: 4638 mov r0, r7
sh_ups_blur_buf[y] = v < 0 ? 0 : (v >> SHADOW_UPSACALE_SHIFT);
9d9c: 9b00 ldr r3, [sp, #0]
9d9e: 2b00 cmp r3, #0
9da0: bfac ite ge
9da2: f3c3 1b8f ubfxge fp, r3, #6, #16
9da6: f04f 0b00 movlt.w fp, #0
9daa: f821 b010 strh.w fp, [r1, r0, lsl #1]
if(y - s_right <= 0) top_val = sh_ups_tmp_buf[0];
9dae: eba0 0b09 sub.w fp, r0, r9
9db2: f1bb 0f00 cmp.w fp, #0
else top_val = sh_ups_buf[(y - s_right) * size + x];
9db6: bfca itet gt
9db8: 9b05 ldrgt r3, [sp, #20]
if(y - s_right <= 0) top_val = sh_ups_tmp_buf[0];
9dba: f8b8 b000 ldrhle.w fp, [r8]
else top_val = sh_ups_buf[(y - s_right) * size + x];
9dbe: f833 b007 ldrhgt.w fp, [r3, r7]
v -= top_val;
9dc2: 9b00 ldr r3, [sp, #0]
9dc4: eba3 0b0b sub.w fp, r3, fp
if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x];
9dc8: 9b01 ldr r3, [sp, #4]
9dca: 4403 add r3, r0
9dcc: 429c cmp r4, r3
9dce: bfcb itete gt
9dd0: 9b04 ldrgt r3, [sp, #16]
else bottom_val = sh_ups_buf[(size - 1) * size + x];
9dd2: 9b02 ldrle r3, [sp, #8]
if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x];
9dd4: 5bdb ldrhgt r3, [r3, r7]
else bottom_val = sh_ups_buf[(size - 1) * size + x];
9dd6: f833 301c ldrhle.w r3, [r3, ip, lsl #1]
for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) {
9dda: 3001 adds r0, #1
v += bottom_val;
9ddc: 445b add r3, fp
for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) {
9dde: 4284 cmp r4, r0
v += bottom_val;
9de0: 9300 str r3, [sp, #0]
for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) {
9de2: 44a8 add r8, r5
9de4: 442f add r7, r5
9de6: dcd9 bgt.n 9d9c <shadow_blur_corner+0x114>
for(y = 0; y < size; y++, sh_ups_tmp_buf += size) {
9de8: 2300 movs r3, #0
(*sh_ups_tmp_buf) = sh_ups_blur_buf[y];
9dea: f831 0013 ldrh.w r0, [r1, r3, lsl #1]
9dee: f8ae 0000 strh.w r0, [lr]
for(y = 0; y < size; y++, sh_ups_tmp_buf += size) {
9df2: 3301 adds r3, #1
9df4: 429c cmp r4, r3
9df6: 44ae add lr, r5
9df8: dcf7 bgt.n 9dea <shadow_blur_corner+0x162>
for(x = 0; x < size; x++) {
9dfa: f10c 0c01 add.w ip, ip, #1
9dfe: 3202 adds r2, #2
9e00: e77e b.n 9d00 <shadow_blur_corner+0x78>
9e02: bf00 nop
9e04: 0000f145 .word 0x0000f145
9e08: 0000edf9 .word 0x0000edf9
9e0c: 0000eec1 .word 0x0000eec1
00009e10 <lv_area_copy>:
LV_ATTRIBUTE_FAST_MEM static inline void * _lv_memcpy_small(void * dst, const void * src, size_t len)
{
uint8_t * d8 = (uint8_t *)dst;
const uint8_t * s8 = (const uint8_t *)src;
while(len) {
9e10: 3901 subs r1, #1
9e12: f100 0308 add.w r3, r0, #8
*d8 = *s8;
9e16: f811 2f01 ldrb.w r2, [r1, #1]!
9e1a: f800 2b01 strb.w r2, [r0], #1
while(len) {
9e1e: 4298 cmp r0, r3
9e20: d1f9 bne.n 9e16 <lv_area_copy+0x6>
* @param src pointer to the source area
*/
inline static void lv_area_copy(lv_area_t * dest, const lv_area_t * src)
{
_lv_memcpy_small(dest, src, sizeof(lv_area_t));
}
9e22: 4770 bx lr
00009e24 <lv_draw_rect_dsc_init>:
{
9e24: b510 push {r4, lr}
_lv_memset_00(dsc, sizeof(lv_draw_rect_dsc_t));
9e26: 4b0f ldr r3, [pc, #60] ; (9e64 <lv_draw_rect_dsc_init+0x40>)
9e28: 2154 movs r1, #84 ; 0x54
{
9e2a: 4604 mov r4, r0
_lv_memset_00(dsc, sizeof(lv_draw_rect_dsc_t));
9e2c: 4798 blx r3
dsc->bg_color = LV_COLOR_WHITE;
9e2e: 4b0e ldr r3, [pc, #56] ; (9e68 <lv_draw_rect_dsc_init+0x44>)
9e30: 881b ldrh r3, [r3, #0]
9e32: 8063 strh r3, [r4, #2]
dsc->bg_grad_color = LV_COLOR_BLACK;
9e34: 2200 movs r2, #0
dsc->bg_grad_color_stop = 0xFF;
9e36: 23ff movs r3, #255 ; 0xff
dsc->bg_grad_color = LV_COLOR_BLACK;
9e38: 80a2 strh r2, [r4, #4]
dsc->border_color = LV_COLOR_BLACK;
9e3a: 81e2 strh r2, [r4, #14]
dsc->value_color = LV_COLOR_BLACK;
9e3c: f8a4 2046 strh.w r2, [r4, #70] ; 0x46
dsc->shadow_color = LV_COLOR_BLACK;
9e40: 83e2 strh r2, [r4, #30]
dsc->bg_grad_color_stop = 0xFF;
9e42: 8163 strh r3, [r4, #10]
dsc->bg_opa = LV_OPA_COVER;
9e44: 7323 strb r3, [r4, #12]
dsc->outline_opa = LV_OPA_COVER;
9e46: 7723 strb r3, [r4, #28]
dsc->border_opa = LV_OPA_COVER;
9e48: 7523 strb r3, [r4, #20]
dsc->pattern_recolor = LV_COLOR_BLACK;
9e4a: 86a2 strh r2, [r4, #52] ; 0x34
dsc->pattern_opa = LV_OPA_COVER;
9e4c: f884 3036 strb.w r3, [r4, #54] ; 0x36
dsc->pattern_font = LV_THEME_DEFAULT_FONT_NORMAL;
9e50: 4a06 ldr r2, [pc, #24] ; (9e6c <lv_draw_rect_dsc_init+0x48>)
dsc->value_opa = LV_OPA_COVER;
9e52: f884 3044 strb.w r3, [r4, #68] ; 0x44
dsc->shadow_opa = LV_OPA_COVER;
9e56: f884 3028 strb.w r3, [r4, #40] ; 0x28
dsc->border_side = LV_BORDER_SIDE_FULL;
9e5a: 230f movs r3, #15
dsc->pattern_font = LV_THEME_DEFAULT_FONT_NORMAL;
9e5c: 6322 str r2, [r4, #48] ; 0x30
dsc->value_font = LV_THEME_DEFAULT_FONT_NORMAL;
9e5e: 6422 str r2, [r4, #64] ; 0x40
dsc->border_side = LV_BORDER_SIDE_FULL;
9e60: 8263 strh r3, [r4, #18]
}
9e62: bd10 pop {r4, pc}
9e64: 0000f2a9 .word 0x0000f2a9
9e68: 00027874 .word 0x00027874
9e6c: 20000004 .word 0x20000004
00009e70 <lv_draw_rect>:
{
9e70: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
9e74: 4692 mov sl, r2
* @param area_p pointer to an area
* @return the height of the area (if y1 == y2 -> height = 1)
*/
static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p)
{
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
9e76: 88c2 ldrh r2, [r0, #6]
9e78: 8845 ldrh r5, [r0, #2]
9e7a: 1c53 adds r3, r2, #1
9e7c: ed2d 8b04 vpush {d8-d9}
9e80: 1b5b subs r3, r3, r5
if(lv_area_get_height(coords) < 1 || lv_area_get_width(coords) < 1) return;
9e82: b21b sxth r3, r3
9e84: 2b00 cmp r3, #0
{
9e86: b0ad sub sp, #180 ; 0xb4
9e88: 4683 mov fp, r0
9e8a: 4688 mov r8, r1
if(lv_area_get_height(coords) < 1 || lv_area_get_width(coords) < 1) return;
9e8c: f341 816e ble.w b16c <lv_draw_rect+0x12fc>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
9e90: 8881 ldrh r1, [r0, #4]
9e92: 8800 ldrh r0, [r0, #0]
9e94: 1c4b adds r3, r1, #1
9e96: 1a1b subs r3, r3, r0
9e98: b21b sxth r3, r3
9e9a: 2b00 cmp r3, #0
9e9c: f341 8166 ble.w b16c <lv_draw_rect+0x12fc>
if(dsc->shadow_width == 0) return;
9ea0: f9ba 4020 ldrsh.w r4, [sl, #32]
9ea4: 2c00 cmp r4, #0
9ea6: f000 8542 beq.w a92e <lv_draw_rect+0xabe>
if(dsc->shadow_opa <= LV_OPA_MIN) return;
9eaa: f89a 3028 ldrb.w r3, [sl, #40] ; 0x28
9eae: 9308 str r3, [sp, #32]
9eb0: 2b05 cmp r3, #5
9eb2: f240 853c bls.w a92e <lv_draw_rect+0xabe>
if(dsc->shadow_width == 1 && dsc->shadow_ofs_x == 0 &&
9eb6: f8da 7020 ldr.w r7, [sl, #32]
dsc->shadow_ofs_y == 0 && dsc->shadow_spread <= 0) {
9eba: f9ba 6024 ldrsh.w r6, [sl, #36] ; 0x24
9ebe: f9ba 3026 ldrsh.w r3, [sl, #38] ; 0x26
if(dsc->shadow_width == 1 && dsc->shadow_ofs_x == 0 &&
9ec2: 2f01 cmp r7, #1
9ec4: d103 bne.n 9ece <lv_draw_rect+0x5e>
9ec6: b916 cbnz r6, 9ece <lv_draw_rect+0x5e>
dsc->shadow_ofs_y == 0 && dsc->shadow_spread <= 0) {
9ec8: 2b00 cmp r3, #0
9eca: f340 8530 ble.w a92e <lv_draw_rect+0xabe>
sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread;
9ece: f8ba 7022 ldrh.w r7, [sl, #34] ; 0x22
9ed2: b29b uxth r3, r3
9ed4: eba7 0c03 sub.w ip, r7, r3
sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread;
9ed8: b2b6 uxth r6, r6
sh_rect_area.x2 = coords->x2 + dsc->shadow_ofs_x + dsc->shadow_spread;
9eda: 441f add r7, r3
9edc: 4439 add r1, r7
sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread;
9ede: 1af7 subs r7, r6, r3
sh_rect_area.y2 = coords->y2 + dsc->shadow_ofs_y + dsc->shadow_spread;
9ee0: 4433 add r3, r6
9ee2: 441a add r2, r3
sh_area.x1 = sh_rect_area.x1 - sw / 2 - 1;
9ee4: eb04 73d4 add.w r3, r4, r4, lsr #31
9ee8: 105b asrs r3, r3, #1
9eea: 425b negs r3, r3
sh_rect_area.y2 = coords->y2 + dsc->shadow_ofs_y + dsc->shadow_spread;
9eec: b292 uxth r2, r2
9eee: 1e5e subs r6, r3, #1
sh_rect_area.x2 = coords->x2 + dsc->shadow_ofs_x + dsc->shadow_spread;
9ef0: b289 uxth r1, r1
9ef2: f1c3 0301 rsb r3, r3, #1
9ef6: f8ad 1044 strh.w r1, [sp, #68] ; 0x44
sh_area.x2 = sh_rect_area.x2 + sw / 2 + 1;
9efa: fa11 f183 uxtah r1, r1, r3
sh_area.y2 = sh_rect_area.y2 + sw / 2 + 1;
9efe: fa12 f383 uxtah r3, r2, r3
9f02: f8ad 304e strh.w r3, [sp, #78] ; 0x4e
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
9f06: 9b08 ldr r3, [sp, #32]
sh_rect_area.y2 = coords->y2 + dsc->shadow_ofs_y + dsc->shadow_spread;
9f08: f8ad 2046 strh.w r2, [sp, #70] ; 0x46
sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread;
9f0c: 4460 add r0, ip
sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread;
9f0e: 443d add r5, r7
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
9f10: 2bfb cmp r3, #251 ; 0xfb
sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread;
9f12: b2ad uxth r5, r5
sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread;
9f14: b280 uxth r0, r0
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
9f16: bf28 it cs
9f18: 23ff movcs r3, #255 ; 0xff
sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread;
9f1a: f8ad 0040 strh.w r0, [sp, #64] ; 0x40
sh_area.x1 = sh_rect_area.x1 - sw / 2 - 1;
9f1e: fa10 f086 uxtah r0, r0, r6
sh_area.y1 = sh_rect_area.y1 - sw / 2 - 1;
9f22: fa15 f686 uxtah r6, r5, r6
sh_area.x2 = sh_rect_area.x2 + sw / 2 + 1;
9f26: f8ad 104c strh.w r1, [sp, #76] ; 0x4c
sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread;
9f2a: f8ad 5042 strh.w r5, [sp, #66] ; 0x42
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
9f2e: 9308 str r3, [sp, #32]
sh_area.x1 = sh_rect_area.x1 - sw / 2 - 1;
9f30: f8ad 0048 strh.w r0, [sp, #72] ; 0x48
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
9f34: 4bac ldr r3, [pc, #688] ; (a1e8 <lv_draw_rect+0x378>)
sh_area.y1 = sh_rect_area.y1 - sw / 2 - 1;
9f36: f8ad 604a strh.w r6, [sp, #74] ; 0x4a
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
9f3a: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
9f3c: 4bab ldr r3, [pc, #684] ; (a1ec <lv_draw_rect+0x37c>)
9f3e: 4798 blx r3
is_common = _lv_area_intersect(&draw_area, &sh_area, clip);
9f40: 4bab ldr r3, [pc, #684] ; (a1f0 <lv_draw_rect+0x380>)
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
9f42: 4605 mov r5, r0
is_common = _lv_area_intersect(&draw_area, &sh_area, clip);
9f44: 4642 mov r2, r8
9f46: a912 add r1, sp, #72 ; 0x48
9f48: a814 add r0, sp, #80 ; 0x50
9f4a: 4798 blx r3
if(is_common == false) return;
9f4c: 2800 cmp r0, #0
9f4e: f000 84ee beq.w a92e <lv_draw_rect+0xabe>
draw_area.x1 -= disp_area->x1;
9f52: 8a29 ldrh r1, [r5, #16]
9f54: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50
draw_area.y1 -= disp_area->y1;
9f58: 8a6a ldrh r2, [r5, #18]
draw_area.x1 -= disp_area->x1;
9f5a: 1a5b subs r3, r3, r1
9f5c: f8ad 3050 strh.w r3, [sp, #80] ; 0x50
draw_area.y1 -= disp_area->y1;
9f60: f8bd 3052 ldrh.w r3, [sp, #82] ; 0x52
9f64: 1a9b subs r3, r3, r2
9f66: f8ad 3052 strh.w r3, [sp, #82] ; 0x52
draw_area.x2 -= disp_area->x1;
9f6a: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54
9f6e: 1a5b subs r3, r3, r1
9f70: f8ad 3054 strh.w r3, [sp, #84] ; 0x54
draw_area.y2 -= disp_area->y1;
9f74: f8bd 3056 ldrh.w r3, [sp, #86] ; 0x56
9f78: 1a9b subs r3, r3, r2
9f7a: f8ad 3056 strh.w r3, [sp, #86] ; 0x56
lv_area_copy(&bg_coords, coords);
9f7e: 4659 mov r1, fp
9f80: 4b9c ldr r3, [pc, #624] ; (a1f4 <lv_draw_rect+0x384>)
9f82: a816 add r0, sp, #88 ; 0x58
9f84: 4798 blx r3
bg_coords.x1 += 1;
9f86: f8bd 5058 ldrh.w r5, [sp, #88] ; 0x58
bg_coords.y1 += 1;
9f8a: f8bd 005a ldrh.w r0, [sp, #90] ; 0x5a
bg_coords.x2 -= 1;
9f8e: f8bd 205c ldrh.w r2, [sp, #92] ; 0x5c
bg_coords.y2 -= 1;
9f92: f8bd 105e ldrh.w r1, [sp, #94] ; 0x5e
9f96: f8bd 7044 ldrh.w r7, [sp, #68] ; 0x44
bg_coords.x1 += 1;
9f9a: 3501 adds r5, #1
bg_coords.y1 += 1;
9f9c: 3001 adds r0, #1
bg_coords.x1 += 1;
9f9e: b2ad uxth r5, r5
bg_coords.y1 += 1;
9fa0: b280 uxth r0, r0
bg_coords.x2 -= 1;
9fa2: 1e53 subs r3, r2, #1
9fa4: f8ad 305c strh.w r3, [sp, #92] ; 0x5c
9fa8: 1b52 subs r2, r2, r5
bg_coords.y2 -= 1;
9faa: 1e4b subs r3, r1, #1
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
9fac: 1a09 subs r1, r1, r0
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
9fae: b212 sxth r2, r2
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
9fb0: b209 sxth r1, r1
int32_t short_side = LV_MATH_MIN(lv_area_get_width(&bg_coords), lv_area_get_height(&bg_coords));
9fb2: 428a cmp r2, r1
9fb4: bfa8 it ge
9fb6: 460a movge r2, r1
bg_coords.y2 -= 1;
9fb8: f8ad 305e strh.w r3, [sp, #94] ; 0x5e
int32_t r_bg = dsc->radius;
9fbc: f9ba 3000 ldrsh.w r3, [sl]
9fc0: f8bd 1042 ldrh.w r1, [sp, #66] ; 0x42
bg_coords.y1 += 1;
9fc4: f8ad 005a strh.w r0, [sp, #90] ; 0x5a
if(r_bg > short_side >> 1) r_bg = short_side >> 1;
9fc8: 1052 asrs r2, r2, #1
9fca: 429a cmp r2, r3
9fcc: bfa8 it ge
9fce: 461a movge r2, r3
9fd0: ee08 2a90 vmov s17, r2
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
9fd4: f8bd 2040 ldrh.w r2, [sp, #64] ; 0x40
bg_coords.x1 += 1;
9fd8: f8ad 5058 strh.w r5, [sp, #88] ; 0x58
9fdc: 3701 adds r7, #1
9fde: 1abf subs r7, r7, r2
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
9fe0: f8bd 2046 ldrh.w r2, [sp, #70] ; 0x46
sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t));
9fe4: 4d84 ldr r5, [pc, #528] ; (a1f8 <lv_draw_rect+0x388>)
9fe6: 3201 adds r2, #1
9fe8: 1a52 subs r2, r2, r1
9fea: b212 sxth r2, r2
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
9fec: b23f sxth r7, r7
short_side = LV_MATH_MIN(lv_area_get_width(&sh_rect_area), lv_area_get_height(&sh_rect_area));
9fee: 4297 cmp r7, r2
9ff0: bfa8 it ge
9ff2: 4617 movge r7, r2
if(r_sh > short_side >> 1) r_sh = short_side >> 1;
9ff4: 107f asrs r7, r7, #1
9ff6: 429f cmp r7, r3
9ff8: bfa8 it ge
9ffa: 461f movge r7, r3
int32_t corner_size = sw + r_sh;
9ffc: eb04 0907 add.w r9, r4, r7
sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t));
a000: fb09 f009 mul.w r0, r9, r9
a004: 0040 lsls r0, r0, #1
a006: 47a8 blx r5
shadow_draw_corner_buf(&sh_rect_area, (uint16_t *)sh_buf, dsc->shadow_width, r_sh);
a008: f9ba 4020 ldrsh.w r4, [sl, #32]
lv_area_copy(&sh_area, coords);
a00c: 4b79 ldr r3, [pc, #484] ; (a1f4 <lv_draw_rect+0x384>)
sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t));
a00e: 9006 str r0, [sp, #24]
lv_area_copy(&sh_area, coords);
a010: a910 add r1, sp, #64 ; 0x40
a012: a81e add r0, sp, #120 ; 0x78
a014: 4798 blx r3
a016: f004 0201 and.w r2, r4, #1
sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1);
a01a: eb04 73d4 add.w r3, r4, r4, lsr #31
sh_area.x1 = sh_area.x2 - lv_area_get_width(coords);
a01e: f8bd 1040 ldrh.w r1, [sp, #64] ; 0x40
a022: 920a str r2, [sp, #40] ; 0x28
sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1);
a024: f3c3 034f ubfx r3, r3, #1, #16
a028: f064 0201 orn r2, r4, #1
sh_area.x1 = sh_area.x2 - lv_area_get_width(coords);
a02c: f8bd 0044 ldrh.w r0, [sp, #68] ; 0x44
sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1);
a030: 441a add r2, r3
a032: 443a add r2, r7
sh_area.x1 = sh_area.x2 - lv_area_get_width(coords);
a034: 3901 subs r1, #1
a036: 1a09 subs r1, r1, r0
sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1);
a038: b292 uxth r2, r2
a03a: f8ad 207c strh.w r2, [sp, #124] ; 0x7c
sh_area.x1 = sh_area.x2 - lv_area_get_width(coords);
a03e: 440a add r2, r1
a040: f8ad 2078 strh.w r2, [sp, #120] ; 0x78
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a044: f8bd 2046 ldrh.w r2, [sp, #70] ; 0x46
a048: f8bd 1042 ldrh.w r1, [sp, #66] ; 0x42
sh_area.y1 = sw / 2 + 1;
a04c: 3301 adds r3, #1
a04e: 3201 adds r2, #1
a050: 1a52 subs r2, r2, r1
a052: b29b uxth r3, r3
a054: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
sh_area.y2 = sh_area.y1 + lv_area_get_height(coords);
a058: 4413 add r3, r2
int32_t size = sw_ori + r;
a05a: 193e adds r6, r7, r4
lv_draw_mask_radius_init(&mask_param, &sh_area, r, false);
a05c: 463a mov r2, r7
sh_area.y2 = sh_area.y1 + lv_area_get_height(coords);
a05e: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
lv_draw_mask_radius_init(&mask_param, &sh_area, r, false);
a062: 4f66 ldr r7, [pc, #408] ; (a1fc <lv_draw_rect+0x38c>)
a064: 2300 movs r3, #0
a066: a91e add r1, sp, #120 ; 0x78
a068: a825 add r0, sp, #148 ; 0x94
a06a: 47b8 blx r7
if(sw_ori == 1) sw = 1;
a06c: 2c01 cmp r4, #1
lv_opa_t * mask_line = _lv_mem_buf_get(size);
a06e: 4630 mov r0, r6
else sw = sw_ori >> 1;
a070: bf18 it ne
a072: 1064 asrne r4, r4, #1
lv_opa_t * mask_line = _lv_mem_buf_get(size);
a074: 47a8 blx r5
_lv_memset_00(sh_ups_tmp_buf, size * sizeof(sh_ups_tmp_buf[0]));
a076: 0073 lsls r3, r6, #1
a078: 9309 str r3, [sp, #36] ; 0x24
sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t));
a07a: 9b06 ldr r3, [sp, #24]
a07c: 9305 str r3, [sp, #20]
for(y = 0; y < size; y++) {
a07e: 2300 movs r3, #0
a080: 9307 str r3, [sp, #28]
lv_draw_mask_res_t mask_res = mask_param.dsc.cb(mask_line, 0, y, size, &mask_param);
a082: b233 sxth r3, r6
a084: ee08 3a10 vmov s16, r3
lv_opa_t * mask_line = _lv_mem_buf_get(size);
a088: 4607 mov r7, r0
for(y = 0; y < size; y++) {
a08a: 9b07 ldr r3, [sp, #28]
a08c: 429e cmp r6, r3
a08e: dc08 bgt.n a0a2 <lv_draw_rect+0x232>
_lv_mem_buf_release(mask_line);
a090: 4b5b ldr r3, [pc, #364] ; (a200 <lv_draw_rect+0x390>)
a092: 4638 mov r0, r7
a094: 4798 blx r3
if(sw == 1) {
a096: 2c01 cmp r4, #1
for(x = 0; x < size * size; x++) {
a098: fb06 f506 mul.w r5, r6, r6
if(sw == 1) {
a09c: d174 bne.n a188 <lv_draw_rect+0x318>
for(i = 0; i < size * size; i++) {
a09e: 2300 movs r3, #0
a0a0: e03e b.n a120 <lv_draw_rect+0x2b0>
_lv_memset_ff(mask_line, size);
a0a2: 4b58 ldr r3, [pc, #352] ; (a204 <lv_draw_rect+0x394>)
a0a4: 4631 mov r1, r6
a0a6: 4638 mov r0, r7
a0a8: 4798 blx r3
lv_draw_mask_res_t mask_res = mask_param.dsc.cb(mask_line, 0, y, size, &mask_param);
a0aa: ab25 add r3, sp, #148 ; 0x94
a0ac: 9300 str r3, [sp, #0]
a0ae: f9bd 201c ldrsh.w r2, [sp, #28]
a0b2: 9d25 ldr r5, [sp, #148] ; 0x94
a0b4: ee18 3a10 vmov r3, s16
a0b8: 2100 movs r1, #0
a0ba: 4638 mov r0, r7
a0bc: 47a8 blx r5
if(mask_res == LV_DRAW_MASK_RES_TRANSP) {
a0be: b958 cbnz r0, a0d8 <lv_draw_rect+0x268>
_lv_memset_00(sh_ups_tmp_buf, size * sizeof(sh_ups_tmp_buf[0]));
a0c0: 9909 ldr r1, [sp, #36] ; 0x24
a0c2: 9805 ldr r0, [sp, #20]
a0c4: 4b50 ldr r3, [pc, #320] ; (a208 <lv_draw_rect+0x398>)
a0c6: 4798 blx r3
sh_ups_tmp_buf += size;
a0c8: 9b09 ldr r3, [sp, #36] ; 0x24
a0ca: 9a05 ldr r2, [sp, #20]
a0cc: 441a add r2, r3
for(y = 0; y < size; y++) {
a0ce: 9b07 ldr r3, [sp, #28]
sh_ups_tmp_buf += size;
a0d0: 9205 str r2, [sp, #20]
for(y = 0; y < size; y++) {
a0d2: 3301 adds r3, #1
a0d4: 9307 str r3, [sp, #28]
a0d6: e7d8 b.n a08a <lv_draw_rect+0x21a>
sh_ups_tmp_buf[0] = (mask_line[0] << SHADOW_UPSACALE_SHIFT) / sw;
a0d8: 783b ldrb r3, [r7, #0]
a0da: 9a05 ldr r2, [sp, #20]
a0dc: 9805 ldr r0, [sp, #20]
a0de: 019b lsls r3, r3, #6
a0e0: fb93 f3f4 sdiv r3, r3, r4
a0e4: f822 3b02 strh.w r3, [r2], #2
for(i = 1; i < size; i++) {
a0e8: 9b09 ldr r3, [sp, #36] ; 0x24
a0ea: 4639 mov r1, r7
a0ec: 1818 adds r0, r3, r0
a0ee: 4282 cmp r2, r0
a0f0: d0ea beq.n a0c8 <lv_draw_rect+0x258>
if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1];
a0f2: 468c mov ip, r1
a0f4: f811 3f01 ldrb.w r3, [r1, #1]!
a0f8: f89c c000 ldrb.w ip, [ip]
a0fc: 459c cmp ip, r3
else sh_ups_tmp_buf[i] = (mask_line[i] << SHADOW_UPSACALE_SHIFT) / sw;
a0fe: bf17 itett ne
a100: 019b lslne r3, r3, #6
if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1];
a102: f832 3c02 ldrheq.w r3, [r2, #-2]
else sh_ups_tmp_buf[i] = (mask_line[i] << SHADOW_UPSACALE_SHIFT) / sw;
a106: fb93 f3f4 sdivne r3, r3, r4
a10a: b29b uxthne r3, r3
if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1];
a10c: f822 3b02 strh.w r3, [r2], #2
for(i = 1; i < size; i++) {
a110: e7ed b.n a0ee <lv_draw_rect+0x27e>
res_buf[i] = (sh_buf[i] >> SHADOW_UPSACALE_SHIFT);
a112: 9a06 ldr r2, [sp, #24]
a114: 9906 ldr r1, [sp, #24]
a116: f832 2013 ldrh.w r2, [r2, r3, lsl #1]
a11a: 0992 lsrs r2, r2, #6
a11c: 54ca strb r2, [r1, r3]
for(i = 0; i < size * size; i++) {
a11e: 3301 adds r3, #1
a120: 42ab cmp r3, r5
a122: d1f6 bne.n a112 <lv_draw_rect+0x2a2>
a124: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e
lv_coord_t h_half = sh_area.y1 + lv_area_get_height(&sh_area) / 2;
a128: f8bd 204a ldrh.w r2, [sp, #74] ; 0x4a
a12c: 3301 adds r3, #1
a12e: 1a9b subs r3, r3, r2
a130: f3c3 31c0 ubfx r1, r3, #15, #1
a134: fa01 f383 sxtah r3, r1, r3
a138: eb02 0363 add.w r3, r2, r3, asr #1
a13c: b29a uxth r2, r3
a13e: b21b sxth r3, r3
a140: 9309 str r3, [sp, #36] ; 0x24
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a142: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c
a146: 920b str r2, [sp, #44] ; 0x2c
lv_coord_t w_half = sh_area.x1 + lv_area_get_width(&sh_area) / 2;
a148: f8bd 2048 ldrh.w r2, [sp, #72] ; 0x48
a14c: 3301 adds r3, #1
a14e: 1a9b subs r3, r3, r2
a150: f3c3 31c0 ubfx r1, r3, #15, #1
a154: fa01 f383 sxtah r3, r1, r3
a158: eb02 0363 add.w r3, r2, r3, asr #1
a15c: b29a uxth r2, r3
a15e: b21b sxth r3, r3
a160: 930a str r3, [sp, #40] ; 0x28
if(lv_draw_mask_get_cnt() > 0) simple_mode = false;
a162: 4b2a ldr r3, [pc, #168] ; (a20c <lv_draw_rect+0x39c>)
lv_coord_t w_half = sh_area.x1 + lv_area_get_width(&sh_area) / 2;
a164: 920c str r2, [sp, #48] ; 0x30
if(lv_draw_mask_get_cnt() > 0) simple_mode = false;
a166: 4798 blx r3
a168: 2800 cmp r0, #0
a16a: d13b bne.n a1e4 <lv_draw_rect+0x374>
else if(dsc->shadow_ofs_x != 0 || dsc->shadow_ofs_y != 0) simple_mode = false;
a16c: f9ba 3022 ldrsh.w r3, [sl, #34] ; 0x22
a170: 2b00 cmp r3, #0
a172: d14f bne.n a214 <lv_draw_rect+0x3a4>
a174: f9ba 2024 ldrsh.w r2, [sl, #36] ; 0x24
a178: b922 cbnz r2, a184 <lv_draw_rect+0x314>
else if(dsc->shadow_spread != 0) simple_mode = false;
a17a: f9ba 3026 ldrsh.w r3, [sl, #38] ; 0x26
a17e: fab3 f383 clz r3, r3
a182: 095b lsrs r3, r3, #5
if(lv_draw_mask_get_cnt() > 0) simple_mode = false;
a184: 9307 str r3, [sp, #28]
a186: e046 b.n a216 <lv_draw_rect+0x3a6>
shadow_blur_corner(size, sw, sh_buf);
a188: b230 sxth r0, r6
a18a: 4621 mov r1, r4
a18c: 9a06 ldr r2, [sp, #24]
a18e: 4f20 ldr r7, [pc, #128] ; (a210 <lv_draw_rect+0x3a0>)
a190: 9005 str r0, [sp, #20]
a192: 47b8 blx r7
sw += sw_ori & 1;
a194: 990a ldr r1, [sp, #40] ; 0x28
a196: 4421 add r1, r4
if(sw > 1) {
a198: 2901 cmp r1, #1
a19a: dd0c ble.n a1b6 <lv_draw_rect+0x346>
sh_buf[0] = (sh_buf[0] << SHADOW_UPSACALE_SHIFT) / sw;
a19c: 9b06 ldr r3, [sp, #24]
a19e: 9a06 ldr r2, [sp, #24]
a1a0: 881b ldrh r3, [r3, #0]
for(i = 1; i < (uint32_t) size * size; i++) {
a1a2: 9805 ldr r0, [sp, #20]
sh_buf[0] = (sh_buf[0] << SHADOW_UPSACALE_SHIFT) / sw;
a1a4: 019b lsls r3, r3, #6
for(i = 1; i < (uint32_t) size * size; i++) {
a1a6: 2401 movs r4, #1
sh_buf[0] = (sh_buf[0] << SHADOW_UPSACALE_SHIFT) / sw;
a1a8: fbb3 f3f1 udiv r3, r3, r1
a1ac: 8013 strh r3, [r2, #0]
for(i = 1; i < (uint32_t) size * size; i++) {
a1ae: 42ac cmp r4, r5
a1b0: d303 bcc.n a1ba <lv_draw_rect+0x34a>
shadow_blur_corner(size, sw, sh_buf);
a1b2: 9a06 ldr r2, [sp, #24]
a1b4: 47b8 blx r7
for(i = 1; i < (uint32_t) size * size; i++) {
a1b6: 2300 movs r3, #0
a1b8: e011 b.n a1de <lv_draw_rect+0x36e>
if(sh_buf[i] == sh_buf[i - 1]) sh_buf[i] = sh_buf[i - 1];
a1ba: 8853 ldrh r3, [r2, #2]
a1bc: f832 6b02 ldrh.w r6, [r2], #2
a1c0: 42b3 cmp r3, r6
else sh_buf[i] = (sh_buf[i] << SHADOW_UPSACALE_SHIFT) / sw;
a1c2: bf1e ittt ne
a1c4: 019b lslne r3, r3, #6
a1c6: fbb3 f3f1 udivne r3, r3, r1
a1ca: b29e uxthne r6, r3
a1cc: 8016 strh r6, [r2, #0]
for(i = 1; i < (uint32_t) size * size; i++) {
a1ce: 3401 adds r4, #1
a1d0: e7ed b.n a1ae <lv_draw_rect+0x33e>
res_buf[x] = sh_buf[x];
a1d2: 9a06 ldr r2, [sp, #24]
a1d4: 9906 ldr r1, [sp, #24]
a1d6: f832 2013 ldrh.w r2, [r2, r3, lsl #1]
a1da: 54ca strb r2, [r1, r3]
for(x = 0; x < size * size; x++) {
a1dc: 3301 adds r3, #1
a1de: 42ab cmp r3, r5
a1e0: d1f7 bne.n a1d2 <lv_draw_rect+0x362>
a1e2: e79f b.n a124 <lv_draw_rect+0x2b4>
if(lv_draw_mask_get_cnt() > 0) simple_mode = false;
a1e4: 2300 movs r3, #0
a1e6: e7cd b.n a184 <lv_draw_rect+0x314>
a1e8: 0000526d .word 0x0000526d
a1ec: 0000dc65 .word 0x0000dc65
a1f0: 0000e111 .word 0x0000e111
a1f4: 00009e11 .word 0x00009e11
a1f8: 0000f145 .word 0x0000f145
a1fc: 00009b99 .word 0x00009b99
a200: 0000edf9 .word 0x0000edf9
a204: 0000f305 .word 0x0000f305
a208: 0000f2a9 .word 0x0000f2a9
a20c: 00009a75 .word 0x00009a75
a210: 00009c89 .word 0x00009c89
a214: 9007 str r0, [sp, #28]
a216: f8bd 004c ldrh.w r0, [sp, #76] ; 0x4c
a21a: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48
lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, r_bg, true);
a21e: 4db2 ldr r5, [pc, #712] ; (a4e8 <lv_draw_rect+0x678>)
a220: 3001 adds r0, #1
a222: 1ac0 subs r0, r0, r3
lv_opa_t * mask_buf = _lv_mem_buf_get(lv_area_get_width(&sh_area));
a224: b200 sxth r0, r0
a226: 4bb1 ldr r3, [pc, #708] ; (a4ec <lv_draw_rect+0x67c>)
a228: 4798 blx r3
lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, r_bg, true);
a22a: ee18 2a90 vmov r2, s17
a22e: 2301 movs r3, #1
a230: a916 add r1, sp, #88 ; 0x58
lv_opa_t * mask_buf = _lv_mem_buf_get(lv_area_get_width(&sh_area));
a232: ee08 0a10 vmov s16, r0
lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, r_bg, true);
a236: a825 add r0, sp, #148 ; 0x94
a238: 47a8 blx r5
int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
a23a: 4bad ldr r3, [pc, #692] ; (a4f0 <lv_draw_rect+0x680>)
a23c: 2100 movs r1, #0
a23e: a825 add r0, sp, #148 ; 0x94
a240: 4798 blx r3
a.x2 = sh_area.x2;
a242: f9bd 304c ldrsh.w r3, [sp, #76] ; 0x4c
a246: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.x1 = a.x2 - corner_size + 1;
a24a: fa1f f289 uxth.w r2, r9
a24e: 3301 adds r3, #1
a250: 1a9b subs r3, r3, r2
a252: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.y1 = sh_area.y1;
a256: f9bd 304a ldrsh.w r3, [sp, #74] ; 0x4a
a25a: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = a.y1 + corner_size - 1;
a25e: 3b01 subs r3, #1
a260: 4413 add r3, r2
int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
a262: ee08 0a90 vmov s17, r0
a.x1 = a.x2 - corner_size + 1;
a266: 9205 str r2, [sp, #20]
a.y2 = a.y1 + corner_size - 1;
a268: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
bool has_com = _lv_area_intersect(&ca, &a, clip);
a26c: 4642 mov r2, r8
a26e: 4ba1 ldr r3, [pc, #644] ; (a4f4 <lv_draw_rect+0x684>)
a270: a918 add r1, sp, #96 ; 0x60
a272: a81a add r0, sp, #104 ; 0x68
a274: 4798 blx r3
if(has_com) {
a276: 2800 cmp r0, #0
a278: d039 beq.n a2ee <lv_draw_rect+0x47e>
if(ca.y2 > h_half) ca.y2 = h_half;
a27a: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e
a27e: 9a09 ldr r2, [sp, #36] ; 0x24
a280: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c
a284: 4293 cmp r3, r2
a286: bfc4 itt gt
a288: 4613 movgt r3, r2
a28a: f8ad 306e strhgt.w r3, [sp, #110] ; 0x6e
if(ca.x1 <= w_half) ca.x1 = w_half + 1;
a28e: 9a0a ldr r2, [sp, #40] ; 0x28
a290: f9bd 3068 ldrsh.w r3, [sp, #104] ; 0x68
a294: 4293 cmp r3, r2
a296: bfd8 it le
a298: 9b0c ldrle r3, [sp, #48] ; 0x30
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a29a: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a
a29e: bfdc itt le
a2a0: 3301 addle r3, #1
a2a2: f8ad 3068 strhle.w r3, [sp, #104] ; 0x68
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a2a6: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a2aa: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a2ae: 3601 adds r6, #1
a2b0: 1b76 subs r6, r6, r5
a2b2: b236 sxth r6, r6
if(w > 0) {
a2b4: 2e00 cmp r6, #0
a2b6: dd1a ble.n a2ee <lv_draw_rect+0x47e>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a2b8: 3301 adds r3, #1
a2ba: 1a9b subs r3, r3, r2
a2bc: b21b sxth r3, r3
a2be: 930d str r3, [sp, #52] ; 0x34
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
a2c0: f9bd 3062 ldrsh.w r3, [sp, #98] ; 0x62
a2c4: 1ad2 subs r2, r2, r3
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
a2c6: f9bd 3060 ldrsh.w r3, [sp, #96] ; 0x60
a2ca: 1aed subs r5, r5, r3
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
a2cc: 9b06 ldr r3, [sp, #24]
a2ce: fb09 5502 mla r5, r9, r2, r5
a2d2: 441d add r5, r3
lv_area_copy(&fa, &ca);
a2d4: a91a add r1, sp, #104 ; 0x68
a2d6: 4b88 ldr r3, [pc, #544] ; (a4f8 <lv_draw_rect+0x688>)
a2d8: a81e add r0, sp, #120 ; 0x78
a2da: 4798 blx r3
fa.y2 = fa.y1;
a2dc: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a
for(y = 0; y < h; y++) {
a2e0: 2700 movs r7, #0
fa.y2 = fa.y1;
a2e2: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
for(y = 0; y < h; y++) {
a2e6: 9b0d ldr r3, [sp, #52] ; 0x34
a2e8: 429f cmp r7, r3
a2ea: f2c0 80a3 blt.w a434 <lv_draw_rect+0x5c4>
a.x2 = sh_area.x2;
a2ee: f9bd 304c ldrsh.w r3, [sp, #76] ; 0x4c
a.x1 = a.x2 - corner_size + 1;
a2f2: 9a05 ldr r2, [sp, #20]
a.x2 = sh_area.x2;
a2f4: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.x1 = a.x2 - corner_size + 1;
a2f8: 3301 adds r3, #1
a2fa: 1a9b subs r3, r3, r2
a.y1 = sh_area.y2 - corner_size + 1;
a2fc: f9bd 204e ldrsh.w r2, [sp, #78] ; 0x4e
a300: 9905 ldr r1, [sp, #20]
a.x1 = a.x2 - corner_size + 1;
a302: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.y1 = sh_area.y2 - corner_size + 1;
a306: 1c53 adds r3, r2, #1
a308: 1a5b subs r3, r3, r1
a30a: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = sh_area.y2;
a30e: f8ad 2066 strh.w r2, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a312: 4b78 ldr r3, [pc, #480] ; (a4f4 <lv_draw_rect+0x684>)
a314: 4642 mov r2, r8
a316: a918 add r1, sp, #96 ; 0x60
a318: a81a add r0, sp, #104 ; 0x68
a31a: 4798 blx r3
if(has_com) {
a31c: 2800 cmp r0, #0
a31e: d03a beq.n a396 <lv_draw_rect+0x526>
if(ca.y1 <= h_half) ca.y1 = h_half + 1;
a320: f9bd 306a ldrsh.w r3, [sp, #106] ; 0x6a
a324: 9a09 ldr r2, [sp, #36] ; 0x24
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a326: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c
a32a: 4293 cmp r3, r2
a32c: bfd8 it le
a32e: 9b0b ldrle r3, [sp, #44] ; 0x2c
if(ca.x1 <= w_half) ca.x1 = w_half + 1;
a330: 9a0a ldr r2, [sp, #40] ; 0x28
if(ca.y1 <= h_half) ca.y1 = h_half + 1;
a332: bfdc itt le
a334: 3301 addle r3, #1
a336: f8ad 306a strhle.w r3, [sp, #106] ; 0x6a
if(ca.x1 <= w_half) ca.x1 = w_half + 1;
a33a: f9bd 3068 ldrsh.w r3, [sp, #104] ; 0x68
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a33e: f9bd 106a ldrsh.w r1, [sp, #106] ; 0x6a
a342: 4293 cmp r3, r2
a344: bfd8 it le
a346: 9b0c ldrle r3, [sp, #48] ; 0x30
a348: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e
a34c: bfdc itt le
a34e: 3301 addle r3, #1
a350: f8ad 3068 strhle.w r3, [sp, #104] ; 0x68
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a354: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68
a358: 3601 adds r6, #1
a35a: 1b76 subs r6, r6, r5
a35c: b236 sxth r6, r6
if(w > 0) {
a35e: 2e00 cmp r6, #0
a360: dd19 ble.n a396 <lv_draw_rect+0x526>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a362: 1c53 adds r3, r2, #1
a364: 1a5b subs r3, r3, r1
a366: b21b sxth r3, r3
a368: 930c str r3, [sp, #48] ; 0x30
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a36a: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66
a36e: 1a9b subs r3, r3, r2
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
a370: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60
a374: 1aad subs r5, r5, r2
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a376: fb09 5503 mla r5, r9, r3, r5
a37a: 9b06 ldr r3, [sp, #24]
lv_area_copy(&fa, &ca);
a37c: a91a add r1, sp, #104 ; 0x68
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a37e: 441d add r5, r3
lv_area_copy(&fa, &ca);
a380: a81e add r0, sp, #120 ; 0x78
a382: 4b5d ldr r3, [pc, #372] ; (a4f8 <lv_draw_rect+0x688>)
a384: 4798 blx r3
fa.y1 = fa.y2; /*Fill from bottom to top*/
a386: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
a38a: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
for(y = 0; y < h; y++) {
a38e: 2700 movs r7, #0
a390: 9b0c ldr r3, [sp, #48] ; 0x30
a392: 429f cmp r7, r3
a394: db7a blt.n a48c <lv_draw_rect+0x61c>
a.x2 = sh_area.x2;
a396: f9bd 304c ldrsh.w r3, [sp, #76] ; 0x4c
a.x1 = a.x2 - corner_size + 1;
a39a: 9a05 ldr r2, [sp, #20]
a.x2 = sh_area.x2;
a39c: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.x1 = a.x2 - corner_size + 1;
a3a0: 3301 adds r3, #1
a3a2: 1a9b subs r3, r3, r2
a3a4: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.y1 = sh_area.y1 + corner_size;
a3a8: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a
a3ac: 4413 add r3, r2
a3ae: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = sh_area.y2 - corner_size;
a3b2: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e
a3b6: 1a9b subs r3, r3, r2
a3b8: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a3bc: 4642 mov r2, r8
a3be: 4b4d ldr r3, [pc, #308] ; (a4f4 <lv_draw_rect+0x684>)
a3c0: a918 add r1, sp, #96 ; 0x60
a3c2: a81a add r0, sp, #104 ; 0x68
a3c4: 4798 blx r3
if(has_com) {
a3c6: b380 cbz r0, a42a <lv_draw_rect+0x5ba>
if(simple_mode) ca.x1 = LV_MATH_MAX(ca.x1, coords->x2);
a3c8: 9b07 ldr r3, [sp, #28]
a3ca: b143 cbz r3, a3de <lv_draw_rect+0x56e>
a3cc: f9bb 3004 ldrsh.w r3, [fp, #4]
a3d0: f9bd 2068 ldrsh.w r2, [sp, #104] ; 0x68
a3d4: 4293 cmp r3, r2
a3d6: bfb8 it lt
a3d8: 4613 movlt r3, r2
a3da: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a3de: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c
a3e2: f9bd 6068 ldrsh.w r6, [sp, #104] ; 0x68
a3e6: 3501 adds r5, #1
a3e8: 1bad subs r5, r5, r6
a3ea: b22d sxth r5, r5
if(w > 0) {
a3ec: 2d00 cmp r5, #0
a3ee: dd1c ble.n a42a <lv_draw_rect+0x5ba>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a3f0: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e
a3f4: f8bd 206a ldrh.w r2, [sp, #106] ; 0x6a
a3f8: 3301 adds r3, #1
a3fa: 1a9b subs r3, r3, r2
sh_buf_tmp += ca.x1 - a.x1;
a3fc: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60
a400: b21b sxth r3, r3
a402: 930c str r3, [sp, #48] ; 0x30
a404: 1ab6 subs r6, r6, r2
sh_buf_tmp = sh_buf + corner_size * (corner_size - 1);
a406: f109 33ff add.w r3, r9, #4294967295 ; 0xffffffff
sh_buf_tmp += ca.x1 - a.x1;
a40a: fb09 6603 mla r6, r9, r3, r6
a40e: 9b06 ldr r3, [sp, #24]
lv_area_copy(&fa, &ca);
a410: a91a add r1, sp, #104 ; 0x68
sh_buf_tmp += ca.x1 - a.x1;
a412: 441e add r6, r3
lv_area_copy(&fa, &ca);
a414: a81e add r0, sp, #120 ; 0x78
a416: 4b38 ldr r3, [pc, #224] ; (a4f8 <lv_draw_rect+0x688>)
a418: 4798 blx r3
fa.y2 = fa.y1;
a41a: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a
for(y = 0; y < h; y++) {
a41e: 2700 movs r7, #0
fa.y2 = fa.y1;
a420: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
for(y = 0; y < h; y++) {
a424: 9b0c ldr r3, [sp, #48] ; 0x30
a426: 429f cmp r7, r3
a428: db6e blt.n a508 <lv_draw_rect+0x698>
sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t));
a42a: 9a06 ldr r2, [sp, #24]
for(x = 0; x < corner_size / 2; x++) {
a42c: ea4f 0669 mov.w r6, r9, asr #1
a430: 2000 movs r0, #0
a432: e0a3 b.n a57c <lv_draw_rect+0x70c>
_lv_memcpy(mask_buf, sh_buf_tmp, w);
a434: 4629 mov r1, r5
a436: 4b31 ldr r3, [pc, #196] ; (a4fc <lv_draw_rect+0x68c>)
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
a438: 4c31 ldr r4, [pc, #196] ; (a500 <lv_draw_rect+0x690>)
_lv_memcpy(mask_buf, sh_buf_tmp, w);
a43a: 4632 mov r2, r6
a43c: ee18 0a10 vmov r0, s16
a440: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
a442: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
a446: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
a44a: 4633 mov r3, r6
a44c: ee18 0a10 vmov r0, s16
a450: 47a0 blx r4
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
a452: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29
a456: 9302 str r3, [sp, #8]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
a458: 2801 cmp r0, #1
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
a45a: 9b08 ldr r3, [sp, #32]
a45c: 4c29 ldr r4, [pc, #164] ; (a504 <lv_draw_rect+0x694>)
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
a45e: bf08 it eq
a460: 2002 moveq r0, #2
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
a462: e9cd 0300 strd r0, r3, [sp]
a466: a91e add r1, sp, #120 ; 0x78
a468: ee18 3a10 vmov r3, s16
a46c: f8ba 201e ldrh.w r2, [sl, #30]
a470: 4640 mov r0, r8
a472: 47a0 blx r4
fa.y1++;
a474: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
a478: 3301 adds r3, #1
a47a: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2++;
a47e: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
a482: 3301 adds r3, #1
a484: b21b sxth r3, r3
sh_buf_tmp += corner_size;
a486: 444d add r5, r9
for(y = 0; y < h; y++) {
a488: 3701 adds r7, #1
a48a: e72a b.n a2e2 <lv_draw_rect+0x472>
_lv_memcpy(mask_buf, sh_buf_tmp, w);
a48c: 4629 mov r1, r5
a48e: 4b1b ldr r3, [pc, #108] ; (a4fc <lv_draw_rect+0x68c>)
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
a490: 4c1b ldr r4, [pc, #108] ; (a500 <lv_draw_rect+0x690>)
_lv_memcpy(mask_buf, sh_buf_tmp, w);
a492: 4632 mov r2, r6
a494: ee18 0a10 vmov r0, s16
a498: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
a49a: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
a49e: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
a4a2: 4633 mov r3, r6
a4a4: ee18 0a10 vmov r0, s16
a4a8: 47a0 blx r4
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
a4aa: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29
a4ae: 9302 str r3, [sp, #8]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
a4b0: 2801 cmp r0, #1
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
a4b2: 9b08 ldr r3, [sp, #32]
a4b4: 4c13 ldr r4, [pc, #76] ; (a504 <lv_draw_rect+0x694>)
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
a4b6: bf08 it eq
a4b8: 2002 moveq r0, #2
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
a4ba: e9cd 0300 strd r0, r3, [sp]
a4be: a91e add r1, sp, #120 ; 0x78
a4c0: ee18 3a10 vmov r3, s16
a4c4: f8ba 201e ldrh.w r2, [sl, #30]
a4c8: 4640 mov r0, r8
a4ca: 47a0 blx r4
fa.y1--;
a4cc: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
a4d0: 3b01 subs r3, #1
a4d2: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2--;
a4d6: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
a4da: 3b01 subs r3, #1
a4dc: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
sh_buf_tmp += corner_size;
a4e0: 444d add r5, r9
for(y = 0; y < h; y++) {
a4e2: 3701 adds r7, #1
a4e4: e754 b.n a390 <lv_draw_rect+0x520>
a4e6: bf00 nop
a4e8: 00009b99 .word 0x00009b99
a4ec: 0000f145 .word 0x0000f145
a4f0: 00009995 .word 0x00009995
a4f4: 0000e111 .word 0x0000e111
a4f8: 00009e11 .word 0x00009e11
a4fc: 0000eec1 .word 0x0000eec1
a500: 000099e5 .word 0x000099e5
a504: 00006475 .word 0x00006475
_lv_memcpy(mask_buf, sh_buf_tmp, w);
a508: 4b20 ldr r3, [pc, #128] ; (a58c <lv_draw_rect+0x71c>)
a50a: ee18 0a10 vmov r0, s16
a50e: 462a mov r2, r5
a510: 4631 mov r1, r6
a512: 4798 blx r3
if(simple_mode) {
a514: 9b07 ldr r3, [sp, #28]
a516: b953 cbnz r3, a52e <lv_draw_rect+0x6be>
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
a518: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
a51c: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
a520: 4c1b ldr r4, [pc, #108] ; (a590 <lv_draw_rect+0x720>)
a522: ee18 0a10 vmov r0, s16
a526: 462b mov r3, r5
a528: 47a0 blx r4
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
a52a: 2801 cmp r0, #1
a52c: d100 bne.n a530 <lv_draw_rect+0x6c0>
a52e: 2002 movs r0, #2
_lv_blend_fill(clip, &fa,
a530: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29
a534: 9302 str r3, [sp, #8]
a536: f89a 3028 ldrb.w r3, [sl, #40] ; 0x28
a53a: 4c16 ldr r4, [pc, #88] ; (a594 <lv_draw_rect+0x724>)
a53c: e9cd 0300 strd r0, r3, [sp]
a540: a91e add r1, sp, #120 ; 0x78
a542: ee18 3a10 vmov r3, s16
a546: f8ba 201e ldrh.w r2, [sl, #30]
a54a: 4640 mov r0, r8
a54c: 47a0 blx r4
fa.y1++;
a54e: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
a552: 3301 adds r3, #1
a554: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2++;
a558: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
a55c: 3301 adds r3, #1
a55e: b21b sxth r3, r3
for(y = 0; y < h; y++) {
a560: 3701 adds r7, #1
a562: e75d b.n a420 <lv_draw_rect+0x5b0>
lv_opa_t tmp = sh_buf_tmp[x];
a564: f811 7f01 ldrb.w r7, [r1, #1]!
sh_buf_tmp[x] = sh_buf_tmp[corner_size - x - 1];
a568: f813 cd01 ldrb.w ip, [r3, #-1]!
a56c: f881 c000 strb.w ip, [r1]
sh_buf_tmp[corner_size - x - 1] = tmp;
a570: 701f strb r7, [r3, #0]
for(x = 0; x < corner_size / 2; x++) {
a572: 1aef subs r7, r5, r3
a574: 42be cmp r6, r7
a576: dcf5 bgt.n a564 <lv_draw_rect+0x6f4>
sh_buf_tmp += corner_size;
a578: 444a add r2, r9
for(y = 0; y < corner_size; y++) {
a57a: 3001 adds r0, #1
a57c: 4581 cmp r9, r0
a57e: dd0b ble.n a598 <lv_draw_rect+0x728>
a580: eb09 0502 add.w r5, r9, r2
a584: 1e51 subs r1, r2, #1
a586: 462b mov r3, r5
a588: e7f3 b.n a572 <lv_draw_rect+0x702>
a58a: bf00 nop
a58c: 0000eec1 .word 0x0000eec1
a590: 000099e5 .word 0x000099e5
a594: 00006475 .word 0x00006475
a.x1 = sh_area.x1;
a598: f9bd 3048 ldrsh.w r3, [sp, #72] ; 0x48
a.x2 = a.x1 + corner_size - 1;
a59c: 9a05 ldr r2, [sp, #20]
a.x1 = sh_area.x1;
a59e: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.x2 = a.x1 + corner_size - 1;
a5a2: 3b01 subs r3, #1
a5a4: 4413 add r3, r2
a5a6: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.y1 = sh_area.y1;
a5aa: f9bd 304a ldrsh.w r3, [sp, #74] ; 0x4a
a5ae: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = a.y1 + corner_size - 1;
a5b2: 3b01 subs r3, #1
a5b4: 4413 add r3, r2
a5b6: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a5ba: 4642 mov r2, r8
a5bc: 4bb8 ldr r3, [pc, #736] ; (a8a0 <lv_draw_rect+0xa30>)
a5be: a918 add r1, sp, #96 ; 0x60
a5c0: a81a add r0, sp, #104 ; 0x68
a5c2: 4798 blx r3
if(has_com) {
a5c4: 2800 cmp r0, #0
a5c6: d037 beq.n a638 <lv_draw_rect+0x7c8>
if(ca.y2 > h_half) ca.y2 = h_half;
a5c8: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e
a5cc: 9a09 ldr r2, [sp, #36] ; 0x24
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a5ce: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68
a5d2: 4293 cmp r3, r2
a5d4: bfc4 itt gt
a5d6: 4613 movgt r3, r2
a5d8: f8ad 306e strhgt.w r3, [sp, #110] ; 0x6e
if(ca.x2 > w_half) ca.x2 = w_half;
a5dc: 9a0a ldr r2, [sp, #40] ; 0x28
a5de: f9bd 306c ldrsh.w r3, [sp, #108] ; 0x6c
a5e2: 4293 cmp r3, r2
a5e4: bfc4 itt gt
a5e6: 4613 movgt r3, r2
a5e8: f8ad 306c strhgt.w r3, [sp, #108] ; 0x6c
a5ec: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a5f0: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e
a5f4: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a5f8: 3601 adds r6, #1
a5fa: 1b76 subs r6, r6, r5
a5fc: b236 sxth r6, r6
if(w > 0) {
a5fe: 2e00 cmp r6, #0
a600: dd1a ble.n a638 <lv_draw_rect+0x7c8>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a602: 3301 adds r3, #1
a604: 1a9b subs r3, r3, r2
a606: b21b sxth r3, r3
a608: 930c str r3, [sp, #48] ; 0x30
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
a60a: f9bd 3062 ldrsh.w r3, [sp, #98] ; 0x62
a60e: 1ad2 subs r2, r2, r3
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
a610: f9bd 3060 ldrsh.w r3, [sp, #96] ; 0x60
a614: 1aed subs r5, r5, r3
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
a616: 9b06 ldr r3, [sp, #24]
a618: fb09 5502 mla r5, r9, r2, r5
a61c: 441d add r5, r3
lv_area_copy(&fa, &ca);
a61e: a91a add r1, sp, #104 ; 0x68
a620: 4ba0 ldr r3, [pc, #640] ; (a8a4 <lv_draw_rect+0xa34>)
a622: a81e add r0, sp, #120 ; 0x78
a624: 4798 blx r3
fa.y2 = fa.y1;
a626: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a
for(y = 0; y < h; y++) {
a62a: 2700 movs r7, #0
fa.y2 = fa.y1;
a62c: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
for(y = 0; y < h; y++) {
a630: 9b0c ldr r3, [sp, #48] ; 0x30
a632: 429f cmp r7, r3
a634: f2c0 859f blt.w b176 <lv_draw_rect+0x1306>
a.x1 = sh_area.x1;
a638: f9bd 3048 ldrsh.w r3, [sp, #72] ; 0x48
a.x2 = a.x1 + corner_size - 1;
a63c: 9a05 ldr r2, [sp, #20]
a.x1 = sh_area.x1;
a63e: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.x2 = a.x1 + corner_size - 1;
a642: 3b01 subs r3, #1
a644: 4413 add r3, r2
a.y1 = sh_area.y2 - corner_size + 1;
a646: f9bd 204e ldrsh.w r2, [sp, #78] ; 0x4e
a64a: 9905 ldr r1, [sp, #20]
a.x2 = a.x1 + corner_size - 1;
a64c: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.y1 = sh_area.y2 - corner_size + 1;
a650: 1c53 adds r3, r2, #1
a652: 1a5b subs r3, r3, r1
a654: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = sh_area.y2;
a658: f8ad 2066 strh.w r2, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a65c: 4b90 ldr r3, [pc, #576] ; (a8a0 <lv_draw_rect+0xa30>)
a65e: 4642 mov r2, r8
a660: a918 add r1, sp, #96 ; 0x60
a662: a81a add r0, sp, #104 ; 0x68
a664: 4798 blx r3
if(has_com) {
a666: 2800 cmp r0, #0
a668: d039 beq.n a6de <lv_draw_rect+0x86e>
if(ca.y1 <= h_half) ca.y1 = h_half + 1;
a66a: f9bd 306a ldrsh.w r3, [sp, #106] ; 0x6a
a66e: 9a09 ldr r2, [sp, #36] ; 0x24
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a670: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68
a674: 4293 cmp r3, r2
a676: bfd8 it le
a678: 9b0b ldrle r3, [sp, #44] ; 0x2c
if(ca.x2 > w_half) ca.x2 = w_half;
a67a: 9a0a ldr r2, [sp, #40] ; 0x28
if(ca.y1 <= h_half) ca.y1 = h_half + 1;
a67c: bfdc itt le
a67e: 3301 addle r3, #1
a680: f8ad 306a strhle.w r3, [sp, #106] ; 0x6a
if(ca.x2 > w_half) ca.x2 = w_half;
a684: f9bd 306c ldrsh.w r3, [sp, #108] ; 0x6c
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a688: f9bd 106a ldrsh.w r1, [sp, #106] ; 0x6a
a68c: 4293 cmp r3, r2
a68e: bfc4 itt gt
a690: 4613 movgt r3, r2
a692: f8ad 306c strhgt.w r3, [sp, #108] ; 0x6c
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a696: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a69a: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a69e: 3601 adds r6, #1
a6a0: 1b76 subs r6, r6, r5
a6a2: b236 sxth r6, r6
if(w > 0) {
a6a4: 2e00 cmp r6, #0
a6a6: dd1a ble.n a6de <lv_draw_rect+0x86e>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a6a8: 1c53 adds r3, r2, #1
a6aa: 1a5b subs r3, r3, r1
a6ac: b21b sxth r3, r3
a6ae: 9309 str r3, [sp, #36] ; 0x24
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a6b0: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66
a6b4: 1a9b subs r3, r3, r2
sh_buf_tmp = sh_buf + (ca.x1 - a.x1);
a6b6: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60
a6ba: 1aad subs r5, r5, r2
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a6bc: fb09 5503 mla r5, r9, r3, r5
a6c0: 9b06 ldr r3, [sp, #24]
lv_area_copy(&fa, &ca);
a6c2: a91a add r1, sp, #104 ; 0x68
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a6c4: 441d add r5, r3
lv_area_copy(&fa, &ca);
a6c6: a81e add r0, sp, #120 ; 0x78
a6c8: 4b76 ldr r3, [pc, #472] ; (a8a4 <lv_draw_rect+0xa34>)
a6ca: 4798 blx r3
fa.y1 = fa.y2; /*Fill from bottom to top*/
a6cc: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
a6d0: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
for(y = 0; y < h; y++) {
a6d4: 2700 movs r7, #0
a6d6: 9b09 ldr r3, [sp, #36] ; 0x24
a6d8: 429f cmp r7, r3
a6da: f2c0 8579 blt.w b1d0 <lv_draw_rect+0x1360>
a.x1 = sh_area.x1;
a6de: f9bd 3048 ldrsh.w r3, [sp, #72] ; 0x48
a.x2 = a.x1 + corner_size - 1;
a6e2: 9a05 ldr r2, [sp, #20]
a.x1 = sh_area.x1;
a6e4: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.x2 = a.x1 + corner_size - 1;
a6e8: 3b01 subs r3, #1
a6ea: 4413 add r3, r2
a6ec: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.y1 = sh_area.y1 + corner_size;
a6f0: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a
a6f4: 4413 add r3, r2
a6f6: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = sh_area.y2 - corner_size;
a6fa: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e
a6fe: 1a9b subs r3, r3, r2
a700: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a704: 4642 mov r2, r8
a706: 4b66 ldr r3, [pc, #408] ; (a8a0 <lv_draw_rect+0xa30>)
a708: a918 add r1, sp, #96 ; 0x60
a70a: a81a add r0, sp, #104 ; 0x68
a70c: 4798 blx r3
if(has_com) {
a70e: b388 cbz r0, a774 <lv_draw_rect+0x904>
if(simple_mode) ca.x2 = LV_MATH_MIN(coords->x1, ca.x2);
a710: 9b07 ldr r3, [sp, #28]
a712: b143 cbz r3, a726 <lv_draw_rect+0x8b6>
a714: f9bb 3000 ldrsh.w r3, [fp]
a718: f9bd 206c ldrsh.w r2, [sp, #108] ; 0x6c
a71c: 4293 cmp r3, r2
a71e: bfa8 it ge
a720: 4613 movge r3, r2
a722: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a726: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c
a72a: f9bd 6068 ldrsh.w r6, [sp, #104] ; 0x68
a72e: 3501 adds r5, #1
a730: 1bad subs r5, r5, r6
a732: b22d sxth r5, r5
if(w > 0) {
a734: 2d00 cmp r5, #0
a736: dd1d ble.n a774 <lv_draw_rect+0x904>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a738: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e
a73c: f8bd 206a ldrh.w r2, [sp, #106] ; 0x6a
a740: 3301 adds r3, #1
a742: 1a9b subs r3, r3, r2
sh_buf_tmp += ca.x1 - a.x1;
a744: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60
a748: b21b sxth r3, r3
a74a: 9309 str r3, [sp, #36] ; 0x24
a74c: 1ab6 subs r6, r6, r2
sh_buf_tmp = sh_buf + corner_size * (corner_size - 1);
a74e: f109 33ff add.w r3, r9, #4294967295 ; 0xffffffff
sh_buf_tmp += ca.x1 - a.x1;
a752: fb09 6603 mla r6, r9, r3, r6
a756: 9b06 ldr r3, [sp, #24]
lv_area_copy(&fa, &ca);
a758: a91a add r1, sp, #104 ; 0x68
sh_buf_tmp += ca.x1 - a.x1;
a75a: 441e add r6, r3
lv_area_copy(&fa, &ca);
a75c: a81e add r0, sp, #120 ; 0x78
a75e: 4b51 ldr r3, [pc, #324] ; (a8a4 <lv_draw_rect+0xa34>)
a760: 4798 blx r3
fa.y2 = fa.y1;
a762: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a
for(y = 0; y < h; y++) {
a766: 2700 movs r7, #0
fa.y2 = fa.y1;
a768: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
for(y = 0; y < h; y++) {
a76c: 9b09 ldr r3, [sp, #36] ; 0x24
a76e: 429f cmp r7, r3
a770: f2c0 855c blt.w b22c <lv_draw_rect+0x13bc>
a.x1 = sh_area.x1 + corner_size;
a774: 9a05 ldr r2, [sp, #20]
a776: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48
a77a: 4413 add r3, r2
a77c: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.x2 = sh_area.x2 - corner_size;
a780: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c
a784: 1a9b subs r3, r3, r2
a786: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.y1 = sh_area.y1;
a78a: f9bd 304a ldrsh.w r3, [sp, #74] ; 0x4a
a78e: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = sh_area.y1 + corner_size - 1;
a792: 3b01 subs r3, #1
a794: 4413 add r3, r2
a796: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a79a: 4642 mov r2, r8
a79c: 4b40 ldr r3, [pc, #256] ; (a8a0 <lv_draw_rect+0xa30>)
a79e: a918 add r1, sp, #96 ; 0x60
a7a0: a81a add r0, sp, #104 ; 0x68
a7a2: 4798 blx r3
if(has_com) {
a7a4: b378 cbz r0, a806 <lv_draw_rect+0x996>
if(simple_mode) ca.y2 = LV_MATH_MIN(ca.y2, coords->y1);
a7a6: 9b07 ldr r3, [sp, #28]
a7a8: b143 cbz r3, a7bc <lv_draw_rect+0x94c>
a7aa: f9bb 3002 ldrsh.w r3, [fp, #2]
a7ae: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e
a7b2: 4293 cmp r3, r2
a7b4: bfa8 it ge
a7b6: 4613 movge r3, r2
a7b8: f8ad 306e strh.w r3, [sp, #110] ; 0x6e
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a7bc: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c
a7c0: f8bd 3068 ldrh.w r3, [sp, #104] ; 0x68
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a7c4: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a7c8: 3501 adds r5, #1
a7ca: 1aed subs r5, r5, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a7cc: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e
a7d0: 3301 adds r3, #1
a7d2: 1a9b subs r3, r3, r2
a7d4: b21b sxth r3, r3
a7d6: 9309 str r3, [sp, #36] ; 0x24
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
a7d8: f9bd 3062 ldrsh.w r3, [sp, #98] ; 0x62
sh_buf_tmp = sh_buf + corner_size - 1;
a7dc: f109 36ff add.w r6, r9, #4294967295 ; 0xffffffff
sh_buf_tmp += corner_size * (ca.y1 - a.y1);
a7e0: 1ad2 subs r2, r2, r3
a7e2: 9b06 ldr r3, [sp, #24]
a7e4: fb09 6602 mla r6, r9, r2, r6
a7e8: 441e add r6, r3
lv_area_copy(&fa, &ca);
a7ea: a91a add r1, sp, #104 ; 0x68
a7ec: 4b2d ldr r3, [pc, #180] ; (a8a4 <lv_draw_rect+0xa34>)
a7ee: a81e add r0, sp, #120 ; 0x78
a7f0: 4798 blx r3
fa.y2 = fa.y1;
a7f2: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a7f6: b22d sxth r5, r5
for(y = 0; y < h; y++) {
a7f8: 2700 movs r7, #0
fa.y2 = fa.y1;
a7fa: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
for(y = 0; y < h; y++) {
a7fe: 9b09 ldr r3, [sp, #36] ; 0x24
a800: 429f cmp r7, r3
a802: f2c0 8542 blt.w b28a <lv_draw_rect+0x141a>
a.x1 = sh_area.x1 + corner_size;
a806: 9a05 ldr r2, [sp, #20]
a808: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48
a.y1 = sh_area.y2 - corner_size + 1;
a80c: 9905 ldr r1, [sp, #20]
a.x1 = sh_area.x1 + corner_size;
a80e: 4413 add r3, r2
a810: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.x2 = sh_area.x2 - corner_size;
a814: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c
a818: 1a9b subs r3, r3, r2
a.y1 = sh_area.y2 - corner_size + 1;
a81a: f9bd 204e ldrsh.w r2, [sp, #78] ; 0x4e
a.x2 = sh_area.x2 - corner_size;
a81e: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.y1 = sh_area.y2 - corner_size + 1;
a822: 1c53 adds r3, r2, #1
a824: 1a5b subs r3, r3, r1
a826: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = sh_area.y2;
a82a: f8ad 2066 strh.w r2, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a82e: 4b1c ldr r3, [pc, #112] ; (a8a0 <lv_draw_rect+0xa30>)
a830: 4642 mov r2, r8
a832: a918 add r1, sp, #96 ; 0x60
a834: a81a add r0, sp, #104 ; 0x68
a836: 4798 blx r3
if(has_com) {
a838: 2800 cmp r0, #0
a83a: d035 beq.n a8a8 <lv_draw_rect+0xa38>
if(simple_mode) ca.y1 = LV_MATH_MAX(ca.y1, coords->y2);
a83c: 9b07 ldr r3, [sp, #28]
a83e: b143 cbz r3, a852 <lv_draw_rect+0x9e2>
a840: f9bb 3006 ldrsh.w r3, [fp, #6]
a844: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a
a848: 4293 cmp r3, r2
a84a: bfb8 it lt
a84c: 4613 movlt r3, r2
a84e: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
a852: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c
a856: f8bd 3068 ldrh.w r3, [sp, #104] ; 0x68
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a85a: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e
a85e: f8bd 106a ldrh.w r1, [sp, #106] ; 0x6a
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a862: 3501 adds r5, #1
a864: 1aed subs r5, r5, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a866: 1c53 adds r3, r2, #1
a868: 1a5b subs r3, r3, r1
a86a: b21b sxth r3, r3
a86c: 9309 str r3, [sp, #36] ; 0x24
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a86e: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66
sh_buf_tmp = sh_buf + corner_size - 1;
a872: f109 36ff add.w r6, r9, #4294967295 ; 0xffffffff
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a876: 1a9b subs r3, r3, r2
a878: fb09 6603 mla r6, r9, r3, r6
a87c: 9b06 ldr r3, [sp, #24]
lv_area_copy(&fa, &ca);
a87e: a91a add r1, sp, #104 ; 0x68
sh_buf_tmp += corner_size * (a.y2 - ca.y2);
a880: 441e add r6, r3
lv_area_copy(&fa, &ca);
a882: a81e add r0, sp, #120 ; 0x78
a884: 4b07 ldr r3, [pc, #28] ; (a8a4 <lv_draw_rect+0xa34>)
a886: 4798 blx r3
fa.y1 = fa.y2;
a888: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
a88c: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a890: b22d sxth r5, r5
for(y = 0; y < h; y++) {
a892: 2700 movs r7, #0
a894: 9b09 ldr r3, [sp, #36] ; 0x24
a896: 429f cmp r7, r3
a898: f2c0 8542 blt.w b320 <lv_draw_rect+0x14b0>
a89c: e004 b.n a8a8 <lv_draw_rect+0xa38>
a89e: bf00 nop
a8a0: 0000e111 .word 0x0000e111
a8a4: 00009e11 .word 0x00009e11
a.x1 = sh_area.x1 + corner_size;
a8a8: 9a05 ldr r2, [sp, #20]
a8aa: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48
a8ae: 4413 add r3, r2
a8b0: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
a.x2 = sh_area.x2 - corner_size;
a8b4: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c
a8b8: 1a9b subs r3, r3, r2
a8ba: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
a.y1 = sh_area.y1 + corner_size;
a8be: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a
a8c2: 4413 add r3, r2
a8c4: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
a.y2 = sh_area.y2 - corner_size;
a8c8: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e
a8cc: 1a9b subs r3, r3, r2
a8ce: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
has_com = _lv_area_intersect(&ca, &a, clip);
a8d2: 4642 mov r2, r8
a8d4: 4bb9 ldr r3, [pc, #740] ; (abbc <lv_draw_rect+0xd4c>)
a8d6: a918 add r1, sp, #96 ; 0x60
a8d8: a81a add r0, sp, #104 ; 0x68
a8da: 4798 blx r3
if(has_com && simple_mode == false) {
a8dc: b1e8 cbz r0, a91a <lv_draw_rect+0xaaa>
a8de: 9b07 ldr r3, [sp, #28]
a8e0: b9db cbnz r3, a91a <lv_draw_rect+0xaaa>
a8e2: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c
a8e6: f8bd 3068 ldrh.w r3, [sp, #104] ; 0x68
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a8ea: f8bd 706e ldrh.w r7, [sp, #110] ; 0x6e
_lv_memset(mask_buf, dsc->shadow_opa, w);
a8ee: f8df 9310 ldr.w r9, [pc, #784] ; ac00 <lv_draw_rect+0xd90>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a8f2: 3601 adds r6, #1
a8f4: 1af6 subs r6, r6, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a8f6: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a
a8fa: 3701 adds r7, #1
a8fc: 1aff subs r7, r7, r3
lv_area_copy(&fa, &ca);
a8fe: a91a add r1, sp, #104 ; 0x68
a900: 4baf ldr r3, [pc, #700] ; (abc0 <lv_draw_rect+0xd50>)
a902: a81e add r0, sp, #120 ; 0x78
a904: 4798 blx r3
fa.y2 = fa.y1;
a906: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a
for(y = 0; y < h; y++) {
a90a: 9d07 ldr r5, [sp, #28]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a90c: b236 sxth r6, r6
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
a90e: b23f sxth r7, r7
a910: 42bd cmp r5, r7
fa.y2 = fa.y1;
a912: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
for(y = 0; y < h; y++) {
a916: f2c0 853c blt.w b392 <lv_draw_rect+0x1522>
lv_draw_mask_remove_id(mask_rout_id);
a91a: 4baa ldr r3, [pc, #680] ; (abc4 <lv_draw_rect+0xd54>)
_lv_mem_buf_release(mask_buf);
a91c: 4caa ldr r4, [pc, #680] ; (abc8 <lv_draw_rect+0xd58>)
lv_draw_mask_remove_id(mask_rout_id);
a91e: ee18 0a90 vmov r0, s17
a922: 4798 blx r3
_lv_mem_buf_release(mask_buf);
a924: ee18 0a10 vmov r0, s16
a928: 47a0 blx r4
_lv_mem_buf_release(sh_buf);
a92a: 9806 ldr r0, [sp, #24]
a92c: 47a0 blx r4
if(dsc->bg_opa <= LV_OPA_MIN) return;
a92e: f89a 300c ldrb.w r3, [sl, #12]
a932: 2b05 cmp r3, #5
a934: f240 80a8 bls.w aa88 <lv_draw_rect+0xc18>
lv_area_copy(&coords_bg, coords);
a938: 4ba1 ldr r3, [pc, #644] ; (abc0 <lv_draw_rect+0xd50>)
a93a: 4659 mov r1, fp
a93c: a816 add r0, sp, #88 ; 0x58
a93e: 4798 blx r3
if(dsc->border_width > 1 && dsc->border_opa >= LV_OPA_MAX && dsc->radius != 0) {
a940: f9ba 3010 ldrsh.w r3, [sl, #16]
a944: 2b01 cmp r3, #1
a946: dd24 ble.n a992 <lv_draw_rect+0xb22>
a948: f89a 3014 ldrb.w r3, [sl, #20]
a94c: 2bf9 cmp r3, #249 ; 0xf9
a94e: d920 bls.n a992 <lv_draw_rect+0xb22>
a950: f9ba 3000 ldrsh.w r3, [sl]
a954: b1eb cbz r3, a992 <lv_draw_rect+0xb22>
coords_bg.x1 += (dsc->border_side & LV_BORDER_SIDE_LEFT) ? 1 : 0;
a956: f8ba 3012 ldrh.w r3, [sl, #18]
a95a: f8bd 1058 ldrh.w r1, [sp, #88] ; 0x58
a95e: f3c3 0280 ubfx r2, r3, #2, #1
a962: 440a add r2, r1
coords_bg.y1 += (dsc->border_side & LV_BORDER_SIDE_TOP) ? 1 : 0;
a964: f8bd 105a ldrh.w r1, [sp, #90] ; 0x5a
coords_bg.x1 += (dsc->border_side & LV_BORDER_SIDE_LEFT) ? 1 : 0;
a968: f8ad 2058 strh.w r2, [sp, #88] ; 0x58
coords_bg.y1 += (dsc->border_side & LV_BORDER_SIDE_TOP) ? 1 : 0;
a96c: f3c3 0240 ubfx r2, r3, #1, #1
a970: 440a add r2, r1
a972: f8ad 205a strh.w r2, [sp, #90] ; 0x5a
coords_bg.x2 -= (dsc->border_side & LV_BORDER_SIDE_RIGHT) ? 1 : 0;
a976: f8bd 205c ldrh.w r2, [sp, #92] ; 0x5c
a97a: f3c3 01c0 ubfx r1, r3, #3, #1
a97e: 1a52 subs r2, r2, r1
a980: f8ad 205c strh.w r2, [sp, #92] ; 0x5c
coords_bg.y2 -= (dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? 1 : 0;
a984: f8bd 205e ldrh.w r2, [sp, #94] ; 0x5e
a988: f003 0301 and.w r3, r3, #1
a98c: 1ad3 subs r3, r2, r3
a98e: f8ad 305e strh.w r3, [sp, #94] ; 0x5e
lv_opa_t opa = dsc->bg_opa;
a992: f89a 900c ldrb.w r9, [sl, #12]
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
a996: 4b8d ldr r3, [pc, #564] ; (abcc <lv_draw_rect+0xd5c>)
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
a998: f1b9 0ffb cmp.w r9, #251 ; 0xfb
a99c: bf28 it cs
a99e: f04f 09ff movcs.w r9, #255 ; 0xff
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
a9a2: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
a9a4: 4b8a ldr r3, [pc, #552] ; (abd0 <lv_draw_rect+0xd60>)
a9a6: 4798 blx r3
is_common = _lv_area_intersect(&draw_area, &coords_bg, clip);
a9a8: 4b84 ldr r3, [pc, #528] ; (abbc <lv_draw_rect+0xd4c>)
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
a9aa: 9005 str r0, [sp, #20]
is_common = _lv_area_intersect(&draw_area, &coords_bg, clip);
a9ac: 4642 mov r2, r8
a9ae: a916 add r1, sp, #88 ; 0x58
a9b0: a818 add r0, sp, #96 ; 0x60
a9b2: 4798 blx r3
if(is_common == false) return;
a9b4: 2800 cmp r0, #0
a9b6: d067 beq.n aa88 <lv_draw_rect+0xc18>
draw_area.x1 -= disp_area->x1;
a9b8: 9b05 ldr r3, [sp, #20]
a9ba: f8bd 1060 ldrh.w r1, [sp, #96] ; 0x60
a9be: 8a1a ldrh r2, [r3, #16]
a9c0: 1a8b subs r3, r1, r2
a9c2: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
draw_area.y1 -= disp_area->y1;
a9c6: 9b05 ldr r3, [sp, #20]
a9c8: 8a58 ldrh r0, [r3, #18]
a9ca: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
a9ce: 1a1b subs r3, r3, r0
a9d0: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
draw_area.x2 -= disp_area->x1;
a9d4: f8bd 3064 ldrh.w r3, [sp, #100] ; 0x64
a9d8: 1a9a subs r2, r3, r2
a9da: f8ad 2064 strh.w r2, [sp, #100] ; 0x64
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
a9de: 3301 adds r3, #1
draw_area.y2 -= disp_area->y1;
a9e0: f8bd 2066 ldrh.w r2, [sp, #102] ; 0x66
a9e4: 1a5b subs r3, r3, r1
a9e6: 1a12 subs r2, r2, r0
a9e8: b21b sxth r3, r3
a9ea: f8ad 2066 strh.w r2, [sp, #102] ; 0x66
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
a9ee: 4618 mov r0, r3
a9f0: ee08 3a90 vmov s17, r3
a9f4: 4b77 ldr r3, [pc, #476] ; (abd4 <lv_draw_rect+0xd64>)
a9f6: 4798 blx r3
uint16_t other_mask_cnt = lv_draw_mask_get_cnt();
a9f8: 4b77 ldr r3, [pc, #476] ; (abd8 <lv_draw_rect+0xd68>)
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
a9fa: 4605 mov r5, r0
uint16_t other_mask_cnt = lv_draw_mask_get_cnt();
a9fc: 4798 blx r3
a9fe: 900c str r0, [sp, #48] ; 0x30
aa00: f8bd 3030 ldrh.w r3, [sp, #48] ; 0x30
aa04: 930d str r3, [sp, #52] ; 0x34
if(other_mask_cnt) simple_mode = false;
aa06: 2b00 cmp r3, #0
aa08: f040 84ef bne.w b3ea <lv_draw_rect+0x157a>
else if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) simple_mode = false;
aa0c: f89a 3006 ldrb.w r3, [sl, #6]
aa10: 3b02 subs r3, #2
aa12: bf18 it ne
aa14: 2301 movne r3, #1
aa16: f8bd 605c ldrh.w r6, [sp, #92] ; 0x5c
if(other_mask_cnt) simple_mode = false;
aa1a: 9308 str r3, [sp, #32]
aa1c: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
aa20: f8bd 405e ldrh.w r4, [sp, #94] ; 0x5e
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
aa24: 3601 adds r6, #1
aa26: 1af6 subs r6, r6, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
aa28: f8bd 305a ldrh.w r3, [sp, #90] ; 0x5a
aa2c: 3401 adds r4, #1
aa2e: 1ae4 subs r4, r4, r3
int32_t coords_h = lv_area_get_height(&coords_bg);
aa30: b224 sxth r4, r4
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
aa32: b236 sxth r6, r6
int32_t short_side = LV_MATH_MIN(coords_w, coords_h);
aa34: 42b4 cmp r4, r6
int32_t rout = dsc->radius;
aa36: f9ba 3000 ldrsh.w r3, [sl]
int32_t short_side = LV_MATH_MIN(coords_w, coords_h);
aa3a: bfa8 it ge
aa3c: 4634 movge r4, r6
if(rout > short_side >> 1) rout = short_side >> 1;
aa3e: 1064 asrs r4, r4, #1
aa40: 429c cmp r4, r3
aa42: bfa8 it ge
aa44: 461c movge r4, r3
if(simple_mode && rout == 0 && (dsc->bg_grad_dir == LV_GRAD_DIR_NONE)) {
aa46: 9b08 ldr r3, [sp, #32]
aa48: 2b00 cmp r3, #0
aa4a: f000 84d1 beq.w b3f0 <lv_draw_rect+0x1580>
aa4e: 2c00 cmp r4, #0
aa50: f040 84ce bne.w b3f0 <lv_draw_rect+0x1580>
aa54: f89a 3006 ldrb.w r3, [sl, #6]
aa58: 2b00 cmp r3, #0
aa5a: f040 857c bne.w b556 <lv_draw_rect+0x16e6>
_lv_blend_fill(clip, &coords_bg,
aa5e: f89a 200d ldrb.w r2, [sl, #13]
aa62: 4c5e ldr r4, [pc, #376] ; (abdc <lv_draw_rect+0xd6c>)
aa64: e9cd 9201 strd r9, r2, [sp, #4]
aa68: 2201 movs r2, #1
aa6a: 9200 str r2, [sp, #0]
aa6c: f8ba 2002 ldrh.w r2, [sl, #2]
aa70: a916 add r1, sp, #88 ; 0x58
aa72: 4640 mov r0, r8
aa74: 47a0 blx r4
int16_t mask_rout_id = LV_MASK_ID_INV;
aa76: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
aa7a: 930b str r3, [sp, #44] ; 0x2c
lv_draw_mask_remove_id(mask_rout_id);
aa7c: 4b51 ldr r3, [pc, #324] ; (abc4 <lv_draw_rect+0xd54>)
aa7e: 980b ldr r0, [sp, #44] ; 0x2c
aa80: 4798 blx r3
_lv_mem_buf_release(mask_buf);
aa82: 4b51 ldr r3, [pc, #324] ; (abc8 <lv_draw_rect+0xd58>)
aa84: 4628 mov r0, r5
aa86: 4798 blx r3
_lv_mem_buf_release(mask_buf);
}
static void draw_pattern(const lv_area_t * coords, const lv_area_t * clip, lv_draw_rect_dsc_t * dsc)
{
if(dsc->pattern_image == NULL) return;
aa88: f8da 002c ldr.w r0, [sl, #44] ; 0x2c
aa8c: b1d0 cbz r0, aac4 <lv_draw_rect+0xc54>
if(dsc->pattern_opa <= LV_OPA_MIN) return;
aa8e: f89a 3036 ldrb.w r3, [sl, #54] ; 0x36
aa92: 2b05 cmp r3, #5
aa94: d916 bls.n aac4 <lv_draw_rect+0xc54>
lv_img_src_t src_type = lv_img_src_get_type(dsc->pattern_image);
aa96: 4b52 ldr r3, [pc, #328] ; (abe0 <lv_draw_rect+0xd70>)
aa98: 4798 blx r3
lv_draw_img_dsc_t img_dsc;
lv_draw_label_dsc_t label_dsc;
int32_t img_w;
int32_t img_h;
if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_VARIABLE) {
aa9a: 2801 cmp r0, #1
lv_img_src_t src_type = lv_img_src_get_type(dsc->pattern_image);
aa9c: 4606 mov r6, r0
if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_VARIABLE) {
aa9e: f200 86bc bhi.w b81a <lv_draw_rect+0x19aa>
lv_img_header_t header;
lv_res_t res = lv_img_decoder_get_info(dsc->pattern_image, &header);
aaa2: f8da 002c ldr.w r0, [sl, #44] ; 0x2c
aaa6: 4b4f ldr r3, [pc, #316] ; (abe4 <lv_draw_rect+0xd74>)
aaa8: a925 add r1, sp, #148 ; 0x94
aaaa: 4798 blx r3
if(res != LV_RES_OK) {
aaac: 2801 cmp r0, #1
aaae: f000 8656 beq.w b75e <lv_draw_rect+0x18ee>
LV_LOG_WARN("draw_img: can't get image info");
aab2: 4b4d ldr r3, [pc, #308] ; (abe8 <lv_draw_rect+0xd78>)
aab4: 9300 str r3, [sp, #0]
aab6: 494d ldr r1, [pc, #308] ; (abec <lv_draw_rect+0xd7c>)
aab8: 4b4d ldr r3, [pc, #308] ; (abf0 <lv_draw_rect+0xd80>)
aaba: 4c4e ldr r4, [pc, #312] ; (abf4 <lv_draw_rect+0xd84>)
aabc: f240 5294 movw r2, #1428 ; 0x594
aac0: 2002 movs r0, #2
aac2: 47a0 blx r4
if(dsc->border_opa <= LV_OPA_MIN) return;
aac4: f89a 3014 ldrb.w r3, [sl, #20]
aac8: 9305 str r3, [sp, #20]
aaca: 2b05 cmp r3, #5
aacc: f240 8174 bls.w adb8 <lv_draw_rect+0xf48>
if(dsc->border_width == 0) return;
aad0: f9ba 3010 ldrsh.w r3, [sl, #16]
aad4: 2b00 cmp r3, #0
aad6: f000 816f beq.w adb8 <lv_draw_rect+0xf48>
if(dsc->border_side == LV_BORDER_SIDE_NONE) return;
aada: f9ba 3012 ldrsh.w r3, [sl, #18]
aade: 2b00 cmp r3, #0
aae0: f000 816a beq.w adb8 <lv_draw_rect+0xf48>
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
aae4: 9b05 ldr r3, [sp, #20]
aae6: 2bfb cmp r3, #251 ; 0xfb
aae8: bf28 it cs
aaea: 23ff movcs r3, #255 ; 0xff
aaec: 9305 str r3, [sp, #20]
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
aaee: 4b37 ldr r3, [pc, #220] ; (abcc <lv_draw_rect+0xd5c>)
aaf0: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
aaf2: 4b37 ldr r3, [pc, #220] ; (abd0 <lv_draw_rect+0xd60>)
aaf4: 4798 blx r3
is_common = _lv_area_intersect(&draw_area, coords, clip);
aaf6: 4b31 ldr r3, [pc, #196] ; (abbc <lv_draw_rect+0xd4c>)
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
aaf8: 9006 str r0, [sp, #24]
is_common = _lv_area_intersect(&draw_area, coords, clip);
aafa: 4642 mov r2, r8
aafc: 4659 mov r1, fp
aafe: a814 add r0, sp, #80 ; 0x50
ab00: 4798 blx r3
if(is_common == false) return;
ab02: 2800 cmp r0, #0
ab04: f000 8158 beq.w adb8 <lv_draw_rect+0xf48>
draw_area.x1 -= disp_area->x1;
ab08: 9b06 ldr r3, [sp, #24]
ab0a: f8bd 1050 ldrh.w r1, [sp, #80] ; 0x50
ab0e: 8a1a ldrh r2, [r3, #16]
ab10: 1a8b subs r3, r1, r2
ab12: f8ad 3050 strh.w r3, [sp, #80] ; 0x50
draw_area.y1 -= disp_area->y1;
ab16: 9b06 ldr r3, [sp, #24]
ab18: 8a58 ldrh r0, [r3, #18]
ab1a: f8bd 3052 ldrh.w r3, [sp, #82] ; 0x52
ab1e: 1a1b subs r3, r3, r0
ab20: f8ad 3052 strh.w r3, [sp, #82] ; 0x52
draw_area.x2 -= disp_area->x1;
ab24: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54
ab28: 1a9a subs r2, r3, r2
ab2a: f8ad 2054 strh.w r2, [sp, #84] ; 0x54
ab2e: 3301 adds r3, #1
draw_area.y2 -= disp_area->y1;
ab30: f8bd 2056 ldrh.w r2, [sp, #86] ; 0x56
ab34: 1a5b subs r3, r3, r1
ab36: 1a12 subs r2, r2, r0
ab38: fa0f f983 sxth.w r9, r3
ab3c: f8ad 2056 strh.w r2, [sp, #86] ; 0x56
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
ab40: 4b24 ldr r3, [pc, #144] ; (abd4 <lv_draw_rect+0xd64>)
ab42: 4648 mov r0, r9
ab44: 4798 blx r3
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
ab46: 4b24 ldr r3, [pc, #144] ; (abd8 <lv_draw_rect+0xd68>)
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
ab48: 4604 mov r4, r0
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
ab4a: 4798 blx r3
if(other_mask_cnt) simple_mode = false;
ab4c: 2800 cmp r0, #0
ab4e: f040 8749 bne.w b9e4 <lv_draw_rect+0x1b74>
else if(dsc->border_side != LV_BORDER_SIDE_FULL) simple_mode = false;
ab52: f9ba 3012 ldrsh.w r3, [sl, #18]
ab56: f1a3 050f sub.w r5, r3, #15
ab5a: 426b negs r3, r5
ab5c: 416b adcs r3, r5
if(other_mask_cnt) simple_mode = false;
ab5e: 461f mov r7, r3
ab60: f8bb 3004 ldrh.w r3, [fp, #4]
ab64: f8bb 2000 ldrh.w r2, [fp]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
ab68: f8bb 1002 ldrh.w r1, [fp, #2]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
ab6c: 3301 adds r3, #1
ab6e: 1a9b subs r3, r3, r2
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
ab70: f8bb 2006 ldrh.w r2, [fp, #6]
ab74: 3201 adds r2, #1
ab76: 1a52 subs r2, r2, r1
int32_t coords_w = lv_area_get_width(coords);
ab78: b21b sxth r3, r3
int32_t coords_h = lv_area_get_height(coords);
ab7a: b212 sxth r2, r2
int32_t short_side = LV_MATH_MIN(coords_w, coords_h);
ab7c: 4293 cmp r3, r2
ab7e: bfa8 it ge
ab80: 4613 movge r3, r2
int32_t rout = dsc->radius;
ab82: f9ba 2000 ldrsh.w r2, [sl]
if(rout > short_side >> 1) rout = short_side >> 1;
ab86: 105b asrs r3, r3, #1
ab88: 4293 cmp r3, r2
ab8a: bfa8 it ge
ab8c: 4613 movge r3, r2
if(rout > 0) {
ab8e: 2b00 cmp r3, #0
ab90: 9309 str r3, [sp, #36] ; 0x24
ab92: f340 872a ble.w b9ea <lv_draw_rect+0x1b7a>
lv_draw_mask_radius_init(&mask_rout_param, coords, rout, false);
ab96: 9a09 ldr r2, [sp, #36] ; 0x24
ab98: 4d17 ldr r5, [pc, #92] ; (abf8 <lv_draw_rect+0xd88>)
ab9a: 2300 movs r3, #0
ab9c: 4659 mov r1, fp
ab9e: a81e add r0, sp, #120 ; 0x78
aba0: 47a8 blx r5
mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
aba2: 4b16 ldr r3, [pc, #88] ; (abfc <lv_draw_rect+0xd8c>)
aba4: 2100 movs r1, #0
aba6: a81e add r0, sp, #120 ; 0x78
aba8: 4798 blx r3
abaa: 900c str r0, [sp, #48] ; 0x30
lv_area_copy(&area_small, coords);
abac: a816 add r0, sp, #88 ; 0x58
abae: 4b04 ldr r3, [pc, #16] ; (abc0 <lv_draw_rect+0xd50>)
abb0: 4659 mov r1, fp
abb2: 4798 blx r3
area_small.x1 += ((dsc->border_side & LV_BORDER_SIDE_LEFT) ? dsc->border_width : - (dsc->border_width + rout));
abb4: f8ba 1012 ldrh.w r1, [sl, #18]
abb8: e024 b.n ac04 <lv_draw_rect+0xd94>
abba: bf00 nop
abbc: 0000e111 .word 0x0000e111
abc0: 00009e11 .word 0x00009e11
abc4: 00009a25 .word 0x00009a25
abc8: 0000edf9 .word 0x0000edf9
abcc: 0000526d .word 0x0000526d
abd0: 0000dc65 .word 0x0000dc65
abd4: 0000f145 .word 0x0000f145
abd8: 00009a75 .word 0x00009a75
abdc: 00006475 .word 0x00006475
abe0: 00007a89 .word 0x00007a89
abe4: 0000d1ad .word 0x0000d1ad
abe8: 00027828 .word 0x00027828
abec: 000277f3 .word 0x000277f3
abf0: 00027876 .word 0x00027876
abf4: 0000eb79 .word 0x0000eb79
abf8: 00009b99 .word 0x00009b99
abfc: 00009995 .word 0x00009995
ac00: 0000f249 .word 0x0000f249
ac04: f8bd 5024 ldrh.w r5, [sp, #36] ; 0x24
ac08: f8ba 3010 ldrh.w r3, [sl, #16]
ac0c: f8bd 2058 ldrh.w r2, [sp, #88] ; 0x58
ac10: 0748 lsls r0, r1, #29
ac12: bf5e ittt pl
ac14: 195b addpl r3, r3, r5
ac16: 425b negpl r3, r3
ac18: b29b uxthpl r3, r3
ac1a: 4413 add r3, r2
ac1c: f8ba 2010 ldrh.w r2, [sl, #16]
ac20: f8ad 3058 strh.w r3, [sp, #88] ; 0x58
area_small.x2 -= ((dsc->border_side & LV_BORDER_SIDE_RIGHT) ? dsc->border_width : - (dsc->border_width + rout));
ac24: 070b lsls r3, r1, #28
ac26: bf58 it pl
ac28: 1953 addpl r3, r2, r5
ac2a: f8bd 005c ldrh.w r0, [sp, #92] ; 0x5c
ac2e: bf56 itet pl
ac30: 425b negpl r3, r3
ac32: 4613 movmi r3, r2
ac34: b29b uxthpl r3, r3
ac36: 1ac3 subs r3, r0, r3
area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout));
ac38: 078e lsls r6, r1, #30
area_small.x2 -= ((dsc->border_side & LV_BORDER_SIDE_RIGHT) ? dsc->border_width : - (dsc->border_width + rout));
ac3a: f8ad 305c strh.w r3, [sp, #92] ; 0x5c
area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout));
ac3e: bf58 it pl
ac40: 1953 addpl r3, r2, r5
ac42: f8bd 005a ldrh.w r0, [sp, #90] ; 0x5a
lv_draw_mask_radius_init(&mask_rin_param, &area_small, rout - dsc->border_width, true);
ac46: 4ec3 ldr r6, [pc, #780] ; (af54 <lv_draw_rect+0x10e4>)
area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout));
ac48: bf56 itet pl
ac4a: 425b negpl r3, r3
ac4c: 4613 movmi r3, r2
ac4e: b29b uxthpl r3, r3
ac50: 4403 add r3, r0
ac52: f8ad 305a strh.w r3, [sp, #90] ; 0x5a
area_small.y2 -= ((dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? dsc->border_width : - (dsc->border_width + rout));
ac56: 07cb lsls r3, r1, #31
ac58: bf5c itt pl
ac5a: 1953 addpl r3, r2, r5
ac5c: 425b negpl r3, r3
ac5e: f8bd 005e ldrh.w r0, [sp, #94] ; 0x5e
ac62: bf4c ite mi
ac64: 4613 movmi r3, r2
ac66: b29b uxthpl r3, r3
ac68: 1ac3 subs r3, r0, r3
lv_draw_mask_radius_init(&mask_rin_param, &area_small, rout - dsc->border_width, true);
ac6a: 1aaa subs r2, r5, r2
ac6c: b212 sxth r2, r2
area_small.y2 -= ((dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? dsc->border_width : - (dsc->border_width + rout));
ac6e: f8ad 305e strh.w r3, [sp, #94] ; 0x5e
lv_draw_mask_radius_init(&mask_rin_param, &area_small, rout - dsc->border_width, true);
ac72: a916 add r1, sp, #88 ; 0x58
ac74: 2301 movs r3, #1
ac76: a825 add r0, sp, #148 ; 0x94
ac78: 47b0 blx r6
int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL);
ac7a: 4bb7 ldr r3, [pc, #732] ; (af58 <lv_draw_rect+0x10e8>)
ac7c: 2100 movs r1, #0
ac7e: a825 add r0, sp, #148 ; 0x94
ac80: 4798 blx r3
int32_t corner_size = LV_MATH_MAX(rout, dsc->border_width - 1);
ac82: f9ba 3010 ldrsh.w r3, [sl, #16]
ac86: 9a09 ldr r2, [sp, #36] ; 0x24
fill_area.y1 = disp_area->y1 + draw_area.y1;
ac88: f9bd 6052 ldrsh.w r6, [sp, #82] ; 0x52
upper_corner_end = LV_MATH_MIN(upper_corner_end, draw_area.y2);
ac8c: f9bd c056 ldrsh.w ip, [sp, #86] ; 0x56
fill_area.x1 = coords->x1;
ac90: f9bb 1000 ldrsh.w r1, [fp]
int32_t corner_size = LV_MATH_MAX(rout, dsc->border_width - 1);
ac94: 429a cmp r2, r3
ac96: bfa8 it ge
ac98: 9b09 ldrge r3, [sp, #36] ; 0x24
fill_area.x2 = coords->x2;
ac9a: f9bb 2004 ldrsh.w r2, [fp, #4]
int32_t corner_size = LV_MATH_MAX(rout, dsc->border_width - 1);
ac9e: bfb8 it lt
aca0: f103 33ff addlt.w r3, r3, #4294967295 ; 0xffffffff
aca4: 9308 str r3, [sp, #32]
lv_color_t color = dsc->border_color;
aca6: f8ba 300e ldrh.w r3, [sl, #14]
acaa: ee08 3a10 vmov s16, r3
lv_blend_mode_t blend_mode = dsc->border_blend_mode;
acae: f89a 3015 ldrb.w r3, [sl, #21]
acb2: 9307 str r3, [sp, #28]
int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size;
acb4: 9b06 ldr r3, [sp, #24]
acb6: f9b3 e012 ldrsh.w lr, [r3, #18]
fill_area.y1 = disp_area->y1 + draw_area.y1;
acba: eb0e 0306 add.w r3, lr, r6
int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL);
acbe: ee08 0a90 vmov s17, r0
fill_area.y1 = disp_area->y1 + draw_area.y1;
acc2: b21b sxth r3, r3
if(simple_mode) {
acc4: 2f00 cmp r7, #0
acc6: f000 879d beq.w bc04 <lv_draw_rect+0x1d94>
int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size;
acca: f9bb 0002 ldrsh.w r0, [fp, #2]
acce: 9f08 ldr r7, [sp, #32]
fill_area.x1 = coords->x1;
acd0: f8ad 1060 strh.w r1, [sp, #96] ; 0x60
int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size;
acd4: eba0 000e sub.w r0, r0, lr
acd8: 4438 add r0, r7
upper_corner_end = LV_MATH_MIN(upper_corner_end, draw_area.y2);
acda: 4584 cmp ip, r0
acdc: bfa8 it ge
acde: 4684 movge ip, r0
ace0: f8cd c028 str.w ip, [sp, #40] ; 0x28
fill_area.x2 = coords->x2;
ace4: f8ad 2064 strh.w r2, [sp, #100] ; 0x64
fill_area.y1 = disp_area->y1 + draw_area.y1;
ace8: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2 = fill_area.y1;
acec: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = draw_area.y1; h <= upper_corner_end; h++) {
acf0: 9b0a ldr r3, [sp, #40] ; 0x28
acf2: 42b3 cmp r3, r6
acf4: f280 867e bge.w b9f4 <lv_draw_rect+0x1b84>
int32_t lower_corner_end = coords->y2 - disp_area->y1 - corner_size;
acf8: 9b06 ldr r3, [sp, #24]
acfa: f9bb 2006 ldrsh.w r2, [fp, #6]
acfe: f9b3 3012 ldrsh.w r3, [r3, #18]
ad02: 9908 ldr r1, [sp, #32]
lower_corner_end = LV_MATH_MAX(lower_corner_end, draw_area.y1);
ad04: f9bd 6052 ldrsh.w r6, [sp, #82] ; 0x52
int32_t lower_corner_end = coords->y2 - disp_area->y1 - corner_size;
ad08: 1ad2 subs r2, r2, r3
ad0a: 1a52 subs r2, r2, r1
lower_corner_end = LV_MATH_MAX(lower_corner_end, draw_area.y1);
ad0c: 4296 cmp r6, r2
ad0e: bfb8 it lt
ad10: 4616 movlt r6, r2
if(lower_corner_end <= upper_corner_end) lower_corner_end = upper_corner_end + 1;
ad12: 9a0a ldr r2, [sp, #40] ; 0x28
ad14: 42b2 cmp r2, r6
ad16: bfa4 itt ge
ad18: 4616 movge r6, r2
ad1a: 3601 addge r6, #1
fill_area.y1 = disp_area->y1 + lower_corner_end;
ad1c: 4433 add r3, r6
ad1e: b21b sxth r3, r3
ad20: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2 = fill_area.y1;
ad24: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = lower_corner_end; h <= draw_area.y2; h++) {
ad28: f9bd 3056 ldrsh.w r3, [sp, #86] ; 0x56
ad2c: 429e cmp r6, r3
ad2e: f340 86dd ble.w baec <lv_draw_rect+0x1c7c>
fill_area.y1 = coords->y1 + corner_size + 1;
ad32: f8bb 3002 ldrh.w r3, [fp, #2]
ad36: 9a08 ldr r2, [sp, #32]
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
ad38: 4d88 ldr r5, [pc, #544] ; (af5c <lv_draw_rect+0x10ec>)
fill_area.y1 = coords->y1 + corner_size + 1;
ad3a: 3301 adds r3, #1
ad3c: fa13 f382 uxtah r3, r3, r2
ad40: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2 = coords->y2 - corner_size - 1;
ad44: f8bb 3006 ldrh.w r3, [fp, #6]
ad48: 3b01 subs r3, #1
ad4a: 1a9b subs r3, r3, r2
fill_area.x2 = coords->x1 + dsc->border_width - 1;
ad4c: f8ba 2010 ldrh.w r2, [sl, #16]
fill_area.y2 = coords->y2 - corner_size - 1;
ad50: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
fill_area.x1 = coords->x1;
ad54: f9bb 3000 ldrsh.w r3, [fp]
ad58: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
fill_area.x2 = coords->x1 + dsc->border_width - 1;
ad5c: 3a01 subs r2, #1
ad5e: 4413 add r3, r2
ad60: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
ad64: 9b07 ldr r3, [sp, #28]
ad66: 9302 str r3, [sp, #8]
ad68: 2601 movs r6, #1
ad6a: 9b05 ldr r3, [sp, #20]
ad6c: 9301 str r3, [sp, #4]
ad6e: ee18 2a10 vmov r2, s16
ad72: 2300 movs r3, #0
ad74: a918 add r1, sp, #96 ; 0x60
ad76: 4640 mov r0, r8
ad78: 9600 str r6, [sp, #0]
ad7a: 47a8 blx r5
fill_area.x1 = coords->x2 - dsc->border_width + 1;
ad7c: f8ba 3010 ldrh.w r3, [sl, #16]
ad80: f9bb 2004 ldrsh.w r2, [fp, #4]
fill_area.x2 = coords->x2;
ad84: f8ad 2064 strh.w r2, [sp, #100] ; 0x64
fill_area.x1 = coords->x2 - dsc->border_width + 1;
ad88: 1af3 subs r3, r6, r3
ad8a: 4413 add r3, r2
ad8c: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
ad90: 9b07 ldr r3, [sp, #28]
ad92: 9302 str r3, [sp, #8]
ad94: 9b05 ldr r3, [sp, #20]
ad96: ee18 2a10 vmov r2, s16
ad9a: e9cd 6300 strd r6, r3, [sp]
ad9e: a918 add r1, sp, #96 ; 0x60
ada0: 2300 movs r3, #0
ada2: 4640 mov r0, r8
ada4: 47a8 blx r5
lv_draw_mask_remove_id(mask_rin_id);
ada6: 4d6e ldr r5, [pc, #440] ; (af60 <lv_draw_rect+0x10f0>)
ada8: ee18 0a90 vmov r0, s17
adac: 47a8 blx r5
lv_draw_mask_remove_id(mask_rout_id);
adae: 980c ldr r0, [sp, #48] ; 0x30
adb0: 47a8 blx r5
_lv_mem_buf_release(mask_buf);
adb2: 4b6c ldr r3, [pc, #432] ; (af64 <lv_draw_rect+0x10f4>)
adb4: 4620 mov r0, r4
adb6: 4798 blx r3
}
static void draw_value(const lv_area_t * coords, const lv_area_t * clip, lv_draw_rect_dsc_t * dsc)
{
if(dsc->value_str == NULL) return;
adb8: f8da 103c ldr.w r1, [sl, #60] ; 0x3c
adbc: 2900 cmp r1, #0
adbe: d064 beq.n ae8a <lv_draw_rect+0x101a>
if(dsc->value_opa <= LV_OPA_MIN) return;
adc0: f89a 3044 ldrb.w r3, [sl, #68] ; 0x44
adc4: 2b05 cmp r3, #5
adc6: d960 bls.n ae8a <lv_draw_rect+0x101a>
lv_point_t s;
_lv_txt_get_size(&s, dsc->value_str, dsc->value_font, dsc->value_letter_space, dsc->value_line_space, LV_COORD_MAX,
adc8: 2400 movs r4, #0
adca: f647 4318 movw r3, #31768 ; 0x7c18
adce: e9cd 3401 strd r3, r4, [sp, #4]
add2: f9ba 304e ldrsh.w r3, [sl, #78] ; 0x4e
add6: 9300 str r3, [sp, #0]
add8: f9ba 304c ldrsh.w r3, [sl, #76] ; 0x4c
addc: f8da 2040 ldr.w r2, [sl, #64] ; 0x40
ade0: 4d61 ldr r5, [pc, #388] ; (af68 <lv_draw_rect+0x10f8>)
ade2: a818 add r0, sp, #96 ; 0x60
ade4: 47a8 blx r5
LV_TXT_FLAG_NONE);
lv_area_t value_area;
value_area.x1 = 0;
value_area.y1 = 0;
value_area.x2 = s.x - 1;
ade6: f8bd 3060 ldrh.w r3, [sp, #96] ; 0x60
value_area.y2 = s.y - 1;
lv_point_t p_align;
_lv_area_align(coords, &value_area, dsc->value_align, &p_align);
adea: f89a 2050 ldrb.w r2, [sl, #80] ; 0x50
value_area.x1 = 0;
adee: 941e str r4, [sp, #120] ; 0x78
value_area.x2 = s.x - 1;
adf0: 3b01 subs r3, #1
adf2: f8ad 307c strh.w r3, [sp, #124] ; 0x7c
value_area.y2 = s.y - 1;
adf6: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
_lv_area_align(coords, &value_area, dsc->value_align, &p_align);
adfa: 4d5c ldr r5, [pc, #368] ; (af6c <lv_draw_rect+0x10fc>)
value_area.y2 = s.y - 1;
adfc: 3b01 subs r3, #1
adfe: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
_lv_area_align(coords, &value_area, dsc->value_align, &p_align);
ae02: a91e add r1, sp, #120 ; 0x78
ae04: ab1a add r3, sp, #104 ; 0x68
ae06: 4658 mov r0, fp
ae08: 47a8 blx r5
value_area.x1 += p_align.x + dsc->value_ofs_x;
ae0a: f8ba 3048 ldrh.w r3, [sl, #72] ; 0x48
ae0e: f8bd 2068 ldrh.w r2, [sp, #104] ; 0x68
value_area.y1 += p_align.y + dsc->value_ofs_y;
ae12: f8ba 104a ldrh.w r1, [sl, #74] ; 0x4a
value_area.x1 += p_align.x + dsc->value_ofs_x;
ae16: 441a add r2, r3
ae18: f8bd 3078 ldrh.w r3, [sp, #120] ; 0x78
ae1c: fa13 f382 uxtah r3, r3, r2
ae20: f8ad 3078 strh.w r3, [sp, #120] ; 0x78
value_area.y1 += p_align.y + dsc->value_ofs_y;
ae24: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a
ae28: 440b add r3, r1
ae2a: f8bd 107a ldrh.w r1, [sp, #122] ; 0x7a
ae2e: fa11 f183 uxtah r1, r1, r3
ae32: f8ad 107a strh.w r1, [sp, #122] ; 0x7a
value_area.x2 += p_align.x + dsc->value_ofs_x;
ae36: f8bd 107c ldrh.w r1, [sp, #124] ; 0x7c
ae3a: fa11 f282 uxtah r2, r1, r2
ae3e: f8ad 207c strh.w r2, [sp, #124] ; 0x7c
value_area.y2 += p_align.y + dsc->value_ofs_y;
ae42: f8bd 207e ldrh.w r2, [sp, #126] ; 0x7e
ae46: fa12 f383 uxtah r3, r2, r3
ae4a: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
lv_draw_label_dsc_t label_dsc;
lv_draw_label_dsc_init(&label_dsc);
ae4e: a825 add r0, sp, #148 ; 0x94
ae50: 4b47 ldr r3, [pc, #284] ; (af70 <lv_draw_rect+0x1100>)
ae52: 4798 blx r3
label_dsc.font = dsc->value_font;
ae54: f8da 3040 ldr.w r3, [sl, #64] ; 0x40
ae58: 9326 str r3, [sp, #152] ; 0x98
label_dsc.letter_space = dsc->value_letter_space;
ae5a: f8ba 304c ldrh.w r3, [sl, #76] ; 0x4c
ae5e: f8ad 30a0 strh.w r3, [sp, #160] ; 0xa0
label_dsc.line_space = dsc->value_line_space;
ae62: f8ba 304e ldrh.w r3, [sl, #78] ; 0x4e
ae66: f8ad 309e strh.w r3, [sp, #158] ; 0x9e
label_dsc.color = dsc->value_color;
ae6a: f8ba 3046 ldrh.w r3, [sl, #70] ; 0x46
ae6e: f8ad 3094 strh.w r3, [sp, #148] ; 0x94
label_dsc.opa = dsc->value_opa;
ae72: f89a 3044 ldrb.w r3, [sl, #68] ; 0x44
lv_draw_label(&value_area, clip, &label_dsc, dsc->value_str, NULL);
ae76: 9400 str r4, [sp, #0]
label_dsc.opa = dsc->value_opa;
ae78: f88d 309c strb.w r3, [sp, #156] ; 0x9c
lv_draw_label(&value_area, clip, &label_dsc, dsc->value_str, NULL);
ae7c: 4c3d ldr r4, [pc, #244] ; (af74 <lv_draw_rect+0x1104>)
ae7e: f8da 303c ldr.w r3, [sl, #60] ; 0x3c
ae82: aa25 add r2, sp, #148 ; 0x94
ae84: 4641 mov r1, r8
ae86: a81e add r0, sp, #120 ; 0x78
ae88: 47a0 blx r4
if(dsc->outline_opa <= LV_OPA_MIN) return;
ae8a: f89a 301c ldrb.w r3, [sl, #28]
ae8e: 9305 str r3, [sp, #20]
ae90: 2b05 cmp r3, #5
ae92: f240 816b bls.w b16c <lv_draw_rect+0x12fc>
if(dsc->outline_width == 0) return;
ae96: f9ba 3018 ldrsh.w r3, [sl, #24]
ae9a: 2b00 cmp r3, #0
ae9c: f000 8166 beq.w b16c <lv_draw_rect+0x12fc>
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
aea0: 9b05 ldr r3, [sp, #20]
lv_area_copy(&area_inner, coords);
aea2: 4d35 ldr r5, [pc, #212] ; (af78 <lv_draw_rect+0x1108>)
if(opa > LV_OPA_MAX) opa = LV_OPA_COVER;
aea4: 2bfb cmp r3, #251 ; 0xfb
aea6: bf28 it cs
aea8: 23ff movcs r3, #255 ; 0xff
aeaa: 9305 str r3, [sp, #20]
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
aeac: 4b33 ldr r3, [pc, #204] ; (af7c <lv_draw_rect+0x110c>)
aeae: 4798 blx r3
lv_area_copy(&area_inner, coords);
aeb0: 4659 mov r1, fp
uint8_t other_mask_cnt = lv_draw_mask_get_cnt();
aeb2: 900b str r0, [sp, #44] ; 0x2c
lv_area_copy(&area_inner, coords);
aeb4: a812 add r0, sp, #72 ; 0x48
aeb6: 47a8 blx r5
area_inner.x1 -= dsc->outline_pad;
aeb8: f8ba 701a ldrh.w r7, [sl, #26]
aebc: f8bd 9048 ldrh.w r9, [sp, #72] ; 0x48
area_inner.x2 += dsc->outline_pad;
aec0: f8bd 404c ldrh.w r4, [sp, #76] ; 0x4c
area_inner.x1 -= dsc->outline_pad;
aec4: eba9 0307 sub.w r3, r9, r7
aec8: f8ad 3048 strh.w r3, [sp, #72] ; 0x48
area_inner.y1 -= dsc->outline_pad;
aecc: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a
aed0: 9307 str r3, [sp, #28]
aed2: 1bdb subs r3, r3, r7
aed4: f8ad 304a strh.w r3, [sp, #74] ; 0x4a
area_inner.y2 += dsc->outline_pad;
aed8: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e
aedc: 443b add r3, r7
aede: b29b uxth r3, r3
area_inner.x2 += dsc->outline_pad;
aee0: 443c add r4, r7
area_inner.y2 += dsc->outline_pad;
aee2: 9308 str r3, [sp, #32]
aee4: f8ad 304e strh.w r3, [sp, #78] ; 0x4e
area_inner.x2 += dsc->outline_pad;
aee8: b2a4 uxth r4, r4
int32_t rin = dsc->radius;
aeea: f9ba 3000 ldrsh.w r3, [sl]
aeee: 930c str r3, [sp, #48] ; 0x30
lv_area_copy(&area_outer, &area_inner);
aef0: a912 add r1, sp, #72 ; 0x48
int32_t rout = rin + dsc->outline_width;
aef2: f9ba 3018 ldrsh.w r3, [sl, #24]
area_inner.x2 += dsc->outline_pad;
aef6: f8ad 404c strh.w r4, [sp, #76] ; 0x4c
lv_area_copy(&area_outer, &area_inner);
aefa: a814 add r0, sp, #80 ; 0x50
int32_t rout = rin + dsc->outline_width;
aefc: 930d str r3, [sp, #52] ; 0x34
lv_area_copy(&area_outer, &area_inner);
aefe: 47a8 blx r5
area_outer.x1 -= dsc->outline_width;
af00: f8ba 6018 ldrh.w r6, [sl, #24]
af04: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50
af08: 9309 str r3, [sp, #36] ; 0x24
af0a: 1b9b subs r3, r3, r6
af0c: f8ad 3050 strh.w r3, [sp, #80] ; 0x50
area_outer.x2 += dsc->outline_width;
af10: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54
area_outer.y2 += dsc->outline_width;
af14: f8bd 5056 ldrh.w r5, [sp, #86] ; 0x56
area_outer.x2 += dsc->outline_width;
af18: 4433 add r3, r6
af1a: fa1f fb83 uxth.w fp, r3
area_outer.y1 -= dsc->outline_width;
af1e: f8bd 3052 ldrh.w r3, [sp, #82] ; 0x52
af22: 930a str r3, [sp, #40] ; 0x28
area_outer.y2 += dsc->outline_width;
af24: 4435 add r5, r6
area_outer.y1 -= dsc->outline_width;
af26: 1b9b subs r3, r3, r6
area_outer.y2 += dsc->outline_width;
af28: b2ad uxth r5, r5
area_outer.y1 -= dsc->outline_width;
af2a: f8ad 3052 strh.w r3, [sp, #82] ; 0x52
area_outer.x2 += dsc->outline_width;
af2e: f8ad b054 strh.w fp, [sp, #84] ; 0x54
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
af32: 4b13 ldr r3, [pc, #76] ; (af80 <lv_draw_rect+0x1110>)
area_outer.y2 += dsc->outline_width;
af34: f8ad 5056 strh.w r5, [sp, #86] ; 0x56
lv_disp_t * disp = _lv_refr_get_disp_refreshing();
af38: 4798 blx r3
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
af3a: 4b12 ldr r3, [pc, #72] ; (af84 <lv_draw_rect+0x1114>)
af3c: 4798 blx r3
is_common = _lv_area_intersect(&draw_area, &area_outer, clip);
af3e: 4b12 ldr r3, [pc, #72] ; (af88 <lv_draw_rect+0x1118>)
lv_disp_buf_t * vdb = lv_disp_get_buf(disp);
af40: 9006 str r0, [sp, #24]
is_common = _lv_area_intersect(&draw_area, &area_outer, clip);
af42: 4642 mov r2, r8
af44: a914 add r1, sp, #80 ; 0x50
af46: a816 add r0, sp, #88 ; 0x58
af48: 4798 blx r3
if(is_common == false) return;
af4a: 2800 cmp r0, #0
af4c: f000 810e beq.w b16c <lv_draw_rect+0x12fc>
af50: e01c b.n af8c <lv_draw_rect+0x111c>
af52: bf00 nop
af54: 00009b99 .word 0x00009b99
af58: 00009995 .word 0x00009995
af5c: 00006475 .word 0x00006475
af60: 00009a25 .word 0x00009a25
af64: 0000edf9 .word 0x0000edf9
af68: 0001042d .word 0x0001042d
af6c: 0000e3b5 .word 0x0000e3b5
af70: 00007ac9 .word 0x00007ac9
af74: 00007af9 .word 0x00007af9
af78: 00009e11 .word 0x00009e11
af7c: 00009a75 .word 0x00009a75
af80: 0000526d .word 0x0000526d
af84: 0000dc65 .word 0x0000dc65
af88: 0000e111 .word 0x0000e111
af8c: 9b07 ldr r3, [sp, #28]
draw_area.x1 -= disp_area->x1;
af8e: f8bd 1058 ldrh.w r1, [sp, #88] ; 0x58
af92: f1c3 0301 rsb r3, r3, #1
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
af96: f1c9 0901 rsb r9, r9, #1
af9a: 44b9 add r9, r7
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
af9c: 441f add r7, r3
af9e: 9b08 ldr r3, [sp, #32]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
afa0: eb04 0209 add.w r2, r4, r9
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
afa4: 443b add r3, r7
int32_t inner_w = lv_area_get_width(&area_inner);
afa6: b212 sxth r2, r2
int32_t inner_h = lv_area_get_height(&area_inner);
afa8: b21b sxth r3, r3
int32_t short_side = LV_MATH_MIN(inner_w, inner_h);
afaa: 429a cmp r2, r3
afac: bfa8 it ge
afae: 461a movge r2, r3
afb0: 9b0c ldr r3, [sp, #48] ; 0x30
if(rin > short_side >> 1) rin = short_side >> 1;
afb2: 1052 asrs r2, r2, #1
afb4: 429a cmp r2, r3
afb6: bfa8 it ge
afb8: 461a movge r2, r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
afba: 9b09 ldr r3, [sp, #36] ; 0x24
afbc: f1c3 0301 rsb r3, r3, #1
afc0: 4433 add r3, r6
afc2: 449b add fp, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
afc4: 9b0a ldr r3, [sp, #40] ; 0x28
afc6: f1c3 0301 rsb r3, r3, #1
afca: 441e add r6, r3
afcc: 4435 add r5, r6
int32_t coords_out_w = lv_area_get_width(&area_outer);
afce: fa0f fb8b sxth.w fp, fp
int32_t coords_out_h = lv_area_get_height(&area_outer);
afd2: b22d sxth r5, r5
short_side = LV_MATH_MIN(coords_out_w, coords_out_h);
afd4: 45ab cmp fp, r5
int32_t rout = rin + dsc->outline_width;
afd6: 9b0d ldr r3, [sp, #52] ; 0x34
lv_draw_mask_radius_init(&mask_rin_param, &area_inner, rin, true);
afd8: 4ec8 ldr r6, [pc, #800] ; (b2fc <lv_draw_rect+0x148c>)
short_side = LV_MATH_MIN(coords_out_w, coords_out_h);
afda: bfa8 it ge
afdc: 46ab movge fp, r5
int32_t rout = rin + dsc->outline_width;
afde: 4413 add r3, r2
if(rout > short_side >> 1) rout = short_side >> 1;
afe0: ea4f 0b6b mov.w fp, fp, asr #1
afe4: 459b cmp fp, r3
afe6: 46d9 mov r9, fp
afe8: bfa8 it ge
afea: 4699 movge r9, r3
draw_area.x1 -= disp_area->x1;
afec: 9b06 ldr r3, [sp, #24]
draw_area.x2 -= disp_area->x1;
afee: f8bd 505c ldrh.w r5, [sp, #92] ; 0x5c
draw_area.x1 -= disp_area->x1;
aff2: 8a1b ldrh r3, [r3, #16]
aff4: 1ac8 subs r0, r1, r3
aff6: f8ad 0058 strh.w r0, [sp, #88] ; 0x58
draw_area.y1 -= disp_area->y1;
affa: 9806 ldr r0, [sp, #24]
draw_area.x2 -= disp_area->x1;
affc: 1aeb subs r3, r5, r3
draw_area.y1 -= disp_area->y1;
affe: 8a44 ldrh r4, [r0, #18]
draw_area.x2 -= disp_area->x1;
b000: f8ad 305c strh.w r3, [sp, #92] ; 0x5c
draw_area.y2 -= disp_area->y1;
b004: f8bd 305e ldrh.w r3, [sp, #94] ; 0x5e
draw_area.y1 -= disp_area->y1;
b008: f8bd 005a ldrh.w r0, [sp, #90] ; 0x5a
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
b00c: 3501 adds r5, #1
draw_area.y2 -= disp_area->y1;
b00e: 1b1b subs r3, r3, r4
b010: 1a6d subs r5, r5, r1
draw_area.y1 -= disp_area->y1;
b012: 1b00 subs r0, r0, r4
draw_area.y2 -= disp_area->y1;
b014: f8ad 305e strh.w r3, [sp, #94] ; 0x5e
b018: b22b sxth r3, r5
b01a: ee08 3a10 vmov s16, r3
draw_area.y1 -= disp_area->y1;
b01e: f8ad 005a strh.w r0, [sp, #90] ; 0x5a
lv_draw_mask_radius_init(&mask_rin_param, &area_inner, rin, true);
b022: 2301 movs r3, #1
b024: a912 add r1, sp, #72 ; 0x48
b026: a81e add r0, sp, #120 ; 0x78
b028: 47b0 blx r6
int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL);
b02a: 4cb5 ldr r4, [pc, #724] ; (b300 <lv_draw_rect+0x1490>)
b02c: 2100 movs r1, #0
b02e: a81e add r0, sp, #120 ; 0x78
b030: 47a0 blx r4
lv_draw_mask_radius_init(&mask_rout_param, &area_outer, rout, false);
b032: fa0f f289 sxth.w r2, r9
b036: 2300 movs r3, #0
b038: a914 add r1, sp, #80 ; 0x50
int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL);
b03a: ee08 0a90 vmov s17, r0
lv_draw_mask_radius_init(&mask_rout_param, &area_outer, rout, false);
b03e: a825 add r0, sp, #148 ; 0x94
b040: 47b0 blx r6
int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
b042: 2100 movs r1, #0
b044: a825 add r0, sp, #148 ; 0x94
b046: 47a0 blx r4
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
b048: 4bae ldr r3, [pc, #696] ; (b304 <lv_draw_rect+0x1494>)
int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
b04a: ee09 0a10 vmov s18, r0
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
b04e: ee18 0a10 vmov r0, s16
b052: 4798 blx r3
int32_t corner_size = LV_MATH_MAX(rout, dsc->outline_width - 1);
b054: f9ba 3018 ldrsh.w r3, [sl, #24]
fill_area.y1 = disp_area->y1 + draw_area.y1;
b058: f9bd 605a ldrsh.w r6, [sp, #90] ; 0x5a
if(simple_mode) {
b05c: 9a0b ldr r2, [sp, #44] ; 0x2c
lv_color_t color = dsc->outline_color;
b05e: f8ba 7016 ldrh.w r7, [sl, #22]
lv_blend_mode_t blend_mode = dsc->outline_blend_mode;
b062: f89a b01d ldrb.w fp, [sl, #29]
fill_area.x2 = area_outer.x2;
b066: f9bd 1054 ldrsh.w r1, [sp, #84] ; 0x54
int32_t corner_size = LV_MATH_MAX(rout, dsc->outline_width - 1);
b06a: 4599 cmp r9, r3
b06c: bfbc itt lt
b06e: f103 33ff addlt.w r3, r3, #4294967295 ; 0xffffffff
b072: 9307 strlt r3, [sp, #28]
int32_t upper_corner_end = area_outer.y1 - disp_area->y1 + corner_size;
b074: 9b06 ldr r3, [sp, #24]
b076: bfa8 it ge
b078: f8cd 901c strge.w r9, [sp, #28]
b07c: f9b3 c012 ldrsh.w ip, [r3, #18]
fill_area.y1 = disp_area->y1 + draw_area.y1;
b080: eb0c 0306 add.w r3, ip, r6
lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w);
b084: 4604 mov r4, r0
fill_area.y1 = disp_area->y1 + draw_area.y1;
b086: b21b sxth r3, r3
fill_area.x1 = area_outer.x1;
b088: f9bd 0050 ldrsh.w r0, [sp, #80] ; 0x50
if(simple_mode) {
b08c: 2a00 cmp r2, #0
b08e: f040 873f bne.w bf10 <lv_draw_rect+0x20a0>
int32_t upper_corner_end = area_outer.y1 - disp_area->y1 + corner_size;
b092: f9bd 2052 ldrsh.w r2, [sp, #82] ; 0x52
b096: 9d07 ldr r5, [sp, #28]
fill_area.x1 = area_outer.x1;
b098: f8ad 0060 strh.w r0, [sp, #96] ; 0x60
int32_t upper_corner_end = area_outer.y1 - disp_area->y1 + corner_size;
b09c: eba2 020c sub.w r2, r2, ip
b0a0: 442a add r2, r5
b0a2: 9208 str r2, [sp, #32]
fill_area.x2 = area_outer.x2;
b0a4: f8ad 1064 strh.w r1, [sp, #100] ; 0x64
fill_area.y1 = disp_area->y1 + draw_area.y1;
b0a8: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2 = fill_area.y1;
b0ac: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = draw_area.y1; h <= upper_corner_end; h++) {
b0b0: 9b08 ldr r3, [sp, #32]
b0b2: 42b3 cmp r3, r6
b0b4: f280 8624 bge.w bd00 <lv_draw_rect+0x1e90>
int32_t lower_corner_end = area_outer.y2 - disp_area->y1 - corner_size;
b0b8: 9b06 ldr r3, [sp, #24]
b0ba: f9bd 6056 ldrsh.w r6, [sp, #86] ; 0x56
b0be: f9b3 3012 ldrsh.w r3, [r3, #18]
b0c2: 9a07 ldr r2, [sp, #28]
b0c4: 1af6 subs r6, r6, r3
b0c6: 1ab6 subs r6, r6, r2
if(lower_corner_end <= upper_corner_end) lower_corner_end = upper_corner_end + 1;
b0c8: 9a08 ldr r2, [sp, #32]
b0ca: 42b2 cmp r2, r6
b0cc: bfa4 itt ge
b0ce: 4616 movge r6, r2
b0d0: 3601 addge r6, #1
fill_area.y1 = disp_area->y1 + lower_corner_end;
b0d2: 4433 add r3, r6
b0d4: b21b sxth r3, r3
b0d6: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2 = fill_area.y1;
b0da: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = lower_corner_end; h <= draw_area.y2; h++) {
b0de: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e
b0e2: 429e cmp r6, r3
b0e4: f340 868d ble.w be02 <lv_draw_rect+0x1f92>
fill_area.y1 = area_outer.y1 + corner_size + 1;
b0e8: f8bd 3052 ldrh.w r3, [sp, #82] ; 0x52
b0ec: 9a07 ldr r2, [sp, #28]
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
b0ee: 4d86 ldr r5, [pc, #536] ; (b308 <lv_draw_rect+0x1498>)
fill_area.y1 = area_outer.y1 + corner_size + 1;
b0f0: 3301 adds r3, #1
b0f2: fa13 f382 uxtah r3, r3, r2
b0f6: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2 = area_outer.y2 - corner_size - 1;
b0fa: f8bd 3056 ldrh.w r3, [sp, #86] ; 0x56
b0fe: 3b01 subs r3, #1
b100: 1a9b subs r3, r3, r2
b102: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
fill_area.x1 = area_outer.x1;
b106: f9bd 3050 ldrsh.w r3, [sp, #80] ; 0x50
fill_area.x2 = area_outer.x1 + dsc->outline_width - 1;
b10a: f8ba 2018 ldrh.w r2, [sl, #24]
fill_area.x1 = area_outer.x1;
b10e: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
fill_area.x2 = area_outer.x1 + dsc->outline_width - 1;
b112: 3b01 subs r3, #1
b114: 4413 add r3, r2
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
b116: 2601 movs r6, #1
fill_area.x2 = area_outer.x1 + dsc->outline_width - 1;
b118: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
b11c: 9b05 ldr r3, [sp, #20]
b11e: 9301 str r3, [sp, #4]
b120: 463a mov r2, r7
b122: 2300 movs r3, #0
b124: a918 add r1, sp, #96 ; 0x60
b126: 4640 mov r0, r8
b128: f8cd b008 str.w fp, [sp, #8]
b12c: 9600 str r6, [sp, #0]
b12e: 47a8 blx r5
fill_area.x1 = area_outer.x2 - dsc->outline_width + 1;
b130: f9bd 2054 ldrsh.w r2, [sp, #84] ; 0x54
b134: f8ba 1018 ldrh.w r1, [sl, #24]
fill_area.x2 = area_outer.x2;
b138: f8ad 2064 strh.w r2, [sp, #100] ; 0x64
fill_area.x1 = area_outer.x2 - dsc->outline_width + 1;
b13c: 1993 adds r3, r2, r6
b13e: 1a5b subs r3, r3, r1
b140: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
_lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
b144: 9b05 ldr r3, [sp, #20]
b146: f8cd b008 str.w fp, [sp, #8]
b14a: e9cd 6300 strd r6, r3, [sp]
b14e: 463a mov r2, r7
b150: 2300 movs r3, #0
b152: a918 add r1, sp, #96 ; 0x60
b154: 4640 mov r0, r8
b156: 47a8 blx r5
lv_draw_mask_remove_id(mask_rin_id);
b158: 4d6c ldr r5, [pc, #432] ; (b30c <lv_draw_rect+0x149c>)
b15a: ee18 0a90 vmov r0, s17
b15e: 47a8 blx r5
lv_draw_mask_remove_id(mask_rout_id);
b160: ee19 0a10 vmov r0, s18
b164: 47a8 blx r5
_lv_mem_buf_release(mask_buf);
b166: 4b6a ldr r3, [pc, #424] ; (b310 <lv_draw_rect+0x14a0>)
b168: 4620 mov r0, r4
b16a: 4798 blx r3
}
b16c: b02d add sp, #180 ; 0xb4
b16e: ecbd 8b04 vpop {d8-d9}
b172: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
_lv_memcpy(mask_buf, sh_buf_tmp, w);
b176: 4629 mov r1, r5
b178: 4b66 ldr r3, [pc, #408] ; (b314 <lv_draw_rect+0x14a4>)
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
b17a: 4c67 ldr r4, [pc, #412] ; (b318 <lv_draw_rect+0x14a8>)
_lv_memcpy(mask_buf, sh_buf_tmp, w);
b17c: 4632 mov r2, r6
b17e: ee18 0a10 vmov r0, s16
b182: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
b184: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
b188: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
b18c: 4633 mov r3, r6
b18e: ee18 0a10 vmov r0, s16
b192: 47a0 blx r4
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b194: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29
b198: 9302 str r3, [sp, #8]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
b19a: 2801 cmp r0, #1
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b19c: 9b08 ldr r3, [sp, #32]
b19e: 4c5a ldr r4, [pc, #360] ; (b308 <lv_draw_rect+0x1498>)
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
b1a0: bf08 it eq
b1a2: 2002 moveq r0, #2
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b1a4: e9cd 0300 strd r0, r3, [sp]
b1a8: a91e add r1, sp, #120 ; 0x78
b1aa: ee18 3a10 vmov r3, s16
b1ae: f8ba 201e ldrh.w r2, [sl, #30]
b1b2: 4640 mov r0, r8
b1b4: 47a0 blx r4
fa.y1++;
b1b6: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
b1ba: 3301 adds r3, #1
b1bc: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2++;
b1c0: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
b1c4: 3301 adds r3, #1
b1c6: b21b sxth r3, r3
sh_buf_tmp += corner_size;
b1c8: 444d add r5, r9
for(y = 0; y < h; y++) {
b1ca: 3701 adds r7, #1
b1cc: f7ff ba2e b.w a62c <lv_draw_rect+0x7bc>
_lv_memcpy(mask_buf, sh_buf_tmp, w);
b1d0: 4629 mov r1, r5
b1d2: 4b50 ldr r3, [pc, #320] ; (b314 <lv_draw_rect+0x14a4>)
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
b1d4: 4c50 ldr r4, [pc, #320] ; (b318 <lv_draw_rect+0x14a8>)
_lv_memcpy(mask_buf, sh_buf_tmp, w);
b1d6: 4632 mov r2, r6
b1d8: ee18 0a10 vmov r0, s16
b1dc: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
b1de: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
b1e2: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
b1e6: 4633 mov r3, r6
b1e8: ee18 0a10 vmov r0, s16
b1ec: 47a0 blx r4
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b1ee: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29
b1f2: 9302 str r3, [sp, #8]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
b1f4: 2801 cmp r0, #1
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b1f6: 9b08 ldr r3, [sp, #32]
b1f8: 4c43 ldr r4, [pc, #268] ; (b308 <lv_draw_rect+0x1498>)
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
b1fa: bf08 it eq
b1fc: 2002 moveq r0, #2
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b1fe: e9cd 0300 strd r0, r3, [sp]
b202: a91e add r1, sp, #120 ; 0x78
b204: ee18 3a10 vmov r3, s16
b208: f8ba 201e ldrh.w r2, [sl, #30]
b20c: 4640 mov r0, r8
b20e: 47a0 blx r4
fa.y1--;
b210: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
b214: 3b01 subs r3, #1
b216: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2--;
b21a: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
b21e: 3b01 subs r3, #1
b220: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
sh_buf_tmp += corner_size;
b224: 444d add r5, r9
for(y = 0; y < h; y++) {
b226: 3701 adds r7, #1
b228: f7ff ba55 b.w a6d6 <lv_draw_rect+0x866>
_lv_memcpy(mask_buf, sh_buf_tmp, w);
b22c: 4b39 ldr r3, [pc, #228] ; (b314 <lv_draw_rect+0x14a4>)
b22e: ee18 0a10 vmov r0, s16
b232: 462a mov r2, r5
b234: 4631 mov r1, r6
b236: 4798 blx r3
if(simple_mode) {
b238: 9b07 ldr r3, [sp, #28]
b23a: b953 cbnz r3, b252 <lv_draw_rect+0x13e2>
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
b23c: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
b240: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
b244: 4c34 ldr r4, [pc, #208] ; (b318 <lv_draw_rect+0x14a8>)
b246: ee18 0a10 vmov r0, s16
b24a: 462b mov r3, r5
b24c: 47a0 blx r4
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
b24e: 2801 cmp r0, #1
b250: d100 bne.n b254 <lv_draw_rect+0x13e4>
b252: 2002 movs r0, #2
_lv_blend_fill(clip, &fa,
b254: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29
b258: 9302 str r3, [sp, #8]
b25a: f89a 3028 ldrb.w r3, [sl, #40] ; 0x28
b25e: 4c2a ldr r4, [pc, #168] ; (b308 <lv_draw_rect+0x1498>)
b260: e9cd 0300 strd r0, r3, [sp]
b264: a91e add r1, sp, #120 ; 0x78
b266: ee18 3a10 vmov r3, s16
b26a: f8ba 201e ldrh.w r2, [sl, #30]
b26e: 4640 mov r0, r8
b270: 47a0 blx r4
fa.y1++;
b272: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
b276: 3301 adds r3, #1
b278: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2++;
b27c: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
b280: 3301 adds r3, #1
b282: b21b sxth r3, r3
for(y = 0; y < h; y++) {
b284: 3701 adds r7, #1
b286: f7ff ba6f b.w a768 <lv_draw_rect+0x8f8>
lv_opa_t opa_tmp = sh_buf_tmp[0];
b28a: 7833 ldrb r3, [r6, #0]
if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8;
b28c: 9a08 ldr r2, [sp, #32]
b28e: ea02 0103 and.w r1, r2, r3
b292: 29ff cmp r1, #255 ; 0xff
b294: bf1c itt ne
b296: fb12 f303 smulbbne r3, r2, r3
b29a: f3c3 2107 ubfxne r1, r3, #8, #8
_lv_memset(mask_buf, opa_tmp, w);
b29e: ee18 0a10 vmov r0, s16
b2a2: 4b1e ldr r3, [pc, #120] ; (b31c <lv_draw_rect+0x14ac>)
b2a4: 462a mov r2, r5
b2a6: 4798 blx r3
if(simple_mode) {
b2a8: 9b07 ldr r3, [sp, #28]
b2aa: b953 cbnz r3, b2c2 <lv_draw_rect+0x1452>
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
b2ac: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
b2b0: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
b2b4: 4c18 ldr r4, [pc, #96] ; (b318 <lv_draw_rect+0x14a8>)
b2b6: ee18 0a10 vmov r0, s16
b2ba: 462b mov r3, r5
b2bc: 47a0 blx r4
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
b2be: 2801 cmp r0, #1
b2c0: d100 bne.n b2c4 <lv_draw_rect+0x1454>
b2c2: 2002 movs r0, #2
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b2c4: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29
b2c8: 9302 str r3, [sp, #8]
b2ca: 23ff movs r3, #255 ; 0xff
b2cc: e9cd 0300 strd r0, r3, [sp]
b2d0: 4c0d ldr r4, [pc, #52] ; (b308 <lv_draw_rect+0x1498>)
b2d2: f8ba 201e ldrh.w r2, [sl, #30]
b2d6: ee18 3a10 vmov r3, s16
b2da: a91e add r1, sp, #120 ; 0x78
b2dc: 4640 mov r0, r8
b2de: 47a0 blx r4
fa.y1++;
b2e0: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
b2e4: 3301 adds r3, #1
b2e6: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2++;
b2ea: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
b2ee: 3301 adds r3, #1
b2f0: b21b sxth r3, r3
sh_buf_tmp += corner_size;
b2f2: 444e add r6, r9
for(y = 0; y < h; y++) {
b2f4: 3701 adds r7, #1
b2f6: f7ff ba80 b.w a7fa <lv_draw_rect+0x98a>
b2fa: bf00 nop
b2fc: 00009b99 .word 0x00009b99
b300: 00009995 .word 0x00009995
b304: 0000f145 .word 0x0000f145
b308: 00006475 .word 0x00006475
b30c: 00009a25 .word 0x00009a25
b310: 0000edf9 .word 0x0000edf9
b314: 0000eec1 .word 0x0000eec1
b318: 000099e5 .word 0x000099e5
b31c: 0000f249 .word 0x0000f249
lv_opa_t opa_tmp = sh_buf_tmp[0];
b320: 7833 ldrb r3, [r6, #0]
if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8;
b322: 9a08 ldr r2, [sp, #32]
b324: ea02 0103 and.w r1, r2, r3
b328: 29ff cmp r1, #255 ; 0xff
b32a: bf1c itt ne
b32c: fb12 f303 smulbbne r3, r2, r3
b330: f3c3 2107 ubfxne r1, r3, #8, #8
_lv_memset(mask_buf, opa_tmp, w);
b334: ee18 0a10 vmov r0, s16
b338: 4bb5 ldr r3, [pc, #724] ; (b610 <lv_draw_rect+0x17a0>)
b33a: 462a mov r2, r5
b33c: 4798 blx r3
if(simple_mode) {
b33e: 9b07 ldr r3, [sp, #28]
b340: b953 cbnz r3, b358 <lv_draw_rect+0x14e8>
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
b342: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
b346: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
b34a: 4cb2 ldr r4, [pc, #712] ; (b614 <lv_draw_rect+0x17a4>)
b34c: ee18 0a10 vmov r0, s16
b350: 462b mov r3, r5
b352: 47a0 blx r4
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
b354: 2801 cmp r0, #1
b356: d100 bne.n b35a <lv_draw_rect+0x14ea>
b358: 2002 movs r0, #2
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b35a: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29
b35e: 9302 str r3, [sp, #8]
b360: 23ff movs r3, #255 ; 0xff
b362: e9cd 0300 strd r0, r3, [sp]
b366: 4cac ldr r4, [pc, #688] ; (b618 <lv_draw_rect+0x17a8>)
b368: f8ba 201e ldrh.w r2, [sl, #30]
b36c: ee18 3a10 vmov r3, s16
b370: a91e add r1, sp, #120 ; 0x78
b372: 4640 mov r0, r8
b374: 47a0 blx r4
fa.y1--;
b376: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
b37a: 3b01 subs r3, #1
b37c: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2--;
b380: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
b384: 3b01 subs r3, #1
b386: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
sh_buf_tmp += corner_size;
b38a: 444e add r6, r9
for(y = 0; y < h; y++) {
b38c: 3701 adds r7, #1
b38e: f7ff ba81 b.w a894 <lv_draw_rect+0xa24>
_lv_memset(mask_buf, dsc->shadow_opa, w);
b392: f89a 1028 ldrb.w r1, [sl, #40] ; 0x28
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
b396: 4c9f ldr r4, [pc, #636] ; (b614 <lv_draw_rect+0x17a4>)
_lv_memset(mask_buf, dsc->shadow_opa, w);
b398: ee18 0a10 vmov r0, s16
b39c: 4632 mov r2, r6
b39e: 47c8 blx r9
mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w);
b3a0: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a
b3a4: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78
b3a8: 4633 mov r3, r6
b3aa: ee18 0a10 vmov r0, s16
b3ae: 47a0 blx r4
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b3b0: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29
b3b4: 9302 str r3, [sp, #8]
if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED;
b3b6: 2801 cmp r0, #1
b3b8: bf08 it eq
b3ba: 2002 moveq r0, #2
_lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf,
b3bc: 23ff movs r3, #255 ; 0xff
b3be: e9cd 0300 strd r0, r3, [sp]
b3c2: 4c95 ldr r4, [pc, #596] ; (b618 <lv_draw_rect+0x17a8>)
b3c4: f8ba 201e ldrh.w r2, [sl, #30]
b3c8: ee18 3a10 vmov r3, s16
b3cc: a91e add r1, sp, #120 ; 0x78
b3ce: 4640 mov r0, r8
b3d0: 47a0 blx r4
fa.y1++;
b3d2: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a
b3d6: 3301 adds r3, #1
b3d8: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fa.y2++;
b3dc: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e
b3e0: 3301 adds r3, #1
b3e2: b21b sxth r3, r3
for(y = 0; y < h; y++) {
b3e4: 3501 adds r5, #1
b3e6: f7ff ba93 b.w a910 <lv_draw_rect+0xaa0>
if(other_mask_cnt) simple_mode = false;
b3ea: 2300 movs r3, #0
b3ec: f7ff bb13 b.w aa16 <lv_draw_rect+0xba6>
if(rout > 0) {
b3f0: 2c00 cmp r4, #0
b3f2: f340 80b0 ble.w b556 <lv_draw_rect+0x16e6>
lv_draw_mask_radius_init(&mask_rout_param, &coords_bg, rout, false);
b3f6: 2300 movs r3, #0
b3f8: 4622 mov r2, r4
b3fa: a916 add r1, sp, #88 ; 0x58
b3fc: a825 add r0, sp, #148 ; 0x94
b3fe: 4f87 ldr r7, [pc, #540] ; (b61c <lv_draw_rect+0x17ac>)
b400: 47b8 blx r7
mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL);
b402: 4b87 ldr r3, [pc, #540] ; (b620 <lv_draw_rect+0x17b0>)
b404: 2100 movs r1, #0
b406: a825 add r0, sp, #148 ; 0x94
b408: 4798 blx r3
b40a: 900b str r0, [sp, #44] ; 0x2c
lv_color_t grad_color = dsc->bg_color;
b40c: f8ba 3002 ldrh.w r3, [sl, #2]
b410: ee08 3a10 vmov s16, r3
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR && dsc->bg_color.full != dsc->bg_grad_color.full) {
b414: f89a 3006 ldrb.w r3, [sl, #6]
b418: 2b02 cmp r3, #2
b41a: f040 80a9 bne.w b570 <lv_draw_rect+0x1700>
b41e: f8ba 2004 ldrh.w r2, [sl, #4]
b422: f8ba 3002 ldrh.w r3, [sl, #2]
b426: 429a cmp r2, r3
b428: f000 80a2 beq.w b570 <lv_draw_rect+0x1700>
grad_map = _lv_mem_buf_get(coords_w * sizeof(lv_color_t));
b42c: 4b7d ldr r3, [pc, #500] ; (b624 <lv_draw_rect+0x17b4>)
b42e: 0070 lsls r0, r6, #1
b430: 4798 blx r3
for(i = 0; i < coords_w; i++) {
b432: 2700 movs r7, #0
grad_map = _lv_mem_buf_get(coords_w * sizeof(lv_color_t));
b434: 9006 str r0, [sp, #24]
for(i = 0; i < coords_w; i++) {
b436: 42be cmp r6, r7
b438: 4b7b ldr r3, [pc, #492] ; (b628 <lv_draw_rect+0x17b8>)
b43a: f300 8090 bgt.w b55e <lv_draw_rect+0x16ee>
b43e: f9bd 205c ldrsh.w r2, [sp, #92] ; 0x5c
b442: f9bd 1058 ldrsh.w r1, [sp, #88] ; 0x58
fill_area.x2 = coords_bg.x2;
b446: f8ad 206c strh.w r2, [sp, #108] ; 0x6c
b44a: 1c53 adds r3, r2, #1
b44c: 1a5b subs r3, r3, r1
if(lv_area_get_width(&coords_bg) - 2 * rout > SPLIT_LIMIT) split = true;
b44e: b21b sxth r3, r3
b450: eba3 0344 sub.w r3, r3, r4, lsl #1
b454: 930a str r3, [sp, #40] ; 0x28
fill_area.y1 = disp_area->y1 + draw_area.y1;
b456: 9b05 ldr r3, [sp, #20]
b458: f9bd 2062 ldrsh.w r2, [sp, #98] ; 0x62
b45c: 8a5b ldrh r3, [r3, #18]
fill_area.x1 = coords_bg.x1;
b45e: f8ad 1068 strh.w r1, [sp, #104] ; 0x68
fill_area.y1 = disp_area->y1 + draw_area.y1;
b462: 4413 add r3, r2
b464: b21b sxth r3, r3
b466: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
for(h = draw_area.y1; h <= draw_area.y2; h++) {
b46a: 9207 str r2, [sp, #28]
b46c: 9a07 ldr r2, [sp, #28]
fill_area.y2 = fill_area.y1;
b46e: f8ad 306e strh.w r3, [sp, #110] ; 0x6e
for(h = draw_area.y1; h <= draw_area.y2; h++) {
b472: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66
b476: 429a cmp r2, r3
b478: dd7d ble.n b576 <lv_draw_rect+0x1706>
if(dsc->bg_grad_dir == LV_GRAD_DIR_NONE && other_mask_cnt == 0 && split) {
b47a: f89a 3006 ldrb.w r3, [sl, #6]
b47e: 9a0c ldr r2, [sp, #48] ; 0x30
b480: 431a orrs r2, r3
b482: f012 03ff ands.w r3, r2, #255 ; 0xff
b486: d15d bne.n b544 <lv_draw_rect+0x16d4>
b488: 9a0a ldr r2, [sp, #40] ; 0x28
b48a: 2a32 cmp r2, #50 ; 0x32
b48c: dd5a ble.n b544 <lv_draw_rect+0x16d4>
fill_area.x1 = coords_bg.x1 + rout;
b48e: f8bd 2058 ldrh.w r2, [sp, #88] ; 0x58
b492: fa12 f284 uxtah r2, r2, r4
b496: f8ad 2068 strh.w r2, [sp, #104] ; 0x68
fill_area.x2 = coords_bg.x2 - rout;
b49a: f8bd 205c ldrh.w r2, [sp, #92] ; 0x5c
fill_area.x1 = coords_bg.x1 + rout;
b49e: b2a6 uxth r6, r4
fill_area.x2 = coords_bg.x2 - rout;
b4a0: 1b92 subs r2, r2, r6
b4a2: f8ad 206c strh.w r2, [sp, #108] ; 0x6c
fill_area.y1 = coords_bg.y1;
b4a6: f9bd 205a ldrsh.w r2, [sp, #90] ; 0x5a
b4aa: f8ad 206a strh.w r2, [sp, #106] ; 0x6a
fill_area.y2 = coords_bg.y1 + rout;
b4ae: 4432 add r2, r6
b4b0: f8ad 206e strh.w r2, [sp, #110] ; 0x6e
_lv_blend_fill(clip, &fill_area,
b4b4: f89a 200d ldrb.w r2, [sl, #13]
b4b8: 4c57 ldr r4, [pc, #348] ; (b618 <lv_draw_rect+0x17a8>)
b4ba: e9cd 9201 strd r9, r2, [sp, #4]
b4be: 2201 movs r2, #1
b4c0: 9200 str r2, [sp, #0]
b4c2: f8ba 2002 ldrh.w r2, [sl, #2]
b4c6: a91a add r1, sp, #104 ; 0x68
b4c8: 4640 mov r0, r8
b4ca: 47a0 blx r4
fill_area.y1 = coords_bg.y2 - rout;
b4cc: f9bd 105e ldrsh.w r1, [sp, #94] ; 0x5e
if(fill_area.y1 <= fill_area.y2) fill_area.y1 = fill_area.y2 + 1; /*Avoid overdrawing the last line*/
b4d0: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e
_lv_blend_fill(clip, &fill_area,
b4d4: 4c50 ldr r4, [pc, #320] ; (b618 <lv_draw_rect+0x17a8>)
fill_area.y2 = coords_bg.y2;
b4d6: f8ad 106e strh.w r1, [sp, #110] ; 0x6e
fill_area.y1 = coords_bg.y2 - rout;
b4da: 1b8a subs r2, r1, r6
b4dc: b212 sxth r2, r2
if(fill_area.y1 <= fill_area.y2) fill_area.y1 = fill_area.y2 + 1; /*Avoid overdrawing the last line*/
b4de: 429a cmp r2, r3
b4e0: bfd8 it le
b4e2: 3301 addle r3, #1
fill_area.y1 = coords_bg.y2 - rout;
b4e4: f8ad 206a strh.w r2, [sp, #106] ; 0x6a
if(fill_area.y1 <= fill_area.y2) fill_area.y1 = fill_area.y2 + 1; /*Avoid overdrawing the last line*/
b4e8: bfd8 it le
b4ea: f8ad 306a strhle.w r3, [sp, #106] ; 0x6a
_lv_blend_fill(clip, &fill_area,
b4ee: f89a 300d ldrb.w r3, [sl, #13]
b4f2: e9cd 9301 strd r9, r3, [sp, #4]
b4f6: 2701 movs r7, #1
b4f8: 9700 str r7, [sp, #0]
b4fa: f8ba 2002 ldrh.w r2, [sl, #2]
b4fe: 2300 movs r3, #0
b500: a91a add r1, sp, #104 ; 0x68
b502: 4640 mov r0, r8
b504: 47a0 blx r4
fill_area.x1 = coords_bg.x1;
b506: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58
b50a: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area.x2 = coords_bg.x2;
b50e: f8bd 305c ldrh.w r3, [sp, #92] ; 0x5c
b512: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
fill_area.y1 = coords_bg.y1 + rout + 1;
b516: f8bd 305a ldrh.w r3, [sp, #90] ; 0x5a
b51a: 443b add r3, r7
b51c: 4433 add r3, r6
b51e: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
fill_area.y2 = coords_bg.y2 - rout - 1;
b522: f8bd 305e ldrh.w r3, [sp, #94] ; 0x5e
b526: 3b01 subs r3, #1
b528: 1b9b subs r3, r3, r6
b52a: f8ad 306e strh.w r3, [sp, #110] ; 0x6e
_lv_blend_fill(clip, &fill_area,
b52e: f89a 300d ldrb.w r3, [sl, #13]
b532: 9700 str r7, [sp, #0]
b534: e9cd 9301 strd r9, r3, [sp, #4]
b538: a91a add r1, sp, #104 ; 0x68
b53a: f8ba 2002 ldrh.w r2, [sl, #2]
b53e: 2300 movs r3, #0
b540: 4640 mov r0, r8
b542: 47a0 blx r4
if(grad_map) _lv_mem_buf_release(grad_map);
b544: 9b06 ldr r3, [sp, #24]
b546: 2b00 cmp r3, #0
b548: f43f aa98 beq.w aa7c <lv_draw_rect+0xc0c>
b54c: 4618 mov r0, r3
b54e: 4b37 ldr r3, [pc, #220] ; (b62c <lv_draw_rect+0x17bc>)
b550: 4798 blx r3
b552: f7ff ba93 b.w aa7c <lv_draw_rect+0xc0c>
int16_t mask_rout_id = LV_MASK_ID_INV;
b556: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
b55a: 930b str r3, [sp, #44] ; 0x2c
b55c: e756 b.n b40c <lv_draw_rect+0x159c>
grad_map[i] = grad_get(dsc, coords_w, i);
b55e: b23a sxth r2, r7
b560: 4631 mov r1, r6
b562: 4650 mov r0, sl
b564: 4798 blx r3
b566: 9b06 ldr r3, [sp, #24]
b568: f823 0017 strh.w r0, [r3, r7, lsl #1]
for(i = 0; i < coords_w; i++) {
b56c: 3701 adds r7, #1
b56e: e762 b.n b436 <lv_draw_rect+0x15c6>
lv_color_t * grad_map = NULL;
b570: 2300 movs r3, #0
b572: 9306 str r3, [sp, #24]
b574: e763 b.n b43e <lv_draw_rect+0x15ce>
int32_t y = h + vdb->area.y1;
b576: 9b05 ldr r3, [sp, #20]
b578: f9b3 7012 ldrsh.w r7, [r3, #18]
b57c: 9b07 ldr r3, [sp, #28]
b57e: 441f add r7, r3
if(y > coords_bg.y1 + rout + 1 &&
b580: f9bd 305a ldrsh.w r3, [sp, #90] ; 0x5a
b584: 4423 add r3, r4
b586: 3301 adds r3, #1
b588: 429f cmp r7, r3
b58a: dd08 ble.n b59e <lv_draw_rect+0x172e>
y < coords_bg.y2 - rout - 1) {
b58c: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e
b590: 1b1b subs r3, r3, r4
b592: 3b01 subs r3, #1
if(y > coords_bg.y1 + rout + 1 &&
b594: 429f cmp r7, r3
b596: da02 bge.n b59e <lv_draw_rect+0x172e>
if(simple_mode == false) {
b598: 9b08 ldr r3, [sp, #32]
b59a: 2b00 cmp r3, #0
b59c: d136 bne.n b60c <lv_draw_rect+0x179c>
_lv_memset_ff(mask_buf, draw_area_w);
b59e: ee18 1a90 vmov r1, s17
b5a2: 4b23 ldr r3, [pc, #140] ; (b630 <lv_draw_rect+0x17c0>)
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
b5a4: 4e1b ldr r6, [pc, #108] ; (b614 <lv_draw_rect+0x17a4>)
_lv_memset_ff(mask_buf, draw_area_w);
b5a6: 4628 mov r0, r5
b5a8: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
b5aa: 9b05 ldr r3, [sp, #20]
b5ac: 8a5a ldrh r2, [r3, #18]
b5ae: 9b07 ldr r3, [sp, #28]
b5b0: 441a add r2, r3
b5b2: 9b05 ldr r3, [sp, #20]
b5b4: 8a19 ldrh r1, [r3, #16]
b5b6: f8bd 3060 ldrh.w r3, [sp, #96] ; 0x60
b5ba: 4419 add r1, r3
b5bc: b212 sxth r2, r2
b5be: ee18 3a90 vmov r3, s17
b5c2: b209 sxth r1, r1
b5c4: 4628 mov r0, r5
b5c6: 47b0 blx r6
b5c8: 4606 mov r6, r0
if(dsc->bg_grad_dir == LV_GRAD_DIR_VER && dsc->bg_color.full != dsc->bg_grad_color.full) {
b5ca: f89a 3006 ldrb.w r3, [sl, #6]
b5ce: 9309 str r3, [sp, #36] ; 0x24
b5d0: 2b01 cmp r3, #1
b5d2: d12f bne.n b634 <lv_draw_rect+0x17c4>
b5d4: f8ba 2002 ldrh.w r2, [sl, #2]
b5d8: f8ba 3004 ldrh.w r3, [sl, #4]
b5dc: 429a cmp r2, r3
b5de: d00d beq.n b5fc <lv_draw_rect+0x178c>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
b5e0: f8bd 105e ldrh.w r1, [sp, #94] ; 0x5e
b5e4: f8bd 305a ldrh.w r3, [sp, #90] ; 0x5a
b5e8: 3101 adds r1, #1
grad_color = grad_get(dsc, lv_area_get_height(&coords_bg), y - coords_bg.y1);
b5ea: 1afa subs r2, r7, r3
b5ec: 1ac9 subs r1, r1, r3
b5ee: b212 sxth r2, r2
b5f0: 4b0d ldr r3, [pc, #52] ; (b628 <lv_draw_rect+0x17b8>)
b5f2: b209 sxth r1, r1
b5f4: 4650 mov r0, sl
b5f6: 4798 blx r3
b5f8: ee08 0a10 vmov s16, r0
if(simple_mode && split &&
b5fc: 9b08 ldr r3, [sp, #32]
b5fe: 2b00 cmp r3, #0
b600: f000 80a3 beq.w b74a <lv_draw_rect+0x18da>
b604: 9b0a ldr r3, [sp, #40] ; 0x28
b606: 2b32 cmp r3, #50 ; 0x32
b608: dc1c bgt.n b644 <lv_draw_rect+0x17d4>
b60a: e09e b.n b74a <lv_draw_rect+0x18da>
mask_res = LV_DRAW_MASK_RES_FULL_COVER;
b60c: 2601 movs r6, #1
b60e: e7dc b.n b5ca <lv_draw_rect+0x175a>
b610: 0000f249 .word 0x0000f249
b614: 000099e5 .word 0x000099e5
b618: 00006475 .word 0x00006475
b61c: 00009b99 .word 0x00009b99
b620: 00009995 .word 0x00009995
b624: 0000f145 .word 0x0000f145
b628: 00009bf5 .word 0x00009bf5
b62c: 0000edf9 .word 0x0000edf9
b630: 0000f305 .word 0x0000f305
if(simple_mode && split &&
b634: 9b08 ldr r3, [sp, #32]
b636: 2b00 cmp r3, #0
b638: f000 84a2 beq.w bf80 <lv_draw_rect+0x2110>
b63c: 9b0a ldr r3, [sp, #40] ; 0x28
b63e: 2b32 cmp r3, #50 ; 0x32
b640: f340 849e ble.w bf80 <lv_draw_rect+0x2110>
(y < coords_bg.y1 + rout + 1 ||
b644: f9bd 305a ldrsh.w r3, [sp, #90] ; 0x5a
b648: 4423 add r3, r4
if(simple_mode && split &&
b64a: 429f cmp r7, r3
b64c: dd04 ble.n b658 <lv_draw_rect+0x17e8>
y > coords_bg.y2 - rout - 1)) {
b64e: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e
b652: 1b1b subs r3, r3, r4
(y < coords_bg.y1 + rout + 1 ||
b654: 429f cmp r7, r3
b656: db5a blt.n b70e <lv_draw_rect+0x189e>
fill_area2.x1 = coords_bg.x1;
b658: f9bd 3058 ldrsh.w r3, [sp, #88] ; 0x58
b65c: f8ad 3078 strh.w r3, [sp, #120] ; 0x78
fill_area2.x2 = coords_bg.x1 + rout - 1;
b660: 3b01 subs r3, #1
b662: fa13 f384 uxtah r3, r3, r4
b666: f8ad 307c strh.w r3, [sp, #124] ; 0x7c
fill_area2.y1 = fill_area.y1;
b66a: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a
b66e: f8ad 307a strh.w r3, [sp, #122] ; 0x7a
fill_area2.y2 = fill_area.y2;
b672: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e
b676: f8ad 307e strh.w r3, [sp, #126] ; 0x7e
_lv_blend_fill(clip, &fill_area2,
b67a: f89a 300d ldrb.w r3, [sl, #13]
b67e: 4f9e ldr r7, [pc, #632] ; (b8f8 <lv_draw_rect+0x1a88>)
b680: 9600 str r6, [sp, #0]
fill_area2.x2 = coords_bg.x1 + rout - 1;
b682: b2a2 uxth r2, r4
_lv_blend_fill(clip, &fill_area2,
b684: e9cd 9301 strd r9, r3, [sp, #4]
fill_area2.x2 = coords_bg.x1 + rout - 1;
b688: 9209 str r2, [sp, #36] ; 0x24
_lv_blend_fill(clip, &fill_area2,
b68a: 462b mov r3, r5
b68c: ee18 2a10 vmov r2, s16
b690: a91e add r1, sp, #120 ; 0x78
b692: 4640 mov r0, r8
b694: 47b8 blx r7
if(dsc->bg_grad_dir == LV_GRAD_DIR_VER) {
b696: f89a 2006 ldrb.w r2, [sl, #6]
b69a: 2a01 cmp r2, #1
b69c: d115 bne.n b6ca <lv_draw_rect+0x185a>
fill_area2.x1 = coords_bg.x1 + rout;
b69e: 9909 ldr r1, [sp, #36] ; 0x24
b6a0: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58
b6a4: 440b add r3, r1
b6a6: f8ad 3078 strh.w r3, [sp, #120] ; 0x78
fill_area2.x2 = coords_bg.x2 - rout;
b6aa: f8bd 305c ldrh.w r3, [sp, #92] ; 0x5c
b6ae: 1a5b subs r3, r3, r1
b6b0: f8ad 307c strh.w r3, [sp, #124] ; 0x7c
_lv_blend_fill(clip, &fill_area2,
b6b4: f89a 300d ldrb.w r3, [sl, #13]
b6b8: 9200 str r2, [sp, #0]
b6ba: e9cd 9301 strd r9, r3, [sp, #4]
b6be: ee18 2a10 vmov r2, s16
b6c2: 2300 movs r3, #0
b6c4: a91e add r1, sp, #120 ; 0x78
b6c6: 4640 mov r0, r8
b6c8: 47b8 blx r7
fill_area2.x1 = coords_bg.x2 - rout + 1;
b6ca: f9bd 305c ldrsh.w r3, [sp, #92] ; 0x5c
b6ce: 9909 ldr r1, [sp, #36] ; 0x24
fill_area2.x2 = coords_bg.x2;
b6d0: f8ad 307c strh.w r3, [sp, #124] ; 0x7c
fill_area2.x1 = coords_bg.x2 - rout + 1;
b6d4: 1c5a adds r2, r3, #1
b6d6: 1a52 subs r2, r2, r1
b6d8: f8ad 2078 strh.w r2, [sp, #120] ; 0x78
int32_t mask_ofs = (coords_bg.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
b6dc: 9a05 ldr r2, [sp, #20]
b6de: f9bd 1060 ldrsh.w r1, [sp, #96] ; 0x60
b6e2: f9b2 2010 ldrsh.w r2, [r2, #16]
b6e6: 1b1b subs r3, r3, r4
b6e8: 440a add r2, r1
b6ea: 3301 adds r3, #1
b6ec: 1a9b subs r3, r3, r2
_lv_blend_fill(clip, &fill_area2,
b6ee: f89a 200d ldrb.w r2, [sl, #13]
b6f2: 9600 str r6, [sp, #0]
b6f4: e9cd 9201 strd r9, r2, [sp, #4]
b6f8: ee18 2a10 vmov r2, s16
b6fc: 2b00 cmp r3, #0
b6fe: bfac ite ge
b700: 18eb addge r3, r5, r3
b702: 1c2b addlt r3, r5, #0
b704: a91e add r1, sp, #120 ; 0x78
_lv_blend_fill(clip, &fill_area,
b706: 4e7c ldr r6, [pc, #496] ; (b8f8 <lv_draw_rect+0x1a88>)
b708: 4640 mov r0, r8
b70a: 47b0 blx r6
b70c: e00d b.n b72a <lv_draw_rect+0x18ba>
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) {
b70e: 9b09 ldr r3, [sp, #36] ; 0x24
b710: 2b02 cmp r3, #2
b712: d116 bne.n b742 <lv_draw_rect+0x18d2>
_lv_blend_map(clip, &fill_area, grad_map, mask_buf, mask_res, opa, dsc->bg_blend_mode);
b714: f89a 300d ldrb.w r3, [sl, #13]
b718: 9a06 ldr r2, [sp, #24]
b71a: 9600 str r6, [sp, #0]
b71c: e9cd 9301 strd r9, r3, [sp, #4]
b720: 4e76 ldr r6, [pc, #472] ; (b8fc <lv_draw_rect+0x1a8c>)
b722: 462b mov r3, r5
b724: a91a add r1, sp, #104 ; 0x68
b726: 4640 mov r0, r8
b728: 47b0 blx r6
fill_area.y1++;
b72a: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a
for(h = draw_area.y1; h <= draw_area.y2; h++) {
b72e: 9a07 ldr r2, [sp, #28]
fill_area.y1++;
b730: 3301 adds r3, #1
b732: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
fill_area.y2++;
b736: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e
b73a: 3301 adds r3, #1
b73c: b21b sxth r3, r3
for(h = draw_area.y1; h <= draw_area.y2; h++) {
b73e: 3201 adds r2, #1
b740: e693 b.n b46a <lv_draw_rect+0x15fa>
else if(dsc->bg_grad_dir == LV_GRAD_DIR_VER) {
b742: 9b09 ldr r3, [sp, #36] ; 0x24
b744: 2b01 cmp r3, #1
b746: f040 841f bne.w bf88 <lv_draw_rect+0x2118>
_lv_blend_fill(clip, &fill_area,
b74a: f89a 300d ldrb.w r3, [sl, #13]
b74e: 9600 str r6, [sp, #0]
b750: e9cd 9301 strd r9, r3, [sp, #4]
b754: ee18 2a10 vmov r2, s16
b758: 462b mov r3, r5
b75a: a91a add r1, sp, #104 ; 0x68
b75c: e7d3 b.n b706 <lv_draw_rect+0x1896>
img_h = header.h;
b75e: f8bd 3096 ldrh.w r3, [sp, #150] ; 0x96
img_w = header.w;
b762: 9d25 ldr r5, [sp, #148] ; 0x94
img_h = header.h;
b764: f3c3 174a ubfx r7, r3, #5, #11
lv_draw_img_dsc_init(&img_dsc);
b768: a81a add r0, sp, #104 ; 0x68
b76a: 4b65 ldr r3, [pc, #404] ; (b900 <lv_draw_rect+0x1a90>)
b76c: 4798 blx r3
img_dsc.opa = dsc->pattern_opa;
b76e: f89a 3036 ldrb.w r3, [sl, #54] ; 0x36
b772: f88d 3068 strb.w r3, [sp, #104] ; 0x68
img_dsc.recolor_opa = dsc->pattern_recolor_opa;
b776: f89a 3037 ldrb.w r3, [sl, #55] ; 0x37
b77a: f88d 3072 strb.w r3, [sp, #114] ; 0x72
img_dsc.recolor = dsc->pattern_recolor;
b77e: f8ba 3034 ldrh.w r3, [sl, #52] ; 0x34
b782: f8ad 3074 strh.w r3, [sp, #116] ; 0x74
img_w = header.w;
b786: f3c5 258a ubfx r5, r5, #10, #11
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
b78a: b2bb uxth r3, r7
b78c: f103 39ff add.w r9, r3, #4294967295 ; 0xffffffff
b790: 9305 str r3, [sp, #20]
if(dsc->pattern_repeat) {
b792: f89a 3038 ldrb.w r3, [sl, #56] ; 0x38
lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false);
b796: f9ba 2000 ldrsh.w r2, [sl]
if(dsc->pattern_repeat) {
b79a: 07db lsls r3, r3, #31
b79c: fa1f f989 uxth.w r9, r9
b7a0: f140 80c6 bpl.w b930 <lv_draw_rect+0x1ac0>
lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false);
b7a4: 4c57 ldr r4, [pc, #348] ; (b904 <lv_draw_rect+0x1a94>)
b7a6: 2300 movs r3, #0
b7a8: 4659 mov r1, fp
b7aa: a825 add r0, sp, #148 ; 0x94
b7ac: 47a0 blx r4
int16_t radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL);
b7ae: 4b56 ldr r3, [pc, #344] ; (b908 <lv_draw_rect+0x1a98>)
b7b0: 2100 movs r1, #0
b7b2: a825 add r0, sp, #148 ; 0x94
b7b4: 4798 blx r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
b7b6: f8bb 4004 ldrh.w r4, [fp, #4]
b7ba: f8bb 3000 ldrh.w r3, [fp]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
b7be: f8bb 2006 ldrh.w r2, [fp, #6]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
b7c2: 3401 adds r4, #1
b7c4: 1ae4 subs r4, r4, r3
int32_t ofs_x = (lv_area_get_width(coords) - (lv_area_get_width(coords) / img_w) * img_w) / 2;
b7c6: b224 sxth r4, r4
b7c8: fb94 f3f5 sdiv r3, r4, r5
b7cc: fb05 4413 mls r4, r5, r3, r4
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
b7d0: f8bb 3002 ldrh.w r3, [fp, #2]
b7d4: 3201 adds r2, #1
b7d6: 1ad2 subs r2, r2, r3
int32_t ofs_y = (lv_area_get_height(coords) - (lv_area_get_height(coords) / img_h) * img_h) / 2;
b7d8: b212 sxth r2, r2
b7da: fb92 f1f7 sdiv r1, r2, r7
b7de: fb07 2211 mls r2, r7, r1, r2
b7e2: eb02 72d2 add.w r2, r2, r2, lsr #31
coords_tmp.y1 = coords->y1 - ofs_y;
b7e6: eba3 0362 sub.w r3, r3, r2, asr #1
b7ea: b29b uxth r3, r3
int32_t ofs_x = (lv_area_get_width(coords) - (lv_area_get_width(coords) / img_w) * img_w) / 2;
b7ec: eb04 74d4 add.w r4, r4, r4, lsr #31
int16_t radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL);
b7f0: ee08 0a10 vmov s16, r0
coords_tmp.y1 = coords->y1 - ofs_y;
b7f4: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
int32_t ofs_x = (lv_area_get_width(coords) - (lv_area_get_width(coords) / img_w) * img_w) / 2;
b7f8: 1064 asrs r4, r4, #1
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
b7fa: 444b add r3, r9
for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) {
b7fc: b21b sxth r3, r3
b7fe: f9bd 2062 ldrsh.w r2, [sp, #98] ; 0x62
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
b802: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) {
b806: f9bb 3006 ldrsh.w r3, [fp, #6]
b80a: 429a cmp r2, r3
b80c: dd3a ble.n b884 <lv_draw_rect+0x1a14>
lv_draw_mask_remove_id(radius_mask_id);
b80e: ee18 0a10 vmov r0, s16
lv_draw_mask_remove_id(radius_mask_id);
b812: 4b3e ldr r3, [pc, #248] ; (b90c <lv_draw_rect+0x1a9c>)
b814: 4798 blx r3
b816: f7ff b955 b.w aac4 <lv_draw_rect+0xc54>
else if(src_type == LV_IMG_SRC_SYMBOL) {
b81a: 2802 cmp r0, #2
b81c: d121 bne.n b862 <lv_draw_rect+0x19f2>
lv_draw_label_dsc_init(&label_dsc);
b81e: 4b3c ldr r3, [pc, #240] ; (b910 <lv_draw_rect+0x1aa0>)
_lv_txt_get_size(&s, dsc->pattern_image, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX,
b820: 4c3c ldr r4, [pc, #240] ; (b914 <lv_draw_rect+0x1aa4>)
lv_draw_label_dsc_init(&label_dsc);
b822: a81e add r0, sp, #120 ; 0x78
b824: 4798 blx r3
label_dsc.color = dsc->pattern_recolor;
b826: f8ba 3034 ldrh.w r3, [sl, #52] ; 0x34
b82a: f8ad 3078 strh.w r3, [sp, #120] ; 0x78
label_dsc.opa = dsc->pattern_opa;
b82e: f89a 3036 ldrb.w r3, [sl, #54] ; 0x36
b832: f88d 3080 strb.w r3, [sp, #128] ; 0x80
_lv_txt_get_size(&s, dsc->pattern_image, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX,
b836: 2100 movs r1, #0
b838: f647 4318 movw r3, #31768 ; 0x7c18
label_dsc.font = dsc->pattern_font;
b83c: f8da 2030 ldr.w r2, [sl, #48] ; 0x30
b840: 921f str r2, [sp, #124] ; 0x7c
_lv_txt_get_size(&s, dsc->pattern_image, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX,
b842: e9cd 3101 strd r3, r1, [sp, #4]
b846: f9bd 3082 ldrsh.w r3, [sp, #130] ; 0x82
b84a: 9300 str r3, [sp, #0]
b84c: f8da 102c ldr.w r1, [sl, #44] ; 0x2c
b850: f9bd 3084 ldrsh.w r3, [sp, #132] ; 0x84
b854: a825 add r0, sp, #148 ; 0x94
b856: 47a0 blx r4
img_w = s.x;
b858: f9bd 5094 ldrsh.w r5, [sp, #148] ; 0x94
img_h = s.y;
b85c: f9bd 7096 ldrsh.w r7, [sp, #150] ; 0x96
b860: e793 b.n b78a <lv_draw_rect+0x191a>
LV_LOG_WARN("lv_img_design: image source type is unknown");
b862: 4b2d ldr r3, [pc, #180] ; (b918 <lv_draw_rect+0x1aa8>)
b864: 9300 str r3, [sp, #0]
b866: 492d ldr r1, [pc, #180] ; (b91c <lv_draw_rect+0x1aac>)
b868: 4b2d ldr r3, [pc, #180] ; (b920 <lv_draw_rect+0x1ab0>)
b86a: 4c2e ldr r4, [pc, #184] ; (b924 <lv_draw_rect+0x1ab4>)
b86c: f240 52ae movw r2, #1454 ; 0x5ae
b870: 2002 movs r0, #2
b872: 47a0 blx r4
lv_draw_img(coords, clip, NULL, NULL);
b874: 2300 movs r3, #0
b876: 4c2c ldr r4, [pc, #176] ; (b928 <lv_draw_rect+0x1ab8>)
b878: 461a mov r2, r3
b87a: 4641 mov r1, r8
b87c: 4658 mov r0, fp
b87e: 47a0 blx r4
return;
b880: f7ff b920 b.w aac4 <lv_draw_rect+0xc54>
coords_tmp.x1 = coords->x1 - ofs_x;
b884: f8bb 3000 ldrh.w r3, [fp]
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
b888: fa1f f985 uxth.w r9, r5
coords_tmp.x1 = coords->x1 - ofs_x;
b88c: 1b1b subs r3, r3, r4
b88e: b29b uxth r3, r3
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
b890: f109 32ff add.w r2, r9, #4294967295 ; 0xffffffff
coords_tmp.x1 = coords->x1 - ofs_x;
b894: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
b898: 4413 add r3, r2
for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) {
b89a: b21b sxth r3, r3
b89c: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
b8a0: f8ad 3064 strh.w r3, [sp, #100] ; 0x64
for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) {
b8a4: f9bb 3004 ldrsh.w r3, [fp, #4]
b8a8: 429a cmp r2, r3
b8aa: dd09 ble.n b8c0 <lv_draw_rect+0x1a50>
for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) {
b8ac: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
b8b0: 9a05 ldr r2, [sp, #20]
b8b2: 4413 add r3, r2
b8b4: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
b8b8: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
b8bc: 4413 add r3, r2
b8be: e79d b.n b7fc <lv_draw_rect+0x198c>
if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL);
b8c0: 2e02 cmp r6, #2
b8c2: f8da 202c ldr.w r2, [sl, #44] ; 0x2c
b8c6: d110 bne.n b8ea <lv_draw_rect+0x1a7a>
b8c8: 2300 movs r3, #0
b8ca: 9300 str r3, [sp, #0]
b8cc: 4f17 ldr r7, [pc, #92] ; (b92c <lv_draw_rect+0x1abc>)
b8ce: 4613 mov r3, r2
b8d0: 4641 mov r1, r8
b8d2: aa1e add r2, sp, #120 ; 0x78
b8d4: a818 add r0, sp, #96 ; 0x60
b8d6: 47b8 blx r7
for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) {
b8d8: f8bd 3060 ldrh.w r3, [sp, #96] ; 0x60
b8dc: 444b add r3, r9
b8de: f8ad 3060 strh.w r3, [sp, #96] ; 0x60
b8e2: f8bd 3064 ldrh.w r3, [sp, #100] ; 0x64
b8e6: 444b add r3, r9
b8e8: e7d7 b.n b89a <lv_draw_rect+0x1a2a>
else lv_draw_img(&coords_tmp, clip, dsc->pattern_image, &img_dsc);
b8ea: 4f0f ldr r7, [pc, #60] ; (b928 <lv_draw_rect+0x1ab8>)
b8ec: ab1a add r3, sp, #104 ; 0x68
b8ee: 4641 mov r1, r8
b8f0: a818 add r0, sp, #96 ; 0x60
b8f2: 47b8 blx r7
b8f4: e7f0 b.n b8d8 <lv_draw_rect+0x1a68>
b8f6: bf00 nop
b8f8: 00006475 .word 0x00006475
b8fc: 00006a81 .word 0x00006a81
b900: 000077dd .word 0x000077dd
b904: 00009b99 .word 0x00009b99
b908: 00009995 .word 0x00009995
b90c: 00009a25 .word 0x00009a25
b910: 00007ac9 .word 0x00007ac9
b914: 0001042d .word 0x0001042d
b918: 00027847 .word 0x00027847
b91c: 000277f3 .word 0x000277f3
b920: 00027876 .word 0x00027876
b924: 0000eb79 .word 0x0000eb79
b928: 00007845 .word 0x00007845
b92c: 00007af9 .word 0x00007af9
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
b930: f8bb 1004 ldrh.w r1, [fp, #4]
b934: f8bb 4000 ldrh.w r4, [fp]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
b938: f8bb 3006 ldrh.w r3, [fp, #6]
b93c: f8bb 0002 ldrh.w r0, [fp, #2]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
b940: 3101 adds r1, #1
b942: 1b09 subs r1, r1, r4
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
b944: 3301 adds r3, #1
b946: 1a1b subs r3, r3, r0
int32_t obj_w = lv_area_get_width(coords);
b948: b209 sxth r1, r1
coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2;
b94a: 1b49 subs r1, r1, r5
int32_t obj_h = lv_area_get_height(coords);
b94c: b21b sxth r3, r3
coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2;
b94e: eb01 71d1 add.w r1, r1, r1, lsr #31
coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2;
b952: 1bdb subs r3, r3, r7
coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2;
b954: eb04 0461 add.w r4, r4, r1, asr #1
coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2;
b958: eb03 71d3 add.w r1, r3, r3, lsr #31
b95c: eb00 0061 add.w r0, r0, r1, asr #1
b960: b280 uxth r0, r0
coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2;
b962: b2a4 uxth r4, r4
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
b964: 3d01 subs r5, #1
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
b966: 4481 add r9, r0
coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2;
b968: f8ad 4060 strh.w r4, [sp, #96] ; 0x60
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
b96c: fa1f f989 uxth.w r9, r9
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
b970: 442c add r4, r5
if(src_type == LV_IMG_SRC_SYMBOL) {
b972: 2e02 cmp r6, #2
coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2;
b974: f8ad 0062 strh.w r0, [sp, #98] ; 0x62
coords_tmp.x2 = coords_tmp.x1 + img_w - 1;
b978: f8ad 4064 strh.w r4, [sp, #100] ; 0x64
coords_tmp.y2 = coords_tmp.y1 + img_h - 1;
b97c: f8ad 9066 strh.w r9, [sp, #102] ; 0x66
if(src_type == LV_IMG_SRC_SYMBOL) {
b980: d107 bne.n b992 <lv_draw_rect+0x1b22>
coords_tmp.y1 += y_corr;
b982: f003 0301 and.w r3, r3, #1
b986: 4418 add r0, r3
coords_tmp.y2 += y_corr;
b988: 4499 add r9, r3
coords_tmp.y1 += y_corr;
b98a: f8ad 0062 strh.w r0, [sp, #98] ; 0x62
coords_tmp.y2 += y_corr;
b98e: f8ad 9066 strh.w r9, [sp, #102] ; 0x66
if(_lv_area_is_in(&coords_tmp, coords, dsc->radius) == false) {
b992: 4b94 ldr r3, [pc, #592] ; (bbe4 <lv_draw_rect+0x1d74>)
b994: 4659 mov r1, fp
b996: a818 add r0, sp, #96 ; 0x60
b998: 4798 blx r3
b99a: 4604 mov r4, r0
b99c: b9c8 cbnz r0, b9d2 <lv_draw_rect+0x1b62>
lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false);
b99e: 4603 mov r3, r0
b9a0: f9ba 2000 ldrsh.w r2, [sl]
b9a4: 4d90 ldr r5, [pc, #576] ; (bbe8 <lv_draw_rect+0x1d78>)
b9a6: 4659 mov r1, fp
b9a8: a825 add r0, sp, #148 ; 0x94
b9aa: 47a8 blx r5
radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL);
b9ac: 4621 mov r1, r4
b9ae: 4b8f ldr r3, [pc, #572] ; (bbec <lv_draw_rect+0x1d7c>)
b9b0: a825 add r0, sp, #148 ; 0x94
b9b2: 4798 blx r3
b9b4: 4604 mov r4, r0
if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL);
b9b6: 2e02 cmp r6, #2
b9b8: f8da 202c ldr.w r2, [sl, #44] ; 0x2c
b9bc: d10c bne.n b9d8 <lv_draw_rect+0x1b68>
b9be: 2300 movs r3, #0
b9c0: 9300 str r3, [sp, #0]
b9c2: 4d8b ldr r5, [pc, #556] ; (bbf0 <lv_draw_rect+0x1d80>)
b9c4: 4613 mov r3, r2
b9c6: 4641 mov r1, r8
b9c8: aa1e add r2, sp, #120 ; 0x78
b9ca: a818 add r0, sp, #96 ; 0x60
b9cc: 47a8 blx r5
lv_draw_mask_remove_id(radius_mask_id);
b9ce: 4620 mov r0, r4
b9d0: e71f b.n b812 <lv_draw_rect+0x19a2>
int16_t radius_mask_id = LV_MASK_ID_INV;
b9d2: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff
b9d6: e7ee b.n b9b6 <lv_draw_rect+0x1b46>
else lv_draw_img(&coords_tmp, clip, dsc->pattern_image, &img_dsc);
b9d8: 4d86 ldr r5, [pc, #536] ; (bbf4 <lv_draw_rect+0x1d84>)
b9da: ab1a add r3, sp, #104 ; 0x68
b9dc: 4641 mov r1, r8
b9de: a818 add r0, sp, #96 ; 0x60
b9e0: 47a8 blx r5
b9e2: e7f4 b.n b9ce <lv_draw_rect+0x1b5e>
if(other_mask_cnt) simple_mode = false;
b9e4: 2300 movs r3, #0
b9e6: f7ff b8ba b.w ab5e <lv_draw_rect+0xcee>
int16_t mask_rout_id = LV_MASK_ID_INV;
b9ea: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
b9ee: 930c str r3, [sp, #48] ; 0x30
b9f0: f7ff b8dc b.w abac <lv_draw_rect+0xd3c>
_lv_memset_ff(mask_buf, draw_area_w);
b9f4: 4b80 ldr r3, [pc, #512] ; (bbf8 <lv_draw_rect+0x1d88>)
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
b9f6: 4f81 ldr r7, [pc, #516] ; (bbfc <lv_draw_rect+0x1d8c>)
_lv_memset_ff(mask_buf, draw_area_w);
b9f8: 4649 mov r1, r9
b9fa: 4620 mov r0, r4
b9fc: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
b9fe: 9b06 ldr r3, [sp, #24]
ba00: 8a5a ldrh r2, [r3, #18]
ba02: 8a19 ldrh r1, [r3, #16]
ba04: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50
ba08: 4432 add r2, r6
ba0a: 4419 add r1, r3
ba0c: b212 sxth r2, r2
ba0e: 464b mov r3, r9
ba10: b209 sxth r1, r1
ba12: 4620 mov r0, r4
ba14: 47b8 blx r7
fill_area2.y1 = fill_area.y1;
ba16: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
ba1a: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
fill_area2.y2 = fill_area.y2;
ba1e: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
ba22: f8ad 306e strh.w r3, [sp, #110] ; 0x6e
fill_area2.x1 = coords->x1;
ba26: f9bb 3000 ldrsh.w r3, [fp]
ba2a: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = coords->x1 + rout - 1;
ba2e: 3b01 subs r3, #1
ba30: 442b add r3, r5
ba32: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
ba36: 9b07 ldr r3, [sp, #28]
ba38: 9302 str r3, [sp, #8]
ba3a: 9b05 ldr r3, [sp, #20]
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
ba3c: 900b str r0, [sp, #44] ; 0x2c
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
ba3e: ee18 2a10 vmov r2, s16
ba42: 9301 str r3, [sp, #4]
ba44: 9000 str r0, [sp, #0]
ba46: 4623 mov r3, r4
ba48: a91a add r1, sp, #104 ; 0x68
ba4a: 4f6d ldr r7, [pc, #436] ; (bc00 <lv_draw_rect+0x1d90>)
ba4c: 4640 mov r0, r8
ba4e: 47b8 blx r7
if(fill_area2.y2 < coords->y1 + dsc->border_width) {
ba50: f9bb 3002 ldrsh.w r3, [fp, #2]
ba54: f9ba 1010 ldrsh.w r1, [sl, #16]
ba58: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e
ba5c: 440b add r3, r1
ba5e: 429a cmp r2, r3
ba60: da15 bge.n ba8e <lv_draw_rect+0x1c1e>
fill_area2.x1 = coords->x1 + rout;
ba62: f8bb 3000 ldrh.w r3, [fp]
ba66: 442b add r3, r5
ba68: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = coords->x2 - rout;
ba6c: f8bb 3004 ldrh.w r3, [fp, #4]
ba70: 1b5b subs r3, r3, r5
ba72: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
ba76: 9b07 ldr r3, [sp, #28]
ba78: 9302 str r3, [sp, #8]
ba7a: 9b05 ldr r3, [sp, #20]
ba7c: 9301 str r3, [sp, #4]
ba7e: 2301 movs r3, #1
ba80: 9300 str r3, [sp, #0]
ba82: ee18 2a10 vmov r2, s16
ba86: 2300 movs r3, #0
ba88: a91a add r1, sp, #104 ; 0x68
ba8a: 4640 mov r0, r8
ba8c: 47b8 blx r7
fill_area2.x1 = coords->x2 - rout + 1;
ba8e: f9bb 3004 ldrsh.w r3, [fp, #4]
fill_area2.x2 = coords->x2;
ba92: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
fill_area2.x1 = coords->x2 - rout + 1;
ba96: 1c5a adds r2, r3, #1
ba98: 1b52 subs r2, r2, r5
ba9a: f8ad 2068 strh.w r2, [sp, #104] ; 0x68
int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
ba9e: 9a09 ldr r2, [sp, #36] ; 0x24
baa0: f9bd 1050 ldrsh.w r1, [sp, #80] ; 0x50
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
baa4: 4f56 ldr r7, [pc, #344] ; (bc00 <lv_draw_rect+0x1d90>)
int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
baa6: 1a9b subs r3, r3, r2
baa8: 9a06 ldr r2, [sp, #24]
baaa: f9b2 2010 ldrsh.w r2, [r2, #16]
baae: 3301 adds r3, #1
bab0: 440a add r2, r1
bab2: 1a9b subs r3, r3, r2
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
bab4: 9a07 ldr r2, [sp, #28]
bab6: 9202 str r2, [sp, #8]
bab8: 9a05 ldr r2, [sp, #20]
baba: 9201 str r2, [sp, #4]
babc: 9a0b ldr r2, [sp, #44] ; 0x2c
babe: 9200 str r2, [sp, #0]
bac0: 2b00 cmp r3, #0
bac2: bfac ite ge
bac4: 18e3 addge r3, r4, r3
bac6: 1c23 addlt r3, r4, #0
bac8: ee18 2a10 vmov r2, s16
bacc: a91a add r1, sp, #104 ; 0x68
bace: 4640 mov r0, r8
bad0: 47b8 blx r7
fill_area.y1++;
bad2: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
bad6: 3301 adds r3, #1
bad8: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2++;
badc: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
bae0: 3301 adds r3, #1
bae2: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = draw_area.y1; h <= upper_corner_end; h++) {
bae6: 3601 adds r6, #1
bae8: f7ff b902 b.w acf0 <lv_draw_rect+0xe80>
_lv_memset_ff(mask_buf, draw_area_w);
baec: 4b42 ldr r3, [pc, #264] ; (bbf8 <lv_draw_rect+0x1d88>)
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
baee: 4f43 ldr r7, [pc, #268] ; (bbfc <lv_draw_rect+0x1d8c>)
_lv_memset_ff(mask_buf, draw_area_w);
baf0: 4649 mov r1, r9
baf2: 4620 mov r0, r4
baf4: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
baf6: 9b06 ldr r3, [sp, #24]
baf8: 8a5a ldrh r2, [r3, #18]
bafa: 8a19 ldrh r1, [r3, #16]
bafc: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50
bb00: 4432 add r2, r6
bb02: 4419 add r1, r3
bb04: b212 sxth r2, r2
bb06: 464b mov r3, r9
bb08: b209 sxth r1, r1
bb0a: 4620 mov r0, r4
bb0c: 47b8 blx r7
fill_area2.x1 = coords->x1;
bb0e: f9bb 3000 ldrsh.w r3, [fp]
bb12: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = coords->x1 + rout - 1;
bb16: 3b01 subs r3, #1
bb18: 442b add r3, r5
bb1a: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
fill_area2.y1 = fill_area.y1;
bb1e: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
bb22: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
fill_area2.y2 = fill_area.y2;
bb26: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
bb2a: f8ad 306e strh.w r3, [sp, #110] ; 0x6e
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
bb2e: 9b07 ldr r3, [sp, #28]
bb30: 9302 str r3, [sp, #8]
bb32: 9b05 ldr r3, [sp, #20]
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bb34: 900a str r0, [sp, #40] ; 0x28
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
bb36: ee18 2a10 vmov r2, s16
bb3a: 9301 str r3, [sp, #4]
bb3c: 9000 str r0, [sp, #0]
bb3e: 4623 mov r3, r4
bb40: a91a add r1, sp, #104 ; 0x68
bb42: 4f2f ldr r7, [pc, #188] ; (bc00 <lv_draw_rect+0x1d90>)
bb44: 4640 mov r0, r8
bb46: 47b8 blx r7
if(fill_area2.y2 > coords->y2 - dsc->border_width) {
bb48: f9bb 3006 ldrsh.w r3, [fp, #6]
bb4c: f9ba 1010 ldrsh.w r1, [sl, #16]
bb50: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e
bb54: 1a5b subs r3, r3, r1
bb56: 429a cmp r2, r3
bb58: dd15 ble.n bb86 <lv_draw_rect+0x1d16>
fill_area2.x1 = coords->x1 + rout;
bb5a: f8bb 3000 ldrh.w r3, [fp]
bb5e: 442b add r3, r5
bb60: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = coords->x2 - rout;
bb64: f8bb 3004 ldrh.w r3, [fp, #4]
bb68: 1b5b subs r3, r3, r5
bb6a: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
bb6e: 9b07 ldr r3, [sp, #28]
bb70: 9302 str r3, [sp, #8]
bb72: 9b05 ldr r3, [sp, #20]
bb74: 9301 str r3, [sp, #4]
bb76: 2301 movs r3, #1
bb78: 9300 str r3, [sp, #0]
bb7a: ee18 2a10 vmov r2, s16
bb7e: 2300 movs r3, #0
bb80: a91a add r1, sp, #104 ; 0x68
bb82: 4640 mov r0, r8
bb84: 47b8 blx r7
fill_area2.x1 = coords->x2 - rout + 1;
bb86: f9bb 3004 ldrsh.w r3, [fp, #4]
fill_area2.x2 = coords->x2;
bb8a: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
fill_area2.x1 = coords->x2 - rout + 1;
bb8e: 1c5a adds r2, r3, #1
bb90: 1b52 subs r2, r2, r5
bb92: f8ad 2068 strh.w r2, [sp, #104] ; 0x68
int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
bb96: 9a09 ldr r2, [sp, #36] ; 0x24
bb98: f9bd 1050 ldrsh.w r1, [sp, #80] ; 0x50
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
bb9c: 4f18 ldr r7, [pc, #96] ; (bc00 <lv_draw_rect+0x1d90>)
int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
bb9e: 1a9b subs r3, r3, r2
bba0: 9a06 ldr r2, [sp, #24]
bba2: f9b2 2010 ldrsh.w r2, [r2, #16]
bba6: 3301 adds r3, #1
bba8: 440a add r2, r1
bbaa: 1a9b subs r3, r3, r2
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
bbac: 9a07 ldr r2, [sp, #28]
bbae: 9202 str r2, [sp, #8]
bbb0: 9a05 ldr r2, [sp, #20]
bbb2: 9201 str r2, [sp, #4]
bbb4: 9a0a ldr r2, [sp, #40] ; 0x28
bbb6: 9200 str r2, [sp, #0]
bbb8: 2b00 cmp r3, #0
bbba: bfac ite ge
bbbc: 18e3 addge r3, r4, r3
bbbe: 1c23 addlt r3, r4, #0
bbc0: ee18 2a10 vmov r2, s16
bbc4: a91a add r1, sp, #104 ; 0x68
bbc6: 4640 mov r0, r8
bbc8: 47b8 blx r7
fill_area.y1++;
bbca: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
bbce: 3301 adds r3, #1
bbd0: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2++;
bbd4: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
bbd8: 3301 adds r3, #1
bbda: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = lower_corner_end; h <= draw_area.y2; h++) {
bbde: 3601 adds r6, #1
bbe0: f7ff b8a2 b.w ad28 <lv_draw_rect+0xeb8>
bbe4: 0000e315 .word 0x0000e315
bbe8: 00009b99 .word 0x00009b99
bbec: 00009995 .word 0x00009995
bbf0: 00007af9 .word 0x00007af9
bbf4: 00007845 .word 0x00007845
bbf8: 0000f305 .word 0x0000f305
bbfc: 000099e5 .word 0x000099e5
bc00: 00006475 .word 0x00006475
fill_area.y1 = disp_area->y1 + draw_area.y1;
bc04: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2 = fill_area.y1;
bc08: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size;
bc0c: f9ba 3012 ldrsh.w r3, [sl, #18]
fill_area.x1 = coords->x1;
bc10: f8ad 1060 strh.w r1, [sp, #96] ; 0x60
if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size;
bc14: 2b04 cmp r3, #4
fill_area.x2 = coords->x2;
bc16: f8ad 2064 strh.w r2, [sp, #100] ; 0x64
if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size;
bc1a: d15e bne.n bcda <lv_draw_rect+0x1e6a>
bc1c: 9a08 ldr r2, [sp, #32]
bc1e: 4411 add r1, r2
bc20: f8ad 1064 strh.w r1, [sp, #100] ; 0x64
volatile bool top_only = false;
bc24: 2200 movs r2, #0
if(dsc->border_side == LV_BORDER_SIDE_TOP) top_only = true;
bc26: 2b02 cmp r3, #2
volatile bool top_only = false;
bc28: f88d 203e strb.w r2, [sp, #62] ; 0x3e
volatile bool bottom_only = false;
bc2c: f88d 203f strb.w r2, [sp, #63] ; 0x3f
if(dsc->border_side == LV_BORDER_SIDE_TOP) top_only = true;
bc30: d15a bne.n bce8 <lv_draw_rect+0x1e78>
bc32: 2301 movs r3, #1
bc34: f88d 303e strb.w r3, [sp, #62] ; 0x3e
volatile bool normal = !top_only && !bottom_only ? true : false;
bc38: f89d 303e ldrb.w r3, [sp, #62] ; 0x3e
bc3c: 2b00 cmp r3, #0
bc3e: d15d bne.n bcfc <lv_draw_rect+0x1e8c>
bc40: f89d 303f ldrb.w r3, [sp, #63] ; 0x3f
bc44: f083 0301 eor.w r3, r3, #1
bc48: f003 0301 and.w r3, r3, #1
_lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode);
bc4c: 4dad ldr r5, [pc, #692] ; (bf04 <lv_draw_rect+0x2094>)
volatile bool normal = !top_only && !bottom_only ? true : false;
bc4e: f88d 3040 strb.w r3, [sp, #64] ; 0x40
for(h = draw_area.y1; h <= draw_area.y2; h++) {
bc52: f9bd 3056 ldrsh.w r3, [sp, #86] ; 0x56
bc56: 429e cmp r6, r3
bc58: f73f a8a5 bgt.w ada6 <lv_draw_rect+0xf36>
if(normal ||
bc5c: f89d 3040 ldrb.w r3, [sp, #64] ; 0x40
bc60: b99b cbnz r3, bc8a <lv_draw_rect+0x1e1a>
(top_only && fill_area.y1 <= coords->y1 + corner_size) ||
bc62: f89d 303e ldrb.w r3, [sp, #62] ; 0x3e
bc66: f9bd 2062 ldrsh.w r2, [sp, #98] ; 0x62
if(normal ||
bc6a: b12b cbz r3, bc78 <lv_draw_rect+0x1e08>
(top_only && fill_area.y1 <= coords->y1 + corner_size) ||
bc6c: f9bb 3002 ldrsh.w r3, [fp, #2]
bc70: 9908 ldr r1, [sp, #32]
bc72: 440b add r3, r1
bc74: 429a cmp r2, r3
bc76: dd08 ble.n bc8a <lv_draw_rect+0x1e1a>
(bottom_only && fill_area.y1 >= coords->y2 - corner_size)) {
bc78: f89d 303f ldrb.w r3, [sp, #63] ; 0x3f
(top_only && fill_area.y1 <= coords->y1 + corner_size) ||
bc7c: b30b cbz r3, bcc2 <lv_draw_rect+0x1e52>
(bottom_only && fill_area.y1 >= coords->y2 - corner_size)) {
bc7e: f9bb 3006 ldrsh.w r3, [fp, #6]
bc82: 9908 ldr r1, [sp, #32]
bc84: 1a5b subs r3, r3, r1
bc86: 429a cmp r2, r3
bc88: db1b blt.n bcc2 <lv_draw_rect+0x1e52>
_lv_memset_ff(mask_buf, draw_area_w);
bc8a: 4b9f ldr r3, [pc, #636] ; (bf08 <lv_draw_rect+0x2098>)
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bc8c: 4f9f ldr r7, [pc, #636] ; (bf0c <lv_draw_rect+0x209c>)
_lv_memset_ff(mask_buf, draw_area_w);
bc8e: 4649 mov r1, r9
bc90: 4620 mov r0, r4
bc92: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bc94: 9b06 ldr r3, [sp, #24]
bc96: 8a5a ldrh r2, [r3, #18]
bc98: 8a19 ldrh r1, [r3, #16]
bc9a: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50
bc9e: 4432 add r2, r6
bca0: 4419 add r1, r3
bca2: b212 sxth r2, r2
bca4: 464b mov r3, r9
bca6: b209 sxth r1, r1
bca8: 4620 mov r0, r4
bcaa: 47b8 blx r7
_lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode);
bcac: 9b07 ldr r3, [sp, #28]
bcae: 9302 str r3, [sp, #8]
bcb0: 9b05 ldr r3, [sp, #20]
bcb2: ee18 2a10 vmov r2, s16
bcb6: e9cd 0300 strd r0, r3, [sp]
bcba: a918 add r1, sp, #96 ; 0x60
bcbc: 4623 mov r3, r4
bcbe: 4640 mov r0, r8
bcc0: 47a8 blx r5
fill_area.y1++;
bcc2: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
bcc6: 3301 adds r3, #1
bcc8: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2++;
bccc: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
bcd0: 3301 adds r3, #1
bcd2: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = draw_area.y1; h <= draw_area.y2; h++) {
bcd6: 3601 adds r6, #1
bcd8: e7bb b.n bc52 <lv_draw_rect+0x1de2>
else if(dsc->border_side == LV_BORDER_SIDE_RIGHT) fill_area.x1 = coords->x2 - corner_size;
bcda: 2b08 cmp r3, #8
bcdc: bf02 ittt eq
bcde: 9908 ldreq r1, [sp, #32]
bce0: 1a52 subeq r2, r2, r1
bce2: f8ad 2060 strheq.w r2, [sp, #96] ; 0x60
bce6: e79d b.n bc24 <lv_draw_rect+0x1db4>
if(dsc->border_side == LV_BORDER_SIDE_BOTTOM) bottom_only = true;
bce8: 2b01 cmp r3, #1
bcea: d004 beq.n bcf6 <lv_draw_rect+0x1e86>
if(dsc->border_side == (LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_BOTTOM)) {
bcec: 2b03 cmp r3, #3
bcee: d1a3 bne.n bc38 <lv_draw_rect+0x1dc8>
top_only = true;
bcf0: 2301 movs r3, #1
bcf2: f88d 303e strb.w r3, [sp, #62] ; 0x3e
bottom_only = true;
bcf6: f88d 303f strb.w r3, [sp, #63] ; 0x3f
bcfa: e79d b.n bc38 <lv_draw_rect+0x1dc8>
volatile bool normal = !top_only && !bottom_only ? true : false;
bcfc: 2300 movs r3, #0
bcfe: e7a3 b.n bc48 <lv_draw_rect+0x1dd8>
_lv_memset_ff(mask_buf, draw_area_w);
bd00: ee18 1a10 vmov r1, s16
bd04: 4b80 ldr r3, [pc, #512] ; (bf08 <lv_draw_rect+0x2098>)
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bd06: 4d81 ldr r5, [pc, #516] ; (bf0c <lv_draw_rect+0x209c>)
_lv_memset_ff(mask_buf, draw_area_w);
bd08: 4620 mov r0, r4
bd0a: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bd0c: 9b06 ldr r3, [sp, #24]
bd0e: 8a5a ldrh r2, [r3, #18]
bd10: 8a19 ldrh r1, [r3, #16]
bd12: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58
bd16: 4432 add r2, r6
bd18: 4419 add r1, r3
bd1a: b212 sxth r2, r2
bd1c: ee18 3a10 vmov r3, s16
bd20: b209 sxth r1, r1
bd22: 4620 mov r0, r4
bd24: 47a8 blx r5
fill_area2.y1 = fill_area.y1;
bd26: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
bd2a: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
fill_area2.y2 = fill_area.y2;
bd2e: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
bd32: f8ad 306e strh.w r3, [sp, #110] ; 0x6e
fill_area2.x1 = area_outer.x1;
bd36: f9bd 3050 ldrsh.w r3, [sp, #80] ; 0x50
bd3a: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = area_outer.x1 + rout - 1;
bd3e: 3b01 subs r3, #1
bd40: fa13 f389 uxtah r3, r3, r9
bd44: fa1f f289 uxth.w r2, r9
bd48: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
bd4c: 9b05 ldr r3, [sp, #20]
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bd4e: 900a str r0, [sp, #40] ; 0x28
fill_area2.x2 = area_outer.x1 + rout - 1;
bd50: 9209 str r2, [sp, #36] ; 0x24
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
bd52: 9301 str r3, [sp, #4]
bd54: 9000 str r0, [sp, #0]
bd56: 4623 mov r3, r4
bd58: 463a mov r2, r7
bd5a: a91a add r1, sp, #104 ; 0x68
bd5c: 4d69 ldr r5, [pc, #420] ; (bf04 <lv_draw_rect+0x2094>)
bd5e: f8cd b008 str.w fp, [sp, #8]
bd62: 4640 mov r0, r8
bd64: 47a8 blx r5
if(fill_area2.y2 < area_outer.y1 + dsc->outline_width) {
bd66: f9bd 3052 ldrsh.w r3, [sp, #82] ; 0x52
bd6a: f9ba 1018 ldrsh.w r1, [sl, #24]
bd6e: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e
bd72: 440b add r3, r1
bd74: 429a cmp r2, r3
bd76: da15 bge.n bda4 <lv_draw_rect+0x1f34>
fill_area2.x1 = area_outer.x1 + rout;
bd78: 9a09 ldr r2, [sp, #36] ; 0x24
bd7a: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
bd7e: f8cd b008 str.w fp, [sp, #8]
fill_area2.x1 = area_outer.x1 + rout;
bd82: 4413 add r3, r2
bd84: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = area_outer.x2 - rout;
bd88: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54
bd8c: 1a9b subs r3, r3, r2
bd8e: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
bd92: 9b05 ldr r3, [sp, #20]
bd94: 9301 str r3, [sp, #4]
bd96: 2301 movs r3, #1
bd98: 9300 str r3, [sp, #0]
bd9a: 463a mov r2, r7
bd9c: 2300 movs r3, #0
bd9e: a91a add r1, sp, #104 ; 0x68
bda0: 4640 mov r0, r8
bda2: 47a8 blx r5
fill_area2.x1 = area_outer.x2 - rout + 1;
bda4: f9bd 3054 ldrsh.w r3, [sp, #84] ; 0x54
bda8: 9909 ldr r1, [sp, #36] ; 0x24
fill_area2.x2 = area_outer.x2;
bdaa: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
fill_area2.x1 = area_outer.x2 - rout + 1;
bdae: 1c5a adds r2, r3, #1
bdb0: 1a52 subs r2, r2, r1
bdb2: f8ad 2068 strh.w r2, [sp, #104] ; 0x68
int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
bdb6: 9a06 ldr r2, [sp, #24]
bdb8: f9bd 1058 ldrsh.w r1, [sp, #88] ; 0x58
bdbc: f9b2 2010 ldrsh.w r2, [r2, #16]
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
bdc0: 4d50 ldr r5, [pc, #320] ; (bf04 <lv_draw_rect+0x2094>)
bdc2: f8cd b008 str.w fp, [sp, #8]
int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
bdc6: eba3 0309 sub.w r3, r3, r9
bdca: 440a add r2, r1
bdcc: 3301 adds r3, #1
bdce: 1a9b subs r3, r3, r2
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
bdd0: 9a05 ldr r2, [sp, #20]
bdd2: 9201 str r2, [sp, #4]
bdd4: 9a0a ldr r2, [sp, #40] ; 0x28
bdd6: 9200 str r2, [sp, #0]
bdd8: 2b00 cmp r3, #0
bdda: bfac ite ge
bddc: 18e3 addge r3, r4, r3
bdde: 1c23 addlt r3, r4, #0
bde0: 463a mov r2, r7
bde2: a91a add r1, sp, #104 ; 0x68
bde4: 4640 mov r0, r8
bde6: 47a8 blx r5
fill_area.y1++;
bde8: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
bdec: 3301 adds r3, #1
bdee: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2++;
bdf2: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
bdf6: 3301 adds r3, #1
bdf8: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = draw_area.y1; h <= upper_corner_end; h++) {
bdfc: 3601 adds r6, #1
bdfe: f7ff b957 b.w b0b0 <lv_draw_rect+0x1240>
_lv_memset_ff(mask_buf, draw_area_w);
be02: ee18 1a10 vmov r1, s16
be06: 4b40 ldr r3, [pc, #256] ; (bf08 <lv_draw_rect+0x2098>)
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
be08: 4d40 ldr r5, [pc, #256] ; (bf0c <lv_draw_rect+0x209c>)
_lv_memset_ff(mask_buf, draw_area_w);
be0a: 4620 mov r0, r4
be0c: 4798 blx r3
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
be0e: 9b06 ldr r3, [sp, #24]
be10: 8a5a ldrh r2, [r3, #18]
be12: 8a19 ldrh r1, [r3, #16]
be14: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58
be18: 4432 add r2, r6
be1a: 4419 add r1, r3
be1c: b212 sxth r2, r2
be1e: ee18 3a10 vmov r3, s16
be22: b209 sxth r1, r1
be24: 4620 mov r0, r4
be26: 47a8 blx r5
fill_area2.x1 = area_outer.x1;
be28: f9bd 3050 ldrsh.w r3, [sp, #80] ; 0x50
be2c: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = area_outer.x1 + rout - 1;
be30: 3b01 subs r3, #1
be32: fa13 f389 uxtah r3, r3, r9
be36: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
fill_area2.y1 = fill_area.y1;
be3a: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
be3e: f8ad 306a strh.w r3, [sp, #106] ; 0x6a
fill_area2.y2 = fill_area.y2;
be42: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
be46: f8ad 306e strh.w r3, [sp, #110] ; 0x6e
fill_area2.x2 = area_outer.x1 + rout - 1;
be4a: fa1f f289 uxth.w r2, r9
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
be4e: 9b05 ldr r3, [sp, #20]
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
be50: 9009 str r0, [sp, #36] ; 0x24
fill_area2.x2 = area_outer.x1 + rout - 1;
be52: 9208 str r2, [sp, #32]
_lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode);
be54: 9301 str r3, [sp, #4]
be56: 9000 str r0, [sp, #0]
be58: 4623 mov r3, r4
be5a: 463a mov r2, r7
be5c: a91a add r1, sp, #104 ; 0x68
be5e: 4d29 ldr r5, [pc, #164] ; (bf04 <lv_draw_rect+0x2094>)
be60: f8cd b008 str.w fp, [sp, #8]
be64: 4640 mov r0, r8
be66: 47a8 blx r5
if(fill_area2.y2 > area_outer.y2 - dsc->outline_width) {
be68: f9bd 3056 ldrsh.w r3, [sp, #86] ; 0x56
be6c: f9ba 1018 ldrsh.w r1, [sl, #24]
be70: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e
be74: 1a5b subs r3, r3, r1
be76: 429a cmp r2, r3
be78: dd15 ble.n bea6 <lv_draw_rect+0x2036>
fill_area2.x1 = area_outer.x1 + rout;
be7a: 9a08 ldr r2, [sp, #32]
be7c: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
be80: f8cd b008 str.w fp, [sp, #8]
fill_area2.x1 = area_outer.x1 + rout;
be84: 4413 add r3, r2
be86: f8ad 3068 strh.w r3, [sp, #104] ; 0x68
fill_area2.x2 = area_outer.x2 - rout;
be8a: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54
be8e: 1a9b subs r3, r3, r2
be90: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
_lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode);
be94: 9b05 ldr r3, [sp, #20]
be96: 9301 str r3, [sp, #4]
be98: 2301 movs r3, #1
be9a: 9300 str r3, [sp, #0]
be9c: 463a mov r2, r7
be9e: 2300 movs r3, #0
bea0: a91a add r1, sp, #104 ; 0x68
bea2: 4640 mov r0, r8
bea4: 47a8 blx r5
fill_area2.x1 = area_outer.x2 - rout + 1;
bea6: f9bd 3054 ldrsh.w r3, [sp, #84] ; 0x54
beaa: 9908 ldr r1, [sp, #32]
fill_area2.x2 = area_outer.x2;
beac: f8ad 306c strh.w r3, [sp, #108] ; 0x6c
fill_area2.x1 = area_outer.x2 - rout + 1;
beb0: 1c5a adds r2, r3, #1
beb2: 1a52 subs r2, r2, r1
beb4: f8ad 2068 strh.w r2, [sp, #104] ; 0x68
int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
beb8: 9a06 ldr r2, [sp, #24]
beba: f9bd 1058 ldrsh.w r1, [sp, #88] ; 0x58
bebe: f9b2 2010 ldrsh.w r2, [r2, #16]
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
bec2: 4d10 ldr r5, [pc, #64] ; (bf04 <lv_draw_rect+0x2094>)
bec4: f8cd b008 str.w fp, [sp, #8]
int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1);
bec8: eba3 0309 sub.w r3, r3, r9
becc: 440a add r2, r1
bece: 3301 adds r3, #1
bed0: 1a9b subs r3, r3, r2
_lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode);
bed2: 9a05 ldr r2, [sp, #20]
bed4: 9201 str r2, [sp, #4]
bed6: 9a09 ldr r2, [sp, #36] ; 0x24
bed8: 9200 str r2, [sp, #0]
beda: 2b00 cmp r3, #0
bedc: bfac ite ge
bede: 18e3 addge r3, r4, r3
bee0: 1c23 addlt r3, r4, #0
bee2: 463a mov r2, r7
bee4: a91a add r1, sp, #104 ; 0x68
bee6: 4640 mov r0, r8
bee8: 47a8 blx r5
fill_area.y1++;
beea: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
beee: 3301 adds r3, #1
bef0: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2++;
bef4: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
bef8: 3301 adds r3, #1
befa: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = lower_corner_end; h <= draw_area.y2; h++) {
befe: 3601 adds r6, #1
bf00: f7ff b8ed b.w b0de <lv_draw_rect+0x126e>
bf04: 00006475 .word 0x00006475
bf08: 0000f305 .word 0x0000f305
bf0c: 000099e5 .word 0x000099e5
_lv_memset_ff(mask_buf, draw_area_w);
bf10: f8df 908c ldr.w r9, [pc, #140] ; bfa0 <lv_draw_rect+0x2130>
_lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode);
bf14: f8df a08c ldr.w sl, [pc, #140] ; bfa4 <lv_draw_rect+0x2134>
fill_area.x1 = area_outer.x1;
bf18: f8ad 0060 strh.w r0, [sp, #96] ; 0x60
fill_area.x2 = area_outer.x2;
bf1c: f8ad 1064 strh.w r1, [sp, #100] ; 0x64
fill_area.y1 = disp_area->y1 + draw_area.y1;
bf20: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2 = fill_area.y1;
bf24: f8ad 3066 strh.w r3, [sp, #102] ; 0x66
for(h = draw_area.y1; h <= draw_area.y2; h++) {
bf28: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e
bf2c: 429e cmp r6, r3
bf2e: f73f a913 bgt.w b158 <lv_draw_rect+0x12e8>
_lv_memset_ff(mask_buf, draw_area_w);
bf32: ee18 1a10 vmov r1, s16
bf36: 4620 mov r0, r4
bf38: 47c8 blx r9
mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w);
bf3a: 9b06 ldr r3, [sp, #24]
bf3c: 4d17 ldr r5, [pc, #92] ; (bf9c <lv_draw_rect+0x212c>)
bf3e: 8a5a ldrh r2, [r3, #18]
bf40: 8a19 ldrh r1, [r3, #16]
bf42: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58
bf46: 4432 add r2, r6
bf48: 4419 add r1, r3
bf4a: b212 sxth r2, r2
bf4c: ee18 3a10 vmov r3, s16
bf50: b209 sxth r1, r1
bf52: 4620 mov r0, r4
bf54: 47a8 blx r5
_lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode);
bf56: 9b05 ldr r3, [sp, #20]
bf58: f8cd b008 str.w fp, [sp, #8]
bf5c: e9cd 0300 strd r0, r3, [sp]
bf60: 463a mov r2, r7
bf62: 4623 mov r3, r4
bf64: a918 add r1, sp, #96 ; 0x60
bf66: 4640 mov r0, r8
bf68: 47d0 blx sl
fill_area.y1++;
bf6a: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62
bf6e: 3301 adds r3, #1
bf70: f8ad 3062 strh.w r3, [sp, #98] ; 0x62
fill_area.y2++;
bf74: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66
bf78: 3301 adds r3, #1
bf7a: b21b sxth r3, r3
for(h = draw_area.y1; h <= draw_area.y2; h++) {
bf7c: 3601 adds r6, #1
bf7e: e7d1 b.n bf24 <lv_draw_rect+0x20b4>
if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) {
bf80: 9b09 ldr r3, [sp, #36] ; 0x24
bf82: 2b02 cmp r3, #2
bf84: f43f abc6 beq.w b714 <lv_draw_rect+0x18a4>
else if(other_mask_cnt != 0 || !split) {
bf88: 9b0d ldr r3, [sp, #52] ; 0x34
bf8a: 2b00 cmp r3, #0
bf8c: f47f abdd bne.w b74a <lv_draw_rect+0x18da>
bf90: 9b0a ldr r3, [sp, #40] ; 0x28
bf92: 2b32 cmp r3, #50 ; 0x32
bf94: f73f abc9 bgt.w b72a <lv_draw_rect+0x18ba>
bf98: f7ff bbd7 b.w b74a <lv_draw_rect+0x18da>
bf9c: 000099e5 .word 0x000099e5
bfa0: 0000f305 .word 0x0000f305
bfa4: 00006475 .word 0x00006475
0000bfa8 <lv_color_mix>:
{
bfa8: b5f0 push {r4, r5, r6, r7, lr}
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
bfaa: f3c1 1345 ubfx r3, r1, #5, #6
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
bfae: f1c2 06ff rsb r6, r2, #255 ; 0xff
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
bfb2: f3c0 1445 ubfx r4, r0, #5, #6
bfb6: 4373 muls r3, r6
bfb8: fb04 3302 mla r3, r4, r2, r3
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
bfbc: f001 041f and.w r4, r1, #31
bfc0: f000 071f and.w r7, r0, #31
bfc4: 4374 muls r4, r6
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
bfc6: f248 0581 movw r5, #32897 ; 0x8081
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
bfca: fb07 4402 mla r4, r7, r2, r4
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
bfce: 436b muls r3, r5
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
bfd0: 436c muls r4, r5
return ret;
bfd2: f3c3 53c5 ubfx r3, r3, #23, #6
bfd6: f3c4 54c4 ubfx r4, r4, #23, #5
bfda: ea44 1443 orr.w r4, r4, r3, lsl #5
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
bfde: f3c1 23c4 ubfx r3, r1, #11, #5
bfe2: 4373 muls r3, r6
bfe4: f3c0 20c4 ubfx r0, r0, #11, #5
bfe8: fb00 3202 mla r2, r0, r2, r3
bfec: fb05 f302 mul.w r3, r5, r2
bff0: 0ddb lsrs r3, r3, #23
}
bff2: ea44 20c3 orr.w r0, r4, r3, lsl #11
bff6: bdf0 pop {r4, r5, r6, r7, pc}
0000bff8 <_lv_memcpy_small.isra.0>:
LV_ATTRIBUTE_FAST_MEM static inline void * _lv_memcpy_small(void * dst, const void * src, size_t len)
bff8: 3901 subs r1, #1
bffa: 4402 add r2, r0
while(len) {
bffc: 4290 cmp r0, r2
bffe: d100 bne.n c002 <STACK_SIZE+0x2>
s8++;
len--;
}
return dst;
}
c000: 4770 bx lr
*d8 = *s8;
c002: f811 3f01 ldrb.w r3, [r1, #1]!
c006: f800 3b01 strb.w r3, [r0], #1
len--;
c00a: e7f7 b.n bffc <_lv_memcpy_small.isra.0+0x4>
0000c00c <lv_img_buf_get_px_color>:
* Not used in other cases.
* @param safe true: check out of bounds
* @return color of the point
*/
lv_color_t lv_img_buf_get_px_color(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_color_t color)
{
c00c: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
lv_color_t p_color = LV_COLOR_BLACK;
uint8_t * buf_u8 = (uint8_t *)dsc->data;
c00e: 6886 ldr r6, [r0, #8]
{
c010: 4607 mov r7, r0
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED ||
c012: 7800 ldrb r0, [r0, #0]
{
c014: 4615 mov r5, r2
lv_color_t p_color = LV_COLOR_BLACK;
c016: 2200 movs r2, #0
c018: f8ad 2004 strh.w r2, [sp, #4]
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED ||
c01c: f000 021f and.w r2, r0, #31
c020: 2a04 cmp r2, #4
{
c022: 460c mov r4, r1
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED ||
c024: d009 beq.n c03a <lv_img_buf_get_px_color+0x2e>
c026: 3a05 subs r2, #5
c028: 2a09 cmp r2, #9
c02a: d81a bhi.n c062 <lv_img_buf_get_px_color+0x56>
c02c: e8df f002 tbb [pc, r2]
c030: 321d0505 .word 0x321d0505
c034: 2f2f5843 .word 0x2f2f5843
c038: 2f2f .short 0x2f2f
dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) {
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf) >> 3;
c03a: 4b2e ldr r3, [pc, #184] ; (c0f4 <lv_img_buf_get_px_color+0xe8>)
c03c: f000 001f and.w r0, r0, #31
c040: 4798 blx r3
uint32_t px = dsc->header.w * y * px_size + x * px_size;
c042: 683b ldr r3, [r7, #0]
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf) >> 3;
c044: f3c0 00c7 ubfx r0, r0, #3, #8
uint32_t px = dsc->header.w * y * px_size + x * px_size;
c048: f3c3 238a ubfx r3, r3, #10, #11
c04c: fb13 f305 smulbb r3, r3, r5
c050: fb10 f104 smulbb r1, r0, r4
c054: fb00 1103 mla r1, r0, r3, r1
_lv_memcpy_small(&p_color, &buf_u8[px], sizeof(lv_color_t));
c058: 2202 movs r2, #2
c05a: 4b27 ldr r3, [pc, #156] ; (c0f8 <lv_img_buf_get_px_color+0xec>)
c05c: 4431 add r1, r6
c05e: a801 add r0, sp, #4
c060: 4798 blx r3
else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT ||
dsc->header.cf == LV_IMG_CF_ALPHA_4BIT || dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) {
p_color = color;
}
return p_color;
}
c062: f8bd 0004 ldrh.w r0, [sp, #4]
c066: b003 add sp, #12
c068: bdf0 pop {r4, r5, r6, r7, pc}
uint32_t px = ((dsc->header.w + 7) >> 3) * y + x;
c06a: 683b ldr r3, [r7, #0]
c06c: f3c3 238a ubfx r3, r3, #10, #11
c070: 3307 adds r3, #7
c072: 10db asrs r3, r3, #3
p_color.full = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
c074: fb05 6303 mla r3, r5, r3, r6
c078: eb03 03e4 add.w r3, r3, r4, asr #3
c07c: f004 0207 and.w r2, r4, #7
c080: 7a1b ldrb r3, [r3, #8]
c082: f1c2 0207 rsb r2, r2, #7
c086: 2101 movs r1, #1
p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
c088: 4091 lsls r1, r2
c08a: 400b ands r3, r1
c08c: 4113 asrs r3, r2
p_color = color;
c08e: f8ad 3004 strh.w r3, [sp, #4]
c092: e7e6 b.n c062 <lv_img_buf_get_px_color+0x56>
uint32_t px = ((dsc->header.w + 3) >> 2) * y + x;
c094: 683b ldr r3, [r7, #0]
c096: f3c3 238a ubfx r3, r3, #10, #11
c09a: 3303 adds r3, #3
c09c: 109b asrs r3, r3, #2
p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
c09e: fb05 6303 mla r3, r5, r3, r6
uint8_t bit = (x & 0x3) * 2;
c0a2: f004 0203 and.w r2, r4, #3
p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
c0a6: eb03 03a4 add.w r3, r3, r4, asr #2
c0aa: 0052 lsls r2, r2, #1
c0ac: 7c1b ldrb r3, [r3, #16]
c0ae: f1c2 0206 rsb r2, r2, #6
c0b2: 2103 movs r1, #3
c0b4: e7e8 b.n c088 <lv_img_buf_get_px_color+0x7c>
uint32_t px = ((dsc->header.w + 1) >> 1) * y + x;
c0b6: 683b ldr r3, [r7, #0]
c0b8: f3c3 238a ubfx r3, r3, #10, #11
c0bc: 3301 adds r3, #1
c0be: 105b asrs r3, r3, #1
p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
c0c0: fb05 6203 mla r2, r5, r3, r6
c0c4: eb02 0264 add.w r2, r2, r4, asr #1
uint8_t bit = (x & 0x1) * 4;
c0c8: f004 0101 and.w r1, r4, #1
p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
c0cc: 0089 lsls r1, r1, #2
c0ce: f892 3040 ldrb.w r3, [r2, #64] ; 0x40
c0d2: f1c1 0104 rsb r1, r1, #4
c0d6: 220f movs r2, #15
c0d8: 408a lsls r2, r1
c0da: 4013 ands r3, r2
c0dc: 410b asrs r3, r1
c0de: e7d6 b.n c08e <lv_img_buf_get_px_color+0x82>
uint32_t px = dsc->header.w * y + x;
c0e0: 683b ldr r3, [r7, #0]
c0e2: f3c3 238a ubfx r3, r3, #10, #11
c0e6: fb15 4503 smlabb r5, r5, r3, r4
p_color.full = buf_u8[px];
c0ea: 442e add r6, r5
c0ec: f896 3400 ldrb.w r3, [r6, #1024] ; 0x400
c0f0: e7cd b.n c08e <lv_img_buf_get_px_color+0x82>
c0f2: bf00 nop
c0f4: 00007805 .word 0x00007805
c0f8: 0000bff9 .word 0x0000bff9
0000c0fc <lv_img_buf_get_px_alpha>:
* @param y x coordinate of the point to set
* @param safe true: check out of bounds
* @return alpha value of the point
*/
lv_opa_t lv_img_buf_get_px_alpha(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y)
{
c0fc: b5f0 push {r4, r5, r6, r7, lr}
c0fe: 460b mov r3, r1
uint8_t * buf_u8 = (uint8_t *)dsc->data;
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) {
c100: 7801 ldrb r1, [r0, #0]
uint8_t * buf_u8 = (uint8_t *)dsc->data;
c102: 6885 ldr r5, [r0, #8]
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) {
c104: f001 011f and.w r1, r1, #31
c108: 2905 cmp r1, #5
{
c10a: b085 sub sp, #20
c10c: 4604 mov r4, r0
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) {
c10e: d10a bne.n c126 <lv_img_buf_get_px_alpha+0x2a>
uint32_t px = dsc->header.w * y * LV_IMG_PX_SIZE_ALPHA_BYTE + x * LV_IMG_PX_SIZE_ALPHA_BYTE;
c110: 6801 ldr r1, [r0, #0]
c112: f3c1 218a ubfx r1, r1, #10, #11
c116: fb12 3201 smlabb r2, r2, r1, r3
return buf_u8[px + LV_IMG_PX_SIZE_ALPHA_BYTE - 1];
c11a: eb02 0242 add.w r2, r2, r2, lsl #1
c11e: 442a add r2, r5
c120: 7890 ldrb r0, [r2, #2]
uint32_t px = dsc->header.w * y + x;
return buf_u8[px];
}
return LV_OPA_COVER;
}
c122: b005 add sp, #20
c124: bdf0 pop {r4, r5, r6, r7, pc}
else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT) {
c126: 390b subs r1, #11
c128: 2903 cmp r1, #3
c12a: d856 bhi.n c1da <lv_img_buf_get_px_alpha+0xde>
c12c: e8df f001 tbb [pc, r1]
c130: 4e321902 .word 0x4e321902
uint32_t px = ((dsc->header.w + 7) >> 3) * y + x;
c134: 6821 ldr r1, [r4, #0]
c136: f3c1 218a ubfx r1, r1, #10, #11
c13a: 3107 adds r1, #7
c13c: 10c9 asrs r1, r1, #3
uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
c13e: f003 0007 and.w r0, r3, #7
c142: fb02 5201 mla r2, r2, r1, r5
uint32_t px = ((dsc->header.w + 7) >> 3) * y + x;
c146: 10db asrs r3, r3, #3
uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit);
c148: f1c0 0007 rsb r0, r0, #7
c14c: 5cd3 ldrb r3, [r2, r3]
c14e: 2201 movs r2, #1
c150: 4082 lsls r2, r0
c152: 4013 ands r3, r2
return px_opa ? LV_OPA_TRANSP : LV_OPA_COVER;
c154: 4103 asrs r3, r0
c156: bf0c ite eq
c158: f04f 30ff moveq.w r0, #4294967295 ; 0xffffffff
c15c: 2000 movne r0, #0
c15e: b2c0 uxtb r0, r0
c160: e7df b.n c122 <lv_img_buf_get_px_alpha+0x26>
const uint8_t opa_table[4] = {0, 85, 170, 255}; /*Opacity mapping with bpp = 2*/
c162: 491f ldr r1, [pc, #124] ; (c1e0 <lv_img_buf_get_px_alpha+0xe4>)
c164: 9100 str r1, [sp, #0]
uint32_t px = ((dsc->header.w + 3) >> 2) * y + x;
c166: 6821 ldr r1, [r4, #0]
c168: f3c1 218a ubfx r1, r1, #10, #11
c16c: 3103 adds r1, #3
c16e: 1089 asrs r1, r1, #2
uint8_t bit = (x & 0x3) * 2;
c170: f003 0003 and.w r0, r3, #3
uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
c174: fb02 5201 mla r2, r2, r1, r5
uint32_t px = ((dsc->header.w + 3) >> 2) * y + x;
c178: 109b asrs r3, r3, #2
uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit);
c17a: 0040 lsls r0, r0, #1
c17c: 5cd3 ldrb r3, [r2, r3]
c17e: f1c0 0006 rsb r0, r0, #6
c182: 2203 movs r2, #3
uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
c184: 4082 lsls r2, r0
c186: 4013 ands r3, r2
c188: 4103 asrs r3, r0
return opa_table[px_opa];
c18a: 3310 adds r3, #16
c18c: 446b add r3, sp
c18e: f813 0c10 ldrb.w r0, [r3, #-16]
c192: e7c6 b.n c122 <lv_img_buf_get_px_alpha+0x26>
const uint8_t opa_table[16] = {0, 17, 34, 51, /*Opacity mapping with bpp = 4*/
c194: 4e13 ldr r6, [pc, #76] ; (c1e4 <lv_img_buf_get_px_alpha+0xe8>)
c196: 46ec mov ip, sp
c198: f106 0e10 add.w lr, r6, #16
c19c: 6830 ldr r0, [r6, #0]
c19e: 6871 ldr r1, [r6, #4]
c1a0: 4667 mov r7, ip
c1a2: c703 stmia r7!, {r0, r1}
c1a4: 3608 adds r6, #8
c1a6: 4576 cmp r6, lr
c1a8: 46bc mov ip, r7
c1aa: d1f7 bne.n c19c <lv_img_buf_get_px_alpha+0xa0>
uint32_t px = ((dsc->header.w + 1) >> 1) * y + x;
c1ac: 6821 ldr r1, [r4, #0]
c1ae: f3c1 218a ubfx r1, r1, #10, #11
c1b2: 3101 adds r1, #1
c1b4: 1049 asrs r1, r1, #1
uint8_t bit = (x & 0x1) * 4;
c1b6: f003 0001 and.w r0, r3, #1
uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
c1ba: fb02 5201 mla r2, r2, r1, r5
uint32_t px = ((dsc->header.w + 1) >> 1) * y + x;
c1be: 105b asrs r3, r3, #1
uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit);
c1c0: 0080 lsls r0, r0, #2
c1c2: 5cd3 ldrb r3, [r2, r3]
c1c4: f1c0 0004 rsb r0, r0, #4
c1c8: 220f movs r2, #15
c1ca: e7db b.n c184 <lv_img_buf_get_px_alpha+0x88>
uint32_t px = dsc->header.w * y + x;
c1cc: 6821 ldr r1, [r4, #0]
c1ce: f3c1 218a ubfx r1, r1, #10, #11
c1d2: fb12 3201 smlabb r2, r2, r1, r3
return buf_u8[px];
c1d6: 5ca8 ldrb r0, [r5, r2]
c1d8: e7a3 b.n c122 <lv_img_buf_get_px_alpha+0x26>
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) {
c1da: 20ff movs r0, #255 ; 0xff
c1dc: e7a1 b.n c122 <lv_img_buf_get_px_alpha+0x26>
c1de: bf00 nop
c1e0: ffaa5500 .word 0xffaa5500
c1e4: 00027883 .word 0x00027883
0000c1e8 <_lv_img_buf_transform_init>:
/**
* Initialize a descriptor to tranform an image
* @param dsc pointer to an `lv_img_transform_dsc_t` variable whose `cfg` field is initialized
*/
void _lv_img_buf_transform_init(lv_img_transform_dsc_t * dsc)
{
c1e8: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
dsc->tmp.pivot_x_256 = dsc->cfg.pivot_x * 256;
c1ec: f9b0 3008 ldrsh.w r3, [r0, #8]
int32_t angle_low = dsc->cfg.angle / 10;
int32_t angle_hight = angle_low + 1;
int32_t angle_rem = dsc->cfg.angle - (angle_low * 10);
int32_t s1 = _lv_trigo_sin(-angle_low);
c1f0: f8df 80ec ldr.w r8, [pc, #236] ; c2e0 <_lv_img_buf_transform_init+0xf8>
dsc->tmp.pivot_x_256 = dsc->cfg.pivot_x * 256;
c1f4: 021b lsls r3, r3, #8
c1f6: 6243 str r3, [r0, #36] ; 0x24
dsc->tmp.pivot_y_256 = dsc->cfg.pivot_y * 256;
c1f8: f9b0 300a ldrsh.w r3, [r0, #10]
c1fc: 021b lsls r3, r3, #8
int32_t angle_low = dsc->cfg.angle / 10;
c1fe: 260a movs r6, #10
dsc->tmp.pivot_y_256 = dsc->cfg.pivot_y * 256;
c200: 6283 str r3, [r0, #40] ; 0x28
int32_t angle_low = dsc->cfg.angle / 10;
c202: f9b0 300c ldrsh.w r3, [r0, #12]
c206: fb93 f5f6 sdiv r5, r3, r6
int32_t s1 = _lv_trigo_sin(-angle_low);
c20a: fa1f f985 uxth.w r9, r5
{
c20e: 4604 mov r4, r0
int32_t s1 = _lv_trigo_sin(-angle_low);
c210: f1c9 0000 rsb r0, r9, #0
int32_t angle_rem = dsc->cfg.angle - (angle_low * 10);
c214: f64f 77f6 movw r7, #65526 ; 0xfff6
int32_t s1 = _lv_trigo_sin(-angle_low);
c218: b200 sxth r0, r0
int32_t angle_rem = dsc->cfg.angle - (angle_low * 10);
c21a: fb15 3707 smlabb r7, r5, r7, r3
int32_t s1 = _lv_trigo_sin(-angle_low);
c21e: 47c0 blx r8
int32_t angle_hight = angle_low + 1;
c220: 3501 adds r5, #1
int32_t s2 = _lv_trigo_sin(-angle_hight);
c222: b2ad uxth r5, r5
int32_t s1 = _lv_trigo_sin(-angle_low);
c224: 4682 mov sl, r0
int32_t s2 = _lv_trigo_sin(-angle_hight);
c226: 4268 negs r0, r5
c228: b200 sxth r0, r0
c22a: 47c0 blx r8
c22c: 4683 mov fp, r0
int32_t c1 = _lv_trigo_sin(-angle_low + 90);
c22e: f1c9 005a rsb r0, r9, #90 ; 0x5a
c232: b200 sxth r0, r0
c234: 47c0 blx r8
int32_t c2 = _lv_trigo_sin(-angle_hight + 90);
c236: f1c5 055a rsb r5, r5, #90 ; 0x5a
int32_t c1 = _lv_trigo_sin(-angle_low + 90);
c23a: 4681 mov r9, r0
int32_t c2 = _lv_trigo_sin(-angle_hight + 90);
c23c: b228 sxth r0, r5
c23e: 47c0 blx r8
dsc->tmp.sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
c240: 1bf2 subs r2, r6, r7
c242: fb07 f30b mul.w r3, r7, fp
c246: fb02 330a mla r3, r2, sl, r3
c24a: fb93 f3f6 sdiv r3, r3, r6
c24e: 62e3 str r3, [r4, #44] ; 0x2c
dsc->tmp.cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
c250: fb07 f300 mul.w r3, r7, r0
c254: fb02 3009 mla r0, r2, r9, r3
dsc->tmp.chroma_keyed = lv_img_cf_is_chroma_keyed(dsc->cfg.cf) ? 1 : 0;
c258: 4b1f ldr r3, [pc, #124] ; (c2d8 <_lv_img_buf_transform_init+0xf0>)
dsc->tmp.cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
c25a: fb90 f0f6 sdiv r0, r0, r6
c25e: 6320 str r0, [r4, #48] ; 0x30
dsc->tmp.chroma_keyed = lv_img_cf_is_chroma_keyed(dsc->cfg.cf) ? 1 : 0;
c260: 7ca0 ldrb r0, [r4, #18]
c262: 4798 blx r3
c264: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
c268: f360 0300 bfi r3, r0, #0, #1
c26c: f884 3034 strb.w r3, [r4, #52] ; 0x34
dsc->tmp.has_alpha = lv_img_cf_has_alpha(dsc->cfg.cf) ? 1 : 0;
c270: 7ca0 ldrb r0, [r4, #18]
c272: 4b1a ldr r3, [pc, #104] ; (c2dc <_lv_img_buf_transform_init+0xf4>)
c274: 4798 blx r3
if(dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR || dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
c276: 7ca3 ldrb r3, [r4, #18]
c278: 1f19 subs r1, r3, #4
c27a: 2902 cmp r1, #2
c27c: bf8c ite hi
c27e: 2100 movhi r1, #0
c280: 2101 movls r1, #1
dsc->tmp.has_alpha = lv_img_cf_has_alpha(dsc->cfg.cf) ? 1 : 0;
c282: 0042 lsls r2, r0, #1
c284: ea42 0281 orr.w r2, r2, r1, lsl #2
c288: f894 1034 ldrb.w r1, [r4, #52] ; 0x34
c28c: f002 0206 and.w r2, r2, #6
c290: f021 0106 bic.w r1, r1, #6
c294: 430a orrs r2, r1
c296: f884 2034 strb.w r2, [r4, #52] ; 0x34
}
else {
dsc->tmp.native_color = 0;
}
dsc->tmp.img_dsc.data = dsc->cfg.src;
c29a: 6822 ldr r2, [r4, #0]
c29c: 6222 str r2, [r4, #32]
dsc->tmp.img_dsc.header.always_zero = 0;
dsc->tmp.img_dsc.header.cf = dsc->cfg.cf;
c29e: 88a2 ldrh r2, [r4, #4]
c2a0: f003 031f and.w r3, r3, #31
c2a4: f3c2 020a ubfx r2, r2, #0, #11
c2a8: ea43 2382 orr.w r3, r3, r2, lsl #10
c2ac: f9b4 2006 ldrsh.w r2, [r4, #6]
c2b0: ea43 5342 orr.w r3, r3, r2, lsl #21
c2b4: 69a2 ldr r2, [r4, #24]
c2b6: f402 7240 and.w r2, r2, #768 ; 0x300
c2ba: 4313 orrs r3, r2
c2bc: 61a3 str r3, [r4, #24]
dsc->tmp.img_dsc.header.w = dsc->cfg.src_w;
dsc->tmp.img_dsc.header.h = dsc->cfg.src_h;
dsc->tmp.zoom_inv = (256 * 256) / dsc->cfg.zoom;
c2be: 89e2 ldrh r2, [r4, #14]
c2c0: f44f 3380 mov.w r3, #65536 ; 0x10000
c2c4: fbb3 f3f2 udiv r3, r3, r2
c2c8: 86e3 strh r3, [r4, #54] ; 0x36
dsc->res.opa = LV_OPA_COVER;
c2ca: 23ff movs r3, #255 ; 0xff
c2cc: 75a3 strb r3, [r4, #22]
dsc->res.color = dsc->cfg.color;
c2ce: 8a23 ldrh r3, [r4, #16]
c2d0: 82a3 strh r3, [r4, #20]
}
c2d2: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
c2d6: bf00 nop
c2d8: 0000781d .word 0x0000781d
c2dc: 00007831 .word 0x00007831
c2e0: 0000ebcd .word 0x0000ebcd
0000c2e4 <_lv_img_buf_get_transformed_area>:
* @param zoom zoom, (256 no zoom)
* @param pivot x,y pivot coordinates of rotation
*/
void _lv_img_buf_get_transformed_area(lv_area_t * res, lv_coord_t w, lv_coord_t h, int16_t angle, uint16_t zoom,
lv_point_t * pivot)
{
c2e4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
c2e8: b085 sub sp, #20
c2ea: 4607 mov r7, r0
#if LV_USE_IMG_TRANSFORM
int32_t angle_low = angle / 10;
int32_t angle_hight = angle_low + 1;
int32_t angle_rem = angle - (angle_low * 10);
int32_t s1 = _lv_trigo_sin(angle_low);
c2ec: f8df b174 ldr.w fp, [pc, #372] ; c464 <_lv_img_buf_get_transformed_area+0x180>
{
c2f0: f8bd 8038 ldrh.w r8, [sp, #56] ; 0x38
c2f4: 9102 str r1, [sp, #8]
int32_t angle_low = angle / 10;
c2f6: 260a movs r6, #10
int32_t angle_rem = angle - (angle_low * 10);
c2f8: f64f 7af6 movw sl, #65526 ; 0xfff6
int32_t angle_low = angle / 10;
c2fc: fb93 f9f6 sdiv r9, r3, r6
int32_t s1 = _lv_trigo_sin(angle_low);
c300: 4648 mov r0, r9
int32_t angle_rem = angle - (angle_low * 10);
c302: fb19 3a0a smlabb sl, r9, sl, r3
{
c306: 4614 mov r4, r2
int32_t s1 = _lv_trigo_sin(angle_low);
c308: 47d8 blx fp
int32_t angle_hight = angle_low + 1;
c30a: f109 0501 add.w r5, r9, #1
int32_t s1 = _lv_trigo_sin(angle_low);
c30e: 9003 str r0, [sp, #12]
int32_t s2 = _lv_trigo_sin(angle_hight);
c310: b228 sxth r0, r5
c312: 47d8 blx fp
c314: 4605 mov r5, r0
int32_t c1 = _lv_trigo_sin(angle_low + 90);
c316: f109 005a add.w r0, r9, #90 ; 0x5a
c31a: b200 sxth r0, r0
c31c: 47d8 blx fp
c31e: 9001 str r0, [sp, #4]
int32_t c2 = _lv_trigo_sin(angle_hight + 90);
c320: f109 005b add.w r0, r9, #91 ; 0x5b
c324: b200 sxth r0, r0
c326: 47d8 blx fp
int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
c328: 9b01 ldr r3, [sp, #4]
int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
c32a: 9903 ldr r1, [sp, #12]
c32c: eba6 0c0a sub.w ip, r6, sl
int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
c330: fb0a f000 mul.w r0, sl, r0
c334: fb0c 0003 mla r0, ip, r3, r0
lv_coord_t xt;
lv_coord_t yt;
lv_area_t a;
a.x1 = ((-pivot->x) * zoom) >> 8;
c338: 9b0f ldr r3, [sp, #60] ; 0x3c
int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10;
c33a: fb90 f0f6 sdiv r0, r0, r6
int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
c33e: fb0a f505 mul.w r5, sl, r5
a.x1 = ((-pivot->x) * zoom) >> 8;
c342: f9b3 e000 ldrsh.w lr, [r3]
int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
c346: fb0c 5501 mla r5, ip, r1, r5
a.y1 = ((-pivot->y) * zoom) >> 8;
c34a: f9b3 c002 ldrsh.w ip, [r3, #2]
int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10;
c34e: fb95 f5f6 sdiv r5, r5, r6
a.x1 = ((-pivot->x) * zoom) >> 8;
c352: f1ce 0300 rsb r3, lr, #0
a.y1 = ((-pivot->y) * zoom) >> 8;
c356: f1cc 0200 rsb r2, ip, #0
a.x1 = ((-pivot->x) * zoom) >> 8;
c35a: fb08 f303 mul.w r3, r8, r3
a.y1 = ((-pivot->y) * zoom) >> 8;
c35e: fb08 f202 mul.w r2, r8, r2
a.x2 = ((w - pivot->x) * zoom) >> 8;
a.y2 = ((h - pivot->y) * zoom) >> 8;
xt = a.x1;
yt = a.y1;
lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c362: f343 230f sbfx r3, r3, #8, #16
c366: f342 220f sbfx r2, r2, #8, #16
c36a: fb00 f903 mul.w r9, r0, r3
c36e: fb05 fa02 mul.w sl, r5, r2
lt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c372: 436b muls r3, r5
c374: 4342 muls r2, r0
c376: 1899 adds r1, r3, r2
c378: 13c9 asrs r1, r1, #15
c37a: fa11 f18c uxtah r1, r1, ip
c37e: b209 sxth r1, r1
c380: 9101 str r1, [sp, #4]
a.x2 = ((w - pivot->x) * zoom) >> 8;
c382: 9902 ldr r1, [sp, #8]
c384: eba1 010e sub.w r1, r1, lr
c388: fb08 f101 mul.w r1, r8, r1
xt = a.x2;
yt = a.y1;
rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c38c: f341 210f sbfx r1, r1, #8, #16
a.y2 = ((h - pivot->y) * zoom) >> 8;
c390: eba4 040c sub.w r4, r4, ip
rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c394: fb00 fb01 mul.w fp, r0, r1
a.y2 = ((h - pivot->y) * zoom) >> 8;
c398: fb08 f404 mul.w r4, r8, r4
lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c39c: eba9 060a sub.w r6, r9, sl
rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
xt = a.x1;
yt = a.y2;
lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3a0: f344 240f sbfx r4, r4, #8, #16
rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3a4: ebab 0a0a sub.w sl, fp, sl
rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c3a8: 4369 muls r1, r5
lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3aa: 13f6 asrs r6, r6, #15
lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3ac: 4365 muls r5, r4
rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3ae: ea4f 3aea mov.w sl, sl, asr #15
lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c3b2: 4344 muls r4, r0
lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3b4: fa16 f68e uxtah r6, r6, lr
rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3b8: fa1a fa8e uxtah sl, sl, lr
lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3bc: eba9 0905 sub.w r9, r9, r5
lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3c0: b236 sxth r6, r6
rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3c2: fa0f fa8a sxth.w sl, sl
rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c3c6: 440a add r2, r1
lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c3c8: 4423 add r3, r4
xt = a.x2;
yt = a.y2;
rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c3ca: 4421 add r1, r4
lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3cc: ea4f 39e9 mov.w r9, r9, asr #15
res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x);
c3d0: 4556 cmp r6, sl
lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3d2: fa19 f98e uxtah r9, r9, lr
rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3d6: ebab 0b05 sub.w fp, fp, r5
rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c3da: ea4f 31e1 mov.w r1, r1, asr #15
rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c3de: ea4f 32e2 mov.w r2, r2, asr #15
lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c3e2: ea4f 33e3 mov.w r3, r3, asr #15
lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3e6: fa0f f989 sxth.w r9, r9
rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c3ea: fa12 f28c uxtah r2, r2, ip
lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c3ee: fa13 f38c uxtah r3, r3, ip
rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c3f2: ea4f 3beb mov.w fp, fp, asr #15
rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c3f6: fa11 fc8c uxtah ip, r1, ip
res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x);
c3fa: 4631 mov r1, r6
c3fc: bfa8 it ge
c3fe: 4651 movge r1, sl
c400: 4549 cmp r1, r9
rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x;
c402: fa1b fe8e uxtah lr, fp, lr
c406: fa0f fe8e sxth.w lr, lr
res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x);
c40a: bfa8 it ge
c40c: 4649 movge r1, r9
c40e: 4571 cmp r1, lr
c410: bfa8 it ge
c412: 4671 movge r1, lr
res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x);
c414: 4556 cmp r6, sl
c416: bfb8 it lt
c418: 4656 movlt r6, sl
c41a: 454e cmp r6, r9
c41c: bfb8 it lt
c41e: 464e movlt r6, r9
res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x);
c420: 8039 strh r1, [r7, #0]
res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y);
c422: 9901 ldr r1, [sp, #4]
rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c424: b212 sxth r2, r2
res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x);
c426: 4576 cmp r6, lr
c428: bfb8 it lt
c42a: 4676 movlt r6, lr
res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y);
c42c: 4291 cmp r1, r2
lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c42e: b21b sxth r3, r3
res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y);
c430: bfa8 it ge
c432: 4611 movge r1, r2
c434: 4299 cmp r1, r3
rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y;
c436: fa0f fc8c sxth.w ip, ip
res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y);
c43a: bfa8 it ge
c43c: 4619 movge r1, r3
c43e: 4561 cmp r1, ip
c440: bfa8 it ge
c442: 4661 movge r1, ip
c444: 8079 strh r1, [r7, #2]
res->y2 = LV_MATH_MAX4(lb.y, lt.y, rb.y, rt.y);
c446: 9901 ldr r1, [sp, #4]
res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x);
c448: 80be strh r6, [r7, #4]
res->y2 = LV_MATH_MAX4(lb.y, lt.y, rb.y, rt.y);
c44a: 428a cmp r2, r1
c44c: bfb8 it lt
c44e: 460a movlt r2, r1
c450: 4293 cmp r3, r2
c452: bfb8 it lt
c454: 4613 movlt r3, r2
c456: 4563 cmp r3, ip
c458: bfb8 it lt
c45a: 4663 movlt r3, ip
c45c: 80fb strh r3, [r7, #6]
res->x1 = 0;
res->y1 = 0;
res->x2 = w;
res->y2 = h;
#endif
}
c45e: b005 add sp, #20
c460: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
c464: 0000ebcd .word 0x0000ebcd
0000c468 <_lv_img_buf_transform_anti_alias>:
/**
* Continue transformation by taking the neighbors into account
* @param dsc pointer to the transformation descriptor
*/
bool _lv_img_buf_transform_anti_alias(lv_img_transform_dsc_t * dsc)
{
c468: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
c46c: f890 2038 ldrb.w r2, [r0, #56] ; 0x38
const uint8_t * src_u8 = dsc->cfg.src;
c470: f8d0 8000 ldr.w r8, [r0]
/*Get the fractional part of the source pixel*/
int xs_fract = dsc->tmp.xs & 0xff;
c474: f9b0 5038 ldrsh.w r5, [r0, #56] ; 0x38
int ys_fract = dsc->tmp.ys & 0xff;
c478: f9b0 603a ldrsh.w r6, [r0, #58] ; 0x3a
c47c: f890 303a ldrb.w r3, [r0, #58] ; 0x3a
int32_t xn; /*x neightboor*/
lv_opa_t xr; /*x mix ratio*/
if(xs_fract < 0x70) {
c480: 2a6f cmp r2, #111 ; 0x6f
{
c482: b089 sub sp, #36 ; 0x24
c484: 4604 mov r4, r0
if(xs_fract < 0x70) {
c486: f200 8092 bhi.w c5ae <_lv_img_buf_transform_anti_alias+0x146>
xn = - 1;
if(dsc->tmp.xs_int + xn < 0) xn = 0;
c48a: f9b0 903c ldrsh.w r9, [r0, #60] ; 0x3c
c48e: f1b9 0f00 cmp.w r9, #0
c492: bfd4 ite le
c494: f04f 0900 movle.w r9, #0
c498: f04f 0901 movgt.w r9, #1
c49c: f1c9 0900 rsb r9, r9, #0
xr = xs_fract + 0x80;
c4a0: 3d80 subs r5, #128 ; 0x80
}
else if(xs_fract > 0x90) {
xn = 1;
if(dsc->tmp.xs_int + xn >= dsc->cfg.src_w) xn = 0;
xr = (0xFF - xs_fract) + 0x80;
c4a2: b2ed uxtb r5, r5
}
int32_t yn; /*x neightboor*/
lv_opa_t yr; /*x mix ratio*/
if(ys_fract < 0x70) {
c4a4: 2b6f cmp r3, #111 ; 0x6f
c4a6: f200 8097 bhi.w c5d8 <_lv_img_buf_transform_anti_alias+0x170>
yn = - 1;
if(dsc->tmp.ys_int + yn < 0) yn = 0;
c4aa: f9b4 703e ldrsh.w r7, [r4, #62] ; 0x3e
c4ae: 2f00 cmp r7, #0
c4b0: bfd4 ite le
c4b2: 2700 movle r7, #0
c4b4: 2701 movgt r7, #1
c4b6: 427f negs r7, r7
yr = ys_fract + 0x80;
c4b8: 3e80 subs r6, #128 ; 0x80
}
else if(ys_fract > 0x90) {
yn = 1;
if(dsc->tmp.ys_int + yn >= dsc->cfg.src_h) yn = 0;
yr = (0xFF - ys_fract) + 0x80;
c4ba: b2f6 uxtb r6, r6
else {
yn = 0;
yr = 0xFF;
}
lv_color_t c00 = dsc->res.color;
c4bc: 8aa3 ldrh r3, [r4, #20]
c4be: f8ad 300a strh.w r3, [sp, #10]
lv_color_t c01;
lv_color_t c10;
lv_color_t c11;
lv_opa_t a00 = dsc->res.opa;
c4c2: 7da3 ldrb r3, [r4, #22]
c4c4: 9301 str r3, [sp, #4]
lv_opa_t a10 = 0;
lv_opa_t a01 = 0;
lv_opa_t a11 = 0;
if(dsc->tmp.native_color) {
c4c6: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
c4ca: 0758 lsls r0, r3, #29
c4cc: f140 80a9 bpl.w c622 <_lv_img_buf_transform_anti_alias+0x1ba>
_lv_memcpy_small(&c01, &src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn], sizeof(lv_color_t));
c4d0: f894 3044 ldrb.w r3, [r4, #68] ; 0x44
c4d4: 6c21 ldr r1, [r4, #64] ; 0x40
c4d6: f8df a248 ldr.w sl, [pc, #584] ; c720 <_lv_img_buf_transform_anti_alias+0x2b8>
c4da: fb09 1103 mla r1, r9, r3, r1
c4de: 2202 movs r2, #2
c4e0: 4441 add r1, r8
c4e2: a805 add r0, sp, #20
c4e4: 47d0 blx sl
_lv_memcpy_small(&c10, &src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn], sizeof(lv_color_t));
c4e6: 88a2 ldrh r2, [r4, #4]
c4e8: f894 3044 ldrb.w r3, [r4, #68] ; 0x44
c4ec: 6c21 ldr r1, [r4, #64] ; 0x40
c4ee: fb13 f302 smulbb r3, r3, r2
c4f2: fb07 1103 mla r1, r7, r3, r1
c4f6: 2202 movs r2, #2
c4f8: 4441 add r1, r8
c4fa: a806 add r0, sp, #24
c4fc: 47d0 blx sl
_lv_memcpy_small(&c11, &src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size * xn],
c4fe: f894 2044 ldrb.w r2, [r4, #68] ; 0x44
c502: 88a3 ldrh r3, [r4, #4]
c504: 6c21 ldr r1, [r4, #64] ; 0x40
c506: fb13 f302 smulbb r3, r3, r2
c50a: fb09 1102 mla r1, r9, r2, r1
c50e: fb07 1103 mla r1, r7, r3, r1
c512: 4441 add r1, r8
c514: 2202 movs r2, #2
c516: a807 add r0, sp, #28
c518: 47d0 blx sl
sizeof(lv_color_t));
if(dsc->tmp.has_alpha) {
c51a: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
c51e: 0799 lsls r1, r3, #30
c520: d46b bmi.n c5fa <_lv_img_buf_transform_anti_alias+0x192>
lv_opa_t a11 = 0;
c522: 2000 movs r0, #0
lv_opa_t a01 = 0;
c524: 4607 mov r7, r0
lv_opa_t a10 = 0;
c526: 4683 mov fp, r0
}
}
lv_opa_t xr0 = xr;
lv_opa_t xr1 = xr;
if(dsc->tmp.has_alpha) {
c528: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
c52c: 079b lsls r3, r3, #30
c52e: f140 80c7 bpl.w c6c0 <_lv_img_buf_transform_anti_alias+0x258>
lv_opa_t a0 = (a00 * xr + (a10 * (255 - xr))) >> 8;
c532: 9a01 ldr r2, [sp, #4]
c534: f1c5 03ff rsb r3, r5, #255 ; 0xff
c538: fb12 f105 smulbb r1, r2, r5
c53c: fb03 110b mla r1, r3, fp, r1
lv_opa_t a1 = (a01 * xr + (a11 * (255 - xr))) >> 8;
c540: 4343 muls r3, r0
dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8;
c542: f3c1 2107 ubfx r1, r1, #8, #8
lv_opa_t a1 = (a01 * xr + (a11 * (255 - xr))) >> 8;
c546: fb15 3307 smlabb r3, r5, r7, r3
c54a: f3c3 2307 ubfx r3, r3, #8, #8
dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8;
c54e: f1c6 0cff rsb ip, r6, #255 ; 0xff
c552: fb06 f201 mul.w r2, r6, r1
c556: fb03 220c mla r2, r3, ip, r2
c55a: 1212 asrs r2, r2, #8
if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false;
c55c: 2905 cmp r1, #5
dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8;
c55e: 75a2 strb r2, [r4, #22]
if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false;
c560: f200 80aa bhi.w c6b8 <_lv_img_buf_transform_anti_alias+0x250>
c564: 2b05 cmp r3, #5
c566: f240 80d4 bls.w c712 <_lv_img_buf_transform_anti_alias+0x2aa>
if(a0 <= LV_OPA_MIN) yr = LV_OPA_TRANSP;
c56a: 2600 movs r6, #0
if(a1 <= LV_OPA_MIN) yr = LV_OPA_COVER;
if(a00 <= LV_OPA_MIN) xr0 = LV_OPA_TRANSP;
c56c: 9b01 ldr r3, [sp, #4]
c56e: 2b05 cmp r3, #5
c570: bf94 ite ls
c572: 2200 movls r2, #0
c574: 462a movhi r2, r5
if(a10 <= LV_OPA_MIN) xr0 = LV_OPA_COVER;
c576: f1bb 0f05 cmp.w fp, #5
c57a: bf98 it ls
c57c: 22ff movls r2, #255 ; 0xff
if(a01 <= LV_OPA_MIN) xr1 = LV_OPA_TRANSP;
c57e: 2f05 cmp r7, #5
c580: bf98 it ls
c582: 2500 movls r5, #0
if(a11 <= LV_OPA_MIN) xr1 = LV_OPA_COVER;
c584: 2805 cmp r0, #5
c586: bf98 it ls
c588: 25ff movls r5, #255 ; 0xff
xr1 = xr;
dsc->res.opa = LV_OPA_COVER;
}
lv_color_t c0;
if(xr0 == LV_OPA_TRANSP) c0 = c01;
c58a: 2a00 cmp r2, #0
c58c: f040 809c bne.w c6c8 <_lv_img_buf_transform_anti_alias+0x260>
c590: f8bd 7014 ldrh.w r7, [sp, #20]
else if(xr0 == LV_OPA_COVER) c0 = c00;
else c0 = lv_color_mix(c00, c01, xr0);
lv_color_t c1;
if(xr1 == LV_OPA_TRANSP) c1 = c11;
c594: 2d00 cmp r5, #0
c596: f040 80a4 bne.w c6e2 <_lv_img_buf_transform_anti_alias+0x27a>
c59a: f8bd 101c ldrh.w r1, [sp, #28]
else if(xr1 == LV_OPA_COVER) c1 = c10;
else c1 = lv_color_mix(c10, c11, xr1);
if(yr == LV_OPA_TRANSP) dsc->res.color = c1;
c59e: 2e00 cmp r6, #0
c5a0: f040 80ad bne.w c6fe <_lv_img_buf_transform_anti_alias+0x296>
c5a4: 82a1 strh r1, [r4, #20]
else if(yr == LV_OPA_COVER) dsc->res.color = c0;
else dsc->res.color = lv_color_mix(c0, c1, yr);
return true;
c5a6: 2001 movs r0, #1
}
c5a8: b009 add sp, #36 ; 0x24
c5aa: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
else if(xs_fract > 0x90) {
c5ae: 2a90 cmp r2, #144 ; 0x90
c5b0: d90e bls.n c5d0 <_lv_img_buf_transform_anti_alias+0x168>
if(dsc->tmp.xs_int + xn >= dsc->cfg.src_w) xn = 0;
c5b2: f9b0 903c ldrsh.w r9, [r0, #60] ; 0x3c
c5b6: f9b0 2004 ldrsh.w r2, [r0, #4]
c5ba: f109 0901 add.w r9, r9, #1
c5be: 4591 cmp r9, r2
c5c0: bfac ite ge
c5c2: f04f 0900 movge.w r9, #0
c5c6: f04f 0901 movlt.w r9, #1
xr = (0xFF - xs_fract) + 0x80;
c5ca: f1c5 057f rsb r5, r5, #127 ; 0x7f
c5ce: e768 b.n c4a2 <_lv_img_buf_transform_anti_alias+0x3a>
xr = 0xFF;
c5d0: 25ff movs r5, #255 ; 0xff
xn = 0;
c5d2: f04f 0900 mov.w r9, #0
c5d6: e765 b.n c4a4 <_lv_img_buf_transform_anti_alias+0x3c>
else if(ys_fract > 0x90) {
c5d8: 2b90 cmp r3, #144 ; 0x90
c5da: d90b bls.n c5f4 <_lv_img_buf_transform_anti_alias+0x18c>
if(dsc->tmp.ys_int + yn >= dsc->cfg.src_h) yn = 0;
c5dc: f9b4 703e ldrsh.w r7, [r4, #62] ; 0x3e
c5e0: f9b4 3006 ldrsh.w r3, [r4, #6]
c5e4: 3701 adds r7, #1
c5e6: 429f cmp r7, r3
c5e8: bfac ite ge
c5ea: 2700 movge r7, #0
c5ec: 2701 movlt r7, #1
yr = (0xFF - ys_fract) + 0x80;
c5ee: f1c6 067f rsb r6, r6, #127 ; 0x7f
c5f2: e762 b.n c4ba <_lv_img_buf_transform_anti_alias+0x52>
yr = 0xFF;
c5f4: 26ff movs r6, #255 ; 0xff
yn = 0;
c5f6: 2700 movs r7, #0
c5f8: e760 b.n c4bc <_lv_img_buf_transform_anti_alias+0x54>
a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1];
c5fa: 6c22 ldr r2, [r4, #64] ; 0x40
c5fc: f894 1044 ldrb.w r1, [r4, #68] ; 0x44
a01 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size - 1];
c600: 88a3 ldrh r3, [r4, #4]
c602: 3a01 subs r2, #1
c604: 440a add r2, r1
a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1];
c606: fb09 2901 mla r9, r9, r1, r2
a01 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size - 1];
c60a: fb13 f301 smulbb r3, r3, r1
c60e: 437b muls r3, r7
c610: eb08 0103 add.w r1, r8, r3
a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1];
c614: f818 b009 ldrb.w fp, [r8, r9]
a01 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size - 1];
c618: 5c8f ldrb r7, [r1, r2]
a11 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1];
c61a: 44c8 add r8, r9
c61c: f818 0003 ldrb.w r0, [r8, r3]
c620: e782 b.n c528 <_lv_img_buf_transform_anti_alias+0xc0>
c01 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int, dsc->cfg.color);
c622: 8fa3 ldrh r3, [r4, #60] ; 0x3c
c624: f8df b0fc ldr.w fp, [pc, #252] ; c724 <_lv_img_buf_transform_anti_alias+0x2bc>
c628: f9b4 203e ldrsh.w r2, [r4, #62] ; 0x3e
c62c: f104 0a18 add.w sl, r4, #24
c630: fa13 f189 uxtah r1, r3, r9
c634: b209 sxth r1, r1
c636: 8a23 ldrh r3, [r4, #16]
c638: 4650 mov r0, sl
c63a: 47d8 blx fp
c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color);
c63c: 8fe3 ldrh r3, [r4, #62] ; 0x3e
c63e: f9b4 103c ldrsh.w r1, [r4, #60] ; 0x3c
c01 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int, dsc->cfg.color);
c642: f8ad 0014 strh.w r0, [sp, #20]
c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color);
c646: fa13 f287 uxtah r2, r3, r7
c64a: b212 sxth r2, r2
c64c: 8a23 ldrh r3, [r4, #16]
c64e: 4650 mov r0, sl
c650: 47d8 blx fp
c11 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn, dsc->cfg.color);
c652: 8fe2 ldrh r2, [r4, #62] ; 0x3e
c654: 8fa1 ldrh r1, [r4, #60] ; 0x3c
c656: 8a23 ldrh r3, [r4, #16]
c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color);
c658: f8ad 0018 strh.w r0, [sp, #24]
c01 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int, dsc->cfg.color);
c65c: fa1f f889 uxth.w r8, r9
c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color);
c660: fa1f f987 uxth.w r9, r7
c11 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn, dsc->cfg.color);
c664: 444a add r2, r9
c666: 4441 add r1, r8
c668: b212 sxth r2, r2
c66a: b209 sxth r1, r1
c66c: 4650 mov r0, sl
c66e: 47d8 blx fp
if(dsc->tmp.has_alpha) {
c670: f894 3034 ldrb.w r3, [r4, #52] ; 0x34
c11 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn, dsc->cfg.color);
c674: f8ad 001c strh.w r0, [sp, #28]
if(dsc->tmp.has_alpha) {
c678: 079a lsls r2, r3, #30
c67a: f57f af52 bpl.w c522 <_lv_img_buf_transform_anti_alias+0xba>
a10 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int);
c67e: f9b4 703c ldrsh.w r7, [r4, #60] ; 0x3c
c682: f9b4 203e ldrsh.w r2, [r4, #62] ; 0x3e
c686: 4b24 ldr r3, [pc, #144] ; (c718 <_lv_img_buf_transform_anti_alias+0x2b0>)
c688: 9203 str r2, [sp, #12]
c68a: 44b8 add r8, r7
c68c: fa0f f888 sxth.w r8, r8
c690: 4641 mov r1, r8
c692: 4650 mov r0, sl
c694: 4798 blx r3
a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn);
c696: 9a03 ldr r2, [sp, #12]
c698: 4b1f ldr r3, [pc, #124] ; (c718 <_lv_img_buf_transform_anti_alias+0x2b0>)
c69a: 4491 add r9, r2
c69c: fa0f f289 sxth.w r2, r9
c6a0: 4639 mov r1, r7
a10 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int);
c6a2: 4683 mov fp, r0
a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn);
c6a4: 4650 mov r0, sl
c6a6: 9203 str r2, [sp, #12]
c6a8: 4798 blx r3
a11 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn);
c6aa: 9a03 ldr r2, [sp, #12]
c6ac: 4b1a ldr r3, [pc, #104] ; (c718 <_lv_img_buf_transform_anti_alias+0x2b0>)
a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn);
c6ae: 4607 mov r7, r0
a11 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn);
c6b0: 4641 mov r1, r8
c6b2: 4650 mov r0, sl
c6b4: 4798 blx r3
c6b6: e737 b.n c528 <_lv_img_buf_transform_anti_alias+0xc0>
if(a1 <= LV_OPA_MIN) yr = LV_OPA_COVER;
c6b8: 2b05 cmp r3, #5
c6ba: bf98 it ls
c6bc: 26ff movls r6, #255 ; 0xff
c6be: e755 b.n c56c <_lv_img_buf_transform_anti_alias+0x104>
dsc->res.opa = LV_OPA_COVER;
c6c0: 23ff movs r3, #255 ; 0xff
c6c2: 75a3 strb r3, [r4, #22]
xr0 = xr;
c6c4: 462a mov r2, r5
c6c6: e760 b.n c58a <_lv_img_buf_transform_anti_alias+0x122>
else if(xr0 == LV_OPA_COVER) c0 = c00;
c6c8: 2aff cmp r2, #255 ; 0xff
c6ca: d102 bne.n c6d2 <_lv_img_buf_transform_anti_alias+0x26a>
c6cc: f8bd 700a ldrh.w r7, [sp, #10]
c6d0: e760 b.n c594 <_lv_img_buf_transform_anti_alias+0x12c>
else c0 = lv_color_mix(c00, c01, xr0);
c6d2: f8bd 1014 ldrh.w r1, [sp, #20]
c6d6: f8bd 000a ldrh.w r0, [sp, #10]
c6da: 4b10 ldr r3, [pc, #64] ; (c71c <_lv_img_buf_transform_anti_alias+0x2b4>)
c6dc: 4798 blx r3
c6de: 4607 mov r7, r0
c6e0: e758 b.n c594 <_lv_img_buf_transform_anti_alias+0x12c>
else if(xr1 == LV_OPA_COVER) c1 = c10;
c6e2: 2dff cmp r5, #255 ; 0xff
c6e4: d102 bne.n c6ec <_lv_img_buf_transform_anti_alias+0x284>
c6e6: f8bd 1018 ldrh.w r1, [sp, #24]
c6ea: e758 b.n c59e <_lv_img_buf_transform_anti_alias+0x136>
else c1 = lv_color_mix(c10, c11, xr1);
c6ec: f8bd 101c ldrh.w r1, [sp, #28]
c6f0: f8bd 0018 ldrh.w r0, [sp, #24]
c6f4: 4b09 ldr r3, [pc, #36] ; (c71c <_lv_img_buf_transform_anti_alias+0x2b4>)
c6f6: 462a mov r2, r5
c6f8: 4798 blx r3
c6fa: 4601 mov r1, r0
c6fc: e74f b.n c59e <_lv_img_buf_transform_anti_alias+0x136>
else if(yr == LV_OPA_COVER) dsc->res.color = c0;
c6fe: 2eff cmp r6, #255 ; 0xff
c700: d101 bne.n c706 <_lv_img_buf_transform_anti_alias+0x29e>
c702: 82a7 strh r7, [r4, #20]
c704: e74f b.n c5a6 <_lv_img_buf_transform_anti_alias+0x13e>
else dsc->res.color = lv_color_mix(c0, c1, yr);
c706: 4b05 ldr r3, [pc, #20] ; (c71c <_lv_img_buf_transform_anti_alias+0x2b4>)
c708: 4632 mov r2, r6
c70a: 4638 mov r0, r7
c70c: 4798 blx r3
c70e: 82a0 strh r0, [r4, #20]
c710: e749 b.n c5a6 <_lv_img_buf_transform_anti_alias+0x13e>
if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false;
c712: 2000 movs r0, #0
c714: e748 b.n c5a8 <_lv_img_buf_transform_anti_alias+0x140>
c716: bf00 nop
c718: 0000c0fd .word 0x0000c0fd
c71c: 0000bfa9 .word 0x0000bfa9
c720: 0000bff9 .word 0x0000bff9
c724: 0000c00d .word 0x0000c00d
0000c728 <_lv_img_cache_open>:
* @param src source of the image. Path to file or pointer to an `lv_img_dsc_t` variable
* @param style style of the image
* @return pointer to the cache entry or NULL if can open the image
*/
lv_img_cache_entry_t * _lv_img_cache_open(const void * src, lv_color_t color)
{
c728: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
if(entry_cnt == 0) {
c72c: f8df 8190 ldr.w r8, [pc, #400] ; c8c0 <_lv_img_cache_open+0x198>
c730: f8b8 4000 ldrh.w r4, [r8]
{
c734: 4605 mov r5, r0
c736: 460e mov r6, r1
if(entry_cnt == 0) {
c738: b95c cbnz r4, c752 <_lv_img_cache_open+0x2a>
LV_LOG_WARN("lv_img_cache_open: the cache size is 0");
c73a: 4b52 ldr r3, [pc, #328] ; (c884 <_lv_img_cache_open+0x15c>)
c73c: 9300 str r3, [sp, #0]
c73e: 4952 ldr r1, [pc, #328] ; (c888 <_lv_img_cache_open+0x160>)
c740: 4b52 ldr r3, [pc, #328] ; (c88c <_lv_img_cache_open+0x164>)
c742: 4d53 ldr r5, [pc, #332] ; (c890 <_lv_img_cache_open+0x168>)
c744: 2244 movs r2, #68 ; 0x44
c746: 2002 movs r0, #2
c748: 47a8 blx r5
if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1;
}
return cached_src;
}
c74a: 4620 mov r0, r4
c74c: b003 add sp, #12
c74e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array);
c752: 4b50 ldr r3, [pc, #320] ; (c894 <_lv_img_cache_open+0x16c>)
if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) {
c754: 4850 ldr r0, [pc, #320] ; (c898 <_lv_img_cache_open+0x170>)
lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array);
c756: 681f ldr r7, [r3, #0]
for(i = 0; i < entry_cnt; i++) {
c758: 2300 movs r3, #0
c75a: 463a mov r2, r7
if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) {
c75c: 6a11 ldr r1, [r2, #32]
for(i = 0; i < entry_cnt; i++) {
c75e: 3301 adds r3, #1
if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) {
c760: 4281 cmp r1, r0
cache[i].life -= LV_IMG_CACHE_AGING;
c762: bfa8 it ge
c764: f101 31ff addge.w r1, r1, #4294967295 ; 0xffffffff
for(i = 0; i < entry_cnt; i++) {
c768: b29b uxth r3, r3
cache[i].life -= LV_IMG_CACHE_AGING;
c76a: bfa8 it ge
c76c: 6211 strge r1, [r2, #32]
for(i = 0; i < entry_cnt; i++) {
c76e: 429c cmp r4, r3
c770: f102 0224 add.w r2, r2, #36 ; 0x24
c774: d1f2 bne.n c75c <_lv_img_cache_open+0x34>
if(strcmp(cache[i].dec_dsc.src, src) == 0) match = true;
c776: f8df b14c ldr.w fp, [pc, #332] ; c8c4 <_lv_img_cache_open+0x19c>
c77a: f04f 0a00 mov.w sl, #0
lv_img_src_t src_type = lv_img_src_get_type(cache[i].dec_dsc.src);
c77e: f04f 0924 mov.w r9, #36 ; 0x24
for(i = 0; i < entry_cnt; i++) {
c782: f8b8 1000 ldrh.w r1, [r8]
c786: fa1f f28a uxth.w r2, sl
c78a: 4291 cmp r1, r2
c78c: d839 bhi.n c802 <_lv_img_cache_open+0xda>
c78e: f107 0224 add.w r2, r7, #36 ; 0x24
cached_src = &cache[0];
c792: 463c mov r4, r7
for(i = 1; i < entry_cnt; i++) {
c794: 2301 movs r3, #1
c796: 4299 cmp r1, r3
c798: d856 bhi.n c848 <_lv_img_cache_open+0x120>
if(cached_src->dec_dsc.src) {
c79a: 6863 ldr r3, [r4, #4]
c79c: f8df 80f0 ldr.w r8, [pc, #240] ; c890 <_lv_img_cache_open+0x168>
c7a0: 2b00 cmp r3, #0
c7a2: d05a beq.n c85a <_lv_img_cache_open+0x132>
lv_img_decoder_close(&cached_src->dec_dsc);
c7a4: 4b3d ldr r3, [pc, #244] ; (c89c <_lv_img_cache_open+0x174>)
c7a6: 4620 mov r0, r4
c7a8: 4798 blx r3
LV_LOG_INFO("image draw: cache miss, close and reuse an entry");
c7aa: 4b3d ldr r3, [pc, #244] ; (c8a0 <_lv_img_cache_open+0x178>)
c7ac: 9300 str r3, [sp, #0]
c7ae: 4b37 ldr r3, [pc, #220] ; (c88c <_lv_img_cache_open+0x164>)
c7b0: 2277 movs r2, #119 ; 0x77
LV_LOG_INFO("image draw: cache miss, cached to an empty entry");
c7b2: 4935 ldr r1, [pc, #212] ; (c888 <_lv_img_cache_open+0x160>)
c7b4: 2001 movs r0, #1
c7b6: 47c0 blx r8
t_start = lv_tick_get();
c7b8: 4b3a ldr r3, [pc, #232] ; (c8a4 <_lv_img_cache_open+0x17c>)
c7ba: 4798 blx r3
cached_src->dec_dsc.time_to_open = 0;
c7bc: f04f 0900 mov.w r9, #0
lv_res_t open_res = lv_img_decoder_open(&cached_src->dec_dsc, src, color);
c7c0: 4629 mov r1, r5
c7c2: 4b39 ldr r3, [pc, #228] ; (c8a8 <_lv_img_cache_open+0x180>)
cached_src->dec_dsc.time_to_open = 0;
c7c4: f8c4 9014 str.w r9, [r4, #20]
t_start = lv_tick_get();
c7c8: 4607 mov r7, r0
lv_res_t open_res = lv_img_decoder_open(&cached_src->dec_dsc, src, color);
c7ca: 4632 mov r2, r6
c7cc: 4620 mov r0, r4
c7ce: 4798 blx r3
if(open_res == LV_RES_INV) {
c7d0: 4605 mov r5, r0
c7d2: 2800 cmp r0, #0
c7d4: d146 bne.n c864 <_lv_img_cache_open+0x13c>
LV_LOG_WARN("Image draw cannot open the image resource");
c7d6: 4b35 ldr r3, [pc, #212] ; (c8ac <_lv_img_cache_open+0x184>)
c7d8: 492b ldr r1, [pc, #172] ; (c888 <_lv_img_cache_open+0x160>)
c7da: 9300 str r3, [sp, #0]
c7dc: 2283 movs r2, #131 ; 0x83
c7de: 4b2b ldr r3, [pc, #172] ; (c88c <_lv_img_cache_open+0x164>)
_lv_memset_00(&cached_src->dec_dsc, sizeof(lv_img_decoder_dsc_t));
c7e0: 4e33 ldr r6, [pc, #204] ; (c8b0 <_lv_img_cache_open+0x188>)
LV_LOG_WARN("Image draw cannot open the image resource");
c7e2: 2002 movs r0, #2
c7e4: 47c0 blx r8
lv_img_decoder_close(&cached_src->dec_dsc);
c7e6: 4b2d ldr r3, [pc, #180] ; (c89c <_lv_img_cache_open+0x174>)
c7e8: 4620 mov r0, r4
c7ea: 4798 blx r3
_lv_memset_00(&cached_src->dec_dsc, sizeof(lv_img_decoder_dsc_t));
c7ec: 4620 mov r0, r4
c7ee: 2120 movs r1, #32
c7f0: 47b0 blx r6
_lv_memset_00(cached_src, sizeof(lv_img_cache_entry_t));
c7f2: 4620 mov r0, r4
c7f4: 2124 movs r1, #36 ; 0x24
c7f6: 47b0 blx r6
cached_src->life = INT32_MIN; /*Make the empty entry very "weak" to force its use */
c7f8: f04f 4300 mov.w r3, #2147483648 ; 0x80000000
c7fc: 6223 str r3, [r4, #32]
return NULL;
c7fe: 462c mov r4, r5
c800: e7a3 b.n c74a <_lv_img_cache_open+0x22>
lv_img_src_t src_type = lv_img_src_get_type(cache[i].dec_dsc.src);
c802: fa1f f48a uxth.w r4, sl
c806: fb09 7404 mla r4, r9, r4, r7
c80a: 4b2a ldr r3, [pc, #168] ; (c8b4 <_lv_img_cache_open+0x18c>)
c80c: 6860 ldr r0, [r4, #4]
c80e: 4798 blx r3
if(src_type == LV_IMG_SRC_VARIABLE) {
c810: b980 cbnz r0, c834 <_lv_img_cache_open+0x10c>
if(cache[i].dec_dsc.src == src && cache[i].dec_dsc.color.full == color.full) match = true;
c812: 6862 ldr r2, [r4, #4]
c814: 42aa cmp r2, r5
c816: d114 bne.n c842 <_lv_img_cache_open+0x11a>
c818: 8921 ldrh r1, [r4, #8]
c81a: b2b2 uxth r2, r6
c81c: 4291 cmp r1, r2
c81e: d110 bne.n c842 <_lv_img_cache_open+0x11a>
cached_src->life += cached_src->dec_dsc.time_to_open * LV_IMG_CACHE_LIFE_GAIN;
c820: 6a23 ldr r3, [r4, #32]
c822: 6962 ldr r2, [r4, #20]
c824: 4413 add r3, r2
c826: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8
c82a: bfa8 it ge
c82c: f44f 737a movge.w r3, #1000 ; 0x3e8
c830: 6223 str r3, [r4, #32]
if(cached_src == NULL) {
c832: e78a b.n c74a <_lv_img_cache_open+0x22>
else if(src_type == LV_IMG_SRC_FILE) {
c834: 2801 cmp r0, #1
c836: d104 bne.n c842 <_lv_img_cache_open+0x11a>
if(strcmp(cache[i].dec_dsc.src, src) == 0) match = true;
c838: 6860 ldr r0, [r4, #4]
c83a: 4629 mov r1, r5
c83c: 47d8 blx fp
c83e: 2800 cmp r0, #0
c840: d0ee beq.n c820 <_lv_img_cache_open+0xf8>
for(i = 0; i < entry_cnt; i++) {
c842: f10a 0a01 add.w sl, sl, #1
c846: e79c b.n c782 <_lv_img_cache_open+0x5a>
if(cache[i].life < cached_src->life) {
c848: 6a17 ldr r7, [r2, #32]
c84a: 6a20 ldr r0, [r4, #32]
for(i = 1; i < entry_cnt; i++) {
c84c: 3301 adds r3, #1
if(cache[i].life < cached_src->life) {
c84e: 4287 cmp r7, r0
c850: bfb8 it lt
c852: 4614 movlt r4, r2
for(i = 1; i < entry_cnt; i++) {
c854: b29b uxth r3, r3
c856: 3224 adds r2, #36 ; 0x24
c858: e79d b.n c796 <_lv_img_cache_open+0x6e>
LV_LOG_INFO("image draw: cache miss, cached to an empty entry");
c85a: 4b17 ldr r3, [pc, #92] ; (c8b8 <_lv_img_cache_open+0x190>)
c85c: 9300 str r3, [sp, #0]
c85e: 227a movs r2, #122 ; 0x7a
c860: 4b0a ldr r3, [pc, #40] ; (c88c <_lv_img_cache_open+0x164>)
c862: e7a6 b.n c7b2 <_lv_img_cache_open+0x8a>
if(cached_src->dec_dsc.time_to_open == 0) {
c864: 6963 ldr r3, [r4, #20]
cached_src->life = 0;
c866: f8c4 9020 str.w r9, [r4, #32]
if(cached_src->dec_dsc.time_to_open == 0) {
c86a: 2b00 cmp r3, #0
c86c: f47f af6d bne.w c74a <_lv_img_cache_open+0x22>
cached_src->dec_dsc.time_to_open = lv_tick_elaps(t_start);
c870: 4b12 ldr r3, [pc, #72] ; (c8bc <_lv_img_cache_open+0x194>)
c872: 4638 mov r0, r7
c874: 4798 blx r3
if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1;
c876: b108 cbz r0, c87c <_lv_img_cache_open+0x154>
cached_src->dec_dsc.time_to_open = lv_tick_elaps(t_start);
c878: 6160 str r0, [r4, #20]
c87a: e766 b.n c74a <_lv_img_cache_open+0x22>
if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1;
c87c: 2301 movs r3, #1
c87e: 6163 str r3, [r4, #20]
c880: e763 b.n c74a <_lv_img_cache_open+0x22>
c882: bf00 nop
c884: 000278df .word 0x000278df
c888: 000278aa .word 0x000278aa
c88c: 00027992 .word 0x00027992
c890: 0000eb79 .word 0x0000eb79
c894: 2000363c .word 0x2000363c
c898: 80000002 .word 0x80000002
c89c: 0000d2d1 .word 0x0000d2d1
c8a0: 00027906 .word 0x00027906
c8a4: 0000dccd .word 0x0000dccd
c8a8: 0000d201 .word 0x0000d201
c8ac: 00027968 .word 0x00027968
c8b0: 0000f2a9 .word 0x0000f2a9
c8b4: 00007a89 .word 0x00007a89
c8b8: 00027937 .word 0x00027937
c8bc: 0000dce1 .word 0x0000dce1
c8c0: 200035a0 .word 0x200035a0
c8c4: 000170c9 .word 0x000170c9
0000c8c8 <lv_img_cache_invalidate_src>:
* @param src an image source path to a file or pointer to an `lv_img_dsc_t` variable.
*/
void lv_img_cache_invalidate_src(const void * src)
{
lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array);
c8c8: 4b14 ldr r3, [pc, #80] ; (c91c <lv_img_cache_invalidate_src+0x54>)
{
c8ca: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array);
c8ce: 681f ldr r7, [r3, #0]
uint16_t i;
for(i = 0; i < entry_cnt; i++) {
c8d0: 4e13 ldr r6, [pc, #76] ; (c920 <lv_img_cache_invalidate_src+0x58>)
if(cache[i].dec_dsc.src == src || src == NULL) {
if(cache[i].dec_dsc.src != NULL) {
lv_img_decoder_close(&cache[i].dec_dsc);
}
_lv_memset_00(&cache[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
c8d2: 4d14 ldr r5, [pc, #80] ; (c924 <lv_img_cache_invalidate_src+0x5c>)
lv_img_decoder_close(&cache[i].dec_dsc);
c8d4: f8df 8050 ldr.w r8, [pc, #80] ; c928 <lv_img_cache_invalidate_src+0x60>
{
c8d8: 4604 mov r4, r0
for(i = 0; i < entry_cnt; i++) {
c8da: f04f 0900 mov.w r9, #0
c8de: 8832 ldrh r2, [r6, #0]
c8e0: fa1f f389 uxth.w r3, r9
c8e4: 429a cmp r2, r3
c8e6: d802 bhi.n c8ee <lv_img_cache_invalidate_src+0x26>
_lv_memset_00(&cache[i], sizeof(lv_img_cache_entry_t));
}
}
}
c8e8: b003 add sp, #12
c8ea: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
if(cache[i].dec_dsc.src == src || src == NULL) {
c8ee: fa1f f389 uxth.w r3, r9
c8f2: 2224 movs r2, #36 ; 0x24
c8f4: fb02 7003 mla r0, r2, r3, r7
c8f8: 6843 ldr r3, [r0, #4]
c8fa: 42a3 cmp r3, r4
c8fc: d000 beq.n c900 <lv_img_cache_invalidate_src+0x38>
c8fe: b94c cbnz r4, c914 <lv_img_cache_invalidate_src+0x4c>
if(cache[i].dec_dsc.src != NULL) {
c900: b113 cbz r3, c908 <lv_img_cache_invalidate_src+0x40>
lv_img_decoder_close(&cache[i].dec_dsc);
c902: 9001 str r0, [sp, #4]
c904: 47c0 blx r8
c906: 9801 ldr r0, [sp, #4]
_lv_memset_00(&cache[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
c908: 9001 str r0, [sp, #4]
c90a: 2120 movs r1, #32
c90c: 47a8 blx r5
_lv_memset_00(&cache[i], sizeof(lv_img_cache_entry_t));
c90e: 9801 ldr r0, [sp, #4]
c910: 2124 movs r1, #36 ; 0x24
c912: 47a8 blx r5
for(i = 0; i < entry_cnt; i++) {
c914: f109 0901 add.w r9, r9, #1
c918: e7e1 b.n c8de <lv_img_cache_invalidate_src+0x16>
c91a: bf00 nop
c91c: 2000363c .word 0x2000363c
c920: 200035a0 .word 0x200035a0
c924: 0000f2a9 .word 0x0000f2a9
c928: 0000d2d1 .word 0x0000d2d1
0000c92c <lv_img_cache_set_size>:
{
c92c: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
if(LV_GC_ROOT(_lv_img_cache_array) != NULL) {
c930: 4c1f ldr r4, [pc, #124] ; (c9b0 <lv_img_cache_set_size+0x84>)
c932: 6823 ldr r3, [r4, #0]
{
c934: 4605 mov r5, r0
if(LV_GC_ROOT(_lv_img_cache_array) != NULL) {
c936: b12b cbz r3, c944 <lv_img_cache_set_size+0x18>
lv_img_cache_invalidate_src(NULL);
c938: 4b1e ldr r3, [pc, #120] ; (c9b4 <lv_img_cache_set_size+0x88>)
c93a: 2000 movs r0, #0
c93c: 4798 blx r3
lv_mem_free(LV_GC_ROOT(_lv_img_cache_array));
c93e: 6820 ldr r0, [r4, #0]
c940: 4b1d ldr r3, [pc, #116] ; (c9b8 <lv_img_cache_set_size+0x8c>)
c942: 4798 blx r3
LV_GC_ROOT(_lv_img_cache_array) = lv_mem_alloc(sizeof(lv_img_cache_entry_t) * new_entry_cnt);
c944: 2724 movs r7, #36 ; 0x24
c946: 4b1d ldr r3, [pc, #116] ; (c9bc <lv_img_cache_set_size+0x90>)
c948: fb07 f005 mul.w r0, r7, r5
c94c: 4798 blx r3
LV_ASSERT_MEM(LV_GC_ROOT(_lv_img_cache_array));
c94e: 4b1c ldr r3, [pc, #112] ; (c9c0 <lv_img_cache_set_size+0x94>)
LV_GC_ROOT(_lv_img_cache_array) = lv_mem_alloc(sizeof(lv_img_cache_entry_t) * new_entry_cnt);
c950: 6020 str r0, [r4, #0]
LV_ASSERT_MEM(LV_GC_ROOT(_lv_img_cache_array));
c952: 4798 blx r3
c954: 4606 mov r6, r0
c956: b960 cbnz r0, c972 <lv_img_cache_set_size+0x46>
c958: 4b1a ldr r3, [pc, #104] ; (c9c4 <lv_img_cache_set_size+0x98>)
c95a: 491b ldr r1, [pc, #108] ; (c9c8 <lv_img_cache_set_size+0x9c>)
c95c: 9300 str r3, [sp, #0]
c95e: 22a8 movs r2, #168 ; 0xa8
c960: 2003 movs r0, #3
c962: 4d1a ldr r5, [pc, #104] ; (c9cc <lv_img_cache_set_size+0xa0>)
c964: 47a8 blx r5
c966: 6822 ldr r2, [r4, #0]
c968: 4819 ldr r0, [pc, #100] ; (c9d0 <lv_img_cache_set_size+0xa4>)
c96a: 491a ldr r1, [pc, #104] ; (c9d4 <lv_img_cache_set_size+0xa8>)
c96c: 4633 mov r3, r6
c96e: 4788 blx r1
c970: e7fe b.n c970 <lv_img_cache_set_size+0x44>
if(LV_GC_ROOT(_lv_img_cache_array) == NULL) {
c972: 6823 ldr r3, [r4, #0]
c974: f8df 8060 ldr.w r8, [pc, #96] ; c9d8 <lv_img_cache_set_size+0xac>
c978: b923 cbnz r3, c984 <lv_img_cache_set_size+0x58>
entry_cnt = 0;
c97a: f8a8 3000 strh.w r3, [r8]
}
c97e: b003 add sp, #12
c980: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
_lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
c984: f8df 9054 ldr.w r9, [pc, #84] ; c9dc <lv_img_cache_set_size+0xb0>
entry_cnt = new_entry_cnt;
c988: f8a8 5000 strh.w r5, [r8]
for(i = 0; i < entry_cnt; i++) {
c98c: 2500 movs r5, #0
c98e: f8b8 2000 ldrh.w r2, [r8]
c992: b2ab uxth r3, r5
c994: 429a cmp r2, r3
c996: d9f2 bls.n c97e <lv_img_cache_set_size+0x52>
_lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i].dec_dsc, sizeof(lv_img_decoder_dsc_t));
c998: 6820 ldr r0, [r4, #0]
c99a: b2ae uxth r6, r5
c99c: 437e muls r6, r7
c99e: 2120 movs r1, #32
c9a0: 4430 add r0, r6
c9a2: 47c8 blx r9
_lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i], sizeof(lv_img_cache_entry_t));
c9a4: 6820 ldr r0, [r4, #0]
c9a6: 2124 movs r1, #36 ; 0x24
c9a8: 4430 add r0, r6
c9aa: 47c8 blx r9
for(i = 0; i < entry_cnt; i++) {
c9ac: 3501 adds r5, #1
c9ae: e7ee b.n c98e <lv_img_cache_set_size+0x62>
c9b0: 2000363c .word 0x2000363c
c9b4: 0000c8c9 .word 0x0000c8c9
c9b8: 0000ed75 .word 0x0000ed75
c9bc: 0000ecbd .word 0x0000ecbd
c9c0: 00001a65 .word 0x00001a65
c9c4: 000279a5 .word 0x000279a5
c9c8: 000278aa .word 0x000278aa
c9cc: 0000eb79 .word 0x0000eb79
c9d0: 00026842 .word 0x00026842
c9d4: 00001a6d .word 0x00001a6d
c9d8: 200035a0 .word 0x200035a0
c9dc: 0000f2a9 .word 0x0000f2a9
0000c9e0 <lv_img_decoder_built_in_info>:
* @param src the image source: pointer to an `lv_img_dsc_t` variable, a file path or a symbol
* @param header store the image data here
* @return LV_RES_OK: the info is successfully stored in `header`; LV_RES_INV: unknown format or other error.
*/
lv_res_t lv_img_decoder_built_in_info(lv_img_decoder_t * decoder, const void * src, lv_img_header_t * header)
{
c9e0: b570 push {r4, r5, r6, lr}
(void)decoder; /*Unused*/
lv_img_src_t src_type = lv_img_src_get_type(src);
c9e2: 4b2c ldr r3, [pc, #176] ; (ca94 <lv_img_decoder_built_in_info+0xb4>)
{
c9e4: b086 sub sp, #24
lv_img_src_t src_type = lv_img_src_get_type(src);
c9e6: 4608 mov r0, r1
{
c9e8: 460e mov r6, r1
c9ea: 4615 mov r5, r2
lv_img_src_t src_type = lv_img_src_get_type(src);
c9ec: 4798 blx r3
if(src_type == LV_IMG_SRC_VARIABLE) {
c9ee: 4604 mov r4, r0
c9f0: b9d8 cbnz r0, ca2a <lv_img_decoder_built_in_info+0x4a>
lv_img_cf_t cf = ((lv_img_dsc_t *)src)->header.cf;
c9f2: 7833 ldrb r3, [r6, #0]
c9f4: f3c3 0304 ubfx r3, r3, #0, #5
if(cf < CF_BUILT_IN_FIRST || cf > CF_BUILT_IN_LAST) return LV_RES_INV;
c9f8: 3b04 subs r3, #4
c9fa: b2db uxtb r3, r3
c9fc: 2b0a cmp r3, #10
c9fe: d811 bhi.n ca24 <lv_img_decoder_built_in_info+0x44>
header->w = ((lv_img_dsc_t *)src)->header.w;
header->h = ((lv_img_dsc_t *)src)->header.h;
ca00: 8873 ldrh r3, [r6, #2]
ca02: 886a ldrh r2, [r5, #2]
lv_img_cf_t cf = ((lv_img_dsc_t *)src)->header.cf;
ca04: 6831 ldr r1, [r6, #0]
header->h = ((lv_img_dsc_t *)src)->header.h;
ca06: f3c3 134a ubfx r3, r3, #5, #11
ca0a: f363 124f bfi r2, r3, #5, #11
ca0e: 806a strh r2, [r5, #2]
header->cf = ((lv_img_dsc_t *)src)->header.cf;
ca10: 682b ldr r3, [r5, #0]
ca12: 4a21 ldr r2, [pc, #132] ; (ca98 <lv_img_decoder_built_in_info+0xb8>)
ca14: f023 131f bic.w r3, r3, #2031647 ; 0x1f001f
ca18: f423 437c bic.w r3, r3, #64512 ; 0xfc00
ca1c: 400a ands r2, r1
* function*/
header->w = 1;
header->h = 1;
/* Symbols always have transparent parts. Important because of cover check in the design
* function. The actual value doesn't matter because lv_draw_label will draw it*/
header->cf = LV_IMG_CF_ALPHA_1BIT;
ca1e: 4313 orrs r3, r2
ca20: 602b str r3, [r5, #0]
}
else {
LV_LOG_WARN("Image get info found unknown src type");
return LV_RES_INV;
}
return LV_RES_OK;
ca22: 2401 movs r4, #1
}
ca24: 4620 mov r0, r4
ca26: b006 add sp, #24
ca28: bd70 pop {r4, r5, r6, pc}
else if(src_type == LV_IMG_SRC_FILE) {
ca2a: 2801 cmp r0, #1
ca2c: d125 bne.n ca7a <lv_img_decoder_built_in_info+0x9a>
res = lv_fs_open(&file, src, LV_FS_MODE_RD);
ca2e: 4b1b ldr r3, [pc, #108] ; (ca9c <lv_img_decoder_built_in_info+0xbc>)
ca30: 2202 movs r2, #2
ca32: 4631 mov r1, r6
ca34: a804 add r0, sp, #16
ca36: 4798 blx r3
if(res == LV_FS_RES_OK) {
ca38: b9b8 cbnz r0, ca6a <lv_img_decoder_built_in_info+0x8a>
res = lv_fs_read(&file, header, sizeof(lv_img_header_t), &rn);
ca3a: 4e19 ldr r6, [pc, #100] ; (caa0 <lv_img_decoder_built_in_info+0xc0>)
ca3c: ab03 add r3, sp, #12
ca3e: 2204 movs r2, #4
ca40: 4629 mov r1, r5
ca42: a804 add r0, sp, #16
ca44: 47b0 blx r6
lv_fs_close(&file);
ca46: 4b17 ldr r3, [pc, #92] ; (caa4 <lv_img_decoder_built_in_info+0xc4>)
res = lv_fs_read(&file, header, sizeof(lv_img_header_t), &rn);
ca48: 4606 mov r6, r0
lv_fs_close(&file);
ca4a: a804 add r0, sp, #16
ca4c: 4798 blx r3
if(res != LV_FS_RES_OK || rn != sizeof(lv_img_header_t)) {
ca4e: b916 cbnz r6, ca56 <lv_img_decoder_built_in_info+0x76>
ca50: 9b03 ldr r3, [sp, #12]
ca52: 2b04 cmp r3, #4
ca54: d009 beq.n ca6a <lv_img_decoder_built_in_info+0x8a>
LV_LOG_WARN("Image get info get read file header");
ca56: 4b14 ldr r3, [pc, #80] ; (caa8 <lv_img_decoder_built_in_info+0xc8>)
ca58: 9300 str r3, [sp, #0]
ca5a: 4b14 ldr r3, [pc, #80] ; (caac <lv_img_decoder_built_in_info+0xcc>)
ca5c: f240 1221 movw r2, #289 ; 0x121
LV_LOG_WARN("Image get info found unknown src type");
ca60: 4913 ldr r1, [pc, #76] ; (cab0 <lv_img_decoder_built_in_info+0xd0>)
ca62: 4c14 ldr r4, [pc, #80] ; (cab4 <lv_img_decoder_built_in_info+0xd4>)
ca64: 2002 movs r0, #2
ca66: 47a0 blx r4
ca68: e005 b.n ca76 <lv_img_decoder_built_in_info+0x96>
if(header->cf < CF_BUILT_IN_FIRST || header->cf > CF_BUILT_IN_LAST) return LV_RES_INV;
ca6a: 782b ldrb r3, [r5, #0]
ca6c: 331c adds r3, #28
ca6e: f003 031f and.w r3, r3, #31
ca72: 2b0a cmp r3, #10
ca74: d9d6 bls.n ca24 <lv_img_decoder_built_in_info+0x44>
return LV_RES_INV;
ca76: 2400 movs r4, #0
ca78: e7d4 b.n ca24 <lv_img_decoder_built_in_info+0x44>
else if(src_type == LV_IMG_SRC_SYMBOL) {
ca7a: 2802 cmp r0, #2
ca7c: d104 bne.n ca88 <lv_img_decoder_built_in_info+0xa8>
header->cf = LV_IMG_CF_ALPHA_1BIT;
ca7e: 682b ldr r3, [r5, #0]
ca80: f403 7278 and.w r2, r3, #992 ; 0x3e0
ca84: 4b0c ldr r3, [pc, #48] ; (cab8 <lv_img_decoder_built_in_info+0xd8>)
ca86: e7ca b.n ca1e <lv_img_decoder_built_in_info+0x3e>
LV_LOG_WARN("Image get info found unknown src type");
ca88: 4b0c ldr r3, [pc, #48] ; (cabc <lv_img_decoder_built_in_info+0xdc>)
ca8a: 9300 str r3, [sp, #0]
ca8c: f44f 729a mov.w r2, #308 ; 0x134
ca90: 4b06 ldr r3, [pc, #24] ; (caac <lv_img_decoder_built_in_info+0xcc>)
ca92: e7e5 b.n ca60 <lv_img_decoder_built_in_info+0x80>
ca94: 00007a89 .word 0x00007a89
ca98: 001ffc1f .word 0x001ffc1f
ca9c: 0000e725 .word 0x0000e725
caa0: 0000e69d .word 0x0000e69d
caa4: 0000e66d .word 0x0000e66d
caa8: 000279f2 .word 0x000279f2
caac: 00027b60 .word 0x00027b60
cab0: 000279bb .word 0x000279bb
cab4: 0000eb79 .word 0x0000eb79
cab8: 0020040b .word 0x0020040b
cabc: 00027a16 .word 0x00027a16
0000cac0 <lv_img_decoder_built_in_close>:
* Close the pending decoding. Free resources etc.
* @param decoder pointer to the decoder the function associated with
* @param dsc pointer to decoder descriptor
*/
void lv_img_decoder_built_in_close(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * dsc)
{
cac0: b570 push {r4, r5, r6, lr}
(void)decoder; /*Unused*/
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
cac2: 69cc ldr r4, [r1, #28]
{
cac4: 460d mov r5, r1
if(user_data) {
cac6: b184 cbz r4, caea <lv_img_decoder_built_in_close+0x2a>
#if LV_USE_FILESYSTEM
if(user_data->f) {
cac8: 6820 ldr r0, [r4, #0]
caca: 4e08 ldr r6, [pc, #32] ; (caec <lv_img_decoder_built_in_close+0x2c>)
cacc: b118 cbz r0, cad6 <lv_img_decoder_built_in_close+0x16>
lv_fs_close(user_data->f);
cace: 4b08 ldr r3, [pc, #32] ; (caf0 <lv_img_decoder_built_in_close+0x30>)
cad0: 4798 blx r3
lv_mem_free(user_data->f);
cad2: 6820 ldr r0, [r4, #0]
cad4: 47b0 blx r6
}
#endif
if(user_data->palette) lv_mem_free(user_data->palette);
cad6: 6860 ldr r0, [r4, #4]
cad8: b100 cbz r0, cadc <lv_img_decoder_built_in_close+0x1c>
cada: 47b0 blx r6
if(user_data->opa) lv_mem_free(user_data->opa);
cadc: 68a0 ldr r0, [r4, #8]
cade: b100 cbz r0, cae2 <lv_img_decoder_built_in_close+0x22>
cae0: 47b0 blx r6
lv_mem_free(user_data);
cae2: 4620 mov r0, r4
cae4: 47b0 blx r6
dsc->user_data = NULL;
cae6: 2300 movs r3, #0
cae8: 61eb str r3, [r5, #28]
}
}
caea: bd70 pop {r4, r5, r6, pc}
caec: 0000ed75 .word 0x0000ed75
caf0: 0000e66d .word 0x0000e66d
0000caf4 <lv_img_decoder_built_in_read_line>:
{
caf4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
caf8: 7b08 ldrb r0, [r1, #12]
{
cafa: b08d sub sp, #52 ; 0x34
cafc: 4698 mov r8, r3
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
cafe: f000 031e and.w r3, r0, #30
cb02: 2b04 cmp r3, #4
{
cb04: f9bd a058 ldrsh.w sl, [sp, #88] ; 0x58
cb08: 9e17 ldr r6, [sp, #92] ; 0x5c
cb0a: 460d mov r5, r1
cb0c: 4614 mov r4, r2
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
cb0e: d003 beq.n cb18 <lv_img_decoder_built_in_read_line+0x24>
dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
cb10: f000 031f and.w r3, r0, #31
if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA ||
cb14: 2b06 cmp r3, #6
cb16: d13e bne.n cb96 <lv_img_decoder_built_in_read_line+0xa2>
if(dsc->src_type == LV_IMG_SRC_FILE) {
cb18: f895 900a ldrb.w r9, [r5, #10]
cb1c: f1b9 0f01 cmp.w r9, #1
cb20: d136 bne.n cb90 <lv_img_decoder_built_in_read_line+0x9c>
lv_coord_t len, uint8_t * buf)
{
#if LV_USE_FILESYSTEM
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
lv_fs_res_t res;
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
cb22: 4baf ldr r3, [pc, #700] ; (cde0 <lv_img_decoder_built_in_read_line+0x2ec>)
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
cb24: f8d5 b01c ldr.w fp, [r5, #28]
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
cb28: f000 001f and.w r0, r0, #31
cb2c: 4798 blx r3
uint32_t pos = ((y * dsc->header.w + x) * px_size) >> 3;
cb2e: 68e9 ldr r1, [r5, #12]
pos += 4; /*Skip the header*/
res = lv_fs_seek(user_data->f, pos);
cb30: 4bac ldr r3, [pc, #688] ; (cde4 <lv_img_decoder_built_in_read_line+0x2f0>)
uint32_t pos = ((y * dsc->header.w + x) * px_size) >> 3;
cb32: f3c1 218a ubfx r1, r1, #10, #11
cb36: fb18 4101 smlabb r1, r8, r1, r4
cb3a: 4341 muls r1, r0
cb3c: 10c9 asrs r1, r1, #3
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
cb3e: 4607 mov r7, r0
res = lv_fs_seek(user_data->f, pos);
cb40: 3104 adds r1, #4
cb42: f8db 0000 ldr.w r0, [fp]
cb46: 4798 blx r3
if(res != LV_FS_RES_OK) {
cb48: b148 cbz r0, cb5e <lv_img_decoder_built_in_read_line+0x6a>
LV_LOG_WARN("Built-in image decoder seek failed");
cb4a: 4ba7 ldr r3, [pc, #668] ; (cde8 <lv_img_decoder_built_in_read_line+0x2f4>)
cb4c: 9300 str r3, [sp, #0]
cb4e: 4ba7 ldr r3, [pc, #668] ; (cdec <lv_img_decoder_built_in_read_line+0x2f8>)
cb50: f240 222e movw r2, #558 ; 0x22e
LV_LOG_WARN("Built-in image decoder read not supports the color format");
cb54: 49a6 ldr r1, [pc, #664] ; (cdf0 <lv_img_decoder_built_in_read_line+0x2fc>)
cb56: 4ca7 ldr r4, [pc, #668] ; (cdf4 <lv_img_decoder_built_in_read_line+0x300>)
cb58: 2002 movs r0, #2
cb5a: 47a0 blx r4
return LV_RES_INV;
cb5c: e018 b.n cb90 <lv_img_decoder_built_in_read_line+0x9c>
return LV_RES_INV;
}
uint32_t btr = len * (px_size >> 3);
cb5e: f3c7 07c7 ubfx r7, r7, #3, #8
cb62: fb17 f70a smulbb r7, r7, sl
uint32_t br = 0;
cb66: 9008 str r0, [sp, #32]
lv_fs_read(user_data->f, buf, btr, &br);
cb68: ab08 add r3, sp, #32
cb6a: f8db 0000 ldr.w r0, [fp]
cb6e: 4da2 ldr r5, [pc, #648] ; (cdf8 <lv_img_decoder_built_in_read_line+0x304>)
cb70: 463a mov r2, r7
cb72: 4631 mov r1, r6
cb74: 47a8 blx r5
if(res != LV_FS_RES_OK || btr != br) {
cb76: 9b08 ldr r3, [sp, #32]
cb78: 429f cmp r7, r3
cb7a: f000 80db beq.w cd34 <lv_img_decoder_built_in_read_line+0x240>
LV_LOG_WARN("Built-in image decoder read failed");
cb7e: 4b9f ldr r3, [pc, #636] ; (cdfc <lv_img_decoder_built_in_read_line+0x308>)
cb80: 9300 str r3, [sp, #0]
cb82: 499b ldr r1, [pc, #620] ; (cdf0 <lv_img_decoder_built_in_read_line+0x2fc>)
cb84: 4b99 ldr r3, [pc, #612] ; (cdec <lv_img_decoder_built_in_read_line+0x2f8>)
cb86: 4d9b ldr r5, [pc, #620] ; (cdf4 <lv_img_decoder_built_in_read_line+0x300>)
cb88: f240 2235 movw r2, #565 ; 0x235
cb8c: 2002 movs r0, #2
cb8e: 47a8 blx r5
lv_res_t res = LV_RES_INV;
cb90: f04f 0900 mov.w r9, #0
cb94: e0ce b.n cd34 <lv_img_decoder_built_in_read_line+0x240>
else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT ||
cb96: f1a3 020b sub.w r2, r3, #11
cb9a: 2a03 cmp r2, #3
cb9c: f200 80ce bhi.w cd3c <lv_img_decoder_built_in_read_line+0x248>
static lv_res_t lv_img_decoder_built_in_line_alpha(lv_img_decoder_dsc_t * dsc, lv_coord_t x, lv_coord_t y,
lv_coord_t len, uint8_t * buf)
{
#if LV_IMG_CF_ALPHA
const lv_opa_t alpha1_opa_table[2] = {0, 255}; /*Opacity mapping with bpp = 1 (Just for compatibility)*/
cba0: f44f 437f mov.w r3, #65280 ; 0xff00
cba4: f8ad 3018 strh.w r3, [sp, #24]
const lv_opa_t alpha2_opa_table[4] = {0, 85, 170, 255}; /*Opacity mapping with bpp = 2*/
cba8: f5a3 03ad sub.w r3, r3, #5668864 ; 0x568000
cbac: f5a3 5328 sub.w r3, r3, #10752 ; 0x2a00
cbb0: 9307 str r3, [sp, #28]
const lv_opa_t alpha4_opa_table[16] = {0, 17, 34, 51, /*Opacity mapping with bpp = 4*/
cbb2: 4b93 ldr r3, [pc, #588] ; (ce00 <lv_img_decoder_built_in_read_line+0x30c>)
cbb4: aa08 add r2, sp, #32
cbb6: f103 0e10 add.w lr, r3, #16
cbba: 4617 mov r7, r2
cbbc: 6818 ldr r0, [r3, #0]
cbbe: 6859 ldr r1, [r3, #4]
cbc0: 4694 mov ip, r2
cbc2: e8ac 0003 stmia.w ip!, {r0, r1}
cbc6: 3308 adds r3, #8
cbc8: 4573 cmp r3, lr
cbca: 4662 mov r2, ip
cbcc: d1f6 bne.n cbbc <lv_img_decoder_built_in_read_line+0xc8>
68, 85, 102, 119, 136, 153, 170, 187, 204, 221, 238, 255
};
/*Simply fill the buffer with the color. Later only the alpha value will be modified.*/
lv_color_t bg_color = dsc->color;
cbce: 8929 ldrh r1, [r5, #8]
lv_coord_t i;
for(i = 0; i < len; i++) {
cbd0: 4633 mov r3, r6
#if LV_COLOR_DEPTH == 8 || LV_COLOR_DEPTH == 1
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = bg_color.full;
#elif LV_COLOR_DEPTH == 16
/*Because of Alpha byte 16 bit color can start on odd address which can cause crash*/
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = bg_color.full & 0xFF;
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (bg_color.full >> 8) & 0xFF;
cbd2: ea4f 2c11 mov.w ip, r1, lsr #8
for(i = 0; i < len; i++) {
cbd6: 2200 movs r2, #0
cbd8: b210 sxth r0, r2
cbda: 4582 cmp sl, r0
cbdc: f103 0303 add.w r3, r3, #3
cbe0: dc14 bgt.n cc0c <lv_img_decoder_built_in_read_line+0x118>
#error "Invalid LV_COLOR_DEPTH. Check it in lv_conf.h"
#endif
}
const lv_opa_t * opa_table = NULL;
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
cbe2: 7b28 ldrb r0, [r5, #12]
cbe4: 4b7e ldr r3, [pc, #504] ; (cde0 <lv_img_decoder_built_in_read_line+0x2ec>)
cbe6: f000 001f and.w r0, r0, #31
cbea: 4798 blx r3
uint16_t mask = (1 << px_size) - 1; /*E.g. px_size = 2; mask = 0x03*/
cbec: 2301 movs r3, #1
cbee: 4083 lsls r3, r0
cbf0: 3b01 subs r3, #1
cbf2: b29b uxth r3, r3
cbf4: 9304 str r3, [sp, #16]
lv_coord_t w = 0;
uint32_t ofs = 0;
int8_t pos = 0;
switch(dsc->header.cf) {
cbf6: 7b2b ldrb r3, [r5, #12]
cbf8: f003 031f and.w r3, r3, #31
cbfc: 3b0b subs r3, #11
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
cbfe: 4681 mov r9, r0
switch(dsc->header.cf) {
cc00: 2b03 cmp r3, #3
cc02: d85f bhi.n ccc4 <lv_img_decoder_built_in_read_line+0x1d0>
cc04: e8df f003 tbb [pc, r3]
cc08: 55422e08 .word 0x55422e08
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = bg_color.full & 0xFF;
cc0c: f803 1c03 strb.w r1, [r3, #-3]
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (bg_color.full >> 8) & 0xFF;
cc10: f803 cc02 strb.w ip, [r3, #-2]
for(i = 0; i < len; i++) {
cc14: 3201 adds r2, #1
cc16: e7df b.n cbd8 <lv_img_decoder_built_in_read_line+0xe4>
case LV_IMG_CF_ALPHA_1BIT:
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
cc18: 68eb ldr r3, [r5, #12]
cc1a: f3c3 3247 ubfx r2, r3, #13, #8
if(dsc->header.w & 0x7) w++;
cc1e: f413 5fe0 tst.w r3, #7168 ; 0x1c00
ofs += w * y + (x >> 3); /*First pixel*/
cc22: ea4f 01e4 mov.w r1, r4, asr #3
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
cc26: bf0c ite eq
cc28: fa0f fb82 sxtheq.w fp, r2
if(dsc->header.w & 0x7) w++;
cc2c: f102 0b01 addne.w fp, r2, #1
pos = 7 - (x & 0x7);
cc30: 43e4 mvns r4, r4
ofs += w * y + (x >> 3); /*First pixel*/
cc32: fb0b 1108 mla r1, fp, r8, r1
pos = 7 - (x & 0x7);
cc36: f004 0407 and.w r4, r4, #7
opa_table = alpha1_opa_table;
cc3a: af06 add r7, sp, #24
pos = 0;
break;
}
#if LV_USE_FILESYSTEM
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
cc3c: 69eb ldr r3, [r5, #28]
cc3e: 9303 str r3, [sp, #12]
uint8_t * fs_buf = _lv_mem_buf_get(w);
cc40: 4658 mov r0, fp
cc42: 4b70 ldr r3, [pc, #448] ; (ce04 <lv_img_decoder_built_in_read_line+0x310>)
cc44: 9105 str r1, [sp, #20]
cc46: 4798 blx r3
#endif
const uint8_t * data_tmp = NULL;
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
cc48: 7aab ldrb r3, [r5, #10]
cc4a: 9905 ldr r1, [sp, #20]
uint8_t * fs_buf = _lv_mem_buf_get(w);
cc4c: 4680 mov r8, r0
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
cc4e: 2b00 cmp r3, #0
cc50: d13c bne.n cccc <lv_img_decoder_built_in_read_line+0x1d8>
const lv_img_dsc_t * img_dsc = dsc->src;
data_tmp = img_dsc->data + ofs;
cc52: 686b ldr r3, [r5, #4]
cc54: 689a ldr r2, [r3, #8]
cc56: 440a add r2, r1
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
dsc->header.cf == LV_IMG_CF_ALPHA_8BIT ? val_act : opa_table[val_act];
pos -= px_size;
if(pos < 0) {
pos = 8 - px_size;
cc58: f1c9 0008 rsb r0, r9, #8
data_tmp = fs_buf;
cc5c: 2100 movs r1, #0
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
cc5e: 3602 adds r6, #2
pos = 8 - px_size;
cc60: b240 sxtb r0, r0
cc62: e05f b.n cd24 <lv_img_decoder_built_in_read_line+0x230>
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
cc64: 68eb ldr r3, [r5, #12]
ofs += w * y + (x >> 2); /*First pixel*/
cc66: 10a1 asrs r1, r4, #2
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
cc68: f3c3 3208 ubfx r2, r3, #12, #9
if(dsc->header.w & 0x3) w++;
cc6c: f413 6f40 tst.w r3, #3072 ; 0xc00
pos = 6 - ((x & 0x3) * 2);
cc70: ea6f 0404 mvn.w r4, r4
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
cc74: bf0c ite eq
cc76: fa0f fb82 sxtheq.w fp, r2
if(dsc->header.w & 0x3) w++;
cc7a: f102 0b01 addne.w fp, r2, #1
pos = 6 - ((x & 0x3) * 2);
cc7e: f004 0403 and.w r4, r4, #3
ofs += w * y + (x >> 2); /*First pixel*/
cc82: fb0b 1108 mla r1, fp, r8, r1
pos = 6 - ((x & 0x3) * 2);
cc86: 0064 lsls r4, r4, #1
opa_table = alpha2_opa_table;
cc88: af07 add r7, sp, #28
break;
cc8a: e7d7 b.n cc3c <lv_img_decoder_built_in_read_line+0x148>
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
cc8c: 68eb ldr r3, [r5, #12]
if(dsc->header.w & 0x1) w++;
cc8e: 0559 lsls r1, r3, #21
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
cc90: f3c3 22c9 ubfx r2, r3, #11, #10
ofs += w * y + (x >> 1); /*First pixel*/
cc94: ea4f 0164 mov.w r1, r4, asr #1
pos = 4 - ((x & 0x1) * 4);
cc98: ea6f 0404 mvn.w r4, r4
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
cc9c: bf54 ite pl
cc9e: fa0f fb82 sxthpl.w fp, r2
if(dsc->header.w & 0x1) w++;
cca2: f102 0b01 addmi.w fp, r2, #1
pos = 4 - ((x & 0x1) * 4);
cca6: f004 0401 and.w r4, r4, #1
ofs += w * y + (x >> 1); /*First pixel*/
ccaa: fb0b 1108 mla r1, fp, r8, r1
pos = 4 - ((x & 0x1) * 4);
ccae: 00a4 lsls r4, r4, #2
ccb0: e7c4 b.n cc3c <lv_img_decoder_built_in_read_line+0x148>
w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/
ccb2: 68ea ldr r2, [r5, #12]
ccb4: f3c2 218a ubfx r1, r2, #10, #11
ccb8: 468b mov fp, r1
ofs += w * y + x; /*First pixel*/
ccba: fb18 4101 smlabb r1, r8, r1, r4
pos = 0;
ccbe: 2400 movs r4, #0
switch(dsc->header.cf) {
ccc0: 4627 mov r7, r4
ccc2: e7bb b.n cc3c <lv_img_decoder_built_in_read_line+0x148>
ccc4: 2400 movs r4, #0
ccc6: 4621 mov r1, r4
ccc8: 46a3 mov fp, r4
ccca: e7f9 b.n ccc0 <lv_img_decoder_built_in_read_line+0x1cc>
lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/
cccc: 9b03 ldr r3, [sp, #12]
ccce: 3104 adds r1, #4
ccd0: 6818 ldr r0, [r3, #0]
ccd2: 4b44 ldr r3, [pc, #272] ; (cde4 <lv_img_decoder_built_in_read_line+0x2f0>)
ccd4: 4798 blx r3
lv_fs_read(user_data->f, fs_buf, w, NULL);
ccd6: 9803 ldr r0, [sp, #12]
ccd8: 465a mov r2, fp
ccda: 6800 ldr r0, [r0, #0]
ccdc: f8df b118 ldr.w fp, [pc, #280] ; cdf8 <lv_img_decoder_built_in_read_line+0x304>
cce0: 2300 movs r3, #0
cce2: 4641 mov r1, r8
cce4: 47d8 blx fp
data_tmp = fs_buf;
cce6: 4642 mov r2, r8
cce8: e7b6 b.n cc58 <lv_img_decoder_built_in_read_line+0x164>
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
ccea: 9b04 ldr r3, [sp, #16]
ccec: f892 e000 ldrb.w lr, [r2]
ccf0: fa03 fc04 lsl.w ip, r3, r4
ccf4: ea0e 030c and.w r3, lr, ip
dsc->header.cf == LV_IMG_CF_ALPHA_8BIT ? val_act : opa_table[val_act];
ccf8: f895 c00c ldrb.w ip, [r5, #12]
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
ccfc: 4123 asrs r3, r4
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
ccfe: f00c 0c1f and.w ip, ip, #31
cd02: f1bc 0f0e cmp.w ip, #14
pos -= px_size;
cd06: eba4 0409 sub.w r4, r4, r9
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
cd0a: eb01 0c41 add.w ip, r1, r1, lsl #1
cd0e: bf14 ite ne
cd10: 5cfb ldrbne r3, [r7, r3]
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
cd12: b2db uxtbeq r3, r3
pos -= px_size;
cd14: b264 sxtb r4, r4
if(pos < 0) {
cd16: 2c00 cmp r4, #0
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] =
cd18: f806 300c strb.w r3, [r6, ip]
pos = 8 - px_size;
cd1c: bfbc itt lt
cd1e: 4604 movlt r4, r0
data_tmp++;
cd20: 3201 addlt r2, #1
for(i = 0; i < len; i++) {
cd22: 3101 adds r1, #1
cd24: b20b sxth r3, r1
cd26: 459a cmp sl, r3
cd28: dcdf bgt.n ccea <lv_img_decoder_built_in_read_line+0x1f6>
pos = 8 - px_size;
data_tmp++;
}
}
#if LV_USE_FILESYSTEM
_lv_mem_buf_release(fs_buf);
cd2a: 4b37 ldr r3, [pc, #220] ; (ce08 <lv_img_decoder_built_in_read_line+0x314>)
cd2c: 4640 mov r0, r8
cd2e: 4798 blx r3
res = lv_img_decoder_built_in_line_indexed(dsc, x, y, len, buf);
cd30: f04f 0901 mov.w r9, #1
}
cd34: 4648 mov r0, r9
cd36: b00d add sp, #52 ; 0x34
cd38: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
else if(dsc->header.cf == LV_IMG_CF_INDEXED_1BIT || dsc->header.cf == LV_IMG_CF_INDEXED_2BIT ||
cd3c: 3b07 subs r3, #7
cd3e: 2b03 cmp r3, #3
cd40: f200 80b0 bhi.w cea4 <lv_img_decoder_built_in_read_line+0x3b0>
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
cd44: 4b26 ldr r3, [pc, #152] ; (cde0 <lv_img_decoder_built_in_read_line+0x2ec>)
cd46: f000 001f and.w r0, r0, #31
cd4a: 4798 blx r3
uint16_t mask = (1 << px_size) - 1; /*E.g. px_size = 2; mask = 0x03*/
cd4c: 2701 movs r7, #1
cd4e: 4087 lsls r7, r0
cd50: 3f01 subs r7, #1
cd52: b2bb uxth r3, r7
cd54: 9303 str r3, [sp, #12]
switch(dsc->header.cf) {
cd56: 7b2b ldrb r3, [r5, #12]
cd58: f003 031f and.w r3, r3, #31
cd5c: 3b07 subs r3, #7
uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf);
cd5e: 4681 mov r9, r0
switch(dsc->header.cf) {
cd60: 2b03 cmp r3, #3
cd62: d870 bhi.n ce46 <lv_img_decoder_built_in_read_line+0x352>
cd64: e8df f003 tbb [pc, r3]
cd68: 65522702 .word 0x65522702
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
cd6c: 68eb ldr r3, [r5, #12]
cd6e: f3c3 3247 ubfx r2, r3, #13, #8
if(dsc->header.w & 0x7) w++;
cd72: f413 5fe0 tst.w r3, #7168 ; 0x1c00
w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/
cd76: bf08 it eq
cd78: b217 sxtheq r7, r2
ofs += w * y + (x >> 3); /*First pixel*/
cd7a: ea4f 03e4 mov.w r3, r4, asr #3
if(dsc->header.w & 0x7) w++;
cd7e: bf18 it ne
cd80: 1c57 addne r7, r2, #1
ofs += w * y + (x >> 3); /*First pixel*/
cd82: fb07 3308 mla r3, r7, r8, r3
pos = 7 - (x & 0x7);
cd86: 43e4 mvns r4, r4
ofs += 8; /*Skip the palette*/
cd88: f103 0108 add.w r1, r3, #8
pos = 7 - (x & 0x7);
cd8c: f004 0407 and.w r4, r4, #7
uint8_t * fs_buf = _lv_mem_buf_get(w);
cd90: 4b1c ldr r3, [pc, #112] ; (ce04 <lv_img_decoder_built_in_read_line+0x310>)
cd92: 9104 str r1, [sp, #16]
cd94: 4638 mov r0, r7
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
cd96: f8d5 b01c ldr.w fp, [r5, #28]
uint8_t * fs_buf = _lv_mem_buf_get(w);
cd9a: 4798 blx r3
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
cd9c: 7aab ldrb r3, [r5, #10]
cd9e: 9904 ldr r1, [sp, #16]
uint8_t * fs_buf = _lv_mem_buf_get(w);
cda0: 4680 mov r8, r0
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
cda2: 2b00 cmp r3, #0
cda4: d153 bne.n ce4e <lv_img_decoder_built_in_read_line+0x35a>
data_tmp = img_dsc->data + ofs;
cda6: 686b ldr r3, [r5, #4]
cda8: 689b ldr r3, [r3, #8]
cdaa: 440b add r3, r1
pos = 8 - px_size;
cdac: f1c9 0508 rsb r5, r9, #8
data_tmp = fs_buf;
cdb0: 2000 movs r0, #0
pos = 8 - px_size;
cdb2: b26d sxtb r5, r5
cdb4: e072 b.n ce9c <lv_img_decoder_built_in_read_line+0x3a8>
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
cdb6: 68eb ldr r3, [r5, #12]
cdb8: f3c3 3208 ubfx r2, r3, #12, #9
if(dsc->header.w & 0x3) w++;
cdbc: f413 6f40 tst.w r3, #3072 ; 0xc00
w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/
cdc0: bf08 it eq
cdc2: b217 sxtheq r7, r2
ofs += w * y + (x >> 2); /*First pixel*/
cdc4: ea4f 03a4 mov.w r3, r4, asr #2
if(dsc->header.w & 0x3) w++;
cdc8: bf18 it ne
cdca: 1c57 addne r7, r2, #1
pos = 6 - ((x & 0x3) * 2);
cdcc: 43e4 mvns r4, r4
ofs += w * y + (x >> 2); /*First pixel*/
cdce: fb07 3308 mla r3, r7, r8, r3
pos = 6 - ((x & 0x3) * 2);
cdd2: f004 0403 and.w r4, r4, #3
ofs += 16; /*Skip the palette*/
cdd6: f103 0110 add.w r1, r3, #16
pos = 6 - ((x & 0x3) * 2);
cdda: 0064 lsls r4, r4, #1
break;
cddc: e7d8 b.n cd90 <lv_img_decoder_built_in_read_line+0x29c>
cdde: bf00 nop
cde0: 00007805 .word 0x00007805
cde4: 0000e6d3 .word 0x0000e6d3
cde8: 00027a3c .word 0x00027a3c
cdec: 00027b7d .word 0x00027b7d
cdf0: 000279bb .word 0x000279bb
cdf4: 0000eb79 .word 0x0000eb79
cdf8: 0000e69d .word 0x0000e69d
cdfc: 00027a5f .word 0x00027a5f
ce00: 00027ba5 .word 0x00027ba5
ce04: 0000f145 .word 0x0000f145
ce08: 0000edf9 .word 0x0000edf9
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
ce0c: 68eb ldr r3, [r5, #12]
ce0e: f3c3 22c9 ubfx r2, r3, #11, #10
if(dsc->header.w & 0x1) w++;
ce12: 055b lsls r3, r3, #21
w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/
ce14: bf58 it pl
ce16: b217 sxthpl r7, r2
ofs += w * y + (x >> 1); /*First pixel*/
ce18: ea4f 0364 mov.w r3, r4, asr #1
if(dsc->header.w & 0x1) w++;
ce1c: bf48 it mi
ce1e: 1c57 addmi r7, r2, #1
pos = 4 - ((x & 0x1) * 4);
ce20: 43e4 mvns r4, r4
ofs += w * y + (x >> 1); /*First pixel*/
ce22: fb07 3308 mla r3, r7, r8, r3
pos = 4 - ((x & 0x1) * 4);
ce26: f004 0401 and.w r4, r4, #1
ofs += 64; /*Skip the palette*/
ce2a: f103 0140 add.w r1, r3, #64 ; 0x40
pos = 4 - ((x & 0x1) * 4);
ce2e: 00a4 lsls r4, r4, #2
ce30: e7ae b.n cd90 <lv_img_decoder_built_in_read_line+0x29c>
w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/
ce32: 68ef ldr r7, [r5, #12]
ce34: f3c7 238a ubfx r3, r7, #10, #11
ofs += w * y + x; /*First pixel*/
ce38: fb18 4803 smlabb r8, r8, r3, r4
w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/
ce3c: 461f mov r7, r3
ofs += 1024; /*Skip the palette*/
ce3e: f508 6180 add.w r1, r8, #1024 ; 0x400
pos = 0;
ce42: 2400 movs r4, #0
break;
ce44: e7a4 b.n cd90 <lv_img_decoder_built_in_read_line+0x29c>
switch(dsc->header.cf) {
ce46: 2100 movs r1, #0
ce48: 460c mov r4, r1
ce4a: 460f mov r7, r1
ce4c: e7a0 b.n cd90 <lv_img_decoder_built_in_read_line+0x29c>
lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/
ce4e: 4b18 ldr r3, [pc, #96] ; (ceb0 <lv_img_decoder_built_in_read_line+0x3bc>)
ce50: f8db 0000 ldr.w r0, [fp]
lv_fs_read(user_data->f, fs_buf, w, NULL);
ce54: 4d17 ldr r5, [pc, #92] ; (ceb4 <lv_img_decoder_built_in_read_line+0x3c0>)
lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/
ce56: 3104 adds r1, #4
ce58: 4798 blx r3
lv_fs_read(user_data->f, fs_buf, w, NULL);
ce5a: 2300 movs r3, #0
ce5c: f8db 0000 ldr.w r0, [fp]
ce60: 463a mov r2, r7
ce62: 4641 mov r1, r8
ce64: 47a8 blx r5
data_tmp = fs_buf;
ce66: 4643 mov r3, r8
ce68: e7a0 b.n cdac <lv_img_decoder_built_in_read_line+0x2b8>
uint8_t val_act = (*data_tmp & (mask << pos)) >> pos;
ce6a: 9903 ldr r1, [sp, #12]
ce6c: 781a ldrb r2, [r3, #0]
ce6e: 40a1 lsls r1, r4
ce70: 400a ands r2, r1
ce72: 4122 asrs r2, r4
lv_color_t color = user_data->palette[val_act];
ce74: f8db 1004 ldr.w r1, [fp, #4]
ce78: f831 1012 ldrh.w r1, [r1, r2, lsl #1]
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = color.full & 0xFF;
ce7c: 7031 strb r1, [r6, #0]
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (color.full >> 8) & 0xFF;
ce7e: 0a09 lsrs r1, r1, #8
ce80: 7071 strb r1, [r6, #1]
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = user_data->opa[val_act];
ce82: f8db 1008 ldr.w r1, [fp, #8]
pos -= px_size;
ce86: eba4 0409 sub.w r4, r4, r9
ce8a: b264 sxtb r4, r4
if(pos < 0) {
ce8c: 2c00 cmp r4, #0
buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = user_data->opa[val_act];
ce8e: 5c8a ldrb r2, [r1, r2]
ce90: 70b2 strb r2, [r6, #2]
pos = 8 - px_size;
ce92: bfbc itt lt
ce94: 462c movlt r4, r5
data_tmp++;
ce96: 3301 addlt r3, #1
for(i = 0; i < len; i++) {
ce98: 3001 adds r0, #1
ce9a: 3603 adds r6, #3
ce9c: b202 sxth r2, r0
ce9e: 4592 cmp sl, r2
cea0: dce3 bgt.n ce6a <lv_img_decoder_built_in_read_line+0x376>
cea2: e742 b.n cd2a <lv_img_decoder_built_in_read_line+0x236>
LV_LOG_WARN("Built-in image decoder read not supports the color format");
cea4: 4b04 ldr r3, [pc, #16] ; (ceb8 <lv_img_decoder_built_in_read_line+0x3c4>)
cea6: 9300 str r3, [sp, #0]
cea8: f44f 72fe mov.w r2, #508 ; 0x1fc
ceac: 4b03 ldr r3, [pc, #12] ; (cebc <lv_img_decoder_built_in_read_line+0x3c8>)
ceae: e651 b.n cb54 <lv_img_decoder_built_in_read_line+0x60>
ceb0: 0000e6d3 .word 0x0000e6d3
ceb4: 0000e69d .word 0x0000e69d
ceb8: 00027a82 .word 0x00027a82
cebc: 00027bb5 .word 0x00027bb5
0000cec0 <lv_img_decoder_built_in_open>:
{
cec0: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
cec4: 4606 mov r6, r0
if(dsc->src_type == LV_IMG_SRC_FILE) {
cec6: 7a88 ldrb r0, [r1, #10]
cec8: 2801 cmp r0, #1
{
ceca: 460c mov r4, r1
if(dsc->src_type == LV_IMG_SRC_FILE) {
cecc: d178 bne.n cfc0 <lv_img_decoder_built_in_open+0x100>
if(strcmp(lv_fs_get_ext(dsc->src), "bin")) return LV_RES_INV;
cece: 6848 ldr r0, [r1, #4]
ced0: 4b8b ldr r3, [pc, #556] ; (d100 <lv_img_decoder_built_in_open+0x240>)
ced2: 4798 blx r3
ced4: 498b ldr r1, [pc, #556] ; (d104 <lv_img_decoder_built_in_open+0x244>)
ced6: 4b8c ldr r3, [pc, #560] ; (d108 <lv_img_decoder_built_in_open+0x248>)
ced8: 4798 blx r3
ceda: 2800 cmp r0, #0
cedc: f040 80a9 bne.w d032 <lv_img_decoder_built_in_open+0x172>
lv_fs_res_t res = lv_fs_open(&f, dsc->src, LV_FS_MODE_RD);
cee0: 6861 ldr r1, [r4, #4]
cee2: 4b8a ldr r3, [pc, #552] ; (d10c <lv_img_decoder_built_in_open+0x24c>)
cee4: 2202 movs r2, #2
cee6: a802 add r0, sp, #8
cee8: 4798 blx r3
if(res != LV_FS_RES_OK) {
ceea: b138 cbz r0, cefc <lv_img_decoder_built_in_open+0x3c>
LV_LOG_WARN("Built-in image decoder can't open the file");
ceec: 4b88 ldr r3, [pc, #544] ; (d110 <lv_img_decoder_built_in_open+0x250>)
ceee: 9300 str r3, [sp, #0]
cef0: 4b88 ldr r3, [pc, #544] ; (d114 <lv_img_decoder_built_in_open+0x254>)
cef2: f44f 72a6 mov.w r2, #332 ; 0x14c
LV_LOG_WARN("Image decoder open: unknown color format")
cef6: 4988 ldr r1, [pc, #544] ; (d118 <lv_img_decoder_built_in_open+0x258>)
cef8: 2002 movs r0, #2
cefa: e022 b.n cf42 <lv_img_decoder_built_in_open+0x82>
if(dsc->user_data == NULL) {
cefc: 69e3 ldr r3, [r4, #28]
cefe: f8df 923c ldr.w r9, [pc, #572] ; d13c <lv_img_decoder_built_in_open+0x27c>
cf02: f8df 823c ldr.w r8, [pc, #572] ; d140 <lv_img_decoder_built_in_open+0x280>
cf06: bb13 cbnz r3, cf4e <lv_img_decoder_built_in_open+0x8e>
dsc->user_data = lv_mem_alloc(sizeof(lv_img_decoder_built_in_data_t));
cf08: 200c movs r0, #12
cf0a: 47c8 blx r9
cf0c: 61e0 str r0, [r4, #28]
LV_ASSERT_MEM(dsc->user_data);
cf0e: 47c0 blx r8
cf10: 4605 mov r5, r0
cf12: b968 cbnz r0, cf30 <lv_img_decoder_built_in_open+0x70>
cf14: 4b7f ldr r3, [pc, #508] ; (d114 <lv_img_decoder_built_in_open+0x254>)
cf16: 4980 ldr r1, [pc, #512] ; (d118 <lv_img_decoder_built_in_open+0x258>)
cf18: 9300 str r3, [sp, #0]
cf1a: f240 1253 movw r2, #339 ; 0x153
cf1e: 2003 movs r0, #3
cf20: 4e7e ldr r6, [pc, #504] ; (d11c <lv_img_decoder_built_in_open+0x25c>)
cf22: 47b0 blx r6
cf24: 69e2 ldr r2, [r4, #28]
cf26: 487e ldr r0, [pc, #504] ; (d120 <lv_img_decoder_built_in_open+0x260>)
cf28: 497e ldr r1, [pc, #504] ; (d124 <lv_img_decoder_built_in_open+0x264>)
cf2a: 462b mov r3, r5
cf2c: 4788 blx r1
cf2e: e7fe b.n cf2e <lv_img_decoder_built_in_open+0x6e>
if(dsc->user_data == NULL) {
cf30: 69e0 ldr r0, [r4, #28]
cf32: b948 cbnz r0, cf48 <lv_img_decoder_built_in_open+0x88>
LV_LOG_ERROR("img_decoder_built_in_open: out of memory");
cf34: 4b7c ldr r3, [pc, #496] ; (d128 <lv_img_decoder_built_in_open+0x268>)
cf36: 9300 str r3, [sp, #0]
cf38: 4977 ldr r1, [pc, #476] ; (d118 <lv_img_decoder_built_in_open+0x258>)
cf3a: 4b76 ldr r3, [pc, #472] ; (d114 <lv_img_decoder_built_in_open+0x254>)
cf3c: f240 1255 movw r2, #341 ; 0x155
cf40: 2003 movs r0, #3
LV_LOG_WARN("Image decoder open: unknown color format")
cf42: 4c76 ldr r4, [pc, #472] ; (d11c <lv_img_decoder_built_in_open+0x25c>)
cf44: 47a0 blx r4
cf46: e074 b.n d032 <lv_img_decoder_built_in_open+0x172>
_lv_memset_00(dsc->user_data, sizeof(lv_img_decoder_built_in_data_t));
cf48: 4b78 ldr r3, [pc, #480] ; (d12c <lv_img_decoder_built_in_open+0x26c>)
cf4a: 210c movs r1, #12
cf4c: 4798 blx r3
user_data->f = lv_mem_alloc(sizeof(f));
cf4e: 2008 movs r0, #8
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
cf50: 69e7 ldr r7, [r4, #28]
user_data->f = lv_mem_alloc(sizeof(f));
cf52: 47c8 blx r9
cf54: 6038 str r0, [r7, #0]
LV_ASSERT_MEM(user_data->f);
cf56: 47c0 blx r8
cf58: 4605 mov r5, r0
cf5a: b968 cbnz r0, cf78 <lv_img_decoder_built_in_open+0xb8>
cf5c: 4b6d ldr r3, [pc, #436] ; (d114 <lv_img_decoder_built_in_open+0x254>)
cf5e: 496e ldr r1, [pc, #440] ; (d118 <lv_img_decoder_built_in_open+0x258>)
cf60: 9300 str r3, [sp, #0]
cf62: f240 125d movw r2, #349 ; 0x15d
cf66: 2003 movs r0, #3
cf68: 4c6c ldr r4, [pc, #432] ; (d11c <lv_img_decoder_built_in_open+0x25c>)
cf6a: 47a0 blx r4
cf6c: 683a ldr r2, [r7, #0]
cf6e: 486c ldr r0, [pc, #432] ; (d120 <lv_img_decoder_built_in_open+0x260>)
cf70: 496c ldr r1, [pc, #432] ; (d124 <lv_img_decoder_built_in_open+0x264>)
cf72: 462b mov r3, r5
cf74: 4788 blx r1
cf76: e7fe b.n cf76 <lv_img_decoder_built_in_open+0xb6>
if(user_data->f == NULL) {
cf78: 683b ldr r3, [r7, #0]
cf7a: b94b cbnz r3, cf90 <lv_img_decoder_built_in_open+0xd0>
LV_LOG_ERROR("img_decoder_built_in_open: out of memory");
cf7c: 4b6a ldr r3, [pc, #424] ; (d128 <lv_img_decoder_built_in_open+0x268>)
cf7e: 9300 str r3, [sp, #0]
cf80: 4b64 ldr r3, [pc, #400] ; (d114 <lv_img_decoder_built_in_open+0x254>)
cf82: f240 125f movw r2, #351 ; 0x15f
LV_LOG_ERROR("img_decoder_built_in_open: out of memory");
cf86: 4964 ldr r1, [pc, #400] ; (d118 <lv_img_decoder_built_in_open+0x258>)
cf88: 4d64 ldr r5, [pc, #400] ; (d11c <lv_img_decoder_built_in_open+0x25c>)
cf8a: 2003 movs r0, #3
cf8c: 47a8 blx r5
cf8e: e04c b.n d02a <lv_img_decoder_built_in_open+0x16a>
cf90: aa02 add r2, sp, #8
cf92: f103 0108 add.w r1, r3, #8
*d8 = *s8;
cf96: f812 0b01 ldrb.w r0, [r2], #1
cf9a: f803 0b01 strb.w r0, [r3], #1
while(len) {
cf9e: 428b cmp r3, r1
cfa0: d1f9 bne.n cf96 <lv_img_decoder_built_in_open+0xd6>
lv_img_cf_t cf = dsc->header.cf;
cfa2: 7b23 ldrb r3, [r4, #12]
cfa4: f003 001f and.w r0, r3, #31
if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_ALPHA || cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) {
cfa8: 1f02 subs r2, r0, #4
cfaa: 2a02 cmp r2, #2
cfac: d811 bhi.n cfd2 <lv_img_decoder_built_in_open+0x112>
if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
cfae: 7aa3 ldrb r3, [r4, #10]
cfb0: 2b00 cmp r3, #0
cfb2: f040 8088 bne.w d0c6 <lv_img_decoder_built_in_open+0x206>
dsc->img_data = ((lv_img_dsc_t *)dsc->src)->data;
cfb6: 6863 ldr r3, [r4, #4]
cfb8: 689b ldr r3, [r3, #8]
dsc->img_data = NULL;
cfba: 6123 str r3, [r4, #16]
return LV_RES_OK;
cfbc: 2001 movs r0, #1
cfbe: e005 b.n cfcc <lv_img_decoder_built_in_open+0x10c>
else if(dsc->src_type == LV_IMG_SRC_VARIABLE) {
cfc0: 2800 cmp r0, #0
cfc2: d1ee bne.n cfa2 <lv_img_decoder_built_in_open+0xe2>
if(((lv_img_dsc_t *)dsc->src)->data == NULL) {
cfc4: 684a ldr r2, [r1, #4]
cfc6: 6892 ldr r2, [r2, #8]
cfc8: 2a00 cmp r2, #0
cfca: d1ea bne.n cfa2 <lv_img_decoder_built_in_open+0xe2>
}
cfcc: b004 add sp, #16
cfce: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
else if(cf == LV_IMG_CF_INDEXED_1BIT || cf == LV_IMG_CF_INDEXED_2BIT || cf == LV_IMG_CF_INDEXED_4BIT ||
cfd2: 1fc2 subs r2, r0, #7
cfd4: 2a03 cmp r2, #3
cfd6: f200 80d4 bhi.w d182 <lv_img_decoder_built_in_open+0x2c2>
uint8_t px_size = lv_img_cf_get_px_size(cf);
cfda: 4b55 ldr r3, [pc, #340] ; (d130 <lv_img_decoder_built_in_open+0x270>)
cfdc: f8df a15c ldr.w sl, [pc, #348] ; d13c <lv_img_decoder_built_in_open+0x27c>
cfe0: f8df 915c ldr.w r9, [pc, #348] ; d140 <lv_img_decoder_built_in_open+0x280>
cfe4: 4798 blx r3
if(dsc->user_data == NULL) {
cfe6: 69e3 ldr r3, [r4, #28]
uint8_t px_size = lv_img_cf_get_px_size(cf);
cfe8: 4680 mov r8, r0
if(dsc->user_data == NULL) {
cfea: bb43 cbnz r3, d03e <lv_img_decoder_built_in_open+0x17e>
dsc->user_data = lv_mem_alloc(sizeof(lv_img_decoder_built_in_data_t));
cfec: 200c movs r0, #12
cfee: 47d0 blx sl
cff0: 61e0 str r0, [r4, #28]
LV_ASSERT_MEM(dsc->user_data);
cff2: 47c8 blx r9
cff4: 4605 mov r5, r0
cff6: b968 cbnz r0, d014 <lv_img_decoder_built_in_open+0x154>
cff8: 4b46 ldr r3, [pc, #280] ; (d114 <lv_img_decoder_built_in_open+0x254>)
cffa: 4947 ldr r1, [pc, #284] ; (d118 <lv_img_decoder_built_in_open+0x258>)
cffc: 9300 str r3, [sp, #0]
cffe: f44f 72c6 mov.w r2, #396 ; 0x18c
d002: 2003 movs r0, #3
d004: 4e45 ldr r6, [pc, #276] ; (d11c <lv_img_decoder_built_in_open+0x25c>)
d006: 47b0 blx r6
d008: 69e2 ldr r2, [r4, #28]
d00a: 4845 ldr r0, [pc, #276] ; (d120 <lv_img_decoder_built_in_open+0x260>)
d00c: 4945 ldr r1, [pc, #276] ; (d124 <lv_img_decoder_built_in_open+0x264>)
d00e: 462b mov r3, r5
d010: 4788 blx r1
d012: e7fe b.n d012 <lv_img_decoder_built_in_open+0x152>
if(dsc->user_data == NULL) {
d014: 69e5 ldr r5, [r4, #28]
d016: b975 cbnz r5, d036 <lv_img_decoder_built_in_open+0x176>
LV_LOG_ERROR("img_decoder_built_in_open: out of memory");
d018: 4b43 ldr r3, [pc, #268] ; (d128 <lv_img_decoder_built_in_open+0x268>)
d01a: 9300 str r3, [sp, #0]
d01c: 493e ldr r1, [pc, #248] ; (d118 <lv_img_decoder_built_in_open+0x258>)
d01e: 4b3d ldr r3, [pc, #244] ; (d114 <lv_img_decoder_built_in_open+0x254>)
d020: 4f3e ldr r7, [pc, #248] ; (d11c <lv_img_decoder_built_in_open+0x25c>)
d022: f44f 72c7 mov.w r2, #398 ; 0x18e
d026: 2003 movs r0, #3
d028: 47b8 blx r7
lv_img_decoder_built_in_close(decoder, dsc);
d02a: 4b42 ldr r3, [pc, #264] ; (d134 <lv_img_decoder_built_in_open+0x274>)
d02c: 4621 mov r1, r4
d02e: 4630 mov r0, r6
d030: 4798 blx r3
return LV_RES_INV;
d032: 2000 movs r0, #0
d034: e7ca b.n cfcc <lv_img_decoder_built_in_open+0x10c>
_lv_memset_00(dsc->user_data, sizeof(lv_img_decoder_built_in_data_t));
d036: 4b3d ldr r3, [pc, #244] ; (d12c <lv_img_decoder_built_in_open+0x26c>)
d038: 210c movs r1, #12
d03a: 4628 mov r0, r5
d03c: 4798 blx r3
user_data->palette = lv_mem_alloc(palette_size * sizeof(lv_color_t));
d03e: 2002 movs r0, #2
d040: fa00 f008 lsl.w r0, r0, r8
lv_img_decoder_built_in_data_t * user_data = dsc->user_data;
d044: 69e5 ldr r5, [r4, #28]
user_data->palette = lv_mem_alloc(palette_size * sizeof(lv_color_t));
d046: 47d0 blx sl
d048: 6068 str r0, [r5, #4]
LV_ASSERT_MEM(user_data->palette);
d04a: 47c8 blx r9
d04c: 4607 mov r7, r0
d04e: b968 cbnz r0, d06c <lv_img_decoder_built_in_open+0x1ac>
d050: 4b30 ldr r3, [pc, #192] ; (d114 <lv_img_decoder_built_in_open+0x254>)
d052: 4931 ldr r1, [pc, #196] ; (d118 <lv_img_decoder_built_in_open+0x258>)
d054: 9300 str r3, [sp, #0]
d056: f240 1297 movw r2, #407 ; 0x197
d05a: 2003 movs r0, #3
d05c: 4c2f ldr r4, [pc, #188] ; (d11c <lv_img_decoder_built_in_open+0x25c>)
d05e: 47a0 blx r4
d060: 686a ldr r2, [r5, #4]
d062: 482f ldr r0, [pc, #188] ; (d120 <lv_img_decoder_built_in_open+0x260>)
d064: 492f ldr r1, [pc, #188] ; (d124 <lv_img_decoder_built_in_open+0x264>)
d066: 463b mov r3, r7
d068: 4788 blx r1
d06a: e7fe b.n d06a <lv_img_decoder_built_in_open+0x1aa>
uint32_t palette_size = 1 << px_size;
d06c: 2701 movs r7, #1
d06e: fa07 f708 lsl.w r7, r7, r8
user_data->opa = lv_mem_alloc(palette_size * sizeof(lv_opa_t));
d072: 4638 mov r0, r7
d074: 47d0 blx sl
d076: 60a8 str r0, [r5, #8]
LV_ASSERT_MEM(user_data->opa);
d078: 47c8 blx r9
d07a: 4680 mov r8, r0
d07c: b968 cbnz r0, d09a <lv_img_decoder_built_in_open+0x1da>
d07e: 4b25 ldr r3, [pc, #148] ; (d114 <lv_img_decoder_built_in_open+0x254>)
d080: 4925 ldr r1, [pc, #148] ; (d118 <lv_img_decoder_built_in_open+0x258>)
d082: 9300 str r3, [sp, #0]
d084: f240 1299 movw r2, #409 ; 0x199
d088: 2003 movs r0, #3
d08a: 4c24 ldr r4, [pc, #144] ; (d11c <lv_img_decoder_built_in_open+0x25c>)
d08c: 47a0 blx r4
d08e: 68aa ldr r2, [r5, #8]
d090: 4823 ldr r0, [pc, #140] ; (d120 <lv_img_decoder_built_in_open+0x260>)
d092: 4924 ldr r1, [pc, #144] ; (d124 <lv_img_decoder_built_in_open+0x264>)
d094: 4643 mov r3, r8
d096: 4788 blx r1
d098: e7fe b.n d098 <lv_img_decoder_built_in_open+0x1d8>
if(user_data->palette == NULL || user_data->opa == NULL) {
d09a: 686b ldr r3, [r5, #4]
d09c: b10b cbz r3, d0a2 <lv_img_decoder_built_in_open+0x1e2>
d09e: 68ab ldr r3, [r5, #8]
d0a0: b92b cbnz r3, d0ae <lv_img_decoder_built_in_open+0x1ee>
LV_LOG_ERROR("img_decoder_built_in_open: out of memory");
d0a2: 4b21 ldr r3, [pc, #132] ; (d128 <lv_img_decoder_built_in_open+0x268>)
d0a4: 9300 str r3, [sp, #0]
d0a6: f240 129b movw r2, #411 ; 0x19b
d0aa: 4b1a ldr r3, [pc, #104] ; (d114 <lv_img_decoder_built_in_open+0x254>)
d0ac: e76b b.n cf86 <lv_img_decoder_built_in_open+0xc6>
if(dsc->src_type == LV_IMG_SRC_FILE) {
d0ae: 7aa3 ldrb r3, [r4, #10]
d0b0: 2b01 cmp r3, #1
d0b2: d149 bne.n d148 <lv_img_decoder_built_in_open+0x288>
lv_fs_seek(user_data->f, 4); /*Skip the header*/
d0b4: 6828 ldr r0, [r5, #0]
d0b6: 4b20 ldr r3, [pc, #128] ; (d138 <lv_img_decoder_built_in_open+0x278>)
lv_fs_read(user_data->f, &cur_color, sizeof(lv_color32_t), NULL);
d0b8: f8df 8088 ldr.w r8, [pc, #136] ; d144 <lv_img_decoder_built_in_open+0x284>
lv_fs_seek(user_data->f, 4); /*Skip the header*/
d0bc: 2104 movs r1, #4
d0be: 4798 blx r3
for(i = 0; i < palette_size; i++) {
d0c0: 2600 movs r6, #0
d0c2: 42be cmp r6, r7
d0c4: d101 bne.n d0ca <lv_img_decoder_built_in_open+0x20a>
dsc->img_data = NULL;
d0c6: 2300 movs r3, #0
d0c8: e777 b.n cfba <lv_img_decoder_built_in_open+0xfa>
lv_fs_read(user_data->f, &cur_color, sizeof(lv_color32_t), NULL);
d0ca: 2300 movs r3, #0
d0cc: 2204 movs r2, #4
d0ce: a902 add r1, sp, #8
d0d0: 6828 ldr r0, [r5, #0]
d0d2: 47c0 blx r8
#define LV_COLOR_MAKE(r8, g8, b8) ((lv_color_t){{b8, g8, r8, 0xff}}) /*Fix 0xff alpha*/
#endif
static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b)
{
return LV_COLOR_MAKE(r, g, b);
d0d4: f89d 1009 ldrb.w r1, [sp, #9]
d0d8: f89d 3008 ldrb.w r3, [sp, #8]
user_data->palette[i] = lv_color_make(cur_color.ch.red, cur_color.ch.green, cur_color.ch.blue);
d0dc: 686a ldr r2, [r5, #4]
d0de: 0889 lsrs r1, r1, #2
d0e0: 08db lsrs r3, r3, #3
d0e2: ea43 1341 orr.w r3, r3, r1, lsl #5
d0e6: f89d 100a ldrb.w r1, [sp, #10]
d0ea: 08c9 lsrs r1, r1, #3
d0ec: ea43 23c1 orr.w r3, r3, r1, lsl #11
d0f0: f822 3016 strh.w r3, [r2, r6, lsl #1]
user_data->opa[i] = cur_color.ch.alpha;
d0f4: 68ab ldr r3, [r5, #8]
d0f6: f89d 200b ldrb.w r2, [sp, #11]
d0fa: 559a strb r2, [r3, r6]
for(i = 0; i < palette_size; i++) {
d0fc: 3601 adds r6, #1
d0fe: e7e0 b.n d0c2 <lv_img_decoder_built_in_open+0x202>
d100: 0000e7f1 .word 0x0000e7f1
d104: 00027abc .word 0x00027abc
d108: 000170c9 .word 0x000170c9
d10c: 0000e725 .word 0x0000e725
d110: 00027ac0 .word 0x00027ac0
d114: 00027bd7 .word 0x00027bd7
d118: 000279bb .word 0x000279bb
d11c: 0000eb79 .word 0x0000eb79
d120: 00026842 .word 0x00026842
d124: 00001a6d .word 0x00001a6d
d128: 00027aeb .word 0x00027aeb
d12c: 0000f2a9 .word 0x0000f2a9
d130: 00007805 .word 0x00007805
d134: 0000cac1 .word 0x0000cac1
d138: 0000e6d3 .word 0x0000e6d3
d13c: 0000ecbd .word 0x0000ecbd
d140: 00001a65 .word 0x00001a65
d144: 0000e69d .word 0x0000e69d
lv_color32_t * palette_p = (lv_color32_t *)((lv_img_dsc_t *)dsc->src)->data;
d148: 6863 ldr r3, [r4, #4]
d14a: 6899 ldr r1, [r3, #8]
for(i = 0; i < palette_size; i++) {
d14c: 2000 movs r0, #0
d14e: 42b8 cmp r0, r7
d150: f101 0104 add.w r1, r1, #4
d154: d0b7 beq.n d0c6 <lv_img_decoder_built_in_open+0x206>
d156: f811 6c03 ldrb.w r6, [r1, #-3]
d15a: f811 3c04 ldrb.w r3, [r1, #-4]
user_data->palette[i] = lv_color_make(palette_p[i].ch.red, palette_p[i].ch.green, palette_p[i].ch.blue);
d15e: 686a ldr r2, [r5, #4]
d160: 08b6 lsrs r6, r6, #2
d162: 08db lsrs r3, r3, #3
d164: ea43 1346 orr.w r3, r3, r6, lsl #5
d168: f811 6c02 ldrb.w r6, [r1, #-2]
d16c: 08f6 lsrs r6, r6, #3
d16e: ea43 23c6 orr.w r3, r3, r6, lsl #11
d172: f822 3010 strh.w r3, [r2, r0, lsl #1]
user_data->opa[i] = palette_p[i].ch.alpha;
d176: 68ab ldr r3, [r5, #8]
d178: f811 2c01 ldrb.w r2, [r1, #-1]
d17c: 541a strb r2, [r3, r0]
for(i = 0; i < palette_size; i++) {
d17e: 3001 adds r0, #1
d180: e7e5 b.n d14e <lv_img_decoder_built_in_open+0x28e>
else if(cf == LV_IMG_CF_ALPHA_1BIT || cf == LV_IMG_CF_ALPHA_2BIT || cf == LV_IMG_CF_ALPHA_4BIT ||
d182: f1a0 030b sub.w r3, r0, #11
d186: 2b03 cmp r3, #3
d188: d99d bls.n d0c6 <lv_img_decoder_built_in_open+0x206>
lv_img_decoder_built_in_close(decoder, dsc);
d18a: 4b05 ldr r3, [pc, #20] ; (d1a0 <lv_img_decoder_built_in_open+0x2e0>)
d18c: 4621 mov r1, r4
d18e: 4630 mov r0, r6
d190: 4798 blx r3
LV_LOG_WARN("Image decoder open: unknown color format")
d192: 4b04 ldr r3, [pc, #16] ; (d1a4 <lv_img_decoder_built_in_open+0x2e4>)
d194: 9300 str r3, [sp, #0]
d196: f240 12d3 movw r2, #467 ; 0x1d3
d19a: 4b03 ldr r3, [pc, #12] ; (d1a8 <lv_img_decoder_built_in_open+0x2e8>)
d19c: e6ab b.n cef6 <lv_img_decoder_built_in_open+0x36>
d19e: bf00 nop
d1a0: 0000cac1 .word 0x0000cac1
d1a4: 00027b14 .word 0x00027b14
d1a8: 00027bd7 .word 0x00027bd7
0000d1ac <lv_img_decoder_get_info>:
{
d1ac: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
header->always_zero = 0;
d1b0: 780b ldrb r3, [r1, #0]
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
d1b2: f8df 8044 ldr.w r8, [pc, #68] ; d1f8 <lv_img_decoder_get_info+0x4c>
d1b6: f8df 9044 ldr.w r9, [pc, #68] ; d1fc <lv_img_decoder_get_info+0x50>
header->always_zero = 0;
d1ba: f36f 1347 bfc r3, #5, #3
d1be: 700b strb r3, [r1, #0]
{
d1c0: 4607 mov r7, r0
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
d1c2: 4b0c ldr r3, [pc, #48] ; (d1f4 <lv_img_decoder_get_info+0x48>)
d1c4: 480c ldr r0, [pc, #48] ; (d1f8 <lv_img_decoder_get_info+0x4c>)
{
d1c6: 460e mov r6, r1
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
d1c8: 4798 blx r3
lv_res_t res = LV_RES_INV;
d1ca: 2400 movs r4, #0
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
d1cc: 4605 mov r5, r0
d1ce: b915 cbnz r5, d1d6 <lv_img_decoder_get_info+0x2a>
}
d1d0: 4620 mov r0, r4
d1d2: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
if(d->info_cb) {
d1d6: 682c ldr r4, [r5, #0]
d1d8: b134 cbz r4, d1e8 <lv_img_decoder_get_info+0x3c>
res = d->info_cb(d, src, header);
d1da: 4632 mov r2, r6
d1dc: 4639 mov r1, r7
d1de: 4628 mov r0, r5
d1e0: 47a0 blx r4
if(res == LV_RES_OK) break;
d1e2: 2801 cmp r0, #1
res = d->info_cb(d, src, header);
d1e4: 4604 mov r4, r0
if(res == LV_RES_OK) break;
d1e6: d0f3 beq.n d1d0 <lv_img_decoder_get_info+0x24>
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
d1e8: 4629 mov r1, r5
d1ea: 4640 mov r0, r8
d1ec: 47c8 blx r9
d1ee: 4605 mov r5, r0
d1f0: e7ed b.n d1ce <lv_img_decoder_get_info+0x22>
d1f2: bf00 nop
d1f4: 0000e92d .word 0x0000e92d
d1f8: 20003624 .word 0x20003624
d1fc: 0000e939 .word 0x0000e939
0000d200 <lv_img_decoder_open>:
{
d200: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
dsc->src_type = lv_img_src_get_type(src);
d204: 4b22 ldr r3, [pc, #136] ; (d290 <lv_img_decoder_open+0x90>)
dsc->color = color;
d206: 8102 strh r2, [r0, #8]
{
d208: 4604 mov r4, r0
dsc->src_type = lv_img_src_get_type(src);
d20a: 4608 mov r0, r1
{
d20c: 460f mov r7, r1
dsc->src_type = lv_img_src_get_type(src);
d20e: 4798 blx r3
dsc->user_data = NULL;
d210: 2300 movs r3, #0
if(dsc->src_type == LV_IMG_SRC_FILE) {
d212: 2801 cmp r0, #1
dsc->src_type = lv_img_src_get_type(src);
d214: 72a0 strb r0, [r4, #10]
dsc->user_data = NULL;
d216: 61e3 str r3, [r4, #28]
if(dsc->src_type == LV_IMG_SRC_FILE) {
d218: d11d bne.n d256 <lv_img_decoder_open+0x56>
size_t fnlen = strlen(src);
d21a: 4b1e ldr r3, [pc, #120] ; (d294 <lv_img_decoder_open+0x94>)
d21c: 4638 mov r0, r7
d21e: 4798 blx r3
dsc->src = lv_mem_alloc(fnlen + 1);
d220: 4b1d ldr r3, [pc, #116] ; (d298 <lv_img_decoder_open+0x98>)
d222: 3001 adds r0, #1
d224: 4798 blx r3
__ssp_bos_icheck3(memset, void *, int)
__ssp_bos_icheck2_restrict(stpcpy, char *, const char *)
#if __GNUC_PREREQ__(4,8) || defined(__clang__)
__ssp_bos_icheck3_restrict(stpncpy, char *, const char *)
#endif
__ssp_bos_icheck2_restrict(strcpy, char *, const char *)
d226: 4b1d ldr r3, [pc, #116] ; (d29c <lv_img_decoder_open+0x9c>)
d228: 6060 str r0, [r4, #4]
d22a: 4639 mov r1, r7
d22c: 4798 blx r3
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
d22e: 481c ldr r0, [pc, #112] ; (d2a0 <lv_img_decoder_open+0xa0>)
d230: 4b1c ldr r3, [pc, #112] ; (d2a4 <lv_img_decoder_open+0xa4>)
d232: f8df 906c ldr.w r9, [pc, #108] ; d2a0 <lv_img_decoder_open+0xa0>
d236: f8df a074 ldr.w sl, [pc, #116] ; d2ac <lv_img_decoder_open+0xac>
d23a: 4798 blx r3
lv_res_t res = LV_RES_INV;
d23c: 2600 movs r6, #0
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
d23e: 4605 mov r5, r0
res = d->info_cb(d, src, &dsc->header);
d240: f104 080c add.w r8, r4, #12
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
d244: b94d cbnz r5, d25a <lv_img_decoder_open+0x5a>
if(res == LV_RES_INV) {
d246: b91e cbnz r6, d250 <lv_img_decoder_open+0x50>
_lv_memset_00(dsc, sizeof(lv_img_decoder_dsc_t));
d248: 4b17 ldr r3, [pc, #92] ; (d2a8 <lv_img_decoder_open+0xa8>)
d24a: 2120 movs r1, #32
d24c: 4620 mov r0, r4
d24e: 4798 blx r3
}
d250: 4630 mov r0, r6
d252: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
dsc->src = src;
d256: 6067 str r7, [r4, #4]
d258: e7e9 b.n d22e <lv_img_decoder_open+0x2e>
if(d->info_cb == NULL || d->open_cb == NULL) continue;
d25a: 682b ldr r3, [r5, #0]
d25c: b19b cbz r3, d286 <lv_img_decoder_open+0x86>
d25e: 686a ldr r2, [r5, #4]
d260: b18a cbz r2, d286 <lv_img_decoder_open+0x86>
res = d->info_cb(d, src, &dsc->header);
d262: 4642 mov r2, r8
d264: 4639 mov r1, r7
d266: 4628 mov r0, r5
d268: 4798 blx r3
if(res != LV_RES_OK) continue;
d26a: 2801 cmp r0, #1
res = d->info_cb(d, src, &dsc->header);
d26c: 4606 mov r6, r0
if(res != LV_RES_OK) continue;
d26e: d10a bne.n d286 <lv_img_decoder_open+0x86>
dsc->error_msg = NULL;
d270: 2300 movs r3, #0
d272: 61a3 str r3, [r4, #24]
dsc->img_data = NULL;
d274: 6123 str r3, [r4, #16]
dsc->decoder = d;
d276: 6025 str r5, [r4, #0]
res = d->open_cb(d, dsc);
d278: 686b ldr r3, [r5, #4]
d27a: 4621 mov r1, r4
d27c: 4628 mov r0, r5
d27e: 4798 blx r3
if(res == LV_RES_OK) break;
d280: 2801 cmp r0, #1
res = d->open_cb(d, dsc);
d282: 4606 mov r6, r0
if(res == LV_RES_OK) break;
d284: d0e4 beq.n d250 <lv_img_decoder_open+0x50>
_LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) {
d286: 4629 mov r1, r5
d288: 4648 mov r0, r9
d28a: 47d0 blx sl
d28c: 4605 mov r5, r0
d28e: e7d9 b.n d244 <lv_img_decoder_open+0x44>
d290: 00007a89 .word 0x00007a89
d294: 00017481 .word 0x00017481
d298: 0000ecbd .word 0x0000ecbd
d29c: 0001739d .word 0x0001739d
d2a0: 20003624 .word 0x20003624
d2a4: 0000e92d .word 0x0000e92d
d2a8: 0000f2a9 .word 0x0000f2a9
d2ac: 0000e939 .word 0x0000e939
0000d2b0 <lv_img_decoder_read_line>:
{
d2b0: b573 push {r0, r1, r4, r5, r6, lr}
if(dsc->decoder->read_line_cb) res = dsc->decoder->read_line_cb(dsc->decoder, dsc, x, y, len, buf);
d2b2: 6805 ldr r5, [r0, #0]
d2b4: 68ac ldr r4, [r5, #8]
d2b6: b14c cbz r4, d2cc <lv_img_decoder_read_line+0x1c>
d2b8: 9e06 ldr r6, [sp, #24]
d2ba: e9cd 3600 strd r3, r6, [sp]
d2be: 4613 mov r3, r2
d2c0: 460a mov r2, r1
d2c2: 4601 mov r1, r0
d2c4: 4628 mov r0, r5
d2c6: 47a0 blx r4
}
d2c8: b002 add sp, #8
d2ca: bd70 pop {r4, r5, r6, pc}
lv_res_t res = LV_RES_INV;
d2cc: 4620 mov r0, r4
d2ce: e7fb b.n d2c8 <lv_img_decoder_read_line+0x18>
0000d2d0 <lv_img_decoder_close>:
{
d2d0: b510 push {r4, lr}
d2d2: 4604 mov r4, r0
if(dsc->decoder) {
d2d4: 6800 ldr r0, [r0, #0]
d2d6: b158 cbz r0, d2f0 <lv_img_decoder_close+0x20>
if(dsc->decoder->close_cb) dsc->decoder->close_cb(dsc->decoder, dsc);
d2d8: 68c3 ldr r3, [r0, #12]
d2da: b10b cbz r3, d2e0 <lv_img_decoder_close+0x10>
d2dc: 4621 mov r1, r4
d2de: 4798 blx r3
if(dsc->src_type == LV_IMG_SRC_FILE) {
d2e0: 7aa3 ldrb r3, [r4, #10]
d2e2: 2b01 cmp r3, #1
d2e4: d104 bne.n d2f0 <lv_img_decoder_close+0x20>
lv_mem_free(dsc->src);
d2e6: 4b03 ldr r3, [pc, #12] ; (d2f4 <lv_img_decoder_close+0x24>)
d2e8: 6860 ldr r0, [r4, #4]
d2ea: 4798 blx r3
dsc->src = NULL;
d2ec: 2300 movs r3, #0
d2ee: 6063 str r3, [r4, #4]
}
d2f0: bd10 pop {r4, pc}
d2f2: bf00 nop
d2f4: 0000ed75 .word 0x0000ed75
0000d2f8 <lv_img_decoder_create>:
{
d2f8: b573 push {r0, r1, r4, r5, r6, lr}
decoder = _lv_ll_ins_head(&LV_GC_ROOT(_lv_img_defoder_ll));
d2fa: 4b0e ldr r3, [pc, #56] ; (d334 <lv_img_decoder_create+0x3c>)
d2fc: 480e ldr r0, [pc, #56] ; (d338 <lv_img_decoder_create+0x40>)
d2fe: 4798 blx r3
LV_ASSERT_MEM(decoder);
d300: 4b0e ldr r3, [pc, #56] ; (d33c <lv_img_decoder_create+0x44>)
decoder = _lv_ll_ins_head(&LV_GC_ROOT(_lv_img_defoder_ll));
d302: 4604 mov r4, r0
LV_ASSERT_MEM(decoder);
d304: 4798 blx r3
d306: 4605 mov r5, r0
d308: b960 cbnz r0, d324 <lv_img_decoder_create+0x2c>
d30a: 4b0d ldr r3, [pc, #52] ; (d340 <lv_img_decoder_create+0x48>)
d30c: 490d ldr r1, [pc, #52] ; (d344 <lv_img_decoder_create+0x4c>)
d30e: 9300 str r3, [sp, #0]
d310: 22c9 movs r2, #201 ; 0xc9
d312: 2003 movs r0, #3
d314: 4e0c ldr r6, [pc, #48] ; (d348 <lv_img_decoder_create+0x50>)
d316: 47b0 blx r6
d318: 480c ldr r0, [pc, #48] ; (d34c <lv_img_decoder_create+0x54>)
d31a: 490d ldr r1, [pc, #52] ; (d350 <lv_img_decoder_create+0x58>)
d31c: 4622 mov r2, r4
d31e: 462b mov r3, r5
d320: 4788 blx r1
d322: e7fe b.n d322 <lv_img_decoder_create+0x2a>
if(decoder == NULL) return NULL;
d324: b11c cbz r4, d32e <lv_img_decoder_create+0x36>
_lv_memset_00(decoder, sizeof(lv_img_decoder_t));
d326: 4b0b ldr r3, [pc, #44] ; (d354 <lv_img_decoder_create+0x5c>)
d328: 2110 movs r1, #16
d32a: 4620 mov r0, r4
d32c: 4798 blx r3
}
d32e: 4620 mov r0, r4
d330: b002 add sp, #8
d332: bd70 pop {r4, r5, r6, pc}
d334: 0000e89d .word 0x0000e89d
d338: 20003624 .word 0x20003624
d33c: 00001a65 .word 0x00001a65
d340: 00027bf4 .word 0x00027bf4
d344: 000279bb .word 0x000279bb
d348: 0000eb79 .word 0x0000eb79
d34c: 00026842 .word 0x00026842
d350: 00001a6d .word 0x00001a6d
d354: 0000f2a9 .word 0x0000f2a9
0000d358 <_lv_img_decoder_init>:
{
d358: b537 push {r0, r1, r2, r4, r5, lr}
_lv_ll_init(&LV_GC_ROOT(_lv_img_defoder_ll), sizeof(lv_img_decoder_t));
d35a: 4b15 ldr r3, [pc, #84] ; (d3b0 <_lv_img_decoder_init+0x58>)
d35c: 4815 ldr r0, [pc, #84] ; (d3b4 <_lv_img_decoder_init+0x5c>)
d35e: 2110 movs r1, #16
d360: 4798 blx r3
decoder = lv_img_decoder_create();
d362: 4b15 ldr r3, [pc, #84] ; (d3b8 <_lv_img_decoder_init+0x60>)
d364: 4798 blx r3
if(decoder == NULL) {
d366: 4604 mov r4, r0
d368: b9b8 cbnz r0, d39a <_lv_img_decoder_init+0x42>
LV_LOG_WARN("lv_img_decoder_init: out of memory");
d36a: 4a14 ldr r2, [pc, #80] ; (d3bc <_lv_img_decoder_init+0x64>)
d36c: 9200 str r2, [sp, #0]
d36e: 2002 movs r0, #2
d370: 2247 movs r2, #71 ; 0x47
d372: 4b13 ldr r3, [pc, #76] ; (d3c0 <_lv_img_decoder_init+0x68>)
d374: 4913 ldr r1, [pc, #76] ; (d3c4 <_lv_img_decoder_init+0x6c>)
d376: 4d14 ldr r5, [pc, #80] ; (d3c8 <_lv_img_decoder_init+0x70>)
d378: 47a8 blx r5
LV_ASSERT_MEM(decoder);
d37a: 4a14 ldr r2, [pc, #80] ; (d3cc <_lv_img_decoder_init+0x74>)
d37c: 4620 mov r0, r4
d37e: 4790 blx r2
d380: b998 cbnz r0, d3aa <_lv_img_decoder_init+0x52>
d382: 4b0f ldr r3, [pc, #60] ; (d3c0 <_lv_img_decoder_init+0x68>)
d384: 490f ldr r1, [pc, #60] ; (d3c4 <_lv_img_decoder_init+0x6c>)
d386: 9300 str r3, [sp, #0]
d388: 2248 movs r2, #72 ; 0x48
d38a: 2003 movs r0, #3
d38c: 47a8 blx r5
d38e: 4810 ldr r0, [pc, #64] ; (d3d0 <_lv_img_decoder_init+0x78>)
d390: 4910 ldr r1, [pc, #64] ; (d3d4 <_lv_img_decoder_init+0x7c>)
d392: 2200 movs r2, #0
d394: 2300 movs r3, #0
d396: 4788 blx r1
d398: e7fe b.n d398 <_lv_img_decoder_init+0x40>
decoder->info_cb = info_cb;
d39a: 4b0f ldr r3, [pc, #60] ; (d3d8 <_lv_img_decoder_init+0x80>)
d39c: 6003 str r3, [r0, #0]
decoder->open_cb = open_cb;
d39e: 4b0f ldr r3, [pc, #60] ; (d3dc <_lv_img_decoder_init+0x84>)
d3a0: 6043 str r3, [r0, #4]
decoder->read_line_cb = read_line_cb;
d3a2: 4b0f ldr r3, [pc, #60] ; (d3e0 <_lv_img_decoder_init+0x88>)
d3a4: 6083 str r3, [r0, #8]
decoder->close_cb = close_cb;
d3a6: 4b0f ldr r3, [pc, #60] ; (d3e4 <_lv_img_decoder_init+0x8c>)
d3a8: 60c3 str r3, [r0, #12]
}
d3aa: b003 add sp, #12
d3ac: bd30 pop {r4, r5, pc}
d3ae: bf00 nop
d3b0: 0000e889 .word 0x0000e889
d3b4: 20003624 .word 0x20003624
d3b8: 0000d2f9 .word 0x0000d2f9
d3bc: 00027b3d .word 0x00027b3d
d3c0: 00027c0a .word 0x00027c0a
d3c4: 000279bb .word 0x000279bb
d3c8: 0000eb79 .word 0x0000eb79
d3cc: 00001a65 .word 0x00001a65
d3d0: 00026842 .word 0x00026842
d3d4: 00001a6d .word 0x00001a6d
d3d8: 0000c9e1 .word 0x0000c9e1
d3dc: 0000cec1 .word 0x0000cec1
d3e0: 0000caf5 .word 0x0000caf5
d3e4: 0000cac1 .word 0x0000cac1
0000d3e8 <lv_font_get_glyph_bitmap>:
* @param letter an UNICODE character code
* @return pointer to the bitmap of the letter
*/
const uint8_t * lv_font_get_glyph_bitmap(const lv_font_t * font_p, uint32_t letter)
{
return font_p->get_glyph_bitmap(font_p, letter);
d3e8: 6843 ldr r3, [r0, #4]
d3ea: 4718 bx r3
0000d3ec <lv_font_get_glyph_dsc>:
* @return true: descriptor is successfully loaded into `dsc_out`.
* false: the letter was not found, no data is loaded to `dsc_out`
*/
bool lv_font_get_glyph_dsc(const lv_font_t * font_p, lv_font_glyph_dsc_t * dsc_out, uint32_t letter,
uint32_t letter_next)
{
d3ec: b410 push {r4}
return font_p->get_glyph_dsc(font_p, dsc_out, letter, letter_next);
d3ee: 6804 ldr r4, [r0, #0]
d3f0: 46a4 mov ip, r4
}
d3f2: f85d 4b04 ldr.w r4, [sp], #4
return font_p->get_glyph_dsc(font_p, dsc_out, letter, letter_next);
d3f6: 4760 bx ip
0000d3f8 <lv_font_get_glyph_width>:
* @param letter an UNICODE letter
* @param letter_next the next letter after `letter`. Used for kerning
* @return the width of the glyph
*/
uint16_t lv_font_get_glyph_width(const lv_font_t * font, uint32_t letter, uint32_t letter_next)
{
d3f8: b51f push {r0, r1, r2, r3, r4, lr}
d3fa: 4613 mov r3, r2
lv_font_glyph_dsc_t g;
bool ret;
ret = lv_font_get_glyph_dsc(font, &g, letter, letter_next);
d3fc: 4c04 ldr r4, [pc, #16] ; (d410 <lv_font_get_glyph_width+0x18>)
d3fe: 460a mov r2, r1
d400: a901 add r1, sp, #4
d402: 47a0 blx r4
if(ret) return g.adv_w;
d404: b108 cbz r0, d40a <lv_font_get_glyph_width+0x12>
d406: f8bd 0004 ldrh.w r0, [sp, #4]
else return 0;
}
d40a: b004 add sp, #16
d40c: bd10 pop {r4, pc}
d40e: bf00 nop
d410: 0000d3ed .word 0x0000d3ed
0000d414 <kern_pair_8_compare>:
{
const uint8_t * ref8_p = ref;
const uint8_t * element8_p = element;
/*If the MSB is different it will matter. If not return the diff. of the LSB*/
if(ref8_p[0] != element8_p[0]) return (int32_t)ref8_p[0] - element8_p[0];
d414: 7803 ldrb r3, [r0, #0]
d416: 780a ldrb r2, [r1, #0]
d418: 4293 cmp r3, r2
else return (int32_t) ref8_p[1] - element8_p[1];
d41a: bf09 itett eq
d41c: 784b ldrbeq r3, [r1, #1]
if(ref8_p[0] != element8_p[0]) return (int32_t)ref8_p[0] - element8_p[0];
d41e: 1a98 subne r0, r3, r2
else return (int32_t) ref8_p[1] - element8_p[1];
d420: 7840 ldrbeq r0, [r0, #1]
d422: 1ac0 subeq r0, r0, r3
}
d424: 4770 bx lr
0000d426 <kern_pair_16_compare>:
{
const uint16_t * ref16_p = ref;
const uint16_t * element16_p = element;
/*If the MSB is different it will matter. If not return the diff. of the LSB*/
if(ref16_p[0] != element16_p[0]) return (int32_t)ref16_p[0] - element16_p[0];
d426: 8803 ldrh r3, [r0, #0]
d428: 880a ldrh r2, [r1, #0]
d42a: 4293 cmp r3, r2
else return (int32_t) ref16_p[1] - element16_p[1];
d42c: bf09 itett eq
d42e: 884b ldrheq r3, [r1, #2]
if(ref16_p[0] != element16_p[0]) return (int32_t)ref16_p[0] - element16_p[0];
d430: 1a98 subne r0, r3, r2
else return (int32_t) ref16_p[1] - element16_p[1];
d432: 8840 ldrheq r0, [r0, #2]
d434: 1ac0 subeq r0, r0, r3
}
d436: 4770 bx lr
0000d438 <get_bits>:
* @return the read bits
*/
static inline uint8_t get_bits(const uint8_t * in, uint32_t bit_pos, uint8_t len)
{
uint8_t bit_mask;
switch(len) {
d438: 1e53 subs r3, r2, #1
{
d43a: b530 push {r4, r5, lr}
switch(len) {
d43c: 2b07 cmp r3, #7
d43e: d81f bhi.n d480 <get_bits+0x48>
d440: e8df f003 tbb [pc, r3]
d444: 1a180423 .word 0x1a180423
d448: 1c1e1e1e .word 0x1c1e1e1e
case 1:
bit_mask = 0x1;
break;
case 2:
bit_mask = 0x3;
d44c: 2303 movs r3, #3
break;
default:
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
}
uint32_t byte_pos = bit_pos >> 3;
d44e: 08cd lsrs r5, r1, #3
bit_pos = bit_pos & 0x7;
d450: f001 0107 and.w r1, r1, #7
if(bit_pos + len >= 8) {
d454: 440a add r2, r1
d456: 2a07 cmp r2, #7
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
d458: 5d44 ldrb r4, [r0, r5]
if(bit_pos + len >= 8) {
d45a: d918 bls.n d48e <get_bits+0x56>
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
d45c: 4428 add r0, r5
return (in16 >> (16 - bit_pos - len)) & bit_mask;
d45e: f1c2 0210 rsb r2, r2, #16
uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1];
d462: 7841 ldrb r1, [r0, #1]
d464: eb01 2104 add.w r1, r1, r4, lsl #8
return (in16 >> (16 - bit_pos - len)) & bit_mask;
d468: b289 uxth r1, r1
d46a: fa41 f202 asr.w r2, r1, r2
d46e: ea03 0002 and.w r0, r3, r2
}
else {
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
}
}
d472: bd30 pop {r4, r5, pc}
bit_mask = 0x7;
d474: 2307 movs r3, #7
break;
d476: e7ea b.n d44e <get_bits+0x16>
bit_mask = 0xF;
d478: 230f movs r3, #15
break;
d47a: e7e8 b.n d44e <get_bits+0x16>
bit_mask = 0xFF;
d47c: 23ff movs r3, #255 ; 0xff
break;
d47e: e7e6 b.n d44e <get_bits+0x16>
bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
d480: 2301 movs r3, #1
d482: 4093 lsls r3, r2
d484: 3b01 subs r3, #1
d486: b2db uxtb r3, r3
d488: e7e1 b.n d44e <get_bits+0x16>
switch(len) {
d48a: 4613 mov r3, r2
d48c: e7df b.n d44e <get_bits+0x16>
return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask;
d48e: f1c2 0208 rsb r2, r2, #8
d492: 4114 asrs r4, r2
d494: ea03 0004 and.w r0, r3, r4
d498: e7eb b.n d472 <get_bits+0x3a>
...
0000d49c <bits_write>:
* @param len length of bits to write from `val`. (Counted from the LSB).
* @note `len == 3` will be converted to `len = 4` and `val` will be upscaled too
*/
static inline void bits_write(uint8_t * out, uint32_t bit_pos, uint8_t val, uint8_t len)
{
if(len == 3) {
d49c: 2b03 cmp r3, #3
{
d49e: b530 push {r4, r5, lr}
if(len == 3) {
d4a0: d104 bne.n d4ac <bits_write+0x10>
len = 4;
switch(val) {
d4a2: 2a07 cmp r2, #7
d4a4: bf9c itt ls
d4a6: 4b0b ldrls r3, [pc, #44] ; (d4d4 <bits_write+0x38>)
d4a8: 5c9a ldrbls r2, [r3, r2]
len = 4;
d4aa: 2304 movs r3, #4
break;
}
}
uint16_t byte_pos = bit_pos >> 3;
bit_pos = bit_pos & 0x7;
d4ac: f001 0507 and.w r5, r1, #7
bit_pos = 8 - bit_pos - len;
uint8_t bit_mask = (uint16_t)((uint16_t) 1 << len) - 1;
out[byte_pos] &= ((~bit_mask) << bit_pos);
d4b0: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff
d4b4: f3c1 01cf ubfx r1, r1, #3, #16
d4b8: f1c5 0508 rsb r5, r5, #8
bit_pos = 8 - bit_pos - len;
d4bc: 1aed subs r5, r5, r3
out[byte_pos] &= ((~bit_mask) << bit_pos);
d4be: fa04 f303 lsl.w r3, r4, r3
d4c2: f063 03ff orn r3, r3, #255 ; 0xff
d4c6: 5c44 ldrb r4, [r0, r1]
d4c8: 40ab lsls r3, r5
d4ca: 4023 ands r3, r4
out[byte_pos] |= (val << bit_pos);
d4cc: 40aa lsls r2, r5
d4ce: 431a orrs r2, r3
d4d0: 5442 strb r2, [r0, r1]
}
d4d2: bd30 pop {r4, r5, pc}
d4d4: 00027c57 .word 0x00027c57
0000d4d8 <decompress_line>:
{
d4d8: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
}
else if(rle_state == RLE_STATE_COUNTER) {
ret = rle_prev_v;
rle_cnt--;
if(rle_cnt == 0) {
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d4dc: 4c39 ldr r4, [pc, #228] ; (d5c4 <decompress_line+0xec>)
d4de: f8df a0e8 ldr.w sl, [pc, #232] ; d5c8 <decompress_line+0xf0>
d4e2: f8d4 9000 ldr.w r9, [r4]
d4e6: 7927 ldrb r7, [r4, #4]
d4e8: 1843 adds r3, r0, r1
d4ea: 4680 mov r8, r0
d4ec: 9300 str r3, [sp, #0]
rle_state = RLE_STATE_COUNTER;
d4ee: f04f 0b02 mov.w fp, #2
for(i = 0; i < w; i++) {
d4f2: 9b00 ldr r3, [sp, #0]
d4f4: 4543 cmp r3, r8
d4f6: d102 bne.n d4fe <decompress_line+0x26>
}
d4f8: b003 add sp, #12
d4fa: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(rle_state == RLE_STATE_SINGLE) {
d4fe: 7963 ldrb r3, [r4, #5]
d500: b9a3 cbnz r3, d52c <decompress_line+0x54>
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d502: 68a6 ldr r6, [r4, #8]
d504: 9301 str r3, [sp, #4]
d506: 463a mov r2, r7
d508: 4631 mov r1, r6
d50a: 4648 mov r0, r9
d50c: 47d0 blx sl
d50e: 4605 mov r5, r0
if(rle_rdp != 0 && rle_prev_v == ret) {
d510: b136 cbz r6, d520 <decompress_line+0x48>
d512: 7b22 ldrb r2, [r4, #12]
d514: 9b01 ldr r3, [sp, #4]
d516: 4282 cmp r2, r0
rle_cnt = 0;
d518: bf02 ittt eq
d51a: 7363 strbeq r3, [r4, #13]
rle_state = RLE_STATE_REPEATE;
d51c: 2301 moveq r3, #1
d51e: 7163 strbeq r3, [r4, #5]
rle_rdp += rle_bpp;
d520: 443e add r6, r7
rle_prev_v = ret;
d522: 7325 strb r5, [r4, #12]
rle_rdp += rle_bpp;
d524: 60a6 str r6, [r4, #8]
out[i] = rle_next();
d526: f808 5b01 strb.w r5, [r8], #1
for(i = 0; i < w; i++) {
d52a: e7e2 b.n d4f2 <decompress_line+0x1a>
else if(rle_state == RLE_STATE_REPEATE) {
d52c: 2b01 cmp r3, #1
d52e: d131 bne.n d594 <decompress_line+0xbc>
v = get_bits(rle_in, rle_rdp, 1);
d530: 68a6 ldr r6, [r4, #8]
d532: 461a mov r2, r3
d534: 4631 mov r1, r6
d536: 4648 mov r0, r9
d538: 47d0 blx sl
rle_cnt++;
d53a: 7b63 ldrb r3, [r4, #13]
d53c: 3301 adds r3, #1
d53e: b2db uxtb r3, r3
rle_rdp += 1;
d540: 1c71 adds r1, r6, #1
if(v == 1) {
d542: 2801 cmp r0, #1
rle_cnt++;
d544: 7363 strb r3, [r4, #13]
rle_rdp += 1;
d546: 60a1 str r1, [r4, #8]
if(v == 1) {
d548: d118 bne.n d57c <decompress_line+0xa4>
if(rle_cnt == 11) {
d54a: 2b0b cmp r3, #11
ret = rle_prev_v;
d54c: 7b25 ldrb r5, [r4, #12]
if(rle_cnt == 11) {
d54e: d1ea bne.n d526 <decompress_line+0x4e>
rle_cnt = get_bits(rle_in, rle_rdp, 6);
d550: 2206 movs r2, #6
d552: 4648 mov r0, r9
d554: 47d0 blx sl
rle_rdp += 6;
d556: 3607 adds r6, #7
rle_cnt = get_bits(rle_in, rle_rdp, 6);
d558: 7360 strb r0, [r4, #13]
rle_rdp += 6;
d55a: 60a6 str r6, [r4, #8]
if(rle_cnt != 0) {
d55c: b110 cbz r0, d564 <decompress_line+0x8c>
rle_state = RLE_STATE_COUNTER;
d55e: f884 b005 strb.w fp, [r4, #5]
d562: e7e0 b.n d526 <decompress_line+0x4e>
d564: 9001 str r0, [sp, #4]
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d566: 4631 mov r1, r6
d568: 463a mov r2, r7
d56a: 4648 mov r0, r9
d56c: 47d0 blx sl
rle_rdp += rle_bpp;
d56e: 443e add r6, r7
rle_state = RLE_STATE_SINGLE;
d570: 9b01 ldr r3, [sp, #4]
rle_prev_v = ret;
d572: 7320 strb r0, [r4, #12]
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d574: 4605 mov r5, r0
rle_rdp += rle_bpp;
d576: 60a6 str r6, [r4, #8]
rle_state = RLE_STATE_SINGLE;
d578: 7163 strb r3, [r4, #5]
d57a: e7d4 b.n d526 <decompress_line+0x4e>
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d57c: 463a mov r2, r7
d57e: 4648 mov r0, r9
d580: 9101 str r1, [sp, #4]
d582: 47d0 blx sl
rle_rdp += rle_bpp;
d584: 9901 ldr r1, [sp, #4]
rle_prev_v = ret;
d586: 7320 strb r0, [r4, #12]
rle_rdp += rle_bpp;
d588: 4439 add r1, r7
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d58a: 4605 mov r5, r0
rle_rdp += rle_bpp;
d58c: 60a1 str r1, [r4, #8]
rle_state = RLE_STATE_SINGLE;
d58e: f04f 0300 mov.w r3, #0
d592: e7f1 b.n d578 <decompress_line+0xa0>
else if(rle_state == RLE_STATE_COUNTER) {
d594: 2b02 cmp r3, #2
d596: d112 bne.n d5be <decompress_line+0xe6>
rle_cnt--;
d598: 7b66 ldrb r6, [r4, #13]
ret = rle_prev_v;
d59a: 7b25 ldrb r5, [r4, #12]
rle_cnt--;
d59c: 3e01 subs r6, #1
d59e: b2f6 uxtb r6, r6
d5a0: 7366 strb r6, [r4, #13]
if(rle_cnt == 0) {
d5a2: 2e00 cmp r6, #0
d5a4: d1bf bne.n d526 <decompress_line+0x4e>
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d5a6: 68a1 ldr r1, [r4, #8]
d5a8: 9101 str r1, [sp, #4]
d5aa: 463a mov r2, r7
d5ac: 4648 mov r0, r9
d5ae: 47d0 blx sl
rle_prev_v = ret;
rle_rdp += rle_bpp;
d5b0: 9901 ldr r1, [sp, #4]
rle_prev_v = ret;
d5b2: 7320 strb r0, [r4, #12]
rle_rdp += rle_bpp;
d5b4: 4439 add r1, r7
ret = get_bits(rle_in, rle_rdp, rle_bpp);
d5b6: 4605 mov r5, r0
rle_rdp += rle_bpp;
d5b8: 60a1 str r1, [r4, #8]
rle_state = RLE_STATE_SINGLE;
d5ba: 7166 strb r6, [r4, #5]
d5bc: e7b3 b.n d526 <decompress_line+0x4e>
uint8_t ret = 0;
d5be: 2500 movs r5, #0
d5c0: e7b1 b.n d526 <decompress_line+0x4e>
d5c2: bf00 nop
d5c4: 200035a4 .word 0x200035a4
d5c8: 0000d439 .word 0x0000d439
0000d5cc <unicode_list_compare>:
* @retval > 0 Reference is less than element.
*
*/
static int32_t unicode_list_compare(const void * ref, const void * element)
{
return ((int32_t)(*(uint16_t *)ref)) - ((int32_t)(*(uint16_t *)element));
d5cc: 8800 ldrh r0, [r0, #0]
d5ce: 880b ldrh r3, [r1, #0]
}
d5d0: 1ac0 subs r0, r0, r3
d5d2: 4770 bx lr
0000d5d4 <get_glyph_dsc_id>:
{
d5d4: b5f0 push {r4, r5, r6, r7, lr}
if(letter == '\0') return 0;
d5d6: 460c mov r4, r1
{
d5d8: b085 sub sp, #20
if(letter == '\0') return 0;
d5da: b121 cbz r1, d5e6 <get_glyph_dsc_id+0x12>
d5dc: 6905 ldr r5, [r0, #16]
if(letter == fdsc->last_letter) return fdsc->last_glyph_id;
d5de: 69ab ldr r3, [r5, #24]
d5e0: 4299 cmp r1, r3
d5e2: d146 bne.n d672 <get_glyph_dsc_id+0x9e>
d5e4: 69ec ldr r4, [r5, #28]
}
d5e6: 4620 mov r0, r4
d5e8: b005 add sp, #20
d5ea: bdf0 pop {r4, r5, r6, r7, pc}
uint32_t rcp = letter - fdsc->cmaps[i].range_start;
d5ec: 68aa ldr r2, [r5, #8]
d5ee: fb00 f603 mul.w r6, r0, r3
d5f2: 1991 adds r1, r2, r6
d5f4: 5992 ldr r2, [r2, r6]
if(rcp > fdsc->cmaps[i].range_length) continue;
d5f6: 888f ldrh r7, [r1, #4]
uint32_t rcp = letter - fdsc->cmaps[i].range_start;
d5f8: 1aa2 subs r2, r4, r2
if(rcp > fdsc->cmaps[i].range_length) continue;
d5fa: 42ba cmp r2, r7
uint32_t rcp = letter - fdsc->cmaps[i].range_start;
d5fc: 9203 str r2, [sp, #12]
if(rcp > fdsc->cmaps[i].range_length) continue;
d5fe: f103 0301 add.w r3, r3, #1
d602: d838 bhi.n d676 <get_glyph_dsc_id+0xa2>
if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY) {
d604: 7c8b ldrb r3, [r1, #18]
d606: b913 cbnz r3, d60e <get_glyph_dsc_id+0x3a>
glyph_id = fdsc->cmaps[i].glyph_id_start + rcp;
d608: 88cb ldrh r3, [r1, #6]
glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_16[ofs];
d60a: 4413 add r3, r2
d60c: e010 b.n d630 <get_glyph_dsc_id+0x5c>
else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL) {
d60e: 2b01 cmp r3, #1
d610: d103 bne.n d61a <get_glyph_dsc_id+0x46>
glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_8[rcp];
d612: 68cb ldr r3, [r1, #12]
d614: 5c9b ldrb r3, [r3, r2]
d616: 88ca ldrh r2, [r1, #6]
d618: e7f7 b.n d60a <get_glyph_dsc_id+0x36>
else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_TINY) {
d61a: 2b02 cmp r3, #2
d61c: d114 bne.n d648 <get_glyph_dsc_id+0x74>
uint8_t * p = _lv_utils_bsearch(&rcp, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length,
d61e: 481b ldr r0, [pc, #108] ; (d68c <get_glyph_dsc_id+0xb8>)
d620: 8a0a ldrh r2, [r1, #16]
d622: 9000 str r0, [sp, #0]
d624: 6889 ldr r1, [r1, #8]
d626: 4f1a ldr r7, [pc, #104] ; (d690 <get_glyph_dsc_id+0xbc>)
d628: a803 add r0, sp, #12
d62a: 47b8 blx r7
if(p) {
d62c: b920 cbnz r0, d638 <get_glyph_dsc_id+0x64>
uint32_t glyph_id = 0;
d62e: 2300 movs r3, #0
fdsc->last_glyph_id = glyph_id;
d630: e9c5 4306 strd r4, r3, [r5, #24]
return glyph_id;
d634: 461c mov r4, r3
d636: e7d6 b.n d5e6 <get_glyph_dsc_id+0x12>
lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list);
d638: 68ab ldr r3, [r5, #8]
d63a: 4433 add r3, r6
d63c: 689a ldr r2, [r3, #8]
glyph_id = fdsc->cmaps[i].glyph_id_start + ofs;
d63e: 88db ldrh r3, [r3, #6]
lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list);
d640: 1a80 subs r0, r0, r2
glyph_id = fdsc->cmaps[i].glyph_id_start + ofs;
d642: eb03 0350 add.w r3, r3, r0, lsr #1
d646: e7f3 b.n d630 <get_glyph_dsc_id+0x5c>
else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_FULL) {
d648: 2b03 cmp r3, #3
d64a: d1f0 bne.n d62e <get_glyph_dsc_id+0x5a>
uint8_t * p = _lv_utils_bsearch(&rcp, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length,
d64c: 4b0f ldr r3, [pc, #60] ; (d68c <get_glyph_dsc_id+0xb8>)
d64e: 8a0a ldrh r2, [r1, #16]
d650: 9300 str r3, [sp, #0]
d652: 6889 ldr r1, [r1, #8]
d654: 4f0e ldr r7, [pc, #56] ; (d690 <get_glyph_dsc_id+0xbc>)
d656: 2302 movs r3, #2
d658: a803 add r0, sp, #12
d65a: 47b8 blx r7
if(p) {
d65c: 2800 cmp r0, #0
d65e: d0e6 beq.n d62e <get_glyph_dsc_id+0x5a>
lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list);
d660: 68aa ldr r2, [r5, #8]
d662: 4432 add r2, r6
d664: 6893 ldr r3, [r2, #8]
d666: 1ac0 subs r0, r0, r3
ofs = ofs >> 1; /*The list stores `uint16_t` so the get the index divide by 2*/
d668: 0840 lsrs r0, r0, #1
glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_16[ofs];
d66a: 68d3 ldr r3, [r2, #12]
d66c: 88d2 ldrh r2, [r2, #6]
d66e: 5c1b ldrb r3, [r3, r0]
d670: e7cb b.n d60a <get_glyph_dsc_id+0x36>
d672: 2300 movs r3, #0
d674: 2014 movs r0, #20
for(i = 0; i < fdsc->cmap_num; i++) {
d676: 8a6a ldrh r2, [r5, #18]
d678: b299 uxth r1, r3
d67a: f3c2 0209 ubfx r2, r2, #0, #10
d67e: 428a cmp r2, r1
d680: d8b4 bhi.n d5ec <get_glyph_dsc_id+0x18>
fdsc->last_letter = letter;
d682: 61ac str r4, [r5, #24]
fdsc->last_glyph_id = 0;
d684: 2400 movs r4, #0
d686: 61ec str r4, [r5, #28]
return 0;
d688: e7ad b.n d5e6 <get_glyph_dsc_id+0x12>
d68a: bf00 nop
d68c: 0000d5cd .word 0x0000d5cd
d690: 0001051d .word 0x0001051d
0000d694 <lv_font_get_bitmap_fmt_txt>:
{
d694: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
d698: ed2d 8b02 vpush {d8}
if(unicode_letter == '\t') unicode_letter = ' ';
d69c: 2909 cmp r1, #9
uint32_t gid = get_glyph_dsc_id(font, unicode_letter);
d69e: 4b68 ldr r3, [pc, #416] ; (d840 <lv_font_get_bitmap_fmt_txt+0x1ac>)
lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;
d6a0: 6905 ldr r5, [r0, #16]
{
d6a2: b08b sub sp, #44 ; 0x2c
uint32_t gid = get_glyph_dsc_id(font, unicode_letter);
d6a4: bf08 it eq
d6a6: 2120 moveq r1, #32
d6a8: 4798 blx r3
if(!gid) return NULL;
d6aa: 4607 mov r7, r0
d6ac: b928 cbnz r0, d6ba <lv_font_get_bitmap_fmt_txt+0x26>
d6ae: 2000 movs r0, #0
}
d6b0: b00b add sp, #44 ; 0x2c
d6b2: ecbd 8b02 vpop {d8}
d6b6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) {
d6ba: 7d2b ldrb r3, [r5, #20]
const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid];
d6bc: f8d5 9004 ldr.w r9, [r5, #4]
if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) {
d6c0: 079b lsls r3, r3, #30
const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid];
d6c2: eb09 08c0 add.w r8, r9, r0, lsl #3
if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) {
d6c6: d109 bne.n d6dc <lv_font_get_bitmap_fmt_txt+0x48>
if(gdsc) return &fdsc->glyph_bitmap[gdsc->bitmap_index];
d6c8: f1b8 0f00 cmp.w r8, #0
d6cc: d0ef beq.n d6ae <lv_font_get_bitmap_fmt_txt+0x1a>
d6ce: f859 3030 ldr.w r3, [r9, r0, lsl #3]
d6d2: 6828 ldr r0, [r5, #0]
d6d4: f3c3 0313 ubfx r3, r3, #0, #20
d6d8: 4418 add r0, r3
d6da: e7e9 b.n d6b0 <lv_font_get_bitmap_fmt_txt+0x1c>
uint32_t gsize = gdsc->box_w * gdsc->box_h;
d6dc: f898 4004 ldrb.w r4, [r8, #4]
d6e0: f898 3005 ldrb.w r3, [r8, #5]
d6e4: fb14 f403 smulbb r4, r4, r3
if(gsize == 0) return NULL;
d6e8: 2c00 cmp r4, #0
d6ea: d0e0 beq.n d6ae <lv_font_get_bitmap_fmt_txt+0x1a>
switch(fdsc->bpp) {
d6ec: 7ceb ldrb r3, [r5, #19]
d6ee: f3c3 0383 ubfx r3, r3, #2, #4
d6f2: 3b01 subs r3, #1
d6f4: 2b03 cmp r3, #3
d6f6: d805 bhi.n d704 <lv_font_get_bitmap_fmt_txt+0x70>
d6f8: e8df f003 tbb [pc, r3]
d6fc: 53535002 .word 0x53535002
buf_size = (gsize + 7) >> 3;
d700: 3407 adds r4, #7
d702: 08e4 lsrs r4, r4, #3
if(_lv_mem_get_size(decompr_buf) < buf_size) {
d704: 4e4f ldr r6, [pc, #316] ; (d844 <lv_font_get_bitmap_fmt_txt+0x1b0>)
d706: 4b50 ldr r3, [pc, #320] ; (d848 <lv_font_get_bitmap_fmt_txt+0x1b4>)
d708: 6930 ldr r0, [r6, #16]
d70a: 4798 blx r3
d70c: 42a0 cmp r0, r4
d70e: d34b bcc.n d7a8 <lv_font_get_bitmap_fmt_txt+0x114>
decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp);
d710: f859 2037 ldr.w r2, [r9, r7, lsl #3]
d714: 682b ldr r3, [r5, #0]
d716: 7ced ldrb r5, [r5, #19]
d718: f898 7004 ldrb.w r7, [r8, #4]
d71c: f3c2 0213 ubfx r2, r2, #0, #20
d720: 4413 add r3, r2
d722: 6932 ldr r2, [r6, #16]
rle_in = in;
d724: 6033 str r3, [r6, #0]
decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp);
d726: ee08 2a10 vmov s16, r2
d72a: f898 2005 ldrb.w r2, [r8, #5]
d72e: 9207 str r2, [sp, #28]
d730: f3c5 0283 ubfx r2, r5, #2, #4
d734: 2a03 cmp r2, #3
rle_state = RLE_STATE_SINGLE;
d736: f04f 0b00 mov.w fp, #0
decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp);
d73a: 4611 mov r1, r2
rle_bpp = bpp;
d73c: 7132 strb r2, [r6, #4]
d73e: bf08 it eq
d740: 2104 moveq r1, #4
rle_state = RLE_STATE_SINGLE;
d742: f886 b005 strb.w fp, [r6, #5]
rle_rdp = 0;
d746: f8c6 b008 str.w fp, [r6, #8]
rle_prev_v = 0;
d74a: f886 b00c strb.w fp, [r6, #12]
rle_cnt = 0;
d74e: f886 b00d strb.w fp, [r6, #13]
uint8_t * line_buf1 = _lv_mem_buf_get(w);
d752: 4638 mov r0, r7
d754: 4e3d ldr r6, [pc, #244] ; (d84c <lv_font_get_bitmap_fmt_txt+0x1b8>)
decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp);
d756: 9203 str r2, [sp, #12]
if(bpp == 3) wr_size = 4;
d758: 9104 str r1, [sp, #16]
uint8_t * line_buf1 = _lv_mem_buf_get(w);
d75a: 47b0 blx r6
d75c: 4604 mov r4, r0
uint8_t * line_buf2 = _lv_mem_buf_get(w);
d75e: 4638 mov r0, r7
d760: 47b0 blx r6
decompress_line(line_buf1, w);
d762: 4b3b ldr r3, [pc, #236] ; (d850 <lv_font_get_bitmap_fmt_txt+0x1bc>)
uint8_t * line_buf2 = _lv_mem_buf_get(w);
d764: 4606 mov r6, r0
decompress_line(line_buf1, w);
d766: 4639 mov r1, r7
d768: 4620 mov r0, r4
d76a: 4798 blx r3
decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp);
d76c: 46b9 mov r9, r7
d76e: 46a0 mov r8, r4
d770: eb07 0a04 add.w sl, r7, r4
for(x = 0; x < w; x++) {
d774: 45d0 cmp r8, sl
d776: d131 bne.n d7dc <lv_font_get_bitmap_fmt_txt+0x148>
d778: 9b04 ldr r3, [sp, #16]
d77a: fb17 f303 smulbb r3, r7, r3
d77e: 9306 str r3, [sp, #24]
d780: 469a mov sl, r3
for(y = 1; y < h; y++) {
d782: f04f 0801 mov.w r8, #1
d786: 9b07 ldr r3, [sp, #28]
d788: 4543 cmp r3, r8
d78a: dc32 bgt.n d7f2 <lv_font_get_bitmap_fmt_txt+0x15e>
_lv_mem_buf_release(line_buf1);
d78c: 4620 mov r0, r4
d78e: 4c31 ldr r4, [pc, #196] ; (d854 <lv_font_get_bitmap_fmt_txt+0x1c0>)
d790: 47a0 blx r4
_lv_mem_buf_release(line_buf2);
d792: 4630 mov r0, r6
d794: 47a0 blx r4
return decompr_buf;
d796: 4b2b ldr r3, [pc, #172] ; (d844 <lv_font_get_bitmap_fmt_txt+0x1b0>)
d798: 6918 ldr r0, [r3, #16]
d79a: e789 b.n d6b0 <lv_font_get_bitmap_fmt_txt+0x1c>
buf_size = (gsize + 3) >> 2;
d79c: 3403 adds r4, #3
d79e: 08a4 lsrs r4, r4, #2
break;
d7a0: e7b0 b.n d704 <lv_font_get_bitmap_fmt_txt+0x70>
buf_size = (gsize + 1) >> 1;
d7a2: 3401 adds r4, #1
d7a4: 0864 lsrs r4, r4, #1
break;
d7a6: e7ad b.n d704 <lv_font_get_bitmap_fmt_txt+0x70>
decompr_buf = lv_mem_realloc(decompr_buf, buf_size);
d7a8: 4621 mov r1, r4
d7aa: 4b2b ldr r3, [pc, #172] ; (d858 <lv_font_get_bitmap_fmt_txt+0x1c4>)
d7ac: 6930 ldr r0, [r6, #16]
d7ae: 4798 blx r3
LV_ASSERT_MEM(decompr_buf);
d7b0: 4b2a ldr r3, [pc, #168] ; (d85c <lv_font_get_bitmap_fmt_txt+0x1c8>)
decompr_buf = lv_mem_realloc(decompr_buf, buf_size);
d7b2: 6130 str r0, [r6, #16]
LV_ASSERT_MEM(decompr_buf);
d7b4: 4798 blx r3
d7b6: 4604 mov r4, r0
d7b8: b960 cbnz r0, d7d4 <lv_font_get_bitmap_fmt_txt+0x140>
d7ba: 4b29 ldr r3, [pc, #164] ; (d860 <lv_font_get_bitmap_fmt_txt+0x1cc>)
d7bc: 4929 ldr r1, [pc, #164] ; (d864 <lv_font_get_bitmap_fmt_txt+0x1d0>)
d7be: 9300 str r3, [sp, #0]
d7c0: 2272 movs r2, #114 ; 0x72
d7c2: 2003 movs r0, #3
d7c4: 4d28 ldr r5, [pc, #160] ; (d868 <lv_font_get_bitmap_fmt_txt+0x1d4>)
d7c6: 47a8 blx r5
d7c8: 6932 ldr r2, [r6, #16]
d7ca: 4828 ldr r0, [pc, #160] ; (d86c <lv_font_get_bitmap_fmt_txt+0x1d8>)
d7cc: 4928 ldr r1, [pc, #160] ; (d870 <lv_font_get_bitmap_fmt_txt+0x1dc>)
d7ce: 4623 mov r3, r4
d7d0: 4788 blx r1
d7d2: e7fe b.n d7d2 <lv_font_get_bitmap_fmt_txt+0x13e>
if(decompr_buf == NULL) return NULL;
d7d4: 6933 ldr r3, [r6, #16]
d7d6: 2b00 cmp r3, #0
d7d8: d19a bne.n d710 <lv_font_get_bitmap_fmt_txt+0x7c>
d7da: e768 b.n d6ae <lv_font_get_bitmap_fmt_txt+0x1a>
bits_write(out, wrp, line_buf1[x], bpp);
d7dc: 9b03 ldr r3, [sp, #12]
d7de: f818 2b01 ldrb.w r2, [r8], #1
d7e2: 4d24 ldr r5, [pc, #144] ; (d874 <lv_font_get_bitmap_fmt_txt+0x1e0>)
d7e4: 4659 mov r1, fp
d7e6: ee18 0a10 vmov r0, s16
d7ea: 47a8 blx r5
wrp += wr_size;
d7ec: 9b04 ldr r3, [sp, #16]
d7ee: 449b add fp, r3
for(x = 0; x < w; x++) {
d7f0: e7c0 b.n d774 <lv_font_get_bitmap_fmt_txt+0xe0>
decompress_line(line_buf2, w);
d7f2: 4b17 ldr r3, [pc, #92] ; (d850 <lv_font_get_bitmap_fmt_txt+0x1bc>)
d7f4: 4649 mov r1, r9
d7f6: 4630 mov r0, r6
d7f8: 4798 blx r3
for(x = 0; x < w; x++) {
d7fa: 1e63 subs r3, r4, #1
d7fc: 9305 str r3, [sp, #20]
d7fe: 19f3 adds r3, r6, r7
d800: 46b3 mov fp, r6
d802: 9308 str r3, [sp, #32]
d804: 4651 mov r1, sl
d806: 9b08 ldr r3, [sp, #32]
d808: 459b cmp fp, r3
d80a: d106 bne.n d81a <lv_font_get_bitmap_fmt_txt+0x186>
d80c: 9b06 ldr r3, [sp, #24]
d80e: f108 0801 add.w r8, r8, #1
d812: 449a add sl, r3
for(y = 1; y < h; y++) {
d814: fa0f f888 sxth.w r8, r8
d818: e7b5 b.n d786 <lv_font_get_bitmap_fmt_txt+0xf2>
line_buf1[x] = line_buf2[x] ^ line_buf1[x];
d81a: 9805 ldr r0, [sp, #20]
d81c: f81b 2b01 ldrb.w r2, [fp], #1
d820: f810 3f01 ldrb.w r3, [r0, #1]!
d824: 9005 str r0, [sp, #20]
d826: 405a eors r2, r3
d828: 7002 strb r2, [r0, #0]
bits_write(out, wrp, line_buf1[x], bpp);
d82a: 9b03 ldr r3, [sp, #12]
d82c: 4d11 ldr r5, [pc, #68] ; (d874 <lv_font_get_bitmap_fmt_txt+0x1e0>)
d82e: 9109 str r1, [sp, #36] ; 0x24
d830: ee18 0a10 vmov r0, s16
d834: 47a8 blx r5
wrp += wr_size;
d836: 9b04 ldr r3, [sp, #16]
d838: 9909 ldr r1, [sp, #36] ; 0x24
d83a: 4419 add r1, r3
for(x = 0; x < w; x++) {
d83c: e7e3 b.n d806 <lv_font_get_bitmap_fmt_txt+0x172>
d83e: bf00 nop
d840: 0000d5d5 .word 0x0000d5d5
d844: 200035a4 .word 0x200035a4
d848: 0000eddd .word 0x0000eddd
d84c: 0000f145 .word 0x0000f145
d850: 0000d4d9 .word 0x0000d4d9
d854: 0000edf9 .word 0x0000edf9
d858: 0000f0a5 .word 0x0000f0a5
d85c: 00001a65 .word 0x00001a65
d860: 00027c5f .word 0x00027c5f
d864: 00027c1f .word 0x00027c1f
d868: 0000eb79 .word 0x0000eb79
d86c: 00026842 .word 0x00026842
d870: 00001a6d .word 0x00001a6d
d874: 0000d49d .word 0x0000d49d
0000d878 <lv_font_get_glyph_dsc_fmt_txt>:
if(unicode_letter == '\t') {
d878: 2a09 cmp r2, #9
{
d87a: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr}
uint32_t gid = get_glyph_dsc_id(font, unicode_letter);
d87e: f8df a13c ldr.w sl, [pc, #316] ; d9bc <lv_font_get_glyph_dsc_fmt_txt+0x144>
lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;
d882: 6907 ldr r7, [r0, #16]
{
d884: 460c mov r4, r1
d886: 4611 mov r1, r2
unicode_letter = ' ';
d888: bf08 it eq
d88a: 2120 moveq r1, #32
{
d88c: 4680 mov r8, r0
d88e: 4699 mov r9, r3
is_tab = true;
d890: bf0c ite eq
d892: 2601 moveq r6, #1
bool is_tab = false;
d894: 2600 movne r6, #0
uint32_t gid = get_glyph_dsc_id(font, unicode_letter);
d896: 47d0 blx sl
if(!gid) return false;
d898: 4605 mov r5, r0
d89a: 2800 cmp r0, #0
d89c: f000 8086 beq.w d9ac <lv_font_get_glyph_dsc_fmt_txt+0x134>
if(fdsc->kern_dsc) {
d8a0: 68fb ldr r3, [r7, #12]
d8a2: bb3b cbnz r3, d8f4 <lv_font_get_glyph_dsc_fmt_txt+0x7c>
int8_t kvalue = 0;
d8a4: 2300 movs r3, #0
const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid];
d8a6: 6879 ldr r1, [r7, #4]
int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4);
d8a8: 8a3a ldrh r2, [r7, #16]
const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid];
d8aa: eb01 01c5 add.w r1, r1, r5, lsl #3
int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4);
d8ae: 4353 muls r3, r2
uint32_t adv_w = gdsc->adv_w;
d8b0: 884a ldrh r2, [r1, #2]
d8b2: f3c2 100b ubfx r0, r2, #4, #12
int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4);
d8b6: 111b asrs r3, r3, #4
uint32_t adv_w = gdsc->adv_w;
d8b8: 4602 mov r2, r0
if(is_tab) adv_w *= 2;
d8ba: b10e cbz r6, d8c0 <lv_font_get_glyph_dsc_fmt_txt+0x48>
d8bc: b202 sxth r2, r0
d8be: 0052 lsls r2, r2, #1
adv_w = (adv_w + (1 << 3)) >> 4;
d8c0: 3308 adds r3, #8
d8c2: 4413 add r3, r2
d8c4: 091b lsrs r3, r3, #4
dsc_out->adv_w = adv_w;
d8c6: 8023 strh r3, [r4, #0]
dsc_out->box_h = gdsc->box_h;
d8c8: 794b ldrb r3, [r1, #5]
d8ca: 80a3 strh r3, [r4, #4]
dsc_out->box_w = gdsc->box_w;
d8cc: 790b ldrb r3, [r1, #4]
d8ce: 8063 strh r3, [r4, #2]
dsc_out->ofs_x = gdsc->ofs_x;
d8d0: f991 2006 ldrsb.w r2, [r1, #6]
d8d4: 80e2 strh r2, [r4, #6]
dsc_out->ofs_y = gdsc->ofs_y;
d8d6: f991 2007 ldrsb.w r2, [r1, #7]
d8da: 8122 strh r2, [r4, #8]
dsc_out->bpp = (uint8_t)fdsc->bpp;
d8dc: 7cfa ldrb r2, [r7, #19]
d8de: f3c2 0283 ubfx r2, r2, #2, #4
d8e2: 72a2 strb r2, [r4, #10]
if(is_tab) dsc_out->box_w = dsc_out->box_w * 2;
d8e4: 2e00 cmp r6, #0
d8e6: d063 beq.n d9b0 <lv_font_get_glyph_dsc_fmt_txt+0x138>
d8e8: 005b lsls r3, r3, #1
d8ea: 8063 strh r3, [r4, #2]
}
d8ec: 4630 mov r0, r6
d8ee: b004 add sp, #16
d8f0: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
uint32_t gid_next = get_glyph_dsc_id(font, unicode_letter_next);
d8f4: 4649 mov r1, r9
d8f6: 4640 mov r0, r8
d8f8: 47d0 blx sl
if(gid_next) {
d8fa: 2800 cmp r0, #0
d8fc: d0d2 beq.n d8a4 <lv_font_get_glyph_dsc_fmt_txt+0x2c>
kvalue = get_kern_value(font, gid, gid_next);
d8fe: f8d8 2010 ldr.w r2, [r8, #16]
const lv_font_fmt_txt_kern_pair_t * kdsc = fdsc->kern_dsc;
d902: f8d2 800c ldr.w r8, [r2, #12]
if(fdsc->kern_classes == 0) {
d906: 7cd2 ldrb r2, [r2, #19]
d908: 0653 lsls r3, r2, #25
d90a: d43a bmi.n d982 <lv_font_get_glyph_dsc_fmt_txt+0x10a>
if(kdsc->glyph_ids_size == 0) {
d90c: f898 200b ldrb.w r2, [r8, #11]
d910: f012 0203 ands.w r2, r2, #3
d914: d11b bne.n d94e <lv_font_get_glyph_dsc_fmt_txt+0xd6>
const uint8_t * g_ids = kdsc->glyph_ids;
d916: f8d8 9000 ldr.w r9, [r8]
uint8_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 2, kern_pair_8_compare);
d91a: f8d8 2008 ldr.w r2, [r8, #8]
d91e: f8df a0a0 ldr.w sl, [pc, #160] ; d9c0 <lv_font_get_glyph_dsc_fmt_txt+0x148>
uint16_t g_id_both = (gid_right << 8) + gid_left; /*Create one number from the ids*/
d922: eb05 2300 add.w r3, r5, r0, lsl #8
d926: f8ad 300c strh.w r3, [sp, #12]
uint8_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 2, kern_pair_8_compare);
d92a: 4b22 ldr r3, [pc, #136] ; (d9b4 <lv_font_get_glyph_dsc_fmt_txt+0x13c>)
d92c: 9300 str r3, [sp, #0]
d92e: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000
d932: 2302 movs r3, #2
d934: 4649 mov r1, r9
d936: a803 add r0, sp, #12
d938: 47d0 blx sl
if(kid_p) {
d93a: 4603 mov r3, r0
d93c: 2800 cmp r0, #0
d93e: d0b2 beq.n d8a6 <lv_font_get_glyph_dsc_fmt_txt+0x2e>
lv_uintptr_t ofs = (lv_uintptr_t)(kid_p - g_ids);
d940: eba0 0309 sub.w r3, r0, r9
ofs = ofs >> 1; /*ofs is for pair, divide by 2 to refer as a single value*/
d944: 085b lsrs r3, r3, #1
value = kdsc->values[ofs];
d946: f8d8 2004 ldr.w r2, [r8, #4]
d94a: 56d3 ldrsb r3, [r2, r3]
d94c: e7ab b.n d8a6 <lv_font_get_glyph_dsc_fmt_txt+0x2e>
else if(kdsc->glyph_ids_size == 1) {
d94e: 2a01 cmp r2, #1
d950: d1a8 bne.n d8a4 <lv_font_get_glyph_dsc_fmt_txt+0x2c>
const uint16_t * g_ids = kdsc->glyph_ids;
d952: f8d8 9000 ldr.w r9, [r8]
uint8_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 4, kern_pair_16_compare);
d956: f8d8 2008 ldr.w r2, [r8, #8]
d95a: 4b17 ldr r3, [pc, #92] ; (d9b8 <lv_font_get_glyph_dsc_fmt_txt+0x140>)
d95c: 9300 str r3, [sp, #0]
lv_uintptr_t g_id_both = (uint32_t)((uint32_t)gid_right << 8) + gid_left; /*Create one number from the ids*/
d95e: eb05 2000 add.w r0, r5, r0, lsl #8
d962: 9003 str r0, [sp, #12]
uint8_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 4, kern_pair_16_compare);
d964: 2304 movs r3, #4
d966: f8df a058 ldr.w sl, [pc, #88] ; d9c0 <lv_font_get_glyph_dsc_fmt_txt+0x148>
d96a: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000
d96e: 4649 mov r1, r9
d970: a803 add r0, sp, #12
d972: 47d0 blx sl
if(kid_p) {
d974: 4603 mov r3, r0
d976: 2800 cmp r0, #0
d978: d095 beq.n d8a6 <lv_font_get_glyph_dsc_fmt_txt+0x2e>
lv_uintptr_t ofs = (lv_uintptr_t)(kid_p - (const uint8_t *)g_ids);
d97a: eba0 0309 sub.w r3, r0, r9
ofs = ofs >> 4; /*ofs is 4 byte pairs, divide by 4 to refer as a single value*/
d97e: 091b lsrs r3, r3, #4
d980: e7e1 b.n d946 <lv_font_get_glyph_dsc_fmt_txt+0xce>
uint8_t left_class = kdsc->left_class_mapping[gid_left];
d982: f8d8 2004 ldr.w r2, [r8, #4]
uint8_t right_class = kdsc->right_class_mapping[gid_right];
d986: f8d8 1008 ldr.w r1, [r8, #8]
uint8_t left_class = kdsc->left_class_mapping[gid_left];
d98a: 5d52 ldrb r2, [r2, r5]
uint8_t right_class = kdsc->right_class_mapping[gid_right];
d98c: 5c09 ldrb r1, [r1, r0]
if(left_class > 0 && right_class > 0) {
d98e: 2a00 cmp r2, #0
d990: d088 beq.n d8a4 <lv_font_get_glyph_dsc_fmt_txt+0x2c>
d992: 2900 cmp r1, #0
d994: d086 beq.n d8a4 <lv_font_get_glyph_dsc_fmt_txt+0x2c>
value = kdsc->class_pair_values[(left_class - 1) * kdsc->right_class_cnt + (right_class - 1)];
d996: f8d8 3000 ldr.w r3, [r8]
d99a: f898 000d ldrb.w r0, [r8, #13]
d99e: 3a01 subs r2, #1
d9a0: 440b add r3, r1
d9a2: fb00 3302 mla r3, r0, r2, r3
d9a6: f913 3c01 ldrsb.w r3, [r3, #-1]
d9aa: e77c b.n d8a6 <lv_font_get_glyph_dsc_fmt_txt+0x2e>
if(!gid) return false;
d9ac: 4606 mov r6, r0
d9ae: e79d b.n d8ec <lv_font_get_glyph_dsc_fmt_txt+0x74>
return true;
d9b0: 2601 movs r6, #1
d9b2: e79b b.n d8ec <lv_font_get_glyph_dsc_fmt_txt+0x74>
d9b4: 0000d415 .word 0x0000d415
d9b8: 0000d427 .word 0x0000d427
d9bc: 0000d5d5 .word 0x0000d5d5
d9c0: 0001051d .word 0x0001051d
0000d9c4 <_lv_font_clean_up_fmt_txt>:
{
d9c4: b510 push {r4, lr}
if(decompr_buf) {
d9c6: 4c04 ldr r4, [pc, #16] ; (d9d8 <_lv_font_clean_up_fmt_txt+0x14>)
d9c8: 6920 ldr r0, [r4, #16]
d9ca: b118 cbz r0, d9d4 <_lv_font_clean_up_fmt_txt+0x10>
lv_mem_free(decompr_buf);
d9cc: 4b03 ldr r3, [pc, #12] ; (d9dc <_lv_font_clean_up_fmt_txt+0x18>)
d9ce: 4798 blx r3
decompr_buf = NULL;
d9d0: 2300 movs r3, #0
d9d2: 6123 str r3, [r4, #16]
}
d9d4: bd10 pop {r4, pc}
d9d6: bf00 nop
d9d8: 200035a4 .word 0x200035a4
d9dc: 0000ed75 .word 0x0000ed75
0000d9e0 <lv_disp_drv_init>:
* It is used to surly have known values in the fields ant not memory junk.
* After it you can set the fields.
* @param driver pointer to driver variable to initialize
*/
void lv_disp_drv_init(lv_disp_drv_t * driver)
{
d9e0: b510 push {r4, lr}
_lv_memset_00(driver, sizeof(lv_disp_drv_t));
d9e2: 4b0d ldr r3, [pc, #52] ; (da18 <lv_disp_drv_init+0x38>)
d9e4: 212c movs r1, #44 ; 0x2c
{
d9e6: 4604 mov r4, r0
_lv_memset_00(driver, sizeof(lv_disp_drv_t));
d9e8: 4798 blx r3
driver->flush_cb = NULL;
driver->hor_res = LV_HOR_RES_MAX;
d9ea: 4b0c ldr r3, [pc, #48] ; (da1c <lv_disp_drv_init+0x3c>)
driver->flush_cb = NULL;
d9ec: 2200 movs r2, #0
driver->ver_res = LV_VER_RES_MAX;
driver->buffer = NULL;
d9ee: e9c4 3200 strd r3, r2, [r4]
driver->rotated = 0;
driver->color_chroma_key = LV_COLOR_TRANSP;
driver->dpi = LV_DPI;
#if LV_ANTIALIAS
driver->antialiasing = true;
d9f2: 8923 ldrh r3, [r4, #8]
driver->flush_cb = NULL;
d9f4: 60e2 str r2, [r4, #12]
driver->antialiasing = true;
d9f6: f423 637f bic.w r3, r3, #4080 ; 0xff0
d9fa: f023 030f bic.w r3, r3, #15
d9fe: f443 7302 orr.w r3, r3, #520 ; 0x208
da02: f043 0301 orr.w r3, r3, #1
da06: 8123 strh r3, [r4, #8]
driver->color_chroma_key = LV_COLOR_TRANSP;
da08: f44f 63fc mov.w r3, #2016 ; 0x7e0
driver->screen_transp = 1;
#endif
#if LV_USE_GPU
driver->gpu_blend_cb = NULL;
driver->gpu_fill_cb = NULL;
da0c: e9c4 2208 strd r2, r2, [r4, #32]
driver->color_chroma_key = LV_COLOR_TRANSP;
da10: 8523 strh r3, [r4, #40] ; 0x28
#if LV_USE_USER_DATA
driver->user_data = NULL;
#endif
driver->set_px_cb = NULL;
da12: 6162 str r2, [r4, #20]
}
da14: bd10 pop {r4, pc}
da16: bf00 nop
da18: 0000f2a9 .word 0x0000f2a9
da1c: 011001e0 .word 0x011001e0
0000da20 <lv_disp_buf_init>:
* It lets LVGL to render next frame into the other buffer while previous is being
* sent. Set to `NULL` if unused.
* @param size_in_px_cnt size of the `buf1` and `buf2` in pixel count.
*/
void lv_disp_buf_init(lv_disp_buf_t * disp_buf, void * buf1, void * buf2, uint32_t size_in_px_cnt)
{
da20: b5f8 push {r3, r4, r5, r6, r7, lr}
da22: 4604 mov r4, r0
da24: 460d mov r5, r1
da26: 4617 mov r7, r2
da28: 461e mov r6, r3
_lv_memset_00(disp_buf, sizeof(lv_disp_buf_t));
da2a: 2124 movs r1, #36 ; 0x24
da2c: 4b03 ldr r3, [pc, #12] ; (da3c <lv_disp_buf_init+0x1c>)
da2e: 4798 blx r3
disp_buf->buf1 = buf1;
disp_buf->buf2 = buf2;
da30: e9c4 5700 strd r5, r7, [r4]
disp_buf->buf_act = disp_buf->buf1;
disp_buf->size = size_in_px_cnt;
da34: e9c4 5602 strd r5, r6, [r4, #8]
}
da38: bdf8 pop {r3, r4, r5, r6, r7, pc}
da3a: bf00 nop
da3c: 0000f2a9 .word 0x0000f2a9
0000da40 <lv_disp_drv_register>:
* Automatically set the first display as active.
* @param driver pointer to an initialized 'lv_disp_drv_t' variable (can be local variable)
* @return pointer to the new display or NULL on error
*/
lv_disp_t * lv_disp_drv_register(lv_disp_drv_t * driver)
{
da40: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
lv_disp_t * disp = _lv_ll_ins_head(&LV_GC_ROOT(_lv_disp_ll));
da44: 4b3b ldr r3, [pc, #236] ; (db34 <lv_disp_drv_register+0xf4>)
da46: 4e3c ldr r6, [pc, #240] ; (db38 <lv_disp_drv_register+0xf8>)
{
da48: 4605 mov r5, r0
lv_disp_t * disp = _lv_ll_ins_head(&LV_GC_ROOT(_lv_disp_ll));
da4a: 483c ldr r0, [pc, #240] ; (db3c <lv_disp_drv_register+0xfc>)
da4c: 4798 blx r3
if(!disp) {
da4e: 4604 mov r4, r0
da50: b998 cbnz r0, da7a <lv_disp_drv_register+0x3a>
LV_ASSERT_MEM(disp);
da52: 47b0 blx r6
da54: b120 cbz r0, da60 <lv_disp_drv_register+0x20>
return NULL;
da56: 2400 movs r4, #0
disp_def = disp_def_tmp; /*Revert the default display*/
lv_task_ready(disp->refr_task); /*Be sure the screen will be refreshed immediately on start up*/
return disp;
}
da58: 4620 mov r0, r4
da5a: b002 add sp, #8
da5c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
LV_ASSERT_MEM(disp);
da60: 4b37 ldr r3, [pc, #220] ; (db40 <lv_disp_drv_register+0x100>)
da62: 4938 ldr r1, [pc, #224] ; (db44 <lv_disp_drv_register+0x104>)
da64: 9300 str r3, [sp, #0]
da66: 227c movs r2, #124 ; 0x7c
da68: 2003 movs r0, #3
da6a: 4c37 ldr r4, [pc, #220] ; (db48 <lv_disp_drv_register+0x108>)
da6c: 47a0 blx r4
da6e: 4837 ldr r0, [pc, #220] ; (db4c <lv_disp_drv_register+0x10c>)
da70: 4937 ldr r1, [pc, #220] ; (db50 <lv_disp_drv_register+0x110>)
da72: 2200 movs r2, #0
da74: 2300 movs r3, #0
da76: 4788 blx r1
da78: e7fe b.n da78 <lv_disp_drv_register+0x38>
_lv_memset_00(disp, sizeof(lv_disp_t));
da7a: 4b36 ldr r3, [pc, #216] ; (db54 <lv_disp_drv_register+0x114>)
da7c: f44f 71b8 mov.w r1, #368 ; 0x170
da80: 4798 blx r3
_lv_memcpy(&disp->driver, driver, sizeof(lv_disp_drv_t));
da82: 4629 mov r1, r5
da84: 4b34 ldr r3, [pc, #208] ; (db58 <lv_disp_drv_register+0x118>)
if(disp_def == NULL) disp_def = disp;
da86: 4d35 ldr r5, [pc, #212] ; (db5c <lv_disp_drv_register+0x11c>)
_lv_memcpy(&disp->driver, driver, sizeof(lv_disp_drv_t));
da88: 222c movs r2, #44 ; 0x2c
da8a: 4620 mov r0, r4
da8c: 4798 blx r3
_lv_ll_init(&disp->scr_ll, sizeof(lv_obj_t));
da8e: 4b34 ldr r3, [pc, #208] ; (db60 <lv_disp_drv_register+0x120>)
da90: 214c movs r1, #76 ; 0x4c
da92: f104 0030 add.w r0, r4, #48 ; 0x30
da96: 4798 blx r3
disp->last_activity_time = 0;
da98: 2300 movs r3, #0
da9a: f8c4 316c str.w r3, [r4, #364] ; 0x16c
if(disp_def == NULL) disp_def = disp;
da9e: 682b ldr r3, [r5, #0]
daa0: b903 cbnz r3, daa4 <lv_disp_drv_register+0x64>
daa2: 602c str r4, [r5, #0]
disp->refr_task = lv_task_create(_lv_disp_refr_task, LV_DISP_DEF_REFR_PERIOD, LV_REFR_TASK_PRIO, disp);
daa4: 4623 mov r3, r4
daa6: 2203 movs r2, #3
daa8: 211e movs r1, #30
daaa: 482e ldr r0, [pc, #184] ; (db64 <lv_disp_drv_register+0x124>)
daac: f8df 80cc ldr.w r8, [pc, #204] ; db7c <lv_disp_drv_register+0x13c>
lv_disp_t * disp_def_tmp = disp_def;
dab0: 682f ldr r7, [r5, #0]
disp_def = disp; /*Temporarily change the default screen to create the default screens on the
dab2: 602c str r4, [r5, #0]
disp->refr_task = lv_task_create(_lv_disp_refr_task, LV_DISP_DEF_REFR_PERIOD, LV_REFR_TASK_PRIO, disp);
dab4: 47c0 blx r8
dab6: 62e0 str r0, [r4, #44] ; 0x2c
LV_ASSERT_MEM(disp->refr_task);
dab8: 47b0 blx r6
daba: 4606 mov r6, r0
dabc: b960 cbnz r0, dad8 <lv_disp_drv_register+0x98>
dabe: 4b20 ldr r3, [pc, #128] ; (db40 <lv_disp_drv_register+0x100>)
dac0: 4920 ldr r1, [pc, #128] ; (db44 <lv_disp_drv_register+0x104>)
dac2: 9300 str r3, [sp, #0]
dac4: 228d movs r2, #141 ; 0x8d
dac6: 2003 movs r0, #3
dac8: 4d1f ldr r5, [pc, #124] ; (db48 <lv_disp_drv_register+0x108>)
daca: 47a8 blx r5
dacc: 6ae2 ldr r2, [r4, #44] ; 0x2c
dace: 481f ldr r0, [pc, #124] ; (db4c <lv_disp_drv_register+0x10c>)
dad0: 491f ldr r1, [pc, #124] ; (db50 <lv_disp_drv_register+0x110>)
dad2: 4633 mov r3, r6
dad4: 4788 blx r1
dad6: e7fe b.n dad6 <lv_disp_drv_register+0x96>
if(disp->refr_task == NULL) return NULL;
dad8: 6ae3 ldr r3, [r4, #44] ; 0x2c
dada: 2b00 cmp r3, #0
dadc: d0bb beq.n da56 <lv_disp_drv_register+0x16>
disp->inv_p = 0;
dade: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168
disp->act_scr = lv_obj_create(NULL, NULL); /*Create a default screen on the display*/
dae2: 4e21 ldr r6, [pc, #132] ; (db68 <lv_disp_drv_register+0x128>)
disp->inv_p = 0;
dae4: f36f 0309 bfc r3, #0, #10
disp->last_activity_time = 0;
dae8: 2100 movs r1, #0
disp->inv_p = 0;
daea: f8a4 3168 strh.w r3, [r4, #360] ; 0x168
disp->last_activity_time = 0;
daee: f8c4 116c str.w r1, [r4, #364] ; 0x16c
disp->act_scr = lv_obj_create(NULL, NULL); /*Create a default screen on the display*/
daf2: 4608 mov r0, r1
daf4: 47b0 blx r6
disp->top_layer = lv_obj_create(NULL, NULL); /*Create top layer on the display*/
daf6: 2100 movs r1, #0
disp->act_scr = lv_obj_create(NULL, NULL); /*Create a default screen on the display*/
daf8: 63e0 str r0, [r4, #60] ; 0x3c
disp->top_layer = lv_obj_create(NULL, NULL); /*Create top layer on the display*/
dafa: 4608 mov r0, r1
dafc: 47b0 blx r6
disp->sys_layer = lv_obj_create(NULL, NULL); /*Create sys layer on the display*/
dafe: 2100 movs r1, #0
disp->top_layer = lv_obj_create(NULL, NULL); /*Create top layer on the display*/
db00: 6420 str r0, [r4, #64] ; 0x40
disp->sys_layer = lv_obj_create(NULL, NULL); /*Create sys layer on the display*/
db02: 4608 mov r0, r1
db04: 47b0 blx r6
lv_obj_reset_style_list(disp->top_layer, LV_OBJ_PART_MAIN);
db06: 4e19 ldr r6, [pc, #100] ; (db6c <lv_disp_drv_register+0x12c>)
disp->sys_layer = lv_obj_create(NULL, NULL); /*Create sys layer on the display*/
db08: 6460 str r0, [r4, #68] ; 0x44
lv_obj_reset_style_list(disp->top_layer, LV_OBJ_PART_MAIN);
db0a: 2100 movs r1, #0
db0c: 6c20 ldr r0, [r4, #64] ; 0x40
db0e: 47b0 blx r6
lv_obj_reset_style_list(disp->sys_layer, LV_OBJ_PART_MAIN);
db10: 6c60 ldr r0, [r4, #68] ; 0x44
db12: 2100 movs r1, #0
db14: 47b0 blx r6
lv_obj_set_click(disp->top_layer, false);
db16: 6c20 ldr r0, [r4, #64] ; 0x40
db18: 4e15 ldr r6, [pc, #84] ; (db70 <lv_disp_drv_register+0x130>)
db1a: 2100 movs r1, #0
db1c: 47b0 blx r6
lv_obj_set_click(disp->sys_layer, false);
db1e: 6c60 ldr r0, [r4, #68] ; 0x44
db20: 2100 movs r1, #0
db22: 47b0 blx r6
lv_obj_invalidate(disp->act_scr);
db24: 6be0 ldr r0, [r4, #60] ; 0x3c
db26: 4b13 ldr r3, [pc, #76] ; (db74 <lv_disp_drv_register+0x134>)
db28: 4798 blx r3
lv_task_ready(disp->refr_task); /*Be sure the screen will be refreshed immediately on start up*/
db2a: 6ae0 ldr r0, [r4, #44] ; 0x2c
db2c: 4b12 ldr r3, [pc, #72] ; (db78 <lv_disp_drv_register+0x138>)
disp_def = disp_def_tmp; /*Revert the default display*/
db2e: 602f str r7, [r5, #0]
lv_task_ready(disp->refr_task); /*Be sure the screen will be refreshed immediately on start up*/
db30: 4798 blx r3
return disp;
db32: e791 b.n da58 <lv_disp_drv_register+0x18>
db34: 0000e89d .word 0x0000e89d
db38: 00001a65 .word 0x00001a65
db3c: 200035dc .word 0x200035dc
db40: 0002b953 .word 0x0002b953
db44: 0002b920 .word 0x0002b920
db48: 0000eb79 .word 0x0000eb79
db4c: 00026842 .word 0x00026842
db50: 00001a6d .word 0x00001a6d
db54: 0000f2a9 .word 0x0000f2a9
db58: 0000eec1 .word 0x0000eec1
db5c: 200035b8 .word 0x200035b8
db60: 0000e889 .word 0x0000e889
db64: 00005279 .word 0x00005279
db68: 00003369 .word 0x00003369
db6c: 00003119 .word 0x00003119
db70: 000020e1 .word 0x000020e1
db74: 00002a09 .word 0x00002a09
db78: 0000fed1 .word 0x0000fed1
db7c: 0000fe61 .word 0x0000fe61
0000db80 <lv_disp_get_default>:
* @return pointer to the default display
*/
lv_disp_t * lv_disp_get_default(void)
{
return disp_def;
}
db80: 4b01 ldr r3, [pc, #4] ; (db88 <lv_disp_get_default+0x8>)
db82: 6818 ldr r0, [r3, #0]
db84: 4770 bx lr
db86: bf00 nop
db88: 200035b8 .word 0x200035b8
0000db8c <lv_disp_get_hor_res>:
* @param disp pointer to a display (NULL to use the default display)
* @return the horizontal resolution of the display
*/
lv_coord_t lv_disp_get_hor_res(lv_disp_t * disp)
{
if(disp == NULL) disp = lv_disp_get_default();
db8c: b910 cbnz r0, db94 <lv_disp_get_hor_res+0x8>
return disp_def;
db8e: 4b07 ldr r3, [pc, #28] ; (dbac <lv_disp_get_hor_res+0x20>)
db90: 6818 ldr r0, [r3, #0]
if(disp == NULL)
db92: b138 cbz r0, dba4 <lv_disp_get_hor_res+0x18>
return LV_HOR_RES_MAX;
else
return disp->driver.rotated == 0 ? disp->driver.hor_res : disp->driver.ver_res;
db94: 7a03 ldrb r3, [r0, #8]
db96: 079b lsls r3, r3, #30
db98: bf54 ite pl
db9a: f9b0 0000 ldrshpl.w r0, [r0]
db9e: f9b0 0002 ldrshmi.w r0, [r0, #2]
dba2: 4770 bx lr
return LV_HOR_RES_MAX;
dba4: f44f 70f0 mov.w r0, #480 ; 0x1e0
}
dba8: 4770 bx lr
dbaa: bf00 nop
dbac: 200035b8 .word 0x200035b8
0000dbb0 <lv_disp_get_ver_res>:
* @param disp pointer to a display (NULL to use the default display)
* @return the vertical resolution of the display
*/
lv_coord_t lv_disp_get_ver_res(lv_disp_t * disp)
{
if(disp == NULL) disp = lv_disp_get_default();
dbb0: b910 cbnz r0, dbb8 <lv_disp_get_ver_res+0x8>
return disp_def;
dbb2: 4b07 ldr r3, [pc, #28] ; (dbd0 <lv_disp_get_ver_res+0x20>)
dbb4: 6818 ldr r0, [r3, #0]
if(disp == NULL)
dbb6: b138 cbz r0, dbc8 <lv_disp_get_ver_res+0x18>
return LV_VER_RES_MAX;
else
return disp->driver.rotated == 0 ? disp->driver.ver_res : disp->driver.hor_res;
dbb8: 7a03 ldrb r3, [r0, #8]
dbba: 079b lsls r3, r3, #30
dbbc: bf54 ite pl
dbbe: f9b0 0002 ldrshpl.w r0, [r0, #2]
dbc2: f9b0 0000 ldrshmi.w r0, [r0]
dbc6: 4770 bx lr
return LV_VER_RES_MAX;
dbc8: f44f 7088 mov.w r0, #272 ; 0x110
}
dbcc: 4770 bx lr
dbce: bf00 nop
dbd0: 200035b8 .word 0x200035b8
0000dbd4 <lv_disp_get_dpi>:
* @param disp pointer to a display (NULL to use the default display)
* @return dpi of the display
*/
lv_coord_t lv_disp_get_dpi(lv_disp_t * disp)
{
if(disp == NULL) disp = lv_disp_get_default();
dbd4: b910 cbnz r0, dbdc <lv_disp_get_dpi+0x8>
return disp_def;
dbd6: 4b04 ldr r3, [pc, #16] ; (dbe8 <lv_disp_get_dpi+0x14>)
dbd8: 6818 ldr r0, [r3, #0]
if(disp == NULL) return LV_DPI; /*Do not return 0 because it might be a divider*/
dbda: b118 cbz r0, dbe4 <lv_disp_get_dpi+0x10>
return disp->driver.dpi;
dbdc: 8900 ldrh r0, [r0, #8]
dbde: f3c0 0089 ubfx r0, r0, #2, #10
dbe2: 4770 bx lr
if(disp == NULL) return LV_DPI; /*Do not return 0 because it might be a divider*/
dbe4: 2082 movs r0, #130 ; 0x82
}
dbe6: 4770 bx lr
dbe8: 200035b8 .word 0x200035b8
0000dbec <lv_disp_get_size_category>:
* Get the size category of the display based on it's hor. res. and dpi.
* @param disp pointer to a display (NULL to use the default display)
* @return LV_DISP_SIZE_SMALL/MEDIUM/LARGE/EXTRA_LARGE
*/
lv_disp_size_t lv_disp_get_size_category(lv_disp_t * disp)
{
dbec: b508 push {r3, lr}
if(disp == NULL) disp = lv_disp_get_default();
dbee: 4601 mov r1, r0
dbf0: b910 cbnz r0, dbf8 <lv_disp_get_size_category+0xc>
return disp_def;
dbf2: 4b0f ldr r3, [pc, #60] ; (dc30 <lv_disp_get_size_category+0x44>)
dbf4: 6819 ldr r1, [r3, #0]
uint32_t w;
if(disp == NULL) w = LV_HOR_RES_MAX;
dbf6: b199 cbz r1, dc20 <lv_disp_get_size_category+0x34>
else w = lv_disp_get_hor_res(disp);
dbf8: 4b0e ldr r3, [pc, #56] ; (dc34 <lv_disp_get_size_category+0x48>)
dbfa: 4608 mov r0, r1
dbfc: 4798 blx r3
dbfe: 4602 mov r2, r0
uint32_t dpi = lv_disp_get_dpi(disp);
dc00: 4b0d ldr r3, [pc, #52] ; (dc38 <lv_disp_get_size_category+0x4c>)
dc02: 4608 mov r0, r1
dc04: 4798 blx r3
w = w * 10 / dpi;
dc06: 230a movs r3, #10
dc08: 435a muls r2, r3
dc0a: fbb2 f0f0 udiv r0, r2, r0
if(w < LV_DISP_SMALL_LIMIT) return LV_DISP_SIZE_SMALL;
dc0e: 281d cmp r0, #29
dc10: d909 bls.n dc26 <lv_disp_get_size_category+0x3a>
if(w < LV_DISP_MEDIUM_LIMIT) return LV_DISP_SIZE_MEDIUM;
dc12: 2831 cmp r0, #49 ; 0x31
dc14: d909 bls.n dc2a <lv_disp_get_size_category+0x3e>
if(w < LV_DISP_LARGE_LIMIT) return LV_DISP_SIZE_LARGE;
else return LV_DISP_SIZE_EXTRA_LARGE;
dc16: 2846 cmp r0, #70 ; 0x46
dc18: bf34 ite cc
dc1a: 2002 movcc r0, #2
dc1c: 2003 movcs r0, #3
}
dc1e: bd08 pop {r3, pc}
if(disp == NULL) w = LV_HOR_RES_MAX;
dc20: f44f 72f0 mov.w r2, #480 ; 0x1e0
dc24: e7ec b.n dc00 <lv_disp_get_size_category+0x14>
if(w < LV_DISP_SMALL_LIMIT) return LV_DISP_SIZE_SMALL;
dc26: 2000 movs r0, #0
dc28: e7f9 b.n dc1e <lv_disp_get_size_category+0x32>
if(w < LV_DISP_MEDIUM_LIMIT) return LV_DISP_SIZE_MEDIUM;
dc2a: 2001 movs r0, #1
dc2c: e7f7 b.n dc1e <lv_disp_get_size_category+0x32>
dc2e: bf00 nop
dc30: 200035b8 .word 0x200035b8
dc34: 0000db8d .word 0x0000db8d
dc38: 0000dbd5 .word 0x0000dbd5
0000dc3c <lv_disp_flush_ready>:
if(disp_drv->screen_transp) {
_lv_memset_00(disp_drv->buffer->buf_act, disp_drv->buffer->size * sizeof(lv_color32_t));
}
#endif
disp_drv->buffer->flushing = 0;
dc3c: 6843 ldr r3, [r0, #4]
dc3e: 2200 movs r2, #0
dc40: 619a str r2, [r3, #24]
disp_drv->buffer->flushing_last = 0;
dc42: 61da str r2, [r3, #28]
}
dc44: 4770 bx lr
...
0000dc48 <lv_disp_get_next>:
* @param disp pointer to the current display. NULL to initialize.
* @return the next display or NULL if no more. Give the first display when the parameter is NULL
*/
lv_disp_t * lv_disp_get_next(lv_disp_t * disp)
{
if(disp == NULL)
dc48: 4601 mov r1, r0
return _lv_ll_get_head(&LV_GC_ROOT(_lv_disp_ll));
dc4a: 4803 ldr r0, [pc, #12] ; (dc58 <lv_disp_get_next+0x10>)
if(disp == NULL)
dc4c: b909 cbnz r1, dc52 <lv_disp_get_next+0xa>
return _lv_ll_get_head(&LV_GC_ROOT(_lv_disp_ll));
dc4e: 4b03 ldr r3, [pc, #12] ; (dc5c <lv_disp_get_next+0x14>)
dc50: 4718 bx r3
else
return _lv_ll_get_next(&LV_GC_ROOT(_lv_disp_ll), disp);
dc52: 4b03 ldr r3, [pc, #12] ; (dc60 <lv_disp_get_next+0x18>)
dc54: 4718 bx r3
dc56: bf00 nop
dc58: 200035dc .word 0x200035dc
dc5c: 0000e92d .word 0x0000e92d
dc60: 0000e939 .word 0x0000e939
0000dc64 <lv_disp_get_buf>:
* @return pointer to the internal buffers
*/
lv_disp_buf_t * lv_disp_get_buf(lv_disp_t * disp)
{
return disp->driver.buffer;
}
dc64: 6840 ldr r0, [r0, #4]
dc66: 4770 bx lr
0000dc68 <lv_disp_is_double_buf>:
* @param disp pointer to to display to check
* @return true: double buffered; false: not double buffered
*/
bool lv_disp_is_double_buf(lv_disp_t * disp)
{
if(disp->driver.buffer->buf1 && disp->driver.buffer->buf2)
dc68: 6843 ldr r3, [r0, #4]
dc6a: 6818 ldr r0, [r3, #0]
dc6c: b118 cbz r0, dc76 <lv_disp_is_double_buf+0xe>
dc6e: 6858 ldr r0, [r3, #4]
dc70: 3800 subs r0, #0
dc72: bf18 it ne
dc74: 2001 movne r0, #1
return true;
else
return false;
}
dc76: 4770 bx lr
0000dc78 <lv_disp_is_true_double_buf>:
* `size` is screen sized)
* @param disp pointer to to display to check
* @return true: double buffered; false: not double buffered
*/
bool lv_disp_is_true_double_buf(lv_disp_t * disp)
{
dc78: b508 push {r3, lr}
uint32_t scr_size = disp->driver.hor_res * disp->driver.ver_res;
if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) {
dc7a: 4b07 ldr r3, [pc, #28] ; (dc98 <lv_disp_is_true_double_buf+0x20>)
{
dc7c: 4602 mov r2, r0
if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) {
dc7e: 4798 blx r3
dc80: b140 cbz r0, dc94 <lv_disp_is_true_double_buf+0x1c>
uint32_t scr_size = disp->driver.hor_res * disp->driver.ver_res;
dc82: 8813 ldrh r3, [r2, #0]
dc84: 8851 ldrh r1, [r2, #2]
if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) {
dc86: 6852 ldr r2, [r2, #4]
dc88: 68d0 ldr r0, [r2, #12]
uint32_t scr_size = disp->driver.hor_res * disp->driver.ver_res;
dc8a: fb13 f301 smulbb r3, r3, r1
if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) {
dc8e: 1a1b subs r3, r3, r0
dc90: 4258 negs r0, r3
dc92: 4158 adcs r0, r3
return true;
}
else {
return false;
}
}
dc94: bd08 pop {r3, pc}
dc96: bf00 nop
dc98: 0000dc69 .word 0x0000dc69
0000dc9c <lv_indev_get_next>:
* @return the next input devise or NULL if no more. Give the first input device when the parameter
* is NULL
*/
lv_indev_t * lv_indev_get_next(lv_indev_t * indev)
{
if(indev == NULL)
dc9c: 4601 mov r1, r0
return _lv_ll_get_head(&LV_GC_ROOT(_lv_indev_ll));
dc9e: 4803 ldr r0, [pc, #12] ; (dcac <lv_indev_get_next+0x10>)
if(indev == NULL)
dca0: b909 cbnz r1, dca6 <lv_indev_get_next+0xa>
return _lv_ll_get_head(&LV_GC_ROOT(_lv_indev_ll));
dca2: 4b03 ldr r3, [pc, #12] ; (dcb0 <lv_indev_get_next+0x14>)
dca4: 4718 bx r3
else
return _lv_ll_get_next(&LV_GC_ROOT(_lv_indev_ll), indev);
dca6: 4b03 ldr r3, [pc, #12] ; (dcb4 <lv_indev_get_next+0x18>)
dca8: 4718 bx r3
dcaa: bf00 nop
dcac: 200035e8 .word 0x200035e8
dcb0: 0000e92d .word 0x0000e92d
dcb4: 0000e939 .word 0x0000e939
0000dcb8 <lv_tick_inc>:
* You have to call this function periodically
* @param tick_period the call period of this function in milliseconds
*/
LV_ATTRIBUTE_TICK_INC void lv_tick_inc(uint32_t tick_period)
{
tick_irq_flag = 0;
dcb8: 4b03 ldr r3, [pc, #12] ; (dcc8 <lv_tick_inc+0x10>)
dcba: 2200 movs r2, #0
dcbc: 701a strb r2, [r3, #0]
sys_time += tick_period;
dcbe: 685a ldr r2, [r3, #4]
dcc0: 4410 add r0, r2
dcc2: 6058 str r0, [r3, #4]
}
dcc4: 4770 bx lr
dcc6: bf00 nop
dcc8: 200035bc .word 0x200035bc
0000dccc <lv_tick_get>:
{
#if LV_TICK_CUSTOM == 0
uint32_t result;
do {
tick_irq_flag = 1;
result = sys_time;
dccc: 4b03 ldr r3, [pc, #12] ; (dcdc <lv_tick_get+0x10>)
dcce: 6858 ldr r0, [r3, #4]
tick_irq_flag = 1;
dcd0: 2101 movs r1, #1
dcd2: 7019 strb r1, [r3, #0]
} while(!tick_irq_flag); /*'lv_tick_inc()' clears this flag which can be in an interrupt.
dcd4: 781a ldrb r2, [r3, #0]
dcd6: 2a00 cmp r2, #0
dcd8: d0fb beq.n dcd2 <lv_tick_get+0x6>
return result;
#else
return LV_TICK_CUSTOM_SYS_TIME_EXPR;
#endif
}
dcda: 4770 bx lr
dcdc: 200035bc .word 0x200035bc
0000dce0 <lv_tick_elaps>:
* Get the elapsed milliseconds since a previous time stamp
* @param prev_tick a previous time stamp (return value of systick_get() )
* @return the elapsed milliseconds since 'prev_tick'
*/
uint32_t lv_tick_elaps(uint32_t prev_tick)
{
dce0: b510 push {r4, lr}
uint32_t act_time = lv_tick_get();
dce2: 4b02 ldr r3, [pc, #8] ; (dcec <lv_tick_elaps+0xc>)
{
dce4: 4604 mov r4, r0
uint32_t act_time = lv_tick_get();
dce6: 4798 blx r3
prev_tick = UINT32_MAX - prev_tick + 1;
prev_tick += act_time;
}
return prev_tick;
}
dce8: 1b00 subs r0, r0, r4
dcea: bd10 pop {r4, pc}
dcec: 0000dccd .word 0x0000dccd
0000dcf0 <lv_anim_path_linear>:
{
LV_UNUSED(path);
/*Calculate the current step*/
uint32_t step;
if(a->time == a->act_time) {
dcf0: e9d1 2308 ldrd r2, r3, [r1, #32]
dcf4: 429a cmp r2, r3
step = LV_ANIM_RESOLUTION; /*Use the last value if the time fully elapsed*/
}
else {
step = ((int32_t)a->act_time * LV_ANIM_RESOLUTION) / a->time;
dcf6: bf1c itt ne
dcf8: 029b lslne r3, r3, #10
dcfa: fb93 f3f2 sdivne r3, r3, r2
}
/* Get the new value which will be proportional to `step`
* and the `start` and `end` values*/
int32_t new_value;
new_value = (int32_t)step * (a->end - a->start);
dcfe: e9d1 0206 ldrd r0, r2, [r1, #24]
step = LV_ANIM_RESOLUTION; /*Use the last value if the time fully elapsed*/
dd02: bf08 it eq
dd04: f44f 6380 moveq.w r3, #1024 ; 0x400
new_value = (int32_t)step * (a->end - a->start);
dd08: 1a12 subs r2, r2, r0
dd0a: 4353 muls r3, r2
new_value = new_value >> LV_ANIM_RES_SHIFT;
new_value += a->start;
dd0c: eb00 20a3 add.w r0, r0, r3, asr #10
return (lv_anim_value_t)new_value;
}
dd10: b200 sxth r0, r0
dd12: 4770 bx lr
0000dd14 <anim_mark_list_change>:
}
return anim_list_changed;
}
static void anim_mark_list_change(void)
{
dd14: b510 push {r4, lr}
anim_list_changed = true;
dd16: 4c07 ldr r4, [pc, #28] ; (dd34 <anim_mark_list_change+0x20>)
if(_lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)) == NULL)
dd18: 4807 ldr r0, [pc, #28] ; (dd38 <anim_mark_list_change+0x24>)
anim_list_changed = true;
dd1a: 2301 movs r3, #1
dd1c: 7023 strb r3, [r4, #0]
if(_lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)) == NULL)
dd1e: 4b07 ldr r3, [pc, #28] ; (dd3c <anim_mark_list_change+0x28>)
dd20: 4798 blx r3
dd22: 4b07 ldr r3, [pc, #28] ; (dd40 <anim_mark_list_change+0x2c>)
dd24: 4601 mov r1, r0
dd26: b918 cbnz r0, dd30 <anim_mark_list_change+0x1c>
lv_task_set_prio(_lv_anim_task, LV_TASK_PRIO_OFF);
else
lv_task_set_prio(_lv_anim_task, LV_ANIM_TASK_PRIO);
dd28: 6860 ldr r0, [r4, #4]
}
dd2a: e8bd 4010 ldmia.w sp!, {r4, lr}
lv_task_set_prio(_lv_anim_task, LV_ANIM_TASK_PRIO);
dd2e: 4718 bx r3
dd30: 2104 movs r1, #4
dd32: e7f9 b.n dd28 <anim_mark_list_change+0x14>
dd34: 200035c4 .word 0x200035c4
dd38: 2000360c .word 0x2000360c
dd3c: 0000e92d .word 0x0000e92d
dd40: 0000fdfd .word 0x0000fdfd
0000dd44 <anim_task>:
{
dd44: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
dd48: 484f ldr r0, [pc, #316] ; (de88 <anim_task+0x144>)
dd4a: 4f50 ldr r7, [pc, #320] ; (de8c <anim_task+0x148>)
dd4c: 4c4e ldr r4, [pc, #312] ; (de88 <anim_task+0x144>)
dd4e: 4d50 ldr r5, [pc, #320] ; (de90 <anim_task+0x14c>)
{
dd50: b090 sub sp, #64 ; 0x40
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
dd52: 47b8 blx r7
dd54: b9a0 cbnz r0, dd80 <anim_task+0x3c>
uint32_t elaps = lv_tick_elaps(last_task_run);
dd56: 4d4f ldr r5, [pc, #316] ; (de94 <anim_task+0x150>)
dd58: 4b4f ldr r3, [pc, #316] ; (de98 <anim_task+0x154>)
dd5a: 68a8 ldr r0, [r5, #8]
a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
dd5c: f8df 8128 ldr.w r8, [pc, #296] ; de88 <anim_task+0x144>
dd60: f8df 912c ldr.w r9, [pc, #300] ; de90 <anim_task+0x14c>
_lv_memcpy(&a_tmp, a, sizeof(lv_anim_t));
dd64: f8df a148 ldr.w sl, [pc, #328] ; deb0 <anim_task+0x16c>
uint32_t elaps = lv_tick_elaps(last_task_run);
dd68: 4798 blx r3
dd6a: 4606 mov r6, r0
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
dd6c: 4846 ldr r0, [pc, #280] ; (de88 <anim_task+0x144>)
dd6e: 47b8 blx r7
dd70: 4604 mov r4, r0
while(a != NULL) {
dd72: b97c cbnz r4, dd94 <anim_task+0x50>
last_task_run = lv_tick_get();
dd74: 4b49 ldr r3, [pc, #292] ; (de9c <anim_task+0x158>)
dd76: 4798 blx r3
dd78: 60a8 str r0, [r5, #8]
}
dd7a: b010 add sp, #64 ; 0x40
dd7c: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
a->has_run = 0;
dd80: f890 303c ldrb.w r3, [r0, #60] ; 0x3c
dd84: f36f 0341 bfc r3, #1, #1
dd88: f880 303c strb.w r3, [r0, #60] ; 0x3c
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
dd8c: 4601 mov r1, r0
dd8e: 4620 mov r0, r4
dd90: 47a8 blx r5
dd92: e7df b.n dd54 <anim_task+0x10>
anim_list_changed = false;
dd94: 2300 movs r3, #0
dd96: 702b strb r3, [r5, #0]
if(!a->has_run) {
dd98: f894 303c ldrb.w r3, [r4, #60] ; 0x3c
dd9c: 079a lsls r2, r3, #30
dd9e: d46f bmi.n de80 <anim_task+0x13c>
a->has_run = 1; /*The list readying might be reseted so need to know which anim has run already*/
dda0: f043 0302 orr.w r3, r3, #2
dda4: f884 303c strb.w r3, [r4, #60] ; 0x3c
int32_t new_act_time = a->act_time + elaps;
dda8: 6a63 ldr r3, [r4, #36] ; 0x24
if(a->act_time <= 0 && new_act_time >= 0) {
ddaa: 2b00 cmp r3, #0
ddac: dc05 bgt.n ddba <anim_task+0x76>
ddae: 42f3 cmn r3, r6
ddb0: d403 bmi.n ddba <anim_task+0x76>
if(a->start_cb) a->start_cb(a);
ddb2: 68a3 ldr r3, [r4, #8]
ddb4: b10b cbz r3, ddba <anim_task+0x76>
ddb6: 4620 mov r0, r4
ddb8: 4798 blx r3
a->act_time += elaps;
ddba: 6a63 ldr r3, [r4, #36] ; 0x24
ddbc: 4433 add r3, r6
if(a->act_time >= 0) {
ddbe: 2b00 cmp r3, #0
a->act_time += elaps;
ddc0: 6263 str r3, [r4, #36] ; 0x24
if(a->act_time >= 0) {
ddc2: db2e blt.n de22 <anim_task+0xde>
if(a->act_time > a->time) a->act_time = a->time;
ddc4: 6a22 ldr r2, [r4, #32]
ddc6: 429a cmp r2, r3
ddc8: bfd4 ite le
ddca: 6262 strle r2, [r4, #36] ; 0x24
ddcc: 6263 strgt r3, [r4, #36] ; 0x24
if(a->path.cb) new_value = a->path.cb(&a->path, a);
ddce: 4620 mov r0, r4
ddd0: 4621 mov r1, r4
ddd2: f850 3f10 ldr.w r3, [r0, #16]!
ddd6: b353 cbz r3, de2e <anim_task+0xea>
ddd8: 4798 blx r3
if(a->exec_cb) a->exec_cb(a->var, new_value);
ddda: 6863 ldr r3, [r4, #4]
dddc: b113 cbz r3, dde4 <anim_task+0xa0>
ddde: b201 sxth r1, r0
dde0: 6820 ldr r0, [r4, #0]
dde2: 4798 blx r3
if(a->act_time >= a->time) {
dde4: e9d4 3208 ldrd r3, r2, [r4, #32]
dde8: 429a cmp r2, r3
ddea: db1a blt.n de22 <anim_task+0xde>
if(a->playback_now == 0 && a->repeat_cnt > 0 && a->repeat_cnt != LV_ANIM_REPEAT_INFINITE) {
ddec: f894 303c ldrb.w r3, [r4, #60] ; 0x3c
ddf0: 8ea2 ldrh r2, [r4, #52] ; 0x34
ddf2: 6ae1 ldr r1, [r4, #44] ; 0x2c
ddf4: f013 0301 ands.w r3, r3, #1
ddf8: d122 bne.n de40 <anim_task+0xfc>
ddfa: b9da cbnz r2, de34 <anim_task+0xf0>
if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) {
ddfc: 2900 cmp r1, #0
ddfe: d13c bne.n de7a <anim_task+0x136>
_lv_memcpy(&a_tmp, a, sizeof(lv_anim_t));
de00: 2240 movs r2, #64 ; 0x40
de02: 4621 mov r1, r4
de04: 4668 mov r0, sp
de06: 47d0 blx sl
_lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a);
de08: 4621 mov r1, r4
de0a: 4b25 ldr r3, [pc, #148] ; (dea0 <anim_task+0x15c>)
de0c: 4640 mov r0, r8
de0e: 4798 blx r3
lv_mem_free(a);
de10: 4b24 ldr r3, [pc, #144] ; (dea4 <anim_task+0x160>)
de12: 4620 mov r0, r4
de14: 4798 blx r3
anim_mark_list_change();
de16: 4b24 ldr r3, [pc, #144] ; (dea8 <anim_task+0x164>)
de18: 4798 blx r3
if(a_tmp.ready_cb != NULL) a_tmp.ready_cb(&a_tmp);
de1a: 9b03 ldr r3, [sp, #12]
de1c: b10b cbz r3, de22 <anim_task+0xde>
de1e: 4668 mov r0, sp
de20: 4798 blx r3
if(anim_list_changed)
de22: 782b ldrb r3, [r5, #0]
de24: b363 cbz r3, de80 <anim_task+0x13c>
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
de26: 4640 mov r0, r8
de28: 47b8 blx r7
a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
de2a: 4604 mov r4, r0
de2c: e7a1 b.n dd72 <anim_task+0x2e>
else new_value = lv_anim_path_linear(&a->path, a);
de2e: 4b1f ldr r3, [pc, #124] ; (deac <anim_task+0x168>)
de30: 4798 blx r3
de32: e7d2 b.n ddda <anim_task+0x96>
if(a->playback_now == 0 && a->repeat_cnt > 0 && a->repeat_cnt != LV_ANIM_REPEAT_INFINITE) {
de34: f64f 70ff movw r0, #65535 ; 0xffff
de38: 4282 cmp r2, r0
de3a: d004 beq.n de46 <anim_task+0x102>
a->repeat_cnt--;
de3c: 3a01 subs r2, #1
de3e: 86a2 strh r2, [r4, #52] ; 0x34
if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) {
de40: 8ea2 ldrh r2, [r4, #52] ; 0x34
de42: 2a00 cmp r2, #0
de44: d0da beq.n ddfc <anim_task+0xb8>
a->act_time = -a->repeat_delay; /*Restart the animation*/
de46: 6b22 ldr r2, [r4, #48] ; 0x30
de48: 4252 negs r2, r2
de4a: 6262 str r2, [r4, #36] ; 0x24
if(a->playback_time != 0) {
de4c: 2900 cmp r1, #0
de4e: d0e8 beq.n de22 <anim_task+0xde>
if(a->playback_now == 0) a->act_time = -a->playback_delay;
de50: b913 cbnz r3, de58 <anim_task+0x114>
de52: 6aa2 ldr r2, [r4, #40] ; 0x28
de54: 4252 negs r2, r2
de56: 6262 str r2, [r4, #36] ; 0x24
a->playback_now = a->playback_now == 0 ? 1 : 0;
de58: f083 0201 eor.w r2, r3, #1
de5c: f894 303c ldrb.w r3, [r4, #60] ; 0x3c
de60: f362 0300 bfi r3, r2, #0, #1
a->start = a->end;
de64: e9d4 0206 ldrd r0, r2, [r4, #24]
a->playback_now = a->playback_now == 0 ? 1 : 0;
de68: f884 303c strb.w r3, [r4, #60] ; 0x3c
a->time = a->playback_now == 0 ? a->time_orig : a->playback_time;
de6c: 07db lsls r3, r3, #31
de6e: bf58 it pl
de70: 6ba1 ldrpl r1, [r4, #56] ; 0x38
de72: 6221 str r1, [r4, #32]
a->end = tmp;
de74: e9c4 2006 strd r2, r0, [r4, #24]
a->time = a->playback_now == 0 ? a->time_orig : a->playback_time;
de78: e7d3 b.n de22 <anim_task+0xde>
if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) {
de7a: 2b00 cmp r3, #0
de7c: d0e3 beq.n de46 <anim_task+0x102>
de7e: e7bf b.n de00 <anim_task+0xbc>
a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
de80: 4621 mov r1, r4
de82: 4640 mov r0, r8
de84: 47c8 blx r9
de86: e7d0 b.n de2a <anim_task+0xe6>
de88: 2000360c .word 0x2000360c
de8c: 0000e92d .word 0x0000e92d
de90: 0000e939 .word 0x0000e939
de94: 200035c4 .word 0x200035c4
de98: 0000dce1 .word 0x0000dce1
de9c: 0000dccd .word 0x0000dccd
dea0: 0000e9f1 .word 0x0000e9f1
dea4: 0000ed75 .word 0x0000ed75
dea8: 0000dd15 .word 0x0000dd15
deac: 0000dcf1 .word 0x0000dcf1
deb0: 0000eec1 .word 0x0000eec1
0000deb4 <_lv_anim_core_init>:
{
deb4: b538 push {r3, r4, r5, lr}
_lv_ll_init(&LV_GC_ROOT(_lv_anim_ll), sizeof(lv_anim_t));
deb6: 2140 movs r1, #64 ; 0x40
deb8: 4809 ldr r0, [pc, #36] ; (dee0 <_lv_anim_core_init+0x2c>)
deba: 4b0a ldr r3, [pc, #40] ; (dee4 <_lv_anim_core_init+0x30>)
last_task_run = lv_tick_get();
debc: 4c0a ldr r4, [pc, #40] ; (dee8 <_lv_anim_core_init+0x34>)
_lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL);
debe: 4d0b ldr r5, [pc, #44] ; (deec <_lv_anim_core_init+0x38>)
_lv_ll_init(&LV_GC_ROOT(_lv_anim_ll), sizeof(lv_anim_t));
dec0: 4798 blx r3
last_task_run = lv_tick_get();
dec2: 4b0b ldr r3, [pc, #44] ; (def0 <_lv_anim_core_init+0x3c>)
dec4: 4798 blx r3
_lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL);
dec6: 2300 movs r3, #0
last_task_run = lv_tick_get();
dec8: 60a0 str r0, [r4, #8]
_lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL);
deca: 2204 movs r2, #4
decc: 211e movs r1, #30
dece: 4809 ldr r0, [pc, #36] ; (def4 <_lv_anim_core_init+0x40>)
ded0: 47a8 blx r5
anim_mark_list_change(); /*Turn off the animation task*/
ded2: 4b09 ldr r3, [pc, #36] ; (def8 <_lv_anim_core_init+0x44>)
_lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL);
ded4: 6060 str r0, [r4, #4]
anim_mark_list_change(); /*Turn off the animation task*/
ded6: 4798 blx r3
anim_list_changed = false; /*The list has not actaully changed*/
ded8: 2300 movs r3, #0
deda: 7023 strb r3, [r4, #0]
}
dedc: bd38 pop {r3, r4, r5, pc}
dede: bf00 nop
dee0: 2000360c .word 0x2000360c
dee4: 0000e889 .word 0x0000e889
dee8: 200035c4 .word 0x200035c4
deec: 0000fe61 .word 0x0000fe61
def0: 0000dccd .word 0x0000dccd
def4: 0000dd45 .word 0x0000dd45
def8: 0000dd15 .word 0x0000dd15
0000defc <lv_anim_init>:
{
defc: b510 push {r4, lr}
_lv_memset_00(a, sizeof(lv_anim_t));
defe: 4b0b ldr r3, [pc, #44] ; (df2c <lv_anim_init+0x30>)
{
df00: 4604 mov r4, r0
_lv_memset_00(a, sizeof(lv_anim_t));
df02: 2140 movs r1, #64 ; 0x40
df04: 4798 blx r3
a->time = 500;
df06: f44f 73fa mov.w r3, #500 ; 0x1f4
df0a: 6223 str r3, [r4, #32]
a->end = 100;
df0c: 2100 movs r1, #0
df0e: 2364 movs r3, #100 ; 0x64
df10: e9c4 1306 strd r1, r3, [r4, #24]
{
uint8_t * d8 = (uint8_t *)dst;
const uint8_t * s8 = (const uint8_t *)src;
while(len) {
*d8 = *s8;
df14: 4b06 ldr r3, [pc, #24] ; (df30 <lv_anim_init+0x34>)
df16: 6123 str r3, [r4, #16]
a->repeat_cnt = 1;
df18: 2301 movs r3, #1
df1a: 86a3 strh r3, [r4, #52] ; 0x34
a->early_apply = 1;
df1c: f894 3036 ldrb.w r3, [r4, #54] ; 0x36
df20: f043 0301 orr.w r3, r3, #1
df24: f884 3036 strb.w r3, [r4, #54] ; 0x36
}
df28: bd10 pop {r4, pc}
df2a: bf00 nop
df2c: 0000f2a9 .word 0x0000f2a9
df30: 0000dcf1 .word 0x0000dcf1
0000df34 <lv_anim_del>:
{
df34: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
df38: 4b14 ldr r3, [pc, #80] ; (df8c <lv_anim_del+0x58>)
a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
df3a: f8df 9054 ldr.w r9, [pc, #84] ; df90 <lv_anim_del+0x5c>
df3e: f8df a05c ldr.w sl, [pc, #92] ; df9c <lv_anim_del+0x68>
_lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a);
df42: f8df b05c ldr.w fp, [pc, #92] ; dfa0 <lv_anim_del+0x6c>
{
df46: 4606 mov r6, r0
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
df48: 4811 ldr r0, [pc, #68] ; (df90 <lv_anim_del+0x5c>)
{
df4a: 460d mov r5, r1
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
df4c: 4798 blx r3
bool del = false;
df4e: f04f 0800 mov.w r8, #0
a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll));
df52: 4604 mov r4, r0
while(a != NULL) {
df54: b914 cbnz r4, df5c <lv_anim_del+0x28>
}
df56: 4640 mov r0, r8
df58: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
df5c: 4621 mov r1, r4
df5e: 4648 mov r0, r9
df60: 47d0 blx sl
if(a->var == var && (a->exec_cb == exec_cb || exec_cb == NULL)) {
df62: 6823 ldr r3, [r4, #0]
df64: 42b3 cmp r3, r6
a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a);
df66: 4607 mov r7, r0
if(a->var == var && (a->exec_cb == exec_cb || exec_cb == NULL)) {
df68: d10d bne.n df86 <lv_anim_del+0x52>
df6a: 6863 ldr r3, [r4, #4]
df6c: 42ab cmp r3, r5
df6e: d000 beq.n df72 <lv_anim_del+0x3e>
df70: b94d cbnz r5, df86 <lv_anim_del+0x52>
_lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a);
df72: 4621 mov r1, r4
df74: 4648 mov r0, r9
df76: 47d8 blx fp
lv_mem_free(a);
df78: 4b06 ldr r3, [pc, #24] ; (df94 <lv_anim_del+0x60>)
df7a: 4620 mov r0, r4
df7c: 4798 blx r3
anim_mark_list_change(); /*Read by `anim_task`. It need to know if a delete occurred in
df7e: 4b06 ldr r3, [pc, #24] ; (df98 <lv_anim_del+0x64>)
df80: 4798 blx r3
del = true;
df82: f04f 0801 mov.w r8, #1
df86: 463c mov r4, r7
df88: e7e4 b.n df54 <lv_anim_del+0x20>
df8a: bf00 nop
df8c: 0000e92d .word 0x0000e92d
df90: 2000360c .word 0x2000360c
df94: 0000ed75 .word 0x0000ed75
df98: 0000dd15 .word 0x0000dd15
df9c: 0000e939 .word 0x0000e939
dfa0: 0000e9f1 .word 0x0000e9f1
0000dfa4 <lv_anim_start>:
{
dfa4: b573 push {r0, r1, r4, r5, r6, lr}
if(a->exec_cb != NULL) lv_anim_del(a->var, a->exec_cb); /*fp == NULL would delete all animations of var*/
dfa6: 6841 ldr r1, [r0, #4]
{
dfa8: 4605 mov r5, r0
if(a->exec_cb != NULL) lv_anim_del(a->var, a->exec_cb); /*fp == NULL would delete all animations of var*/
dfaa: b111 cbz r1, dfb2 <lv_anim_start+0xe>
dfac: 6800 ldr r0, [r0, #0]
dfae: 4b1d ldr r3, [pc, #116] ; (e024 <lv_anim_start+0x80>)
dfb0: 4798 blx r3
if(_lv_ll_is_empty(&LV_GC_ROOT(_lv_anim_ll))) {
dfb2: 481d ldr r0, [pc, #116] ; (e028 <lv_anim_start+0x84>)
dfb4: 4b1d ldr r3, [pc, #116] ; (e02c <lv_anim_start+0x88>)
dfb6: 4798 blx r3
dfb8: b120 cbz r0, dfc4 <lv_anim_start+0x20>
last_task_run = lv_tick_get() - 1;
dfba: 4b1d ldr r3, [pc, #116] ; (e030 <lv_anim_start+0x8c>)
dfbc: 4798 blx r3
dfbe: 4b1d ldr r3, [pc, #116] ; (e034 <lv_anim_start+0x90>)
dfc0: 3801 subs r0, #1
dfc2: 6098 str r0, [r3, #8]
lv_anim_t * new_anim = _lv_ll_ins_head(&LV_GC_ROOT(_lv_anim_ll));
dfc4: 4b1c ldr r3, [pc, #112] ; (e038 <lv_anim_start+0x94>)
dfc6: 4818 ldr r0, [pc, #96] ; (e028 <lv_anim_start+0x84>)
dfc8: 4798 blx r3
LV_ASSERT_MEM(new_anim);
dfca: 4b1c ldr r3, [pc, #112] ; (e03c <lv_anim_start+0x98>)
lv_anim_t * new_anim = _lv_ll_ins_head(&LV_GC_ROOT(_lv_anim_ll));
dfcc: 4604 mov r4, r0
LV_ASSERT_MEM(new_anim);
dfce: 4798 blx r3
dfd0: 4606 mov r6, r0
dfd2: b960 cbnz r0, dfee <lv_anim_start+0x4a>
dfd4: 4b1a ldr r3, [pc, #104] ; (e040 <lv_anim_start+0x9c>)
dfd6: 491b ldr r1, [pc, #108] ; (e044 <lv_anim_start+0xa0>)
dfd8: 9300 str r3, [sp, #0]
dfda: 226a movs r2, #106 ; 0x6a
dfdc: 2003 movs r0, #3
dfde: 4d1a ldr r5, [pc, #104] ; (e048 <lv_anim_start+0xa4>)
dfe0: 47a8 blx r5
dfe2: 481a ldr r0, [pc, #104] ; (e04c <lv_anim_start+0xa8>)
dfe4: 491a ldr r1, [pc, #104] ; (e050 <lv_anim_start+0xac>)
dfe6: 4622 mov r2, r4
dfe8: 4633 mov r3, r6
dfea: 4788 blx r1
dfec: e7fe b.n dfec <lv_anim_start+0x48>
if(new_anim == NULL) return;
dfee: b1b4 cbz r4, e01e <lv_anim_start+0x7a>
a->time_orig = a->time;
dff0: 6a2b ldr r3, [r5, #32]
dff2: 63ab str r3, [r5, #56] ; 0x38
_lv_memcpy(new_anim, a, sizeof(lv_anim_t));
dff4: 2240 movs r2, #64 ; 0x40
dff6: 4b17 ldr r3, [pc, #92] ; (e054 <lv_anim_start+0xb0>)
dff8: 4629 mov r1, r5
dffa: 4620 mov r0, r4
dffc: 4798 blx r3
if(new_anim->early_apply) {
dffe: f894 3036 ldrb.w r3, [r4, #54] ; 0x36
e002: 07db lsls r3, r3, #31
e004: d506 bpl.n e014 <lv_anim_start+0x70>
if(new_anim->exec_cb && new_anim->var) new_anim->exec_cb(new_anim->var, new_anim->start);
e006: 6863 ldr r3, [r4, #4]
e008: b123 cbz r3, e014 <lv_anim_start+0x70>
e00a: 6820 ldr r0, [r4, #0]
e00c: b110 cbz r0, e014 <lv_anim_start+0x70>
e00e: f9b4 1018 ldrsh.w r1, [r4, #24]
e012: 4798 blx r3
anim_mark_list_change();
e014: 4b10 ldr r3, [pc, #64] ; (e058 <lv_anim_start+0xb4>)
}
e016: b002 add sp, #8
e018: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
anim_mark_list_change();
e01c: 4718 bx r3
}
e01e: b002 add sp, #8
e020: bd70 pop {r4, r5, r6, pc}
e022: bf00 nop
e024: 0000df35 .word 0x0000df35
e028: 2000360c .word 0x2000360c
e02c: 0000eb55 .word 0x0000eb55
e030: 0000dccd .word 0x0000dccd
e034: 200035c4 .word 0x200035c4
e038: 0000e89d .word 0x0000e89d
e03c: 00001a65 .word 0x00001a65
e040: 0002b998 .word 0x0002b998
e044: 0002b968 .word 0x0002b968
e048: 0000eb79 .word 0x0000eb79
e04c: 00026842 .word 0x00026842
e050: 00001a6d .word 0x00001a6d
e054: 0000eec1 .word 0x0000eec1
e058: 0000dd15 .word 0x0000dd15
0000e05c <lv_anim_get>:
{
e05c: b5f8 push {r3, r4, r5, r6, r7, lr}
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
e05e: 4b09 ldr r3, [pc, #36] ; (e084 <lv_anim_get+0x28>)
e060: 4e09 ldr r6, [pc, #36] ; (e088 <lv_anim_get+0x2c>)
e062: 4f0a ldr r7, [pc, #40] ; (e08c <lv_anim_get+0x30>)
{
e064: 4604 mov r4, r0
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
e066: 4808 ldr r0, [pc, #32] ; (e088 <lv_anim_get+0x2c>)
{
e068: 460d mov r5, r1
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
e06a: 4798 blx r3
e06c: b900 cbnz r0, e070 <lv_anim_get+0x14>
}
e06e: bdf8 pop {r3, r4, r5, r6, r7, pc}
if(a->var == var && a->exec_cb == exec_cb) {
e070: 6803 ldr r3, [r0, #0]
e072: 42a3 cmp r3, r4
e074: d102 bne.n e07c <lv_anim_get+0x20>
e076: 6843 ldr r3, [r0, #4]
e078: 42ab cmp r3, r5
e07a: d0f8 beq.n e06e <lv_anim_get+0x12>
_LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) {
e07c: 4601 mov r1, r0
e07e: 4630 mov r0, r6
e080: 47b8 blx r7
e082: e7f3 b.n e06c <lv_anim_get+0x10>
e084: 0000e92d .word 0x0000e92d
e088: 2000360c .word 0x2000360c
e08c: 0000e939 .word 0x0000e939
0000e090 <lv_anim_speed_to_time>:
int32_t d = LV_MATH_ABS((int32_t)start - end);
e090: 1a8a subs r2, r1, r2
e092: 2a00 cmp r2, #0
e094: bfb8 it lt
e096: 4252 neglt r2, r2
uint32_t time = (int32_t)((int32_t)(d * 1000) / speed);
e098: f44f 737a mov.w r3, #1000 ; 0x3e8
e09c: 435a muls r2, r3
e09e: fbb2 f0f0 udiv r0, r2, r0
return time;
e0a2: 2801 cmp r0, #1
e0a4: bf38 it cc
e0a6: 2001 movcc r0, #1
e0a8: f64f 73ff movw r3, #65535 ; 0xffff
e0ac: 4298 cmp r0, r3
e0ae: bf28 it cs
e0b0: 4618 movcs r0, r3
}
e0b2: b280 uxth r0, r0
e0b4: 4770 bx lr
0000e0b6 <lv_point_within_circle.isra.0>:
/**********************
* STATIC FUNCTIONS
**********************/
static bool lv_point_within_circle(const lv_area_t * area, const lv_point_t * p)
e0b6: b530 push {r4, r5, lr}
{
lv_coord_t r = (area->x2 - area->x1) / 2;
e0b8: f9b0 3004 ldrsh.w r3, [r0, #4]
e0bc: f9b0 5000 ldrsh.w r5, [r0]
lv_coord_t cx = area->x1 + r;
lv_coord_t cy = area->y1 + r;
/*Simplify the code by moving everything to (0, 0) */
lv_coord_t px = p->x - cx;
lv_coord_t py = p->y - cy;
e0c0: 8840 ldrh r0, [r0, #2]
lv_coord_t r = (area->x2 - area->x1) / 2;
e0c2: 1b5b subs r3, r3, r5
e0c4: eb03 73d3 add.w r3, r3, r3, lsr #31
lv_coord_t py = p->y - cy;
e0c8: 1a12 subs r2, r2, r0
lv_coord_t r = (area->x2 - area->x1) / 2;
e0ca: 105c asrs r4, r3, #1
lv_coord_t cx = area->x1 + r;
e0cc: f3c3 034f ubfx r3, r3, #1, #16
lv_coord_t px = p->x - cx;
e0d0: 1b49 subs r1, r1, r5
lv_coord_t py = p->y - cy;
e0d2: 1ad2 subs r2, r2, r3
lv_coord_t px = p->x - cx;
e0d4: 1ac9 subs r1, r1, r3
int32_t r_sqrd = r * r;
int32_t dist = (px * px) + (py * py);
e0d6: fb12 f202 smulbb r2, r2, r2
int32_t r_sqrd = r * r;
e0da: 4364 muls r4, r4
int32_t dist = (px * px) + (py * py);
e0dc: fb11 2101 smlabb r1, r1, r1, r2
if(dist <= r_sqrd)
return true;
else
return false;
}
e0e0: 428c cmp r4, r1
e0e2: bfb4 ite lt
e0e4: 2000 movlt r0, #0
e0e6: 2001 movge r0, #1
e0e8: bd30 pop {r4, r5, pc}
0000e0ea <lv_area_set_height>:
area_p->y2 = area_p->y1 + h - 1;
e0ea: 8843 ldrh r3, [r0, #2]
e0ec: 3901 subs r1, #1
e0ee: 4419 add r1, r3
e0f0: 80c1 strh r1, [r0, #6]
}
e0f2: 4770 bx lr
0000e0f4 <lv_area_get_size>:
size = (uint32_t)(area_p->x2 - area_p->x1 + 1) * (area_p->y2 - area_p->y1 + 1);
e0f4: f9b0 3000 ldrsh.w r3, [r0]
e0f8: f9b0 2004 ldrsh.w r2, [r0, #4]
e0fc: f9b0 1002 ldrsh.w r1, [r0, #2]
e100: 1ad2 subs r2, r2, r3
e102: f9b0 3006 ldrsh.w r3, [r0, #6]
e106: 1a58 subs r0, r3, r1
e108: 3001 adds r0, #1
}
e10a: fb02 0000 mla r0, r2, r0, r0
e10e: 4770 bx lr
0000e110 <_lv_area_intersect>:
res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1);
e110: f9b1 3000 ldrsh.w r3, [r1]
{
e114: b570 push {r4, r5, r6, lr}
res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1);
e116: f9b2 5000 ldrsh.w r5, [r2]
res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1);
e11a: f9b1 4002 ldrsh.w r4, [r1, #2]
res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2);
e11e: f9b1 6004 ldrsh.w r6, [r1, #4]
res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2);
e122: f9b1 1006 ldrsh.w r1, [r1, #6]
res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1);
e126: 429d cmp r5, r3
e128: bfb8 it lt
e12a: 461d movlt r5, r3
res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1);
e12c: f9b2 3002 ldrsh.w r3, [r2, #2]
res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1);
e130: 8005 strh r5, [r0, #0]
res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1);
e132: 42a3 cmp r3, r4
e134: bfb8 it lt
e136: 4623 movlt r3, r4
res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2);
e138: f9b2 4004 ldrsh.w r4, [r2, #4]
res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2);
e13c: f9b2 2006 ldrsh.w r2, [r2, #6]
res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1);
e140: 8043 strh r3, [r0, #2]
res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2);
e142: 42b4 cmp r4, r6
e144: bfa8 it ge
e146: 4634 movge r4, r6
res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2);
e148: 428a cmp r2, r1
e14a: bfa8 it ge
e14c: 460a movge r2, r1
if((res_p->x1 > res_p->x2) || (res_p->y1 > res_p->y2)) {
e14e: 42a5 cmp r5, r4
res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2);
e150: 8084 strh r4, [r0, #4]
res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2);
e152: 80c2 strh r2, [r0, #6]
if((res_p->x1 > res_p->x2) || (res_p->y1 > res_p->y2)) {
e154: dc04 bgt.n e160 <_lv_area_intersect+0x50>
e156: 4293 cmp r3, r2
e158: bfcc ite gt
e15a: 2000 movgt r0, #0
e15c: 2001 movle r0, #1
}
e15e: bd70 pop {r4, r5, r6, pc}
union_ok = false;
e160: 2000 movs r0, #0
e162: e7fc b.n e15e <_lv_area_intersect+0x4e>
0000e164 <_lv_area_join>:
a_res_p->x1 = LV_MATH_MIN(a1_p->x1, a2_p->x1);
e164: f9b2 3000 ldrsh.w r3, [r2]
{
e168: b510 push {r4, lr}
a_res_p->x1 = LV_MATH_MIN(a1_p->x1, a2_p->x1);
e16a: f9b1 4000 ldrsh.w r4, [r1]
e16e: 42a3 cmp r3, r4
e170: bfa8 it ge
e172: 4623 movge r3, r4
e174: 8003 strh r3, [r0, #0]
a_res_p->y1 = LV_MATH_MIN(a1_p->y1, a2_p->y1);
e176: f9b1 4002 ldrsh.w r4, [r1, #2]
e17a: f9b2 3002 ldrsh.w r3, [r2, #2]
e17e: 42a3 cmp r3, r4
e180: bfa8 it ge
e182: 4623 movge r3, r4
e184: 8043 strh r3, [r0, #2]
a_res_p->x2 = LV_MATH_MAX(a1_p->x2, a2_p->x2);
e186: f9b1 4004 ldrsh.w r4, [r1, #4]
e18a: f9b2 3004 ldrsh.w r3, [r2, #4]
e18e: 42a3 cmp r3, r4
e190: bfb8 it lt
e192: 4623 movlt r3, r4
e194: 8083 strh r3, [r0, #4]
a_res_p->y2 = LV_MATH_MAX(a1_p->y2, a2_p->y2);
e196: f9b2 3006 ldrsh.w r3, [r2, #6]
e19a: f9b1 2006 ldrsh.w r2, [r1, #6]
e19e: 4293 cmp r3, r2
e1a0: bfb8 it lt
e1a2: 4613 movlt r3, r2
e1a4: 80c3 strh r3, [r0, #6]
}
e1a6: bd10 pop {r4, pc}
0000e1a8 <_lv_area_is_point_on>:
{
e1a8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
if((p_p->x >= a_p->x1 && p_p->x <= a_p->x2) && ((p_p->y >= a_p->y1 && p_p->y <= a_p->y2))) {
e1ac: f9b1 9000 ldrsh.w r9, [r1]
e1b0: f9b0 4000 ldrsh.w r4, [r0]
e1b4: 45a1 cmp r9, r4
{
e1b6: b087 sub sp, #28
e1b8: 4688 mov r8, r1
if((p_p->x >= a_p->x1 && p_p->x <= a_p->x2) && ((p_p->y >= a_p->y1 && p_p->y <= a_p->y2))) {
e1ba: f2c0 8088 blt.w e2ce <_lv_area_is_point_on+0x126>
e1be: f9b0 3004 ldrsh.w r3, [r0, #4]
e1c2: 9301 str r3, [sp, #4]
e1c4: 4599 cmp r9, r3
e1c6: f300 8082 bgt.w e2ce <_lv_area_is_point_on+0x126>
e1ca: f9b1 a002 ldrsh.w sl, [r1, #2]
e1ce: f9b0 b002 ldrsh.w fp, [r0, #2]
e1d2: 45da cmp sl, fp
e1d4: db7b blt.n e2ce <_lv_area_is_point_on+0x126>
e1d6: f9b0 3006 ldrsh.w r3, [r0, #6]
e1da: 459a cmp sl, r3
e1dc: dc77 bgt.n e2ce <_lv_area_is_point_on+0x126>
if(radius <= 0) {
e1de: 2a00 cmp r2, #0
e1e0: dc03 bgt.n e1ea <_lv_area_is_point_on+0x42>
return true;
e1e2: 2001 movs r0, #1
}
e1e4: b007 add sp, #28
e1e6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
* @param area_p pointer to an area
* @return the width of the area (if x1 == x2 -> width = 1)
*/
static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p)
{
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
e1ea: f8bd 0004 ldrh.w r0, [sp, #4]
e1ee: 9002 str r0, [sp, #8]
e1f0: b2a7 uxth r7, r4
e1f2: 3001 adds r0, #1
e1f4: 1bc0 subs r0, r0, r7
* @param area_p pointer to an area
* @return the height of the area (if y1 == y2 -> height = 1)
*/
static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p)
{
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
e1f6: b29e uxth r6, r3
corner_area.x1 = a_p->x1;
e1f8: f8ad 4010 strh.w r4, [sp, #16]
lv_coord_t w = lv_area_get_width(a_p) / 2;
e1fc: f3c0 34c0 ubfx r4, r0, #15, #1
e200: fa1f fc8b uxth.w ip, fp
e204: fa04 f080 sxtah r0, r4, r0
e208: 1c74 adds r4, r6, #1
e20a: eba4 040c sub.w r4, r4, ip
lv_coord_t h = lv_area_get_height(a_p) / 2;
e20e: f3c4 35c0 ubfx r5, r4, #15, #1
e212: fa05 f584 sxtah r5, r5, r4
lv_coord_t max_radius = LV_MATH_MIN(w, h);
e216: 1040 asrs r0, r0, #1
e218: 106d asrs r5, r5, #1
corner_area.x2 = a_p->x1 + radius;
e21a: 42a8 cmp r0, r5
e21c: bfa8 it ge
e21e: 4628 movge r0, r5
e220: 4290 cmp r0, r2
e222: bfa8 it ge
e224: 4610 movge r0, r2
corner_area.y2 = a_p->y1 + radius;
e226: fa1c f480 uxtah r4, ip, r0
corner_area.x2 = a_p->x1 + radius;
e22a: fa17 f780 uxtah r7, r7, r0
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e22e: 2200 movs r2, #0
corner_area.x2 = a_p->x1 + radius;
e230: b285 uxth r5, r0
e232: b2bf uxth r7, r7
corner_area.y2 = a_p->y1 + radius;
e234: b224 sxth r4, r4
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e236: a804 add r0, sp, #16
e238: 9303 str r3, [sp, #12]
corner_area.x2 = a_p->x1 + radius;
e23a: f8ad 7014 strh.w r7, [sp, #20]
corner_area.y1 = a_p->y1;
e23e: f8ad b012 strh.w fp, [sp, #18]
corner_area.y2 = a_p->y1 + radius;
e242: f8ad 4016 strh.w r4, [sp, #22]
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e246: f7ff ffaf bl e1a8 <_lv_area_is_point_on>
e24a: 9b03 ldr r3, [sp, #12]
e24c: 4602 mov r2, r0
e24e: b140 cbz r0, e262 <_lv_area_is_point_on+0xba>
corner_area.x2 += radius;
e250: 443d add r5, r7
e252: f8ad 5014 strh.w r5, [sp, #20]
return lv_point_within_circle(&corner_area, p_p);
e256: 4b1f ldr r3, [pc, #124] ; (e2d4 <_lv_area_is_point_on+0x12c>)
e258: 4652 mov r2, sl
e25a: 4649 mov r1, r9
e25c: a804 add r0, sp, #16
e25e: 4798 blx r3
e260: e7c0 b.n e1e4 <_lv_area_is_point_on+0x3c>
corner_area.y1 = a_p->y2 - radius;
e262: 1b76 subs r6, r6, r5
e264: b2b6 uxth r6, r6
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e266: 4641 mov r1, r8
e268: a804 add r0, sp, #16
corner_area.y1 = a_p->y2 - radius;
e26a: f8ad 6012 strh.w r6, [sp, #18]
corner_area.y2 = a_p->y2;
e26e: f8ad 3016 strh.w r3, [sp, #22]
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e272: f7ff ff99 bl e1a8 <_lv_area_is_point_on>
e276: 4602 mov r2, r0
e278: b130 cbz r0, e288 <_lv_area_is_point_on+0xe0>
corner_area.x2 += radius;
e27a: 442f add r7, r5
corner_area.y1 -= radius;
e27c: 1b75 subs r5, r6, r5
corner_area.x2 += radius;
e27e: f8ad 7014 strh.w r7, [sp, #20]
corner_area.y1 -= radius;
e282: f8ad 5012 strh.w r5, [sp, #18]
return lv_point_within_circle(&corner_area, p_p);
e286: e7e6 b.n e256 <_lv_area_is_point_on+0xae>
corner_area.x1 = a_p->x2 - radius;
e288: 9b02 ldr r3, [sp, #8]
e28a: 1b5f subs r7, r3, r5
e28c: b2bf uxth r7, r7
corner_area.x2 = a_p->x2;
e28e: 9b01 ldr r3, [sp, #4]
corner_area.x1 = a_p->x2 - radius;
e290: f8ad 7010 strh.w r7, [sp, #16]
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e294: 4641 mov r1, r8
e296: a804 add r0, sp, #16
corner_area.x2 = a_p->x2;
e298: f8ad 3014 strh.w r3, [sp, #20]
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e29c: f7ff ff84 bl e1a8 <_lv_area_is_point_on>
e2a0: 4602 mov r2, r0
e2a2: b130 cbz r0, e2b2 <_lv_area_is_point_on+0x10a>
corner_area.x1 -= radius;
e2a4: 1b7f subs r7, r7, r5
corner_area.y1 -= radius;
e2a6: 1b76 subs r6, r6, r5
corner_area.x1 -= radius;
e2a8: f8ad 7010 strh.w r7, [sp, #16]
corner_area.y1 -= radius;
e2ac: f8ad 6012 strh.w r6, [sp, #18]
return lv_point_within_circle(&corner_area, p_p);
e2b0: e7d1 b.n e256 <_lv_area_is_point_on+0xae>
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e2b2: 4641 mov r1, r8
e2b4: a804 add r0, sp, #16
corner_area.y1 = a_p->y1;
e2b6: f8ad b012 strh.w fp, [sp, #18]
corner_area.y2 = a_p->y1 + radius;
e2ba: f8ad 4016 strh.w r4, [sp, #22]
if(_lv_area_is_point_on(&corner_area, p_p, 0)) {
e2be: f7ff ff73 bl e1a8 <_lv_area_is_point_on>
e2c2: 2800 cmp r0, #0
e2c4: d08d beq.n e1e2 <_lv_area_is_point_on+0x3a>
corner_area.x1 -= radius;
e2c6: 1b7f subs r7, r7, r5
e2c8: f8ad 7010 strh.w r7, [sp, #16]
e2cc: e7c3 b.n e256 <_lv_area_is_point_on+0xae>
return false;
e2ce: 2000 movs r0, #0
e2d0: e788 b.n e1e4 <_lv_area_is_point_on+0x3c>
e2d2: bf00 nop
e2d4: 0000e0b7 .word 0x0000e0b7
0000e2d8 <_lv_area_is_on>:
if((a1_p->x1 <= a2_p->x2) && (a1_p->x2 >= a2_p->x1) && (a1_p->y1 <= a2_p->y2) && (a1_p->y2 >= a2_p->y1)) {
e2d8: f9b0 2000 ldrsh.w r2, [r0]
e2dc: f9b1 3004 ldrsh.w r3, [r1, #4]
e2e0: 429a cmp r2, r3
e2e2: dc14 bgt.n e30e <_lv_area_is_on+0x36>
e2e4: f9b0 2004 ldrsh.w r2, [r0, #4]
e2e8: f9b1 3000 ldrsh.w r3, [r1]
e2ec: 429a cmp r2, r3
e2ee: db0e blt.n e30e <_lv_area_is_on+0x36>
e2f0: f9b0 2002 ldrsh.w r2, [r0, #2]
e2f4: f9b1 3006 ldrsh.w r3, [r1, #6]
e2f8: 429a cmp r2, r3
e2fa: dc08 bgt.n e30e <_lv_area_is_on+0x36>
e2fc: f9b0 0006 ldrsh.w r0, [r0, #6]
e300: f9b1 3002 ldrsh.w r3, [r1, #2]
e304: 4298 cmp r0, r3
e306: bfb4 ite lt
e308: 2000 movlt r0, #0
e30a: 2001 movge r0, #1
e30c: 4770 bx lr
return false;
e30e: 2000 movs r0, #0
}
e310: 4770 bx lr
...
0000e314 <_lv_area_is_in>:
{
e314: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
if(ain_p->x1 >= aholder_p->x1 && ain_p->y1 >= aholder_p->y1 && ain_p->x2 <= aholder_p->x2 &&
e318: f9b0 7000 ldrsh.w r7, [r0]
e31c: f9b1 3000 ldrsh.w r3, [r1]
e320: 42bb cmp r3, r7
{
e322: 4605 mov r5, r0
e324: 460c mov r4, r1
if(ain_p->x1 >= aholder_p->x1 && ain_p->y1 >= aholder_p->y1 && ain_p->x2 <= aholder_p->x2 &&
e326: dc24 bgt.n e372 <_lv_area_is_in+0x5e>
e328: f9b0 1002 ldrsh.w r1, [r0, #2]
e32c: f9b4 3002 ldrsh.w r3, [r4, #2]
e330: 4299 cmp r1, r3
e332: db1e blt.n e372 <_lv_area_is_in+0x5e>
e334: f9b0 1004 ldrsh.w r1, [r0, #4]
e338: f9b4 3004 ldrsh.w r3, [r4, #4]
e33c: 4299 cmp r1, r3
e33e: dc18 bgt.n e372 <_lv_area_is_in+0x5e>
e340: f9b0 3006 ldrsh.w r3, [r0, #6]
e344: f9b4 1006 ldrsh.w r1, [r4, #6]
e348: 428b cmp r3, r1
e34a: bfcc ite gt
e34c: 2000 movgt r0, #0
e34e: 2001 movle r0, #1
if(radius == 0) return is_in;
e350: b162 cbz r2, e36c <_lv_area_is_in+0x58>
p.y = ain_p->y1;
e352: 886b ldrh r3, [r5, #2]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e354: 4e16 ldr r6, [pc, #88] ; (e3b0 <_lv_area_is_in+0x9c>)
e356: 9201 str r2, [sp, #4]
e358: a903 add r1, sp, #12
e35a: 4620 mov r0, r4
p.x = ain_p->x1;
e35c: f8ad 700c strh.w r7, [sp, #12]
p.y = ain_p->y1;
e360: f8ad 300e strh.w r3, [sp, #14]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e364: 47b0 blx r6
e366: 9a01 ldr r2, [sp, #4]
e368: b928 cbnz r0, e376 <_lv_area_is_in+0x62>
e36a: 2000 movs r0, #0
}
e36c: b004 add sp, #16
e36e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
bool is_in = false;
e372: 2000 movs r0, #0
e374: e7ec b.n e350 <_lv_area_is_in+0x3c>
p.x = ain_p->x2;
e376: f9b5 8004 ldrsh.w r8, [r5, #4]
e37a: f8ad 800c strh.w r8, [sp, #12]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e37e: a903 add r1, sp, #12
e380: 4620 mov r0, r4
e382: 9201 str r2, [sp, #4]
e384: 47b0 blx r6
e386: 2800 cmp r0, #0
e388: d0ef beq.n e36a <_lv_area_is_in+0x56>
p.y = ain_p->y2;
e38a: 88eb ldrh r3, [r5, #6]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e38c: 9a01 ldr r2, [sp, #4]
p.x = ain_p->x1;
e38e: f8ad 700c strh.w r7, [sp, #12]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e392: a903 add r1, sp, #12
e394: 4620 mov r0, r4
p.y = ain_p->y2;
e396: f8ad 300e strh.w r3, [sp, #14]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e39a: 47b0 blx r6
e39c: 2800 cmp r0, #0
e39e: d0e4 beq.n e36a <_lv_area_is_in+0x56>
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e3a0: 9a01 ldr r2, [sp, #4]
p.x = ain_p->x2;
e3a2: f8ad 800c strh.w r8, [sp, #12]
if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false;
e3a6: a903 add r1, sp, #12
e3a8: 4620 mov r0, r4
e3aa: 47b0 blx r6
e3ac: e7de b.n e36c <_lv_area_is_in+0x58>
e3ae: bf00 nop
e3b0: 0000e1a9 .word 0x0000e1a9
0000e3b4 <_lv_area_align>:
{
e3b4: b5f0 push {r4, r5, r6, r7, lr}
e3b6: 8844 ldrh r4, [r0, #2]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
e3b8: 8805 ldrh r5, [r0, #0]
switch(align) {
e3ba: 2a14 cmp r2, #20
e3bc: d83f bhi.n e43e <_lv_area_align+0x8a>
e3be: e8df f012 tbh [pc, r2, lsl #1]
e3c2: 0015 .short 0x0015
e3c4: 0045003b .word 0x0045003b
e3c8: 0061005a .word 0x0061005a
e3cc: 007c0069 .word 0x007c0069
e3d0: 00850083 .word 0x00850083
e3d4: 0093008c .word 0x0093008c
e3d8: 00ad00a6 .word 0x00ad00a6
e3dc: 00c600b3 .word 0x00c600b3
e3e0: 00d200cd .word 0x00d200cd
e3e4: 00dc00d7 .word 0x00dc00d7
e3e8: 00e200df .word 0x00e200df
e3ec: 8882 ldrh r2, [r0, #4]
e3ee: 880f ldrh r7, [r1, #0]
e3f0: 3201 adds r2, #1
e3f2: 1b52 subs r2, r2, r5
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
e3f4: f3c2 36c0 ubfx r6, r2, #15, #1
e3f8: fa06 f682 sxtah r6, r6, r2
e3fc: 888a ldrh r2, [r1, #4]
e3fe: 3201 adds r2, #1
e400: 1bd2 subs r2, r2, r7
e402: f3c2 37c0 ubfx r7, r2, #15, #1
e406: fa07 f282 sxtah r2, r7, r2
e40a: 1052 asrs r2, r2, #1
e40c: ebc2 0266 rsb r2, r2, r6, asr #1
res->x = lv_area_get_width(base);
e410: 801a strh r2, [r3, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
e412: 88c2 ldrh r2, [r0, #6]
e414: 3201 adds r2, #1
e416: 1b12 subs r2, r2, r4
res->y = lv_area_get_height(base) / 2 - lv_area_get_height(to_align) / 2;
e418: f3c2 30c0 ubfx r0, r2, #15, #1
e41c: fa00 f082 sxtah r0, r0, r2
e420: 88ca ldrh r2, [r1, #6]
e422: 8849 ldrh r1, [r1, #2]
e424: 3201 adds r2, #1
e426: 1a52 subs r2, r2, r1
e428: f3c2 31c0 ubfx r1, r2, #15, #1
e42c: fa01 f282 sxtah r2, r1, r2
e430: 1052 asrs r2, r2, #1
e432: ebc2 0260 rsb r2, r2, r0, asr #1
e436: e001 b.n e43c <_lv_area_align+0x88>
res->x = 0;
e438: 2200 movs r2, #0
e43a: 801a strh r2, [r3, #0]
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
e43c: 805a strh r2, [r3, #2]
res->x += base->x1;
e43e: 881a ldrh r2, [r3, #0]
e440: 4415 add r5, r2
res->y += base->y1;
e442: 885a ldrh r2, [r3, #2]
res->x += base->x1;
e444: 801d strh r5, [r3, #0]
res->y += base->y1;
e446: 4414 add r4, r2
e448: 805c strh r4, [r3, #2]
}
e44a: bdf0 pop {r4, r5, r6, r7, pc}
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
e44c: 8882 ldrh r2, [r0, #4]
e44e: 3201 adds r2, #1
e450: 1b52 subs r2, r2, r5
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
e452: f3c2 30c0 ubfx r0, r2, #15, #1
e456: fa00 f082 sxtah r0, r0, r2
e45a: 888a ldrh r2, [r1, #4]
e45c: 8809 ldrh r1, [r1, #0]
e45e: 3201 adds r2, #1
e460: 1a52 subs r2, r2, r1
e462: f3c2 31c0 ubfx r1, r2, #15, #1
e466: fa01 f282 sxtah r2, r1, r2
e46a: 1052 asrs r2, r2, #1
e46c: ebc2 0260 rsb r2, r2, r0, asr #1
res->x = lv_area_get_width(base);
e470: 801a strh r2, [r3, #0]
res->y = 0;
e472: 2200 movs r2, #0
e474: e7e2 b.n e43c <_lv_area_align+0x88>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
e476: 880a ldrh r2, [r1, #0]
e478: 8889 ldrh r1, [r1, #4]
e47a: 1a52 subs r2, r2, r1
e47c: 8881 ldrh r1, [r0, #4]
e47e: 440a add r2, r1
e480: 1b52 subs r2, r2, r5
e482: e7f5 b.n e470 <_lv_area_align+0xbc>
res->x = 0;
e484: 2200 movs r2, #0
res->x = lv_area_get_width(base);
e486: 801a strh r2, [r3, #0]
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
e488: 884a ldrh r2, [r1, #2]
e48a: 88c9 ldrh r1, [r1, #6]
e48c: 1a52 subs r2, r2, r1
e48e: 88c1 ldrh r1, [r0, #6]
e490: 440a add r2, r1
e492: e047 b.n e524 <_lv_area_align+0x170>
e494: 8882 ldrh r2, [r0, #4]
e496: 880f ldrh r7, [r1, #0]
e498: 3201 adds r2, #1
e49a: 1b52 subs r2, r2, r5
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
e49c: f3c2 36c0 ubfx r6, r2, #15, #1
e4a0: fa06 f682 sxtah r6, r6, r2
e4a4: 888a ldrh r2, [r1, #4]
e4a6: 3201 adds r2, #1
e4a8: 1bd2 subs r2, r2, r7
e4aa: f3c2 37c0 ubfx r7, r2, #15, #1
e4ae: fa07 f282 sxtah r2, r7, r2
e4b2: 1052 asrs r2, r2, #1
e4b4: ebc2 0266 rsb r2, r2, r6, asr #1
e4b8: e7e5 b.n e486 <_lv_area_align+0xd2>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
e4ba: 888e ldrh r6, [r1, #4]
e4bc: 880a ldrh r2, [r1, #0]
e4be: 1b92 subs r2, r2, r6
e4c0: 8886 ldrh r6, [r0, #4]
e4c2: 4432 add r2, r6
e4c4: 1b52 subs r2, r2, r5
e4c6: e7de b.n e486 <_lv_area_align+0xd2>
res->x = 0;
e4c8: 2200 movs r2, #0
e4ca: e7a1 b.n e410 <_lv_area_align+0x5c>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
e4cc: 888e ldrh r6, [r1, #4]
e4ce: 880a ldrh r2, [r1, #0]
e4d0: 1b92 subs r2, r2, r6
e4d2: 8886 ldrh r6, [r0, #4]
e4d4: 4432 add r2, r6
e4d6: 1b52 subs r2, r2, r5
e4d8: e79a b.n e410 <_lv_area_align+0x5c>
res->x = 0;
e4da: 2200 movs r2, #0
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
e4dc: 801a strh r2, [r3, #0]
res->y = -lv_area_get_height(to_align);
e4de: 884a ldrh r2, [r1, #2]
e4e0: 88c9 ldrh r1, [r1, #6]
e4e2: 3a01 subs r2, #1
e4e4: 1a52 subs r2, r2, r1
e4e6: e7a9 b.n e43c <_lv_area_align+0x88>
e4e8: 8882 ldrh r2, [r0, #4]
e4ea: 880e ldrh r6, [r1, #0]
e4ec: 3201 adds r2, #1
e4ee: 1b52 subs r2, r2, r5
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
e4f0: f3c2 30c0 ubfx r0, r2, #15, #1
e4f4: fa00 f082 sxtah r0, r0, r2
e4f8: 888a ldrh r2, [r1, #4]
e4fa: 3201 adds r2, #1
e4fc: 1b92 subs r2, r2, r6
e4fe: f3c2 36c0 ubfx r6, r2, #15, #1
e502: fa06 f282 sxtah r2, r6, r2
e506: 1052 asrs r2, r2, #1
e508: ebc2 0260 rsb r2, r2, r0, asr #1
e50c: e7e6 b.n e4dc <_lv_area_align+0x128>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
e50e: 880a ldrh r2, [r1, #0]
e510: 888e ldrh r6, [r1, #4]
e512: 8880 ldrh r0, [r0, #4]
e514: 1b92 subs r2, r2, r6
e516: 4402 add r2, r0
e518: 1b52 subs r2, r2, r5
e51a: e7df b.n e4dc <_lv_area_align+0x128>
res->x = 0;
e51c: 2200 movs r2, #0
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
e51e: 801a strh r2, [r3, #0]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
e520: 88c2 ldrh r2, [r0, #6]
e522: 3201 adds r2, #1
res->y = lv_area_get_height(base) - lv_area_get_height(to_align);
e524: 1b12 subs r2, r2, r4
e526: e789 b.n e43c <_lv_area_align+0x88>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
e528: 8882 ldrh r2, [r0, #4]
e52a: 3201 adds r2, #1
e52c: 1b52 subs r2, r2, r5
res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2;
e52e: f3c2 36c0 ubfx r6, r2, #15, #1
e532: fa06 f682 sxtah r6, r6, r2
e536: 888a ldrh r2, [r1, #4]
e538: 8809 ldrh r1, [r1, #0]
e53a: 3201 adds r2, #1
e53c: 1a52 subs r2, r2, r1
e53e: f3c2 31c0 ubfx r1, r2, #15, #1
e542: fa01 f282 sxtah r2, r1, r2
e546: 1052 asrs r2, r2, #1
e548: ebc2 0266 rsb r2, r2, r6, asr #1
e54c: e7e7 b.n e51e <_lv_area_align+0x16a>
res->x = lv_area_get_width(base) - lv_area_get_width(to_align);
e54e: 880a ldrh r2, [r1, #0]
e550: 8889 ldrh r1, [r1, #4]
e552: 1a52 subs r2, r2, r1
e554: 8881 ldrh r1, [r0, #4]
e556: 440a add r2, r1
e558: 1b52 subs r2, r2, r5
e55a: e7e0 b.n e51e <_lv_area_align+0x16a>
res->x = -lv_area_get_width(to_align);
e55c: 880a ldrh r2, [r1, #0]
e55e: 8889 ldrh r1, [r1, #4]
e560: 3a01 subs r2, #1
e562: 1a52 subs r2, r2, r1
e564: e784 b.n e470 <_lv_area_align+0xbc>
res->x = -lv_area_get_width(to_align);
e566: 880a ldrh r2, [r1, #0]
e568: 888e ldrh r6, [r1, #4]
e56a: 3a01 subs r2, #1
e56c: 1b92 subs r2, r2, r6
e56e: e74f b.n e410 <_lv_area_align+0x5c>
res->x = -lv_area_get_width(to_align);
e570: 880a ldrh r2, [r1, #0]
e572: 888e ldrh r6, [r1, #4]
e574: 3a01 subs r2, #1
e576: 1b92 subs r2, r2, r6
e578: e785 b.n e486 <_lv_area_align+0xd2>
e57a: 8882 ldrh r2, [r0, #4]
e57c: 3201 adds r2, #1
e57e: e77f b.n e480 <_lv_area_align+0xcc>
e580: 8882 ldrh r2, [r0, #4]
e582: 3201 adds r2, #1
e584: e7a7 b.n e4d6 <_lv_area_align+0x122>
e586: 8882 ldrh r2, [r0, #4]
e588: 3201 adds r2, #1
e58a: e79b b.n e4c4 <_lv_area_align+0x110>
0000e58c <lv_color_fill>:
LV_ATTRIBUTE_FAST_MEM void lv_color_fill(lv_color_t * buf, lv_color_t color, uint32_t px_num)
{
#if LV_COLOR_DEPTH == 16
uintptr_t buf_int = (uintptr_t) buf;
if(buf_int & 0x3) {
e58c: 0783 lsls r3, r0, #30
{
e58e: b510 push {r4, lr}
e590: b28c uxth r4, r1
*buf = color;
e592: bf1c itt ne
e594: f820 1b02 strhne.w r1, [r0], #2
buf++;
px_num--;
e598: f102 32ff addne.w r2, r2, #4294967295 ; 0xffffffff
}
uint32_t c32 = color.full + (color.full << 16);
e59c: eb04 4304 add.w r3, r4, r4, lsl #16
uint32_t * buf32 = (uint32_t *)buf;
while(px_num > 16) {
e5a0: 2a10 cmp r2, #16
e5a2: 4601 mov r1, r0
e5a4: f100 0020 add.w r0, r0, #32
e5a8: d804 bhi.n e5b4 <lv_color_fill+0x28>
e5aa: eb01 0242 add.w r2, r1, r2, lsl #1
px_num -= 16;
}
buf = (lv_color_t *)buf32;
while(px_num) {
e5ae: 428a cmp r2, r1
e5b0: d10a bne.n e5c8 <lv_color_fill+0x3c>
*buf = color;
buf++;
px_num --;
}
#endif
}
e5b2: bd10 pop {r4, pc}
*buf32 = c32;
e5b4: e940 3308 strd r3, r3, [r0, #-32]
*buf32 = c32;
e5b8: e940 3306 strd r3, r3, [r0, #-24]
*buf32 = c32;
e5bc: e940 3304 strd r3, r3, [r0, #-16]
*buf32 = c32;
e5c0: e940 3302 strd r3, r3, [r0, #-8]
px_num -= 16;
e5c4: 3a10 subs r2, #16
e5c6: e7eb b.n e5a0 <lv_color_fill+0x14>
*buf = color;
e5c8: f821 4b02 strh.w r4, [r1], #2
px_num --;
e5cc: e7ef b.n e5ae <lv_color_fill+0x22>
0000e5ce <lv_color_lighten>:
lv_color_t lv_color_lighten(lv_color_t c, lv_opa_t lvl)
{
e5ce: b530 push {r4, r5, lr}
LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix)
{
lv_color_t ret;
#if LV_COLOR_DEPTH != 1
/*LV_COLOR_DEPTH == 8, 16 or 32*/
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e5d0: f1c1 04ff rsb r4, r1, #255 ; 0xff
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
e5d4: f3c0 1545 ubfx r5, r0, #5, #6
e5d8: 4365 muls r5, r4
e5da: 233f movs r3, #63 ; 0x3f
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e5dc: ebc1 1241 rsb r2, r1, r1, lsl #5
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
e5e0: fb13 5101 smlabb r1, r3, r1, r5
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
e5e4: f000 031f and.w r3, r0, #31
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
e5e8: f248 0581 movw r5, #32897 ; 0x8081
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
e5ec: fb04 2303 mla r3, r4, r3, r2
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e5f0: f3c0 20c4 ubfx r0, r0, #11, #5
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
e5f4: 4369 muls r1, r5
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
e5f6: 436b muls r3, r5
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e5f8: fb04 2000 mla r0, r4, r0, r2
e5fc: f3c1 51c5 ubfx r1, r1, #23, #6
e600: 4368 muls r0, r5
e602: f3c3 53c4 ubfx r3, r3, #23, #5
e606: ea43 1341 orr.w r3, r3, r1, lsl #5
e60a: 0dc0 lsrs r0, r0, #23
return lv_color_mix(LV_COLOR_WHITE, c, lvl);
}
e60c: ea43 20c0 orr.w r0, r3, r0, lsl #11
e610: bd30 pop {r4, r5, pc}
0000e612 <lv_color_darken>:
e612: f1c1 01ff rsb r1, r1, #255 ; 0xff
lv_color_t lv_color_darken(lv_color_t c, lv_opa_t lvl)
{
e616: b510 push {r4, lr}
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
e618: f3c0 1245 ubfx r2, r0, #5, #6
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
e61c: f000 031f and.w r3, r0, #31
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
e620: f248 0481 movw r4, #32897 ; 0x8081
e624: 434a muls r2, r1
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
e626: 434b muls r3, r1
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e628: f3c0 20c4 ubfx r0, r0, #11, #5
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
e62c: 4362 muls r2, r4
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
e62e: 4363 muls r3, r4
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e630: 4348 muls r0, r1
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
e632: 0dd2 lsrs r2, r2, #23
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e634: 4360 muls r0, r4
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
e636: 0ddb lsrs r3, r3, #23
e638: ea43 1342 orr.w r3, r3, r2, lsl #5
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
e63c: 0dc0 lsrs r0, r0, #23
return lv_color_mix(LV_COLOR_BLACK, c, lvl);
}
e63e: ea43 20c0 orr.w r0, r3, r0, lsl #11
e642: bd10 pop {r4, pc}
0000e644 <lv_fs_get_real_path>:
static const char * lv_fs_get_real_path(const char * path)
{
/* Example path: "S:/folder/file.txt"
* Leave the letter and the : / \ characters*/
path++; /*Ignore the driver letter*/
e644: 1c43 adds r3, r0, #1
e646: 4618 mov r0, r3
while(*path != '\0') {
e648: f813 2b01 ldrb.w r2, [r3], #1
e64c: b12a cbz r2, e65a <lv_fs_get_real_path+0x16>
if(*path == ':' || *path == '\\' || *path == '/') {
e64e: 2a3a cmp r2, #58 ; 0x3a
e650: d0f9 beq.n e646 <lv_fs_get_real_path+0x2>
e652: 2a5c cmp r2, #92 ; 0x5c
e654: d0f7 beq.n e646 <lv_fs_get_real_path+0x2>
e656: 2a2f cmp r2, #47 ; 0x2f
e658: d0f5 beq.n e646 <lv_fs_get_real_path+0x2>
break;
}
}
return path;
}
e65a: 4770 bx lr
0000e65c <_lv_fs_init>:
_lv_ll_init(&LV_GC_ROOT(_lv_drv_ll), sizeof(lv_fs_drv_t));
e65c: 4801 ldr r0, [pc, #4] ; (e664 <_lv_fs_init+0x8>)
e65e: 4b02 ldr r3, [pc, #8] ; (e668 <_lv_fs_init+0xc>)
e660: 2144 movs r1, #68 ; 0x44
e662: 4718 bx r3
e664: 200035f4 .word 0x200035f4
e668: 0000e889 .word 0x0000e889
0000e66c <lv_fs_close>:
{
e66c: b538 push {r3, r4, r5, lr}
e66e: 4604 mov r4, r0
if(file_p->drv == NULL) {
e670: 6840 ldr r0, [r0, #4]
e672: b160 cbz r0, e68e <lv_fs_close+0x22>
if(file_p->drv->close_cb == NULL) {
e674: 6903 ldr r3, [r0, #16]
e676: b163 cbz r3, e692 <lv_fs_close+0x26>
lv_fs_res_t res = file_p->drv->close_cb(file_p->drv, file_p->file_d);
e678: 6821 ldr r1, [r4, #0]
e67a: 4798 blx r3
lv_mem_free(file_p->file_d); /*Clean up*/
e67c: 4b06 ldr r3, [pc, #24] ; (e698 <lv_fs_close+0x2c>)
lv_fs_res_t res = file_p->drv->close_cb(file_p->drv, file_p->file_d);
e67e: 4605 mov r5, r0
lv_mem_free(file_p->file_d); /*Clean up*/
e680: 6820 ldr r0, [r4, #0]
e682: 4798 blx r3
file_p->file_d = NULL;
e684: 2300 movs r3, #0
file_p->drv = NULL;
e686: e9c4 3300 strd r3, r3, [r4]
}
e68a: 4628 mov r0, r5
e68c: bd38 pop {r3, r4, r5, pc}
return LV_FS_RES_INV_PARAM;
e68e: 250b movs r5, #11
e690: e7fb b.n e68a <lv_fs_close+0x1e>
return LV_FS_RES_NOT_IMP;
e692: 2509 movs r5, #9
e694: e7f9 b.n e68a <lv_fs_close+0x1e>
e696: bf00 nop
e698: 0000ed75 .word 0x0000ed75
0000e69c <lv_fs_read>:
{
e69c: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
e69e: 4605 mov r5, r0
if(br != NULL) *br = 0;
e6a0: 461c mov r4, r3
e6a2: b10b cbz r3, e6a8 <lv_fs_read+0xc>
e6a4: 2300 movs r3, #0
e6a6: 6023 str r3, [r4, #0]
if(file_p->drv == NULL) return LV_FS_RES_INV_PARAM;
e6a8: 6868 ldr r0, [r5, #4]
e6aa: b170 cbz r0, e6ca <lv_fs_read+0x2e>
if(file_p->drv->read_cb == NULL) return LV_FS_RES_NOT_IMP;
e6ac: 6986 ldr r6, [r0, #24]
e6ae: b176 cbz r6, e6ce <lv_fs_read+0x32>
uint32_t br_tmp = 0;
e6b0: 2300 movs r3, #0
e6b2: 9303 str r3, [sp, #12]
lv_fs_res_t res = file_p->drv->read_cb(file_p->drv, file_p->file_d, buf, btr, &br_tmp);
e6b4: ab03 add r3, sp, #12
e6b6: 9300 str r3, [sp, #0]
e6b8: 4613 mov r3, r2
e6ba: 460a mov r2, r1
e6bc: 6829 ldr r1, [r5, #0]
e6be: 47b0 blx r6
if(br != NULL) *br = br_tmp;
e6c0: b10c cbz r4, e6c6 <lv_fs_read+0x2a>
e6c2: 9b03 ldr r3, [sp, #12]
e6c4: 6023 str r3, [r4, #0]
}
e6c6: b004 add sp, #16
e6c8: bd70 pop {r4, r5, r6, pc}
if(file_p->drv == NULL) return LV_FS_RES_INV_PARAM;
e6ca: 200b movs r0, #11
e6cc: e7fb b.n e6c6 <lv_fs_read+0x2a>
if(file_p->drv->read_cb == NULL) return LV_FS_RES_NOT_IMP;
e6ce: 2009 movs r0, #9
e6d0: e7f9 b.n e6c6 <lv_fs_read+0x2a>
0000e6d2 <lv_fs_seek>:
if(file_p->drv == NULL) {
e6d2: 6843 ldr r3, [r0, #4]
{
e6d4: b410 push {r4}
e6d6: 460a mov r2, r1
if(file_p->drv == NULL) {
e6d8: b13b cbz r3, e6ea <lv_fs_seek+0x18>
if(file_p->drv->seek_cb == NULL) {
e6da: 6a1c ldr r4, [r3, #32]
e6dc: b14c cbz r4, e6f2 <lv_fs_seek+0x20>
lv_fs_res_t res = file_p->drv->seek_cb(file_p->drv, file_p->file_d, pos);
e6de: 6801 ldr r1, [r0, #0]
e6e0: 4618 mov r0, r3
e6e2: 4623 mov r3, r4
}
e6e4: f85d 4b04 ldr.w r4, [sp], #4
lv_fs_res_t res = file_p->drv->seek_cb(file_p->drv, file_p->file_d, pos);
e6e8: 4718 bx r3
return LV_FS_RES_INV_PARAM;
e6ea: 200b movs r0, #11
}
e6ec: f85d 4b04 ldr.w r4, [sp], #4
e6f0: 4770 bx lr
return LV_FS_RES_NOT_IMP;
e6f2: 2009 movs r0, #9
e6f4: e7fa b.n e6ec <lv_fs_seek+0x1a>
...
0000e6f8 <lv_fs_get_drv>:
{
e6f8: b570 push {r4, r5, r6, lr}
_LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) {
e6fa: 4b07 ldr r3, [pc, #28] ; (e718 <lv_fs_get_drv+0x20>)
e6fc: 4d07 ldr r5, [pc, #28] ; (e71c <lv_fs_get_drv+0x24>)
e6fe: 4e08 ldr r6, [pc, #32] ; (e720 <lv_fs_get_drv+0x28>)
{
e700: 4604 mov r4, r0
_LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) {
e702: 4806 ldr r0, [pc, #24] ; (e71c <lv_fs_get_drv+0x24>)
e704: 4798 blx r3
e706: b900 cbnz r0, e70a <lv_fs_get_drv+0x12>
}
e708: bd70 pop {r4, r5, r6, pc}
if(drv->letter == letter) {
e70a: 7803 ldrb r3, [r0, #0]
e70c: 42a3 cmp r3, r4
e70e: d0fb beq.n e708 <lv_fs_get_drv+0x10>
_LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) {
e710: 4601 mov r1, r0
e712: 4628 mov r0, r5
e714: 47b0 blx r6
e716: e7f6 b.n e706 <lv_fs_get_drv+0xe>
e718: 0000e92d .word 0x0000e92d
e71c: 200035f4 .word 0x200035f4
e720: 0000e939 .word 0x0000e939
0000e724 <lv_fs_open>:
file_p->drv = NULL;
e724: 2300 movs r3, #0
{
e726: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
file_p->file_d = NULL;
e72a: e9c0 3300 strd r3, r3, [r0]
{
e72e: 4604 mov r4, r0
e730: 4617 mov r7, r2
if(path == NULL) return LV_FS_RES_INV_PARAM;
e732: 460e mov r6, r1
e734: 2900 cmp r1, #0
e736: d043 beq.n e7c0 <lv_fs_open+0x9c>
file_p->drv = lv_fs_get_drv(letter);
e738: 7808 ldrb r0, [r1, #0]
e73a: 4b23 ldr r3, [pc, #140] ; (e7c8 <lv_fs_open+0xa4>)
e73c: 4798 blx r3
e73e: 6060 str r0, [r4, #4]
if(file_p->drv == NULL) {
e740: b928 cbnz r0, e74e <lv_fs_open+0x2a>
file_p->file_d = NULL;
e742: 6020 str r0, [r4, #0]
return LV_FS_RES_NOT_EX;
e744: 2503 movs r5, #3
}
e746: 4628 mov r0, r5
e748: b002 add sp, #8
e74a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
if(file_p->drv->ready_cb != NULL) {
e74e: 6883 ldr r3, [r0, #8]
e750: b12b cbz r3, e75e <lv_fs_open+0x3a>
if(file_p->drv->ready_cb(file_p->drv) == false) {
e752: 4798 blx r3
e754: b918 cbnz r0, e75e <lv_fs_open+0x3a>
file_p->file_d = NULL;
e756: e9c4 0000 strd r0, r0, [r4]
return LV_FS_RES_HW_ERR;
e75a: 2501 movs r5, #1
e75c: e7f3 b.n e746 <lv_fs_open+0x22>
file_p->file_d = lv_mem_alloc(file_p->drv->file_size);
e75e: 6863 ldr r3, [r4, #4]
e760: 8858 ldrh r0, [r3, #2]
e762: 4b1a ldr r3, [pc, #104] ; (e7cc <lv_fs_open+0xa8>)
e764: 4798 blx r3
LV_ASSERT_MEM(file_p->file_d);
e766: 4b1a ldr r3, [pc, #104] ; (e7d0 <lv_fs_open+0xac>)
file_p->file_d = lv_mem_alloc(file_p->drv->file_size);
e768: 6020 str r0, [r4, #0]
LV_ASSERT_MEM(file_p->file_d);
e76a: 4798 blx r3
e76c: 4605 mov r5, r0
e76e: b960 cbnz r0, e78a <lv_fs_open+0x66>
e770: 4b18 ldr r3, [pc, #96] ; (e7d4 <lv_fs_open+0xb0>)
e772: 4919 ldr r1, [pc, #100] ; (e7d8 <lv_fs_open+0xb4>)
e774: 9300 str r3, [sp, #0]
e776: 226f movs r2, #111 ; 0x6f
e778: 2003 movs r0, #3
e77a: 4e18 ldr r6, [pc, #96] ; (e7dc <lv_fs_open+0xb8>)
e77c: 47b0 blx r6
e77e: 6822 ldr r2, [r4, #0]
e780: 4817 ldr r0, [pc, #92] ; (e7e0 <lv_fs_open+0xbc>)
e782: 4918 ldr r1, [pc, #96] ; (e7e4 <lv_fs_open+0xc0>)
e784: 462b mov r3, r5
e786: 4788 blx r1
e788: e7fe b.n e788 <lv_fs_open+0x64>
if(file_p->file_d == NULL) {
e78a: 6821 ldr r1, [r4, #0]
e78c: b911 cbnz r1, e794 <lv_fs_open+0x70>
file_p->drv = NULL;
e78e: 6061 str r1, [r4, #4]
return LV_FS_RES_OUT_OF_MEM; /* Out of memory */
e790: 250a movs r5, #10
e792: e7d8 b.n e746 <lv_fs_open+0x22>
if(file_p->drv->open_cb == NULL) {
e794: f8d4 8004 ldr.w r8, [r4, #4]
e798: f8d8 500c ldr.w r5, [r8, #12]
e79c: b195 cbz r5, e7c4 <lv_fs_open+0xa0>
const char * real_path = lv_fs_get_real_path(path);
e79e: 4b12 ldr r3, [pc, #72] ; (e7e8 <lv_fs_open+0xc4>)
e7a0: 4630 mov r0, r6
e7a2: 4798 blx r3
lv_fs_res_t res = file_p->drv->open_cb(file_p->drv, file_p->file_d, real_path, mode);
e7a4: 463b mov r3, r7
const char * real_path = lv_fs_get_real_path(path);
e7a6: 4602 mov r2, r0
lv_fs_res_t res = file_p->drv->open_cb(file_p->drv, file_p->file_d, real_path, mode);
e7a8: 4640 mov r0, r8
e7aa: 47a8 blx r5
if(res != LV_FS_RES_OK) {
e7ac: 4605 mov r5, r0
e7ae: 2800 cmp r0, #0
e7b0: d0c9 beq.n e746 <lv_fs_open+0x22>
lv_mem_free(file_p->file_d);
e7b2: 4b0e ldr r3, [pc, #56] ; (e7ec <lv_fs_open+0xc8>)
e7b4: 6820 ldr r0, [r4, #0]
e7b6: 4798 blx r3
file_p->file_d = NULL;
e7b8: 2300 movs r3, #0
file_p->drv = NULL;
e7ba: e9c4 3300 strd r3, r3, [r4]
e7be: e7c2 b.n e746 <lv_fs_open+0x22>
if(path == NULL) return LV_FS_RES_INV_PARAM;
e7c0: 250b movs r5, #11
e7c2: e7c0 b.n e746 <lv_fs_open+0x22>
return LV_FS_RES_NOT_IMP;
e7c4: 2509 movs r5, #9
e7c6: e7be b.n e746 <lv_fs_open+0x22>
e7c8: 0000e6f9 .word 0x0000e6f9
e7cc: 0000ecbd .word 0x0000ecbd
e7d0: 00001a65 .word 0x00001a65
e7d4: 0002b9f1 .word 0x0002b9f1
e7d8: 0002b9b0 .word 0x0002b9b0
e7dc: 0000eb79 .word 0x0000eb79
e7e0: 00026842 .word 0x00026842
e7e4: 00001a6d .word 0x00001a6d
e7e8: 0000e645 .word 0x0000e645
e7ec: 0000ed75 .word 0x0000ed75
0000e7f0 <lv_fs_get_ext>:
{
e7f0: b510 push {r4, lr}
for(i = strlen(fn); i > 0; i--) {
e7f2: 4b09 ldr r3, [pc, #36] ; (e818 <lv_fs_get_ext+0x28>)
{
e7f4: 4604 mov r4, r0
for(i = strlen(fn); i > 0; i--) {
e7f6: 4798 blx r3
e7f8: b908 cbnz r0, e7fe <lv_fs_get_ext+0xe>
return ""; /*No extension if a '\' or '/' found*/
e7fa: 4808 ldr r0, [pc, #32] ; (e81c <lv_fs_get_ext+0x2c>)
e7fc: e004 b.n e808 <lv_fs_get_ext+0x18>
if(fn[i] == '.') {
e7fe: 5c23 ldrb r3, [r4, r0]
e800: 2b2e cmp r3, #46 ; 0x2e
e802: d102 bne.n e80a <lv_fs_get_ext+0x1a>
return &fn[i + 1];
e804: 3001 adds r0, #1
e806: 4420 add r0, r4
}
e808: bd10 pop {r4, pc}
else if(fn[i] == '/' || fn[i] == '\\') {
e80a: 2b2f cmp r3, #47 ; 0x2f
e80c: d0f5 beq.n e7fa <lv_fs_get_ext+0xa>
e80e: 2b5c cmp r3, #92 ; 0x5c
e810: d0f3 beq.n e7fa <lv_fs_get_ext+0xa>
for(i = strlen(fn); i > 0; i--) {
e812: 3801 subs r0, #1
e814: e7f0 b.n e7f8 <lv_fs_get_ext+0x8>
e816: bf00 nop
e818: 00017481 .word 0x00017481
e81c: 0001df01 .word 0x0001df01
0000e820 <_lv_memcpy_small.constprop.0.isra.0>:
while(len) {
e820: 3901 subs r1, #1
e822: 1d03 adds r3, r0, #4
*d8 = *s8;
e824: f811 2f01 ldrb.w r2, [r1, #1]!
e828: f800 2b01 strb.w r2, [r0], #1
while(len) {
e82c: 4298 cmp r0, r3
e82e: d1f9 bne.n e824 <_lv_memcpy_small.constprop.0.isra.0+0x4>
s8++;
len--;
}
return dst;
}
e830: 4770 bx lr
...
0000e834 <node_set_prev>:
* @param ll_p pointer to linked list
* @param act pointer to a node which prev. node pointer should be set
* @param prev pointer to a node which should be the previous node before 'act'
*/
static void node_set_prev(lv_ll_t * ll_p, lv_ll_node_t * act, lv_ll_node_t * prev)
{
e834: b507 push {r0, r1, r2, lr}
e836: 9201 str r2, [sp, #4]
if(act == NULL) return; /*Can't set the prev node of `NULL`*/
e838: b129 cbz r1, e846 <node_set_prev+0x12>
uint32_t node_p_size = sizeof(lv_ll_node_t *);
if(prev)
_lv_memcpy_small(act + LL_PREV_P_OFFSET(ll_p), &prev, node_p_size);
e83a: 6800 ldr r0, [r0, #0]
e83c: 4408 add r0, r1
if(prev)
e83e: b12a cbz r2, e84c <node_set_prev+0x18>
_lv_memcpy_small(act + LL_PREV_P_OFFSET(ll_p), &prev, node_p_size);
e840: 4b04 ldr r3, [pc, #16] ; (e854 <node_set_prev+0x20>)
e842: a901 add r1, sp, #4
e844: 4798 blx r3
else
_lv_memset_00(act + LL_PREV_P_OFFSET(ll_p), node_p_size);
}
e846: b003 add sp, #12
e848: f85d fb04 ldr.w pc, [sp], #4
_lv_memset_00(act + LL_PREV_P_OFFSET(ll_p), node_p_size);
e84c: 4b02 ldr r3, [pc, #8] ; (e858 <node_set_prev+0x24>)
e84e: 2104 movs r1, #4
e850: 4798 blx r3
e852: e7f8 b.n e846 <node_set_prev+0x12>
e854: 0000e821 .word 0x0000e821
e858: 0000f2a9 .word 0x0000f2a9
0000e85c <node_set_next>:
* @param ll_p pointer to linked list
* @param act pointer to a node which next node pointer should be set
* @param next pointer to a node which should be the next node before 'act'
*/
static void node_set_next(lv_ll_t * ll_p, lv_ll_node_t * act, lv_ll_node_t * next)
{
e85c: b507 push {r0, r1, r2, lr}
e85e: 9201 str r2, [sp, #4]
if(act == NULL) return; /*Can't set the next node of `NULL`*/
e860: b131 cbz r1, e870 <node_set_next+0x14>
uint32_t node_p_size = sizeof(lv_ll_node_t *);
if(next)
_lv_memcpy_small(act + LL_NEXT_P_OFFSET(ll_p), &next, node_p_size);
e862: 6803 ldr r3, [r0, #0]
e864: 3304 adds r3, #4
e866: 18c8 adds r0, r1, r3
if(next)
e868: b12a cbz r2, e876 <node_set_next+0x1a>
_lv_memcpy_small(act + LL_NEXT_P_OFFSET(ll_p), &next, node_p_size);
e86a: 4b05 ldr r3, [pc, #20] ; (e880 <node_set_next+0x24>)
e86c: a901 add r1, sp, #4
e86e: 4798 blx r3
else
_lv_memset_00(act + LL_NEXT_P_OFFSET(ll_p), node_p_size);
}
e870: b003 add sp, #12
e872: f85d fb04 ldr.w pc, [sp], #4
_lv_memset_00(act + LL_NEXT_P_OFFSET(ll_p), node_p_size);
e876: 4b03 ldr r3, [pc, #12] ; (e884 <node_set_next+0x28>)
e878: 2104 movs r1, #4
e87a: 4798 blx r3
e87c: e7f8 b.n e870 <node_set_next+0x14>
e87e: bf00 nop
e880: 0000e821 .word 0x0000e821
e884: 0000f2a9 .word 0x0000f2a9
0000e888 <_lv_ll_init>:
ll_p->head = NULL;
e888: 2300 movs r3, #0
ll_p->tail = NULL;
e88a: e9c0 3301 strd r3, r3, [r0, #4]
if(node_size & 0x3) {
e88e: 078b lsls r3, r1, #30
node_size = node_size & (~0x3);
e890: bf1c itt ne
e892: f021 0103 bicne.w r1, r1, #3
node_size += 4;
e896: 3104 addne r1, #4
ll_p->n_size = node_size;
e898: 6001 str r1, [r0, #0]
}
e89a: 4770 bx lr
0000e89c <_lv_ll_ins_head>:
{
e89c: b570 push {r4, r5, r6, lr}
e89e: 4604 mov r4, r0
n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE);
e8a0: 6800 ldr r0, [r0, #0]
e8a2: 4b0d ldr r3, [pc, #52] ; (e8d8 <_lv_ll_ins_head+0x3c>)
e8a4: 3008 adds r0, #8
e8a6: 4798 blx r3
if(n_new != NULL) {
e8a8: 4605 mov r5, r0
e8aa: b190 cbz r0, e8d2 <_lv_ll_ins_head+0x36>
node_set_prev(ll_p, n_new, NULL); /*No prev. before the new head*/
e8ac: 4601 mov r1, r0
e8ae: 2200 movs r2, #0
e8b0: 4620 mov r0, r4
e8b2: 4e0a ldr r6, [pc, #40] ; (e8dc <_lv_ll_ins_head+0x40>)
e8b4: 47b0 blx r6
node_set_next(ll_p, n_new, ll_p->head); /*After new comes the old head*/
e8b6: 4629 mov r1, r5
e8b8: 6862 ldr r2, [r4, #4]
e8ba: 4b09 ldr r3, [pc, #36] ; (e8e0 <_lv_ll_ins_head+0x44>)
e8bc: 4620 mov r0, r4
e8be: 4798 blx r3
if(ll_p->head != NULL) { /*If there is old head then before it goes the new*/
e8c0: 6861 ldr r1, [r4, #4]
e8c2: b111 cbz r1, e8ca <_lv_ll_ins_head+0x2e>
node_set_prev(ll_p, ll_p->head, n_new);
e8c4: 462a mov r2, r5
e8c6: 4620 mov r0, r4
e8c8: 47b0 blx r6
if(ll_p->tail == NULL) { /*If there is no tail (1. node) set the tail too*/
e8ca: 68a3 ldr r3, [r4, #8]
ll_p->head = n_new; /*Set the new head in the dsc.*/
e8cc: 6065 str r5, [r4, #4]
if(ll_p->tail == NULL) { /*If there is no tail (1. node) set the tail too*/
e8ce: b903 cbnz r3, e8d2 <_lv_ll_ins_head+0x36>
ll_p->tail = n_new;
e8d0: 60a5 str r5, [r4, #8]
}
e8d2: 4628 mov r0, r5
e8d4: bd70 pop {r4, r5, r6, pc}
e8d6: bf00 nop
e8d8: 0000ecbd .word 0x0000ecbd
e8dc: 0000e835 .word 0x0000e835
e8e0: 0000e85d .word 0x0000e85d
0000e8e4 <_lv_ll_ins_tail>:
{
e8e4: b570 push {r4, r5, r6, lr}
e8e6: 4604 mov r4, r0
n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE);
e8e8: 6800 ldr r0, [r0, #0]
e8ea: 4b0d ldr r3, [pc, #52] ; (e920 <_lv_ll_ins_tail+0x3c>)
e8ec: 3008 adds r0, #8
e8ee: 4798 blx r3
if(n_new != NULL) {
e8f0: 4605 mov r5, r0
e8f2: b190 cbz r0, e91a <_lv_ll_ins_tail+0x36>
node_set_next(ll_p, n_new, NULL); /*No next after the new tail*/
e8f4: 4601 mov r1, r0
e8f6: 2200 movs r2, #0
e8f8: 4620 mov r0, r4
e8fa: 4e0a ldr r6, [pc, #40] ; (e924 <_lv_ll_ins_tail+0x40>)
e8fc: 47b0 blx r6
node_set_prev(ll_p, n_new, ll_p->tail); /*The prev. before new is tho old tail*/
e8fe: 4629 mov r1, r5
e900: 68a2 ldr r2, [r4, #8]
e902: 4b09 ldr r3, [pc, #36] ; (e928 <_lv_ll_ins_tail+0x44>)
e904: 4620 mov r0, r4
e906: 4798 blx r3
if(ll_p->tail != NULL) { /*If there is old tail then the new comes after it*/
e908: 68a1 ldr r1, [r4, #8]
e90a: b111 cbz r1, e912 <_lv_ll_ins_tail+0x2e>
node_set_next(ll_p, ll_p->tail, n_new);
e90c: 462a mov r2, r5
e90e: 4620 mov r0, r4
e910: 47b0 blx r6
if(ll_p->head == NULL) { /*If there is no head (1. node) set the head too*/
e912: 6863 ldr r3, [r4, #4]
ll_p->tail = n_new; /*Set the new tail in the dsc.*/
e914: 60a5 str r5, [r4, #8]
if(ll_p->head == NULL) { /*If there is no head (1. node) set the head too*/
e916: b903 cbnz r3, e91a <_lv_ll_ins_tail+0x36>
ll_p->head = n_new;
e918: 6065 str r5, [r4, #4]
}
e91a: 4628 mov r0, r5
e91c: bd70 pop {r4, r5, r6, pc}
e91e: bf00 nop
e920: 0000ecbd .word 0x0000ecbd
e924: 0000e85d .word 0x0000e85d
e928: 0000e835 .word 0x0000e835
0000e92c <_lv_ll_get_head>:
if(ll_p != NULL) {
e92c: b100 cbz r0, e930 <_lv_ll_get_head+0x4>
head = ll_p->head;
e92e: 6840 ldr r0, [r0, #4]
}
e930: 4770 bx lr
0000e932 <_lv_ll_get_tail>:
if(ll_p != NULL) {
e932: b100 cbz r0, e936 <_lv_ll_get_tail+0x4>
tail = ll_p->tail;
e934: 6880 ldr r0, [r0, #8]
}
e936: 4770 bx lr
0000e938 <_lv_ll_get_next>:
{
e938: b507 push {r0, r1, r2, lr}
void * next = NULL;
e93a: 2300 movs r3, #0
e93c: 9301 str r3, [sp, #4]
if(ll_p != NULL) {
e93e: b128 cbz r0, e94c <_lv_ll_get_next+0x14>
_lv_memcpy_small(&next, n_act_d + LL_NEXT_P_OFFSET(ll_p), sizeof(void *));
e940: 6803 ldr r3, [r0, #0]
e942: 3304 adds r3, #4
e944: 4419 add r1, r3
e946: a801 add r0, sp, #4
e948: 4b02 ldr r3, [pc, #8] ; (e954 <_lv_ll_get_next+0x1c>)
e94a: 4798 blx r3
}
e94c: 9801 ldr r0, [sp, #4]
e94e: b003 add sp, #12
e950: f85d fb04 ldr.w pc, [sp], #4
e954: 0000e821 .word 0x0000e821
0000e958 <_lv_ll_get_prev>:
{
e958: b507 push {r0, r1, r2, lr}
void * prev = NULL;
e95a: 2300 movs r3, #0
e95c: 9301 str r3, [sp, #4]
if(ll_p != NULL) {
e95e: b120 cbz r0, e96a <_lv_ll_get_prev+0x12>
_lv_memcpy_small(&prev, n_act_d + LL_PREV_P_OFFSET(ll_p), sizeof(void *));
e960: 6803 ldr r3, [r0, #0]
e962: a801 add r0, sp, #4
e964: 4419 add r1, r3
e966: 4b03 ldr r3, [pc, #12] ; (e974 <_lv_ll_get_prev+0x1c>)
e968: 4798 blx r3
}
e96a: 9801 ldr r0, [sp, #4]
e96c: b003 add sp, #12
e96e: f85d fb04 ldr.w pc, [sp], #4
e972: bf00 nop
e974: 0000e821 .word 0x0000e821
0000e978 <_lv_ll_ins_prev>:
{
e978: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
e97c: 460e mov r6, r1
if(NULL == ll_p || NULL == n_act) return NULL;
e97e: 4604 mov r4, r0
e980: b340 cbz r0, e9d4 <_lv_ll_ins_prev+0x5c>
e982: b349 cbz r1, e9d8 <_lv_ll_ins_prev+0x60>
if(_lv_ll_get_head(ll_p) == n_act) {
e984: 6843 ldr r3, [r0, #4]
e986: 4299 cmp r1, r3
e988: d103 bne.n e992 <_lv_ll_ins_prev+0x1a>
}
e98a: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
n_new = _lv_ll_ins_head(ll_p);
e98e: 4b13 ldr r3, [pc, #76] ; (e9dc <_lv_ll_ins_prev+0x64>)
e990: 4718 bx r3
n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE);
e992: 6800 ldr r0, [r0, #0]
e994: 4b12 ldr r3, [pc, #72] ; (e9e0 <_lv_ll_ins_prev+0x68>)
e996: 3008 adds r0, #8
e998: 4798 blx r3
if(n_new == NULL) return NULL;
e99a: 4605 mov r5, r0
e99c: b1b8 cbz r0, e9ce <_lv_ll_ins_prev+0x56>
n_prev = _lv_ll_get_prev(ll_p, n_act);
e99e: 4b11 ldr r3, [pc, #68] ; (e9e4 <_lv_ll_ins_prev+0x6c>)
node_set_next(ll_p, n_prev, n_new);
e9a0: f8df 8048 ldr.w r8, [pc, #72] ; e9ec <_lv_ll_ins_prev+0x74>
n_prev = _lv_ll_get_prev(ll_p, n_act);
e9a4: 4631 mov r1, r6
e9a6: 4620 mov r0, r4
e9a8: 4798 blx r3
node_set_next(ll_p, n_prev, n_new);
e9aa: 462a mov r2, r5
n_prev = _lv_ll_get_prev(ll_p, n_act);
e9ac: 4607 mov r7, r0
node_set_next(ll_p, n_prev, n_new);
e9ae: 4601 mov r1, r0
e9b0: 4620 mov r0, r4
e9b2: 47c0 blx r8
node_set_prev(ll_p, n_new, n_prev);
e9b4: 463a mov r2, r7
e9b6: 4629 mov r1, r5
e9b8: 4f0b ldr r7, [pc, #44] ; (e9e8 <_lv_ll_ins_prev+0x70>)
e9ba: 4620 mov r0, r4
e9bc: 47b8 blx r7
node_set_prev(ll_p, n_act, n_new);
e9be: 462a mov r2, r5
e9c0: 4631 mov r1, r6
e9c2: 4620 mov r0, r4
e9c4: 47b8 blx r7
node_set_next(ll_p, n_new, n_act);
e9c6: 4632 mov r2, r6
e9c8: 4629 mov r1, r5
e9ca: 4620 mov r0, r4
e9cc: 47c0 blx r8
}
e9ce: 4628 mov r0, r5
e9d0: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
if(NULL == ll_p || NULL == n_act) return NULL;
e9d4: 4605 mov r5, r0
e9d6: e7fa b.n e9ce <_lv_ll_ins_prev+0x56>
e9d8: 460d mov r5, r1
e9da: e7f8 b.n e9ce <_lv_ll_ins_prev+0x56>
e9dc: 0000e89d .word 0x0000e89d
e9e0: 0000ecbd .word 0x0000ecbd
e9e4: 0000e959 .word 0x0000e959
e9e8: 0000e835 .word 0x0000e835
e9ec: 0000e85d .word 0x0000e85d
0000e9f0 <_lv_ll_remove>:
{
e9f0: b570 push {r4, r5, r6, lr}
e9f2: 460d mov r5, r1
if(ll_p != NULL) {
e9f4: 4604 mov r4, r0
e9f6: b1f8 cbz r0, ea38 <_lv_ll_remove+0x48>
if(_lv_ll_get_head(ll_p) == node_p) {
e9f8: 6843 ldr r3, [r0, #4]
e9fa: 4299 cmp r1, r3
e9fc: d10c bne.n ea18 <_lv_ll_remove+0x28>
ll_p->head = _lv_ll_get_next(ll_p, node_p);
e9fe: 4629 mov r1, r5
ea00: 4b17 ldr r3, [pc, #92] ; (ea60 <_lv_ll_remove+0x70>)
ea02: 4620 mov r0, r4
ea04: 4798 blx r3
ea06: 4601 mov r1, r0
ea08: 6060 str r0, [r4, #4]
if(ll_p->head == NULL) {
ea0a: b908 cbnz r0, ea10 <_lv_ll_remove+0x20>
ll_p->tail = NULL;
ea0c: 60a0 str r0, [r4, #8]
}
ea0e: bd70 pop {r4, r5, r6, pc}
node_set_prev(ll_p, ll_p->head, NULL);
ea10: 2200 movs r2, #0
node_set_prev(ll_p, n_next, n_prev);
ea12: 4b14 ldr r3, [pc, #80] ; (ea64 <_lv_ll_remove+0x74>)
ea14: 4620 mov r0, r4
ea16: e00c b.n ea32 <_lv_ll_remove+0x42>
else if(_lv_ll_get_tail(ll_p) == node_p) {
ea18: 6883 ldr r3, [r0, #8]
ea1a: 4299 cmp r1, r3
ea1c: d10e bne.n ea3c <_lv_ll_remove+0x4c>
ll_p->tail = _lv_ll_get_prev(ll_p, node_p);
ea1e: 4b12 ldr r3, [pc, #72] ; (ea68 <_lv_ll_remove+0x78>)
ea20: 4798 blx r3
ea22: 4601 mov r1, r0
ea24: 60a0 str r0, [r4, #8]
if(ll_p->tail == NULL) {
ea26: b908 cbnz r0, ea2c <_lv_ll_remove+0x3c>
ll_p->head = NULL;
ea28: 6060 str r0, [r4, #4]
ea2a: e7f0 b.n ea0e <_lv_ll_remove+0x1e>
node_set_next(ll_p, ll_p->tail, NULL);
ea2c: 4b0f ldr r3, [pc, #60] ; (ea6c <_lv_ll_remove+0x7c>)
ea2e: 2200 movs r2, #0
ea30: 4620 mov r0, r4
}
ea32: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
node_set_prev(ll_p, n_next, n_prev);
ea36: 4718 bx r3
if(_lv_ll_get_head(ll_p) == node_p) {
ea38: 2900 cmp r1, #0
ea3a: d0e0 beq.n e9fe <_lv_ll_remove+0xe>
lv_ll_node_t * n_prev = _lv_ll_get_prev(ll_p, node_p);
ea3c: 4629 mov r1, r5
ea3e: 4b0a ldr r3, [pc, #40] ; (ea68 <_lv_ll_remove+0x78>)
ea40: 4620 mov r0, r4
ea42: 4798 blx r3
lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p);
ea44: 4629 mov r1, r5
lv_ll_node_t * n_prev = _lv_ll_get_prev(ll_p, node_p);
ea46: 4606 mov r6, r0
lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p);
ea48: 4b05 ldr r3, [pc, #20] ; (ea60 <_lv_ll_remove+0x70>)
ea4a: 4620 mov r0, r4
ea4c: 4798 blx r3
node_set_next(ll_p, n_prev, n_next);
ea4e: 4631 mov r1, r6
ea50: 4602 mov r2, r0
lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p);
ea52: 4605 mov r5, r0
node_set_next(ll_p, n_prev, n_next);
ea54: 4b05 ldr r3, [pc, #20] ; (ea6c <_lv_ll_remove+0x7c>)
ea56: 4620 mov r0, r4
ea58: 4798 blx r3
node_set_prev(ll_p, n_next, n_prev);
ea5a: 4632 mov r2, r6
ea5c: 4629 mov r1, r5
ea5e: e7d8 b.n ea12 <_lv_ll_remove+0x22>
ea60: 0000e939 .word 0x0000e939
ea64: 0000e835 .word 0x0000e835
ea68: 0000e959 .word 0x0000e959
ea6c: 0000e85d .word 0x0000e85d
0000ea70 <_lv_ll_chg_list>:
{
ea70: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
ea74: 460c mov r4, r1
ea76: 461e mov r6, r3
_lv_ll_remove(ll_ori_p, node);
ea78: 4611 mov r1, r2
ea7a: 4b16 ldr r3, [pc, #88] ; (ead4 <_lv_ll_chg_list+0x64>)
ea7c: f8df 805c ldr.w r8, [pc, #92] ; eadc <_lv_ll_chg_list+0x6c>
ea80: 4f15 ldr r7, [pc, #84] ; (ead8 <_lv_ll_chg_list+0x68>)
{
ea82: 4615 mov r5, r2
_lv_ll_remove(ll_ori_p, node);
ea84: 4798 blx r3
if(head) {
ea86: b196 cbz r6, eaae <_lv_ll_chg_list+0x3e>
node_set_prev(ll_new_p, node, NULL);
ea88: 2200 movs r2, #0
ea8a: 4629 mov r1, r5
ea8c: 4620 mov r0, r4
ea8e: 47c0 blx r8
node_set_next(ll_new_p, node, ll_new_p->head);
ea90: 4629 mov r1, r5
ea92: 6862 ldr r2, [r4, #4]
ea94: 4620 mov r0, r4
ea96: 47b8 blx r7
if(ll_new_p->head != NULL) { /*If there is old head then before it goes the new*/
ea98: 6861 ldr r1, [r4, #4]
ea9a: b111 cbz r1, eaa2 <_lv_ll_chg_list+0x32>
node_set_prev(ll_new_p, ll_new_p->head, node);
ea9c: 462a mov r2, r5
ea9e: 4620 mov r0, r4
eaa0: 47c0 blx r8
if(ll_new_p->tail == NULL) { /*If there is no tail (first node) set the tail too*/
eaa2: 68a3 ldr r3, [r4, #8]
ll_new_p->head = node; /*Set the new head in the dsc.*/
eaa4: 6065 str r5, [r4, #4]
if(ll_new_p->tail == NULL) { /*If there is no tail (first node) set the tail too*/
eaa6: b903 cbnz r3, eaaa <_lv_ll_chg_list+0x3a>
ll_new_p->tail = node;
eaa8: 60a5 str r5, [r4, #8]
}
eaaa: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
node_set_prev(ll_new_p, node, ll_new_p->tail);
eaae: 68a2 ldr r2, [r4, #8]
eab0: 4629 mov r1, r5
eab2: 4620 mov r0, r4
eab4: 47c0 blx r8
node_set_next(ll_new_p, node, NULL);
eab6: 4629 mov r1, r5
eab8: 4632 mov r2, r6
eaba: 4620 mov r0, r4
eabc: 47b8 blx r7
if(ll_new_p->tail != NULL) { /*If there is old tail then after it goes the new*/
eabe: 68a1 ldr r1, [r4, #8]
eac0: b111 cbz r1, eac8 <_lv_ll_chg_list+0x58>
node_set_next(ll_new_p, ll_new_p->tail, node);
eac2: 462a mov r2, r5
eac4: 4620 mov r0, r4
eac6: 47b8 blx r7
if(ll_new_p->head == NULL) { /*If there is no head (first node) set the head too*/
eac8: 6863 ldr r3, [r4, #4]
ll_new_p->tail = node; /*Set the new tail in the dsc.*/
eaca: 60a5 str r5, [r4, #8]
if(ll_new_p->head == NULL) { /*If there is no head (first node) set the head too*/
eacc: 2b00 cmp r3, #0
eace: d1ec bne.n eaaa <_lv_ll_chg_list+0x3a>
ll_new_p->head = node;
ead0: 6065 str r5, [r4, #4]
}
ead2: e7ea b.n eaaa <_lv_ll_chg_list+0x3a>
ead4: 0000e9f1 .word 0x0000e9f1
ead8: 0000e85d .word 0x0000e85d
eadc: 0000e835 .word 0x0000e835
0000eae0 <_lv_ll_move_before>:
if(n_act == n_after) return; /*Can't move before itself*/
eae0: 4291 cmp r1, r2
{
eae2: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
eae6: 4604 mov r4, r0
eae8: 460d mov r5, r1
eaea: 4617 mov r7, r2
if(n_act == n_after) return; /*Can't move before itself*/
eaec: d022 beq.n eb34 <_lv_ll_move_before+0x54>
if(n_after != NULL)
eaee: b31a cbz r2, eb38 <_lv_ll_move_before+0x58>
n_before = _lv_ll_get_prev(ll_p, n_after);
eaf0: 4b14 ldr r3, [pc, #80] ; (eb44 <_lv_ll_move_before+0x64>)
eaf2: 4611 mov r1, r2
eaf4: 4798 blx r3
eaf6: 4606 mov r6, r0
if(n_act == n_before) return; /*Already before `n_after`*/
eaf8: 42ae cmp r6, r5
eafa: d01b beq.n eb34 <_lv_ll_move_before+0x54>
_lv_ll_remove(ll_p, n_act);
eafc: 4b12 ldr r3, [pc, #72] ; (eb48 <_lv_ll_move_before+0x68>)
node_set_next(ll_p, n_before, n_act);
eafe: f8df 804c ldr.w r8, [pc, #76] ; eb4c <_lv_ll_move_before+0x6c>
node_set_prev(ll_p, n_act, n_before);
eb02: f8df 904c ldr.w r9, [pc, #76] ; eb50 <_lv_ll_move_before+0x70>
_lv_ll_remove(ll_p, n_act);
eb06: 4629 mov r1, r5
eb08: 4620 mov r0, r4
eb0a: 4798 blx r3
node_set_next(ll_p, n_before, n_act);
eb0c: 462a mov r2, r5
eb0e: 4631 mov r1, r6
eb10: 4620 mov r0, r4
eb12: 47c0 blx r8
node_set_prev(ll_p, n_act, n_before);
eb14: 4632 mov r2, r6
eb16: 4629 mov r1, r5
eb18: 4620 mov r0, r4
eb1a: 47c8 blx r9
node_set_prev(ll_p, n_after, n_act);
eb1c: 462a mov r2, r5
eb1e: 4639 mov r1, r7
eb20: 4620 mov r0, r4
eb22: 47c8 blx r9
node_set_next(ll_p, n_act, n_after);
eb24: 463a mov r2, r7
eb26: 4629 mov r1, r5
eb28: 4620 mov r0, r4
eb2a: 47c0 blx r8
if(n_after == NULL) ll_p->tail = n_act;
eb2c: b907 cbnz r7, eb30 <_lv_ll_move_before+0x50>
eb2e: 60a5 str r5, [r4, #8]
if(n_before == NULL) ll_p->head = n_act;
eb30: b906 cbnz r6, eb34 <_lv_ll_move_before+0x54>
eb32: 6065 str r5, [r4, #4]
}
eb34: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
if(ll_p != NULL) {
eb38: b108 cbz r0, eb3e <_lv_ll_move_before+0x5e>
tail = ll_p->tail;
eb3a: 6886 ldr r6, [r0, #8]
eb3c: e7dc b.n eaf8 <_lv_ll_move_before+0x18>
void * tail = NULL;
eb3e: 4606 mov r6, r0
eb40: e7da b.n eaf8 <_lv_ll_move_before+0x18>
eb42: bf00 nop
eb44: 0000e959 .word 0x0000e959
eb48: 0000e9f1 .word 0x0000e9f1
eb4c: 0000e85d .word 0x0000e85d
eb50: 0000e835 .word 0x0000e835
0000eb54 <_lv_ll_is_empty>:
if(ll_p == NULL) return true;
eb54: b130 cbz r0, eb64 <_lv_ll_is_empty+0x10>
if(ll_p->head == NULL && ll_p->tail == NULL) return true;
eb56: 6843 ldr r3, [r0, #4]
eb58: b933 cbnz r3, eb68 <_lv_ll_is_empty+0x14>
eb5a: 6880 ldr r0, [r0, #8]
eb5c: fab0 f080 clz r0, r0
eb60: 0940 lsrs r0, r0, #5
eb62: 4770 bx lr
if(ll_p == NULL) return true;
eb64: 2001 movs r0, #1
eb66: 4770 bx lr
return false;
eb68: 2000 movs r0, #0
}
eb6a: 4770 bx lr
0000eb6c <lv_log_register_print_cb>:
* and send the formatted log message to a consol or serial port.
* @param print_cb a function pointer to print a log
*/
void lv_log_register_print_cb(lv_log_print_g_cb_t print_cb)
{
custom_print_cb = print_cb;
eb6c: 4b01 ldr r3, [pc, #4] ; (eb74 <lv_log_register_print_cb+0x8>)
eb6e: 6018 str r0, [r3, #0]
}
eb70: 4770 bx lr
eb72: bf00 nop
eb74: 20003754 .word 0x20003754
0000eb78 <_lv_log_add>:
* @param func name of the function when the log added
* @param format printf-like format string
* @param ... parameters for `format`
*/
void _lv_log_add(lv_log_level_t level, const char * file, int line, const char * func, const char * format, ...)
{
eb78: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
eb7c: 461f mov r7, r3
if(level >= _LV_LOG_LEVEL_NUM) return; /*Invalid level*/
if(level >= LV_LOG_LEVEL) {
eb7e: 1e43 subs r3, r0, #1
eb80: b2db uxtb r3, r3
eb82: 2b04 cmp r3, #4
{
eb84: b0c5 sub sp, #276 ; 0x114
eb86: 4604 mov r4, r0
eb88: 460d mov r5, r1
eb8a: 4616 mov r6, r2
if(level >= LV_LOG_LEVEL) {
eb8c: d817 bhi.n ebbe <_lv_log_add+0x46>
va_list args;
va_start(args, format);
eb8e: ab4d add r3, sp, #308 ; 0x134
char buf[256];
lv_vsnprintf(buf, sizeof(buf), format, args);
eb90: f10d 0910 add.w r9, sp, #16
eb94: f8df 8030 ldr.w r8, [pc, #48] ; ebc8 <_lv_log_add+0x50>
va_start(args, format);
eb98: 9303 str r3, [sp, #12]
lv_vsnprintf(buf, sizeof(buf), format, args);
eb9a: 9a4c ldr r2, [sp, #304] ; 0x130
eb9c: f44f 7180 mov.w r1, #256 ; 0x100
eba0: 4648 mov r0, r9
eba2: 47c0 blx r8
}
static const char * lvl_prefix[] = {"Trace", "Info", "Warn", "Error", "User"};
printf("%s: %s \t(%s #%d %s())\n", lvl_prefix[level], buf, &file[p], line, func);
#else
if(custom_print_cb) custom_print_cb(level, file, line, func, buf);
eba4: 4b07 ldr r3, [pc, #28] ; (ebc4 <_lv_log_add+0x4c>)
eba6: f8d3 8000 ldr.w r8, [r3]
ebaa: f1b8 0f00 cmp.w r8, #0
ebae: d006 beq.n ebbe <_lv_log_add+0x46>
ebb0: f8cd 9000 str.w r9, [sp]
ebb4: 463b mov r3, r7
ebb6: 4632 mov r2, r6
ebb8: 4629 mov r1, r5
ebba: 4620 mov r0, r4
ebbc: 47c0 blx r8
#endif
}
}
ebbe: b045 add sp, #276 ; 0x114
ebc0: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
ebc4: 20003754 .word 0x20003754
ebc8: 0000fab1 .word 0x0000fab1
0000ebcc <_lv_trigo_sin>:
* @return sinus of 'angle'. sin(-90) = -32767, sin(90) = 32767
*/
LV_ATTRIBUTE_FAST_MEM int16_t _lv_trigo_sin(int16_t angle)
{
int16_t ret = 0;
angle = angle % 360;
ebcc: f44f 73b4 mov.w r3, #360 ; 0x168
ebd0: fb90 f2f3 sdiv r2, r0, r3
ebd4: fb02 0013 mls r0, r2, r3, r0
ebd8: b200 sxth r0, r0
if(angle < 0) angle = 360 + angle;
ebda: 2800 cmp r0, #0
ebdc: bfbc itt lt
ebde: 18c0 addlt r0, r0, r3
ebe0: b200 sxthlt r0, r0
if(angle < 90) {
ebe2: 2859 cmp r0, #89 ; 0x59
ebe4: 4b0e ldr r3, [pc, #56] ; (ec20 <_lv_trigo_sin+0x54>)
ebe6: dc02 bgt.n ebee <_lv_trigo_sin+0x22>
ret = sin0_90_table[angle];
}
else if(angle >= 90 && angle < 180) {
angle = 180 - angle;
ret = sin0_90_table[angle];
ebe8: f933 0010 ldrsh.w r0, [r3, r0, lsl #1]
ebec: 4770 bx lr
else if(angle >= 90 && angle < 180) {
ebee: b280 uxth r0, r0
ebf0: f1a0 025a sub.w r2, r0, #90 ; 0x5a
ebf4: 2a59 cmp r2, #89 ; 0x59
ebf6: d803 bhi.n ec00 <_lv_trigo_sin+0x34>
angle = 180 - angle;
ebf8: f1c0 00b4 rsb r0, r0, #180 ; 0xb4
ret = sin0_90_table[angle];
ebfc: b280 uxth r0, r0
ebfe: e7f3 b.n ebe8 <_lv_trigo_sin+0x1c>
}
else if(angle >= 180 && angle < 270) {
ec00: f1a0 02b4 sub.w r2, r0, #180 ; 0xb4
ec04: b292 uxth r2, r2
ec06: 2a59 cmp r2, #89 ; 0x59
angle = angle - 180;
ret = -sin0_90_table[angle];
}
else { /*angle >=270*/
angle = 360 - angle;
ec08: bf85 ittet hi
ec0a: f5c0 70b4 rsbhi r0, r0, #360 ; 0x168
ret = -sin0_90_table[angle];
ec0e: b280 uxthhi r0, r0
ret = -sin0_90_table[angle];
ec10: f833 0012 ldrhls.w r0, [r3, r2, lsl #1]
ret = -sin0_90_table[angle];
ec14: f833 0010 ldrhhi.w r0, [r3, r0, lsl #1]
ec18: 4240 negs r0, r0
ec1a: b200 sxth r0, r0
}
return ret;
}
ec1c: 4770 bx lr
ec1e: bf00 nop
ec20: 0002ba0c .word 0x0002ba0c
0000ec24 <_lv_sqrt>:
* If root < 16: mask = 0x80
* If root < 256: mask = 0x800
* Else: mask = 0x8000
*/
LV_ATTRIBUTE_FAST_MEM void _lv_sqrt(uint32_t x, lv_sqrt_res_t * q, uint32_t mask)
{
ec24: b530 push {r4, r5, lr}
x = x << 8; /*To get 4 bit precision. (sqrt(256) = 16 = 4 bit)*/
ec26: 0200 lsls r0, r0, #8
uint32_t root = 0;
ec28: 2300 movs r3, #0
uint32_t trial;
// http://ww1.microchip.com/...en/AppNotes/91040a.pdf
do {
trial = root + mask;
ec2a: 18d4 adds r4, r2, r3
if((uint32_t)trial * trial <= x) root = trial;
ec2c: fb04 f504 mul.w r5, r4, r4
ec30: 42a8 cmp r0, r5
ec32: bf28 it cs
ec34: 4623 movcs r3, r4
mask = mask >> 1;
} while(mask);
ec36: 0852 lsrs r2, r2, #1
ec38: d1f7 bne.n ec2a <_lv_sqrt+0x6>
q->i = (uint32_t) root >> 4;
ec3a: 091a lsrs r2, r3, #4
q->f = (uint32_t)(root & 0xf) << 4;
ec3c: 011b lsls r3, r3, #4
ec3e: b2db uxtb r3, r3
q->i = (uint32_t) root >> 4;
ec40: 800a strh r2, [r1, #0]
q->f = (uint32_t)(root & 0xf) << 4;
ec42: 804b strh r3, [r1, #2]
}
ec44: bd30 pop {r4, r5, pc}
...
0000ec48 <ent_get_next>:
static lv_mem_ent_t * ent_get_next(lv_mem_ent_t * act_e)
{
lv_mem_ent_t * next_e = NULL;
if(act_e == NULL) { /*NULL means: get the first entry*/
next_e = (lv_mem_ent_t *)work_mem;
ec48: 4a07 ldr r2, [pc, #28] ; (ec68 <ent_get_next+0x20>)
{
ec4a: 4603 mov r3, r0
next_e = (lv_mem_ent_t *)work_mem;
ec4c: 6810 ldr r0, [r2, #0]
if(act_e == NULL) { /*NULL means: get the first entry*/
ec4e: b153 cbz r3, ec66 <ent_get_next+0x1e>
}
else { /*Get the next entry */
uint8_t * data = &act_e->first_data;
next_e = (lv_mem_ent_t *)&data[act_e->header.s.d_size];
ec50: f853 2b04 ldr.w r2, [r3], #4
ec54: eb03 0352 add.w r3, r3, r2, lsr #1
if(&next_e->first_data >= &work_mem[LV_MEM_SIZE]) next_e = NULL;
ec58: 1d19 adds r1, r3, #4
ec5a: f500 5200 add.w r2, r0, #8192 ; 0x2000
ec5e: 4291 cmp r1, r2
ec60: bf34 ite cc
ec62: 4618 movcc r0, r3
ec64: 2000 movcs r0, #0
}
return next_e;
}
ec66: 4770 bx lr
ec68: 20003758 .word 0x20003758
0000ec6c <ent_trunc>:
size = size & (~0x7);
size += 8;
}
#else
/*Round the size up to 4*/
if(size & 0x3) {
ec6c: 078b lsls r3, r1, #30
size = size & (~0x3);
ec6e: bf18 it ne
ec70: f021 0103 bicne.w r1, r1, #3
size += 4;
}
#endif
/*Don't let empty space only for a header without data*/
if(e->header.s.d_size == size + sizeof(lv_mem_header_t)) {
ec74: 6802 ldr r2, [r0, #0]
size += 4;
ec76: bf18 it ne
ec78: 3104 addne r1, #4
{
ec7a: b510 push {r4, lr}
if(e->header.s.d_size == size + sizeof(lv_mem_header_t)) {
ec7c: 1d0c adds r4, r1, #4
ec7e: ebb4 0f52 cmp.w r4, r2, lsr #1
ec82: f3c2 035e ubfx r3, r2, #1, #31
ec86: d00b beq.n eca0 <ent_trunc+0x34>
size = e->header.s.d_size;
}
/* Create the new entry after the current if there is space for it */
if(e->header.s.d_size != size) {
ec88: 428b cmp r3, r1
ec8a: d004 beq.n ec96 <ent_trunc+0x2a>
uint8_t * e_data = &e->first_data;
lv_mem_ent_t * after_new_e = (lv_mem_ent_t *)&e_data[size];
after_new_e->header.s.used = 0;
after_new_e->header.s.d_size = (uint32_t)e->header.s.d_size - size - sizeof(lv_mem_header_t);
ec8c: 3b04 subs r3, #4
after_new_e->header.s.used = 0;
ec8e: 1842 adds r2, r0, r1
after_new_e->header.s.d_size = (uint32_t)e->header.s.d_size - size - sizeof(lv_mem_header_t);
ec90: 1a5b subs r3, r3, r1
after_new_e->header.s.used = 0;
ec92: 005b lsls r3, r3, #1
ec94: 6053 str r3, [r2, #4]
}
/* Set the new size for the original entry */
e->header.s.d_size = (uint32_t)size;
ec96: 6803 ldr r3, [r0, #0]
ec98: f361 035f bfi r3, r1, #1, #31
ec9c: 6003 str r3, [r0, #0]
}
ec9e: bd10 pop {r4, pc}
eca0: 4619 mov r1, r3
eca2: e7f8 b.n ec96 <ent_trunc+0x2a>
0000eca4 <_lv_mem_init>:
work_mem = (uint8_t *)work_mem_int;
eca4: 4a03 ldr r2, [pc, #12] ; (ecb4 <_lv_mem_init+0x10>)
eca6: 4b04 ldr r3, [pc, #16] ; (ecb8 <_lv_mem_init+0x14>)
eca8: 6013 str r3, [r2, #0]
full->header.s.used = 0;
ecaa: f643 72f8 movw r2, #16376 ; 0x3ff8
ecae: 601a str r2, [r3, #0]
}
ecb0: 4770 bx lr
ecb2: bf00 nop
ecb4: 20003758 .word 0x20003758
ecb8: 20003764 .word 0x20003764
0000ecbc <lv_mem_alloc>:
{
ecbc: b573 push {r0, r1, r4, r5, r6, lr}
if(size == 0) {
ecbe: 4605 mov r5, r0
ecc0: b1e8 cbz r0, ecfe <lv_mem_alloc+0x42>
if(size & 0x3) {
ecc2: 0782 lsls r2, r0, #30
size = size & (~0x3);
ecc4: bf18 it ne
ecc6: f020 0503 bicne.w r5, r0, #3
e = ent_get_next(e);
ecca: 4e12 ldr r6, [pc, #72] ; (ed14 <lv_mem_alloc+0x58>)
size += 4;
eccc: bf18 it ne
ecce: 3504 addne r5, #4
lv_mem_ent_t * e = NULL;
ecd0: 2400 movs r4, #0
e = ent_get_next(e);
ecd2: 4620 mov r0, r4
ecd4: 47b0 blx r6
if(e != NULL) {
ecd6: 4604 mov r4, r0
ecd8: b198 cbz r0, ed02 <lv_mem_alloc+0x46>
if(e->header.s.used == 0 && e->header.s.d_size >= size) {
ecda: 7803 ldrb r3, [r0, #0]
ecdc: 07db lsls r3, r3, #31
ecde: d4f8 bmi.n ecd2 <lv_mem_alloc+0x16>
ece0: 6803 ldr r3, [r0, #0]
ece2: ebb5 0f53 cmp.w r5, r3, lsr #1
ece6: d8f4 bhi.n ecd2 <lv_mem_alloc+0x16>
ent_trunc(e, size);
ece8: 4b0b ldr r3, [pc, #44] ; (ed18 <lv_mem_alloc+0x5c>)
ecea: 4629 mov r1, r5
ecec: 4798 blx r3
e->header.s.used = 1;
ecee: 7803 ldrb r3, [r0, #0]
ecf0: f043 0301 orr.w r3, r3, #1
ecf4: f804 3b04 strb.w r3, [r4], #4
}
ecf8: 4620 mov r0, r4
ecfa: b002 add sp, #8
ecfc: bd70 pop {r4, r5, r6, pc}
return &zero_mem;
ecfe: 4c07 ldr r4, [pc, #28] ; (ed1c <lv_mem_alloc+0x60>)
ed00: e7fa b.n ecf8 <lv_mem_alloc+0x3c>
if(alloc == NULL) LV_LOG_WARN("Couldn't allocate memory");
ed02: 4b07 ldr r3, [pc, #28] ; (ed20 <lv_mem_alloc+0x64>)
ed04: 9300 str r3, [sp, #0]
ed06: 4907 ldr r1, [pc, #28] ; (ed24 <lv_mem_alloc+0x68>)
ed08: 4b07 ldr r3, [pc, #28] ; (ed28 <lv_mem_alloc+0x6c>)
ed0a: 4d08 ldr r5, [pc, #32] ; (ed2c <lv_mem_alloc+0x70>)
ed0c: 22d1 movs r2, #209 ; 0xd1
ed0e: 2002 movs r0, #2
ed10: 47a8 blx r5
ed12: e7f1 b.n ecf8 <lv_mem_alloc+0x3c>
ed14: 0000ec49 .word 0x0000ec49
ed18: 0000ec6d .word 0x0000ec6d
ed1c: 2000375c .word 0x2000375c
ed20: 0002baf1 .word 0x0002baf1
ed24: 0002bac2 .word 0x0002bac2
ed28: 0002bbd6 .word 0x0002bbd6
ed2c: 0000eb79 .word 0x0000eb79
0000ed30 <lv_mem_defrag>:
{
ed30: b538 push {r3, r4, r5, lr}
next_e = (lv_mem_ent_t *)work_mem;
ed32: 4b0e ldr r3, [pc, #56] ; (ed6c <lv_mem_defrag+0x3c>)
e_free = ent_get_next(e_free);
ed34: 4d0e ldr r5, [pc, #56] ; (ed70 <lv_mem_defrag+0x40>)
next_e = (lv_mem_ent_t *)work_mem;
ed36: 681c ldr r4, [r3, #0]
while(e_free != NULL) {
ed38: b904 cbnz r4, ed3c <lv_mem_defrag+0xc>
}
ed3a: bd38 pop {r3, r4, r5, pc}
e_free = ent_get_next(e_free);
ed3c: 4620 mov r0, r4
ed3e: 47a8 blx r5
if(e_free->header.s.used != 0) {
ed40: 7823 ldrb r3, [r4, #0]
ed42: 07da lsls r2, r3, #31
ed44: d50f bpl.n ed66 <lv_mem_defrag+0x36>
{
ed46: 4604 mov r4, r0
ed48: e7f6 b.n ed38 <lv_mem_defrag+0x8>
if(e_next->header.s.used == 0) {
ed4a: 7803 ldrb r3, [r0, #0]
ed4c: 07db lsls r3, r3, #31
ed4e: d4fa bmi.n ed46 <lv_mem_defrag+0x16>
e_free->header.s.d_size += e_next->header.s.d_size + sizeof(e_next->header);
ed50: 6823 ldr r3, [r4, #0]
ed52: 6801 ldr r1, [r0, #0]
ed54: f3c3 025e ubfx r2, r3, #1, #31
ed58: 3204 adds r2, #4
ed5a: eb02 0251 add.w r2, r2, r1, lsr #1
ed5e: f362 035f bfi r3, r2, #1, #31
ed62: 6023 str r3, [r4, #0]
e_next = ent_get_next(e_next);
ed64: 47a8 blx r5
while(e_next != NULL) {
ed66: 2800 cmp r0, #0
ed68: d1ef bne.n ed4a <lv_mem_defrag+0x1a>
ed6a: e7e6 b.n ed3a <lv_mem_defrag+0xa>
ed6c: 20003758 .word 0x20003758
ed70: 0000ec49 .word 0x0000ec49
0000ed74 <lv_mem_free>:
if(data == &zero_mem) return;
ed74: 4a16 ldr r2, [pc, #88] ; (edd0 <lv_mem_free+0x5c>)
ed76: 1d13 adds r3, r2, #4
ed78: 4298 cmp r0, r3
{
ed7a: b570 push {r4, r5, r6, lr}
ed7c: 4604 mov r4, r0
if(data == &zero_mem) return;
ed7e: d010 beq.n eda2 <lv_mem_free+0x2e>
if(data == NULL) return;
ed80: b178 cbz r0, eda2 <lv_mem_free+0x2e>
e->header.s.used = 0;
ed82: f810 3c04 ldrb.w r3, [r0, #-4]
ed86: f36f 0300 bfc r3, #0, #1
ed8a: f800 3c04 strb.w r3, [r0, #-4]
full_defrag_cnt++;
ed8e: 8913 ldrh r3, [r2, #8]
ed90: 3301 adds r3, #1
ed92: b29b uxth r3, r3
if(full_defrag_cnt < LV_MEM_FULL_DEFRAG_CNT) {
ed94: 2b0f cmp r3, #15
full_defrag_cnt++;
ed96: 8113 strh r3, [r2, #8]
if(full_defrag_cnt < LV_MEM_FULL_DEFRAG_CNT) {
ed98: d814 bhi.n edc4 <lv_mem_free+0x50>
e_next = ent_get_next(e);
ed9a: 4d0e ldr r5, [pc, #56] ; (edd4 <lv_mem_free+0x60>)
ed9c: 3804 subs r0, #4
e_next = ent_get_next(e_next);
ed9e: 47a8 blx r5
while(e_next != NULL) {
eda0: b900 cbnz r0, eda4 <lv_mem_free+0x30>
}
eda2: bd70 pop {r4, r5, r6, pc}
if(e_next->header.s.used == 0) {
eda4: 7803 ldrb r3, [r0, #0]
eda6: 07db lsls r3, r3, #31
eda8: d4fb bmi.n eda2 <lv_mem_free+0x2e>
e->header.s.d_size += e_next->header.s.d_size + sizeof(e->header);
edaa: f854 3c04 ldr.w r3, [r4, #-4]
edae: 6801 ldr r1, [r0, #0]
edb0: f3c3 025e ubfx r2, r3, #1, #31
edb4: 3204 adds r2, #4
edb6: eb02 0251 add.w r2, r2, r1, lsr #1
edba: f362 035f bfi r3, r2, #1, #31
edbe: f844 3c04 str.w r3, [r4, #-4]
edc2: e7ec b.n ed9e <lv_mem_free+0x2a>
full_defrag_cnt = 0;
edc4: 2300 movs r3, #0
edc6: 8113 strh r3, [r2, #8]
}
edc8: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_mem_defrag();
edcc: 4b02 ldr r3, [pc, #8] ; (edd8 <lv_mem_free+0x64>)
edce: 4718 bx r3
edd0: 20003758 .word 0x20003758
edd4: 0000ec49 .word 0x0000ec49
edd8: 0000ed31 .word 0x0000ed31
0000eddc <_lv_mem_get_size>:
if(data == NULL) return 0;
eddc: b140 cbz r0, edf0 <_lv_mem_get_size+0x14>
if(data == &zero_mem) return 0;
edde: 4b05 ldr r3, [pc, #20] ; (edf4 <_lv_mem_get_size+0x18>)
ede0: 4298 cmp r0, r3
ede2: d004 beq.n edee <_lv_mem_get_size+0x12>
return e->header.s.d_size;
ede4: f850 0c04 ldr.w r0, [r0, #-4]
ede8: f3c0 005e ubfx r0, r0, #1, #31
edec: 4770 bx lr
if(data == NULL) return 0;
edee: 2000 movs r0, #0
}
edf0: 4770 bx lr
edf2: bf00 nop
edf4: 2000375c .word 0x2000375c
0000edf8 <_lv_mem_buf_release>:
if(mem_buf_small[i].p == p) {
edf8: 4b16 ldr r3, [pc, #88] ; (ee54 <_lv_mem_buf_release+0x5c>)
edfa: 681a ldr r2, [r3, #0]
edfc: 4290 cmp r0, r2
{
edfe: b513 push {r0, r1, r4, lr}
if(mem_buf_small[i].p == p) {
ee00: d00b beq.n ee1a <_lv_mem_buf_release+0x22>
ee02: 689a ldr r2, [r3, #8]
ee04: 4290 cmp r0, r2
ee06: d10a bne.n ee1e <_lv_mem_buf_release+0x26>
ee08: 2201 movs r2, #1
mem_buf_small[i].used = 0;
ee0a: eb03 03c2 add.w r3, r3, r2, lsl #3
ee0e: 799a ldrb r2, [r3, #6]
ee10: f36f 0200 bfc r2, #0, #1
ee14: 719a strb r2, [r3, #6]
}
ee16: b002 add sp, #8
ee18: bd10 pop {r4, pc}
if(mem_buf_small[i].p == p) {
ee1a: 2200 movs r2, #0
ee1c: e7f5 b.n ee0a <_lv_mem_buf_release+0x12>
if(LV_GC_ROOT(_lv_mem_buf[i]).p == p) {
ee1e: 4a0e ldr r2, [pc, #56] ; (ee58 <_lv_mem_buf_release+0x60>)
if(mem_buf_small[i].p == p) {
ee20: 2300 movs r3, #0
if(LV_GC_ROOT(_lv_mem_buf[i]).p == p) {
ee22: f852 4033 ldr.w r4, [r2, r3, lsl #3]
ee26: 4284 cmp r4, r0
ee28: eb02 01c3 add.w r1, r2, r3, lsl #3
ee2c: d104 bne.n ee38 <_lv_mem_buf_release+0x40>
LV_GC_ROOT(_lv_mem_buf[i]).used = 0;
ee2e: 798b ldrb r3, [r1, #6]
ee30: f36f 0300 bfc r3, #0, #1
ee34: 718b strb r3, [r1, #6]
return;
ee36: e7ee b.n ee16 <_lv_mem_buf_release+0x1e>
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
ee38: 3301 adds r3, #1
ee3a: 2b10 cmp r3, #16
ee3c: d1f1 bne.n ee22 <_lv_mem_buf_release+0x2a>
LV_LOG_ERROR("lv_mem_buf_release: p is not a known buffer")
ee3e: 4b07 ldr r3, [pc, #28] ; (ee5c <_lv_mem_buf_release+0x64>)
ee40: 9300 str r3, [sp, #0]
ee42: 4907 ldr r1, [pc, #28] ; (ee60 <_lv_mem_buf_release+0x68>)
ee44: 4b07 ldr r3, [pc, #28] ; (ee64 <_lv_mem_buf_release+0x6c>)
ee46: 4c08 ldr r4, [pc, #32] ; (ee68 <_lv_mem_buf_release+0x70>)
ee48: f240 2232 movw r2, #562 ; 0x232
ee4c: 2003 movs r0, #3
ee4e: 47a0 blx r4
ee50: e7e1 b.n ee16 <_lv_mem_buf_release+0x1e>
ee52: bf00 nop
ee54: 20000038 .word 0x20000038
ee58: 20003644 .word 0x20003644
ee5c: 0002bb0a .word 0x0002bb0a
ee60: 0002bac2 .word 0x0002bac2
ee64: 0002bbe3 .word 0x0002bbe3
ee68: 0000eb79 .word 0x0000eb79
0000ee6c <_lv_mem_buf_free_all>:
mem_buf_small[i].used = 0;
ee6c: 4b11 ldr r3, [pc, #68] ; (eeb4 <_lv_mem_buf_free_all+0x48>)
ee6e: 799a ldrb r2, [r3, #6]
ee70: f36f 0200 bfc r2, #0, #1
{
ee74: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
mem_buf_small[i].used = 0;
ee78: 719a strb r2, [r3, #6]
ee7a: 7b9a ldrb r2, [r3, #14]
ee7c: 4c0e ldr r4, [pc, #56] ; (eeb8 <_lv_mem_buf_free_all+0x4c>)
lv_mem_free(LV_GC_ROOT(_lv_mem_buf[i]).p);
ee7e: f8df 803c ldr.w r8, [pc, #60] ; eebc <_lv_mem_buf_free_all+0x50>
mem_buf_small[i].used = 0;
ee82: f36f 0200 bfc r2, #0, #1
ee86: 2500 movs r5, #0
ee88: 739a strb r2, [r3, #14]
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
ee8a: 4627 mov r7, r4
LV_GC_ROOT(_lv_mem_buf[i]).p = NULL;
ee8c: 462e mov r6, r5
if(LV_GC_ROOT(_lv_mem_buf[i]).p) {
ee8e: 6820 ldr r0, [r4, #0]
ee90: b140 cbz r0, eea4 <_lv_mem_buf_free_all+0x38>
lv_mem_free(LV_GC_ROOT(_lv_mem_buf[i]).p);
ee92: 47c0 blx r8
LV_GC_ROOT(_lv_mem_buf[i]).used = 0;
ee94: eb07 03c5 add.w r3, r7, r5, lsl #3
LV_GC_ROOT(_lv_mem_buf[i]).p = NULL;
ee98: 6026 str r6, [r4, #0]
LV_GC_ROOT(_lv_mem_buf[i]).used = 0;
ee9a: 799a ldrb r2, [r3, #6]
ee9c: f366 0200 bfi r2, r6, #0, #1
eea0: 719a strb r2, [r3, #6]
LV_GC_ROOT(_lv_mem_buf[i]).size = 0;
eea2: 80a6 strh r6, [r4, #4]
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
eea4: 3501 adds r5, #1
eea6: 2d10 cmp r5, #16
eea8: f104 0408 add.w r4, r4, #8
eeac: d1ef bne.n ee8e <_lv_mem_buf_free_all+0x22>
}
eeae: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
eeb2: bf00 nop
eeb4: 20000038 .word 0x20000038
eeb8: 20003644 .word 0x20003644
eebc: 0000ed75 .word 0x0000ed75
0000eec0 <_lv_memcpy>:
{
eec0: b570 push {r4, r5, r6, lr}
lv_uintptr_t d_align = (lv_uintptr_t)d8 & ALIGN_MASK;
eec2: f000 0503 and.w r5, r0, #3
lv_uintptr_t s_align = (lv_uintptr_t)s8 & ALIGN_MASK;
eec6: f001 0603 and.w r6, r1, #3
if(s_align != d_align) {
eeca: 42b5 cmp r5, r6
lv_uintptr_t d_align = (lv_uintptr_t)d8 & ALIGN_MASK;
eecc: 4604 mov r4, r0
lv_uintptr_t s_align = (lv_uintptr_t)s8 & ALIGN_MASK;
eece: 460b mov r3, r1
if(s_align != d_align) {
eed0: f040 8098 bne.w f004 <_lv_memcpy+0x144>
if(d_align) {
eed4: 2d00 cmp r5, #0
eed6: f040 80a8 bne.w f02a <_lv_memcpy+0x16a>
uint8_t * d8 = dst;
eeda: 4605 mov r5, r0
eedc: 462b mov r3, r5
while(len > 32) {
eede: 2a20 cmp r2, #32
eee0: 461c mov r4, r3
eee2: f101 0520 add.w r5, r1, #32
eee6: f103 0320 add.w r3, r3, #32
eeea: f200 80b0 bhi.w f04e <_lv_memcpy+0x18e>
while(len > 4) {
eeee: 2a04 cmp r2, #4
eef0: 460e mov r6, r1
eef2: f240 809f bls.w f034 <_lv_memcpy+0x174>
COPY32;
eef6: f851 3b04 ldr.w r3, [r1], #4
eefa: f844 3b04 str.w r3, [r4], #4
len -= 4;
eefe: 3a04 subs r2, #4
ef00: e7f5 b.n eeee <_lv_memcpy+0x2e>
REPEAT8(COPY8);
ef02: f813 1c20 ldrb.w r1, [r3, #-32]
ef06: f804 1c20 strb.w r1, [r4, #-32]
ef0a: f813 1c1f ldrb.w r1, [r3, #-31]
ef0e: f804 1c1f strb.w r1, [r4, #-31]
ef12: f813 1c1e ldrb.w r1, [r3, #-30]
ef16: f804 1c1e strb.w r1, [r4, #-30]
ef1a: f813 1c1d ldrb.w r1, [r3, #-29]
ef1e: f804 1c1d strb.w r1, [r4, #-29]
ef22: f813 1c1c ldrb.w r1, [r3, #-28]
ef26: f804 1c1c strb.w r1, [r4, #-28]
ef2a: f813 1c1b ldrb.w r1, [r3, #-27]
ef2e: f804 1c1b strb.w r1, [r4, #-27]
ef32: f813 1c1a ldrb.w r1, [r3, #-26]
ef36: f804 1c1a strb.w r1, [r4, #-26]
ef3a: f813 1c19 ldrb.w r1, [r3, #-25]
ef3e: f804 1c19 strb.w r1, [r4, #-25]
REPEAT8(COPY8);
ef42: f813 1c18 ldrb.w r1, [r3, #-24]
ef46: f804 1c18 strb.w r1, [r4, #-24]
ef4a: f813 1c17 ldrb.w r1, [r3, #-23]
ef4e: f804 1c17 strb.w r1, [r4, #-23]
ef52: f813 1c16 ldrb.w r1, [r3, #-22]
ef56: f804 1c16 strb.w r1, [r4, #-22]
ef5a: f813 1c15 ldrb.w r1, [r3, #-21]
ef5e: f804 1c15 strb.w r1, [r4, #-21]
ef62: f813 1c14 ldrb.w r1, [r3, #-20]
ef66: f804 1c14 strb.w r1, [r4, #-20]
ef6a: f813 1c13 ldrb.w r1, [r3, #-19]
ef6e: f804 1c13 strb.w r1, [r4, #-19]
ef72: f813 1c12 ldrb.w r1, [r3, #-18]
ef76: f804 1c12 strb.w r1, [r4, #-18]
ef7a: f813 1c11 ldrb.w r1, [r3, #-17]
ef7e: f804 1c11 strb.w r1, [r4, #-17]
REPEAT8(COPY8);
ef82: f813 1c10 ldrb.w r1, [r3, #-16]
ef86: f804 1c10 strb.w r1, [r4, #-16]
ef8a: f813 1c0f ldrb.w r1, [r3, #-15]
ef8e: f804 1c0f strb.w r1, [r4, #-15]
ef92: f813 1c0e ldrb.w r1, [r3, #-14]
ef96: f804 1c0e strb.w r1, [r4, #-14]
ef9a: f813 1c0d ldrb.w r1, [r3, #-13]
ef9e: f804 1c0d strb.w r1, [r4, #-13]
efa2: f813 1c0c ldrb.w r1, [r3, #-12]
efa6: f804 1c0c strb.w r1, [r4, #-12]
efaa: f813 1c0b ldrb.w r1, [r3, #-11]
efae: f804 1c0b strb.w r1, [r4, #-11]
efb2: f813 1c0a ldrb.w r1, [r3, #-10]
efb6: f804 1c0a strb.w r1, [r4, #-10]
efba: f813 1c09 ldrb.w r1, [r3, #-9]
efbe: f804 1c09 strb.w r1, [r4, #-9]
REPEAT8(COPY8);
efc2: f813 1c08 ldrb.w r1, [r3, #-8]
efc6: f804 1c08 strb.w r1, [r4, #-8]
efca: f813 1c07 ldrb.w r1, [r3, #-7]
efce: f804 1c07 strb.w r1, [r4, #-7]
efd2: f813 1c06 ldrb.w r1, [r3, #-6]
efd6: f804 1c06 strb.w r1, [r4, #-6]
efda: f813 1c05 ldrb.w r1, [r3, #-5]
efde: f804 1c05 strb.w r1, [r4, #-5]
efe2: f813 1c04 ldrb.w r1, [r3, #-4]
efe6: f804 1c04 strb.w r1, [r4, #-4]
efea: f813 1c03 ldrb.w r1, [r3, #-3]
efee: f804 1c03 strb.w r1, [r4, #-3]
eff2: f813 1c02 ldrb.w r1, [r3, #-2]
eff6: f804 1c02 strb.w r1, [r4, #-2]
effa: f813 1c01 ldrb.w r1, [r3, #-1]
effe: f804 1c01 strb.w r1, [r4, #-1]
len -= 32;
f002: 3a20 subs r2, #32
while(len > 32) {
f004: 2a20 cmp r2, #32
f006: 461d mov r5, r3
f008: 4621 mov r1, r4
f00a: f103 0320 add.w r3, r3, #32
f00e: f104 0420 add.w r4, r4, #32
f012: f63f af76 bhi.w ef02 <_lv_memcpy+0x42>
f016: 1e6b subs r3, r5, #1
f018: 440a add r2, r1
while(len) {
f01a: 4291 cmp r1, r2
f01c: d100 bne.n f020 <_lv_memcpy+0x160>
}
f01e: bd70 pop {r4, r5, r6, pc}
COPY8
f020: f813 4f01 ldrb.w r4, [r3, #1]!
f024: f801 4b01 strb.w r4, [r1], #1
len--;
f028: e7f7 b.n f01a <_lv_memcpy+0x15a>
d_align = ALIGN_MASK + 1 - d_align;
f02a: f1c5 0504 rsb r5, r5, #4
f02e: 4405 add r5, r0
f030: 461e mov r6, r3
while(d_align && len) {
f032: b912 cbnz r2, f03a <_lv_memcpy+0x17a>
f034: 1e73 subs r3, r6, #1
f036: 4422 add r2, r4
f038: e030 b.n f09c <_lv_memcpy+0x1dc>
COPY8;
f03a: f813 1b01 ldrb.w r1, [r3], #1
f03e: f804 1b01 strb.w r1, [r4], #1
while(d_align && len) {
f042: 42ac cmp r4, r5
COPY8;
f044: 4619 mov r1, r3
len--;
f046: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff
while(d_align && len) {
f04a: d1f1 bne.n f030 <_lv_memcpy+0x170>
f04c: e746 b.n eedc <_lv_memcpy+0x1c>
REPEAT8(COPY32)
f04e: f855 1c20 ldr.w r1, [r5, #-32]
f052: f843 1c20 str.w r1, [r3, #-32]
f056: f855 1c1c ldr.w r1, [r5, #-28]
f05a: f843 1c1c str.w r1, [r3, #-28]
f05e: f855 1c18 ldr.w r1, [r5, #-24]
f062: f843 1c18 str.w r1, [r3, #-24]
f066: f855 1c14 ldr.w r1, [r5, #-20]
f06a: f843 1c14 str.w r1, [r3, #-20]
f06e: f855 1c10 ldr.w r1, [r5, #-16]
f072: f843 1c10 str.w r1, [r3, #-16]
f076: f855 1c0c ldr.w r1, [r5, #-12]
f07a: f843 1c0c str.w r1, [r3, #-12]
f07e: f855 1c08 ldr.w r1, [r5, #-8]
f082: f843 1c08 str.w r1, [r3, #-8]
f086: f855 1c04 ldr.w r1, [r5, #-4]
f08a: f843 1c04 str.w r1, [r3, #-4]
len -= 32;
f08e: 3a20 subs r2, #32
f090: 4629 mov r1, r5
f092: e724 b.n eede <_lv_memcpy+0x1e>
COPY8
f094: f813 1f01 ldrb.w r1, [r3, #1]!
f098: f804 1b01 strb.w r1, [r4], #1
while(len) {
f09c: 4294 cmp r4, r2
f09e: d1f9 bne.n f094 <_lv_memcpy+0x1d4>
f0a0: e7bd b.n f01e <_lv_memcpy+0x15e>
...
0000f0a4 <lv_mem_realloc>:
if(new_size & 0x3) {
f0a4: 078b lsls r3, r1, #30
{
f0a6: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
f0a8: 460d mov r5, r1
new_size = new_size & (~0x3);
f0aa: bf18 it ne
f0ac: f021 0503 bicne.w r5, r1, #3
{
f0b0: 4604 mov r4, r0
new_size += 4;
f0b2: bf18 it ne
f0b4: 3504 addne r5, #4
if(data_p != NULL) {
f0b6: b128 cbz r0, f0c4 <lv_mem_realloc+0x20>
if(e->header.s.used == 0) {
f0b8: f810 3c04 ldrb.w r3, [r0, #-4]
data_p = NULL;
f0bc: f013 0f01 tst.w r3, #1
f0c0: bf08 it eq
f0c2: 2400 moveq r4, #0
uint32_t old_size = _lv_mem_get_size(data_p);
f0c4: 4b16 ldr r3, [pc, #88] ; (f120 <lv_mem_realloc+0x7c>)
f0c6: 4620 mov r0, r4
f0c8: 4798 blx r3
if(old_size == new_size) return data_p; /*Also avoid reallocating the same memory*/
f0ca: 4285 cmp r5, r0
uint32_t old_size = _lv_mem_get_size(data_p);
f0cc: 4607 mov r7, r0
if(old_size == new_size) return data_p; /*Also avoid reallocating the same memory*/
f0ce: d004 beq.n f0da <lv_mem_realloc+0x36>
if(new_size < old_size) {
f0d0: d205 bcs.n f0de <lv_mem_realloc+0x3a>
ent_trunc(e, new_size);
f0d2: 4b14 ldr r3, [pc, #80] ; (f124 <lv_mem_realloc+0x80>)
f0d4: 4629 mov r1, r5
f0d6: 1f20 subs r0, r4, #4
f0d8: 4798 blx r3
return &e->first_data;
f0da: 4626 mov r6, r4
f0dc: e00d b.n f0fa <lv_mem_realloc+0x56>
new_p = lv_mem_alloc(new_size);
f0de: 4b12 ldr r3, [pc, #72] ; (f128 <lv_mem_realloc+0x84>)
f0e0: 4628 mov r0, r5
f0e2: 4798 blx r3
if(new_p == NULL) {
f0e4: 4606 mov r6, r0
f0e6: b958 cbnz r0, f100 <lv_mem_realloc+0x5c>
LV_LOG_WARN("Couldn't allocate memory");
f0e8: 4b10 ldr r3, [pc, #64] ; (f12c <lv_mem_realloc+0x88>)
f0ea: 9300 str r3, [sp, #0]
f0ec: 4910 ldr r1, [pc, #64] ; (f130 <lv_mem_realloc+0x8c>)
f0ee: 4b11 ldr r3, [pc, #68] ; (f134 <lv_mem_realloc+0x90>)
f0f0: 4c11 ldr r4, [pc, #68] ; (f138 <lv_mem_realloc+0x94>)
f0f2: f240 123f movw r2, #319 ; 0x13f
f0f6: 2002 movs r0, #2
f0f8: 47a0 blx r4
}
f0fa: 4630 mov r0, r6
f0fc: b003 add sp, #12
f0fe: bdf0 pop {r4, r5, r6, r7, pc}
if(data_p != NULL) {
f100: 2c00 cmp r4, #0
f102: d0fa beq.n f0fa <lv_mem_realloc+0x56>
if(old_size != 0) {
f104: 2f00 cmp r7, #0
f106: d0f8 beq.n f0fa <lv_mem_realloc+0x56>
_lv_memcpy(new_p, data_p, LV_MATH_MIN(new_size, old_size));
f108: 42bd cmp r5, r7
f10a: 462a mov r2, r5
f10c: 4b0b ldr r3, [pc, #44] ; (f13c <lv_mem_realloc+0x98>)
f10e: bf28 it cs
f110: 463a movcs r2, r7
f112: 4621 mov r1, r4
f114: 4798 blx r3
lv_mem_free(data_p);
f116: 4b0a ldr r3, [pc, #40] ; (f140 <lv_mem_realloc+0x9c>)
f118: 4620 mov r0, r4
f11a: 4798 blx r3
f11c: e7ed b.n f0fa <lv_mem_realloc+0x56>
f11e: bf00 nop
f120: 0000eddd .word 0x0000eddd
f124: 0000ec6d .word 0x0000ec6d
f128: 0000ecbd .word 0x0000ecbd
f12c: 0002baf1 .word 0x0002baf1
f130: 0002bac2 .word 0x0002bac2
f134: 0002bbf7 .word 0x0002bbf7
f138: 0000eb79 .word 0x0000eb79
f13c: 0000eec1 .word 0x0000eec1
f140: 0000ed75 .word 0x0000ed75
0000f144 <_lv_mem_buf_get>:
{
f144: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
if(size == 0) return NULL;
f146: b190 cbz r0, f16e <_lv_mem_buf_get+0x2a>
if(size <= MEM_BUF_SMALL_SIZE) {
f148: 2810 cmp r0, #16
f14a: d812 bhi.n f172 <_lv_mem_buf_get+0x2e>
if(mem_buf_small[i].used == 0) {
f14c: 4a36 ldr r2, [pc, #216] ; (f228 <_lv_mem_buf_get+0xe4>)
f14e: 7993 ldrb r3, [r2, #6]
f150: f013 0301 ands.w r3, r3, #1
f154: d003 beq.n f15e <_lv_mem_buf_get+0x1a>
f156: 7b93 ldrb r3, [r2, #14]
f158: 07de lsls r6, r3, #31
f15a: d40a bmi.n f172 <_lv_mem_buf_get+0x2e>
f15c: 2301 movs r3, #1
mem_buf_small[i].used = 1;
f15e: eb02 00c3 add.w r0, r2, r3, lsl #3
f162: 7981 ldrb r1, [r0, #6]
f164: f041 0101 orr.w r1, r1, #1
f168: 7181 strb r1, [r0, #6]
return mem_buf_small[i].p;
f16a: f852 0033 ldr.w r0, [r2, r3, lsl #3]
}
f16e: b003 add sp, #12
f170: bdf0 pop {r4, r5, r6, r7, pc}
if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0 && LV_GC_ROOT(_lv_mem_buf[i]).size >= size) {
f172: 4c2e ldr r4, [pc, #184] ; (f22c <_lv_mem_buf_get+0xe8>)
if(mem_buf_small[i].used == 0) {
f174: 2300 movs r3, #0
f176: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0 && LV_GC_ROOT(_lv_mem_buf[i]).size >= size) {
f17a: 1d27 adds r7, r4, #4
f17c: eb04 06c3 add.w r6, r4, r3, lsl #3
f180: 79b5 ldrb r5, [r6, #6]
f182: 4629 mov r1, r5
f184: 07ed lsls r5, r5, #31
f186: d413 bmi.n f1b0 <_lv_mem_buf_get+0x6c>
f188: f837 5033 ldrh.w r5, [r7, r3, lsl #3]
f18c: 4285 cmp r5, r0
f18e: d30f bcc.n f1b0 <_lv_mem_buf_get+0x6c>
if(LV_GC_ROOT(_lv_mem_buf[i]).size == size) {
f190: d105 bne.n f19e <_lv_mem_buf_get+0x5a>
LV_GC_ROOT(_lv_mem_buf[i]).used = 1;
f192: f041 0101 orr.w r1, r1, #1
return LV_GC_ROOT(_lv_mem_buf[i]).p;
f196: f854 0033 ldr.w r0, [r4, r3, lsl #3]
LV_GC_ROOT(_lv_mem_buf[i]).used = 1;
f19a: 71b1 strb r1, [r6, #6]
return LV_GC_ROOT(_lv_mem_buf[i]).p;
f19c: e7e7 b.n f16e <_lv_mem_buf_get+0x2a>
else if(i_guess < 0) {
f19e: 1c56 adds r6, r2, #1
f1a0: d101 bne.n f1a6 <_lv_mem_buf_get+0x62>
i_guess = i;
f1a2: b25a sxtb r2, r3
f1a4: e004 b.n f1b0 <_lv_mem_buf_get+0x6c>
else if(LV_GC_ROOT(_lv_mem_buf[i]).size < LV_GC_ROOT(_lv_mem_buf[i_guess]).size) {
f1a6: eb04 01c2 add.w r1, r4, r2, lsl #3
f1aa: 8889 ldrh r1, [r1, #4]
f1ac: 42a9 cmp r1, r5
f1ae: d8f8 bhi.n f1a2 <_lv_mem_buf_get+0x5e>
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
f1b0: 3301 adds r3, #1
f1b2: 2b10 cmp r3, #16
f1b4: d1e2 bne.n f17c <_lv_mem_buf_get+0x38>
if(i_guess >= 0) {
f1b6: 1c55 adds r5, r2, #1
f1b8: d008 beq.n f1cc <_lv_mem_buf_get+0x88>
LV_GC_ROOT(_lv_mem_buf[i_guess]).used = 1;
f1ba: eb04 01c2 add.w r1, r4, r2, lsl #3
return LV_GC_ROOT(_lv_mem_buf[i_guess]).p;
f1be: f854 0032 ldr.w r0, [r4, r2, lsl #3]
LV_GC_ROOT(_lv_mem_buf[i_guess]).used = 1;
f1c2: 798b ldrb r3, [r1, #6]
f1c4: f043 0301 orr.w r3, r3, #1
f1c8: 718b strb r3, [r1, #6]
return LV_GC_ROOT(_lv_mem_buf[i_guess]).p;
f1ca: e7d0 b.n f16e <_lv_mem_buf_get+0x2a>
f1cc: 2500 movs r5, #0
if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0) {
f1ce: eb04 03c5 add.w r3, r4, r5, lsl #3
f1d2: 7999 ldrb r1, [r3, #6]
f1d4: 460a mov r2, r1
f1d6: 07c9 lsls r1, r1, #31
f1d8: d417 bmi.n f20a <_lv_mem_buf_get+0xc6>
LV_GC_ROOT(_lv_mem_buf[i]).used = 1;
f1da: f042 0201 orr.w r2, r2, #1
LV_GC_ROOT(_lv_mem_buf[i]).size = size;
f1de: 8098 strh r0, [r3, #4]
LV_GC_ROOT(_lv_mem_buf[i]).used = 1;
f1e0: 719a strb r2, [r3, #6]
LV_GC_ROOT(_lv_mem_buf[i]).p = lv_mem_realloc(LV_GC_ROOT(_lv_mem_buf[i]).p, size);
f1e2: 4601 mov r1, r0
f1e4: 4b12 ldr r3, [pc, #72] ; (f230 <_lv_mem_buf_get+0xec>)
f1e6: f854 0035 ldr.w r0, [r4, r5, lsl #3]
f1ea: 4798 blx r3
f1ec: f844 0035 str.w r0, [r4, r5, lsl #3]
if(LV_GC_ROOT(_lv_mem_buf[i]).p == NULL) {
f1f0: b940 cbnz r0, f204 <_lv_mem_buf_get+0xc0>
LV_LOG_ERROR("lv_mem_buf_get: Out of memory, can't allocate a new buffer (increase your LV_MEM_SIZE/heap size)")
f1f2: 4b10 ldr r3, [pc, #64] ; (f234 <_lv_mem_buf_get+0xf0>)
f1f4: 9300 str r3, [sp, #0]
f1f6: 4910 ldr r1, [pc, #64] ; (f238 <_lv_mem_buf_get+0xf4>)
f1f8: 4b10 ldr r3, [pc, #64] ; (f23c <_lv_mem_buf_get+0xf8>)
f1fa: 4e11 ldr r6, [pc, #68] ; (f240 <_lv_mem_buf_get+0xfc>)
f1fc: f44f 7204 mov.w r2, #528 ; 0x210
f200: 2003 movs r0, #3
f202: 47b0 blx r6
return LV_GC_ROOT(_lv_mem_buf[i]).p;
f204: f854 0035 ldr.w r0, [r4, r5, lsl #3]
f208: e7b1 b.n f16e <_lv_mem_buf_get+0x2a>
for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) {
f20a: 3501 adds r5, #1
f20c: 2d10 cmp r5, #16
f20e: d1de bne.n f1ce <_lv_mem_buf_get+0x8a>
LV_LOG_ERROR("lv_mem_buf_get: no free buffer. Increase LV_DRAW_BUF_MAX_NUM.");
f210: 4b0c ldr r3, [pc, #48] ; (f244 <_lv_mem_buf_get+0x100>)
f212: 9300 str r3, [sp, #0]
f214: 2003 movs r0, #3
f216: 4b09 ldr r3, [pc, #36] ; (f23c <_lv_mem_buf_get+0xf8>)
f218: 4907 ldr r1, [pc, #28] ; (f238 <_lv_mem_buf_get+0xf4>)
f21a: 4c09 ldr r4, [pc, #36] ; (f240 <_lv_mem_buf_get+0xfc>)
f21c: f240 2216 movw r2, #534 ; 0x216
f220: 47a0 blx r4
return NULL;
f222: 2000 movs r0, #0
f224: e7a3 b.n f16e <_lv_mem_buf_get+0x2a>
f226: bf00 nop
f228: 20000038 .word 0x20000038
f22c: 20003644 .word 0x20003644
f230: 0000f0a5 .word 0x0000f0a5
f234: 0002bb36 .word 0x0002bb36
f238: 0002bac2 .word 0x0002bac2
f23c: 0002bc06 .word 0x0002bc06
f240: 0000eb79 .word 0x0000eb79
f244: 0002bb98 .word 0x0002bb98
0000f248 <_lv_memset>:
if(d_align) {
f248: f010 0303 ands.w r3, r0, #3
{
f24c: b410 push {r4}
if(d_align) {
f24e: d009 beq.n f264 <_lv_memset+0x1c>
d_align = ALIGN_MASK + 1 - d_align;
f250: f1c3 0304 rsb r3, r3, #4
f254: 4403 add r3, r0
while(d_align && len) {
f256: b12a cbz r2, f264 <_lv_memset+0x1c>
*d8 = v;
f258: f800 1b01 strb.w r1, [r0], #1
while(d_align && len) {
f25c: 4298 cmp r0, r3
len--;
f25e: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff
while(d_align && len) {
f262: d1f8 bne.n f256 <_lv_memset+0xe>
uint32_t v32 = v + (v << 8) + (v << 16) + (v << 24);
f264: eb01 2401 add.w r4, r1, r1, lsl #8
f268: eb04 4401 add.w r4, r4, r1, lsl #16
f26c: eb04 6401 add.w r4, r4, r1, lsl #24
while(len > 32) {
f270: 4603 mov r3, r0
f272: 2a20 cmp r2, #32
f274: 4618 mov r0, r3
f276: f103 0320 add.w r3, r3, #32
f27a: d805 bhi.n f288 <_lv_memset+0x40>
while(len > 4) {
f27c: 2a04 cmp r2, #4
f27e: d80d bhi.n f29c <_lv_memset+0x54>
*d8 = v;
f280: 4b08 ldr r3, [pc, #32] ; (f2a4 <_lv_memset+0x5c>)
}
f282: f85d 4b04 ldr.w r4, [sp], #4
*d8 = v;
f286: 4718 bx r3
SET32(v32);
f288: e943 4408 strd r4, r4, [r3, #-32]
SET32(v32);
f28c: e943 4406 strd r4, r4, [r3, #-24]
SET32(v32);
f290: e943 4404 strd r4, r4, [r3, #-16]
SET32(v32);
f294: e943 4402 strd r4, r4, [r3, #-8]
len -= 32;
f298: 3a20 subs r2, #32
f29a: e7ea b.n f272 <_lv_memset+0x2a>
SET32(v32);
f29c: f840 4b04 str.w r4, [r0], #4
len -= 4;
f2a0: 3a04 subs r2, #4
f2a2: e7eb b.n f27c <_lv_memset+0x34>
f2a4: 00016f51 .word 0x00016f51
0000f2a8 <_lv_memset_00>:
if(d_align) {
f2a8: f010 0303 ands.w r3, r0, #3
{
f2ac: 460a mov r2, r1
if(d_align) {
f2ae: d10d bne.n f2cc <_lv_memset_00+0x24>
f2b0: 4603 mov r3, r0
SET32(0);
f2b2: 2100 movs r1, #0
while(len > 32) {
f2b4: 2a20 cmp r2, #32
f2b6: 4618 mov r0, r3
f2b8: f103 0320 add.w r3, r3, #32
f2bc: d815 bhi.n f2ea <_lv_memset_00+0x42>
SET32(0);
f2be: 2300 movs r3, #0
while(len > 4) {
f2c0: 2a04 cmp r2, #4
f2c2: d908 bls.n f2d6 <_lv_memset_00+0x2e>
SET32(0);
f2c4: f840 3b04 str.w r3, [r0], #4
len -= 4;
f2c8: 3a04 subs r2, #4
f2ca: e7f9 b.n f2c0 <_lv_memset_00+0x18>
d_align = ALIGN_MASK + 1 - d_align;
f2cc: f1c3 0304 rsb r3, r3, #4
f2d0: 4403 add r3, r0
*d8 = 0x00;
f2d2: 2100 movs r1, #0
while(d_align && len) {
f2d4: b912 cbnz r2, f2dc <_lv_memset_00+0x34>
*d8 = 0;
f2d6: 4b0a ldr r3, [pc, #40] ; (f300 <_lv_memset_00+0x58>)
f2d8: 2100 movs r1, #0
f2da: 4718 bx r3
*d8 = 0x00;
f2dc: f800 1b01 strb.w r1, [r0], #1
while(d_align && len) {
f2e0: 4283 cmp r3, r0
len--;
f2e2: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff
while(d_align && len) {
f2e6: d1f5 bne.n f2d4 <_lv_memset_00+0x2c>
f2e8: e7e2 b.n f2b0 <_lv_memset_00+0x8>
SET32(0);
f2ea: e943 1108 strd r1, r1, [r3, #-32]
SET32(0);
f2ee: e943 1106 strd r1, r1, [r3, #-24]
SET32(0);
f2f2: e943 1104 strd r1, r1, [r3, #-16]
SET32(0);
f2f6: e943 1102 strd r1, r1, [r3, #-8]
len -= 32;
f2fa: 3a20 subs r2, #32
f2fc: e7da b.n f2b4 <_lv_memset_00+0xc>
f2fe: bf00 nop
f300: 00016f51 .word 0x00016f51
0000f304 <_lv_memset_ff>:
if(d_align) {
f304: f010 0303 ands.w r3, r0, #3
{
f308: 460a mov r2, r1
if(d_align) {
f30a: d10f bne.n f32c <_lv_memset_ff+0x28>
f30c: 4603 mov r3, r0
SET32(0xFFFFFFFF);
f30e: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff
while(len > 32) {
f312: 2a20 cmp r2, #32
f314: 4618 mov r0, r3
f316: f103 0320 add.w r3, r3, #32
f31a: d816 bhi.n f34a <_lv_memset_ff+0x46>
SET32(0xFFFFFFFF);
f31c: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
while(len > 4) {
f320: 2a04 cmp r2, #4
f322: d908 bls.n f336 <_lv_memset_ff+0x32>
SET32(0xFFFFFFFF);
f324: f840 3b04 str.w r3, [r0], #4
len -= 4;
f328: 3a04 subs r2, #4
f32a: e7f9 b.n f320 <_lv_memset_ff+0x1c>
d_align = ALIGN_MASK + 1 - d_align;
f32c: f1c3 0304 rsb r3, r3, #4
f330: 4403 add r3, r0
*d8 = 0xFF;
f332: 21ff movs r1, #255 ; 0xff
while(d_align && len) {
f334: b912 cbnz r2, f33c <_lv_memset_ff+0x38>
*d8 = 0xFF;
f336: 4b0a ldr r3, [pc, #40] ; (f360 <_lv_memset_ff+0x5c>)
f338: 21ff movs r1, #255 ; 0xff
f33a: 4718 bx r3
*d8 = 0xFF;
f33c: f800 1b01 strb.w r1, [r0], #1
while(d_align && len) {
f340: 4283 cmp r3, r0
len--;
f342: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff
while(d_align && len) {
f346: d1f5 bne.n f334 <_lv_memset_ff+0x30>
f348: e7e0 b.n f30c <_lv_memset_ff+0x8>
SET32(0xFFFFFFFF);
f34a: e943 1108 strd r1, r1, [r3, #-32]
SET32(0xFFFFFFFF);
f34e: e943 1106 strd r1, r1, [r3, #-24]
SET32(0xFFFFFFFF);
f352: e943 1104 strd r1, r1, [r3, #-16]
SET32(0xFFFFFFFF);
f356: e943 1102 strd r1, r1, [r3, #-8]
len -= 32;
f35a: 3a20 subs r2, #32
f35c: e7d9 b.n f312 <_lv_memset_ff+0xe>
f35e: bf00 nop
f360: 00016f51 .word 0x00016f51
0000f364 <_out_buffer>:
// internal buffer output
static inline void _out_buffer(char character, void * buffer, size_t idx, size_t maxlen)
{
if(idx < maxlen) {
f364: 429a cmp r2, r3
((char *)buffer)[idx] = character;
f366: bf38 it cc
f368: 5488 strbcc r0, [r1, r2]
}
}
f36a: 4770 bx lr
0000f36c <_out_null>:
{
(void)character;
(void)buffer;
(void)idx;
(void)maxlen;
}
f36c: 4770 bx lr
0000f36e <_ntoa_format>:
// internal itoa format
static size_t _ntoa_format(out_fct_type out, char * buffer, size_t idx, size_t maxlen, char * buf, size_t len,
bool negative, unsigned int base, unsigned int prec, unsigned int width, unsigned int flags)
{
f36e: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr}
f372: 4617 mov r7, r2
f374: e9dd 6211 ldrd r6, r2, [sp, #68] ; 0x44
// pad leading zeros
if(!(flags & FLAGS_LEFT)) {
f378: f012 0a02 ands.w sl, r2, #2
{
f37c: 4680 mov r8, r0
f37e: e9dd 540c ldrd r5, r4, [sp, #48] ; 0x30
f382: e9dd 0c0f ldrd r0, ip, [sp, #60] ; 0x3c
f386: f89d e038 ldrb.w lr, [sp, #56] ; 0x38
if(!(flags & FLAGS_LEFT)) {
f38a: d11f bne.n f3cc <_ntoa_format+0x5e>
if(width && (flags & FLAGS_ZEROPAD) && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) {
f38c: f002 0901 and.w r9, r2, #1
f390: b14e cbz r6, f3a6 <_ntoa_format+0x38>
f392: f1b9 0f00 cmp.w r9, #0
f396: d006 beq.n f3a6 <_ntoa_format+0x38>
f398: f1be 0f00 cmp.w lr, #0
f39c: d102 bne.n f3a4 <_ntoa_format+0x36>
f39e: f012 0f0c tst.w r2, #12
f3a2: d000 beq.n f3a6 <_ntoa_format+0x38>
width--;
f3a4: 3e01 subs r6, #1
}
while((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
buf[len++] = '0';
f3a6: f04f 0b30 mov.w fp, #48 ; 0x30
f3aa: e002 b.n f3b2 <_ntoa_format+0x44>
f3ac: f805 b004 strb.w fp, [r5, r4]
f3b0: 3401 adds r4, #1
while((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f3b2: 45a4 cmp ip, r4
f3b4: d901 bls.n f3ba <_ntoa_format+0x4c>
f3b6: 2c20 cmp r4, #32
f3b8: d1f8 bne.n f3ac <_ntoa_format+0x3e>
}
while((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
buf[len++] = '0';
f3ba: f04f 0b30 mov.w fp, #48 ; 0x30
while((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f3be: f1b9 0f00 cmp.w r9, #0
f3c2: d003 beq.n f3cc <_ntoa_format+0x5e>
f3c4: 42a6 cmp r6, r4
f3c6: d901 bls.n f3cc <_ntoa_format+0x5e>
f3c8: 2c20 cmp r4, #32
f3ca: d137 bne.n f43c <_ntoa_format+0xce>
}
}
// handle hash
if(flags & FLAGS_HASH) {
f3cc: f012 0f10 tst.w r2, #16
f3d0: d019 beq.n f406 <_ntoa_format+0x98>
if(!(flags & FLAGS_PRECISION) && len && ((len == prec) || (len == width))) {
f3d2: f412 6f80 tst.w r2, #1024 ; 0x400
f3d6: d136 bne.n f446 <_ntoa_format+0xd8>
f3d8: b3ac cbz r4, f446 <_ntoa_format+0xd8>
f3da: 4564 cmp r4, ip
f3dc: d001 beq.n f3e2 <_ntoa_format+0x74>
f3de: 42b4 cmp r4, r6
f3e0: d131 bne.n f446 <_ntoa_format+0xd8>
len--;
if(len && (base == 16U)) {
f3e2: f1b4 0c01 subs.w ip, r4, #1
f3e6: d02d beq.n f444 <_ntoa_format+0xd6>
f3e8: 2810 cmp r0, #16
f3ea: d16a bne.n f4c2 <_ntoa_format+0x154>
len--;
f3ec: 3c02 subs r4, #2
}
}
if((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f3ee: 0690 lsls r0, r2, #26
f3f0: d431 bmi.n f456 <_ntoa_format+0xe8>
f3f2: 2c1f cmp r4, #31
f3f4: d80f bhi.n f416 <_ntoa_format+0xa8>
buf[len++] = 'x';
f3f6: 2078 movs r0, #120 ; 0x78
}
else if((base == 16U) && (flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
buf[len++] = 'X';
}
else if((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
buf[len++] = 'b';
f3f8: 5528 strb r0, [r5, r4]
f3fa: 3401 adds r4, #1
}
if(len < PRINTF_NTOA_BUFFER_SIZE) {
f3fc: 2c1f cmp r4, #31
f3fe: d80a bhi.n f416 <_ntoa_format+0xa8>
buf[len++] = '0';
f400: 2030 movs r0, #48 ; 0x30
f402: 5528 strb r0, [r5, r4]
f404: 3401 adds r4, #1
}
}
if(len < PRINTF_NTOA_BUFFER_SIZE) {
f406: 2c20 cmp r4, #32
f408: d005 beq.n f416 <_ntoa_format+0xa8>
if(negative) {
f40a: f1be 0f00 cmp.w lr, #0
f40e: d026 beq.n f45e <_ntoa_format+0xf0>
buf[len++] = '-';
f410: 202d movs r0, #45 ; 0x2d
}
else if(flags & FLAGS_PLUS) {
buf[len++] = '+'; // ignore the space if the '+' exists
}
else if(flags & FLAGS_SPACE) {
buf[len++] = ' ';
f412: 5528 strb r0, [r5, r4]
f414: 3401 adds r4, #1
if(!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) {
f416: 0792 lsls r2, r2, #30
f418: d03b beq.n f492 <_ntoa_format+0x124>
f41a: 463a mov r2, r7
f41c: 4425 add r5, r4
f41e: 4414 add r4, r2
while(len) {
f420: 42a2 cmp r2, r4
f422: d13a bne.n f49a <_ntoa_format+0x12c>
if(flags & FLAGS_LEFT) {
f424: f1ba 0f00 cmp.w sl, #0
f428: d004 beq.n f434 <_ntoa_format+0xc6>
f42a: 1bd5 subs r5, r2, r7
while(idx - start_idx < width) {
f42c: 42b5 cmp r5, r6
f42e: eb05 0407 add.w r4, r5, r7
f432: d33d bcc.n f4b0 <_ntoa_format+0x142>
}
}
return _out_rev(out, buffer, idx, maxlen, buf, len, width, flags);
}
f434: 4620 mov r0, r4
f436: b003 add sp, #12
f438: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
buf[len++] = '0';
f43c: f805 b004 strb.w fp, [r5, r4]
f440: 3401 adds r4, #1
f442: e7bc b.n f3be <_ntoa_format+0x50>
f444: 4664 mov r4, ip
if((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f446: 2810 cmp r0, #16
f448: d0d1 beq.n f3ee <_ntoa_format+0x80>
else if((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f44a: 2802 cmp r0, #2
f44c: d1d6 bne.n f3fc <_ntoa_format+0x8e>
f44e: 2c1f cmp r4, #31
f450: d8e1 bhi.n f416 <_ntoa_format+0xa8>
buf[len++] = 'b';
f452: 2062 movs r0, #98 ; 0x62
f454: e7d0 b.n f3f8 <_ntoa_format+0x8a>
else if((base == 16U) && (flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f456: 2c1f cmp r4, #31
f458: d8dd bhi.n f416 <_ntoa_format+0xa8>
buf[len++] = 'X';
f45a: 2058 movs r0, #88 ; 0x58
f45c: e7cc b.n f3f8 <_ntoa_format+0x8a>
else if(flags & FLAGS_PLUS) {
f45e: 0750 lsls r0, r2, #29
f460: d501 bpl.n f466 <_ntoa_format+0xf8>
buf[len++] = '+'; // ignore the space if the '+' exists
f462: 202b movs r0, #43 ; 0x2b
f464: e7d5 b.n f412 <_ntoa_format+0xa4>
else if(flags & FLAGS_SPACE) {
f466: 0710 lsls r0, r2, #28
f468: d5d5 bpl.n f416 <_ntoa_format+0xa8>
buf[len++] = ' ';
f46a: 2020 movs r0, #32
f46c: e7d1 b.n f412 <_ntoa_format+0xa4>
out(' ', buffer, idx++, maxlen);
f46e: 2020 movs r0, #32
f470: e9cd 1300 strd r1, r3, [sp]
f474: 47c0 blx r8
for(i = len; i < width; i++) {
f476: e9dd 1300 ldrd r1, r3, [sp]
f47a: f109 0901 add.w r9, r9, #1
f47e: 454e cmp r6, r9
f480: eb0b 0209 add.w r2, fp, r9
f484: d8f3 bhi.n f46e <_ntoa_format+0x100>
f486: 1b32 subs r2, r6, r4
f488: 42b4 cmp r4, r6
f48a: bf88 it hi
f48c: 2200 movhi r2, #0
f48e: 443a add r2, r7
f490: e7c4 b.n f41c <_ntoa_format+0xae>
f492: 46a1 mov r9, r4
f494: eba7 0b04 sub.w fp, r7, r4
f498: e7f1 b.n f47e <_ntoa_format+0x110>
out(buf[--len], buffer, idx++, maxlen);
f49a: f102 0901 add.w r9, r2, #1
f49e: f815 0d01 ldrb.w r0, [r5, #-1]!
f4a2: e9cd 1300 strd r1, r3, [sp]
f4a6: 47c0 blx r8
f4a8: e9dd 1300 ldrd r1, r3, [sp]
f4ac: 464a mov r2, r9
f4ae: e7b7 b.n f420 <_ntoa_format+0xb2>
out(' ', buffer, idx++, maxlen);
f4b0: 4622 mov r2, r4
f4b2: 2020 movs r0, #32
f4b4: 9301 str r3, [sp, #4]
f4b6: 9100 str r1, [sp, #0]
f4b8: 3501 adds r5, #1
f4ba: 47c0 blx r8
f4bc: e9dd 1300 ldrd r1, r3, [sp]
f4c0: e7b4 b.n f42c <_ntoa_format+0xbe>
else if((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) {
f4c2: 2802 cmp r0, #2
f4c4: 4664 mov r4, ip
f4c6: d199 bne.n f3fc <_ntoa_format+0x8e>
f4c8: e7c3 b.n f452 <_ntoa_format+0xe4>
...
0000f4cc <_ntoa_long>:
// internal itoa for 'long' type
static size_t _ntoa_long(out_fct_type out, char * buffer, size_t idx, size_t maxlen, unsigned long value, bool negative,
unsigned long base, unsigned int prec, unsigned int width, unsigned int flags)
{
f4cc: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
f4d0: b091 sub sp, #68 ; 0x44
f4d2: 9d18 ldr r5, [sp, #96] ; 0x60
f4d4: 9e1a ldr r6, [sp, #104] ; 0x68
f4d6: 9f1d ldr r7, [sp, #116] ; 0x74
char buf[PRINTF_NTOA_BUFFER_SIZE];
size_t len = 0U;
// no hash for 0 values
if(!value) {
f4d8: b90d cbnz r5, f4de <_ntoa_long+0x12>
flags &= ~FLAGS_HASH;
f4da: f027 0710 bic.w r7, r7, #16
}
// write if precision != 0 and value is != 0
if(!(flags & FLAGS_PRECISION) || value) {
f4de: 057c lsls r4, r7, #21
f4e0: d500 bpl.n f4e4 <_ntoa_long+0x18>
f4e2: b315 cbz r5, f52a <_ntoa_long+0x5e>
f4e4: f017 0f20 tst.w r7, #32
f4e8: bf14 ite ne
f4ea: f04f 0e41 movne.w lr, #65 ; 0x41
f4ee: f04f 0e61 moveq.w lr, #97 ; 0x61
do {
const char digit = (char)(value % base);
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f4f2: 46ac mov ip, r5
f4f4: f10d 0820 add.w r8, sp, #32
f4f8: 2500 movs r5, #0
f4fa: f1ae 0e0a sub.w lr, lr, #10
const char digit = (char)(value % base);
f4fe: fbbc f9f6 udiv r9, ip, r6
f502: fb06 c919 mls r9, r6, r9, ip
f506: fa5f f489 uxtb.w r4, r9
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f50a: f1b9 0f09 cmp.w r9, #9
f50e: bf94 ite ls
f510: 3430 addls r4, #48 ; 0x30
f512: 4474 addhi r4, lr
f514: b2e4 uxtb r4, r4
value /= base;
} while(value && (len < PRINTF_NTOA_BUFFER_SIZE));
f516: 45b4 cmp ip, r6
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f518: f808 4b01 strb.w r4, [r8], #1
value /= base;
f51c: fbbc f4f6 udiv r4, ip, r6
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f520: f105 0501 add.w r5, r5, #1
} while(value && (len < PRINTF_NTOA_BUFFER_SIZE));
f524: d301 bcc.n f52a <_ntoa_long+0x5e>
f526: 2d20 cmp r5, #32
f528: d110 bne.n f54c <_ntoa_long+0x80>
}
return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags);
f52a: 9c1c ldr r4, [sp, #112] ; 0x70
f52c: 9405 str r4, [sp, #20]
f52e: 9c1b ldr r4, [sp, #108] ; 0x6c
f530: 9706 str r7, [sp, #24]
f532: e9cd 6403 strd r6, r4, [sp, #12]
f536: f89d 4064 ldrb.w r4, [sp, #100] ; 0x64
f53a: e9cd 5401 strd r5, r4, [sp, #4]
f53e: ac08 add r4, sp, #32
f540: 9400 str r4, [sp, #0]
f542: 4c03 ldr r4, [pc, #12] ; (f550 <_ntoa_long+0x84>)
f544: 47a0 blx r4
}
f546: b011 add sp, #68 ; 0x44
f548: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
value /= base;
f54c: 46a4 mov ip, r4
f54e: e7d6 b.n f4fe <_ntoa_long+0x32>
f550: 0000f36f .word 0x0000f36f
0000f554 <_ntoa_long_long>:
// internal itoa for 'long long' type
#if defined(PRINTF_SUPPORT_LONG_LONG)
static size_t _ntoa_long_long(out_fct_type out, char * buffer, size_t idx, size_t maxlen, unsigned long long value,
bool negative, unsigned long long base, unsigned int prec, unsigned int width, unsigned int flags)
{
f554: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
f558: ed2d 8b04 vpush {d8-d9}
f55c: b093 sub sp, #76 ; 0x4c
f55e: e9dd 6420 ldrd r6, r4, [sp, #128] ; 0x80
f562: 469a mov sl, r3
char buf[PRINTF_NTOA_BUFFER_SIZE];
size_t len = 0U;
// no hash for 0 values
if(!value) {
f564: ea56 0304 orrs.w r3, r6, r4
flags &= ~FLAGS_HASH;
f568: bf02 ittt eq
f56a: 9b28 ldreq r3, [sp, #160] ; 0xa0
f56c: f023 0310 biceq.w r3, r3, #16
f570: 9328 streq r3, [sp, #160] ; 0xa0
}
// write if precision != 0 and value is != 0
if(!(flags & FLAGS_PRECISION) || value) {
f572: 9b28 ldr r3, [sp, #160] ; 0xa0
f574: 055b lsls r3, r3, #21
{
f576: e9dd b924 ldrd fp, r9, [sp, #144] ; 0x90
f57a: ee08 0a10 vmov s16, r0
f57e: ee08 1a90 vmov s17, r1
f582: ee09 2a10 vmov s18, r2
if(!(flags & FLAGS_PRECISION) || value) {
f586: d502 bpl.n f58e <_ntoa_long_long+0x3a>
f588: ea56 0304 orrs.w r3, r6, r4
f58c: d03f beq.n f60e <_ntoa_long_long+0xba>
f58e: 9b28 ldr r3, [sp, #160] ; 0xa0
f590: f013 0f20 tst.w r3, #32
f594: bf14 ite ne
f596: 2341 movne r3, #65 ; 0x41
f598: 2361 moveq r3, #97 ; 0x61
do {
const char digit = (char)(value % base);
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f59a: 3b0a subs r3, #10
f59c: f10d 0828 add.w r8, sp, #40 ; 0x28
f5a0: 2500 movs r5, #0
f5a2: 9309 str r3, [sp, #36] ; 0x24
const char digit = (char)(value % base);
f5a4: 4621 mov r1, r4
f5a6: 4f1b ldr r7, [pc, #108] ; (f614 <_ntoa_long_long+0xc0>)
f5a8: 465a mov r2, fp
f5aa: 464b mov r3, r9
f5ac: 4630 mov r0, r6
f5ae: 47b8 blx r7
f5b0: b2d2 uxtb r2, r2
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f5b2: 2a09 cmp r2, #9
f5b4: bf8a itet hi
f5b6: 9b09 ldrhi r3, [sp, #36] ; 0x24
f5b8: 3230 addls r2, #48 ; 0x30
f5ba: 18d2 addhi r2, r2, r3
value /= base;
} while(value && (len < PRINTF_NTOA_BUFFER_SIZE));
f5bc: 455e cmp r6, fp
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f5be: b2d2 uxtb r2, r2
} while(value && (len < PRINTF_NTOA_BUFFER_SIZE));
f5c0: eb74 0409 sbcs.w r4, r4, r9
buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10;
f5c4: f808 2b01 strb.w r2, [r8], #1
f5c8: f105 0501 add.w r5, r5, #1
} while(value && (len < PRINTF_NTOA_BUFFER_SIZE));
f5cc: d301 bcc.n f5d2 <_ntoa_long_long+0x7e>
f5ce: 2d20 cmp r5, #32
f5d0: d11a bne.n f608 <_ntoa_long_long+0xb4>
}
return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags);
f5d2: 9b28 ldr r3, [sp, #160] ; 0xa0
f5d4: 9306 str r3, [sp, #24]
f5d6: 9b27 ldr r3, [sp, #156] ; 0x9c
f5d8: 9305 str r3, [sp, #20]
f5da: 9b26 ldr r3, [sp, #152] ; 0x98
f5dc: 4c0e ldr r4, [pc, #56] ; (f618 <_ntoa_long_long+0xc4>)
f5de: e9cd b303 strd fp, r3, [sp, #12]
f5e2: f89d 3088 ldrb.w r3, [sp, #136] ; 0x88
f5e6: e9cd 5301 strd r5, r3, [sp, #4]
f5ea: ab0a add r3, sp, #40 ; 0x28
f5ec: 9300 str r3, [sp, #0]
f5ee: ee19 2a10 vmov r2, s18
f5f2: ee18 1a90 vmov r1, s17
f5f6: ee18 0a10 vmov r0, s16
f5fa: 4653 mov r3, sl
f5fc: 47a0 blx r4
}
f5fe: b013 add sp, #76 ; 0x4c
f600: ecbd 8b04 vpop {d8-d9}
f604: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
value /= base;
f608: 4606 mov r6, r0
f60a: 460c mov r4, r1
f60c: e7ca b.n f5a4 <_ntoa_long_long+0x50>
size_t len = 0U;
f60e: 2500 movs r5, #0
f610: e7df b.n f5d2 <_ntoa_long_long+0x7e>
f612: bf00 nop
f614: 0001696d .word 0x0001696d
f618: 0000f36f .word 0x0000f36f
0000f61c <_vsnprintf.constprop.0>:
#endif // PRINTF_SUPPORT_EXPONENTIAL
#endif // PRINTF_SUPPORT_FLOAT
// internal vsnprintf
static int _vsnprintf(out_fct_type out, char * buffer, const size_t maxlen, const char * format, va_list va)
f61c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
f620: 4617 mov r7, r2
f622: 461e mov r6, r3
unsigned int flags, width, precision, n;
size_t idx = 0U;
if(!buffer) {
// use null output function
out = _out_null;
f624: 4aac ldr r2, [pc, #688] ; (f8d8 <_vsnprintf.constprop.0+0x2bc>)
f626: 4bad ldr r3, [pc, #692] ; (f8dc <_vsnprintf.constprop.0+0x2c0>)
static int _vsnprintf(out_fct_type out, char * buffer, const size_t maxlen, const char * format, va_list va)
f628: 4689 mov r9, r1
out = _out_null;
f62a: 1e01 subs r1, r0, #0
static int _vsnprintf(out_fct_type out, char * buffer, const size_t maxlen, const char * format, va_list va)
f62c: b091 sub sp, #68 ; 0x44
out = _out_null;
f62e: bf14 ite ne
f630: 4693 movne fp, r2
f632: 469b moveq fp, r3
out('%', buffer, idx++, maxlen);
format++;
break;
default :
out(*format, buffer, idx++, maxlen);
f634: 2500 movs r5, #0
while(*format) {
f636: 7838 ldrb r0, [r7, #0]
f638: b958 cbnz r0, f652 <_vsnprintf.constprop.0+0x36>
break;
}
}
// termination
out((char)0, buffer, idx < maxlen ? idx : maxlen - 1U, maxlen);
f63a: 454d cmp r5, r9
f63c: bf2c ite cs
f63e: f109 32ff addcs.w r2, r9, #4294967295 ; 0xffffffff
f642: 462a movcc r2, r5
f644: 464b mov r3, r9
f646: 2000 movs r0, #0
f648: 47d8 blx fp
// return written chars without terminating \0
return (int)idx;
}
f64a: 4628 mov r0, r5
f64c: b011 add sp, #68 ; 0x44
f64e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(*format != '%') {
f652: 2825 cmp r0, #37 ; 0x25
format++;
f654: f107 0701 add.w r7, r7, #1
if(*format != '%') {
f658: d006 beq.n f668 <_vsnprintf.constprop.0+0x4c>
out(*format, buffer, idx++, maxlen);
f65a: 1c6c adds r4, r5, #1
f65c: 464b mov r3, r9
f65e: 462a mov r2, r5
f660: 910a str r1, [sp, #40] ; 0x28
out(*format, buffer, idx++, maxlen);
f662: 47d8 blx fp
f664: 4625 mov r5, r4
f666: e0d2 b.n f80e <_vsnprintf.constprop.0+0x1f2>
flags = 0U;
f668: 2300 movs r3, #0
f66a: e006 b.n f67a <_vsnprintf.constprop.0+0x5e>
switch(*format) {
f66c: 2a2d cmp r2, #45 ; 0x2d
f66e: d016 beq.n f69e <_vsnprintf.constprop.0+0x82>
f670: 2a30 cmp r2, #48 ; 0x30
f672: d10c bne.n f68e <_vsnprintf.constprop.0+0x72>
flags |= FLAGS_ZEROPAD;
f674: f043 0301 orr.w r3, r3, #1
format++;
f678: 4607 mov r7, r0
switch(*format) {
f67a: 4638 mov r0, r7
f67c: f810 2b01 ldrb.w r2, [r0], #1
f680: 2a2b cmp r2, #43 ; 0x2b
f682: d00f beq.n f6a4 <_vsnprintf.constprop.0+0x88>
f684: d8f2 bhi.n f66c <_vsnprintf.constprop.0+0x50>
f686: 2a20 cmp r2, #32
f688: d00f beq.n f6aa <_vsnprintf.constprop.0+0x8e>
f68a: 2a23 cmp r2, #35 ; 0x23
f68c: d010 beq.n f6b0 <_vsnprintf.constprop.0+0x94>
if(_is_digit(*format)) {
f68e: f1a2 0430 sub.w r4, r2, #48 ; 0x30
f692: 2c09 cmp r4, #9
f694: d82c bhi.n f6f0 <_vsnprintf.constprop.0+0xd4>
unsigned int i = 0U;
f696: f04f 0800 mov.w r8, #0
i = i * 10U + (unsigned int)(*((*str)++) - '0');
f69a: 240a movs r4, #10
f69c: e010 b.n f6c0 <_vsnprintf.constprop.0+0xa4>
flags |= FLAGS_LEFT;
f69e: f043 0302 orr.w r3, r3, #2
} while(n);
f6a2: e7e9 b.n f678 <_vsnprintf.constprop.0+0x5c>
flags |= FLAGS_PLUS;
f6a4: f043 0304 orr.w r3, r3, #4
} while(n);
f6a8: e7e6 b.n f678 <_vsnprintf.constprop.0+0x5c>
flags |= FLAGS_SPACE;
f6aa: f043 0308 orr.w r3, r3, #8
} while(n);
f6ae: e7e3 b.n f678 <_vsnprintf.constprop.0+0x5c>
flags |= FLAGS_HASH;
f6b0: f043 0310 orr.w r3, r3, #16
} while(n);
f6b4: e7e0 b.n f678 <_vsnprintf.constprop.0+0x5c>
i = i * 10U + (unsigned int)(*((*str)++) - '0');
f6b6: fb04 2208 mla r2, r4, r8, r2
f6ba: f1a2 0830 sub.w r8, r2, #48 ; 0x30
f6be: 4607 mov r7, r0
while(_is_digit(**str)) {
f6c0: 4638 mov r0, r7
f6c2: f810 2b01 ldrb.w r2, [r0], #1
f6c6: f1a2 0c30 sub.w ip, r2, #48 ; 0x30
f6ca: f1bc 0f09 cmp.w ip, #9
f6ce: d9f2 bls.n f6b6 <_vsnprintf.constprop.0+0x9a>
if(*format == '.') {
f6d0: 783a ldrb r2, [r7, #0]
f6d2: 2a2e cmp r2, #46 ; 0x2e
f6d4: d15a bne.n f78c <_vsnprintf.constprop.0+0x170>
if(_is_digit(*format)) {
f6d6: 7878 ldrb r0, [r7, #1]
f6d8: f1a0 0430 sub.w r4, r0, #48 ; 0x30
f6dc: 2c09 cmp r4, #9
format++;
f6de: f107 0201 add.w r2, r7, #1
flags |= FLAGS_PRECISION;
f6e2: f443 6380 orr.w r3, r3, #1024 ; 0x400
if(_is_digit(*format)) {
f6e6: d848 bhi.n f77a <_vsnprintf.constprop.0+0x15e>
unsigned int i = 0U;
f6e8: 2400 movs r4, #0
i = i * 10U + (unsigned int)(*((*str)++) - '0');
f6ea: f04f 0e0a mov.w lr, #10
f6ee: e014 b.n f71a <_vsnprintf.constprop.0+0xfe>
else if(*format == '*') {
f6f0: 2a2a cmp r2, #42 ; 0x2a
f6f2: d10a bne.n f70a <_vsnprintf.constprop.0+0xee>
const int w = va_arg(va, int);
f6f4: f856 8b04 ldr.w r8, [r6], #4
if(w < 0) {
f6f8: f1b8 0f00 cmp.w r8, #0
flags |= FLAGS_LEFT; // reverse padding
f6fc: bfbc itt lt
f6fe: f043 0302 orrlt.w r3, r3, #2
width = (unsigned int) - w;
f702: f1c8 0800 rsblt r8, r8, #0
const int w = va_arg(va, int);
f706: 4607 mov r7, r0
f708: e7e2 b.n f6d0 <_vsnprintf.constprop.0+0xb4>
width = 0U;
f70a: f04f 0800 mov.w r8, #0
f70e: e7df b.n f6d0 <_vsnprintf.constprop.0+0xb4>
i = i * 10U + (unsigned int)(*((*str)++) - '0');
f710: fb0e 0004 mla r0, lr, r4, r0
f714: f1a0 0430 sub.w r4, r0, #48 ; 0x30
f718: 463a mov r2, r7
while(_is_digit(**str)) {
f71a: 4617 mov r7, r2
f71c: f817 0b01 ldrb.w r0, [r7], #1
f720: f1a0 0c30 sub.w ip, r0, #48 ; 0x30
f724: f1bc 0f09 cmp.w ip, #9
f728: d9f2 bls.n f710 <_vsnprintf.constprop.0+0xf4>
f72a: 4617 mov r7, r2
switch(*format) {
f72c: 463a mov r2, r7
f72e: f812 0b01 ldrb.w r0, [r2], #1
f732: 286c cmp r0, #108 ; 0x6c
f734: d033 beq.n f79e <_vsnprintf.constprop.0+0x182>
f736: d82b bhi.n f790 <_vsnprintf.constprop.0+0x174>
f738: 2868 cmp r0, #104 ; 0x68
f73a: d037 beq.n f7ac <_vsnprintf.constprop.0+0x190>
f73c: 286a cmp r0, #106 ; 0x6a
f73e: d03f beq.n f7c0 <_vsnprintf.constprop.0+0x1a4>
switch(*format) {
f740: f817 eb01 ldrb.w lr, [r7], #1
f744: f1be 0f78 cmp.w lr, #120 ; 0x78
f748: d811 bhi.n f76e <_vsnprintf.constprop.0+0x152>
f74a: f1be 0f63 cmp.w lr, #99 ; 0x63
f74e: d83a bhi.n f7c6 <_vsnprintf.constprop.0+0x1aa>
f750: f1be 0f62 cmp.w lr, #98 ; 0x62
f754: f000 80a2 beq.w f89c <_vsnprintf.constprop.0+0x280>
f758: f1be 0f63 cmp.w lr, #99 ; 0x63
f75c: f000 80fc beq.w f958 <_vsnprintf.constprop.0+0x33c>
f760: f1be 0f25 cmp.w lr, #37 ; 0x25
f764: d003 beq.n f76e <_vsnprintf.constprop.0+0x152>
f766: f1be 0f58 cmp.w lr, #88 ; 0x58
f76a: f000 8093 beq.w f894 <_vsnprintf.constprop.0+0x278>
out(*format, buffer, idx++, maxlen);
f76e: 1c6c adds r4, r5, #1
f770: 464b mov r3, r9
f772: 462a mov r2, r5
f774: 910a str r1, [sp, #40] ; 0x28
f776: 4670 mov r0, lr
f778: e773 b.n f662 <_vsnprintf.constprop.0+0x46>
else if(*format == '*') {
f77a: 282a cmp r0, #42 ; 0x2a
f77c: d105 bne.n f78a <_vsnprintf.constprop.0+0x16e>
precision = prec > 0 ? (unsigned int)prec : 0U;
f77e: f856 4b04 ldr.w r4, [r6], #4
format++;
f782: 3702 adds r7, #2
precision = prec > 0 ? (unsigned int)prec : 0U;
f784: ea24 74e4 bic.w r4, r4, r4, asr #31
format++;
f788: e7d0 b.n f72c <_vsnprintf.constprop.0+0x110>
format++;
f78a: 4617 mov r7, r2
precision = 0U;
f78c: 2400 movs r4, #0
f78e: e7cd b.n f72c <_vsnprintf.constprop.0+0x110>
switch(*format) {
f790: 2874 cmp r0, #116 ; 0x74
f792: d001 beq.n f798 <_vsnprintf.constprop.0+0x17c>
f794: 287a cmp r0, #122 ; 0x7a
f796: d1d3 bne.n f740 <_vsnprintf.constprop.0+0x124>
flags |= (sizeof(size_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG);
f798: f443 7380 orr.w r3, r3, #256 ; 0x100
f79c: e00b b.n f7b6 <_vsnprintf.constprop.0+0x19a>
if(*format == 'l') {
f79e: 7878 ldrb r0, [r7, #1]
f7a0: 286c cmp r0, #108 ; 0x6c
f7a2: d1f9 bne.n f798 <_vsnprintf.constprop.0+0x17c>
flags |= FLAGS_LONG_LONG;
f7a4: f443 7340 orr.w r3, r3, #768 ; 0x300
format++;
f7a8: 3702 adds r7, #2
f7aa: e7c9 b.n f740 <_vsnprintf.constprop.0+0x124>
if(*format == 'h') {
f7ac: 7878 ldrb r0, [r7, #1]
f7ae: 2868 cmp r0, #104 ; 0x68
f7b0: d003 beq.n f7ba <_vsnprintf.constprop.0+0x19e>
flags |= FLAGS_SHORT;
f7b2: f043 0380 orr.w r3, r3, #128 ; 0x80
format++;
f7b6: 4617 mov r7, r2
break;
f7b8: e7c2 b.n f740 <_vsnprintf.constprop.0+0x124>
flags |= FLAGS_CHAR;
f7ba: f043 03c0 orr.w r3, r3, #192 ; 0xc0
f7be: e7f3 b.n f7a8 <_vsnprintf.constprop.0+0x18c>
flags |= (sizeof(intmax_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG);
f7c0: f443 7300 orr.w r3, r3, #512 ; 0x200
break;
f7c4: e7f7 b.n f7b6 <_vsnprintf.constprop.0+0x19a>
f7c6: f1ae 0c64 sub.w ip, lr, #100 ; 0x64
f7ca: 4845 ldr r0, [pc, #276] ; (f8e0 <_vsnprintf.constprop.0+0x2c4>)
f7cc: fa5f fc8c uxtb.w ip, ip
f7d0: 2201 movs r2, #1
f7d2: fa02 f20c lsl.w r2, r2, ip
f7d6: 4002 ands r2, r0
f7d8: d11b bne.n f812 <_vsnprintf.constprop.0+0x1f6>
f7da: f1be 0f73 cmp.w lr, #115 ; 0x73
f7de: f000 80fb beq.w f9d8 <_vsnprintf.constprop.0+0x3bc>
f7e2: f1be 0f70 cmp.w lr, #112 ; 0x70
f7e6: d1c2 bne.n f76e <_vsnprintf.constprop.0+0x152>
flags |= FLAGS_ZEROPAD | FLAGS_UPPERCASE;
f7e8: f043 0321 orr.w r3, r3, #33 ; 0x21
idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned long)((uintptr_t)va_arg(va, void *)), false, 16U, precision, width,
f7ec: 9305 str r3, [sp, #20]
f7ee: 2308 movs r3, #8
f7f0: e9cd 4303 strd r4, r3, [sp, #12]
f7f4: 2310 movs r3, #16
f7f6: e9cd 2301 strd r2, r3, [sp, #4]
f7fa: f856 3b04 ldr.w r3, [r6], #4
f7fe: 9300 str r3, [sp, #0]
f800: 462a mov r2, r5
f802: 4c38 ldr r4, [pc, #224] ; (f8e4 <_vsnprintf.constprop.0+0x2c8>)
f804: 910a str r1, [sp, #40] ; 0x28
f806: 464b mov r3, r9
f808: 4658 mov r0, fp
f80a: 47a0 blx r4
f80c: 4605 mov r5, r0
out(*format, buffer, idx++, maxlen);
f80e: 990a ldr r1, [sp, #40] ; 0x28
break;
f810: e711 b.n f636 <_vsnprintf.constprop.0+0x1a>
if(*format == 'x' || *format == 'X') {
f812: f1be 0f78 cmp.w lr, #120 ; 0x78
f816: d03f beq.n f898 <_vsnprintf.constprop.0+0x27c>
f818: f1be 0f6f cmp.w lr, #111 ; 0x6f
f81c: f000 8144 beq.w faa8 <_vsnprintf.constprop.0+0x48c>
if((*format != 'i') && (*format != 'd')) {
f820: f1be 0f69 cmp.w lr, #105 ; 0x69
flags &= ~FLAGS_HASH; // no hash for dec format
f824: f023 0310 bic.w r3, r3, #16
base = 10U;
f828: f04f 020a mov.w r2, #10
if((*format != 'i') && (*format != 'd')) {
f82c: d002 beq.n f834 <_vsnprintf.constprop.0+0x218>
f82e: f1be 0f64 cmp.w lr, #100 ; 0x64
f832: d134 bne.n f89e <_vsnprintf.constprop.0+0x282>
if(flags & FLAGS_PRECISION) {
f834: 0558 lsls r0, r3, #21
flags &= ~FLAGS_ZEROPAD;
f836: bf48 it mi
f838: f023 0301 bicmi.w r3, r3, #1
if((*format == 'i') || (*format == 'd')) {
f83c: f1be 0f69 cmp.w lr, #105 ; 0x69
if(flags & FLAGS_LONG_LONG) {
f840: f403 7c00 and.w ip, r3, #512 ; 0x200
if((*format == 'i') || (*format == 'd')) {
f844: d002 beq.n f84c <_vsnprintf.constprop.0+0x230>
f846: f1be 0f64 cmp.w lr, #100 ; 0x64
f84a: d14f bne.n f8ec <_vsnprintf.constprop.0+0x2d0>
if(flags & FLAGS_LONG_LONG) {
f84c: f1bc 0f00 cmp.w ip, #0
f850: d028 beq.n f8a4 <_vsnprintf.constprop.0+0x288>
const long long value = va_arg(va, long long);
f852: 3607 adds r6, #7
f854: f026 0607 bic.w r6, r6, #7
f858: 46b2 mov sl, r6
f85a: 6876 ldr r6, [r6, #4]
f85c: f85a 0b08 ldr.w r0, [sl], #8
idx = _ntoa_long_long(out, buffer, idx, maxlen, (unsigned long long)(value > 0 ? value : 0 - value), value < 0, base,
f860: 9406 str r4, [sp, #24]
f862: e9cd 8307 strd r8, r3, [sp, #28]
f866: 2300 movs r3, #0
f868: 9305 str r3, [sp, #20]
f86a: 0ff3 lsrs r3, r6, #31
f86c: 2e00 cmp r6, #0
f86e: 9302 str r3, [sp, #8]
f870: 9204 str r2, [sp, #16]
f872: 4603 mov r3, r0
f874: da02 bge.n f87c <_vsnprintf.constprop.0+0x260>
f876: 4243 negs r3, r0
f878: eb66 0646 sbc.w r6, r6, r6, lsl #1
f87c: e9cd 3600 strd r3, r6, [sp]
idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags);
f880: 4c19 ldr r4, [pc, #100] ; (f8e8 <_vsnprintf.constprop.0+0x2cc>)
f882: 910a str r1, [sp, #40] ; 0x28
f884: 464b mov r3, r9
f886: 462a mov r2, r5
f888: 4658 mov r0, fp
f88a: 47a0 blx r4
idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags);
f88c: 990a ldr r1, [sp, #40] ; 0x28
f88e: 4605 mov r5, r0
break;
f890: 4656 mov r6, sl
f892: e6d0 b.n f636 <_vsnprintf.constprop.0+0x1a>
flags |= FLAGS_UPPERCASE;
f894: f043 0320 orr.w r3, r3, #32
base = 16U;
f898: 2210 movs r2, #16
f89a: e000 b.n f89e <_vsnprintf.constprop.0+0x282>
switch(*format) {
f89c: 2202 movs r2, #2
flags &= ~(FLAGS_PLUS | FLAGS_SPACE);
f89e: f023 030c bic.w r3, r3, #12
f8a2: e7c7 b.n f834 <_vsnprintf.constprop.0+0x218>
else if(flags & FLAGS_LONG) {
f8a4: 05d8 lsls r0, r3, #23
idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags);
f8a6: f106 0a04 add.w sl, r6, #4
else if(flags & FLAGS_LONG) {
f8aa: d501 bpl.n f8b0 <_vsnprintf.constprop.0+0x294>
int) : va_arg(va, int);
f8ac: 6830 ldr r0, [r6, #0]
f8ae: e002 b.n f8b6 <_vsnprintf.constprop.0+0x29a>
const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va,
f8b0: 0658 lsls r0, r3, #25
f8b2: d50c bpl.n f8ce <_vsnprintf.constprop.0+0x2b2>
f8b4: 7830 ldrb r0, [r6, #0]
idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned int)(value > 0 ? value : 0 - value), value < 0, base, precision,
f8b6: e9cd 2402 strd r2, r4, [sp, #8]
f8ba: e9cd 8304 strd r8, r3, [sp, #16]
f8be: 2800 cmp r0, #0
f8c0: ea4f 73d0 mov.w r3, r0, lsr #31
f8c4: 9301 str r3, [sp, #4]
f8c6: bfb8 it lt
f8c8: 4240 neglt r0, r0
idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags);
f8ca: 9000 str r0, [sp, #0]
f8cc: e02d b.n f92a <_vsnprintf.constprop.0+0x30e>
int) : va_arg(va, int);
f8ce: 0618 lsls r0, r3, #24
f8d0: d5ec bpl.n f8ac <_vsnprintf.constprop.0+0x290>
f8d2: f9b6 0000 ldrsh.w r0, [r6]
f8d6: e7ee b.n f8b6 <_vsnprintf.constprop.0+0x29a>
f8d8: 0000f365 .word 0x0000f365
f8dc: 0000f36d .word 0x0000f36d
f8e0: 00120821 .word 0x00120821
f8e4: 0000f4cd .word 0x0000f4cd
f8e8: 0000f555 .word 0x0000f555
if(flags & FLAGS_LONG_LONG) {
f8ec: f1bc 0f00 cmp.w ip, #0
f8f0: d00f beq.n f912 <_vsnprintf.constprop.0+0x2f6>
idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags);
f8f2: e9cd 8307 strd r8, r3, [sp, #28]
f8f6: 2300 movs r3, #0
f8f8: e9cd 2304 strd r2, r3, [sp, #16]
f8fc: f106 0a07 add.w sl, r6, #7
f900: f02a 0a07 bic.w sl, sl, #7
f904: 9406 str r4, [sp, #24]
f906: 9302 str r3, [sp, #8]
f908: e8fa 2302 ldrd r2, r3, [sl], #8
f90c: e9cd 2300 strd r2, r3, [sp]
f910: e7b6 b.n f880 <_vsnprintf.constprop.0+0x264>
else if(flags & FLAGS_LONG) {
f912: 05d8 lsls r0, r3, #23
idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags);
f914: f106 0a04 add.w sl, r6, #4
else if(flags & FLAGS_LONG) {
f918: d50e bpl.n f938 <_vsnprintf.constprop.0+0x31c>
idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags);
f91a: e9cd 8304 strd r8, r3, [sp, #16]
f91e: e9cd 2402 strd r2, r4, [sp, #8]
f922: f8cd c004 str.w ip, [sp, #4]
f926: 6833 ldr r3, [r6, #0]
f928: 9300 str r3, [sp, #0]
idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags);
f92a: 4c60 ldr r4, [pc, #384] ; (faac <_vsnprintf.constprop.0+0x490>)
f92c: 910a str r1, [sp, #40] ; 0x28
f92e: 464b mov r3, r9
f930: 462a mov r2, r5
f932: 4658 mov r0, fp
f934: 47a0 blx r4
f936: e7a9 b.n f88c <_vsnprintf.constprop.0+0x270>
unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int);
f938: 0658 lsls r0, r3, #25
f93a: d507 bpl.n f94c <_vsnprintf.constprop.0+0x330>
f93c: 7830 ldrb r0, [r6, #0]
idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags);
f93e: e9cd 8304 strd r8, r3, [sp, #16]
f942: 2300 movs r3, #0
f944: e9cd 2402 strd r2, r4, [sp, #8]
f948: 9301 str r3, [sp, #4]
f94a: e7be b.n f8ca <_vsnprintf.constprop.0+0x2ae>
f94c: 6830 ldr r0, [r6, #0]
unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int);
f94e: f013 0f80 tst.w r3, #128 ; 0x80
f952: bf18 it ne
f954: b280 uxthne r0, r0
f956: e7f2 b.n f93e <_vsnprintf.constprop.0+0x322>
if(!(flags & FLAGS_LEFT)) {
f958: f013 0402 ands.w r4, r3, #2
f95c: d026 beq.n f9ac <_vsnprintf.constprop.0+0x390>
unsigned int l = 1U;
f95e: f04f 0a01 mov.w sl, #1
out((char)va_arg(va, int), buffer, idx++, maxlen);
f962: 1c6b adds r3, r5, #1
f964: 930a str r3, [sp, #40] ; 0x28
f966: 910b str r1, [sp, #44] ; 0x2c
f968: f816 0b04 ldrb.w r0, [r6], #4
f96c: 464b mov r3, r9
f96e: 462a mov r2, r5
f970: 47d8 blx fp
if(flags & FLAGS_LEFT) {
f972: 990b ldr r1, [sp, #44] ; 0x2c
f974: b374 cbz r4, f9d4 <_vsnprintf.constprop.0+0x3b8>
out((char)va_arg(va, int), buffer, idx++, maxlen);
f976: 9a0a ldr r2, [sp, #40] ; 0x28
f978: 4654 mov r4, sl
f97a: e021 b.n f9c0 <_vsnprintf.constprop.0+0x3a4>
out(' ', buffer, idx++, maxlen);
f97c: 910a str r1, [sp, #40] ; 0x28
f97e: 464b mov r3, r9
f980: 2020 movs r0, #32
f982: 47d8 blx fp
f984: 990a ldr r1, [sp, #40] ; 0x28
f986: eb05 020a add.w r2, r5, sl
while(l++ < width) {
f98a: f10a 0a01 add.w sl, sl, #1
f98e: 45c2 cmp sl, r8
f990: d3f4 bcc.n f97c <_vsnprintf.constprop.0+0x360>
f992: f1b8 0f00 cmp.w r8, #0
f996: f108 33ff add.w r3, r8, #4294967295 ; 0xffffffff
f99a: bf08 it eq
f99c: 2300 moveq r3, #0
f99e: f108 0a01 add.w sl, r8, #1
f9a2: 441d add r5, r3
f9a4: bf08 it eq
f9a6: f04f 0a02 moveq.w sl, #2
f9aa: e7da b.n f962 <_vsnprintf.constprop.0+0x346>
f9ac: 46a2 mov sl, r4
f9ae: e7ea b.n f986 <_vsnprintf.constprop.0+0x36a>
out(' ', buffer, idx++, maxlen);
f9b0: 910b str r1, [sp, #44] ; 0x2c
f9b2: 464b mov r3, r9
f9b4: 2020 movs r0, #32
f9b6: 1c55 adds r5, r2, #1
f9b8: 47d8 blx fp
f9ba: 990b ldr r1, [sp, #44] ; 0x2c
f9bc: 3401 adds r4, #1
f9be: 462a mov r2, r5
while(l++ < width) {
f9c0: 4544 cmp r4, r8
f9c2: d3f5 bcc.n f9b0 <_vsnprintf.constprop.0+0x394>
f9c4: 9a0a ldr r2, [sp, #40] ; 0x28
f9c6: eba8 030a sub.w r3, r8, sl
f9ca: 45d0 cmp r8, sl
f9cc: bf38 it cc
f9ce: 2300 movcc r3, #0
f9d0: 441a add r2, r3
f9d2: 920a str r2, [sp, #40] ; 0x28
break;
f9d4: 9d0a ldr r5, [sp, #40] ; 0x28
f9d6: e62e b.n f636 <_vsnprintf.constprop.0+0x1a>
const char * p = va_arg(va, char *);
f9d8: 4632 mov r2, r6
unsigned int l = _strnlen_s(p, precision ? precision : (size_t) -1);
f9da: 2c00 cmp r4, #0
const char * p = va_arg(va, char *);
f9dc: f852 6b04 ldr.w r6, [r2], #4
f9e0: 920a str r2, [sp, #40] ; 0x28
unsigned int l = _strnlen_s(p, precision ? precision : (size_t) -1);
f9e2: bf14 ite ne
f9e4: 4620 movne r0, r4
f9e6: f04f 30ff moveq.w r0, #4294967295 ; 0xffffffff
f9ea: 4430 add r0, r6
f9ec: 4632 mov r2, r6
for(s = str; *s && maxsize--; ++s);
f9ee: f892 c000 ldrb.w ip, [r2]
f9f2: f1bc 0f00 cmp.w ip, #0
f9f6: d001 beq.n f9fc <_vsnprintf.constprop.0+0x3e0>
f9f8: 4290 cmp r0, r2
f9fa: d111 bne.n fa20 <_vsnprintf.constprop.0+0x404>
return (unsigned int)(s - str);
f9fc: eba2 0a06 sub.w sl, r2, r6
if(flags & FLAGS_PRECISION) {
fa00: f413 6280 ands.w r2, r3, #1024 ; 0x400
fa04: 920b str r2, [sp, #44] ; 0x2c
fa06: d002 beq.n fa0e <_vsnprintf.constprop.0+0x3f2>
l = (l < precision ? l : precision);
fa08: 45a2 cmp sl, r4
fa0a: bf28 it cs
fa0c: 46a2 movcs sl, r4
if(!(flags & FLAGS_LEFT)) {
fa0e: f013 0302 ands.w r3, r3, #2
fa12: 930c str r3, [sp, #48] ; 0x30
fa14: d11c bne.n fa50 <_vsnprintf.constprop.0+0x434>
fa16: ebaa 0305 sub.w r3, sl, r5
fa1a: 462a mov r2, r5
fa1c: 930e str r3, [sp, #56] ; 0x38
fa1e: e009 b.n fa34 <_vsnprintf.constprop.0+0x418>
for(s = str; *s && maxsize--; ++s);
fa20: 3201 adds r2, #1
fa22: e7e4 b.n f9ee <_vsnprintf.constprop.0+0x3d2>
out(' ', buffer, idx++, maxlen);
fa24: 1c53 adds r3, r2, #1
fa26: 930d str r3, [sp, #52] ; 0x34
fa28: 910f str r1, [sp, #60] ; 0x3c
fa2a: 464b mov r3, r9
fa2c: 2020 movs r0, #32
fa2e: 47d8 blx fp
fa30: 9a0d ldr r2, [sp, #52] ; 0x34
fa32: 990f ldr r1, [sp, #60] ; 0x3c
while(l++ < width) {
fa34: 9b0e ldr r3, [sp, #56] ; 0x38
fa36: 18d3 adds r3, r2, r3
fa38: 4543 cmp r3, r8
fa3a: d3f3 bcc.n fa24 <_vsnprintf.constprop.0+0x408>
fa3c: eba8 030a sub.w r3, r8, sl
fa40: 45d0 cmp r8, sl
fa42: bf38 it cc
fa44: 2300 movcc r3, #0
fa46: f10a 0201 add.w r2, sl, #1
fa4a: 441d add r5, r3
fa4c: eb03 0a02 add.w sl, r3, r2
fa50: 1bab subs r3, r5, r6
fa52: 930d str r3, [sp, #52] ; 0x34
fa54: e005 b.n fa62 <_vsnprintf.constprop.0+0x446>
fa56: 461c mov r4, r3
out(*(p++), buffer, idx++, maxlen);
fa58: 910e str r1, [sp, #56] ; 0x38
fa5a: 464b mov r3, r9
fa5c: 462a mov r2, r5
fa5e: 47d8 blx fp
fa60: 990e ldr r1, [sp, #56] ; 0x38
fa62: 9b0d ldr r3, [sp, #52] ; 0x34
fa64: 199d adds r5, r3, r6
while((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) {
fa66: f816 0b01 ldrb.w r0, [r6], #1
fa6a: b128 cbz r0, fa78 <_vsnprintf.constprop.0+0x45c>
fa6c: 9b0b ldr r3, [sp, #44] ; 0x2c
fa6e: 2b00 cmp r3, #0
fa70: d0f2 beq.n fa58 <_vsnprintf.constprop.0+0x43c>
fa72: 1e63 subs r3, r4, #1
fa74: 2c00 cmp r4, #0
fa76: d1ee bne.n fa56 <_vsnprintf.constprop.0+0x43a>
if(flags & FLAGS_LEFT) {
fa78: 9b0c ldr r3, [sp, #48] ; 0x30
fa7a: b19b cbz r3, faa4 <_vsnprintf.constprop.0+0x488>
fa7c: 462a mov r2, r5
fa7e: ebaa 0405 sub.w r4, sl, r5
fa82: e006 b.n fa92 <_vsnprintf.constprop.0+0x476>
out(' ', buffer, idx++, maxlen);
fa84: 910b str r1, [sp, #44] ; 0x2c
fa86: 464b mov r3, r9
fa88: 2020 movs r0, #32
fa8a: 1c56 adds r6, r2, #1
fa8c: 47d8 blx fp
fa8e: 990b ldr r1, [sp, #44] ; 0x2c
fa90: 4632 mov r2, r6
while(l++ < width) {
fa92: 18a3 adds r3, r4, r2
fa94: 4598 cmp r8, r3
fa96: d8f5 bhi.n fa84 <_vsnprintf.constprop.0+0x468>
fa98: eba8 030a sub.w r3, r8, sl
fa9c: 45d0 cmp r8, sl
fa9e: bf38 it cc
faa0: 2300 movcc r3, #0
faa2: 441d add r5, r3
const char * p = va_arg(va, char *);
faa4: 9e0a ldr r6, [sp, #40] ; 0x28
break;
faa6: e5c6 b.n f636 <_vsnprintf.constprop.0+0x1a>
if(*format == 'x' || *format == 'X') {
faa8: 2208 movs r2, #8
faaa: e6f8 b.n f89e <_vsnprintf.constprop.0+0x282>
faac: 0000f4cd .word 0x0000f4cd
0000fab0 <lv_vsnprintf>:
va_end(va);
return ret;
}
int lv_vsnprintf(char * buffer, size_t count, const char * format, va_list va)
{
fab0: b410 push {r4}
return _vsnprintf(_out_buffer, buffer, count, format, va);
fab2: 4c02 ldr r4, [pc, #8] ; (fabc <lv_vsnprintf+0xc>)
fab4: 46a4 mov ip, r4
}
fab6: f85d 4b04 ldr.w r4, [sp], #4
return _vsnprintf(_out_buffer, buffer, count, format, va);
faba: 4760 bx ip
fabc: 0000f61d .word 0x0000f61d
0000fac0 <_lv_task_core_init>:
/**
* Init the lv_task module
*/
void _lv_task_core_init(void)
{
fac0: b508 push {r3, lr}
_lv_ll_init(&LV_GC_ROOT(_lv_task_ll), sizeof(lv_task_t));
fac2: 4805 ldr r0, [pc, #20] ; (fad8 <_lv_task_core_init+0x18>)
fac4: 4b05 ldr r3, [pc, #20] ; (fadc <_lv_task_core_init+0x1c>)
fac6: 2118 movs r1, #24
fac8: 4798 blx r3
task_list_changed = false;
faca: 4b05 ldr r3, [pc, #20] ; (fae0 <_lv_task_core_init+0x20>)
facc: 2200 movs r2, #0
face: 701a strb r2, [r3, #0]
* Enable or disable the whole lv_task handling
* @param en: true: lv_task handling is running, false: lv_task handling is suspended
*/
void lv_task_enable(bool en)
{
lv_task_run = en;
fad0: 2201 movs r2, #1
fad2: 705a strb r2, [r3, #1]
}
fad4: bd08 pop {r3, pc}
fad6: bf00 nop
fad8: 200035d0 .word 0x200035d0
fadc: 0000e889 .word 0x0000e889
fae0: 20005784 .word 0x20005784
0000fae4 <lv_task_create_basic>:
{
fae4: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
tmp = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fae6: 4b36 ldr r3, [pc, #216] ; (fbc0 <lv_task_create_basic+0xdc>)
fae8: 4836 ldr r0, [pc, #216] ; (fbc4 <lv_task_create_basic+0xe0>)
faea: 4798 blx r3
if(NULL == tmp) {
faec: 4605 mov r5, r0
faee: b1e0 cbz r0, fb2a <lv_task_create_basic+0x46>
tmp = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), tmp);
faf0: 4e34 ldr r6, [pc, #208] ; (fbc4 <lv_task_create_basic+0xe0>)
faf2: 4c35 ldr r4, [pc, #212] ; (fbc8 <lv_task_create_basic+0xe4>)
if(tmp->prio <= DEF_PRIO) {
faf4: 7d2b ldrb r3, [r5, #20]
faf6: f003 0307 and.w r3, r3, #7
fafa: 2b03 cmp r3, #3
new_task = _lv_ll_ins_prev(&LV_GC_ROOT(_lv_task_ll), tmp);
fafc: 4629 mov r1, r5
if(tmp->prio <= DEF_PRIO) {
fafe: d82e bhi.n fb5e <lv_task_create_basic+0x7a>
new_task = _lv_ll_ins_prev(&LV_GC_ROOT(_lv_task_ll), tmp);
fb00: 4b32 ldr r3, [pc, #200] ; (fbcc <lv_task_create_basic+0xe8>)
fb02: 4830 ldr r0, [pc, #192] ; (fbc4 <lv_task_create_basic+0xe0>)
fb04: 4798 blx r3
LV_ASSERT_MEM(new_task);
fb06: 4b32 ldr r3, [pc, #200] ; (fbd0 <lv_task_create_basic+0xec>)
new_task = _lv_ll_ins_prev(&LV_GC_ROOT(_lv_task_ll), tmp);
fb08: 4604 mov r4, r0
LV_ASSERT_MEM(new_task);
fb0a: 4798 blx r3
fb0c: 4605 mov r5, r0
fb0e: bb08 cbnz r0, fb54 <lv_task_create_basic+0x70>
fb10: 4b30 ldr r3, [pc, #192] ; (fbd4 <lv_task_create_basic+0xf0>)
fb12: 4931 ldr r1, [pc, #196] ; (fbd8 <lv_task_create_basic+0xf4>)
fb14: 9300 str r3, [sp, #0]
fb16: 22db movs r2, #219 ; 0xdb
fb18: 2003 movs r0, #3
fb1a: 4e30 ldr r6, [pc, #192] ; (fbdc <lv_task_create_basic+0xf8>)
fb1c: 47b0 blx r6
fb1e: 4830 ldr r0, [pc, #192] ; (fbe0 <lv_task_create_basic+0xfc>)
fb20: 4930 ldr r1, [pc, #192] ; (fbe4 <lv_task_create_basic+0x100>)
fb22: 4622 mov r2, r4
fb24: 462b mov r3, r5
fb26: 4788 blx r1
fb28: e7fe b.n fb28 <lv_task_create_basic+0x44>
new_task = _lv_ll_ins_head(&LV_GC_ROOT(_lv_task_ll));
fb2a: 4b2f ldr r3, [pc, #188] ; (fbe8 <lv_task_create_basic+0x104>)
fb2c: 4825 ldr r0, [pc, #148] ; (fbc4 <lv_task_create_basic+0xe0>)
fb2e: 4798 blx r3
LV_ASSERT_MEM(new_task);
fb30: 4b27 ldr r3, [pc, #156] ; (fbd0 <lv_task_create_basic+0xec>)
new_task = _lv_ll_ins_head(&LV_GC_ROOT(_lv_task_ll));
fb32: 4604 mov r4, r0
LV_ASSERT_MEM(new_task);
fb34: 4798 blx r3
fb36: 4605 mov r5, r0
fb38: b960 cbnz r0, fb54 <lv_task_create_basic+0x70>
fb3a: 4b26 ldr r3, [pc, #152] ; (fbd4 <lv_task_create_basic+0xf0>)
fb3c: 4926 ldr r1, [pc, #152] ; (fbd8 <lv_task_create_basic+0xf4>)
fb3e: 9300 str r3, [sp, #0]
fb40: 22d3 movs r2, #211 ; 0xd3
fb42: 2003 movs r0, #3
fb44: 4e25 ldr r6, [pc, #148] ; (fbdc <lv_task_create_basic+0xf8>)
fb46: 47b0 blx r6
fb48: 4825 ldr r0, [pc, #148] ; (fbe0 <lv_task_create_basic+0xfc>)
fb4a: 4926 ldr r1, [pc, #152] ; (fbe4 <lv_task_create_basic+0x100>)
fb4c: 4622 mov r2, r4
fb4e: 462b mov r3, r5
fb50: 4788 blx r1
fb52: e7fe b.n fb52 <lv_task_create_basic+0x6e>
if(new_task == NULL) return NULL;
fb54: b9ec cbnz r4, fb92 <lv_task_create_basic+0xae>
fb56: 2400 movs r4, #0
}
fb58: 4620 mov r0, r4
fb5a: b003 add sp, #12
fb5c: bdf0 pop {r4, r5, r6, r7, pc}
tmp = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), tmp);
fb5e: 4630 mov r0, r6
fb60: 47a0 blx r4
} while(tmp != NULL);
fb62: 4605 mov r5, r0
fb64: 2800 cmp r0, #0
fb66: d1c5 bne.n faf4 <lv_task_create_basic+0x10>
new_task = _lv_ll_ins_tail(&LV_GC_ROOT(_lv_task_ll));
fb68: 4b20 ldr r3, [pc, #128] ; (fbec <lv_task_create_basic+0x108>)
fb6a: 4816 ldr r0, [pc, #88] ; (fbc4 <lv_task_create_basic+0xe0>)
fb6c: 4798 blx r3
LV_ASSERT_MEM(new_task);
fb6e: 4b18 ldr r3, [pc, #96] ; (fbd0 <lv_task_create_basic+0xec>)
new_task = _lv_ll_ins_tail(&LV_GC_ROOT(_lv_task_ll));
fb70: 4604 mov r4, r0
LV_ASSERT_MEM(new_task);
fb72: 4798 blx r3
fb74: 2800 cmp r0, #0
fb76: d1ed bne.n fb54 <lv_task_create_basic+0x70>
fb78: 4b16 ldr r3, [pc, #88] ; (fbd4 <lv_task_create_basic+0xf0>)
fb7a: 4917 ldr r1, [pc, #92] ; (fbd8 <lv_task_create_basic+0xf4>)
fb7c: 9300 str r3, [sp, #0]
fb7e: 22e5 movs r2, #229 ; 0xe5
fb80: 2003 movs r0, #3
fb82: 4e16 ldr r6, [pc, #88] ; (fbdc <lv_task_create_basic+0xf8>)
fb84: 47b0 blx r6
fb86: 4816 ldr r0, [pc, #88] ; (fbe0 <lv_task_create_basic+0xfc>)
fb88: 4916 ldr r1, [pc, #88] ; (fbe4 <lv_task_create_basic+0x100>)
fb8a: 4622 mov r2, r4
fb8c: 462b mov r3, r5
fb8e: 4788 blx r1
fb90: e7fe b.n fb90 <lv_task_create_basic+0xac>
new_task->period = DEF_PERIOD;
fb92: f44f 73fa mov.w r3, #500 ; 0x1f4
fb96: 6023 str r3, [r4, #0]
new_task->prio = DEF_PRIO;
fb98: 7d23 ldrb r3, [r4, #20]
task_list_changed = true;
fb9a: 4d15 ldr r5, [pc, #84] ; (fbf0 <lv_task_create_basic+0x10c>)
new_task->prio = DEF_PRIO;
fb9c: 2203 movs r2, #3
fb9e: f362 0302 bfi r3, r2, #0, #3
new_task->task_cb = NULL;
fba2: 2700 movs r7, #0
new_task->prio = DEF_PRIO;
fba4: 7523 strb r3, [r4, #20]
new_task->repeat_count = -1;
fba6: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
task_list_changed = true;
fbaa: 2601 movs r6, #1
new_task->repeat_count = -1;
fbac: 6123 str r3, [r4, #16]
new_task->task_cb = NULL;
fbae: 60a7 str r7, [r4, #8]
new_task->last_run = lv_tick_get();
fbb0: 4b10 ldr r3, [pc, #64] ; (fbf4 <lv_task_create_basic+0x110>)
task_list_changed = true;
fbb2: 702e strb r6, [r5, #0]
new_task->last_run = lv_tick_get();
fbb4: 4798 blx r3
new_task->user_data = NULL;
fbb6: 60e7 str r7, [r4, #12]
new_task->last_run = lv_tick_get();
fbb8: 6060 str r0, [r4, #4]
task_created = true;
fbba: 70ae strb r6, [r5, #2]
return new_task;
fbbc: e7cc b.n fb58 <lv_task_create_basic+0x74>
fbbe: bf00 nop
fbc0: 0000e92d .word 0x0000e92d
fbc4: 200035d0 .word 0x200035d0
fbc8: 0000e939 .word 0x0000e939
fbcc: 0000e979 .word 0x0000e979
fbd0: 00001a65 .word 0x00001a65
fbd4: 0002bc46 .word 0x0002bc46
fbd8: 0002bc16 .word 0x0002bc16
fbdc: 0000eb79 .word 0x0000eb79
fbe0: 00026842 .word 0x00026842
fbe4: 00001a6d .word 0x00001a6d
fbe8: 0000e89d .word 0x0000e89d
fbec: 0000e8e5 .word 0x0000e8e5
fbf0: 20005784 .word 0x20005784
fbf4: 0000dccd .word 0x0000dccd
0000fbf8 <lv_task_del>:
{
fbf8: b570 push {r4, r5, r6, lr}
_lv_ll_remove(&LV_GC_ROOT(_lv_task_ll), task);
fbfa: 4601 mov r1, r0
{
fbfc: 4604 mov r4, r0
_lv_ll_remove(&LV_GC_ROOT(_lv_task_ll), task);
fbfe: 4b07 ldr r3, [pc, #28] ; (fc1c <lv_task_del+0x24>)
fc00: 4807 ldr r0, [pc, #28] ; (fc20 <lv_task_del+0x28>)
task_list_changed = true;
fc02: 4d08 ldr r5, [pc, #32] ; (fc24 <lv_task_del+0x2c>)
_lv_ll_remove(&LV_GC_ROOT(_lv_task_ll), task);
fc04: 4798 blx r3
task_list_changed = true;
fc06: 2601 movs r6, #1
lv_mem_free(task);
fc08: 4b07 ldr r3, [pc, #28] ; (fc28 <lv_task_del+0x30>)
task_list_changed = true;
fc0a: 702e strb r6, [r5, #0]
lv_mem_free(task);
fc0c: 4620 mov r0, r4
fc0e: 4798 blx r3
if(LV_GC_ROOT(_lv_task_act) == task) task_deleted = true; /*The active task was deleted*/
fc10: 4b06 ldr r3, [pc, #24] ; (fc2c <lv_task_del+0x34>)
fc12: 681b ldr r3, [r3, #0]
fc14: 42a3 cmp r3, r4
fc16: bf08 it eq
fc18: 70ee strbeq r6, [r5, #3]
}
fc1a: bd70 pop {r4, r5, r6, pc}
fc1c: 0000e9f1 .word 0x0000e9f1
fc20: 200035d0 .word 0x200035d0
fc24: 20005784 .word 0x20005784
fc28: 0000ed75 .word 0x0000ed75
fc2c: 20003640 .word 0x20003640
0000fc30 <lv_task_exec>:
* Execute task if its the priority is appropriate
* @param task pointer to lv_task
* @return true: execute, false: not executed
*/
static bool lv_task_exec(lv_task_t * task)
{
fc30: b538 push {r3, r4, r5, lr}
* @return the time remaining, or 0 if it needs to be run again
*/
static uint32_t lv_task_time_remaining(lv_task_t * task)
{
/*Check if at least 'period' time elapsed*/
uint32_t elp = lv_tick_elaps(task->last_run);
fc32: 4b12 ldr r3, [pc, #72] ; (fc7c <lv_task_exec+0x4c>)
{
fc34: 4604 mov r4, r0
uint32_t elp = lv_tick_elaps(task->last_run);
fc36: 6840 ldr r0, [r0, #4]
fc38: 4798 blx r3
if(lv_task_time_remaining(task) == 0) {
fc3a: 6823 ldr r3, [r4, #0]
fc3c: 4298 cmp r0, r3
fc3e: d31b bcc.n fc78 <lv_task_exec+0x48>
task->last_run = lv_tick_get();
fc40: 4b0f ldr r3, [pc, #60] ; (fc80 <lv_task_exec+0x50>)
task_deleted = false;
fc42: 4d10 ldr r5, [pc, #64] ; (fc84 <lv_task_exec+0x54>)
task->last_run = lv_tick_get();
fc44: 4798 blx r3
task_deleted = false;
fc46: 2300 movs r3, #0
fc48: 70eb strb r3, [r5, #3]
task_created = false;
fc4a: 70ab strb r3, [r5, #2]
if(task->task_cb) task->task_cb(task);
fc4c: 68a3 ldr r3, [r4, #8]
task->last_run = lv_tick_get();
fc4e: 6060 str r0, [r4, #4]
if(task->task_cb) task->task_cb(task);
fc50: b943 cbnz r3, fc64 <lv_task_exec+0x34>
if(task->repeat_count > 0) {
fc52: 6923 ldr r3, [r4, #16]
fc54: 2b00 cmp r3, #0
fc56: dc0c bgt.n fc72 <lv_task_exec+0x42>
if(task->repeat_count == 0) {
fc58: 6923 ldr r3, [r4, #16]
fc5a: b943 cbnz r3, fc6e <lv_task_exec+0x3e>
lv_task_del(task);
fc5c: 4b0a ldr r3, [pc, #40] ; (fc88 <lv_task_exec+0x58>)
fc5e: 4620 mov r0, r4
fc60: 4798 blx r3
fc62: e004 b.n fc6e <lv_task_exec+0x3e>
if(task->task_cb) task->task_cb(task);
fc64: 4620 mov r0, r4
fc66: 4798 blx r3
if(task_deleted == false) { /*The task might be deleted by itself as well*/
fc68: 78eb ldrb r3, [r5, #3]
fc6a: 2b00 cmp r3, #0
fc6c: d0f1 beq.n fc52 <lv_task_exec+0x22>
lv_task_del(task);
fc6e: 2001 movs r0, #1
}
fc70: bd38 pop {r3, r4, r5, pc}
task->repeat_count--;
fc72: 3b01 subs r3, #1
fc74: 6123 str r3, [r4, #16]
fc76: e7ef b.n fc58 <lv_task_exec+0x28>
bool exec = false;
fc78: 2000 movs r0, #0
fc7a: e7f9 b.n fc70 <lv_task_exec+0x40>
fc7c: 0000dce1 .word 0x0000dce1
fc80: 0000dccd .word 0x0000dccd
fc84: 20005784 .word 0x20005784
fc88: 0000fbf9 .word 0x0000fbf9
0000fc8c <lv_task_handler>:
{
fc8c: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
if(already_running) return 1;
fc90: f8df b15c ldr.w fp, [pc, #348] ; fdf0 <lv_task_handler+0x164>
fc94: f89b 4004 ldrb.w r4, [fp, #4]
fc98: 2001 movs r0, #1
fc9a: b934 cbnz r4, fcaa <lv_task_handler+0x1e>
if(lv_task_run == false) {
fc9c: f89b 2001 ldrb.w r2, [fp, #1]
already_running = true;
fca0: f88b 0004 strb.w r0, [fp, #4]
if(lv_task_run == false) {
fca4: b91a cbnz r2, fcae <lv_task_handler+0x22>
already_running = false; /*Release mutex*/
fca6: f88b 2004 strb.w r2, [fp, #4]
}
fcaa: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
handler_start = lv_tick_get();
fcae: f8df 8144 ldr.w r8, [pc, #324] ; fdf4 <lv_task_handler+0x168>
LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fcb2: f8df a138 ldr.w sl, [pc, #312] ; fdec <lv_task_handler+0x160>
fcb6: f8df 9140 ldr.w r9, [pc, #320] ; fdf8 <lv_task_handler+0x16c>
handler_start = lv_tick_get();
fcba: 47c0 blx r8
fcbc: f8cb 0008 str.w r0, [fp, #8]
task_deleted = false;
fcc0: 2200 movs r2, #0
LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fcc2: 4650 mov r0, sl
task_deleted = false;
fcc4: f88b 2003 strb.w r2, [fp, #3]
task_created = false;
fcc8: f88b 2002 strb.w r2, [fp, #2]
LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fccc: 47c8 blx r9
fcce: 4d43 ldr r5, [pc, #268] ; (fddc <lv_task_handler+0x150>)
if(lv_task_exec(LV_GC_ROOT(_lv_task_act))) {
fcd0: 4f43 ldr r7, [pc, #268] ; (fde0 <lv_task_handler+0x154>)
LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fcd2: 6028 str r0, [r5, #0]
while(LV_GC_ROOT(_lv_task_act)) {
fcd4: 6829 ldr r1, [r5, #0]
fcd6: b189 cbz r1, fcfc <lv_task_handler+0x70>
next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), LV_GC_ROOT(_lv_task_act));
fcd8: 4b42 ldr r3, [pc, #264] ; (fde4 <lv_task_handler+0x158>)
fcda: 4650 mov r0, sl
fcdc: 4798 blx r3
fcde: 4606 mov r6, r0
if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio == LV_TASK_PRIO_OFF) {
fce0: 6828 ldr r0, [r5, #0]
fce2: 7d02 ldrb r2, [r0, #20]
fce4: f012 0107 ands.w r1, r2, #7
fce8: d008 beq.n fcfc <lv_task_handler+0x70>
if(LV_GC_ROOT(_lv_task_act) == task_interrupter) {
fcea: 42a0 cmp r0, r4
fcec: d050 beq.n fd90 <lv_task_handler+0x104>
if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio == LV_TASK_PRIO_HIGHEST) {
fcee: 2905 cmp r1, #5
fcf0: d139 bne.n fd66 <lv_task_handler+0xda>
lv_task_exec(LV_GC_ROOT(_lv_task_act));
fcf2: 47b8 blx r7
if(task_created || task_deleted) {
fcf4: f89b 2002 ldrb.w r2, [fp, #2]
fcf8: 2a00 cmp r2, #0
fcfa: d062 beq.n fdc2 <lv_task_handler+0x136>
busy_time += lv_tick_elaps(handler_start);
fcfc: 4c3a ldr r4, [pc, #232] ; (fde8 <lv_task_handler+0x15c>)
fcfe: f8db 0008 ldr.w r0, [fp, #8]
fd02: 47a0 blx r4
fd04: f8db 200c ldr.w r2, [fp, #12]
fd08: 4410 add r0, r2
fd0a: f8cb 000c str.w r0, [fp, #12]
uint32_t idle_period_time = lv_tick_elaps(idle_period_start);
fd0e: f8db 0014 ldr.w r0, [fp, #20]
fd12: 47a0 blx r4
if(idle_period_time >= IDLE_MEAS_PERIOD) {
fd14: f5b0 7ffa cmp.w r0, #500 ; 0x1f4
fd18: d316 bcc.n fd48 <lv_task_handler+0xbc>
idle_last = (uint32_t)((uint32_t)busy_time * 100) / IDLE_MEAS_PERIOD; /*Calculate the busy percentage*/
fd1a: f8db 200c ldr.w r2, [fp, #12]
fd1e: 2164 movs r1, #100 ; 0x64
fd20: 434a muls r2, r1
fd22: f44f 71fa mov.w r1, #500 ; 0x1f4
fd26: fbb2 f2f1 udiv r2, r2, r1
fd2a: b2d2 uxtb r2, r2
idle_last = idle_last > 100 ? 0 : 100 - idle_last; /*But we need idle time*/
fd2c: 2a64 cmp r2, #100 ; 0x64
fd2e: bf9a itte ls
fd30: f1c2 0264 rsbls r2, r2, #100 ; 0x64
fd34: b2d2 uxtbls r2, r2
fd36: 2200 movhi r2, #0
fd38: f88b 2010 strb.w r2, [fp, #16]
busy_time = 0;
fd3c: 2200 movs r2, #0
fd3e: f8cb 200c str.w r2, [fp, #12]
idle_period_start = lv_tick_get();
fd42: 47c0 blx r8
fd44: f8cb 0014 str.w r0, [fp, #20]
time_till_next = LV_NO_TASK_READY;
fd48: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
next = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fd4c: 4827 ldr r0, [pc, #156] ; (fdec <lv_task_handler+0x160>)
time_till_next = LV_NO_TASK_READY;
fd4e: f8cb 2018 str.w r2, [fp, #24]
next = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fd52: 47c8 blx r9
next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), next); /*Find the next task*/
fd54: 4e25 ldr r6, [pc, #148] ; (fdec <lv_task_handler+0x160>)
fd56: 4f23 ldr r7, [pc, #140] ; (fde4 <lv_task_handler+0x158>)
next = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll));
fd58: 4605 mov r5, r0
while(next) {
fd5a: b9e5 cbnz r5, fd96 <lv_task_handler+0x10a>
return time_till_next;
fd5c: f8db 0018 ldr.w r0, [fp, #24]
already_running = false; /*Release the mutex*/
fd60: f88b 5004 strb.w r5, [fp, #4]
return time_till_next;
fd64: e7a1 b.n fcaa <lv_task_handler+0x1e>
else if(task_interrupter) {
fd66: b134 cbz r4, fd76 <lv_task_handler+0xea>
if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio > task_interrupter->prio) {
fd68: 7d21 ldrb r1, [r4, #20]
fd6a: f002 0207 and.w r2, r2, #7
fd6e: f001 0107 and.w r1, r1, #7
fd72: 428a cmp r2, r1
fd74: d9be bls.n fcf4 <lv_task_handler+0x68>
if(lv_task_exec(LV_GC_ROOT(_lv_task_act))) {
fd76: 47b8 blx r7
fd78: 2800 cmp r0, #0
fd7a: d0bb beq.n fcf4 <lv_task_handler+0x68>
if(!task_created && !task_deleted) {
fd7c: f89b 2002 ldrb.w r2, [fp, #2]
fd80: 2a00 cmp r2, #0
fd82: d1bb bne.n fcfc <lv_task_handler+0x70>
fd84: f89b 2003 ldrb.w r2, [fp, #3]
fd88: 2a00 cmp r2, #0
fd8a: d1b7 bne.n fcfc <lv_task_handler+0x70>
task_interrupter = LV_GC_ROOT(_lv_task_act); /*Check all tasks again from the highest priority */
fd8c: 682c ldr r4, [r5, #0]
} while(!end_flag);
fd8e: e797 b.n fcc0 <lv_task_handler+0x34>
task_interrupter = NULL; /*From this point only task after the interrupter comes, so
fd90: 2400 movs r4, #0
LV_GC_ROOT(_lv_task_act) = next;
fd92: 602e str r6, [r5, #0]
fd94: e79e b.n fcd4 <lv_task_handler+0x48>
if(next->prio != LV_TASK_PRIO_OFF) {
fd96: 7d2a ldrb r2, [r5, #20]
fd98: 0753 lsls r3, r2, #29
fd9a: d00d beq.n fdb8 <lv_task_handler+0x12c>
uint32_t elp = lv_tick_elaps(task->last_run);
fd9c: 6868 ldr r0, [r5, #4]
fd9e: 47a0 blx r4
if(elp >= task->period)
fda0: 682a ldr r2, [r5, #0]
fda2: 4290 cmp r0, r2
return 0;
return task->period - elp;
fda4: bf38 it cc
fda6: 1a10 subcc r0, r2, r0
if(delay < time_till_next)
fda8: f8db 2018 ldr.w r2, [fp, #24]
return 0;
fdac: bf28 it cs
fdae: 2000 movcs r0, #0
if(delay < time_till_next)
fdb0: 4282 cmp r2, r0
time_till_next = delay;
fdb2: bf88 it hi
fdb4: f8cb 0018 strhi.w r0, [fp, #24]
next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), next); /*Find the next task*/
fdb8: 4629 mov r1, r5
fdba: 4630 mov r0, r6
fdbc: 47b8 blx r7
fdbe: 4605 mov r5, r0
fdc0: e7cb b.n fd5a <lv_task_handler+0xce>
if(task_created || task_deleted) {
fdc2: f89b 2003 ldrb.w r2, [fp, #3]
fdc6: 2a00 cmp r2, #0
fdc8: d198 bne.n fcfc <lv_task_handler+0x70>
if(task_list_changed) {
fdca: f89b 1000 ldrb.w r1, [fp]
fdce: 2900 cmp r1, #0
fdd0: d0df beq.n fd92 <lv_task_handler+0x106>
task_list_changed = false;
fdd2: f88b 2000 strb.w r2, [fp]
task_interrupter = NULL;
fdd6: 4614 mov r4, r2
fdd8: e772 b.n fcc0 <lv_task_handler+0x34>
fdda: bf00 nop
fddc: 20003640 .word 0x20003640
fde0: 0000fc31 .word 0x0000fc31
fde4: 0000e939 .word 0x0000e939
fde8: 0000dce1 .word 0x0000dce1
fdec: 200035d0 .word 0x200035d0
fdf0: 20005784 .word 0x20005784
fdf4: 0000dccd .word 0x0000dccd
fdf8: 0000e92d .word 0x0000e92d
0000fdfc <lv_task_set_prio>:
{
fdfc: b5f8 push {r3, r4, r5, r6, r7, lr}
if(task->prio == prio) return;
fdfe: 7d03 ldrb r3, [r0, #20]
fe00: f003 0307 and.w r3, r3, #7
fe04: 428b cmp r3, r1
{
fe06: 4604 mov r4, r0
fe08: 460d mov r5, r1
if(task->prio == prio) return;
fe0a: d018 beq.n fe3e <lv_task_set_prio+0x42>
_LV_LL_READ(LV_GC_ROOT(_lv_task_ll), i) {
fe0c: 480f ldr r0, [pc, #60] ; (fe4c <lv_task_set_prio+0x50>)
fe0e: 4b10 ldr r3, [pc, #64] ; (fe50 <lv_task_set_prio+0x54>)
fe10: 4e0e ldr r6, [pc, #56] ; (fe4c <lv_task_set_prio+0x50>)
fe12: 4f10 ldr r7, [pc, #64] ; (fe54 <lv_task_set_prio+0x58>)
fe14: 4798 blx r3
fe16: 4602 mov r2, r0
fe18: b132 cbz r2, fe28 <lv_task_set_prio+0x2c>
if(i->prio <= prio) {
fe1a: 7d13 ldrb r3, [r2, #20]
fe1c: f003 0307 and.w r3, r3, #7
fe20: 429d cmp r5, r3
fe22: db0d blt.n fe40 <lv_task_set_prio+0x44>
if(i != task) _lv_ll_move_before(&LV_GC_ROOT(_lv_task_ll), task, i);
fe24: 42a2 cmp r2, r4
fe26: d003 beq.n fe30 <lv_task_set_prio+0x34>
_lv_ll_move_before(&LV_GC_ROOT(_lv_task_ll), task, NULL);
fe28: 4808 ldr r0, [pc, #32] ; (fe4c <lv_task_set_prio+0x50>)
fe2a: 4b0b ldr r3, [pc, #44] ; (fe58 <lv_task_set_prio+0x5c>)
fe2c: 4621 mov r1, r4
fe2e: 4798 blx r3
task_list_changed = true;
fe30: 4b0a ldr r3, [pc, #40] ; (fe5c <lv_task_set_prio+0x60>)
fe32: 2201 movs r2, #1
fe34: 701a strb r2, [r3, #0]
task->prio = prio;
fe36: 7d23 ldrb r3, [r4, #20]
fe38: f365 0302 bfi r3, r5, #0, #3
fe3c: 7523 strb r3, [r4, #20]
}
fe3e: bdf8 pop {r3, r4, r5, r6, r7, pc}
_LV_LL_READ(LV_GC_ROOT(_lv_task_ll), i) {
fe40: 4611 mov r1, r2
fe42: 4630 mov r0, r6
fe44: 47b8 blx r7
fe46: 4602 mov r2, r0
fe48: e7e6 b.n fe18 <lv_task_set_prio+0x1c>
fe4a: bf00 nop
fe4c: 200035d0 .word 0x200035d0
fe50: 0000e92d .word 0x0000e92d
fe54: 0000e939 .word 0x0000e939
fe58: 0000eae1 .word 0x0000eae1
fe5c: 20005784 .word 0x20005784
0000fe60 <lv_task_create>:
{
fe60: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr}
fe64: 461e mov r6, r3
lv_task_t * new_task = lv_task_create_basic();
fe66: 4b12 ldr r3, [pc, #72] ; (feb0 <lv_task_create+0x50>)
{
fe68: 9203 str r2, [sp, #12]
fe6a: 460f mov r7, r1
fe6c: 4680 mov r8, r0
lv_task_t * new_task = lv_task_create_basic();
fe6e: 4798 blx r3
LV_ASSERT_MEM(new_task);
fe70: 4b10 ldr r3, [pc, #64] ; (feb4 <lv_task_create+0x54>)
lv_task_t * new_task = lv_task_create_basic();
fe72: 4604 mov r4, r0
LV_ASSERT_MEM(new_task);
fe74: 4798 blx r3
fe76: 9903 ldr r1, [sp, #12]
fe78: 4605 mov r5, r0
fe7a: b968 cbnz r0, fe98 <lv_task_create+0x38>
fe7c: 4b0e ldr r3, [pc, #56] ; (feb8 <lv_task_create+0x58>)
fe7e: 490f ldr r1, [pc, #60] ; (febc <lv_task_create+0x5c>)
fe80: 9300 str r3, [sp, #0]
fe82: f44f 7283 mov.w r2, #262 ; 0x106
fe86: 2003 movs r0, #3
fe88: 4e0d ldr r6, [pc, #52] ; (fec0 <lv_task_create+0x60>)
fe8a: 47b0 blx r6
fe8c: 480d ldr r0, [pc, #52] ; (fec4 <lv_task_create+0x64>)
fe8e: 490e ldr r1, [pc, #56] ; (fec8 <lv_task_create+0x68>)
fe90: 4622 mov r2, r4
fe92: 462b mov r3, r5
fe94: 4788 blx r1
fe96: e7fe b.n fe96 <lv_task_create+0x36>
if(new_task == NULL) return NULL;
fe98: b134 cbz r4, fea8 <lv_task_create+0x48>
lv_task_set_prio(new_task, prio);
fe9a: 4b0c ldr r3, [pc, #48] ; (fecc <lv_task_create+0x6c>)
task->task_cb = task_cb;
fe9c: f8c4 8008 str.w r8, [r4, #8]
task->period = period;
fea0: 6027 str r7, [r4, #0]
lv_task_set_prio(new_task, prio);
fea2: 4620 mov r0, r4
fea4: 4798 blx r3
new_task->user_data = user_data;
fea6: 60e6 str r6, [r4, #12]
}
fea8: 4620 mov r0, r4
feaa: b004 add sp, #16
feac: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
feb0: 0000fae5 .word 0x0000fae5
feb4: 00001a65 .word 0x00001a65
feb8: 0002bc5b .word 0x0002bc5b
febc: 0002bc16 .word 0x0002bc16
fec0: 0000eb79 .word 0x0000eb79
fec4: 00026842 .word 0x00026842
fec8: 00001a6d .word 0x00001a6d
fecc: 0000fdfd .word 0x0000fdfd
0000fed0 <lv_task_ready>:
{
fed0: b510 push {r4, lr}
task->last_run = lv_tick_get() - task->period - 1;
fed2: 4b04 ldr r3, [pc, #16] ; (fee4 <lv_task_ready+0x14>)
{
fed4: 4604 mov r4, r0
task->last_run = lv_tick_get() - task->period - 1;
fed6: 4798 blx r3
fed8: 6823 ldr r3, [r4, #0]
feda: 1ac3 subs r3, r0, r3
fedc: 3b01 subs r3, #1
fede: 6063 str r3, [r4, #4]
}
fee0: bd10 pop {r4, pc}
fee2: bf00 nop
fee4: 0000dccd .word 0x0000dccd
0000fee8 <lv_txt_utf8_size>:
* @param str pointer to a character in a string
* @return length of the UTF-8 character (1,2,3 or 4). O on invalid code
*/
static uint8_t lv_txt_utf8_size(const char * str)
{
if((str[0] & 0x80) == 0)
fee8: f990 2000 ldrsb.w r2, [r0]
feec: 7803 ldrb r3, [r0, #0]
feee: 2a00 cmp r2, #0
fef0: da0f bge.n ff12 <lv_txt_utf8_size+0x2a>
return 1;
else if((str[0] & 0xE0) == 0xC0)
fef2: f003 02e0 and.w r2, r3, #224 ; 0xe0
fef6: 2ac0 cmp r2, #192 ; 0xc0
fef8: d00d beq.n ff16 <lv_txt_utf8_size+0x2e>
return 2;
else if((str[0] & 0xF0) == 0xE0)
fefa: f003 02f0 and.w r2, r3, #240 ; 0xf0
fefe: 2ae0 cmp r2, #224 ; 0xe0
ff00: d00b beq.n ff1a <lv_txt_utf8_size+0x32>
return 3;
else if((str[0] & 0xF8) == 0xF0)
ff02: f003 00f8 and.w r0, r3, #248 ; 0xf8
ff06: f1a0 03f0 sub.w r3, r0, #240 ; 0xf0
ff0a: 4258 negs r0, r3
ff0c: 4158 adcs r0, r3
ff0e: 0080 lsls r0, r0, #2
ff10: 4770 bx lr
return 1;
ff12: 2001 movs r0, #1
ff14: 4770 bx lr
return 2;
ff16: 2002 movs r0, #2
ff18: 4770 bx lr
return 3;
ff1a: 2003 movs r0, #3
return 4;
return 0; /*If the char was invalid tell it's 1 byte long*/
}
ff1c: 4770 bx lr
0000ff1e <lv_txt_utf8_next>:
* After call it will point to the next UTF-8 char in 'txt'.
* NULL to use txt[0] as index
* @return the decoded Unicode character or 0 on invalid UTF-8 code
*/
static uint32_t lv_txt_utf8_next(const char * txt, uint32_t * i)
{
ff1e: b573 push {r0, r1, r4, r5, r6, lr}
* */
uint32_t result = 0;
/*Dummy 'i' pointer is required*/
uint32_t i_tmp = 0;
ff20: 2300 movs r3, #0
ff22: 9301 str r3, [sp, #4]
if(i == NULL) i = &i_tmp;
ff24: b901 cbnz r1, ff28 <lv_txt_utf8_next+0xa>
ff26: a901 add r1, sp, #4
/*Normal ASCII*/
if((txt[*i] & 0x80) == 0) {
ff28: 680a ldr r2, [r1, #0]
ff2a: 5685 ldrsb r5, [r0, r2]
ff2c: 5c83 ldrb r3, [r0, r2]
ff2e: 2d00 cmp r5, #0
result = txt[*i];
(*i)++;
ff30: f102 0401 add.w r4, r2, #1
if((txt[*i] & 0x80) == 0) {
ff34: db03 blt.n ff3e <lv_txt_utf8_next+0x20>
result = txt[*i];
ff36: 4618 mov r0, r3
(*i)++;
ff38: 600c str r4, [r1, #0]
else {
(*i)++; /*Not UTF-8 char. Go the next.*/
}
}
return result;
}
ff3a: b002 add sp, #8
ff3c: bd70 pop {r4, r5, r6, pc}
if((txt[*i] & 0xE0) == 0xC0) {
ff3e: f003 05e0 and.w r5, r3, #224 ; 0xe0
ff42: 2dc0 cmp r5, #192 ; 0xc0
ff44: d110 bne.n ff68 <lv_txt_utf8_next+0x4a>
(*i)++;
ff46: 600c str r4, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
ff48: 5d00 ldrb r0, [r0, r4]
ff4a: f000 04c0 and.w r4, r0, #192 ; 0xc0
ff4e: 2c80 cmp r4, #128 ; 0x80
ff50: d001 beq.n ff56 <lv_txt_utf8_next+0x38>
uint32_t result = 0;
ff52: 2000 movs r0, #0
ff54: e7f1 b.n ff3a <lv_txt_utf8_next+0x1c>
result = (uint32_t)(txt[*i] & 0x1F) << 6;
ff56: 019b lsls r3, r3, #6
ff58: f403 63f8 and.w r3, r3, #1984 ; 0x7c0
result += (txt[*i] & 0x3F);
ff5c: f000 003f and.w r0, r0, #63 ; 0x3f
ff60: 4418 add r0, r3
(*i)++;
ff62: 3202 adds r2, #2
(*i)++;
ff64: 600a str r2, [r1, #0]
ff66: e7e8 b.n ff3a <lv_txt_utf8_next+0x1c>
else if((txt[*i] & 0xF0) == 0xE0) {
ff68: f003 05f0 and.w r5, r3, #240 ; 0xf0
ff6c: 2de0 cmp r5, #224 ; 0xe0
ff6e: d117 bne.n ffa0 <lv_txt_utf8_next+0x82>
(*i)++;
ff70: 600c str r4, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
ff72: 5d04 ldrb r4, [r0, r4]
ff74: f004 05c0 and.w r5, r4, #192 ; 0xc0
ff78: 2d80 cmp r5, #128 ; 0x80
ff7a: d1ea bne.n ff52 <lv_txt_utf8_next+0x34>
(*i)++;
ff7c: 1c95 adds r5, r2, #2
ff7e: 600d str r5, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
ff80: 5d45 ldrb r5, [r0, r5]
ff82: f005 00c0 and.w r0, r5, #192 ; 0xc0
ff86: 2880 cmp r0, #128 ; 0x80
ff88: d1e3 bne.n ff52 <lv_txt_utf8_next+0x34>
result = (uint32_t)(txt[*i] & 0x0F) << 12;
ff8a: 0318 lsls r0, r3, #12
ff8c: b280 uxth r0, r0
result += (txt[*i] & 0x3F);
ff8e: f005 053f and.w r5, r5, #63 ; 0x3f
result += (uint32_t)(txt[*i] & 0x3F) << 6;
ff92: 01a4 lsls r4, r4, #6
ff94: 4428 add r0, r5
ff96: f404 647c and.w r4, r4, #4032 ; 0xfc0
result += (txt[*i] & 0x3F);
ff9a: 4420 add r0, r4
(*i)++;
ff9c: 3203 adds r2, #3
ff9e: e7e1 b.n ff64 <lv_txt_utf8_next+0x46>
else if((txt[*i] & 0xF8) == 0xF0) {
ffa0: f003 05f8 and.w r5, r3, #248 ; 0xf8
ffa4: 2df0 cmp r5, #240 ; 0xf0
(*i)++;
ffa6: 600c str r4, [r1, #0]
else if((txt[*i] & 0xF8) == 0xF0) {
ffa8: d1d3 bne.n ff52 <lv_txt_utf8_next+0x34>
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
ffaa: 5d04 ldrb r4, [r0, r4]
ffac: f004 05c0 and.w r5, r4, #192 ; 0xc0
ffb0: 2d80 cmp r5, #128 ; 0x80
ffb2: d1ce bne.n ff52 <lv_txt_utf8_next+0x34>
(*i)++;
ffb4: 1c95 adds r5, r2, #2
ffb6: 600d str r5, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
ffb8: 5d45 ldrb r5, [r0, r5]
ffba: f005 06c0 and.w r6, r5, #192 ; 0xc0
ffbe: 2e80 cmp r6, #128 ; 0x80
ffc0: d1c7 bne.n ff52 <lv_txt_utf8_next+0x34>
(*i)++;
ffc2: 1cd6 adds r6, r2, #3
ffc4: 600e str r6, [r1, #0]
if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/
ffc6: 5d80 ldrb r0, [r0, r6]
ffc8: f000 06c0 and.w r6, r0, #192 ; 0xc0
ffcc: 2e80 cmp r6, #128 ; 0x80
ffce: d1c0 bne.n ff52 <lv_txt_utf8_next+0x34>
result = (uint32_t)(txt[*i] & 0x07) << 18;
ffd0: 049b lsls r3, r3, #18
result += (uint32_t)(txt[*i] & 0x3F) << 12;
ffd2: 0324 lsls r4, r4, #12
result += (uint32_t)(txt[*i] & 0x3F) << 6;
ffd4: 01ad lsls r5, r5, #6
result += txt[*i] & 0x3F;
ffd6: f000 003f and.w r0, r0, #63 ; 0x3f
result = (uint32_t)(txt[*i] & 0x07) << 18;
ffda: f403 13e0 and.w r3, r3, #1835008 ; 0x1c0000
result += (uint32_t)(txt[*i] & 0x3F) << 12;
ffde: f404 347c and.w r4, r4, #258048 ; 0x3f000
result += (uint32_t)(txt[*i] & 0x3F) << 6;
ffe2: f405 657c and.w r5, r5, #4032 ; 0xfc0
result += (uint32_t)(txt[*i] & 0x3F) << 12;
ffe6: 431c orrs r4, r3
result += txt[*i] & 0x3F;
ffe8: 4405 add r5, r0
ffea: 1928 adds r0, r5, r4
(*i)++;
ffec: 3204 adds r2, #4
ffee: e7b9 b.n ff64 <lv_txt_utf8_next+0x46>
0000fff0 <lv_txt_utf8_prev>:
{
uint8_t c_size;
uint8_t cnt = 0;
/*Try to find a !0 long UTF-8 char by stepping one character back*/
(*i)--;
fff0: 680b ldr r3, [r1, #0]
{
fff2: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
(*i)--;
fff4: 3b01 subs r3, #1
do {
if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/
c_size = _lv_txt_encoded_size(&txt[*i]);
fff6: 4f0d ldr r7, [pc, #52] ; (1002c <lv_txt_utf8_prev+0x3c>)
(*i)--;
fff8: 600b str r3, [r1, #0]
{
fffa: 4606 mov r6, r0
fffc: 460c mov r4, r1
(*i)--;
fffe: 2504 movs r5, #4
c_size = _lv_txt_encoded_size(&txt[*i]);
10000: 6820 ldr r0, [r4, #0]
10002: 683b ldr r3, [r7, #0]
10004: 4430 add r0, r6
10006: 4798 blx r3
if(c_size == 0) {
10008: 6823 ldr r3, [r4, #0]
1000a: b948 cbnz r0, 10020 <lv_txt_utf8_prev+0x30>
if(*i != 0)
1000c: b12b cbz r3, 1001a <lv_txt_utf8_prev+0x2a>
if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/
1000e: 3d01 subs r5, #1
(*i)--;
10010: 3b01 subs r3, #1
if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/
10012: f015 05ff ands.w r5, r5, #255 ; 0xff
(*i)--;
10016: 6023 str r3, [r4, #0]
if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/
10018: d1f2 bne.n 10000 <lv_txt_utf8_prev+0x10>
1001a: 2000 movs r0, #0
uint32_t i_tmp = *i;
uint32_t letter = _lv_txt_encoded_next(txt, &i_tmp); /*Character found, get it*/
return letter;
}
1001c: b003 add sp, #12
1001e: bdf0 pop {r4, r5, r6, r7, pc}
uint32_t i_tmp = *i;
10020: 9301 str r3, [sp, #4]
uint32_t letter = _lv_txt_encoded_next(txt, &i_tmp); /*Character found, get it*/
10022: a901 add r1, sp, #4
10024: 687b ldr r3, [r7, #4]
10026: 4630 mov r0, r6
10028: 4798 blx r3
return letter;
1002a: e7f7 b.n 1001c <lv_txt_utf8_prev+0x2c>
1002c: 20000048 .word 0x20000048
00010030 <lv_txt_utf8_get_byte_id>:
* @param txt a '\0' terminated UTF-8 string
* @param utf8_id character index
* @return byte index of the 'utf8_id'th letter
*/
static uint32_t lv_txt_utf8_get_byte_id(const char * txt, uint32_t utf8_id)
{
10030: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
uint32_t i;
uint32_t byte_cnt = 0;
10034: 2400 movs r4, #0
for(i = 0; i < utf8_id; i++) {
uint8_t c_size = _lv_txt_encoded_size(&txt[byte_cnt]);
10036: f8df 8028 ldr.w r8, [pc, #40] ; 10060 <lv_txt_utf8_get_byte_id+0x30>
{
1003a: 4607 mov r7, r0
1003c: 460d mov r5, r1
for(i = 0; i < utf8_id; i++) {
1003e: 4626 mov r6, r4
10040: 42ae cmp r6, r5
10042: d102 bne.n 1004a <lv_txt_utf8_get_byte_id+0x1a>
byte_cnt += c_size > 0 ? c_size : 1;
}
return byte_cnt;
}
10044: 4620 mov r0, r4
10046: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
uint8_t c_size = _lv_txt_encoded_size(&txt[byte_cnt]);
1004a: 1938 adds r0, r7, r4
1004c: f8d8 3000 ldr.w r3, [r8]
10050: 4798 blx r3
byte_cnt += c_size > 0 ? c_size : 1;
10052: 2801 cmp r0, #1
10054: bf38 it cc
10056: 2001 movcc r0, #1
10058: fa54 f480 uxtab r4, r4, r0
for(i = 0; i < utf8_id; i++) {
1005c: 3601 adds r6, #1
1005e: e7ef b.n 10040 <lv_txt_utf8_get_byte_id+0x10>
10060: 20000048 .word 0x20000048
00010064 <lv_txt_utf8_get_char_id>:
* @param txt a '\0' terminated UTF-8 string
* @param byte_id byte index
* @return character index of the letter at 'byte_id'th position
*/
static uint32_t lv_txt_utf8_get_char_id(const char * txt, uint32_t byte_id)
{
10064: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
uint32_t i = 0;
10066: 2400 movs r4, #0
uint32_t char_cnt = 0;
while(i < byte_id) {
_lv_txt_encoded_next(txt, &i); /*'i' points to the next letter so use the prev. value*/
10068: 4f07 ldr r7, [pc, #28] ; (10088 <lv_txt_utf8_get_char_id+0x24>)
uint32_t i = 0;
1006a: 9401 str r4, [sp, #4]
{
1006c: 4606 mov r6, r0
1006e: 460d mov r5, r1
while(i < byte_id) {
10070: 9b01 ldr r3, [sp, #4]
10072: 42ab cmp r3, r5
10074: d302 bcc.n 1007c <lv_txt_utf8_get_char_id+0x18>
char_cnt++;
}
return char_cnt;
}
10076: 4620 mov r0, r4
10078: b003 add sp, #12
1007a: bdf0 pop {r4, r5, r6, r7, pc}
_lv_txt_encoded_next(txt, &i); /*'i' points to the next letter so use the prev. value*/
1007c: 687b ldr r3, [r7, #4]
1007e: a901 add r1, sp, #4
10080: 4630 mov r0, r6
10082: 4798 blx r3
char_cnt++;
10084: 3401 adds r4, #1
10086: e7f3 b.n 10070 <lv_txt_utf8_get_char_id+0xc>
10088: 20000048 .word 0x20000048
0001008c <lv_txt_utf8_get_length>:
* E.g.: "ÁBC" is 3 characters (but 4 bytes)
* @param txt a '\0' terminated char string
* @return number of characters
*/
static uint32_t lv_txt_utf8_get_length(const char * txt)
{
1008c: b573 push {r0, r1, r4, r5, r6, lr}
uint32_t len = 0;
uint32_t i = 0;
1008e: 2400 movs r4, #0
while(txt[i] != '\0') {
_lv_txt_encoded_next(txt, &i);
10090: 4e07 ldr r6, [pc, #28] ; (100b0 <lv_txt_utf8_get_length+0x24>)
uint32_t i = 0;
10092: 9401 str r4, [sp, #4]
{
10094: 4605 mov r5, r0
while(txt[i] != '\0') {
10096: 9b01 ldr r3, [sp, #4]
10098: 5ceb ldrb r3, [r5, r3]
1009a: b913 cbnz r3, 100a2 <lv_txt_utf8_get_length+0x16>
len++;
}
return len;
}
1009c: 4620 mov r0, r4
1009e: b002 add sp, #8
100a0: bd70 pop {r4, r5, r6, pc}
_lv_txt_encoded_next(txt, &i);
100a2: 6873 ldr r3, [r6, #4]
100a4: a901 add r1, sp, #4
100a6: 4628 mov r0, r5
100a8: 4798 blx r3
len++;
100aa: 3401 adds r4, #1
100ac: e7f3 b.n 10096 <lv_txt_utf8_get_length+0xa>
100ae: bf00 nop
100b0: 20000048 .word 0x20000048
000100b4 <lv_txt_unicode_to_utf8>:
if(letter_uni < 128) return letter_uni;
100b4: 287f cmp r0, #127 ; 0x7f
{
100b6: b082 sub sp, #8
if(letter_uni < 128) return letter_uni;
100b8: d911 bls.n 100de <lv_txt_unicode_to_utf8+0x2a>
if(letter_uni < 0x0800) {
100ba: f5b0 6f00 cmp.w r0, #2048 ; 0x800
100be: d210 bcs.n 100e2 <lv_txt_unicode_to_utf8+0x2e>
bytes[0] = ((letter_uni >> 6) & 0x1F) | 0xC0;
100c0: 0983 lsrs r3, r0, #6
100c2: f063 033f orn r3, r3, #63 ; 0x3f
bytes[1] = ((letter_uni >> 0) & 0x3F) | 0x80;
100c6: f000 003f and.w r0, r0, #63 ; 0x3f
bytes[0] = ((letter_uni >> 6) & 0x1F) | 0xC0;
100ca: f88d 3004 strb.w r3, [sp, #4]
bytes[1] = ((letter_uni >> 0) & 0x3F) | 0x80;
100ce: f060 007f orn r0, r0, #127 ; 0x7f
bytes[2] = 0;
100d2: 2300 movs r3, #0
bytes[1] = ((letter_uni >> 0) & 0x3F) | 0x80;
100d4: f88d 0005 strb.w r0, [sp, #5]
bytes[2] = 0;
100d8: f8ad 3006 strh.w r3, [sp, #6]
return *res_p;
100dc: 9801 ldr r0, [sp, #4]
}
100de: b002 add sp, #8
100e0: 4770 bx lr
else if(letter_uni < 0x010000) {
100e2: f5b0 3f80 cmp.w r0, #65536 ; 0x10000
100e6: d214 bcs.n 10112 <lv_txt_unicode_to_utf8+0x5e>
bytes[0] = ((letter_uni >> 12) & 0x0F) | 0xE0;
100e8: 0b03 lsrs r3, r0, #12
100ea: f063 031f orn r3, r3, #31
100ee: f88d 3004 strb.w r3, [sp, #4]
bytes[1] = ((letter_uni >> 6) & 0x3F) | 0x80;
100f2: f3c0 1385 ubfx r3, r0, #6, #6
100f6: f063 037f orn r3, r3, #127 ; 0x7f
bytes[2] = ((letter_uni >> 0) & 0x3F) | 0x80;
100fa: f000 003f and.w r0, r0, #63 ; 0x3f
bytes[1] = ((letter_uni >> 6) & 0x3F) | 0x80;
100fe: f88d 3005 strb.w r3, [sp, #5]
bytes[2] = ((letter_uni >> 0) & 0x3F) | 0x80;
10102: f060 007f orn r0, r0, #127 ; 0x7f
bytes[3] = 0;
10106: 2300 movs r3, #0
bytes[2] = ((letter_uni >> 0) & 0x3F) | 0x80;
10108: f88d 0006 strb.w r0, [sp, #6]
bytes[3] = 0;
1010c: f88d 3007 strb.w r3, [sp, #7]
10110: e7e4 b.n 100dc <lv_txt_unicode_to_utf8+0x28>
else if(letter_uni < 0x110000) {
10112: f5b0 1f88 cmp.w r0, #1114112 ; 0x110000
10116: d2e1 bcs.n 100dc <lv_txt_unicode_to_utf8+0x28>
bytes[0] = ((letter_uni >> 18) & 0x07) | 0xF0;
10118: 0c83 lsrs r3, r0, #18
1011a: f063 030f orn r3, r3, #15
1011e: f88d 3004 strb.w r3, [sp, #4]
bytes[1] = ((letter_uni >> 12) & 0x3F) | 0x80;
10122: f3c0 3305 ubfx r3, r0, #12, #6
10126: f063 037f orn r3, r3, #127 ; 0x7f
1012a: f88d 3005 strb.w r3, [sp, #5]
bytes[2] = ((letter_uni >> 6) & 0x3F) | 0x80;
1012e: f3c0 1385 ubfx r3, r0, #6, #6
bytes[3] = ((letter_uni >> 0) & 0x3F) | 0x80;
10132: f000 003f and.w r0, r0, #63 ; 0x3f
bytes[2] = ((letter_uni >> 6) & 0x3F) | 0x80;
10136: f063 037f orn r3, r3, #127 ; 0x7f
bytes[3] = ((letter_uni >> 0) & 0x3F) | 0x80;
1013a: f060 007f orn r0, r0, #127 ; 0x7f
bytes[2] = ((letter_uni >> 6) & 0x3F) | 0x80;
1013e: f88d 3006 strb.w r3, [sp, #6]
bytes[3] = ((letter_uni >> 0) & 0x3F) | 0x80;
10142: f88d 0007 strb.w r0, [sp, #7]
10146: e7c9 b.n 100dc <lv_txt_unicode_to_utf8+0x28>
00010148 <lv_txt_utf8_conv_wc>:
if((c & 0x80) != 0) {
10148: 0603 lsls r3, r0, #24
1014a: d512 bpl.n 10172 <lv_txt_utf8_conv_wc+0x2a>
swapped = (c8[0] << 24) + (c8[1] << 16) + (c8[2] << 8) + (c8[3]);
1014c: f3c0 2207 ubfx r2, r0, #8, #8
10150: 0603 lsls r3, r0, #24
10152: eb03 4302 add.w r3, r3, r2, lsl #16
10156: f3c0 4207 ubfx r2, r0, #16, #8
1015a: eb03 2302 add.w r3, r3, r2, lsl #8
1015e: eb03 6010 add.w r0, r3, r0, lsr #24
10162: 2304 movs r3, #4
if((swapped & 0xFF) == 0)
10164: b2c2 uxtb r2, r0
10166: b902 cbnz r2, 1016a <lv_txt_utf8_conv_wc+0x22>
swapped = (swapped >> 8); /*Ignore leading zeros (they were in the end originally)*/
10168: 0a00 lsrs r0, r0, #8
for(i = 0; i < 4; i++) {
1016a: 3b01 subs r3, #1
1016c: f013 03ff ands.w r3, r3, #255 ; 0xff
10170: d1f8 bne.n 10164 <lv_txt_utf8_conv_wc+0x1c>
}
10172: 4770 bx lr
00010174 <_lv_txt_is_cmd>:
if(c == (uint32_t)LV_TXT_COLOR_CMD[0]) {
10174: 2923 cmp r1, #35 ; 0x23
10176: d116 bne.n 101a6 <_lv_txt_is_cmd+0x32>
if(*state == LV_TXT_CMD_STATE_WAIT) { /*Start char*/
10178: 7802 ldrb r2, [r0, #0]
1017a: b95a cbnz r2, 10194 <_lv_txt_is_cmd+0x20>
*state = LV_TXT_CMD_STATE_PAR;
1017c: 2301 movs r3, #1
*state = LV_TXT_CMD_STATE_WAIT;
1017e: 7003 strb r3, [r0, #0]
if(*state == LV_TXT_CMD_STATE_PAR) {
10180: 7802 ldrb r2, [r0, #0]
10182: 2a01 cmp r2, #1
10184: d104 bne.n 10190 <_lv_txt_is_cmd+0x1c>
if(c == ' ') {
10186: 2920 cmp r1, #32
*state = LV_TXT_CMD_STATE_IN; /*After the parameter the text is in the command*/
10188: bf04 itt eq
1018a: 2302 moveq r3, #2
1018c: 7003 strbeq r3, [r0, #0]
ret = true;
1018e: 4613 mov r3, r2
}
10190: 4618 mov r0, r3
10192: 4770 bx lr
else if(*state == LV_TXT_CMD_STATE_PAR) {
10194: 2a01 cmp r2, #1
10196: f04f 0300 mov.w r3, #0
1019a: d0f0 beq.n 1017e <_lv_txt_is_cmd+0xa>
else if(*state == LV_TXT_CMD_STATE_IN) {
1019c: 2a02 cmp r2, #2
1019e: d1ef bne.n 10180 <_lv_txt_is_cmd+0xc>
*state = LV_TXT_CMD_STATE_WAIT;
101a0: 7003 strb r3, [r0, #0]
ret = true;
101a2: 2301 movs r3, #1
101a4: e7ec b.n 10180 <_lv_txt_is_cmd+0xc>
bool ret = false;
101a6: 2300 movs r3, #0
101a8: e7ea b.n 10180 <_lv_txt_is_cmd+0xc>
...
000101ac <_lv_txt_get_width>:
{
101ac: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
101b0: 4688 mov r8, r1
101b2: b085 sub sp, #20
101b4: 4617 mov r7, r2
101b6: 461e mov r6, r3
if(txt == NULL) return 0;
101b8: 4605 mov r5, r0
101ba: 2400 movs r4, #0
101bc: 2800 cmp r0, #0
101be: d03e beq.n 1023e <_lv_txt_get_width+0x92>
if(font == NULL) return 0;
101c0: 2a00 cmp r2, #0
101c2: d03e beq.n 10242 <_lv_txt_get_width+0x96>
uint32_t i = 0;
101c4: 9403 str r4, [sp, #12]
lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT;
101c6: f88d 400b strb.w r4, [sp, #11]
if(length != 0) {
101ca: 2900 cmp r1, #0
101cc: d035 beq.n 1023a <_lv_txt_get_width+0x8e>
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
101ce: f89d 9038 ldrb.w r9, [sp, #56] ; 0x38
uint32_t letter = _lv_txt_encoded_next(txt, &i);
101d2: f8df a07c ldr.w sl, [pc, #124] ; 10250 <_lv_txt_get_width+0xa4>
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
101d6: f009 0901 and.w r9, r9, #1
uint32_t letter = _lv_txt_encoded_next(txt, &i);
101da: f8da 3004 ldr.w r3, [sl, #4]
101de: a903 add r1, sp, #12
101e0: 4628 mov r0, r5
101e2: 4798 blx r3
101e4: 4683 mov fp, r0
uint32_t letter_next = _lv_txt_encoded_next(&txt[i], NULL);
101e6: 9803 ldr r0, [sp, #12]
101e8: f8da 2004 ldr.w r2, [sl, #4]
101ec: 2100 movs r1, #0
101ee: 4428 add r0, r5
101f0: 4790 blx r2
101f2: 4602 mov r2, r0
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
101f4: f1b9 0f00 cmp.w r9, #0
101f8: d111 bne.n 1021e <_lv_txt_get_width+0x72>
lv_coord_t char_width = lv_font_get_glyph_width(font, letter, letter_next);
101fa: 4b13 ldr r3, [pc, #76] ; (10248 <_lv_txt_get_width+0x9c>)
101fc: 4659 mov r1, fp
101fe: 4638 mov r0, r7
10200: 4798 blx r3
if(char_width > 0) {
10202: b203 sxth r3, r0
10204: 2b00 cmp r3, #0
10206: dc14 bgt.n 10232 <_lv_txt_get_width+0x86>
while(i < length) {
10208: 9b03 ldr r3, [sp, #12]
1020a: 4598 cmp r8, r3
1020c: d8e5 bhi.n 101da <_lv_txt_get_width+0x2e>
if(width > 0) {
1020e: 2c00 cmp r4, #0
10210: dd01 ble.n 10216 <_lv_txt_get_width+0x6a>
width -= letter_space; /*Trim the last letter space. Important if the text is center
10212: 1ba6 subs r6, r4, r6
10214: b234 sxth r4, r6
}
10216: 4620 mov r0, r4
10218: b005 add sp, #20
1021a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1021e: 9001 str r0, [sp, #4]
if(_lv_txt_is_cmd(&cmd_state, letter) != false) {
10220: 4b0a ldr r3, [pc, #40] ; (1024c <_lv_txt_get_width+0xa0>)
10222: 4659 mov r1, fp
10224: f10d 000b add.w r0, sp, #11
10228: 4798 blx r3
1022a: 9a01 ldr r2, [sp, #4]
1022c: 2800 cmp r0, #0
1022e: d0e4 beq.n 101fa <_lv_txt_get_width+0x4e>
10230: e7ea b.n 10208 <_lv_txt_get_width+0x5c>
width += letter_space;
10232: 4434 add r4, r6
10234: 4420 add r0, r4
10236: b204 sxth r4, r0
10238: e7e6 b.n 10208 <_lv_txt_get_width+0x5c>
lv_coord_t width = 0;
1023a: 460c mov r4, r1
1023c: e7eb b.n 10216 <_lv_txt_get_width+0x6a>
if(txt == NULL) return 0;
1023e: 4604 mov r4, r0
10240: e7e9 b.n 10216 <_lv_txt_get_width+0x6a>
10242: 4614 mov r4, r2
10244: e7e7 b.n 10216 <_lv_txt_get_width+0x6a>
10246: bf00 nop
10248: 0000d3f9 .word 0x0000d3f9
1024c: 00010175 .word 0x00010175
10250: 20000048 .word 0x20000048
00010254 <_lv_txt_get_next_line>:
{
10254: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
10258: b08f sub sp, #60 ; 0x3c
1025a: 4699 mov r9, r3
1025c: f89d 3060 ldrb.w r3, [sp, #96] ; 0x60
10260: 9102 str r1, [sp, #8]
10262: 9204 str r2, [sp, #16]
10264: 9303 str r3, [sp, #12]
if(txt == NULL) return 0;
10266: 4607 mov r7, r0
10268: b198 cbz r0, 10292 <_lv_txt_get_next_line+0x3e>
if(font == NULL) return 0;
1026a: 2900 cmp r1, #0
1026c: f000 80d2 beq.w 10414 <_lv_txt_get_next_line+0x1c0>
if((flag & LV_TXT_FLAG_EXPAND) || (flag & LV_TXT_FLAG_FIT)) {
10270: 9b03 ldr r3, [sp, #12]
10272: f013 0312 ands.w r3, r3, #18
10276: d00f beq.n 10298 <_lv_txt_get_next_line+0x44>
for(i = 0; txt[i] != '\n' && txt[i] != '\r' && txt[i] != '\0'; i++) {
10278: 2000 movs r0, #0
1027a: e000 b.n 1027e <_lv_txt_get_next_line+0x2a>
1027c: 3001 adds r0, #1
1027e: 5c3b ldrb r3, [r7, r0]
10280: 2b0a cmp r3, #10
10282: f000 80c9 beq.w 10418 <_lv_txt_get_next_line+0x1c4>
10286: 2b0d cmp r3, #13
10288: f000 80c6 beq.w 10418 <_lv_txt_get_next_line+0x1c4>
1028c: 2b00 cmp r3, #0
1028e: d1f5 bne.n 1027c <_lv_txt_get_next_line+0x28>
return i;
10290: b280 uxth r0, r0
}
10292: b00f add sp, #60 ; 0x3c
10294: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX;
10298: 9a03 ldr r2, [sp, #12]
lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT;
1029a: f88d 302b strb.w r3, [sp, #43] ; 0x2b
if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX;
1029e: f012 0202 ands.w r2, r2, #2
102a2: 9205 str r2, [sp, #20]
102a4: f647 4218 movw r2, #31768 ; 0x7c18
102a8: bf18 it ne
102aa: 4691 movne r9, r2
uint32_t i = 0; /* Iterating index into txt */
102ac: 930b str r3, [sp, #44] ; 0x2c
while(txt[i] != '\0' && max_width > 0) {
102ae: 9b0b ldr r3, [sp, #44] ; 0x2c
102b0: 9300 str r3, [sp, #0]
102b2: eb07 0b03 add.w fp, r7, r3
102b6: 5cfb ldrb r3, [r7, r3]
102b8: 2b00 cmp r3, #0
102ba: f000 808e beq.w 103da <_lv_txt_get_next_line+0x186>
102be: f1b9 0f00 cmp.w r9, #0
102c2: f340 808a ble.w 103da <_lv_txt_get_next_line+0x186>
if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX;
102c6: 9a05 ldr r2, [sp, #20]
102c8: f647 4318 movw r3, #31768 ; 0x7c18
102cc: 2a00 cmp r2, #0
102ce: bf08 it eq
102d0: 464b moveq r3, r9
102d2: 9307 str r3, [sp, #28]
letter = _lv_txt_encoded_next(txt, &i_next);
102d4: 4b51 ldr r3, [pc, #324] ; (1041c <_lv_txt_get_next_line+0x1c8>)
uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */
102d6: 2500 movs r5, #0
letter = _lv_txt_encoded_next(txt, &i_next);
102d8: 685b ldr r3, [r3, #4]
uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */
102da: e9cd 550c strd r5, r5, [sp, #48] ; 0x30
letter = _lv_txt_encoded_next(txt, &i_next);
102de: a90c add r1, sp, #48 ; 0x30
102e0: 4658 mov r0, fp
102e2: 4798 blx r3
i_next_next = i_next;
102e4: 9b0c ldr r3, [sp, #48] ; 0x30
102e6: 930d str r3, [sp, #52] ; 0x34
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
102e8: 9b03 ldr r3, [sp, #12]
uint32_t word_len = 0; /* Number of characters in the transversed word */
102ea: 9501 str r5, [sp, #4]
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
102ec: f003 0301 and.w r3, r3, #1
letter = _lv_txt_encoded_next(txt, &i_next);
102f0: 4680 mov r8, r0
uint32_t break_index = NO_BREAK_FOUND; /* only used for "long" words */
102f2: f04f 3aff mov.w sl, #4294967295 ; 0xffffffff
lv_coord_t cur_w = 0; /* Pixel Width of transversed string */
102f6: 462e mov r6, r5
uint32_t letter_next = 0; /* Letter at i_next */
102f8: 462a mov r2, r5
uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */
102fa: 462c mov r4, r5
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
102fc: 9308 str r3, [sp, #32]
while(txt[i] != '\0') {
102fe: f81b 3004 ldrb.w r3, [fp, r4]
10302: b943 cbnz r3, 10316 <_lv_txt_get_next_line+0xc2>
if(break_index == NO_BREAK_FOUND) {
10304: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff
10308: d052 beq.n 103b0 <_lv_txt_get_next_line+0x15c>
if(force) return break_index;
1030a: 9b00 ldr r3, [sp, #0]
1030c: 2b00 cmp r3, #0
1030e: d16e bne.n 103ee <_lv_txt_get_next_line+0x19a>
10310: fa1f f48a uxth.w r4, sl
10314: e055 b.n 103c2 <_lv_txt_get_next_line+0x16e>
letter_next = _lv_txt_encoded_next(txt, &i_next_next);
10316: 4b41 ldr r3, [pc, #260] ; (1041c <_lv_txt_get_next_line+0x1c8>)
10318: a90d add r1, sp, #52 ; 0x34
1031a: 685b ldr r3, [r3, #4]
1031c: 4658 mov r0, fp
1031e: 4798 blx r3
word_len++;
10320: 9b01 ldr r3, [sp, #4]
10322: 3301 adds r3, #1
10324: 9306 str r3, [sp, #24]
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
10326: 9b08 ldr r3, [sp, #32]
letter_next = _lv_txt_encoded_next(txt, &i_next_next);
10328: 4602 mov r2, r0
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
1032a: b173 cbz r3, 1034a <_lv_txt_get_next_line+0xf6>
1032c: 9009 str r0, [sp, #36] ; 0x24
if(_lv_txt_is_cmd(cmd_state, letter) != false) {
1032e: 4b3c ldr r3, [pc, #240] ; (10420 <_lv_txt_get_next_line+0x1cc>)
10330: 4641 mov r1, r8
10332: f10d 002b add.w r0, sp, #43 ; 0x2b
10336: 4798 blx r3
10338: 9a09 ldr r2, [sp, #36] ; 0x24
1033a: b130 cbz r0, 1034a <_lv_txt_get_next_line+0xf6>
i_next = i_next_next;
1033c: e9dd 430c ldrd r4, r3, [sp, #48] ; 0x30
10340: 930c str r3, [sp, #48] ; 0x30
10342: 9b06 ldr r3, [sp, #24]
10344: 9301 str r3, [sp, #4]
letter_next = _lv_txt_encoded_next(txt, &i_next_next);
10346: 4690 mov r8, r2
10348: e7d9 b.n 102fe <_lv_txt_get_next_line+0xaa>
letter_w = lv_font_get_glyph_width(font, letter, letter_next);
1034a: 4b36 ldr r3, [pc, #216] ; (10424 <_lv_txt_get_next_line+0x1d0>)
1034c: 9802 ldr r0, [sp, #8]
1034e: 9209 str r2, [sp, #36] ; 0x24
10350: 4641 mov r1, r8
10352: 4798 blx r3
cur_w += letter_w;
10354: 4406 add r6, r0
if(letter_w > 0) {
10356: b200 sxth r0, r0
10358: 2800 cmp r0, #0
cur_w += letter_space;
1035a: bfc8 it gt
1035c: 9b04 ldrgt r3, [sp, #16]
if(letter_w > 0) {
1035e: 9a09 ldr r2, [sp, #36] ; 0x24
cur_w += letter_w;
10360: b2b6 uxth r6, r6
cur_w += letter_space;
10362: bfc4 itt gt
10364: 18f6 addgt r6, r6, r3
10366: b2b6 uxthgt r6, r6
if(break_index == NO_BREAK_FOUND && (cur_w - letter_space) > max_width) {
10368: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff
1036c: b236 sxth r6, r6
1036e: d105 bne.n 1037c <_lv_txt_get_next_line+0x128>
10370: 9b04 ldr r3, [sp, #16]
10372: 9907 ldr r1, [sp, #28]
10374: 1af3 subs r3, r6, r3
10376: 428b cmp r3, r1
10378: bfc8 it gt
1037a: 46a2 movgt sl, r4
if(letter == '\n' || letter == '\r' || is_break_char(letter)) {
1037c: f1b8 0f0a cmp.w r8, #10
10380: d010 beq.n 103a4 <_lv_txt_get_next_line+0x150>
10382: f1b8 0f0d cmp.w r8, #13
10386: d00d beq.n 103a4 <_lv_txt_get_next_line+0x150>
{
uint8_t i;
bool ret = false;
/*Compare the letter to TXT_BREAK_CHARS*/
for(i = 0; LV_TXT_BREAK_CHARS[i] != '\0'; i++) {
10388: 4827 ldr r0, [pc, #156] ; (10428 <_lv_txt_get_next_line+0x1d4>)
1038a: 2300 movs r3, #0
1038c: b2d9 uxtb r1, r3
1038e: 5c41 ldrb r1, [r0, r1]
10390: b921 cbnz r1, 1039c <_lv_txt_get_next_line+0x148>
if(word_w_ptr != NULL && break_index == NO_BREAK_FOUND) *word_w_ptr = cur_w;
10392: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff
10396: bf08 it eq
10398: 4635 moveq r5, r6
1039a: e7cf b.n 1033c <_lv_txt_get_next_line+0xe8>
if(letter == (uint32_t)LV_TXT_BREAK_CHARS[i]) {
1039c: 4588 cmp r8, r1
1039e: f103 0301 add.w r3, r3, #1
103a2: d1f3 bne.n 1038c <_lv_txt_get_next_line+0x138>
if(i == 0 && break_index == NO_BREAK_FOUND && word_w_ptr != NULL) *word_w_ptr = cur_w;
103a4: 2c00 cmp r4, #0
103a6: d1ad bne.n 10304 <_lv_txt_get_next_line+0xb0>
103a8: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff
103ac: d1ad bne.n 1030a <_lv_txt_get_next_line+0xb6>
103ae: 4635 mov r5, r6
if(word_len == 0 || (letter == '\r' && letter_next == '\n')) i = i_next;
103b0: 9b01 ldr r3, [sp, #4]
103b2: b123 cbz r3, 103be <_lv_txt_get_next_line+0x16a>
103b4: f1b8 0f0d cmp.w r8, #13
103b8: d102 bne.n 103c0 <_lv_txt_get_next_line+0x16c>
103ba: 2a0a cmp r2, #10
103bc: d100 bne.n 103c0 <_lv_txt_get_next_line+0x16c>
103be: 9c0c ldr r4, [sp, #48] ; 0x30
return i;
103c0: b2a4 uxth r4, r4
max_width -= word_w;
103c2: eba9 0505 sub.w r5, r9, r5
if(i == 0) _lv_txt_encoded_next(txt, &i); // prevent inf loops
103c6: 9b0b ldr r3, [sp, #44] ; 0x2c
max_width -= word_w;
103c8: fa0f f985 sxth.w r9, r5
if(advance == 0) {
103cc: b994 cbnz r4, 103f4 <_lv_txt_get_next_line+0x1a0>
if(i == 0) _lv_txt_encoded_next(txt, &i); // prevent inf loops
103ce: b95b cbnz r3, 103e8 <_lv_txt_get_next_line+0x194>
103d0: 4b12 ldr r3, [pc, #72] ; (1041c <_lv_txt_get_next_line+0x1c8>)
103d2: a90b add r1, sp, #44 ; 0x2c
103d4: 685b ldr r3, [r3, #4]
103d6: 4638 mov r0, r7
103d8: 4798 blx r3
if(i == 0) {
103da: 9b0b ldr r3, [sp, #44] ; 0x2c
103dc: b923 cbnz r3, 103e8 <_lv_txt_get_next_line+0x194>
_lv_txt_encoded_next(txt, &i);
103de: 4b0f ldr r3, [pc, #60] ; (1041c <_lv_txt_get_next_line+0x1c8>)
103e0: a90b add r1, sp, #44 ; 0x2c
103e2: 685b ldr r3, [r3, #4]
103e4: 4638 mov r0, r7
103e6: 4798 blx r3
return i;
103e8: f8bd 002c ldrh.w r0, [sp, #44] ; 0x2c
103ec: e751 b.n 10292 <_lv_txt_get_next_line+0x3e>
if(word_w_ptr != NULL) *word_w_ptr = 0; /* Return no word */
103ee: 2500 movs r5, #0
return 0;
103f0: 462c mov r4, r5
103f2: e7e6 b.n 103c2 <_lv_txt_get_next_line+0x16e>
i += advance;
103f4: 441c add r4, r3
if(txt[0] == '\n' || txt[0] == '\r') break;
103f6: 783b ldrb r3, [r7, #0]
i += advance;
103f8: 940b str r4, [sp, #44] ; 0x2c
if(txt[0] == '\n' || txt[0] == '\r') break;
103fa: 2b0a cmp r3, #10
103fc: d0ed beq.n 103da <_lv_txt_get_next_line+0x186>
103fe: 2b0d cmp r3, #13
10400: d0eb beq.n 103da <_lv_txt_get_next_line+0x186>
if(txt[i] == '\n' || txt[i] == '\r') {
10402: 5d3b ldrb r3, [r7, r4]
10404: 2b0a cmp r3, #10
10406: d002 beq.n 1040e <_lv_txt_get_next_line+0x1ba>
10408: 2b0d cmp r3, #13
1040a: f47f af50 bne.w 102ae <_lv_txt_get_next_line+0x5a>
i++; /* Include the following newline in the current line */
1040e: 3401 adds r4, #1
10410: 940b str r4, [sp, #44] ; 0x2c
break;
10412: e7e2 b.n 103da <_lv_txt_get_next_line+0x186>
if(txt == NULL) return 0;
10414: 9802 ldr r0, [sp, #8]
10416: e73c b.n 10292 <_lv_txt_get_next_line+0x3e>
if(txt[i] != '\0') i++; /*To go beyond `\n`*/
10418: 3001 adds r0, #1
1041a: e739 b.n 10290 <_lv_txt_get_next_line+0x3c>
1041c: 20000048 .word 0x20000048
10420: 00010175 .word 0x00010175
10424: 0000d3f9 .word 0x0000d3f9
10428: 0002bc6a .word 0x0002bc6a
0001042c <_lv_txt_get_size>:
{
1042c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
10430: b089 sub sp, #36 ; 0x24
size_res->x = 0;
10432: 2500 movs r5, #0
{
10434: 4698 mov r8, r3
10436: f89d 3050 ldrb.w r3, [sp, #80] ; 0x50
1043a: f9bd b048 ldrsh.w fp, [sp, #72] ; 0x48
1043e: f9bd a04c ldrsh.w sl, [sp, #76] ; 0x4c
10442: 9304 str r3, [sp, #16]
10444: 4604 mov r4, r0
10446: 4616 mov r6, r2
size_res->x = 0;
10448: 8005 strh r5, [r0, #0]
size_res->y = 0;
1044a: 8045 strh r5, [r0, #2]
if(text == NULL) return;
1044c: 9103 str r1, [sp, #12]
1044e: b329 cbz r1, 1049c <_lv_txt_get_size+0x70>
if(font == NULL) return;
10450: b322 cbz r2, 1049c <_lv_txt_get_size+0x70>
if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX;
10452: 9b04 ldr r3, [sp, #16]
10454: f013 0f02 tst.w r3, #2
10458: f647 4318 movw r3, #31768 ; 0x7c18
1045c: bf18 it ne
1045e: 469a movne sl, r3
* @param font_p pointer to a font
* @return the height of a font
*/
static inline lv_coord_t lv_font_get_line_height(const lv_font_t * font_p)
{
return font_p->line_height;
10460: f9b2 3008 ldrsh.w r3, [r2, #8]
10464: 9306 str r3, [sp, #24]
uint16_t letter_height = lv_font_get_line_height(font);
10466: 8913 ldrh r3, [r2, #8]
10468: 9305 str r3, [sp, #20]
if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) {
1046a: 445b add r3, fp
1046c: 9307 str r3, [sp, #28]
while(text[line_start] != '\0') {
1046e: 9b03 ldr r3, [sp, #12]
10470: eb03 0905 add.w r9, r3, r5
10474: 5d5b ldrb r3, [r3, r5]
10476: b9a3 cbnz r3, 104a2 <_lv_txt_get_size+0x76>
if((line_start != 0) && (text[line_start - 1] == '\n' || text[line_start - 1] == '\r')) {
10478: b155 cbz r5, 10490 <_lv_txt_get_size+0x64>
1047a: f819 3c01 ldrb.w r3, [r9, #-1]
1047e: 2b0a cmp r3, #10
10480: d001 beq.n 10486 <_lv_txt_get_size+0x5a>
10482: 2b0d cmp r3, #13
10484: d104 bne.n 10490 <_lv_txt_get_size+0x64>
size_res->y += letter_height + line_space;
10486: 9b05 ldr r3, [sp, #20]
10488: 8862 ldrh r2, [r4, #2]
1048a: 445b add r3, fp
1048c: 4413 add r3, r2
1048e: 8063 strh r3, [r4, #2]
if(size_res->y == 0)
10490: f9b4 3002 ldrsh.w r3, [r4, #2]
10494: 2b00 cmp r3, #0
10496: d131 bne.n 104fc <_lv_txt_get_size+0xd0>
size_res->y = letter_height;
10498: 9b06 ldr r3, [sp, #24]
size_res->y -= line_space;
1049a: 8063 strh r3, [r4, #2]
}
1049c: b009 add sp, #36 ; 0x24
1049e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
new_line_start += _lv_txt_get_next_line(&text[line_start], font, letter_space, max_width, flag);
104a2: 9b04 ldr r3, [sp, #16]
104a4: 9300 str r3, [sp, #0]
104a6: 4642 mov r2, r8
104a8: 4653 mov r3, sl
104aa: 4631 mov r1, r6
104ac: 4f15 ldr r7, [pc, #84] ; (10504 <_lv_txt_get_size+0xd8>)
104ae: 4648 mov r0, r9
104b0: 47b8 blx r7
if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) {
104b2: f9b4 3002 ldrsh.w r3, [r4, #2]
104b6: 9a07 ldr r2, [sp, #28]
104b8: 4413 add r3, r2
104ba: f5b3 4f00 cmp.w r3, #32768 ; 0x8000
new_line_start += _lv_txt_get_next_line(&text[line_start], font, letter_space, max_width, flag);
104be: 4601 mov r1, r0
104c0: 4405 add r5, r0
if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) {
104c2: d30b bcc.n 104dc <_lv_txt_get_size+0xb0>
LV_LOG_WARN("lv_txt_get_size: integer overflow while calculating text height");
104c4: 4b10 ldr r3, [pc, #64] ; (10508 <_lv_txt_get_size+0xdc>)
104c6: 4c11 ldr r4, [pc, #68] ; (1050c <_lv_txt_get_size+0xe0>)
104c8: 9312 str r3, [sp, #72] ; 0x48
104ca: 4911 ldr r1, [pc, #68] ; (10510 <_lv_txt_get_size+0xe4>)
104cc: 4b11 ldr r3, [pc, #68] ; (10514 <_lv_txt_get_size+0xe8>)
104ce: 2271 movs r2, #113 ; 0x71
104d0: 2002 movs r0, #2
104d2: 46a4 mov ip, r4
}
104d4: b009 add sp, #36 ; 0x24
104d6: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
LV_LOG_WARN("lv_txt_get_size: integer overflow while calculating text height");
104da: 4760 bx ip
size_res->y += line_space;
104dc: 8063 strh r3, [r4, #2]
lv_coord_t act_line_length = _lv_txt_get_width(&text[line_start], new_line_start - line_start, font, letter_space,
104de: 9b04 ldr r3, [sp, #16]
104e0: 9300 str r3, [sp, #0]
104e2: 4648 mov r0, r9
104e4: 4643 mov r3, r8
104e6: f8df 9030 ldr.w r9, [pc, #48] ; 10518 <_lv_txt_get_size+0xec>
104ea: 4632 mov r2, r6
104ec: 47c8 blx r9
size_res->x = LV_MATH_MAX(act_line_length, size_res->x);
104ee: f9b4 3000 ldrsh.w r3, [r4]
104f2: 4298 cmp r0, r3
104f4: bfb8 it lt
104f6: 4618 movlt r0, r3
104f8: 8020 strh r0, [r4, #0]
line_start = new_line_start;
104fa: e7b8 b.n 1046e <_lv_txt_get_size+0x42>
size_res->y -= line_space;
104fc: eba3 030b sub.w r3, r3, fp
10500: e7cb b.n 1049a <_lv_txt_get_size+0x6e>
10502: bf00 nop
10504: 00010255 .word 0x00010255
10508: 0002bca1 .word 0x0002bca1
1050c: 0000eb79 .word 0x0000eb79
10510: 0002bc72 .word 0x0002bc72
10514: 0002bce1 .word 0x0002bce1
10518: 000101ad .word 0x000101ad
0001051c <_lv_utils_bsearch>:
*
* @return a pointer to a matching item, or NULL if none exists.
*/
void * _lv_utils_bsearch(const void * key, const void * base, uint32_t n, uint32_t size,
int32_t (*cmp)(const void * pRef, const void * pElement))
{
1051c: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
10520: 9d08 ldr r5, [sp, #32]
10522: 4680 mov r8, r0
10524: 460f mov r7, r1
10526: 4614 mov r4, r2
10528: 4699 mov r9, r3
const char * middle;
int32_t c;
for(middle = base; n != 0;) {
1052a: b90c cbnz r4, 10530 <_lv_utils_bsearch+0x14>
}
else {
return (char *)middle;
}
}
return NULL;
1052c: 4626 mov r6, r4
1052e: e012 b.n 10556 <_lv_utils_bsearch+0x3a>
middle += (n / 2) * size;
10530: ea4f 0a54 mov.w sl, r4, lsr #1
10534: fb09 760a mla r6, r9, sl, r7
if((c = (*cmp)(key, middle)) > 0) {
10538: 4631 mov r1, r6
1053a: 4640 mov r0, r8
1053c: 47a8 blx r5
1053e: 2800 cmp r0, #0
10540: dd08 ble.n 10554 <_lv_utils_bsearch+0x38>
n = (n / 2) - ((n & 1) == 0);
10542: 43e4 mvns r4, r4
10544: f004 0401 and.w r4, r4, #1
10548: ebaa 0a04 sub.w sl, sl, r4
base = (middle += size);
1054c: eb06 0709 add.w r7, r6, r9
{
10550: 4654 mov r4, sl
10552: e7ea b.n 1052a <_lv_utils_bsearch+0xe>
else if(c < 0) {
10554: d1fc bne.n 10550 <_lv_utils_bsearch+0x34>
}
10556: 4630 mov r0, r6
10558: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
0001055c <lv_theme_set_act>:
* From now, all the created objects will use styles from this theme by default
* @param th pointer to theme (return value of: 'lv_theme_init_xxx()')
*/
void lv_theme_set_act(lv_theme_t * th)
{
act_theme = th;
1055c: 4b01 ldr r3, [pc, #4] ; (10564 <lv_theme_set_act+0x8>)
1055e: 6018 str r0, [r3, #0]
}
10560: 4770 bx lr
10562: bf00 nop
10564: 200057a0 .word 0x200057a0
00010568 <lv_theme_get_font_normal>:
* Get the normal font of the theme
* @return pointer to the font
*/
const lv_font_t * lv_theme_get_font_normal(void)
{
return act_theme->font_normal;
10568: 4b01 ldr r3, [pc, #4] ; (10570 <lv_theme_get_font_normal+0x8>)
1056a: 681b ldr r3, [r3, #0]
}
1056c: 68d8 ldr r0, [r3, #12]
1056e: 4770 bx lr
10570: 200057a0 .word 0x200057a0
00010574 <lv_theme_apply>:
return act_theme->flags;
}
void lv_theme_apply(lv_obj_t * obj, lv_theme_style_t name)
{
act_theme->apply_xcb(obj, name);
10574: 4b01 ldr r3, [pc, #4] ; (1057c <lv_theme_apply+0x8>)
10576: 681b ldr r3, [r3, #0]
10578: 681b ldr r3, [r3, #0]
1057a: 4718 bx r3
1057c: 200057a0 .word 0x200057a0
00010580 <lv_color_hex3>:
return lv_color_make((uint8_t)((c >> 16) & 0xFF), (uint8_t)((c >> 8) & 0xFF), (uint8_t)(c & 0xFF));
}
static inline lv_color_t lv_color_hex3(uint32_t c)
{
return lv_color_make((uint8_t)(((c >> 4) & 0xF0) | ((c >> 8) & 0xF)), (uint8_t)((c & 0xF0) | ((c & 0xF0) >> 4)),
10580: f3c0 1303 ubfx r3, r0, #4, #4
{
10584: b510 push {r4, lr}
return lv_color_make((uint8_t)(((c >> 4) & 0xF0) | ((c >> 8) & 0xF)), (uint8_t)((c & 0xF0) | ((c & 0xF0) >> 4)),
10586: f000 01f0 and.w r1, r0, #240 ; 0xf0
1058a: b2c4 uxtb r4, r0
1058c: f3c0 1207 ubfx r2, r0, #4, #8
return LV_COLOR_MAKE(r, g, b);
10590: 4319 orrs r1, r3
(uint8_t)((c & 0xF) | ((c & 0xF) << 4)));
10592: f000 030f and.w r3, r0, #15
return lv_color_make((uint8_t)(((c >> 4) & 0xF0) | ((c >> 8) & 0xF)), (uint8_t)((c & 0xF0) | ((c & 0xF0) >> 4)),
10596: ea43 1304 orr.w r3, r3, r4, lsl #4
1059a: f022 020f bic.w r2, r2, #15
1059e: 0889 lsrs r1, r1, #2
105a0: ea42 2010 orr.w r0, r2, r0, lsr #8
105a4: f3c3 03c4 ubfx r3, r3, #3, #5
105a8: ea43 1341 orr.w r3, r3, r1, lsl #5
105ac: f3c0 00c4 ubfx r0, r0, #3, #5
}
105b0: ea43 20c0 orr.w r0, r3, r0, lsl #11
105b4: bd10 pop {r4, pc}
...
000105b8 <theme_apply>:
static void theme_apply(lv_obj_t * obj, lv_theme_style_t name)
{
lv_style_list_t * list;
switch(name) {
105b8: 3901 subs r1, #1
{
105ba: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
105be: 4604 mov r4, r0
switch(name) {
105c0: 2927 cmp r1, #39 ; 0x27
105c2: d834 bhi.n 1062e <theme_apply+0x76>
105c4: e8df f011 tbh [pc, r1, lsl #1]
105c8: 00390028 .word 0x00390028
105cc: 008200bb .word 0x008200bb
105d0: 004f0044 .word 0x004f0044
105d4: 00b70347 .word 0x00b70347
105d8: 0256010f .word 0x0256010f
105dc: 036f0039 .word 0x036f0039
105e0: 03950220 .word 0x03950220
105e4: 00b700b7 .word 0x00b700b7
105e8: 00b70071 .word 0x00b70071
105ec: 00b70151 .word 0x00b70151
105f0: 021501f7 .word 0x021501f7
105f4: 012a0385 .word 0x012a0385
105f8: 01ef013b .word 0x01ef013b
105fc: 01d30166 .word 0x01d30166
10600: 031b00eb .word 0x031b00eb
10604: 00d70337 .word 0x00d70337
10608: 02840098 .word 0x02840098
1060c: 01b9018e .word 0x01b9018e
10610: 01c702f0 .word 0x01c702f0
10614: 02e502be .word 0x02e502be
case LV_THEME_NONE:
break;
case LV_THEME_SCR:
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
10618: 4b99 ldr r3, [pc, #612] ; (10880 <theme_apply+0x2c8>)
1061a: 2100 movs r1, #0
1061c: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN);
1061e: 4b99 ldr r3, [pc, #612] ; (10884 <theme_apply+0x2cc>)
10620: 2100 movs r1, #0
10622: 4620 mov r0, r4
10624: 4798 blx r3
_lv_style_list_add_style(list, &styles->scr);
10626: 4b98 ldr r3, [pc, #608] ; (10888 <theme_apply+0x2d0>)
10628: 6819 ldr r1, [r3, #0]
break;
case LV_THEME_OBJ:
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN);
_lv_style_list_add_style(list, &styles->bg);
1062a: 4b98 ldr r3, [pc, #608] ; (1088c <theme_apply+0x2d4>)
1062c: 4798 blx r3
#endif
default:
break;
}
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
1062e: 4620 mov r0, r4
10630: 4b97 ldr r3, [pc, #604] ; (10890 <theme_apply+0x2d8>)
}
10632: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL);
10636: 21ff movs r1, #255 ; 0xff
10638: 4718 bx r3
lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN);
1063a: 4b91 ldr r3, [pc, #580] ; (10880 <theme_apply+0x2c8>)
1063c: 2100 movs r1, #0
1063e: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN);
10640: 4b90 ldr r3, [pc, #576] ; (10884 <theme_apply+0x2cc>)
10642: 2100 movs r1, #0
10644: 4620 mov r0, r4
10646: 4798 blx r3
_lv_style_list_add_style(list, &styles->bg);
10648: 4b8f ldr r3, [pc, #572] ; (10888 <theme_apply+0x2d0>)
1064a: 6819 ldr r1, [r3, #0]
1064c: 3104 adds r1, #4
1064e: e7ec b.n 1062a <theme_apply+0x72>
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
10650: 4b8b ldr r3, [pc, #556] ; (10880 <theme_apply+0x2c8>)
10652: 2100 movs r1, #0
10654: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
10656: 4b8b ldr r3, [pc, #556] ; (10884 <theme_apply+0x2cc>)
10658: 2100 movs r1, #0
1065a: 4620 mov r0, r4
1065c: 4798 blx r3
_lv_style_list_add_style(list, &styles->btn);
1065e: 4b8a ldr r3, [pc, #552] ; (10888 <theme_apply+0x2d0>)
10660: 6819 ldr r1, [r3, #0]
10662: 3110 adds r1, #16
10664: e7e1 b.n 1062a <theme_apply+0x72>
_lv_style_list_add_style(list, &styles->bg);
10666: 4e88 ldr r6, [pc, #544] ; (10888 <theme_apply+0x2d0>)
lv_obj_clean_style_list(obj, LV_BTNMATRIX_PART_BG);
10668: f8df 9214 ldr.w r9, [pc, #532] ; 10880 <theme_apply+0x2c8>
list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG);
1066c: f8df 8214 ldr.w r8, [pc, #532] ; 10884 <theme_apply+0x2cc>
_lv_style_list_add_style(list, &styles->bg);
10670: 4d86 ldr r5, [pc, #536] ; (1088c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_BTNMATRIX_PART_BG);
10672: 2100 movs r1, #0
10674: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG);
10676: 2100 movs r1, #0
10678: 4620 mov r0, r4
1067a: 47c0 blx r8
_lv_style_list_add_style(list, &styles->bg);
1067c: 6831 ldr r1, [r6, #0]
1067e: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG);
10680: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->bg);
10682: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
10684: 6831 ldr r1, [r6, #0]
10686: 3118 adds r1, #24
_lv_style_list_add_style(list, &styles->kb_bg);
10688: 4638 mov r0, r7
1068a: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BTN);
1068c: 2101 movs r1, #1
1068e: 4620 mov r0, r4
10690: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BTN);
10692: 2101 movs r1, #1
10694: 4620 mov r0, r4
10696: 47c0 blx r8
_lv_style_list_add_style(list, &styles->bg);
10698: 6831 ldr r1, [r6, #0]
1069a: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BTN);
1069c: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->bg);
1069e: 47a8 blx r5
_lv_style_list_add_style(list, &styles->bg_click);
106a0: 6831 ldr r1, [r6, #0]
106a2: 4638 mov r0, r7
106a4: 3108 adds r1, #8
_lv_style_list_add_style(list, &styles->gauge_needle);
106a6: 47a8 blx r5
break;
106a8: e7c1 b.n 1062e <theme_apply+0x76>
lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BG);
106aa: 2100 movs r1, #0
106ac: f8df 91d0 ldr.w r9, [pc, #464] ; 10880 <theme_apply+0x2c8>
list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BG);
106b0: f8df 81d0 ldr.w r8, [pc, #464] ; 10884 <theme_apply+0x2cc>
_lv_style_list_add_style(list, &styles->scr);
106b4: 4e74 ldr r6, [pc, #464] ; (10888 <theme_apply+0x2d0>)
106b6: 4d75 ldr r5, [pc, #468] ; (1088c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BG);
106b8: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BG);
106ba: 2100 movs r1, #0
106bc: 4620 mov r0, r4
106be: 47c0 blx r8
_lv_style_list_add_style(list, &styles->scr);
106c0: 6831 ldr r1, [r6, #0]
list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BG);
106c2: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->scr);
106c4: 47a8 blx r5
_lv_style_list_add_style(list, &styles->kb_bg);
106c6: 6831 ldr r1, [r6, #0]
106c8: 3168 adds r1, #104 ; 0x68
106ca: e7dd b.n 10688 <theme_apply+0xd0>
lv_obj_clean_style_list(obj, LV_BAR_PART_BG);
106cc: f8df 81b0 ldr.w r8, [pc, #432] ; 10880 <theme_apply+0x2c8>
_lv_style_list_add_style(list, &styles->bar_bg);
106d0: 4e6d ldr r6, [pc, #436] ; (10888 <theme_apply+0x2d0>)
list = lv_obj_get_style_list(obj, LV_BAR_PART_BG);
106d2: 4f6c ldr r7, [pc, #432] ; (10884 <theme_apply+0x2cc>)
_lv_style_list_add_style(list, &styles->bar_bg);
106d4: 4d6d ldr r5, [pc, #436] ; (1088c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_BAR_PART_BG);
106d6: 2100 movs r1, #0
106d8: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_BAR_PART_BG);
106da: 2100 movs r1, #0
106dc: 4620 mov r0, r4
106de: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_bg);
106e0: 6831 ldr r1, [r6, #0]
106e2: 3124 adds r1, #36 ; 0x24
106e4: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_BAR_PART_INDIC);
106e6: 2101 movs r1, #1
106e8: 4620 mov r0, r4
106ea: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_BAR_PART_INDIC);
106ec: 2101 movs r1, #1
106ee: 4620 mov r0, r4
106f0: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_indic);
106f2: 6831 ldr r1, [r6, #0]
106f4: 3128 adds r1, #40 ; 0x28
106f6: e7d6 b.n 106a6 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_SWITCH_PART_BG);
106f8: f8df 8184 ldr.w r8, [pc, #388] ; 10880 <theme_apply+0x2c8>
_lv_style_list_add_style(list, &styles->bar_bg);
106fc: 4e62 ldr r6, [pc, #392] ; (10888 <theme_apply+0x2d0>)
list = lv_obj_get_style_list(obj, LV_SWITCH_PART_BG);
106fe: 4f61 ldr r7, [pc, #388] ; (10884 <theme_apply+0x2cc>)
_lv_style_list_add_style(list, &styles->bar_bg);
10700: 4d62 ldr r5, [pc, #392] ; (1088c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_SWITCH_PART_BG);
10702: 2100 movs r1, #0
10704: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SWITCH_PART_BG);
10706: 2100 movs r1, #0
10708: 4620 mov r0, r4
1070a: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_bg);
1070c: 6831 ldr r1, [r6, #0]
1070e: 3124 adds r1, #36 ; 0x24
10710: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SWITCH_PART_INDIC);
10712: 2101 movs r1, #1
10714: 4620 mov r0, r4
10716: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SWITCH_PART_INDIC);
10718: 2101 movs r1, #1
1071a: 4620 mov r0, r4
1071c: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_indic);
1071e: 6831 ldr r1, [r6, #0]
10720: 3128 adds r1, #40 ; 0x28
10722: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SWITCH_PART_KNOB);
10724: 2102 movs r1, #2
10726: 4620 mov r0, r4
10728: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SWITCH_PART_KNOB);
1072a: 2102 movs r1, #2
1072c: 4620 mov r0, r4
1072e: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sw_knob);
10730: 6831 ldr r1, [r6, #0]
10732: 319c adds r1, #156 ; 0x9c
10734: e7b7 b.n 106a6 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_CANVAS_PART_MAIN);
10736: 4b52 ldr r3, [pc, #328] ; (10880 <theme_apply+0x2c8>)
10738: 2100 movs r1, #0
1073a: 4798 blx r3
break;
1073c: e777 b.n 1062e <theme_apply+0x76>
lv_obj_clean_style_list(obj, LV_ARC_PART_BG);
1073e: f8df 9140 ldr.w r9, [pc, #320] ; 10880 <theme_apply+0x2c8>
_lv_style_list_add_style(list, &styles->bg);
10742: 4e51 ldr r6, [pc, #324] ; (10888 <theme_apply+0x2d0>)
list = lv_obj_get_style_list(obj, LV_ARC_PART_BG);
10744: f8df 813c ldr.w r8, [pc, #316] ; 10884 <theme_apply+0x2cc>
_lv_style_list_add_style(list, &styles->bg);
10748: 4d50 ldr r5, [pc, #320] ; (1088c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_ARC_PART_BG);
1074a: 2100 movs r1, #0
1074c: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_ARC_PART_BG);
1074e: 2100 movs r1, #0
10750: 4620 mov r0, r4
10752: 47c0 blx r8
_lv_style_list_add_style(list, &styles->bg);
10754: 6831 ldr r1, [r6, #0]
10756: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_ARC_PART_BG);
10758: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->bg);
1075a: 47a8 blx r5
_lv_style_list_add_style(list, &styles->arc_bg);
1075c: 6831 ldr r1, [r6, #0]
1075e: 4638 mov r0, r7
10760: 3120 adds r1, #32
10762: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_ARC_PART_INDIC);
10764: 2101 movs r1, #1
10766: 4620 mov r0, r4
10768: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_ARC_PART_INDIC);
1076a: 2101 movs r1, #1
1076c: 4620 mov r0, r4
1076e: 47c0 blx r8
_lv_style_list_add_style(list, &styles->arc_indic);
10770: 6831 ldr r1, [r6, #0]
10772: 311c adds r1, #28
10774: e797 b.n 106a6 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_SPINNER_PART_BG);
10776: f8df 8108 ldr.w r8, [pc, #264] ; 10880 <theme_apply+0x2c8>
_lv_style_list_add_style(list, &styles->arc_bg);
1077a: 4e43 ldr r6, [pc, #268] ; (10888 <theme_apply+0x2d0>)
list = lv_obj_get_style_list(obj, LV_SPINNER_PART_BG);
1077c: 4f41 ldr r7, [pc, #260] ; (10884 <theme_apply+0x2cc>)
_lv_style_list_add_style(list, &styles->arc_bg);
1077e: 4d43 ldr r5, [pc, #268] ; (1088c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_SPINNER_PART_BG);
10780: 2100 movs r1, #0
10782: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SPINNER_PART_BG);
10784: 2100 movs r1, #0
10786: 4620 mov r0, r4
10788: 47b8 blx r7
_lv_style_list_add_style(list, &styles->arc_bg);
1078a: 6831 ldr r1, [r6, #0]
1078c: 3120 adds r1, #32
1078e: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SPINNER_PART_INDIC);
10790: 4620 mov r0, r4
10792: 2101 movs r1, #1
10794: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SPINNER_PART_INDIC);
10796: 2101 movs r1, #1
10798: 4620 mov r0, r4
1079a: 47b8 blx r7
1079c: e7e8 b.n 10770 <theme_apply+0x1b8>
_lv_style_list_add_style(list, &styles->bar_bg);
1079e: 4e3a ldr r6, [pc, #232] ; (10888 <theme_apply+0x2d0>)
lv_obj_clean_style_list(obj, LV_SLIDER_PART_BG);
107a0: f8df 80dc ldr.w r8, [pc, #220] ; 10880 <theme_apply+0x2c8>
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG);
107a4: 4f37 ldr r7, [pc, #220] ; (10884 <theme_apply+0x2cc>)
_lv_style_list_add_style(list, &styles->bar_bg);
107a6: 4d39 ldr r5, [pc, #228] ; (1088c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_SLIDER_PART_BG);
107a8: 2100 movs r1, #0
107aa: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG);
107ac: 2100 movs r1, #0
107ae: 4620 mov r0, r4
107b0: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_bg);
107b2: 6831 ldr r1, [r6, #0]
107b4: 3124 adds r1, #36 ; 0x24
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG);
107b6: 4681 mov r9, r0
_lv_style_list_add_style(list, &styles->bar_bg);
107b8: 47a8 blx r5
_lv_style_list_add_style(list, &styles->slider_bg);
107ba: 6831 ldr r1, [r6, #0]
107bc: 4648 mov r0, r9
107be: 3194 adds r1, #148 ; 0x94
107c0: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SLIDER_PART_INDIC);
107c2: 2101 movs r1, #1
107c4: 4620 mov r0, r4
107c6: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_INDIC);
107c8: 2101 movs r1, #1
107ca: 4620 mov r0, r4
107cc: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bar_indic);
107ce: 6831 ldr r1, [r6, #0]
107d0: 3128 adds r1, #40 ; 0x28
107d2: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SLIDER_PART_KNOB);
107d4: 2102 movs r1, #2
107d6: 4620 mov r0, r4
107d8: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_SLIDER_PART_KNOB);
107da: 2102 movs r1, #2
107dc: 4620 mov r0, r4
107de: 47b8 blx r7
_lv_style_list_add_style(list, &styles->slider_knob);
107e0: 6831 ldr r1, [r6, #0]
107e2: 3190 adds r1, #144 ; 0x90
107e4: e75f b.n 106a6 <theme_apply+0xee>
_lv_style_list_add_style(list, &styles->cb_bg);
107e6: 4f28 ldr r7, [pc, #160] ; (10888 <theme_apply+0x2d0>)
lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BG);
107e8: f8df 8094 ldr.w r8, [pc, #148] ; 10880 <theme_apply+0x2c8>
list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BG);
107ec: 4e25 ldr r6, [pc, #148] ; (10884 <theme_apply+0x2cc>)
_lv_style_list_add_style(list, &styles->cb_bg);
107ee: 4d27 ldr r5, [pc, #156] ; (1088c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BG);
107f0: 2100 movs r1, #0
107f2: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BG);
107f4: 2100 movs r1, #0
107f6: 4620 mov r0, r4
107f8: 47b0 blx r6
_lv_style_list_add_style(list, &styles->cb_bg);
107fa: 6839 ldr r1, [r7, #0]
107fc: 314c adds r1, #76 ; 0x4c
107fe: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BULLET);
10800: 2140 movs r1, #64 ; 0x40
10802: 4620 mov r0, r4
10804: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BULLET);
10806: 2140 movs r1, #64 ; 0x40
10808: 4620 mov r0, r4
1080a: 47b0 blx r6
_lv_style_list_add_style(list, &styles->btn);
1080c: 6839 ldr r1, [r7, #0]
1080e: 3110 adds r1, #16
list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BULLET);
10810: 4606 mov r6, r0
_lv_style_list_add_style(list, &styles->btn);
10812: 47a8 blx r5
_lv_style_list_add_style(list, &styles->cb_bullet);
10814: 6839 ldr r1, [r7, #0]
10816: 4630 mov r0, r6
10818: 3150 adds r1, #80 ; 0x50
1081a: e744 b.n 106a6 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BG);
1081c: 4b18 ldr r3, [pc, #96] ; (10880 <theme_apply+0x2c8>)
_lv_style_list_add_style(list, &styles->bg);
1081e: 4f1a ldr r7, [pc, #104] ; (10888 <theme_apply+0x2d0>)
10820: 4e1a ldr r6, [pc, #104] ; (1088c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BG);
10822: 2100 movs r1, #0
10824: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BG);
10826: 4b17 ldr r3, [pc, #92] ; (10884 <theme_apply+0x2cc>)
10828: 2100 movs r1, #0
1082a: 4620 mov r0, r4
1082c: 4798 blx r3
_lv_style_list_add_style(list, &styles->bg);
1082e: 6839 ldr r1, [r7, #0]
10830: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BG);
10832: 4605 mov r5, r0
_lv_style_list_add_style(list, &styles->bg);
10834: 47b0 blx r6
_lv_style_list_add_style(list, &styles->mbox_bg);
10836: 6839 ldr r1, [r7, #0]
10838: 317c adds r1, #124 ; 0x7c
_lv_style_list_add_style(list, &styles->lmeter);
1083a: 4628 mov r0, r5
1083c: e07b b.n 10936 <theme_apply+0x37e>
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN_BG);
1083e: f8df 8040 ldr.w r8, [pc, #64] ; 10880 <theme_apply+0x2c8>
_lv_style_list_add_style(list, &styles->pad_small);
10842: 4e11 ldr r6, [pc, #68] ; (10888 <theme_apply+0x2d0>)
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN_BG);
10844: 4f0f ldr r7, [pc, #60] ; (10884 <theme_apply+0x2cc>)
_lv_style_list_add_style(list, &styles->pad_small);
10846: 4d11 ldr r5, [pc, #68] ; (1088c <theme_apply+0x2d4>)
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN_BG);
10848: 2140 movs r1, #64 ; 0x40
1084a: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN_BG);
1084c: 2140 movs r1, #64 ; 0x40
1084e: 4620 mov r0, r4
10850: 47b8 blx r7
_lv_style_list_add_style(list, &styles->pad_small);
10852: 6831 ldr r1, [r6, #0]
10854: 3118 adds r1, #24
10856: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN);
10858: 2141 movs r1, #65 ; 0x41
1085a: 4620 mov r0, r4
1085c: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN);
1085e: 2141 movs r1, #65 ; 0x41
10860: 4620 mov r0, r4
10862: 47b8 blx r7
_lv_style_list_add_style(list, &styles->btn);
10864: 6831 ldr r1, [r6, #0]
10866: 3110 adds r1, #16
10868: e71d b.n 106a6 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_LED_PART_MAIN);
1086a: 4b05 ldr r3, [pc, #20] ; (10880 <theme_apply+0x2c8>)
1086c: 2100 movs r1, #0
1086e: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_LED_PART_MAIN);
10870: 4b04 ldr r3, [pc, #16] ; (10884 <theme_apply+0x2cc>)
10872: 2100 movs r1, #0
10874: 4620 mov r0, r4
10876: 4798 blx r3
_lv_style_list_add_style(list, &styles->led);
10878: 4b03 ldr r3, [pc, #12] ; (10888 <theme_apply+0x2d0>)
1087a: 6819 ldr r1, [r3, #0]
1087c: 316c adds r1, #108 ; 0x6c
1087e: e6d4 b.n 1062a <theme_apply+0x72>
10880: 000027cd .word 0x000027cd
10884: 00002711 .word 0x00002711
10888: 200057a4 .word 0x200057a4
1088c: 0000589d .word 0x0000589d
10890: 00003015 .word 0x00003015
lv_obj_clean_style_list(obj, LV_PAGE_PART_BG);
10894: f8df 82a8 ldr.w r8, [pc, #680] ; 10b40 <theme_apply+0x588>
_lv_style_list_add_style(list, &styles->bg);
10898: 4ea6 ldr r6, [pc, #664] ; (10b34 <theme_apply+0x57c>)
list = lv_obj_get_style_list(obj, LV_PAGE_PART_BG);
1089a: 4fa7 ldr r7, [pc, #668] ; (10b38 <theme_apply+0x580>)
_lv_style_list_add_style(list, &styles->bg);
1089c: 4da7 ldr r5, [pc, #668] ; (10b3c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_PAGE_PART_BG);
1089e: 2100 movs r1, #0
108a0: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_PAGE_PART_BG);
108a2: 2100 movs r1, #0
108a4: 4620 mov r0, r4
108a6: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
108a8: 6831 ldr r1, [r6, #0]
108aa: 3104 adds r1, #4
108ac: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_PAGE_PART_SCROLLABLE);
108ae: 2140 movs r1, #64 ; 0x40
108b0: 4620 mov r0, r4
108b2: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_PAGE_PART_SCROLLABLE);
108b4: 2140 movs r1, #64 ; 0x40
108b6: 4620 mov r0, r4
108b8: 47b8 blx r7
_lv_style_list_add_style(list, &styles->pad_inner);
108ba: 6831 ldr r1, [r6, #0]
108bc: 3114 adds r1, #20
_lv_style_list_add_style(list, &styles->scr);
108be: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_SCROLLBAR);
108c0: 2101 movs r1, #1
108c2: 4620 mov r0, r4
108c4: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_SCROLLBAR);
108c6: 2101 movs r1, #1
108c8: 4620 mov r0, r4
108ca: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sb);
108cc: 6831 ldr r1, [r6, #0]
108ce: 3180 adds r1, #128 ; 0x80
108d0: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_EDGE_FLASH);
108d2: 2102 movs r1, #2
108d4: 4620 mov r0, r4
108d6: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_EDGE_FLASH);
108d8: 2102 movs r1, #2
108da: 4620 mov r0, r4
108dc: 47b8 blx r7
_lv_style_list_add_style(list, &styles->edge_flash);
108de: 6831 ldr r1, [r6, #0]
108e0: 3184 adds r1, #132 ; 0x84
108e2: e6e0 b.n 106a6 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG);
108e4: 4d96 ldr r5, [pc, #600] ; (10b40 <theme_apply+0x588>)
_lv_style_list_add_style(list, &styles->scr);
108e6: 4f93 ldr r7, [pc, #588] ; (10b34 <theme_apply+0x57c>)
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_BG);
108e8: f8df 824c ldr.w r8, [pc, #588] ; 10b38 <theme_apply+0x580>
_lv_style_list_add_style(list, &styles->scr);
108ec: 4e93 ldr r6, [pc, #588] ; (10b3c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG);
108ee: 2100 movs r1, #0
108f0: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_BG);
108f2: 2100 movs r1, #0
108f4: 4620 mov r0, r4
108f6: 47c0 blx r8
_lv_style_list_add_style(list, &styles->scr);
108f8: 6839 ldr r1, [r7, #0]
108fa: 47b0 blx r6
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG_SCRLLABLE);
108fc: 2140 movs r1, #64 ; 0x40
108fe: 4620 mov r0, r4
10900: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_TAB_BG);
10902: 2141 movs r1, #65 ; 0x41
10904: 4620 mov r0, r4
10906: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_TAB_BG);
10908: 2141 movs r1, #65 ; 0x41
1090a: 4620 mov r0, r4
1090c: 47c0 blx r8
_lv_style_list_add_style(list, &styles->tabview_btns_bg);
1090e: 6839 ldr r1, [r7, #0]
10910: 31a8 adds r1, #168 ; 0xa8
10912: 47b0 blx r6
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_INDIC);
10914: 2143 movs r1, #67 ; 0x43
10916: 4620 mov r0, r4
10918: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_INDIC);
1091a: 2143 movs r1, #67 ; 0x43
1091c: 4620 mov r0, r4
1091e: 47c0 blx r8
_lv_style_list_add_style(list, &styles->tabview_indic);
10920: 6839 ldr r1, [r7, #0]
10922: 31ac adds r1, #172 ; 0xac
10924: 47b0 blx r6
lv_obj_clean_style_list(obj, LV_TABVIEW_PART_TAB_BTN);
10926: 2142 movs r1, #66 ; 0x42
10928: 4620 mov r0, r4
1092a: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_TAB_BTN);
1092c: 2142 movs r1, #66 ; 0x42
1092e: 4620 mov r0, r4
10930: 47c0 blx r8
_lv_style_list_add_style(list, &styles->tabview_btns);
10932: 6839 ldr r1, [r7, #0]
10934: 31a4 adds r1, #164 ; 0xa4
_lv_style_list_add_style(list, &styles->lmeter);
10936: 47b0 blx r6
break;
10938: e679 b.n 1062e <theme_apply+0x76>
lv_obj_clean_style_list(obj, LV_PAGE_PART_BG);
1093a: 4d81 ldr r5, [pc, #516] ; (10b40 <theme_apply+0x588>)
1093c: 2100 movs r1, #0
1093e: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_PAGE_PART_SCROLLABLE);
10940: 2140 movs r1, #64 ; 0x40
10942: 4620 mov r0, r4
10944: 47a8 blx r5
list = lv_obj_get_style_list(obj, LV_PAGE_PART_SCROLLABLE);
10946: 4b7c ldr r3, [pc, #496] ; (10b38 <theme_apply+0x580>)
10948: 2140 movs r1, #64 ; 0x40
1094a: 4620 mov r0, r4
1094c: 4798 blx r3
_lv_style_list_add_style(list, &styles->tabview_page_scrl);
1094e: 4b79 ldr r3, [pc, #484] ; (10b34 <theme_apply+0x57c>)
10950: 6819 ldr r1, [r3, #0]
10952: 31b0 adds r1, #176 ; 0xb0
10954: e669 b.n 1062a <theme_apply+0x72>
lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_BG);
10956: 2100 movs r1, #0
10958: f8df 81e4 ldr.w r8, [pc, #484] ; 10b40 <theme_apply+0x588>
_lv_style_list_add_style(list, &styles->scr);
1095c: 4e75 ldr r6, [pc, #468] ; (10b34 <theme_apply+0x57c>)
list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_BG);
1095e: 4f76 ldr r7, [pc, #472] ; (10b38 <theme_apply+0x580>)
_lv_style_list_add_style(list, &styles->scr);
10960: 4d76 ldr r5, [pc, #472] ; (10b3c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_BG);
10962: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_BG);
10964: 2100 movs r1, #0
10966: 4620 mov r0, r4
10968: 47b8 blx r7
_lv_style_list_add_style(list, &styles->scr);
1096a: 6831 ldr r1, [r6, #0]
1096c: e7a7 b.n 108be <theme_apply+0x306>
_lv_style_list_add_style(list, &styles->bg);
1096e: 4e71 ldr r6, [pc, #452] ; (10b34 <theme_apply+0x57c>)
lv_obj_clean_style_list(obj, LV_ROLLER_PART_BG);
10970: f8df 91cc ldr.w r9, [pc, #460] ; 10b40 <theme_apply+0x588>
list = lv_obj_get_style_list(obj, LV_ROLLER_PART_BG);
10974: f8df 81c0 ldr.w r8, [pc, #448] ; 10b38 <theme_apply+0x580>
_lv_style_list_add_style(list, &styles->bg);
10978: 4d70 ldr r5, [pc, #448] ; (10b3c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_ROLLER_PART_BG);
1097a: 2100 movs r1, #0
1097c: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_ROLLER_PART_BG);
1097e: 2100 movs r1, #0
10980: 4620 mov r0, r4
10982: 47c0 blx r8
_lv_style_list_add_style(list, &styles->bg);
10984: 6831 ldr r1, [r6, #0]
10986: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_ROLLER_PART_BG);
10988: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->bg);
1098a: 47a8 blx r5
_lv_style_list_add_style(list, &styles->roller_bg);
1098c: 6831 ldr r1, [r6, #0]
1098e: 4638 mov r0, r7
10990: 3188 adds r1, #136 ; 0x88
10992: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_ROLLER_PART_SELECTED);
10994: 2103 movs r1, #3
10996: 4620 mov r0, r4
10998: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_ROLLER_PART_SELECTED);
1099a: 2103 movs r1, #3
1099c: 4620 mov r0, r4
1099e: 47c0 blx r8
_lv_style_list_add_style(list, &styles->roller_sel);
109a0: 6831 ldr r1, [r6, #0]
109a2: 318c adds r1, #140 ; 0x8c
109a4: e67f b.n 106a6 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_OBJMASK_PART_MAIN);
109a6: 4b66 ldr r3, [pc, #408] ; (10b40 <theme_apply+0x588>)
109a8: 2100 movs r1, #0
109aa: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_OBJMASK_PART_MAIN);
109ac: 4b62 ldr r3, [pc, #392] ; (10b38 <theme_apply+0x580>)
109ae: 2100 movs r1, #0
109b0: 4620 mov r0, r4
109b2: 4798 blx r3
break;
109b4: e63b b.n 1062e <theme_apply+0x76>
lv_obj_clean_style_list(obj, LV_LIST_PART_BG);
109b6: 4f62 ldr r7, [pc, #392] ; (10b40 <theme_apply+0x588>)
_lv_style_list_add_style(list, &styles->bg);
109b8: 4e5e ldr r6, [pc, #376] ; (10b34 <theme_apply+0x57c>)
list = lv_obj_get_style_list(obj, LV_LIST_PART_BG);
109ba: f8df 917c ldr.w r9, [pc, #380] ; 10b38 <theme_apply+0x580>
_lv_style_list_add_style(list, &styles->bg);
109be: 4d5f ldr r5, [pc, #380] ; (10b3c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_LIST_PART_BG);
109c0: 2100 movs r1, #0
109c2: 47b8 blx r7
list = lv_obj_get_style_list(obj, LV_LIST_PART_BG);
109c4: 2100 movs r1, #0
109c6: 4620 mov r0, r4
109c8: 47c8 blx r9
_lv_style_list_add_style(list, &styles->bg);
109ca: 6831 ldr r1, [r6, #0]
109cc: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_LIST_PART_BG);
109ce: 4680 mov r8, r0
_lv_style_list_add_style(list, &styles->bg);
109d0: 47a8 blx r5
_lv_style_list_add_style(list, &styles->list_bg);
109d2: 6831 ldr r1, [r6, #0]
109d4: 4640 mov r0, r8
109d6: 3174 adds r1, #116 ; 0x74
109d8: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_LIST_PART_SCROLLABLE);
109da: 2140 movs r1, #64 ; 0x40
109dc: 4620 mov r0, r4
109de: 47b8 blx r7
lv_obj_clean_style_list(obj, LV_LIST_PART_SCROLLBAR);
109e0: 2101 movs r1, #1
109e2: 4620 mov r0, r4
109e4: 47b8 blx r7
list = lv_obj_get_style_list(obj, LV_LIST_PART_SCROLLBAR);
109e6: 2101 movs r1, #1
109e8: 4620 mov r0, r4
109ea: 47c8 blx r9
_lv_style_list_add_style(list, &styles->sb);
109ec: 6831 ldr r1, [r6, #0]
109ee: 3180 adds r1, #128 ; 0x80
109f0: e659 b.n 106a6 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
109f2: 4b53 ldr r3, [pc, #332] ; (10b40 <theme_apply+0x588>)
109f4: 2100 movs r1, #0
109f6: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
109f8: 4b4f ldr r3, [pc, #316] ; (10b38 <theme_apply+0x580>)
109fa: 2100 movs r1, #0
109fc: 4620 mov r0, r4
109fe: 4798 blx r3
_lv_style_list_add_style(list, &styles->list_btn);
10a00: 4b4c ldr r3, [pc, #304] ; (10b34 <theme_apply+0x57c>)
10a02: 6819 ldr r1, [r3, #0]
10a04: 3178 adds r1, #120 ; 0x78
10a06: e610 b.n 1062a <theme_apply+0x72>
_lv_style_list_add_style(list, &styles->bg);
10a08: 4e4a ldr r6, [pc, #296] ; (10b34 <theme_apply+0x57c>)
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_MAIN);
10a0a: f8df 8134 ldr.w r8, [pc, #308] ; 10b40 <theme_apply+0x588>
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN);
10a0e: 4f4a ldr r7, [pc, #296] ; (10b38 <theme_apply+0x580>)
_lv_style_list_add_style(list, &styles->bg);
10a10: 4d4a ldr r5, [pc, #296] ; (10b3c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_MAIN);
10a12: 2100 movs r1, #0
10a14: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN);
10a16: 2100 movs r1, #0
10a18: 4620 mov r0, r4
10a1a: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
10a1c: 6831 ldr r1, [r6, #0]
10a1e: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN);
10a20: 4681 mov r9, r0
_lv_style_list_add_style(list, &styles->bg);
10a22: 47a8 blx r5
_lv_style_list_add_style(list, &styles->bg_click);
10a24: 6831 ldr r1, [r6, #0]
10a26: 4648 mov r0, r9
10a28: 3108 adds r1, #8
10a2a: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
10a2c: 6831 ldr r1, [r6, #0]
10a2e: 4648 mov r0, r9
10a30: 3118 adds r1, #24
10a32: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_LIST);
10a34: 2140 movs r1, #64 ; 0x40
10a36: 4620 mov r0, r4
10a38: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_LIST);
10a3a: 2140 movs r1, #64 ; 0x40
10a3c: 4620 mov r0, r4
10a3e: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
10a40: 6831 ldr r1, [r6, #0]
10a42: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_LIST);
10a44: 4681 mov r9, r0
_lv_style_list_add_style(list, &styles->bg);
10a46: 47a8 blx r5
_lv_style_list_add_style(list, &styles->ddlist_page);
10a48: 6831 ldr r1, [r6, #0]
10a4a: 4648 mov r0, r9
10a4c: 3154 adds r1, #84 ; 0x54
10a4e: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SCROLLBAR);
10a50: 2141 movs r1, #65 ; 0x41
10a52: 4620 mov r0, r4
10a54: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SCROLLBAR);
10a56: 2141 movs r1, #65 ; 0x41
10a58: 4620 mov r0, r4
10a5a: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sb);
10a5c: 6831 ldr r1, [r6, #0]
10a5e: 3180 adds r1, #128 ; 0x80
10a60: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SELECTED);
10a62: 2142 movs r1, #66 ; 0x42
10a64: 4620 mov r0, r4
10a66: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SELECTED);
10a68: 2142 movs r1, #66 ; 0x42
10a6a: 4620 mov r0, r4
10a6c: 47b8 blx r7
_lv_style_list_add_style(list, &styles->ddlist_sel);
10a6e: 6831 ldr r1, [r6, #0]
10a70: 3158 adds r1, #88 ; 0x58
10a72: e618 b.n 106a6 <theme_apply+0xee>
_lv_style_list_add_style(list, &styles->bg);
10a74: 4e2f ldr r6, [pc, #188] ; (10b34 <theme_apply+0x57c>)
lv_obj_clean_style_list(obj, LV_CHART_PART_BG);
10a76: f8df 90c8 ldr.w r9, [pc, #200] ; 10b40 <theme_apply+0x588>
list = lv_obj_get_style_list(obj, LV_CHART_PART_BG);
10a7a: f8df 80bc ldr.w r8, [pc, #188] ; 10b38 <theme_apply+0x580>
_lv_style_list_add_style(list, &styles->bg);
10a7e: 4d2f ldr r5, [pc, #188] ; (10b3c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_CHART_PART_BG);
10a80: 2100 movs r1, #0
10a82: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_CHART_PART_BG);
10a84: 2100 movs r1, #0
10a86: 4620 mov r0, r4
10a88: 47c0 blx r8
_lv_style_list_add_style(list, &styles->bg);
10a8a: 6831 ldr r1, [r6, #0]
10a8c: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_CHART_PART_BG);
10a8e: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->bg);
10a90: 47a8 blx r5
_lv_style_list_add_style(list, &styles->chart_bg);
10a92: 6831 ldr r1, [r6, #0]
10a94: 4638 mov r0, r7
10a96: 3140 adds r1, #64 ; 0x40
10a98: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
10a9a: 6831 ldr r1, [r6, #0]
10a9c: 4638 mov r0, r7
10a9e: 3118 adds r1, #24
10aa0: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CHART_PART_SERIES_BG);
10aa2: 2101 movs r1, #1
10aa4: 4620 mov r0, r4
10aa6: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES_BG);
10aa8: 2101 movs r1, #1
10aaa: 4620 mov r0, r4
10aac: 47c0 blx r8
_lv_style_list_add_style(list, &styles->pad_small);
10aae: 6831 ldr r1, [r6, #0]
10ab0: 3118 adds r1, #24
list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES_BG);
10ab2: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->pad_small);
10ab4: 47a8 blx r5
_lv_style_list_add_style(list, &styles->chart_series_bg);
10ab6: 6831 ldr r1, [r6, #0]
10ab8: 4638 mov r0, r7
10aba: 3144 adds r1, #68 ; 0x44
10abc: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CHART_PART_SERIES);
10abe: 2102 movs r1, #2
10ac0: 4620 mov r0, r4
10ac2: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES);
10ac4: 2102 movs r1, #2
10ac6: 4620 mov r0, r4
10ac8: 47c0 blx r8
_lv_style_list_add_style(list, &styles->chart_series);
10aca: 6831 ldr r1, [r6, #0]
10acc: 3148 adds r1, #72 ; 0x48
10ace: e5ea b.n 106a6 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_TABLE_PART_BG);
10ad0: f8df 806c ldr.w r8, [pc, #108] ; 10b40 <theme_apply+0x588>
_lv_style_list_add_style(list, &styles->bg);
10ad4: 4e17 ldr r6, [pc, #92] ; (10b34 <theme_apply+0x57c>)
list = lv_obj_get_style_list(obj, LV_TABLE_PART_BG);
10ad6: 4f18 ldr r7, [pc, #96] ; (10b38 <theme_apply+0x580>)
_lv_style_list_add_style(list, &styles->bg);
10ad8: 4d18 ldr r5, [pc, #96] ; (10b3c <theme_apply+0x584>)
lv_obj_clean_style_list(obj, LV_TABLE_PART_BG);
10ada: 2100 movs r1, #0
10adc: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TABLE_PART_BG);
10ade: 2100 movs r1, #0
10ae0: 4620 mov r0, r4
10ae2: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
10ae4: 6831 ldr r1, [r6, #0]
10ae6: 3104 adds r1, #4
10ae8: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL1);
10aea: 2101 movs r1, #1
10aec: 4620 mov r0, r4
10aee: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL1);
10af0: 2101 movs r1, #1
10af2: 4620 mov r0, r4
10af4: 47b8 blx r7
_lv_style_list_add_style(list, &styles->table_cell);
10af6: 6831 ldr r1, [r6, #0]
10af8: 31a0 adds r1, #160 ; 0xa0
10afa: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL2);
10afc: 2102 movs r1, #2
10afe: 4620 mov r0, r4
10b00: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL2);
10b02: 2102 movs r1, #2
10b04: 4620 mov r0, r4
10b06: 47b8 blx r7
_lv_style_list_add_style(list, &styles->table_cell);
10b08: 6831 ldr r1, [r6, #0]
10b0a: 31a0 adds r1, #160 ; 0xa0
10b0c: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL3);
10b0e: 2103 movs r1, #3
10b10: 4620 mov r0, r4
10b12: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL3);
10b14: 2103 movs r1, #3
10b16: 4620 mov r0, r4
10b18: 47b8 blx r7
_lv_style_list_add_style(list, &styles->table_cell);
10b1a: 6831 ldr r1, [r6, #0]
10b1c: 31a0 adds r1, #160 ; 0xa0
10b1e: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL4);
10b20: 2104 movs r1, #4
10b22: 4620 mov r0, r4
10b24: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL4);
10b26: 2104 movs r1, #4
10b28: 4620 mov r0, r4
10b2a: 47b8 blx r7
_lv_style_list_add_style(list, &styles->table_cell);
10b2c: 6831 ldr r1, [r6, #0]
10b2e: 31a0 adds r1, #160 ; 0xa0
10b30: e5b9 b.n 106a6 <theme_apply+0xee>
10b32: bf00 nop
10b34: 200057a4 .word 0x200057a4
10b38: 00002711 .word 0x00002711
10b3c: 0000589d .word 0x0000589d
10b40: 000027cd .word 0x000027cd
lv_obj_clean_style_list(obj, LV_WIN_PART_BG);
10b44: f8df 8200 ldr.w r8, [pc, #512] ; 10d48 <theme_apply+0x790>
_lv_style_list_add_style(list, &styles->scr);
10b48: 4e7c ldr r6, [pc, #496] ; (10d3c <theme_apply+0x784>)
list = lv_obj_get_style_list(obj, LV_WIN_PART_BG);
10b4a: 4f7d ldr r7, [pc, #500] ; (10d40 <theme_apply+0x788>)
_lv_style_list_add_style(list, &styles->scr);
10b4c: 4d7d ldr r5, [pc, #500] ; (10d44 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_WIN_PART_BG);
10b4e: 2100 movs r1, #0
10b50: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_WIN_PART_BG);
10b52: 2100 movs r1, #0
10b54: 4620 mov r0, r4
10b56: 47b8 blx r7
_lv_style_list_add_style(list, &styles->scr);
10b58: 6831 ldr r1, [r6, #0]
10b5a: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_WIN_PART_SCROLLBAR);
10b5c: 2142 movs r1, #66 ; 0x42
10b5e: 4620 mov r0, r4
10b60: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_WIN_PART_SCROLLBAR);
10b62: 2142 movs r1, #66 ; 0x42
10b64: 4620 mov r0, r4
10b66: 47b8 blx r7
_lv_style_list_add_style(list, &styles->sb);
10b68: 6831 ldr r1, [r6, #0]
10b6a: 3180 adds r1, #128 ; 0x80
10b6c: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_WIN_PART_CONTENT_SCROLLABLE);
10b6e: 2141 movs r1, #65 ; 0x41
10b70: 4620 mov r0, r4
10b72: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_WIN_PART_CONTENT_SCROLLABLE);
10b74: 2141 movs r1, #65 ; 0x41
10b76: 4620 mov r0, r4
10b78: 47b8 blx r7
_lv_style_list_add_style(list, &styles->tabview_page_scrl);
10b7a: 6831 ldr r1, [r6, #0]
10b7c: 31b0 adds r1, #176 ; 0xb0
10b7e: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_WIN_PART_HEADER);
10b80: 2140 movs r1, #64 ; 0x40
10b82: 4620 mov r0, r4
10b84: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_WIN_PART_HEADER);
10b86: 2140 movs r1, #64 ; 0x40
10b88: 4620 mov r0, r4
10b8a: 47b8 blx r7
_lv_style_list_add_style(list, &styles->tabview_btns_bg);
10b8c: 6831 ldr r1, [r6, #0]
10b8e: 31a8 adds r1, #168 ; 0xa8
10b90: e589 b.n 106a6 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
10b92: 4b6d ldr r3, [pc, #436] ; (10d48 <theme_apply+0x790>)
10b94: 2100 movs r1, #0
10b96: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
10b98: 4b69 ldr r3, [pc, #420] ; (10d40 <theme_apply+0x788>)
10b9a: 2100 movs r1, #0
10b9c: 4620 mov r0, r4
10b9e: 4798 blx r3
_lv_style_list_add_style(list, &styles->tabview_btns);
10ba0: 4b66 ldr r3, [pc, #408] ; (10d3c <theme_apply+0x784>)
10ba2: 6819 ldr r1, [r3, #0]
10ba4: 31a4 adds r1, #164 ; 0xa4
10ba6: e540 b.n 1062a <theme_apply+0x72>
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_BG);
10ba8: f8df 819c ldr.w r8, [pc, #412] ; 10d48 <theme_apply+0x790>
_lv_style_list_add_style(list, &styles->bg);
10bac: 4e63 ldr r6, [pc, #396] ; (10d3c <theme_apply+0x784>)
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_BG);
10bae: 4f64 ldr r7, [pc, #400] ; (10d40 <theme_apply+0x788>)
_lv_style_list_add_style(list, &styles->bg);
10bb0: 4d64 ldr r5, [pc, #400] ; (10d44 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_BG);
10bb2: 2100 movs r1, #0
10bb4: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_BG);
10bb6: 2100 movs r1, #0
10bb8: 4620 mov r0, r4
10bba: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
10bbc: 6831 ldr r1, [r6, #0]
10bbe: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_BG);
10bc0: 4681 mov r9, r0
_lv_style_list_add_style(list, &styles->bg);
10bc2: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
10bc4: 6831 ldr r1, [r6, #0]
10bc6: 4648 mov r0, r9
10bc8: 3118 adds r1, #24
10bca: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_PLACEHOLDER);
10bcc: 4620 mov r0, r4
10bce: 2104 movs r1, #4
10bd0: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_PLACEHOLDER);
10bd2: 2104 movs r1, #4
10bd4: 4620 mov r0, r4
10bd6: 47b8 blx r7
_lv_style_list_add_style(list, &styles->ta_placeholder);
10bd8: 6831 ldr r1, [r6, #0]
10bda: 31b8 adds r1, #184 ; 0xb8
10bdc: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_CURSOR);
10bde: 4620 mov r0, r4
10be0: 2103 movs r1, #3
10be2: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_CURSOR);
10be4: 2103 movs r1, #3
10be6: 4620 mov r0, r4
10be8: 47b8 blx r7
_lv_style_list_add_style(list, &styles->ta_cursor);
10bea: 6831 ldr r1, [r6, #0]
10bec: 31b4 adds r1, #180 ; 0xb4
10bee: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_SCROLLBAR);
10bf0: 4620 mov r0, r4
10bf2: 2101 movs r1, #1
10bf4: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_SCROLLBAR);
10bf6: 2101 movs r1, #1
10bf8: 4620 mov r0, r4
10bfa: 47b8 blx r7
10bfc: e6f6 b.n 109ec <theme_apply+0x434>
_lv_style_list_add_style(list, &styles->bg);
10bfe: 4e4f ldr r6, [pc, #316] ; (10d3c <theme_apply+0x784>)
lv_obj_clean_style_list(obj, LV_SPINBOX_PART_BG);
10c00: f8df 9144 ldr.w r9, [pc, #324] ; 10d48 <theme_apply+0x790>
list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_BG);
10c04: f8df 8138 ldr.w r8, [pc, #312] ; 10d40 <theme_apply+0x788>
_lv_style_list_add_style(list, &styles->bg);
10c08: 4d4e ldr r5, [pc, #312] ; (10d44 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_SPINBOX_PART_BG);
10c0a: 2100 movs r1, #0
10c0c: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_BG);
10c0e: 2100 movs r1, #0
10c10: 4620 mov r0, r4
10c12: 47c0 blx r8
_lv_style_list_add_style(list, &styles->bg);
10c14: 6831 ldr r1, [r6, #0]
10c16: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_BG);
10c18: 4607 mov r7, r0
_lv_style_list_add_style(list, &styles->bg);
10c1a: 47a8 blx r5
_lv_style_list_add_style(list, &styles->pad_small);
10c1c: 6831 ldr r1, [r6, #0]
10c1e: 4638 mov r0, r7
10c20: 3118 adds r1, #24
10c22: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_SPINBOX_PART_CURSOR);
10c24: 2103 movs r1, #3
10c26: 4620 mov r0, r4
10c28: 47c8 blx r9
list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_CURSOR);
10c2a: 2103 movs r1, #3
10c2c: 4620 mov r0, r4
10c2e: 47c0 blx r8
_lv_style_list_add_style(list, &styles->spinbox_cursor);
10c30: 6831 ldr r1, [r6, #0]
10c32: 3198 adds r1, #152 ; 0x98
10c34: e537 b.n 106a6 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
10c36: 4b44 ldr r3, [pc, #272] ; (10d48 <theme_apply+0x790>)
_lv_style_list_add_style(list, &styles->bg);
10c38: 4f40 ldr r7, [pc, #256] ; (10d3c <theme_apply+0x784>)
10c3a: 4e42 ldr r6, [pc, #264] ; (10d44 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN);
10c3c: 2100 movs r1, #0
10c3e: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
10c40: 4b3f ldr r3, [pc, #252] ; (10d40 <theme_apply+0x788>)
10c42: 2100 movs r1, #0
10c44: 4620 mov r0, r4
10c46: 4798 blx r3
_lv_style_list_add_style(list, &styles->bg);
10c48: 6839 ldr r1, [r7, #0]
10c4a: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN);
10c4c: 4605 mov r5, r0
_lv_style_list_add_style(list, &styles->bg);
10c4e: 47b0 blx r6
_lv_style_list_add_style(list, &styles->bg_click);
10c50: 6839 ldr r1, [r7, #0]
10c52: 3108 adds r1, #8
10c54: e5f1 b.n 1083a <theme_apply+0x282>
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_BG);
10c56: f8df 80f0 ldr.w r8, [pc, #240] ; 10d48 <theme_apply+0x790>
_lv_style_list_add_style(list, &styles->bg);
10c5a: 4e38 ldr r6, [pc, #224] ; (10d3c <theme_apply+0x784>)
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_BG);
10c5c: 4f38 ldr r7, [pc, #224] ; (10d40 <theme_apply+0x788>)
_lv_style_list_add_style(list, &styles->bg);
10c5e: 4d39 ldr r5, [pc, #228] ; (10d44 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_BG);
10c60: 2100 movs r1, #0
10c62: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_BG);
10c64: 2100 movs r1, #0
10c66: 4620 mov r0, r4
10c68: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
10c6a: 6831 ldr r1, [r6, #0]
10c6c: 3104 adds r1, #4
10c6e: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_DATE);
10c70: 2103 movs r1, #3
10c72: 4620 mov r0, r4
10c74: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_DATE);
10c76: 2103 movs r1, #3
10c78: 4620 mov r0, r4
10c7a: 47b8 blx r7
_lv_style_list_add_style(list, &styles->calendar_date_nums);
10c7c: 6831 ldr r1, [r6, #0]
10c7e: 312c adds r1, #44 ; 0x2c
10c80: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_HEADER);
10c82: 2101 movs r1, #1
10c84: 4620 mov r0, r4
10c86: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_HEADER);
10c88: 2101 movs r1, #1
10c8a: 4620 mov r0, r4
10c8c: 47b8 blx r7
_lv_style_list_add_style(list, &styles->calendar_header);
10c8e: 6831 ldr r1, [r6, #0]
10c90: 3130 adds r1, #48 ; 0x30
10c92: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CALENDAR_PART_DAY_NAMES);
10c94: 2102 movs r1, #2
10c96: 4620 mov r0, r4
10c98: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_DAY_NAMES);
10c9a: 2102 movs r1, #2
10c9c: 4620 mov r0, r4
10c9e: 47b8 blx r7
_lv_style_list_add_style(list, &styles->calendar_daynames);
10ca0: 6831 ldr r1, [r6, #0]
10ca2: 3134 adds r1, #52 ; 0x34
10ca4: e4ff b.n 106a6 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_CPICKER_PART_MAIN);
10ca6: f8df 80a0 ldr.w r8, [pc, #160] ; 10d48 <theme_apply+0x790>
_lv_style_list_add_style(list, &styles->cpicker_bg);
10caa: 4e24 ldr r6, [pc, #144] ; (10d3c <theme_apply+0x784>)
list = lv_obj_get_style_list(obj, LV_CPICKER_PART_MAIN);
10cac: 4f24 ldr r7, [pc, #144] ; (10d40 <theme_apply+0x788>)
_lv_style_list_add_style(list, &styles->cpicker_bg);
10cae: 4d25 ldr r5, [pc, #148] ; (10d44 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_CPICKER_PART_MAIN);
10cb0: 2100 movs r1, #0
10cb2: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CPICKER_PART_MAIN);
10cb4: 2100 movs r1, #0
10cb6: 4620 mov r0, r4
10cb8: 47b8 blx r7
_lv_style_list_add_style(list, &styles->cpicker_bg);
10cba: 6831 ldr r1, [r6, #0]
10cbc: 3138 adds r1, #56 ; 0x38
10cbe: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_CPICKER_PART_KNOB);
10cc0: 2101 movs r1, #1
10cc2: 4620 mov r0, r4
10cc4: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_CPICKER_PART_KNOB);
10cc6: 2101 movs r1, #1
10cc8: 4620 mov r0, r4
10cca: 47b8 blx r7
_lv_style_list_add_style(list, &styles->cpicker_indic);
10ccc: 6831 ldr r1, [r6, #0]
10cce: 313c adds r1, #60 ; 0x3c
10cd0: e4e9 b.n 106a6 <theme_apply+0xee>
lv_obj_clean_style_list(obj, LV_LINEMETER_PART_MAIN);
10cd2: 4b1d ldr r3, [pc, #116] ; (10d48 <theme_apply+0x790>)
_lv_style_list_add_style(list, &styles->bg);
10cd4: 4f19 ldr r7, [pc, #100] ; (10d3c <theme_apply+0x784>)
10cd6: 4e1b ldr r6, [pc, #108] ; (10d44 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_LINEMETER_PART_MAIN);
10cd8: 2100 movs r1, #0
10cda: 4798 blx r3
list = lv_obj_get_style_list(obj, LV_LINEMETER_PART_MAIN);
10cdc: 4b18 ldr r3, [pc, #96] ; (10d40 <theme_apply+0x788>)
10cde: 2100 movs r1, #0
10ce0: 4620 mov r0, r4
10ce2: 4798 blx r3
_lv_style_list_add_style(list, &styles->bg);
10ce4: 6839 ldr r1, [r7, #0]
10ce6: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_LINEMETER_PART_MAIN);
10ce8: 4605 mov r5, r0
_lv_style_list_add_style(list, &styles->bg);
10cea: 47b0 blx r6
_lv_style_list_add_style(list, &styles->lmeter);
10cec: 6839 ldr r1, [r7, #0]
10cee: 3170 adds r1, #112 ; 0x70
10cf0: e5a3 b.n 1083a <theme_apply+0x282>
_lv_style_list_add_style(list, &styles->bg);
10cf2: 4e12 ldr r6, [pc, #72] ; (10d3c <theme_apply+0x784>)
lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAIN);
10cf4: f8df 8050 ldr.w r8, [pc, #80] ; 10d48 <theme_apply+0x790>
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAIN);
10cf8: 4f11 ldr r7, [pc, #68] ; (10d40 <theme_apply+0x788>)
_lv_style_list_add_style(list, &styles->bg);
10cfa: 4d12 ldr r5, [pc, #72] ; (10d44 <theme_apply+0x78c>)
lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAIN);
10cfc: 2100 movs r1, #0
10cfe: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAIN);
10d00: 2100 movs r1, #0
10d02: 4620 mov r0, r4
10d04: 47b8 blx r7
_lv_style_list_add_style(list, &styles->bg);
10d06: 6831 ldr r1, [r6, #0]
10d08: 3104 adds r1, #4
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAIN);
10d0a: 4681 mov r9, r0
_lv_style_list_add_style(list, &styles->bg);
10d0c: 47a8 blx r5
_lv_style_list_add_style(list, &styles->gauge_main);
10d0e: 6831 ldr r1, [r6, #0]
10d10: 4648 mov r0, r9
10d12: 315c adds r1, #92 ; 0x5c
10d14: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAJOR);
10d16: 2101 movs r1, #1
10d18: 4620 mov r0, r4
10d1a: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAJOR);
10d1c: 2101 movs r1, #1
10d1e: 4620 mov r0, r4
10d20: 47b8 blx r7
_lv_style_list_add_style(list, &styles->gauge_strong);
10d22: 6831 ldr r1, [r6, #0]
10d24: 3160 adds r1, #96 ; 0x60
10d26: 47a8 blx r5
lv_obj_clean_style_list(obj, LV_GAUGE_PART_NEEDLE);
10d28: 2102 movs r1, #2
10d2a: 4620 mov r0, r4
10d2c: 47c0 blx r8
list = lv_obj_get_style_list(obj, LV_GAUGE_PART_NEEDLE);
10d2e: 2102 movs r1, #2
10d30: 4620 mov r0, r4
10d32: 47b8 blx r7
_lv_style_list_add_style(list, &styles->gauge_needle);
10d34: 6831 ldr r1, [r6, #0]
10d36: 3164 adds r1, #100 ; 0x64
10d38: e4b5 b.n 106a6 <theme_apply+0xee>
10d3a: bf00 nop
10d3c: 200057a4 .word 0x200057a4
10d40: 00002711 .word 0x00002711
10d44: 0000589d .word 0x0000589d
10d48: 000027cd .word 0x000027cd
00010d4c <style_init_reset>:
* STATIC FUNCTIONS
**********************/
static void style_init_reset(lv_style_t * style)
{
if(inited) lv_style_reset(style);
10d4c: 4b03 ldr r3, [pc, #12] ; (10d5c <style_init_reset+0x10>)
10d4e: 791b ldrb r3, [r3, #4]
10d50: b10b cbz r3, 10d56 <style_init_reset+0xa>
10d52: 4b03 ldr r3, [pc, #12] ; (10d60 <style_init_reset+0x14>)
else lv_style_init(style);
10d54: 4718 bx r3
10d56: 4b03 ldr r3, [pc, #12] ; (10d64 <style_init_reset+0x18>)
10d58: e7fc b.n 10d54 <style_init_reset+0x8>
10d5a: bf00 nop
10d5c: 200057a4 .word 0x200057a4
10d60: 00005a19 .word 0x00005a19
10d64: 000057b5 .word 0x000057b5
00010d68 <switch_init>:
{
10d68: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
style_init_reset(&styles->sw_knob);
10d6c: 4d3a ldr r5, [pc, #232] ; (10e58 <switch_init+0xf0>)
10d6e: 4b3b ldr r3, [pc, #236] ; (10e5c <switch_init+0xf4>)
10d70: 6828 ldr r0, [r5, #0]
#define _LV_OBJ_STYLE_SET_GET_DECLARE(prop_name, func_name, value_type, style_type, scalar) \
_OBJ_GET_STYLE_##scalar(prop_name, func_name, value_type, style_type) \
_OBJ_SET_STYLE_LOCAL_##scalar(prop_name, func_name, value_type, style_type) \
_OBJ_SET_STYLE_##scalar(prop_name, func_name, value_type, style_type)
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
10d72: 4e3b ldr r6, [pc, #236] ; (10e60 <switch_init+0xf8>)
lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10d74: 4c3b ldr r4, [pc, #236] ; (10e64 <switch_init+0xfc>)
style_init_reset(&styles->sw_knob);
10d76: 309c adds r0, #156 ; 0x9c
10d78: 4798 blx r3
lv_style_set_bg_opa(&styles->sw_knob, LV_STATE_DEFAULT, LV_OPA_COVER);
10d7a: 6828 ldr r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_MAIN_STOP, bg_main_stop, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_STOP, bg_grad_stop, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_DIR, bg_grad_dir, lv_grad_dir_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_COLOR, bg_grad_color, lv_color_t, _color, nonscalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
10d7c: 4b3a ldr r3, [pc, #232] ; (10e68 <switch_init+0x100>)
10d7e: 22ff movs r2, #255 ; 0xff
10d80: 212c movs r1, #44 ; 0x2c
10d82: 309c adds r0, #156 ; 0x9c
10d84: 4798 blx r3
lv_style_set_bg_color(&styles->sw_knob, LV_STATE_DEFAULT, LV_COLOR_WHITE);
10d86: 6828 ldr r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
10d88: 4b38 ldr r3, [pc, #224] ; (10e6c <switch_init+0x104>)
10d8a: 2129 movs r1, #41 ; 0x29
10d8c: 881a ldrh r2, [r3, #0]
10d8e: 4b38 ldr r3, [pc, #224] ; (10e70 <switch_init+0x108>)
10d90: 309c adds r0, #156 ; 0x9c
10d92: 4798 blx r3
lv_style_set_radius(&styles->sw_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
10d94: 6828 ldr r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
10d96: f647 72ff movw r2, #32767 ; 0x7fff
10d9a: 2101 movs r1, #1
10d9c: 309c adds r0, #156 ; 0x9c
10d9e: 47b0 blx r6
lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10da0: 2000 movs r0, #0
10da2: 682f ldr r7, [r5, #0]
10da4: 47a0 blx r4
10da6: 283b cmp r0, #59 ; 0x3b
10da8: f107 079c add.w r7, r7, #156 ; 0x9c
10dac: dd47 ble.n 10e3e <switch_init+0xd6>
10dae: 2000 movs r0, #0
10db0: 47a0 blx r4
10db2: f06f 0327 mvn.w r3, #39 ; 0x27
10db6: f100 0214 add.w r2, r0, #20
10dba: fb92 f2f3 sdiv r2, r2, r3
10dbe: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
10dc0: 4638 mov r0, r7
10dc2: 2110 movs r1, #16
10dc4: 47b0 blx r6
lv_style_set_pad_bottom(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10dc6: 2000 movs r0, #0
10dc8: 682f ldr r7, [r5, #0]
10dca: 47a0 blx r4
10dcc: 283b cmp r0, #59 ; 0x3b
10dce: f107 079c add.w r7, r7, #156 ; 0x9c
10dd2: dd37 ble.n 10e44 <switch_init+0xdc>
10dd4: 2000 movs r0, #0
10dd6: 47a0 blx r4
10dd8: f06f 0327 mvn.w r3, #39 ; 0x27
10ddc: f100 0214 add.w r2, r0, #20
10de0: fb92 f2f3 sdiv r2, r2, r3
10de4: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
10de6: 4638 mov r0, r7
10de8: 2111 movs r1, #17
10dea: 47b0 blx r6
lv_style_set_pad_left(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10dec: 2000 movs r0, #0
10dee: 682f ldr r7, [r5, #0]
10df0: 47a0 blx r4
10df2: 283b cmp r0, #59 ; 0x3b
10df4: f107 079c add.w r7, r7, #156 ; 0x9c
10df8: dd27 ble.n 10e4a <switch_init+0xe2>
10dfa: 2000 movs r0, #0
10dfc: 47a0 blx r4
10dfe: f06f 0327 mvn.w r3, #39 ; 0x27
10e02: f100 0214 add.w r2, r0, #20
10e06: fb92 f2f3 sdiv r2, r2, r3
10e0a: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
10e0c: 2112 movs r1, #18
10e0e: 4638 mov r0, r7
10e10: 47b0 blx r6
lv_style_set_pad_right(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10e12: 2000 movs r0, #0
10e14: 682d ldr r5, [r5, #0]
10e16: 47a0 blx r4
10e18: 283b cmp r0, #59 ; 0x3b
10e1a: f105 059c add.w r5, r5, #156 ; 0x9c
10e1e: dd17 ble.n 10e50 <switch_init+0xe8>
10e20: 2000 movs r0, #0
10e22: 47a0 blx r4
10e24: f06f 0327 mvn.w r3, #39 ; 0x27
10e28: f100 0214 add.w r2, r0, #20
10e2c: fb92 f2f3 sdiv r2, r2, r3
10e30: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
10e32: 4628 mov r0, r5
10e34: 4633 mov r3, r6
10e36: 2113 movs r1, #19
}
10e38: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
10e3c: 4718 bx r3
lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10e3e: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
10e42: e7bd b.n 10dc0 <switch_init+0x58>
lv_style_set_pad_bottom(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10e44: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
10e48: e7cd b.n 10de6 <switch_init+0x7e>
lv_style_set_pad_left(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10e4a: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
10e4e: e7dd b.n 10e0c <switch_init+0xa4>
lv_style_set_pad_right(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4));
10e50: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
10e54: e7ed b.n 10e32 <switch_init+0xca>
10e56: bf00 nop
10e58: 200057a4 .word 0x200057a4
10e5c: 00010d4d .word 0x00010d4d
10e60: 00005afd .word 0x00005afd
10e64: 0000dbd5 .word 0x0000dbd5
10e68: 00005c9d .word 0x00005c9d
10e6c: 0002bcf6 .word 0x0002bcf6
10e70: 00005bcd .word 0x00005bcd
00010e74 <linemeter_init>:
{
10e74: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
style_init_reset(&styles->lmeter);
10e78: 4d6b ldr r5, [pc, #428] ; (11028 <linemeter_init+0x1b4>)
10e7a: 4b6c ldr r3, [pc, #432] ; (1102c <linemeter_init+0x1b8>)
10e7c: 6828 ldr r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
10e7e: 4e6c ldr r6, [pc, #432] ; (11030 <linemeter_init+0x1bc>)
lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
10e80: 4c6c ldr r4, [pc, #432] ; (11034 <linemeter_init+0x1c0>)
style_init_reset(&styles->lmeter);
10e82: 3070 adds r0, #112 ; 0x70
10e84: 4798 blx r3
lv_style_set_radius(&styles->lmeter, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
10e86: 6828 ldr r0, [r5, #0]
10e88: f647 72ff movw r2, #32767 ; 0x7fff
10e8c: 2101 movs r1, #1
10e8e: 3070 adds r0, #112 ; 0x70
10e90: 47b0 blx r6
lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
10e92: 2000 movs r0, #0
10e94: 682f ldr r7, [r5, #0]
10e96: 47a0 blx r4
10e98: eb00 0080 add.w r0, r0, r0, lsl #2
10e9c: 0080 lsls r0, r0, #2
10e9e: 28ef cmp r0, #239 ; 0xef
10ea0: f107 0770 add.w r7, r7, #112 ; 0x70
10ea4: f340 80b2 ble.w 1100c <linemeter_init+0x198>
10ea8: 2000 movs r0, #0
10eaa: 47a0 blx r4
10eac: 2314 movs r3, #20
10eae: 2250 movs r2, #80 ; 0x50
10eb0: fb00 2203 mla r2, r0, r3, r2
10eb4: 23a0 movs r3, #160 ; 0xa0
10eb6: fb92 f2f3 sdiv r2, r2, r3
10eba: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
10ebc: 4638 mov r0, r7
10ebe: 2112 movs r1, #18
10ec0: 47b0 blx r6
lv_style_set_pad_right(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
10ec2: 2000 movs r0, #0
10ec4: 682f ldr r7, [r5, #0]
10ec6: 47a0 blx r4
10ec8: eb00 0080 add.w r0, r0, r0, lsl #2
10ecc: 0080 lsls r0, r0, #2
10ece: 28ef cmp r0, #239 ; 0xef
10ed0: f107 0770 add.w r7, r7, #112 ; 0x70
10ed4: f340 809c ble.w 11010 <linemeter_init+0x19c>
10ed8: 2000 movs r0, #0
10eda: 47a0 blx r4
10edc: 2314 movs r3, #20
10ede: 2250 movs r2, #80 ; 0x50
10ee0: fb00 2203 mla r2, r0, r3, r2
10ee4: 23a0 movs r3, #160 ; 0xa0
10ee6: fb92 f2f3 sdiv r2, r2, r3
10eea: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
10eec: 4638 mov r0, r7
10eee: 2113 movs r1, #19
10ef0: 47b0 blx r6
lv_style_set_pad_top(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
10ef2: 2000 movs r0, #0
10ef4: 682f ldr r7, [r5, #0]
10ef6: 47a0 blx r4
10ef8: eb00 0080 add.w r0, r0, r0, lsl #2
10efc: 0080 lsls r0, r0, #2
10efe: 28ef cmp r0, #239 ; 0xef
10f00: f107 0770 add.w r7, r7, #112 ; 0x70
10f04: f340 8086 ble.w 11014 <linemeter_init+0x1a0>
10f08: 2000 movs r0, #0
10f0a: 47a0 blx r4
10f0c: 2314 movs r3, #20
10f0e: 2250 movs r2, #80 ; 0x50
10f10: fb00 2203 mla r2, r0, r3, r2
10f14: 23a0 movs r3, #160 ; 0xa0
10f16: fb92 f2f3 sdiv r2, r2, r3
10f1a: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
10f1c: 4638 mov r0, r7
10f1e: 2110 movs r1, #16
10f20: 47b0 blx r6
lv_style_set_pad_inner(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(30));
10f22: 2000 movs r0, #0
10f24: 682f ldr r7, [r5, #0]
10f26: 47a0 blx r4
10f28: ebc0 1000 rsb r0, r0, r0, lsl #4
10f2c: 0040 lsls r0, r0, #1
10f2e: 28ef cmp r0, #239 ; 0xef
10f30: f107 0770 add.w r7, r7, #112 ; 0x70
10f34: dd70 ble.n 11018 <linemeter_init+0x1a4>
10f36: 2000 movs r0, #0
10f38: 47a0 blx r4
10f3a: 231e movs r3, #30
10f3c: 2250 movs r2, #80 ; 0x50
10f3e: fb00 2203 mla r2, r0, r3, r2
10f42: 23a0 movs r3, #160 ; 0xa0
10f44: fb92 f2f3 sdiv r2, r2, r3
10f48: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
10f4a: 4638 mov r0, r7
10f4c: 2114 movs r1, #20
10f4e: 47b0 blx r6
lv_style_set_scale_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(25));
10f50: 2000 movs r0, #0
10f52: 682f ldr r7, [r5, #0]
10f54: 47a0 blx r4
10f56: eb00 0080 add.w r0, r0, r0, lsl #2
10f5a: eb00 0080 add.w r0, r0, r0, lsl #2
10f5e: 28ef cmp r0, #239 ; 0xef
10f60: f107 0770 add.w r7, r7, #112 ; 0x70
10f64: dd5a ble.n 1101c <linemeter_init+0x1a8>
10f66: 2000 movs r0, #0
10f68: 47a0 blx r4
10f6a: 2319 movs r3, #25
10f6c: 2250 movs r2, #80 ; 0x50
10f6e: fb00 2203 mla r2, r0, r3, r2
10f72: 23a0 movs r3, #160 ; 0xa0
10f74: fb92 f2f3 sdiv r2, r2, r3
10f78: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar)
#else
/*For compatibility*/
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, const void *, _ptr, scalar)
#endif
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
10f7a: 4638 mov r0, r7
10f7c: 21c0 movs r1, #192 ; 0xc0
10f7e: 47b0 blx r6
lv_style_set_line_color(&styles->lmeter, LV_STATE_DEFAULT, theme.color_primary);
10f80: 6828 ldr r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
10f82: 4f2d ldr r7, [pc, #180] ; (11038 <linemeter_init+0x1c4>)
10f84: 89aa ldrh r2, [r5, #12]
10f86: 2199 movs r1, #153 ; 0x99
10f88: 3070 adds r0, #112 ; 0x70
10f8a: 47b8 blx r7
lv_style_set_scale_grad_color(&styles->lmeter, LV_STATE_DEFAULT, theme.color_primary);
10f8c: 6828 ldr r0, [r5, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_BORDER_WIDTH, scale_border_width, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_BORDER_WIDTH, scale_end_border_width, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar)
10f8e: 89aa ldrh r2, [r5, #12]
10f90: 21c9 movs r1, #201 ; 0xc9
10f92: 3070 adds r0, #112 ; 0x70
10f94: 47b8 blx r7
lv_style_set_scale_end_color(&styles->lmeter, LV_STATE_DEFAULT, lv_color_hex3(0x888));
10f96: 6828 ldr r0, [r5, #0]
10f98: 4b28 ldr r3, [pc, #160] ; (1103c <linemeter_init+0x1c8>)
10f9a: f100 0870 add.w r8, r0, #112 ; 0x70
10f9e: f640 0088 movw r0, #2184 ; 0x888
10fa2: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar)
10fa4: 21ca movs r1, #202 ; 0xca
10fa6: 4602 mov r2, r0
10fa8: 4640 mov r0, r8
10faa: 47b8 blx r7
lv_style_set_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(10));
10fac: 2000 movs r0, #0
10fae: 682f ldr r7, [r5, #0]
10fb0: 47a0 blx r4
10fb2: eb00 0080 add.w r0, r0, r0, lsl #2
10fb6: 0040 lsls r0, r0, #1
10fb8: 28ef cmp r0, #239 ; 0xef
10fba: f107 0770 add.w r7, r7, #112 ; 0x70
10fbe: dd2f ble.n 11020 <linemeter_init+0x1ac>
10fc0: 2000 movs r0, #0
10fc2: 47a0 blx r4
10fc4: 230a movs r3, #10
10fc6: 2250 movs r2, #80 ; 0x50
10fc8: fb00 2203 mla r2, r0, r3, r2
10fcc: 23a0 movs r3, #160 ; 0xa0
10fce: fb92 f2f3 sdiv r2, r2, r3
10fd2: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
10fd4: 2190 movs r1, #144 ; 0x90
10fd6: 4638 mov r0, r7
10fd8: 47b0 blx r6
lv_style_set_scale_end_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(7));
10fda: 2000 movs r0, #0
10fdc: 682d ldr r5, [r5, #0]
10fde: 47a0 blx r4
10fe0: ebc0 00c0 rsb r0, r0, r0, lsl #3
10fe4: 28ef cmp r0, #239 ; 0xef
10fe6: f105 0570 add.w r5, r5, #112 ; 0x70
10fea: dd1b ble.n 11024 <linemeter_init+0x1b0>
10fec: 2000 movs r0, #0
10fee: 47a0 blx r4
10ff0: 2307 movs r3, #7
10ff2: 2250 movs r2, #80 ; 0x50
10ff4: fb00 2203 mla r2, r0, r3, r2
10ff8: 23a0 movs r3, #160 ; 0xa0
10ffa: fb92 f2f3 sdiv r2, r2, r3
10ffe: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
11000: 4628 mov r0, r5
11002: 4633 mov r3, r6
11004: 21c3 movs r1, #195 ; 0xc3
}
11006: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
1100a: 4718 bx r3
lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
1100c: 2201 movs r2, #1
1100e: e755 b.n 10ebc <linemeter_init+0x48>
lv_style_set_pad_right(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
11010: 2201 movs r2, #1
11012: e76b b.n 10eec <linemeter_init+0x78>
lv_style_set_pad_top(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20));
11014: 2201 movs r2, #1
11016: e781 b.n 10f1c <linemeter_init+0xa8>
lv_style_set_pad_inner(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(30));
11018: 2201 movs r2, #1
1101a: e796 b.n 10f4a <linemeter_init+0xd6>
lv_style_set_scale_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(25));
1101c: 2201 movs r2, #1
1101e: e7ac b.n 10f7a <linemeter_init+0x106>
lv_style_set_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(10));
11020: 2201 movs r2, #1
11022: e7d7 b.n 10fd4 <linemeter_init+0x160>
lv_style_set_scale_end_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(7));
11024: 2201 movs r2, #1
11026: e7eb b.n 11000 <linemeter_init+0x18c>
11028: 200057a4 .word 0x200057a4
1102c: 00010d4d .word 0x00010d4d
11030: 00005afd .word 0x00005afd
11034: 0000dbd5 .word 0x0000dbd5
11038: 00005bcd .word 0x00005bcd
1103c: 00010581 .word 0x00010581
00011040 <led_init>:
{
11040: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
style_init_reset(&styles->led);
11044: 4c32 ldr r4, [pc, #200] ; (11110 <led_init+0xd0>)
11046: 4b33 ldr r3, [pc, #204] ; (11114 <led_init+0xd4>)
11048: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
1104a: 4f33 ldr r7, [pc, #204] ; (11118 <led_init+0xd8>)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
1104c: 4e33 ldr r6, [pc, #204] ; (1111c <led_init+0xdc>)
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
1104e: 4d34 ldr r5, [pc, #208] ; (11120 <led_init+0xe0>)
11050: 306c adds r0, #108 ; 0x6c
11052: 4798 blx r3
lv_style_set_bg_opa(&styles->led, LV_STATE_DEFAULT, LV_OPA_COVER);
11054: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
11056: 22ff movs r2, #255 ; 0xff
11058: 212c movs r1, #44 ; 0x2c
1105a: 306c adds r0, #108 ; 0x6c
1105c: 47b8 blx r7
lv_style_set_bg_color(&styles->led, LV_STATE_DEFAULT, theme.color_primary);
1105e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
11060: 89a2 ldrh r2, [r4, #12]
11062: 2129 movs r1, #41 ; 0x29
11064: 306c adds r0, #108 ; 0x6c
11066: 47b0 blx r6
lv_style_set_border_width(&styles->led, LV_STATE_DEFAULT, 2);
11068: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
1106a: 2202 movs r2, #2
1106c: 2130 movs r1, #48 ; 0x30
1106e: 306c adds r0, #108 ; 0x6c
11070: 47a8 blx r5
lv_style_set_border_opa(&styles->led, LV_STATE_DEFAULT, LV_OPA_50);
11072: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar)
11074: 227f movs r2, #127 ; 0x7f
11076: 213c movs r1, #60 ; 0x3c
11078: 306c adds r0, #108 ; 0x6c
1107a: 47b8 blx r7
lv_style_set_border_color(&styles->led, LV_STATE_DEFAULT, lv_color_lighten(theme.color_primary, LV_OPA_30));
1107c: 6820 ldr r0, [r4, #0]
1107e: 4b29 ldr r3, [pc, #164] ; (11124 <led_init+0xe4>)
11080: f100 076c add.w r7, r0, #108 ; 0x6c
11084: 214c movs r1, #76 ; 0x4c
11086: 89a0 ldrh r0, [r4, #12]
11088: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
1108a: 2139 movs r1, #57 ; 0x39
1108c: 4602 mov r2, r0
1108e: 4638 mov r0, r7
11090: 47b0 blx r6
lv_style_set_radius(&styles->led, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
11092: 6820 ldr r0, [r4, #0]
lv_style_set_shadow_width(&styles->led, LV_STATE_DEFAULT, LV_DPX(15));
11094: 4f24 ldr r7, [pc, #144] ; (11128 <led_init+0xe8>)
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
11096: f647 72ff movw r2, #32767 ; 0x7fff
1109a: 2101 movs r1, #1
1109c: 306c adds r0, #108 ; 0x6c
1109e: 47a8 blx r5
110a0: 6823 ldr r3, [r4, #0]
110a2: 2000 movs r0, #0
110a4: f103 086c add.w r8, r3, #108 ; 0x6c
110a8: 47b8 blx r7
110aa: ebc0 1000 rsb r0, r0, r0, lsl #4
110ae: 28ef cmp r0, #239 ; 0xef
110b0: dd2a ble.n 11108 <led_init+0xc8>
110b2: 2000 movs r0, #0
110b4: 47b8 blx r7
110b6: 230f movs r3, #15
110b8: 2250 movs r2, #80 ; 0x50
110ba: fb00 2203 mla r2, r0, r3, r2
110be: 23a0 movs r3, #160 ; 0xa0
110c0: fb92 f2f3 sdiv r2, r2, r3
110c4: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
110c6: 2150 movs r1, #80 ; 0x50
110c8: 4640 mov r0, r8
110ca: 47a8 blx r5
lv_style_set_shadow_color(&styles->led, LV_STATE_DEFAULT, theme.color_primary);
110cc: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar)
110ce: 89a2 ldrh r2, [r4, #12]
110d0: 2159 movs r1, #89 ; 0x59
110d2: 306c adds r0, #108 ; 0x6c
110d4: 47b0 blx r6
lv_style_set_shadow_spread(&styles->led, LV_STATE_DEFAULT, LV_DPX(5));
110d6: 2000 movs r0, #0
110d8: 6824 ldr r4, [r4, #0]
110da: 47b8 blx r7
110dc: eb00 0080 add.w r0, r0, r0, lsl #2
110e0: 28ef cmp r0, #239 ; 0xef
110e2: f104 046c add.w r4, r4, #108 ; 0x6c
110e6: dd11 ble.n 1110c <led_init+0xcc>
110e8: 2000 movs r0, #0
110ea: 47b8 blx r7
110ec: 2305 movs r3, #5
110ee: 2250 movs r2, #80 ; 0x50
110f0: fb00 2203 mla r2, r0, r3, r2
110f4: 23a0 movs r3, #160 ; 0xa0
110f6: fb92 f2f3 sdiv r2, r2, r3
110fa: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar)
110fc: 4620 mov r0, r4
110fe: 462b mov r3, r5
11100: 2153 movs r1, #83 ; 0x53
}
11102: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
11106: 4718 bx r3
lv_style_set_shadow_width(&styles->led, LV_STATE_DEFAULT, LV_DPX(15));
11108: 2201 movs r2, #1
1110a: e7dc b.n 110c6 <led_init+0x86>
lv_style_set_shadow_spread(&styles->led, LV_STATE_DEFAULT, LV_DPX(5));
1110c: 2201 movs r2, #1
1110e: e7f5 b.n 110fc <led_init+0xbc>
11110: 200057a4 .word 0x200057a4
11114: 00010d4d .word 0x00010d4d
11118: 00005c9d .word 0x00005c9d
1111c: 00005bcd .word 0x00005bcd
11120: 00005afd .word 0x00005afd
11124: 0000e5cf .word 0x0000e5cf
11128: 0000dbd5 .word 0x0000dbd5
0001112c <lv_color_hex>:
return LV_COLOR_MAKE(r, g, b);
1112c: f3c0 2285 ubfx r2, r0, #10, #6
11130: f3c0 03c4 ubfx r3, r0, #3, #5
11134: ea43 1342 orr.w r3, r3, r2, lsl #5
11138: f3c0 40c4 ubfx r0, r0, #19, #5
}
1113c: ea43 20c0 orr.w r0, r3, r0, lsl #11
11140: 4770 bx lr
...
00011144 <bar_init>:
{
11144: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
style_init_reset(&styles->bar_bg);
11148: 4c43 ldr r4, [pc, #268] ; (11258 <bar_init+0x114>)
1114a: f8df 9134 ldr.w r9, [pc, #308] ; 11280 <bar_init+0x13c>
1114e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
11150: 4e42 ldr r6, [pc, #264] ; (1125c <bar_init+0x118>)
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
11152: 4f43 ldr r7, [pc, #268] ; (11260 <bar_init+0x11c>)
11154: f8df 812c ldr.w r8, [pc, #300] ; 11284 <bar_init+0x140>
11158: 3024 adds r0, #36 ; 0x24
1115a: 47c8 blx r9
lv_style_set_radius(&styles->bar_bg, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
1115c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
1115e: f647 72ff movw r2, #32767 ; 0x7fff
11162: 2101 movs r1, #1
11164: 3024 adds r0, #36 ; 0x24
11166: 47b0 blx r6
lv_style_set_bg_opa(&styles->bar_bg, LV_STATE_DEFAULT, LV_OPA_COVER);
11168: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
1116a: 22ff movs r2, #255 ; 0xff
1116c: 3024 adds r0, #36 ; 0x24
1116e: 212c movs r1, #44 ; 0x2c
11170: 47b8 blx r7
lv_style_set_bg_color(&styles->bar_bg, LV_STATE_DEFAULT, COLOR_BG_SEC);
11172: 6a23 ldr r3, [r4, #32]
11174: 6825 ldr r5, [r4, #0]
11176: f013 0f02 tst.w r3, #2
1117a: bf14 ite ne
1117c: 4839 ldrne r0, [pc, #228] ; (11264 <bar_init+0x120>)
1117e: 483a ldreq r0, [pc, #232] ; (11268 <bar_init+0x124>)
11180: 47c0 blx r8
11182: 3524 adds r5, #36 ; 0x24
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
11184: 4602 mov r2, r0
11186: 2129 movs r1, #41 ; 0x29
11188: 4628 mov r0, r5
1118a: 4d38 ldr r5, [pc, #224] ; (1126c <bar_init+0x128>)
1118c: 47a8 blx r5
lv_style_set_value_color(&styles->bar_bg, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
1118e: 6823 ldr r3, [r4, #0]
11190: f103 0a24 add.w sl, r3, #36 ; 0x24
11194: 6a23 ldr r3, [r4, #32]
11196: 079a lsls r2, r3, #30
11198: d558 bpl.n 1124c <bar_init+0x108>
1119a: 4835 ldr r0, [pc, #212] ; (11270 <bar_init+0x12c>)
1119c: 47c0 blx r8
1119e: 4602 mov r2, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
111a0: 2179 movs r1, #121 ; 0x79
111a2: 4650 mov r0, sl
111a4: 47a8 blx r5
lv_style_set_outline_color(&styles->bar_bg, LV_STATE_DEFAULT, theme.color_primary);
111a6: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
111a8: 89a2 ldrh r2, [r4, #12]
111aa: 2149 movs r1, #73 ; 0x49
111ac: 3024 adds r0, #36 ; 0x24
111ae: 47a8 blx r5
lv_style_set_outline_color(&styles->bar_bg, LV_STATE_EDITED, theme.color_secondary);
111b0: 6820 ldr r0, [r4, #0]
111b2: 89e2 ldrh r2, [r4, #14]
111b4: f240 4149 movw r1, #1097 ; 0x449
111b8: 3024 adds r0, #36 ; 0x24
111ba: 47a8 blx r5
lv_style_set_outline_opa(&styles->bar_bg, LV_STATE_DEFAULT, LV_OPA_TRANSP);
111bc: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
111be: 2200 movs r2, #0
111c0: 214c movs r1, #76 ; 0x4c
111c2: 3024 adds r0, #36 ; 0x24
111c4: 47b8 blx r7
lv_style_set_outline_opa(&styles->bar_bg, LV_STATE_FOCUSED, LV_OPA_50);
111c6: 6820 ldr r0, [r4, #0]
111c8: 227f movs r2, #127 ; 0x7f
111ca: f44f 7113 mov.w r1, #588 ; 0x24c
111ce: 3024 adds r0, #36 ; 0x24
111d0: 47b8 blx r7
lv_style_set_outline_width(&styles->bar_bg, LV_STATE_DEFAULT, 3);
111d2: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
111d4: 2203 movs r2, #3
111d6: 2140 movs r1, #64 ; 0x40
111d8: 3024 adds r0, #36 ; 0x24
111da: 47b0 blx r6
lv_style_set_transition_time(&styles->bar_bg, LV_STATE_DEFAULT, TRANSITION_TIME);
111dc: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
111de: 2296 movs r2, #150 ; 0x96
111e0: 21b0 movs r1, #176 ; 0xb0
111e2: 3024 adds r0, #36 ; 0x24
111e4: 47b0 blx r6
lv_style_set_transition_prop_6(&styles->bar_bg, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA);
111e6: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
111e8: 224c movs r2, #76 ; 0x4c
111ea: 21b7 movs r1, #183 ; 0xb7
111ec: 3024 adds r0, #36 ; 0x24
111ee: 47b0 blx r6
style_init_reset(&styles->bar_indic);
111f0: 6820 ldr r0, [r4, #0]
111f2: 3028 adds r0, #40 ; 0x28
111f4: 47c8 blx r9
lv_style_set_bg_opa(&styles->bar_indic, LV_STATE_DEFAULT, LV_OPA_COVER);
111f6: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
111f8: 22ff movs r2, #255 ; 0xff
111fa: 212c movs r1, #44 ; 0x2c
111fc: 3028 adds r0, #40 ; 0x28
111fe: 47b8 blx r7
lv_style_set_radius(&styles->bar_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
11200: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
11202: f647 72ff movw r2, #32767 ; 0x7fff
11206: 2101 movs r1, #1
11208: 3028 adds r0, #40 ; 0x28
1120a: 47b0 blx r6
lv_style_set_bg_color(&styles->bar_indic, LV_STATE_DEFAULT, theme.color_primary);
1120c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
1120e: 89a2 ldrh r2, [r4, #12]
11210: 2129 movs r1, #41 ; 0x29
11212: 3028 adds r0, #40 ; 0x28
11214: 47a8 blx r5
lv_style_set_bg_color(&styles->bar_indic, LV_STATE_DISABLED, lv_color_hex3(0x888));
11216: 6820 ldr r0, [r4, #0]
11218: 4b16 ldr r3, [pc, #88] ; (11274 <bar_init+0x130>)
1121a: f100 0628 add.w r6, r0, #40 ; 0x28
1121e: f640 0088 movw r0, #2184 ; 0x888
11222: 4798 blx r3
11224: f242 0129 movw r1, #8233 ; 0x2029
11228: 4602 mov r2, r0
1122a: 4630 mov r0, r6
1122c: 47a8 blx r5
lv_style_set_value_color(&styles->bar_indic, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x41404f) : LV_COLOR_WHITE);
1122e: 6a23 ldr r3, [r4, #32]
11230: 6820 ldr r0, [r4, #0]
11232: 079b lsls r3, r3, #30
11234: f100 0628 add.w r6, r0, #40 ; 0x28
11238: d50b bpl.n 11252 <bar_init+0x10e>
1123a: 480f ldr r0, [pc, #60] ; (11278 <bar_init+0x134>)
1123c: 47c0 blx r8
1123e: 4602 mov r2, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
11240: 4630 mov r0, r6
11242: 462b mov r3, r5
11244: 2179 movs r1, #121 ; 0x79
}
11246: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
1124a: 4718 bx r3
lv_style_set_value_color(&styles->bar_bg, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
1124c: 4b0b ldr r3, [pc, #44] ; (1127c <bar_init+0x138>)
1124e: 881a ldrh r2, [r3, #0]
11250: e7a6 b.n 111a0 <bar_init+0x5c>
lv_style_set_value_color(&styles->bar_indic, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x41404f) : LV_COLOR_WHITE);
11252: 4b0a ldr r3, [pc, #40] ; (1127c <bar_init+0x138>)
11254: 881a ldrh r2, [r3, #0]
11256: e7f3 b.n 11240 <bar_init+0xfc>
11258: 200057a4 .word 0x200057a4
1125c: 00005afd .word 0x00005afd
11260: 00005c9d .word 0x00005c9d
11264: 00d4d7d9 .word 0x00d4d7d9
11268: 0045494d .word 0x0045494d
1126c: 00005bcd .word 0x00005bcd
11270: 0031404f .word 0x0031404f
11274: 00010581 .word 0x00010581
11278: 0041404f .word 0x0041404f
1127c: 0002bcf6 .word 0x0002bcf6
11280: 00010d4d .word 0x00010d4d
11284: 0001112d .word 0x0001112d
00011288 <slider_init>:
{
11288: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
style_init_reset(&styles->slider_knob);
1128c: 4c7d ldr r4, [pc, #500] ; (11484 <slider_init+0x1fc>)
1128e: 4f7e ldr r7, [pc, #504] ; (11488 <slider_init+0x200>)
11290: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
11292: 4d7e ldr r5, [pc, #504] ; (1148c <slider_init+0x204>)
11294: 3090 adds r0, #144 ; 0x90
11296: 47b8 blx r7
lv_style_set_bg_opa(&styles->slider_knob, LV_STATE_DEFAULT, LV_OPA_COVER);
11298: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
1129a: 4b7d ldr r3, [pc, #500] ; (11490 <slider_init+0x208>)
1129c: 22ff movs r2, #255 ; 0xff
1129e: 212c movs r1, #44 ; 0x2c
112a0: 3090 adds r0, #144 ; 0x90
112a2: 4798 blx r3
lv_style_set_bg_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? theme.color_primary : LV_COLOR_WHITE);
112a4: 6a23 ldr r3, [r4, #32]
112a6: 6820 ldr r0, [r4, #0]
112a8: 079a lsls r2, r3, #30
112aa: bf56 itet pl
112ac: 4b79 ldrpl r3, [pc, #484] ; (11494 <slider_init+0x20c>)
112ae: 89a2 ldrhmi r2, [r4, #12]
112b0: 881a ldrhpl r2, [r3, #0]
112b2: 3090 adds r0, #144 ; 0x90
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
112b4: 2129 movs r1, #41 ; 0x29
112b6: 47a8 blx r5
lv_style_set_value_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
112b8: 6a23 ldr r3, [r4, #32]
112ba: 6826 ldr r6, [r4, #0]
112bc: 079b lsls r3, r3, #30
112be: f106 0690 add.w r6, r6, #144 ; 0x90
112c2: f140 80cc bpl.w 1145e <slider_init+0x1d6>
112c6: 4874 ldr r0, [pc, #464] ; (11498 <slider_init+0x210>)
112c8: 4b74 ldr r3, [pc, #464] ; (1149c <slider_init+0x214>)
112ca: 4798 blx r3
112cc: 4602 mov r2, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
112ce: 4630 mov r0, r6
112d0: 2179 movs r1, #121 ; 0x79
112d2: 47a8 blx r5
lv_style_set_radius(&styles->slider_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
112d4: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
112d6: 4e72 ldr r6, [pc, #456] ; (114a0 <slider_init+0x218>)
lv_style_set_pad_left(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
112d8: 4d72 ldr r5, [pc, #456] ; (114a4 <slider_init+0x21c>)
112da: f647 72ff movw r2, #32767 ; 0x7fff
112de: 2101 movs r1, #1
112e0: 3090 adds r0, #144 ; 0x90
112e2: 47b0 blx r6
112e4: 6823 ldr r3, [r4, #0]
112e6: 2000 movs r0, #0
112e8: f103 0890 add.w r8, r3, #144 ; 0x90
112ec: 47a8 blx r5
112ee: ebc0 00c0 rsb r0, r0, r0, lsl #3
112f2: 28ef cmp r0, #239 ; 0xef
112f4: f340 80b6 ble.w 11464 <slider_init+0x1dc>
112f8: 2000 movs r0, #0
112fa: 47a8 blx r5
112fc: 2307 movs r3, #7
112fe: 2250 movs r2, #80 ; 0x50
11300: fb00 2203 mla r2, r0, r3, r2
11304: 23a0 movs r3, #160 ; 0xa0
11306: fb92 f2f3 sdiv r2, r2, r3
1130a: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
1130c: 4640 mov r0, r8
1130e: 2112 movs r1, #18
11310: 47b0 blx r6
lv_style_set_pad_right(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
11312: 6823 ldr r3, [r4, #0]
11314: 2000 movs r0, #0
11316: f103 0890 add.w r8, r3, #144 ; 0x90
1131a: 47a8 blx r5
1131c: ebc0 00c0 rsb r0, r0, r0, lsl #3
11320: 28ef cmp r0, #239 ; 0xef
11322: f340 80a1 ble.w 11468 <slider_init+0x1e0>
11326: 2000 movs r0, #0
11328: 47a8 blx r5
1132a: 2307 movs r3, #7
1132c: 2250 movs r2, #80 ; 0x50
1132e: fb00 2203 mla r2, r0, r3, r2
11332: 23a0 movs r3, #160 ; 0xa0
11334: fb92 f2f3 sdiv r2, r2, r3
11338: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
1133a: 4640 mov r0, r8
1133c: 2113 movs r1, #19
1133e: 47b0 blx r6
lv_style_set_pad_top(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
11340: 6823 ldr r3, [r4, #0]
11342: 2000 movs r0, #0
11344: f103 0890 add.w r8, r3, #144 ; 0x90
11348: 47a8 blx r5
1134a: ebc0 00c0 rsb r0, r0, r0, lsl #3
1134e: 28ef cmp r0, #239 ; 0xef
11350: f340 808c ble.w 1146c <slider_init+0x1e4>
11354: 2000 movs r0, #0
11356: 47a8 blx r5
11358: 2307 movs r3, #7
1135a: 2250 movs r2, #80 ; 0x50
1135c: fb00 2203 mla r2, r0, r3, r2
11360: 23a0 movs r3, #160 ; 0xa0
11362: fb92 f2f3 sdiv r2, r2, r3
11366: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
11368: 4640 mov r0, r8
1136a: 2110 movs r1, #16
1136c: 47b0 blx r6
lv_style_set_pad_bottom(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
1136e: 6823 ldr r3, [r4, #0]
11370: 2000 movs r0, #0
11372: f103 0890 add.w r8, r3, #144 ; 0x90
11376: 47a8 blx r5
11378: ebc0 00c0 rsb r0, r0, r0, lsl #3
1137c: 28ef cmp r0, #239 ; 0xef
1137e: dd77 ble.n 11470 <slider_init+0x1e8>
11380: 2000 movs r0, #0
11382: 47a8 blx r5
11384: 2307 movs r3, #7
11386: 2250 movs r2, #80 ; 0x50
11388: fb00 2203 mla r2, r0, r3, r2
1138c: 23a0 movs r3, #160 ; 0xa0
1138e: fb92 f2f3 sdiv r2, r2, r3
11392: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
11394: 2111 movs r1, #17
11396: 4640 mov r0, r8
11398: 47b0 blx r6
style_init_reset(&styles->slider_bg);
1139a: 6820 ldr r0, [r4, #0]
1139c: 3094 adds r0, #148 ; 0x94
1139e: 47b8 blx r7
lv_style_set_margin_left(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
113a0: 2000 movs r0, #0
113a2: 6827 ldr r7, [r4, #0]
113a4: 47a8 blx r5
113a6: eb00 0080 add.w r0, r0, r0, lsl #2
113aa: 0040 lsls r0, r0, #1
113ac: 28ef cmp r0, #239 ; 0xef
113ae: f107 0794 add.w r7, r7, #148 ; 0x94
113b2: dd5f ble.n 11474 <slider_init+0x1ec>
113b4: 2000 movs r0, #0
113b6: 47a8 blx r5
113b8: 230a movs r3, #10
113ba: 2250 movs r2, #80 ; 0x50
113bc: fb00 2203 mla r2, r0, r3, r2
113c0: 23a0 movs r3, #160 ; 0xa0
113c2: fb92 f2f3 sdiv r2, r2, r3
113c6: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_LEFT, margin_left, lv_style_int_t, _int, scalar)
113c8: 4638 mov r0, r7
113ca: 2117 movs r1, #23
113cc: 47b0 blx r6
lv_style_set_margin_right(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
113ce: 2000 movs r0, #0
113d0: 6827 ldr r7, [r4, #0]
113d2: 47a8 blx r5
113d4: eb00 0080 add.w r0, r0, r0, lsl #2
113d8: 0040 lsls r0, r0, #1
113da: 28ef cmp r0, #239 ; 0xef
113dc: f107 0794 add.w r7, r7, #148 ; 0x94
113e0: dd4a ble.n 11478 <slider_init+0x1f0>
113e2: 2000 movs r0, #0
113e4: 47a8 blx r5
113e6: 230a movs r3, #10
113e8: 2250 movs r2, #80 ; 0x50
113ea: fb00 2203 mla r2, r0, r3, r2
113ee: 23a0 movs r3, #160 ; 0xa0
113f0: fb92 f2f3 sdiv r2, r2, r3
113f4: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_RIGHT, margin_right, lv_style_int_t, _int, scalar)
113f6: 4638 mov r0, r7
113f8: 2118 movs r1, #24
113fa: 47b0 blx r6
lv_style_set_margin_top(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
113fc: 2000 movs r0, #0
113fe: 6827 ldr r7, [r4, #0]
11400: 47a8 blx r5
11402: eb00 0080 add.w r0, r0, r0, lsl #2
11406: 0040 lsls r0, r0, #1
11408: 28ef cmp r0, #239 ; 0xef
1140a: f107 0794 add.w r7, r7, #148 ; 0x94
1140e: dd35 ble.n 1147c <slider_init+0x1f4>
11410: 2000 movs r0, #0
11412: 47a8 blx r5
11414: 230a movs r3, #10
11416: 2250 movs r2, #80 ; 0x50
11418: fb00 2203 mla r2, r0, r3, r2
1141c: 23a0 movs r3, #160 ; 0xa0
1141e: fb92 f2f3 sdiv r2, r2, r3
11422: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_TOP, margin_top, lv_style_int_t, _int, scalar)
11424: 2115 movs r1, #21
11426: 4638 mov r0, r7
11428: 47b0 blx r6
lv_style_set_margin_bottom(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
1142a: 2000 movs r0, #0
1142c: 6824 ldr r4, [r4, #0]
1142e: 47a8 blx r5
11430: eb00 0080 add.w r0, r0, r0, lsl #2
11434: 0040 lsls r0, r0, #1
11436: 28ef cmp r0, #239 ; 0xef
11438: f104 0494 add.w r4, r4, #148 ; 0x94
1143c: dd20 ble.n 11480 <slider_init+0x1f8>
1143e: 2000 movs r0, #0
11440: 47a8 blx r5
11442: 230a movs r3, #10
11444: 2250 movs r2, #80 ; 0x50
11446: fb00 2203 mla r2, r0, r3, r2
1144a: 23a0 movs r3, #160 ; 0xa0
1144c: fb92 f2f3 sdiv r2, r2, r3
11450: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_BOTTOM, margin_bottom, lv_style_int_t, _int, scalar)
11452: 4620 mov r0, r4
11454: 4633 mov r3, r6
11456: 2116 movs r1, #22
}
11458: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
1145c: 4718 bx r3
lv_style_set_value_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
1145e: 4b0d ldr r3, [pc, #52] ; (11494 <slider_init+0x20c>)
11460: 881a ldrh r2, [r3, #0]
11462: e734 b.n 112ce <slider_init+0x46>
lv_style_set_pad_left(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
11464: 2201 movs r2, #1
11466: e751 b.n 1130c <slider_init+0x84>
lv_style_set_pad_right(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
11468: 2201 movs r2, #1
1146a: e766 b.n 1133a <slider_init+0xb2>
lv_style_set_pad_top(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
1146c: 2201 movs r2, #1
1146e: e77b b.n 11368 <slider_init+0xe0>
lv_style_set_pad_bottom(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7));
11470: 2201 movs r2, #1
11472: e78f b.n 11394 <slider_init+0x10c>
lv_style_set_margin_left(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
11474: 2201 movs r2, #1
11476: e7a7 b.n 113c8 <slider_init+0x140>
lv_style_set_margin_right(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
11478: 2201 movs r2, #1
1147a: e7bc b.n 113f6 <slider_init+0x16e>
lv_style_set_margin_top(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
1147c: 2201 movs r2, #1
1147e: e7d1 b.n 11424 <slider_init+0x19c>
lv_style_set_margin_bottom(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10));
11480: 2201 movs r2, #1
11482: e7e6 b.n 11452 <slider_init+0x1ca>
11484: 200057a4 .word 0x200057a4
11488: 00010d4d .word 0x00010d4d
1148c: 00005bcd .word 0x00005bcd
11490: 00005c9d .word 0x00005c9d
11494: 0002bcf6 .word 0x0002bcf6
11498: 0031404f .word 0x0031404f
1149c: 0001112d .word 0x0001112d
114a0: 00005afd .word 0x00005afd
114a4: 0000dbd5 .word 0x0000dbd5
000114a8 <gauge_init>:
{
114a8: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
style_init_reset(&styles->gauge_main);
114ac: 4cb6 ldr r4, [pc, #728] ; (11788 <gauge_init+0x2e0>)
114ae: f8df 82f4 ldr.w r8, [pc, #756] ; 117a4 <gauge_init+0x2fc>
114b2: 6820 ldr r0, [r4, #0]
lv_style_set_line_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888));
114b4: f8df 92f0 ldr.w r9, [pc, #752] ; 117a8 <gauge_init+0x300>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
114b8: 4fb4 ldr r7, [pc, #720] ; (1178c <gauge_init+0x2e4>)
style_init_reset(&styles->gauge_main);
114ba: 305c adds r0, #92 ; 0x5c
114bc: 47c0 blx r8
lv_style_set_line_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888));
114be: 6820 ldr r0, [r4, #0]
114c0: f100 055c add.w r5, r0, #92 ; 0x5c
114c4: f640 0088 movw r0, #2184 ; 0x888
114c8: 47c8 blx r9
114ca: 2199 movs r1, #153 ; 0x99
114cc: 4602 mov r2, r0
114ce: 4628 mov r0, r5
114d0: 47b8 blx r7
lv_style_set_scale_grad_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888));
114d2: 6820 ldr r0, [r4, #0]
114d4: f100 055c add.w r5, r0, #92 ; 0x5c
114d8: f640 0088 movw r0, #2184 ; 0x888
114dc: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar)
114de: 21c9 movs r1, #201 ; 0xc9
114e0: 4602 mov r2, r0
114e2: 4628 mov r0, r5
114e4: 47b8 blx r7
lv_style_set_scale_end_color(&styles->gauge_main, LV_STATE_DEFAULT, theme.color_primary);
114e6: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar)
114e8: 89a2 ldrh r2, [r4, #12]
lv_style_set_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(5));
114ea: 4da9 ldr r5, [pc, #676] ; (11790 <gauge_init+0x2e8>)
114ec: 21ca movs r1, #202 ; 0xca
114ee: 305c adds r0, #92 ; 0x5c
114f0: 47b8 blx r7
114f2: 2000 movs r0, #0
114f4: 6826 ldr r6, [r4, #0]
114f6: 47a8 blx r5
114f8: eb00 0080 add.w r0, r0, r0, lsl #2
114fc: 28ef cmp r0, #239 ; 0xef
114fe: f106 065c add.w r6, r6, #92 ; 0x5c
11502: f340 818d ble.w 11820 <gauge_init+0x378>
11506: 2000 movs r0, #0
11508: 47a8 blx r5
1150a: 2305 movs r3, #5
1150c: 2250 movs r2, #80 ; 0x50
1150e: fb00 2203 mla r2, r0, r3, r2
11512: 23a0 movs r3, #160 ; 0xa0
11514: fb92 f2f3 sdiv r2, r2, r3
11518: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
1151a: 4630 mov r0, r6
1151c: 2190 movs r1, #144 ; 0x90
1151e: 4e9d ldr r6, [pc, #628] ; (11794 <gauge_init+0x2ec>)
11520: 47b0 blx r6
lv_style_set_scale_end_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(4));
11522: 6823 ldr r3, [r4, #0]
11524: 2000 movs r0, #0
11526: f103 0a5c add.w sl, r3, #92 ; 0x5c
1152a: 47a8 blx r5
1152c: 283b cmp r0, #59 ; 0x3b
1152e: f340 8179 ble.w 11824 <gauge_init+0x37c>
11532: 2000 movs r0, #0
11534: 47a8 blx r5
11536: 2328 movs r3, #40 ; 0x28
11538: f100 0214 add.w r2, r0, #20
1153c: fb92 f2f3 sdiv r2, r2, r3
11540: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
11542: 4650 mov r0, sl
11544: 21c3 movs r1, #195 ; 0xc3
11546: 47b0 blx r6
lv_style_set_scale_end_border_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(8));
11548: 6823 ldr r3, [r4, #0]
1154a: 2000 movs r0, #0
1154c: f103 0a5c add.w sl, r3, #92 ; 0x5c
11550: 47a8 blx r5
11552: 281d cmp r0, #29
11554: f340 8168 ble.w 11828 <gauge_init+0x380>
11558: 2000 movs r0, #0
1155a: 47a8 blx r5
1155c: 2314 movs r3, #20
1155e: f100 020a add.w r2, r0, #10
11562: fb92 f2f3 sdiv r2, r2, r3
11566: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_BORDER_WIDTH, scale_end_border_width, lv_style_int_t, _int, scalar)
11568: 4650 mov r0, sl
1156a: 21c2 movs r1, #194 ; 0xc2
1156c: 47b0 blx r6
lv_style_set_pad_left(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
1156e: 6823 ldr r3, [r4, #0]
11570: 2000 movs r0, #0
11572: f103 0a5c add.w sl, r3, #92 ; 0x5c
11576: 47a8 blx r5
11578: eb00 0080 add.w r0, r0, r0, lsl #2
1157c: 0080 lsls r0, r0, #2
1157e: 28ef cmp r0, #239 ; 0xef
11580: f340 8154 ble.w 1182c <gauge_init+0x384>
11584: 2000 movs r0, #0
11586: 47a8 blx r5
11588: 2314 movs r3, #20
1158a: 2250 movs r2, #80 ; 0x50
1158c: fb00 2203 mla r2, r0, r3, r2
11590: 23a0 movs r3, #160 ; 0xa0
11592: fb92 f2f3 sdiv r2, r2, r3
11596: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
11598: 4650 mov r0, sl
1159a: 2112 movs r1, #18
1159c: 47b0 blx r6
lv_style_set_pad_right(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
1159e: 6823 ldr r3, [r4, #0]
115a0: 2000 movs r0, #0
115a2: f103 0a5c add.w sl, r3, #92 ; 0x5c
115a6: 47a8 blx r5
115a8: eb00 0080 add.w r0, r0, r0, lsl #2
115ac: 0080 lsls r0, r0, #2
115ae: 28ef cmp r0, #239 ; 0xef
115b0: f340 813e ble.w 11830 <gauge_init+0x388>
115b4: 2000 movs r0, #0
115b6: 47a8 blx r5
115b8: 2314 movs r3, #20
115ba: 2250 movs r2, #80 ; 0x50
115bc: fb00 2203 mla r2, r0, r3, r2
115c0: 23a0 movs r3, #160 ; 0xa0
115c2: fb92 f2f3 sdiv r2, r2, r3
115c6: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
115c8: 4650 mov r0, sl
115ca: 2113 movs r1, #19
115cc: 47b0 blx r6
lv_style_set_pad_top(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
115ce: 6823 ldr r3, [r4, #0]
115d0: 2000 movs r0, #0
115d2: f103 0a5c add.w sl, r3, #92 ; 0x5c
115d6: 47a8 blx r5
115d8: eb00 0080 add.w r0, r0, r0, lsl #2
115dc: 0080 lsls r0, r0, #2
115de: 28ef cmp r0, #239 ; 0xef
115e0: f340 8128 ble.w 11834 <gauge_init+0x38c>
115e4: 2000 movs r0, #0
115e6: 47a8 blx r5
115e8: 2314 movs r3, #20
115ea: 2250 movs r2, #80 ; 0x50
115ec: fb00 2203 mla r2, r0, r3, r2
115f0: 23a0 movs r3, #160 ; 0xa0
115f2: fb92 f2f3 sdiv r2, r2, r3
115f6: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
115f8: 4650 mov r0, sl
115fa: 2110 movs r1, #16
115fc: 47b0 blx r6
lv_style_set_pad_inner(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
115fe: 6823 ldr r3, [r4, #0]
11600: 2000 movs r0, #0
11602: f103 0a5c add.w sl, r3, #92 ; 0x5c
11606: 47a8 blx r5
11608: eb00 0080 add.w r0, r0, r0, lsl #2
1160c: 0080 lsls r0, r0, #2
1160e: 28ef cmp r0, #239 ; 0xef
11610: f340 8112 ble.w 11838 <gauge_init+0x390>
11614: 2000 movs r0, #0
11616: 47a8 blx r5
11618: 2314 movs r3, #20
1161a: 2250 movs r2, #80 ; 0x50
1161c: fb00 2203 mla r2, r0, r3, r2
11620: 23a0 movs r3, #160 ; 0xa0
11622: fb92 f2f3 sdiv r2, r2, r3
11626: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
11628: 4650 mov r0, sl
1162a: 2114 movs r1, #20
1162c: 47b0 blx r6
lv_style_set_scale_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(15));
1162e: 6823 ldr r3, [r4, #0]
11630: 2000 movs r0, #0
11632: f103 0a5c add.w sl, r3, #92 ; 0x5c
11636: 47a8 blx r5
11638: ebc0 1000 rsb r0, r0, r0, lsl #4
1163c: 28ef cmp r0, #239 ; 0xef
1163e: f340 80fd ble.w 1183c <gauge_init+0x394>
11642: 2000 movs r0, #0
11644: 47a8 blx r5
11646: 230f movs r3, #15
11648: 2250 movs r2, #80 ; 0x50
1164a: fb00 2203 mla r2, r0, r3, r2
1164e: 23a0 movs r3, #160 ; 0xa0
11650: fb92 f2f3 sdiv r2, r2, r3
11654: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
11656: 4650 mov r0, sl
11658: 21c0 movs r1, #192 ; 0xc0
1165a: 47b0 blx r6
lv_style_set_radius(&styles->gauge_main, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
1165c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
1165e: f647 72ff movw r2, #32767 ; 0x7fff
11662: 2101 movs r1, #1
11664: 305c adds r0, #92 ; 0x5c
11666: 47b0 blx r6
style_init_reset(&styles->gauge_strong);
11668: 6820 ldr r0, [r4, #0]
1166a: 3060 adds r0, #96 ; 0x60
1166c: 47c0 blx r8
lv_style_set_line_color(&styles->gauge_strong, LV_STATE_DEFAULT, lv_color_hex3(0x888));
1166e: 6820 ldr r0, [r4, #0]
11670: f100 0a60 add.w sl, r0, #96 ; 0x60
11674: f640 0088 movw r0, #2184 ; 0x888
11678: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
1167a: 2199 movs r1, #153 ; 0x99
1167c: 4602 mov r2, r0
1167e: 4650 mov r0, sl
11680: 47b8 blx r7
lv_style_set_scale_grad_color(&styles->gauge_strong, LV_STATE_DEFAULT, lv_color_hex3(0x888));
11682: 6820 ldr r0, [r4, #0]
11684: f100 0a60 add.w sl, r0, #96 ; 0x60
11688: f640 0088 movw r0, #2184 ; 0x888
1168c: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar)
1168e: 21c9 movs r1, #201 ; 0xc9
11690: 4602 mov r2, r0
11692: 4650 mov r0, sl
11694: 47b8 blx r7
lv_style_set_scale_end_color(&styles->gauge_strong, LV_STATE_DEFAULT, theme.color_primary);
11696: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar)
11698: 89a2 ldrh r2, [r4, #12]
1169a: 21ca movs r1, #202 ; 0xca
1169c: 3060 adds r0, #96 ; 0x60
1169e: 47b8 blx r7
lv_style_set_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
116a0: 6823 ldr r3, [r4, #0]
116a2: 2000 movs r0, #0
116a4: f103 0960 add.w r9, r3, #96 ; 0x60
116a8: 47a8 blx r5
116aa: 281d cmp r0, #29
116ac: f340 80c8 ble.w 11840 <gauge_init+0x398>
116b0: 2000 movs r0, #0
116b2: 47a8 blx r5
116b4: 2314 movs r3, #20
116b6: f100 020a add.w r2, r0, #10
116ba: fb92 f2f3 sdiv r2, r2, r3
116be: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
116c0: 4648 mov r0, r9
116c2: 2190 movs r1, #144 ; 0x90
116c4: 47b0 blx r6
lv_style_set_scale_end_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
116c6: 6823 ldr r3, [r4, #0]
116c8: 2000 movs r0, #0
116ca: f103 0960 add.w r9, r3, #96 ; 0x60
116ce: 47a8 blx r5
116d0: 281d cmp r0, #29
116d2: f340 80b7 ble.w 11844 <gauge_init+0x39c>
116d6: 2000 movs r0, #0
116d8: 47a8 blx r5
116da: 2314 movs r3, #20
116dc: f100 020a add.w r2, r0, #10
116e0: fb92 f2f3 sdiv r2, r2, r3
116e4: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar)
116e6: 4648 mov r0, r9
116e8: 21c3 movs r1, #195 ; 0xc3
116ea: 47b0 blx r6
lv_style_set_scale_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(25));
116ec: 6823 ldr r3, [r4, #0]
116ee: 2000 movs r0, #0
116f0: f103 0960 add.w r9, r3, #96 ; 0x60
116f4: 47a8 blx r5
116f6: eb00 0080 add.w r0, r0, r0, lsl #2
116fa: eb00 0080 add.w r0, r0, r0, lsl #2
116fe: 28ef cmp r0, #239 ; 0xef
11700: f340 80a2 ble.w 11848 <gauge_init+0x3a0>
11704: 2000 movs r0, #0
11706: 47a8 blx r5
11708: 2319 movs r3, #25
1170a: 2250 movs r2, #80 ; 0x50
1170c: fb00 2203 mla r2, r0, r3, r2
11710: 23a0 movs r3, #160 ; 0xa0
11712: fb92 f2f3 sdiv r2, r2, r3
11716: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
11718: 21c0 movs r1, #192 ; 0xc0
1171a: 4648 mov r0, r9
1171c: 47b0 blx r6
style_init_reset(&styles->gauge_needle);
1171e: 6820 ldr r0, [r4, #0]
11720: 3064 adds r0, #100 ; 0x64
11722: 47c0 blx r8
lv_style_set_line_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE);
11724: 6823 ldr r3, [r4, #0]
11726: f103 0864 add.w r8, r3, #100 ; 0x64
1172a: 6a23 ldr r3, [r4, #32]
1172c: 079a lsls r2, r3, #30
1172e: f140 808d bpl.w 1184c <gauge_init+0x3a4>
11732: 4819 ldr r0, [pc, #100] ; (11798 <gauge_init+0x2f0>)
11734: 4b19 ldr r3, [pc, #100] ; (1179c <gauge_init+0x2f4>)
11736: 4798 blx r3
11738: 4602 mov r2, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
1173a: 4640 mov r0, r8
1173c: 2199 movs r1, #153 ; 0x99
1173e: 47b8 blx r7
lv_style_set_line_width(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(8));
11740: 6823 ldr r3, [r4, #0]
11742: 2000 movs r0, #0
11744: f103 0864 add.w r8, r3, #100 ; 0x64
11748: 47a8 blx r5
1174a: 281d cmp r0, #29
1174c: f340 8081 ble.w 11852 <gauge_init+0x3aa>
11750: 2000 movs r0, #0
11752: 47a8 blx r5
11754: 2314 movs r3, #20
11756: f100 020a add.w r2, r0, #10
1175a: fb92 f2f3 sdiv r2, r2, r3
1175e: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
11760: 4640 mov r0, r8
11762: 2190 movs r1, #144 ; 0x90
11764: 47b0 blx r6
lv_style_set_bg_opa(&styles->gauge_needle, LV_STATE_DEFAULT, LV_OPA_COVER);
11766: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
11768: 4b0d ldr r3, [pc, #52] ; (117a0 <gauge_init+0x2f8>)
1176a: 22ff movs r2, #255 ; 0xff
1176c: 212c movs r1, #44 ; 0x2c
1176e: 3064 adds r0, #100 ; 0x64
11770: 4798 blx r3
lv_style_set_bg_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE);
11772: 6823 ldr r3, [r4, #0]
11774: f103 0864 add.w r8, r3, #100 ; 0x64
11778: 6a23 ldr r3, [r4, #32]
1177a: 079b lsls r3, r3, #30
1177c: d56b bpl.n 11856 <gauge_init+0x3ae>
1177e: 4806 ldr r0, [pc, #24] ; (11798 <gauge_init+0x2f0>)
11780: 4b06 ldr r3, [pc, #24] ; (1179c <gauge_init+0x2f4>)
11782: 4798 blx r3
11784: 4602 mov r2, r0
11786: e011 b.n 117ac <gauge_init+0x304>
11788: 200057a4 .word 0x200057a4
1178c: 00005bcd .word 0x00005bcd
11790: 0000dbd5 .word 0x0000dbd5
11794: 00005afd .word 0x00005afd
11798: 00464b5b .word 0x00464b5b
1179c: 0001112d .word 0x0001112d
117a0: 00005c9d .word 0x00005c9d
117a4: 00010d4d .word 0x00010d4d
117a8: 00010581 .word 0x00010581
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
117ac: 2129 movs r1, #41 ; 0x29
117ae: 4640 mov r0, r8
117b0: 47b8 blx r7
lv_style_set_radius(&styles->gauge_needle, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
117b2: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
117b4: f647 72ff movw r2, #32767 ; 0x7fff
117b8: 2101 movs r1, #1
117ba: 3064 adds r0, #100 ; 0x64
117bc: 47b0 blx r6
lv_style_set_size(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(30));
117be: 2000 movs r0, #0
117c0: 6827 ldr r7, [r4, #0]
117c2: 47a8 blx r5
117c4: ebc0 1000 rsb r0, r0, r0, lsl #4
117c8: 0040 lsls r0, r0, #1
117ca: 28ef cmp r0, #239 ; 0xef
117cc: f107 0764 add.w r7, r7, #100 ; 0x64
117d0: dd44 ble.n 1185c <gauge_init+0x3b4>
117d2: 2000 movs r0, #0
117d4: 47a8 blx r5
117d6: 231e movs r3, #30
117d8: 2250 movs r2, #80 ; 0x50
117da: fb00 2203 mla r2, r0, r3, r2
117de: 23a0 movs r3, #160 ; 0xa0
117e0: fb92 f2f3 sdiv r2, r2, r3
117e4: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
117e6: 2103 movs r1, #3
117e8: 4638 mov r0, r7
117ea: 47b0 blx r6
lv_style_set_pad_inner(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(10));
117ec: 2000 movs r0, #0
117ee: 6824 ldr r4, [r4, #0]
117f0: 47a8 blx r5
117f2: eb00 0080 add.w r0, r0, r0, lsl #2
117f6: 0040 lsls r0, r0, #1
117f8: 28ef cmp r0, #239 ; 0xef
117fa: f104 0464 add.w r4, r4, #100 ; 0x64
117fe: dd2f ble.n 11860 <gauge_init+0x3b8>
11800: 2000 movs r0, #0
11802: 47a8 blx r5
11804: 230a movs r3, #10
11806: 2250 movs r2, #80 ; 0x50
11808: fb00 2203 mla r2, r0, r3, r2
1180c: 23a0 movs r3, #160 ; 0xa0
1180e: fb92 f2f3 sdiv r2, r2, r3
11812: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
11814: 4620 mov r0, r4
11816: 4633 mov r3, r6
11818: 2114 movs r1, #20
}
1181a: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
1181e: 4718 bx r3
lv_style_set_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(5));
11820: 2201 movs r2, #1
11822: e67a b.n 1151a <gauge_init+0x72>
lv_style_set_scale_end_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(4));
11824: 2201 movs r2, #1
11826: e68c b.n 11542 <gauge_init+0x9a>
lv_style_set_scale_end_border_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(8));
11828: 2201 movs r2, #1
1182a: e69d b.n 11568 <gauge_init+0xc0>
lv_style_set_pad_left(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
1182c: 2201 movs r2, #1
1182e: e6b3 b.n 11598 <gauge_init+0xf0>
lv_style_set_pad_right(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
11830: 2201 movs r2, #1
11832: e6c9 b.n 115c8 <gauge_init+0x120>
lv_style_set_pad_top(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
11834: 2201 movs r2, #1
11836: e6df b.n 115f8 <gauge_init+0x150>
lv_style_set_pad_inner(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20));
11838: 2201 movs r2, #1
1183a: e6f5 b.n 11628 <gauge_init+0x180>
lv_style_set_scale_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(15));
1183c: 2201 movs r2, #1
1183e: e70a b.n 11656 <gauge_init+0x1ae>
lv_style_set_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
11840: 2201 movs r2, #1
11842: e73d b.n 116c0 <gauge_init+0x218>
lv_style_set_scale_end_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8));
11844: 2201 movs r2, #1
11846: e74e b.n 116e6 <gauge_init+0x23e>
lv_style_set_scale_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(25));
11848: 2201 movs r2, #1
1184a: e765 b.n 11718 <gauge_init+0x270>
lv_style_set_line_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE);
1184c: 4b05 ldr r3, [pc, #20] ; (11864 <gauge_init+0x3bc>)
1184e: 881a ldrh r2, [r3, #0]
11850: e773 b.n 1173a <gauge_init+0x292>
lv_style_set_line_width(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(8));
11852: 2201 movs r2, #1
11854: e784 b.n 11760 <gauge_init+0x2b8>
lv_style_set_bg_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE);
11856: 4b03 ldr r3, [pc, #12] ; (11864 <gauge_init+0x3bc>)
11858: 881a ldrh r2, [r3, #0]
1185a: e7a7 b.n 117ac <gauge_init+0x304>
lv_style_set_size(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(30));
1185c: 2201 movs r2, #1
1185e: e7c2 b.n 117e6 <gauge_init+0x33e>
lv_style_set_pad_inner(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(10));
11860: 2201 movs r2, #1
11862: e7d7 b.n 11814 <gauge_init+0x36c>
11864: 0002bcf6 .word 0x0002bcf6
00011868 <chart_init>:
{
11868: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
style_init_reset(&styles->chart_bg);
1186c: 4d68 ldr r5, [pc, #416] ; (11a10 <chart_init+0x1a8>)
1186e: 4f69 ldr r7, [pc, #420] ; (11a14 <chart_init+0x1ac>)
11870: 6828 ldr r0, [r5, #0]
11872: f8df 91bc ldr.w r9, [pc, #444] ; 11a30 <chart_init+0x1c8>
11876: 3040 adds r0, #64 ; 0x40
11878: 47b8 blx r7
lv_style_set_text_color(&styles->chart_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
1187a: 6a2b ldr r3, [r5, #32]
1187c: 682c ldr r4, [r5, #0]
1187e: f013 0f02 tst.w r3, #2
11882: f104 0440 add.w r4, r4, #64 ; 0x40
11886: f000 80b1 beq.w 119ec <chart_init+0x184>
1188a: 4b63 ldr r3, [pc, #396] ; (11a18 <chart_init+0x1b0>)
1188c: f640 20aa movw r0, #2730 ; 0xaaa
11890: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
11892: 4602 mov r2, r0
11894: f248 0189 movw r1, #32905 ; 0x8089
11898: 4620 mov r0, r4
1189a: f8df 8198 ldr.w r8, [pc, #408] ; 11a34 <chart_init+0x1cc>
lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1));
1189e: 4c5f ldr r4, [pc, #380] ; (11a1c <chart_init+0x1b4>)
118a0: 47c0 blx r8
style_init_reset(&styles->chart_series_bg);
118a2: 6828 ldr r0, [r5, #0]
118a4: 3044 adds r0, #68 ; 0x44
118a6: 47b8 blx r7
lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1));
118a8: 2000 movs r0, #0
118aa: 682e ldr r6, [r5, #0]
118ac: 47a0 blx r4
118ae: 28ef cmp r0, #239 ; 0xef
118b0: f106 0644 add.w r6, r6, #68 ; 0x44
118b4: f340 809d ble.w 119f2 <chart_init+0x18a>
118b8: 2000 movs r0, #0
118ba: 47a0 blx r4
118bc: 23a0 movs r3, #160 ; 0xa0
118be: f100 0250 add.w r2, r0, #80 ; 0x50
118c2: fb92 f2f3 sdiv r2, r2, r3
118c6: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
118c8: 4630 mov r0, r6
118ca: 2190 movs r1, #144 ; 0x90
118cc: 4e54 ldr r6, [pc, #336] ; (11a20 <chart_init+0x1b8>)
118ce: 47b0 blx r6
lv_style_set_line_dash_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
118d0: 682b ldr r3, [r5, #0]
118d2: 2000 movs r0, #0
118d4: f103 0a44 add.w sl, r3, #68 ; 0x44
118d8: 47a0 blx r4
118da: eb00 0080 add.w r0, r0, r0, lsl #2
118de: 0040 lsls r0, r0, #1
118e0: 28ef cmp r0, #239 ; 0xef
118e2: f340 8088 ble.w 119f6 <chart_init+0x18e>
118e6: 2000 movs r0, #0
118e8: 47a0 blx r4
118ea: 230a movs r3, #10
118ec: 2250 movs r2, #80 ; 0x50
118ee: fb00 2203 mla r2, r0, r3, r2
118f2: 23a0 movs r3, #160 ; 0xa0
118f4: fb92 f2f3 sdiv r2, r2, r3
118f8: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_DASH_WIDTH, line_dash_width, lv_style_int_t, _int, scalar)
118fa: 4650 mov r0, sl
118fc: 2192 movs r1, #146 ; 0x92
118fe: 47b0 blx r6
lv_style_set_line_dash_gap(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
11900: 682b ldr r3, [r5, #0]
11902: 2000 movs r0, #0
11904: f103 0a44 add.w sl, r3, #68 ; 0x44
11908: 47a0 blx r4
1190a: eb00 0080 add.w r0, r0, r0, lsl #2
1190e: 0040 lsls r0, r0, #1
11910: 28ef cmp r0, #239 ; 0xef
11912: dd72 ble.n 119fa <chart_init+0x192>
11914: 2000 movs r0, #0
11916: 47a0 blx r4
11918: 230a movs r3, #10
1191a: 2250 movs r2, #80 ; 0x50
1191c: fb00 2203 mla r2, r0, r3, r2
11920: 23a0 movs r3, #160 ; 0xa0
11922: fb92 f2f3 sdiv r2, r2, r3
11926: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_DASH_GAP, line_dash_gap, lv_style_int_t, _int, scalar)
11928: 4650 mov r0, sl
1192a: 2193 movs r1, #147 ; 0x93
1192c: 47b0 blx r6
lv_style_set_line_color(&styles->chart_series_bg, LV_STATE_DEFAULT, COLOR_BG_BORDER);
1192e: 682b ldr r3, [r5, #0]
11930: f103 0a44 add.w sl, r3, #68 ; 0x44
11934: 6a2b ldr r3, [r5, #32]
11936: 079b lsls r3, r3, #30
11938: bf4c ite mi
1193a: 483a ldrmi r0, [pc, #232] ; (11a24 <chart_init+0x1bc>)
1193c: 483a ldrpl r0, [pc, #232] ; (11a28 <chart_init+0x1c0>)
1193e: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
11940: 2199 movs r1, #153 ; 0x99
11942: 4602 mov r2, r0
11944: 4650 mov r0, sl
11946: 47c0 blx r8
style_init_reset(&styles->chart_series);
11948: 6828 ldr r0, [r5, #0]
1194a: 3048 adds r0, #72 ; 0x48
1194c: 47b8 blx r7
lv_style_set_line_width(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(3));
1194e: 2000 movs r0, #0
11950: 682f ldr r7, [r5, #0]
11952: 47a0 blx r4
11954: eb00 0040 add.w r0, r0, r0, lsl #1
11958: 28ef cmp r0, #239 ; 0xef
1195a: f107 0748 add.w r7, r7, #72 ; 0x48
1195e: dd4e ble.n 119fe <chart_init+0x196>
11960: 2000 movs r0, #0
11962: 47a0 blx r4
11964: 2303 movs r3, #3
11966: 2250 movs r2, #80 ; 0x50
11968: fb00 2203 mla r2, r0, r3, r2
1196c: 23a0 movs r3, #160 ; 0xa0
1196e: fb92 f2f3 sdiv r2, r2, r3
11972: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
11974: 4638 mov r0, r7
11976: 2190 movs r1, #144 ; 0x90
11978: 47b0 blx r6
lv_style_set_size(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(4));
1197a: 2000 movs r0, #0
1197c: 682f ldr r7, [r5, #0]
1197e: 47a0 blx r4
11980: 283b cmp r0, #59 ; 0x3b
11982: f107 0748 add.w r7, r7, #72 ; 0x48
11986: dd3c ble.n 11a02 <chart_init+0x19a>
11988: 2000 movs r0, #0
1198a: 47a0 blx r4
1198c: 2328 movs r3, #40 ; 0x28
1198e: f100 0214 add.w r2, r0, #20
11992: fb92 f2f3 sdiv r2, r2, r3
11996: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
11998: 4638 mov r0, r7
1199a: 2103 movs r1, #3
1199c: 47b0 blx r6
lv_style_set_pad_inner(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(2)); /*Space between columns*/
1199e: 2000 movs r0, #0
119a0: 682f ldr r7, [r5, #0]
119a2: 47a0 blx r4
119a4: 2877 cmp r0, #119 ; 0x77
119a6: f107 0748 add.w r7, r7, #72 ; 0x48
119aa: dd2c ble.n 11a06 <chart_init+0x19e>
119ac: 2000 movs r0, #0
119ae: 47a0 blx r4
119b0: 2350 movs r3, #80 ; 0x50
119b2: f100 0228 add.w r2, r0, #40 ; 0x28
119b6: fb92 f2f3 sdiv r2, r2, r3
119ba: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
119bc: 2114 movs r1, #20
119be: 4638 mov r0, r7
119c0: 47b0 blx r6
lv_style_set_radius(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(1));
119c2: 2000 movs r0, #0
119c4: 682d ldr r5, [r5, #0]
119c6: 47a0 blx r4
119c8: 28ef cmp r0, #239 ; 0xef
119ca: f105 0548 add.w r5, r5, #72 ; 0x48
119ce: dd1c ble.n 11a0a <chart_init+0x1a2>
119d0: 2000 movs r0, #0
119d2: 47a0 blx r4
119d4: 23a0 movs r3, #160 ; 0xa0
119d6: f100 0250 add.w r2, r0, #80 ; 0x50
119da: fb92 f2f3 sdiv r2, r2, r3
119de: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
119e0: 4628 mov r0, r5
119e2: 4633 mov r3, r6
119e4: 2101 movs r1, #1
}
119e6: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
119ea: 4718 bx r3
lv_style_set_text_color(&styles->chart_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
119ec: 480f ldr r0, [pc, #60] ; (11a2c <chart_init+0x1c4>)
119ee: 47c8 blx r9
119f0: e74f b.n 11892 <chart_init+0x2a>
lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1));
119f2: 2201 movs r2, #1
119f4: e768 b.n 118c8 <chart_init+0x60>
lv_style_set_line_dash_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
119f6: 2201 movs r2, #1
119f8: e77f b.n 118fa <chart_init+0x92>
lv_style_set_line_dash_gap(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10));
119fa: 2201 movs r2, #1
119fc: e794 b.n 11928 <chart_init+0xc0>
lv_style_set_line_width(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(3));
119fe: 2201 movs r2, #1
11a00: e7b8 b.n 11974 <chart_init+0x10c>
lv_style_set_size(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(4));
11a02: 2201 movs r2, #1
11a04: e7c8 b.n 11998 <chart_init+0x130>
lv_style_set_pad_inner(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(2)); /*Space between columns*/
11a06: 2201 movs r2, #1
11a08: e7d8 b.n 119bc <chart_init+0x154>
lv_style_set_radius(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(1));
11a0a: 2201 movs r2, #1
11a0c: e7e8 b.n 119e0 <chart_init+0x178>
11a0e: bf00 nop
11a10: 200057a4 .word 0x200057a4
11a14: 00010d4d .word 0x00010d4d
11a18: 00010581 .word 0x00010581
11a1c: 0000dbd5 .word 0x0000dbd5
11a20: 00005afd .word 0x00005afd
11a24: 00d6dde3 .word 0x00d6dde3
11a28: 00808a97 .word 0x00808a97
11a2c: 00a1adbd .word 0x00a1adbd
11a30: 0001112d .word 0x0001112d
11a34: 00005bcd .word 0x00005bcd
00011a38 <basic_init>:
{
11a38: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
11a3c: ed2d 8b02 vpush {d8}
style_init_reset(&styles->scr);
11a40: 4ca1 ldr r4, [pc, #644] ; (11cc8 <basic_init+0x290>)
11a42: 4fa2 ldr r7, [pc, #648] ; (11ccc <basic_init+0x294>)
11a44: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
11a46: 4da2 ldr r5, [pc, #648] ; (11cd0 <basic_init+0x298>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
11a48: f8df a2b0 ldr.w sl, [pc, #688] ; 11cfc <basic_init+0x2c4>
{
11a4c: b083 sub sp, #12
style_init_reset(&styles->scr);
11a4e: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
11a50: 6820 ldr r0, [r4, #0]
11a52: 22ff movs r2, #255 ; 0xff
11a54: 212c movs r1, #44 ; 0x2c
11a56: 47a8 blx r5
lv_style_set_bg_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR);
11a58: 6a23 ldr r3, [r4, #32]
11a5a: 6826 ldr r6, [r4, #0]
11a5c: f013 0f02 tst.w r3, #2
11a60: bf14 ite ne
11a62: 489c ldrne r0, [pc, #624] ; (11cd4 <basic_init+0x29c>)
11a64: 489c ldreq r0, [pc, #624] ; (11cd8 <basic_init+0x2a0>)
11a66: 46ab mov fp, r5
11a68: 4d9c ldr r5, [pc, #624] ; (11cdc <basic_init+0x2a4>)
11a6a: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
11a6c: 46b9 mov r9, r7
11a6e: 4602 mov r2, r0
11a70: 4f9b ldr r7, [pc, #620] ; (11ce0 <basic_init+0x2a8>)
11a72: 4630 mov r0, r6
11a74: 2129 movs r1, #41 ; 0x29
11a76: 47b8 blx r7
lv_style_set_text_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR_TEXT);
11a78: 6a23 ldr r3, [r4, #32]
11a7a: 6826 ldr r6, [r4, #0]
11a7c: 0798 lsls r0, r3, #30
11a7e: bf4c ite mi
11a80: 4898 ldrmi r0, [pc, #608] ; (11ce4 <basic_init+0x2ac>)
11a82: 4899 ldrpl r0, [pc, #612] ; (11ce8 <basic_init+0x2b0>)
11a84: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
11a86: f248 0189 movw r1, #32905 ; 0x8089
11a8a: 4602 mov r2, r0
11a8c: 4630 mov r0, r6
11a8e: 47b8 blx r7
lv_style_set_value_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR_TEXT);
11a90: 6a23 ldr r3, [r4, #32]
11a92: 6826 ldr r6, [r4, #0]
11a94: 0799 lsls r1, r3, #30
11a96: bf4c ite mi
11a98: 4892 ldrmi r0, [pc, #584] ; (11ce4 <basic_init+0x2ac>)
11a9a: 4893 ldrpl r0, [pc, #588] ; (11ce8 <basic_init+0x2b0>)
11a9c: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
11a9e: 2179 movs r1, #121 ; 0x79
11aa0: 4602 mov r2, r0
11aa2: 4630 mov r0, r6
11aa4: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
11aa6: 6962 ldr r2, [r4, #20]
11aa8: 6820 ldr r0, [r4, #0]
lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8));
11aaa: 4e90 ldr r6, [pc, #576] ; (11cec <basic_init+0x2b4>)
11aac: f248 018e movw r1, #32910 ; 0x808e
11ab0: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
11ab2: 6962 ldr r2, [r4, #20]
11ab4: 6820 ldr r0, [r4, #0]
11ab6: 217e movs r1, #126 ; 0x7e
11ab8: 47d0 blx sl
style_init_reset(&styles->bg);
11aba: 6820 ldr r0, [r4, #0]
11abc: 3004 adds r0, #4
11abe: 47c8 blx r9
lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8));
11ac0: 6823 ldr r3, [r4, #0]
11ac2: 2000 movs r0, #0
11ac4: f103 0804 add.w r8, r3, #4
11ac8: 47b0 blx r6
11aca: 281d cmp r0, #29
11acc: f340 8568 ble.w 125a0 <basic_init+0xb68>
11ad0: 2000 movs r0, #0
11ad2: 47b0 blx r6
11ad4: 2314 movs r3, #20
11ad6: f100 020a add.w r2, r0, #10
11ada: fb92 f2f3 sdiv r2, r2, r3
11ade: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
11ae0: 4640 mov r0, r8
11ae2: 2101 movs r1, #1
11ae4: f8df 8218 ldr.w r8, [pc, #536] ; 11d00 <basic_init+0x2c8>
11ae8: 47c0 blx r8
lv_style_set_bg_opa(&styles->bg, LV_STATE_DEFAULT, LV_OPA_COVER);
11aea: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
11aec: 22ff movs r2, #255 ; 0xff
11aee: 3004 adds r0, #4
11af0: 212c movs r1, #44 ; 0x2c
11af2: 47d8 blx fp
lv_style_set_bg_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG);
11af4: 6823 ldr r3, [r4, #0]
11af6: f103 0b04 add.w fp, r3, #4
11afa: 6a23 ldr r3, [r4, #32]
11afc: 079a lsls r2, r3, #30
11afe: bf54 ite pl
11b00: 487b ldrpl r0, [pc, #492] ; (11cf0 <basic_init+0x2b8>)
11b02: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000
11b06: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
11b08: 2129 movs r1, #41 ; 0x29
11b0a: 4602 mov r2, r0
11b0c: 4658 mov r0, fp
11b0e: 47b8 blx r7
lv_style_set_border_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_BORDER);
11b10: 6823 ldr r3, [r4, #0]
11b12: f103 0b04 add.w fp, r3, #4
11b16: 6a23 ldr r3, [r4, #32]
11b18: 079b lsls r3, r3, #30
11b1a: bf4c ite mi
11b1c: 4875 ldrmi r0, [pc, #468] ; (11cf4 <basic_init+0x2bc>)
11b1e: 4876 ldrpl r0, [pc, #472] ; (11cf8 <basic_init+0x2c0>)
11b20: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
11b22: 2139 movs r1, #57 ; 0x39
11b24: 4602 mov r2, r0
11b26: 4658 mov r0, fp
11b28: 47b8 blx r7
lv_style_set_border_color(&styles->bg, LV_STATE_FOCUSED, theme.color_primary);
11b2a: 6820 ldr r0, [r4, #0]
11b2c: 89a2 ldrh r2, [r4, #12]
11b2e: f240 2139 movw r1, #569 ; 0x239
11b32: 3004 adds r0, #4
11b34: 47b8 blx r7
lv_style_set_border_color(&styles->bg, LV_STATE_EDITED, theme.color_secondary);
11b36: 6820 ldr r0, [r4, #0]
11b38: 89e2 ldrh r2, [r4, #14]
11b3a: f240 4139 movw r1, #1081 ; 0x439
11b3e: 3004 adds r0, #4
11b40: 47b8 blx r7
lv_style_set_border_width(&styles->bg, LV_STATE_DEFAULT, BORDER_WIDTH);
11b42: 6823 ldr r3, [r4, #0]
11b44: 2000 movs r0, #0
11b46: f103 0b04 add.w fp, r3, #4
11b4a: 47b0 blx r6
11b4c: 2877 cmp r0, #119 ; 0x77
11b4e: f340 852a ble.w 125a6 <basic_init+0xb6e>
11b52: 2000 movs r0, #0
11b54: 47b0 blx r6
11b56: 2350 movs r3, #80 ; 0x50
11b58: f100 0228 add.w r2, r0, #40 ; 0x28
11b5c: fb92 f2f3 sdiv r2, r2, r3
11b60: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
11b62: 4658 mov r0, fp
11b64: 2130 movs r1, #48 ; 0x30
11b66: 47c0 blx r8
lv_style_set_border_post(&styles->bg, LV_STATE_DEFAULT, true);
11b68: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
11b6a: 2201 movs r2, #1
11b6c: 2133 movs r1, #51 ; 0x33
11b6e: 3004 adds r0, #4
11b70: 47c0 blx r8
lv_style_set_text_font(&styles->bg, LV_STATE_DEFAULT, theme.font_normal);
11b72: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
11b74: 6962 ldr r2, [r4, #20]
11b76: 3004 adds r0, #4
11b78: f248 018e movw r1, #32910 ; 0x808e
11b7c: 47d0 blx sl
lv_style_set_text_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
11b7e: 6823 ldr r3, [r4, #0]
11b80: f103 0b04 add.w fp, r3, #4
11b84: 6a23 ldr r3, [r4, #32]
11b86: 0798 lsls r0, r3, #30
11b88: bf4c ite mi
11b8a: 4856 ldrmi r0, [pc, #344] ; (11ce4 <basic_init+0x2ac>)
11b8c: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
11b90: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
11b92: f248 0189 movw r1, #32905 ; 0x8089
11b96: 4602 mov r2, r0
11b98: 4658 mov r0, fp
11b9a: 47b8 blx r7
lv_style_set_value_font(&styles->bg, LV_STATE_DEFAULT, theme.font_normal);
11b9c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar)
11b9e: 6962 ldr r2, [r4, #20]
11ba0: 3004 adds r0, #4
11ba2: 217e movs r1, #126 ; 0x7e
11ba4: 47d0 blx sl
lv_style_set_value_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
11ba6: 6823 ldr r3, [r4, #0]
11ba8: f103 0a04 add.w sl, r3, #4
11bac: 6a23 ldr r3, [r4, #32]
11bae: 0799 lsls r1, r3, #30
11bb0: bf4c ite mi
11bb2: 484c ldrmi r0, [pc, #304] ; (11ce4 <basic_init+0x2ac>)
11bb4: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
11bb8: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
11bba: 2179 movs r1, #121 ; 0x79
11bbc: 4602 mov r2, r0
11bbe: 4650 mov r0, sl
11bc0: 47b8 blx r7
lv_style_set_image_recolor(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
11bc2: 6823 ldr r3, [r4, #0]
11bc4: f103 0a04 add.w sl, r3, #4
11bc8: 6a23 ldr r3, [r4, #32]
11bca: 079a lsls r2, r3, #30
11bcc: bf4c ite mi
11bce: 4845 ldrmi r0, [pc, #276] ; (11ce4 <basic_init+0x2ac>)
11bd0: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
11bd4: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
11bd6: f248 01a9 movw r1, #32937 ; 0x80a9
11bda: 4602 mov r2, r0
11bdc: 4650 mov r0, sl
11bde: 47b8 blx r7
lv_style_set_line_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT);
11be0: 6823 ldr r3, [r4, #0]
11be2: f103 0a04 add.w sl, r3, #4
11be6: 6a23 ldr r3, [r4, #32]
11be8: 079b lsls r3, r3, #30
11bea: bf4c ite mi
11bec: 483d ldrmi r0, [pc, #244] ; (11ce4 <basic_init+0x2ac>)
11bee: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
11bf2: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
11bf4: 2199 movs r1, #153 ; 0x99
11bf6: 4602 mov r2, r0
11bf8: 4650 mov r0, sl
11bfa: 47b8 blx r7
lv_style_set_line_width(&styles->bg, LV_STATE_DEFAULT, 1);
11bfc: 6820 ldr r0, [r4, #0]
lv_style_set_pad_left(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
11bfe: f8df a104 ldr.w sl, [pc, #260] ; 11d04 <basic_init+0x2cc>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
11c02: 2201 movs r2, #1
11c04: 2190 movs r1, #144 ; 0x90
11c06: 3004 adds r0, #4
11c08: 47c0 blx r8
11c0a: 6823 ldr r3, [r4, #0]
11c0c: 2000 movs r0, #0
11c0e: 3304 adds r3, #4
11c10: ee08 3a10 vmov s16, r3
11c14: 47d0 blx sl
11c16: 2801 cmp r0, #1
11c18: f04f 0000 mov.w r0, #0
11c1c: f200 84d3 bhi.w 125c6 <basic_init+0xb8e>
11c20: 47b0 blx r6
11c22: ebc0 1000 rsb r0, r0, r0, lsl #4
11c26: 28ef cmp r0, #239 ; 0xef
11c28: f300 84c0 bgt.w 125ac <basic_init+0xb74>
11c2c: f04f 0b01 mov.w fp, #1
11c30: 2000 movs r0, #0
11c32: 47b0 blx r6
11c34: 2877 cmp r0, #119 ; 0x77
11c36: f340 84d1 ble.w 125dc <basic_init+0xba4>
11c3a: 2000 movs r0, #0
11c3c: 47b0 blx r6
11c3e: 2350 movs r3, #80 ; 0x50
11c40: 3028 adds r0, #40 ; 0x28
11c42: fb90 f0f3 sdiv r0, r0, r3
11c46: b280 uxth r0, r0
11c48: eb0b 0200 add.w r2, fp, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
11c4c: b212 sxth r2, r2
11c4e: ee18 0a10 vmov r0, s16
11c52: 2112 movs r1, #18
11c54: 47c0 blx r8
lv_style_set_pad_right(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
11c56: 6823 ldr r3, [r4, #0]
11c58: 2000 movs r0, #0
11c5a: 3304 adds r3, #4
11c5c: ee08 3a10 vmov s16, r3
11c60: 47d0 blx sl
11c62: 2801 cmp r0, #1
11c64: f04f 0000 mov.w r0, #0
11c68: f200 84c8 bhi.w 125fc <basic_init+0xbc4>
11c6c: 47b0 blx r6
11c6e: ebc0 1000 rsb r0, r0, r0, lsl #4
11c72: 28ef cmp r0, #239 ; 0xef
11c74: f300 84b5 bgt.w 125e2 <basic_init+0xbaa>
11c78: f04f 0b01 mov.w fp, #1
11c7c: 2000 movs r0, #0
11c7e: 47b0 blx r6
11c80: 2877 cmp r0, #119 ; 0x77
11c82: f340 84c6 ble.w 12612 <basic_init+0xbda>
11c86: 2000 movs r0, #0
11c88: 47b0 blx r6
11c8a: 2350 movs r3, #80 ; 0x50
11c8c: 3028 adds r0, #40 ; 0x28
11c8e: fb90 f0f3 sdiv r0, r0, r3
11c92: b280 uxth r0, r0
11c94: eb0b 0200 add.w r2, fp, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
11c98: b212 sxth r2, r2
11c9a: ee18 0a10 vmov r0, s16
11c9e: 2113 movs r1, #19
11ca0: 47c0 blx r8
lv_style_set_pad_top(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
11ca2: 6823 ldr r3, [r4, #0]
11ca4: 2000 movs r0, #0
11ca6: 3304 adds r3, #4
11ca8: ee08 3a10 vmov s16, r3
11cac: 47d0 blx sl
11cae: 2801 cmp r0, #1
11cb0: f04f 0000 mov.w r0, #0
11cb4: f200 84bd bhi.w 12632 <basic_init+0xbfa>
11cb8: 47b0 blx r6
11cba: ebc0 1000 rsb r0, r0, r0, lsl #4
11cbe: 28ef cmp r0, #239 ; 0xef
11cc0: f300 84aa bgt.w 12618 <basic_init+0xbe0>
11cc4: e020 b.n 11d08 <basic_init+0x2d0>
11cc6: bf00 nop
11cc8: 200057a4 .word 0x200057a4
11ccc: 00010d4d .word 0x00010d4d
11cd0: 00005c9d .word 0x00005c9d
11cd4: 00eaeff3 .word 0x00eaeff3
11cd8: 00444b5a .word 0x00444b5a
11cdc: 0001112d .word 0x0001112d
11ce0: 00005bcd .word 0x00005bcd
11ce4: 003b3e42 .word 0x003b3e42
11ce8: 00e7e9ec .word 0x00e7e9ec
11cec: 0000dbd5 .word 0x0000dbd5
11cf0: 00586273 .word 0x00586273
11cf4: 00d6dde3 .word 0x00d6dde3
11cf8: 00808a97 .word 0x00808a97
11cfc: 00005d71 .word 0x00005d71
11d00: 00005afd .word 0x00005afd
11d04: 0000dbed .word 0x0000dbed
11d08: f04f 0b01 mov.w fp, #1
11d0c: 2000 movs r0, #0
11d0e: 47b0 blx r6
11d10: 2877 cmp r0, #119 ; 0x77
11d12: f340 8499 ble.w 12648 <basic_init+0xc10>
11d16: 2000 movs r0, #0
11d18: 47b0 blx r6
11d1a: 2350 movs r3, #80 ; 0x50
11d1c: 3028 adds r0, #40 ; 0x28
11d1e: fb90 f0f3 sdiv r0, r0, r3
11d22: b280 uxth r0, r0
11d24: eb0b 0200 add.w r2, fp, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
11d28: b212 sxth r2, r2
11d2a: ee18 0a10 vmov r0, s16
11d2e: 2110 movs r1, #16
11d30: 47c0 blx r8
lv_style_set_pad_bottom(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
11d32: 6823 ldr r3, [r4, #0]
11d34: 2000 movs r0, #0
11d36: 3304 adds r3, #4
11d38: ee08 3a10 vmov s16, r3
11d3c: 47d0 blx sl
11d3e: 2801 cmp r0, #1
11d40: f04f 0000 mov.w r0, #0
11d44: f200 8490 bhi.w 12668 <basic_init+0xc30>
11d48: 47b0 blx r6
11d4a: ebc0 1000 rsb r0, r0, r0, lsl #4
11d4e: 28ef cmp r0, #239 ; 0xef
11d50: f300 847d bgt.w 1264e <basic_init+0xc16>
11d54: f04f 0b01 mov.w fp, #1
11d58: 2000 movs r0, #0
11d5a: 47b0 blx r6
11d5c: 2877 cmp r0, #119 ; 0x77
11d5e: f340 848e ble.w 1267e <basic_init+0xc46>
11d62: 2000 movs r0, #0
11d64: 47b0 blx r6
11d66: 2350 movs r3, #80 ; 0x50
11d68: 3028 adds r0, #40 ; 0x28
11d6a: fb90 f0f3 sdiv r0, r0, r3
11d6e: b280 uxth r0, r0
11d70: eb0b 0200 add.w r2, fp, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
11d74: b212 sxth r2, r2
11d76: ee18 0a10 vmov r0, s16
11d7a: 2111 movs r1, #17
11d7c: 47c0 blx r8
lv_style_set_pad_inner(&styles->bg, LV_STATE_DEFAULT, PAD_DEF);
11d7e: 6823 ldr r3, [r4, #0]
11d80: 2000 movs r0, #0
11d82: f103 0b04 add.w fp, r3, #4
11d86: 47d0 blx sl
11d88: 2801 cmp r0, #1
11d8a: f04f 0000 mov.w r0, #0
11d8e: f200 8485 bhi.w 1269c <basic_init+0xc64>
11d92: 47b0 blx r6
11d94: ebc0 1000 rsb r0, r0, r0, lsl #4
11d98: 28ef cmp r0, #239 ; 0xef
11d9a: f300 8473 bgt.w 12684 <basic_init+0xc4c>
11d9e: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
11da0: 2114 movs r1, #20
11da2: 4658 mov r0, fp
11da4: 47c0 blx r8
lv_style_set_transition_time(&styles->bg, LV_STATE_DEFAULT, TRANSITION_TIME);
11da6: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
11da8: 2296 movs r2, #150 ; 0x96
11daa: 21b0 movs r1, #176 ; 0xb0
11dac: 3004 adds r0, #4
11dae: 47c0 blx r8
lv_style_set_transition_prop_6(&styles->bg, LV_STATE_DEFAULT, LV_STYLE_BORDER_COLOR);
11db0: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
11db2: 2239 movs r2, #57 ; 0x39
11db4: 21b7 movs r1, #183 ; 0xb7
11db6: 3004 adds r0, #4
11db8: 47c0 blx r8
style_init_reset(&styles->bg_sec);
11dba: 6820 ldr r0, [r4, #0]
11dbc: 300c adds r0, #12
11dbe: 47c8 blx r9
lv_style_copy(&styles->bg_sec, &styles->bg);
11dc0: 6820 ldr r0, [r4, #0]
11dc2: 4bac ldr r3, [pc, #688] ; (12074 <basic_init+0x63c>)
11dc4: 1d01 adds r1, r0, #4
11dc6: 300c adds r0, #12
11dc8: 4798 blx r3
lv_style_set_bg_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC);
11dca: 6a23 ldr r3, [r4, #32]
11dcc: 6826 ldr r6, [r4, #0]
11dce: 0798 lsls r0, r3, #30
11dd0: bf4c ite mi
11dd2: 48a9 ldrmi r0, [pc, #676] ; (12078 <basic_init+0x640>)
11dd4: 48a9 ldrpl r0, [pc, #676] ; (1207c <basic_init+0x644>)
11dd6: 47a8 blx r5
11dd8: 360c adds r6, #12
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
11dda: 4602 mov r2, r0
11ddc: 2129 movs r1, #41 ; 0x29
11dde: 4630 mov r0, r6
11de0: 47b8 blx r7
lv_style_set_border_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_BORDER);
11de2: 6a23 ldr r3, [r4, #32]
11de4: 6826 ldr r6, [r4, #0]
11de6: 0799 lsls r1, r3, #30
11de8: bf4c ite mi
11dea: 48a5 ldrmi r0, [pc, #660] ; (12080 <basic_init+0x648>)
11dec: 48a5 ldrpl r0, [pc, #660] ; (12084 <basic_init+0x64c>)
11dee: 47a8 blx r5
11df0: 360c adds r6, #12
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
11df2: 4602 mov r2, r0
11df4: 2139 movs r1, #57 ; 0x39
11df6: 4630 mov r0, r6
11df8: 47b8 blx r7
lv_style_set_text_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
11dfa: 6a23 ldr r3, [r4, #32]
11dfc: 6826 ldr r6, [r4, #0]
11dfe: 079a lsls r2, r3, #30
11e00: bf4c ite mi
11e02: 48a1 ldrmi r0, [pc, #644] ; (12088 <basic_init+0x650>)
11e04: 48a1 ldrpl r0, [pc, #644] ; (1208c <basic_init+0x654>)
11e06: 47a8 blx r5
11e08: 360c adds r6, #12
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
11e0a: 4602 mov r2, r0
11e0c: f248 0189 movw r1, #32905 ; 0x8089
11e10: 4630 mov r0, r6
11e12: 47b8 blx r7
lv_style_set_value_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
11e14: 6a23 ldr r3, [r4, #32]
11e16: 6826 ldr r6, [r4, #0]
11e18: 079b lsls r3, r3, #30
11e1a: bf4c ite mi
11e1c: 489a ldrmi r0, [pc, #616] ; (12088 <basic_init+0x650>)
11e1e: 489b ldrpl r0, [pc, #620] ; (1208c <basic_init+0x654>)
11e20: 47a8 blx r5
11e22: 360c adds r6, #12
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
11e24: 4602 mov r2, r0
11e26: 2179 movs r1, #121 ; 0x79
11e28: 4630 mov r0, r6
11e2a: 47b8 blx r7
lv_style_set_image_recolor(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
11e2c: 6a23 ldr r3, [r4, #32]
11e2e: 6826 ldr r6, [r4, #0]
11e30: 0798 lsls r0, r3, #30
11e32: bf4c ite mi
11e34: 4894 ldrmi r0, [pc, #592] ; (12088 <basic_init+0x650>)
11e36: 4895 ldrpl r0, [pc, #596] ; (1208c <basic_init+0x654>)
11e38: 47a8 blx r5
11e3a: 360c adds r6, #12
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
11e3c: 4602 mov r2, r0
11e3e: f248 01a9 movw r1, #32937 ; 0x80a9
11e42: 4630 mov r0, r6
11e44: 47b8 blx r7
lv_style_set_line_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
11e46: 6a23 ldr r3, [r4, #32]
11e48: 6826 ldr r6, [r4, #0]
11e4a: 0799 lsls r1, r3, #30
11e4c: bf4c ite mi
11e4e: 488e ldrmi r0, [pc, #568] ; (12088 <basic_init+0x650>)
11e50: 488e ldrpl r0, [pc, #568] ; (1208c <basic_init+0x654>)
11e52: 47a8 blx r5
11e54: 360c adds r6, #12
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
11e56: 4602 mov r2, r0
11e58: 2199 movs r1, #153 ; 0x99
11e5a: 4630 mov r0, r6
11e5c: 47b8 blx r7
style_init_reset(&styles->bg_click);
11e5e: 6820 ldr r0, [r4, #0]
11e60: 3008 adds r0, #8
11e62: 47c8 blx r9
lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_PR);
11e64: 6a23 ldr r3, [r4, #32]
11e66: 6826 ldr r6, [r4, #0]
lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_PR_CHK);
11e68: f8df 9250 ldr.w r9, [pc, #592] ; 120bc <basic_init+0x684>
lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_PR);
11e6c: 079a lsls r2, r3, #30
11e6e: bf4c ite mi
11e70: 4887 ldrmi r0, [pc, #540] ; (12090 <basic_init+0x658>)
11e72: 4888 ldrpl r0, [pc, #544] ; (12094 <basic_init+0x65c>)
11e74: 47a8 blx r5
11e76: 3608 adds r6, #8
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
11e78: 4602 mov r2, r0
11e7a: f241 0129 movw r1, #4137 ; 0x1029
11e7e: 4630 mov r0, r6
11e80: 47b8 blx r7
lv_style_set_bg_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_CHK);
11e82: 6820 ldr r0, [r4, #0]
11e84: 89a2 ldrh r2, [r4, #12]
11e86: f240 1129 movw r1, #297 ; 0x129
11e8a: 3008 adds r0, #8
11e8c: 47b8 blx r7
lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_PR_CHK);
11e8e: 6820 ldr r0, [r4, #0]
11e90: 2133 movs r1, #51 ; 0x33
11e92: f100 0608 add.w r6, r0, #8
11e96: 89a0 ldrh r0, [r4, #12]
11e98: 47c8 blx r9
11e9a: f241 1129 movw r1, #4393 ; 0x1129
11e9e: 4602 mov r2, r0
11ea0: 4630 mov r0, r6
11ea2: 47b8 blx r7
lv_style_set_bg_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_DIS);
11ea4: 6a23 ldr r3, [r4, #32]
11ea6: 6826 ldr r6, [r4, #0]
11ea8: 079b lsls r3, r3, #30
11eaa: bf54 ite pl
11eac: 487a ldrpl r0, [pc, #488] ; (12098 <basic_init+0x660>)
11eae: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000
11eb2: 47a8 blx r5
11eb4: 3608 adds r6, #8
11eb6: 4602 mov r2, r0
11eb8: f242 0129 movw r1, #8233 ; 0x2029
11ebc: 4630 mov r0, r6
11ebe: 47b8 blx r7
lv_style_set_border_width(&styles->bg_click, LV_STATE_CHECKED, 0);
11ec0: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
11ec2: 2200 movs r2, #0
11ec4: f44f 7198 mov.w r1, #304 ; 0x130
11ec8: 3008 adds r0, #8
11eca: 47c0 blx r8
lv_style_set_border_color(&styles->bg_click, LV_STATE_FOCUSED | LV_STATE_PRESSED, lv_color_darken(theme.color_primary,
11ecc: 6820 ldr r0, [r4, #0]
11ece: f8df 81f0 ldr.w r8, [pc, #496] ; 120c0 <basic_init+0x688>
11ed2: f100 0608 add.w r6, r0, #8
11ed6: 2133 movs r1, #51 ; 0x33
11ed8: 89a0 ldrh r0, [r4, #12]
11eda: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
11edc: f241 2139 movw r1, #4665 ; 0x1239
11ee0: 4602 mov r2, r0
11ee2: 4630 mov r0, r6
11ee4: 47b8 blx r7
lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_BORDER_PR);
11ee6: 6a23 ldr r3, [r4, #32]
11ee8: 6826 ldr r6, [r4, #0]
11eea: f013 0f02 tst.w r3, #2
11eee: f106 0608 add.w r6, r6, #8
11ef2: f000 83de beq.w 126b2 <basic_init+0xc7a>
11ef6: f640 40cc movw r0, #3276 ; 0xccc
11efa: 47c0 blx r8
11efc: 4602 mov r2, r0
11efe: f241 0139 movw r1, #4153 ; 0x1039
11f02: 4630 mov r0, r6
11f04: 47b8 blx r7
lv_style_set_border_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_BORDER_CHK);
11f06: 6a23 ldr r3, [r4, #32]
11f08: 6826 ldr r6, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
11f0a: f8df b1b8 ldr.w fp, [pc, #440] ; 120c4 <basic_init+0x68c>
11f0e: 0798 lsls r0, r3, #30
11f10: bf4c ite mi
11f12: 4862 ldrmi r0, [pc, #392] ; (1209c <basic_init+0x664>)
11f14: 4862 ldrpl r0, [pc, #392] ; (120a0 <basic_init+0x668>)
11f16: 47a8 blx r5
11f18: 3608 adds r6, #8
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
11f1a: 4602 mov r2, r0
11f1c: f240 1139 movw r1, #313 ; 0x139
11f20: 4630 mov r0, r6
11f22: 47b8 blx r7
lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_BORDER_CHK_PR);
11f24: 6a23 ldr r3, [r4, #32]
11f26: 4d5f ldr r5, [pc, #380] ; (120a4 <basic_init+0x66c>)
11f28: 6826 ldr r6, [r4, #0]
lv_style_set_border_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_BORDER_DIS);
11f2a: 4c5f ldr r4, [pc, #380] ; (120a8 <basic_init+0x670>)
lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_BORDER_CHK_PR);
11f2c: f013 0f02 tst.w r3, #2
11f30: bf14 ite ne
11f32: 485a ldrne r0, [pc, #360] ; (1209c <basic_init+0x664>)
11f34: 485a ldreq r0, [pc, #360] ; (120a0 <basic_init+0x668>)
11f36: 47a8 blx r5
11f38: 3608 adds r6, #8
11f3a: 4602 mov r2, r0
11f3c: f241 1139 movw r1, #4409 ; 0x1139
11f40: 4630 mov r0, r6
11f42: 47b8 blx r7
lv_style_set_border_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_BORDER_DIS);
11f44: 6a23 ldr r3, [r4, #32]
11f46: 6826 ldr r6, [r4, #0]
11f48: 0799 lsls r1, r3, #30
11f4a: bf4c ite mi
11f4c: 4857 ldrmi r0, [pc, #348] ; (120ac <basic_init+0x674>)
11f4e: 4854 ldrpl r0, [pc, #336] ; (120a0 <basic_init+0x668>)
11f50: 47a8 blx r5
11f52: 3608 adds r6, #8
11f54: 4602 mov r2, r0
11f56: f242 0139 movw r1, #8249 ; 0x2039
11f5a: 4630 mov r0, r6
11f5c: 4e54 ldr r6, [pc, #336] ; (120b0 <basic_init+0x678>)
11f5e: 47b0 blx r6
lv_style_set_text_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_TEXT_PR);
11f60: 6a23 ldr r3, [r4, #32]
11f62: 6827 ldr r7, [r4, #0]
11f64: 079a lsls r2, r3, #30
11f66: bf4c ite mi
11f68: 484c ldrmi r0, [pc, #304] ; (1209c <basic_init+0x664>)
11f6a: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
11f6e: 47a8 blx r5
11f70: 3708 adds r7, #8
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
11f72: 4602 mov r2, r0
11f74: f249 0189 movw r1, #37001 ; 0x9089
11f78: 4638 mov r0, r7
11f7a: 47b0 blx r6
lv_style_set_text_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
11f7c: 6820 ldr r0, [r4, #0]
11f7e: f100 0708 add.w r7, r0, #8
11f82: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
11f86: 47a8 blx r5
11f88: f248 1189 movw r1, #33161 ; 0x8189
11f8c: 4602 mov r2, r0
11f8e: 4638 mov r0, r7
11f90: 47b0 blx r6
lv_style_set_text_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_TEXT_CHK_PR);
11f92: 6820 ldr r0, [r4, #0]
11f94: f100 0708 add.w r7, r0, #8
11f98: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
11f9c: 47a8 blx r5
11f9e: f249 1189 movw r1, #37257 ; 0x9189
11fa2: 4602 mov r2, r0
11fa4: 4638 mov r0, r7
11fa6: 47b0 blx r6
lv_style_set_text_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
11fa8: 6a23 ldr r3, [r4, #32]
11faa: 6827 ldr r7, [r4, #0]
11fac: 079b lsls r3, r3, #30
11fae: bf4c ite mi
11fb0: f640 20aa movwmi r0, #2730 ; 0xaaa
11fb4: f640 1099 movwpl r0, #2457 ; 0x999
11fb8: 47c0 blx r8
11fba: 3708 adds r7, #8
11fbc: 4602 mov r2, r0
11fbe: f24a 0189 movw r1, #41097 ; 0xa089
11fc2: 4638 mov r0, r7
11fc4: 47b0 blx r6
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_TEXT_PR);
11fc6: 6a23 ldr r3, [r4, #32]
11fc8: 6827 ldr r7, [r4, #0]
11fca: 0798 lsls r0, r3, #30
11fcc: bf4c ite mi
11fce: 4833 ldrmi r0, [pc, #204] ; (1209c <basic_init+0x664>)
11fd0: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
11fd4: 47a8 blx r5
11fd6: 3708 adds r7, #8
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
11fd8: 4602 mov r2, r0
11fda: f249 01a9 movw r1, #37033 ; 0x90a9
11fde: 4638 mov r0, r7
11fe0: 47b0 blx r6
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
11fe2: 6820 ldr r0, [r4, #0]
11fe4: f100 0708 add.w r7, r0, #8
11fe8: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
11fec: 47a8 blx r5
11fee: f248 11a9 movw r1, #33193 ; 0x81a9
11ff2: 4602 mov r2, r0
11ff4: 4638 mov r0, r7
11ff6: 47b0 blx r6
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_TEXT_CHK_PR);
11ff8: 6820 ldr r0, [r4, #0]
11ffa: f100 0708 add.w r7, r0, #8
11ffe: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
12002: 47a8 blx r5
12004: f249 11a9 movw r1, #37289 ; 0x91a9
12008: 4602 mov r2, r0
1200a: 4638 mov r0, r7
1200c: 47b0 blx r6
lv_style_set_image_recolor(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
1200e: 6a23 ldr r3, [r4, #32]
12010: 6827 ldr r7, [r4, #0]
12012: 0799 lsls r1, r3, #30
12014: bf4c ite mi
12016: f640 20aa movwmi r0, #2730 ; 0xaaa
1201a: f640 1099 movwpl r0, #2457 ; 0x999
1201e: 47c0 blx r8
12020: 3708 adds r7, #8
12022: 4602 mov r2, r0
12024: f24a 01a9 movw r1, #41129 ; 0xa0a9
12028: 4638 mov r0, r7
1202a: 47b0 blx r6
lv_style_set_transition_prop_5(&styles->bg_click, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR);
1202c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
1202e: 4f21 ldr r7, [pc, #132] ; (120b4 <basic_init+0x67c>)
12030: 2229 movs r2, #41 ; 0x29
12032: 21b6 movs r1, #182 ; 0xb6
12034: 3008 adds r0, #8
12036: 47b8 blx r7
style_init_reset(&styles->btn);
12038: 6820 ldr r0, [r4, #0]
1203a: 4b1f ldr r3, [pc, #124] ; (120b8 <basic_init+0x680>)
1203c: 3010 adds r0, #16
1203e: 4798 blx r3
lv_style_set_radius(&styles->btn, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
12040: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
12042: f647 72ff movw r2, #32767 ; 0x7fff
12046: 2101 movs r1, #1
12048: 3010 adds r0, #16
1204a: 47b8 blx r7
lv_style_set_bg_opa(&styles->btn, LV_STATE_DEFAULT, LV_OPA_COVER);
1204c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
1204e: 22ff movs r2, #255 ; 0xff
12050: 3010 adds r0, #16
12052: 212c movs r1, #44 ; 0x2c
12054: 47d8 blx fp
lv_style_set_bg_color(&styles->btn, LV_STATE_DEFAULT, COLOR_BTN);
12056: 6823 ldr r3, [r4, #0]
12058: f8cd b004 str.w fp, [sp, #4]
1205c: f103 0a10 add.w sl, r3, #16
12060: 6a23 ldr r3, [r4, #32]
12062: f013 0f02 tst.w r3, #2
12066: bf0c ite eq
12068: 480b ldreq r0, [pc, #44] ; (12098 <basic_init+0x660>)
1206a: f06f 407f mvnne.w r0, #4278190080 ; 0xff000000
1206e: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
12070: 2129 movs r1, #41 ; 0x29
12072: e029 b.n 120c8 <basic_init+0x690>
12074: 00005a5d .word 0x00005a5d
12078: 00d4d7d9 .word 0x00d4d7d9
1207c: 0045494d .word 0x0045494d
12080: 00dfe7ed .word 0x00dfe7ed
12084: 00404040 .word 0x00404040
12088: 0031404f .word 0x0031404f
1208c: 00a5a8ad .word 0x00a5a8ad
12090: 00eeeeee .word 0x00eeeeee
12094: 00494f57 .word 0x00494f57
12098: 00586273 .word 0x00586273
1209c: 003b3e42 .word 0x003b3e42
120a0: 005f656e .word 0x005f656e
120a4: 0001112d .word 0x0001112d
120a8: 200057a4 .word 0x200057a4
120ac: 00d6dde3 .word 0x00d6dde3
120b0: 00005bcd .word 0x00005bcd
120b4: 00005afd .word 0x00005afd
120b8: 00010d4d .word 0x00010d4d
120bc: 0000e613 .word 0x0000e613
120c0: 00010581 .word 0x00010581
120c4: 00005c9d .word 0x00005c9d
120c8: 4602 mov r2, r0
120ca: 4650 mov r0, sl
120cc: 47b0 blx r6
lv_style_set_bg_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_PR);
120ce: 6823 ldr r3, [r4, #0]
120d0: f103 0a10 add.w sl, r3, #16
120d4: 6a23 ldr r3, [r4, #32]
120d6: 079a lsls r2, r3, #30
120d8: f140 82ee bpl.w 126b8 <basic_init+0xc80>
120dc: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
120e0: 47a8 blx r5
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
120e2: 7b61 ldrb r1, [r4, #13]
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
120e4: f8b4 c00c ldrh.w ip, [r4, #12]
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
120e8: f04f 0be6 mov.w fp, #230 ; 0xe6
120ec: f3c0 22c4 ubfx r2, r0, #11, #5
120f0: 2319 movs r3, #25
120f2: fb0b f202 mul.w r2, fp, r2
120f6: 08c9 lsrs r1, r1, #3
120f8: fb13 2101 smlabb r1, r3, r1, r2
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
120fc: f3c0 1245 ubfx r2, r0, #5, #6
12100: fb0b f202 mul.w r2, fp, r2
12104: f3cc 1c45 ubfx ip, ip, #5, #6
12108: fb13 2c0c smlabb ip, r3, ip, r2
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
1210c: 7b22 ldrb r2, [r4, #12]
1210e: f000 001f and.w r0, r0, #31
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
12112: f248 0e81 movw lr, #32897 ; 0x8081
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
12116: f002 021f and.w r2, r2, #31
1211a: fb0b f000 mul.w r0, fp, r0
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
1211e: fb0e f101 mul.w r1, lr, r1
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
12122: fb0e fc0c mul.w ip, lr, ip
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
12126: fb13 0202 smlabb r2, r3, r2, r0
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
1212a: f3c1 51c4 ubfx r1, r1, #23, #5
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
1212e: f3cc 5cc5 ubfx ip, ip, #23, #6
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
12132: fb0e f202 mul.w r2, lr, r2
12136: f3c2 52c4 ubfx r2, r2, #23, #5
1213a: ea42 124c orr.w r2, r2, ip, lsl #5
1213e: ea42 22c1 orr.w r2, r2, r1, lsl #11
12142: 4650 mov r0, sl
12144: f241 0129 movw r1, #4137 ; 0x1029
12148: 47b0 blx r6
lv_style_set_bg_color(&styles->btn, LV_STATE_CHECKED, COLOR_BTN_CHK);
1214a: 6820 ldr r0, [r4, #0]
1214c: 89a2 ldrh r2, [r4, #12]
1214e: f240 1129 movw r1, #297 ; 0x129
12152: 3010 adds r0, #16
12154: 47b0 blx r6
lv_style_set_bg_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, COLOR_BTN_CHK_PR);
12156: 6820 ldr r0, [r4, #0]
12158: 214c movs r1, #76 ; 0x4c
1215a: f100 0a10 add.w sl, r0, #16
1215e: 89a0 ldrh r0, [r4, #12]
12160: 47c8 blx r9
12162: f241 1129 movw r1, #4393 ; 0x1129
12166: 4602 mov r2, r0
12168: 4650 mov r0, sl
1216a: 47b0 blx r6
lv_style_set_bg_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN);
1216c: 6823 ldr r3, [r4, #0]
1216e: f103 0910 add.w r9, r3, #16
12172: 6a23 ldr r3, [r4, #32]
12174: 079b lsls r3, r3, #30
12176: bf54 ite pl
12178: 48b2 ldrpl r0, [pc, #712] ; (12444 <basic_init+0xa0c>)
1217a: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000
1217e: 47a8 blx r5
12180: f242 0129 movw r1, #8233 ; 0x2029
12184: 4602 mov r2, r0
12186: 4648 mov r0, r9
12188: 47b0 blx r6
lv_style_set_bg_color(&styles->btn, LV_STATE_DISABLED | LV_STATE_CHECKED, COLOR_BTN_DIS);
1218a: 6823 ldr r3, [r4, #0]
1218c: f103 0910 add.w r9, r3, #16
12190: 6a23 ldr r3, [r4, #32]
12192: 0798 lsls r0, r3, #30
12194: bf4c ite mi
12196: f640 40cc movwmi r0, #3276 ; 0xccc
1219a: f640 0088 movwpl r0, #2184 ; 0x888
1219e: 47c0 blx r8
121a0: f242 1129 movw r1, #8489 ; 0x2129
121a4: 4602 mov r2, r0
121a6: 4648 mov r0, r9
121a8: 47b0 blx r6
lv_style_set_border_color(&styles->btn, LV_STATE_DEFAULT, COLOR_BTN_BORDER);
121aa: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
121ac: 89a2 ldrh r2, [r4, #12]
121ae: 2139 movs r1, #57 ; 0x39
121b0: 3010 adds r0, #16
121b2: 47b0 blx r6
lv_style_set_border_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_BORDER_PR);
121b4: 6820 ldr r0, [r4, #0]
121b6: 89a2 ldrh r2, [r4, #12]
121b8: f241 0139 movw r1, #4153 ; 0x1039
121bc: 3010 adds r0, #16
121be: 47b0 blx r6
lv_style_set_border_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN_BORDER_INA);
121c0: 6823 ldr r3, [r4, #0]
121c2: f103 0910 add.w r9, r3, #16
121c6: 6a23 ldr r3, [r4, #32]
121c8: 0799 lsls r1, r3, #30
121ca: f140 82a0 bpl.w 1270e <basic_init+0xcd6>
121ce: f640 0088 movw r0, #2184 ; 0x888
121d2: 47c0 blx r8
121d4: 4602 mov r2, r0
121d6: f242 0139 movw r1, #8249 ; 0x2039
121da: 4648 mov r0, r9
121dc: 47b0 blx r6
lv_style_set_border_width(&styles->btn, LV_STATE_DEFAULT, BORDER_WIDTH);
121de: 6823 ldr r3, [r4, #0]
121e0: f8df 8270 ldr.w r8, [pc, #624] ; 12454 <basic_init+0xa1c>
121e4: 2000 movs r0, #0
121e6: f103 0910 add.w r9, r3, #16
121ea: 47c0 blx r8
121ec: 2877 cmp r0, #119 ; 0x77
121ee: f340 8291 ble.w 12714 <basic_init+0xcdc>
121f2: 2000 movs r0, #0
121f4: 47c0 blx r8
121f6: 2350 movs r3, #80 ; 0x50
121f8: f100 0228 add.w r2, r0, #40 ; 0x28
121fc: fb92 f2f3 sdiv r2, r2, r3
12200: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
12202: 4648 mov r0, r9
12204: 2130 movs r1, #48 ; 0x30
12206: f8df 9250 ldr.w r9, [pc, #592] ; 12458 <basic_init+0xa20>
1220a: 47c8 blx r9
lv_style_set_border_opa(&styles->btn, LV_STATE_CHECKED, LV_OPA_TRANSP);
1220c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar)
1220e: 4b8e ldr r3, [pc, #568] ; (12448 <basic_init+0xa10>)
12210: 2200 movs r2, #0
12212: 3010 adds r0, #16
12214: f44f 719e mov.w r1, #316 ; 0x13c
12218: 4798 blx r3
lv_style_set_text_color(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
1221a: 6823 ldr r3, [r4, #0]
1221c: f103 0a10 add.w sl, r3, #16
12220: 6a23 ldr r3, [r4, #32]
12222: 079a lsls r2, r3, #30
12224: bf4c ite mi
12226: 4889 ldrmi r0, [pc, #548] ; (1244c <basic_init+0xa14>)
12228: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
1222c: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
1222e: f248 0189 movw r1, #32905 ; 0x8089
12232: 4602 mov r2, r0
12234: 4650 mov r0, sl
12236: 47b0 blx r6
lv_style_set_text_color(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
12238: 6823 ldr r3, [r4, #0]
1223a: f103 0a10 add.w sl, r3, #16
1223e: 6a23 ldr r3, [r4, #32]
12240: 079b lsls r3, r3, #30
12242: bf4c ite mi
12244: 4881 ldrmi r0, [pc, #516] ; (1244c <basic_init+0xa14>)
12246: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
1224a: 47a8 blx r5
1224c: f249 0189 movw r1, #37001 ; 0x9089
12250: 4602 mov r2, r0
12252: 4650 mov r0, sl
12254: 47b0 blx r6
lv_style_set_text_color(&styles->btn, LV_STATE_CHECKED, lv_color_hex(0xffffff));
12256: 6820 ldr r0, [r4, #0]
12258: f100 0a10 add.w sl, r0, #16
1225c: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
12260: 47a8 blx r5
12262: f248 1189 movw r1, #33161 ; 0x8189
12266: 4602 mov r2, r0
12268: 4650 mov r0, sl
1226a: 47b0 blx r6
lv_style_set_text_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff));
1226c: 6820 ldr r0, [r4, #0]
1226e: f100 0a10 add.w sl, r0, #16
12272: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
12276: 47a8 blx r5
12278: f249 1189 movw r1, #37257 ; 0x9189
1227c: 4602 mov r2, r0
1227e: 4650 mov r0, sl
12280: 47b0 blx r6
lv_style_set_text_color(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888));
12282: 6820 ldr r0, [r4, #0]
12284: f100 0a10 add.w sl, r0, #16
12288: 4871 ldr r0, [pc, #452] ; (12450 <basic_init+0xa18>)
1228a: 47a8 blx r5
1228c: f24a 0189 movw r1, #41097 ; 0xa089
12290: 4602 mov r2, r0
12292: 4650 mov r0, sl
12294: 47b0 blx r6
lv_style_set_image_recolor(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
12296: 6823 ldr r3, [r4, #0]
12298: f103 0a10 add.w sl, r3, #16
1229c: 6a23 ldr r3, [r4, #32]
1229e: 0798 lsls r0, r3, #30
122a0: bf4c ite mi
122a2: 486a ldrmi r0, [pc, #424] ; (1244c <basic_init+0xa14>)
122a4: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
122a8: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
122aa: f248 01a9 movw r1, #32937 ; 0x80a9
122ae: 4602 mov r2, r0
122b0: 4650 mov r0, sl
122b2: 47b0 blx r6
lv_style_set_image_recolor(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
122b4: 6823 ldr r3, [r4, #0]
122b6: f103 0a10 add.w sl, r3, #16
122ba: 6a23 ldr r3, [r4, #32]
122bc: 0799 lsls r1, r3, #30
122be: bf4c ite mi
122c0: 4862 ldrmi r0, [pc, #392] ; (1244c <basic_init+0xa14>)
122c2: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
122c6: 47a8 blx r5
122c8: f249 01a9 movw r1, #37033 ; 0x90a9
122cc: 4602 mov r2, r0
122ce: 4650 mov r0, sl
122d0: 47b0 blx r6
lv_style_set_image_recolor(&styles->btn, LV_STATE_PRESSED, lv_color_hex(0xffffff));
122d2: 6820 ldr r0, [r4, #0]
122d4: f100 0a10 add.w sl, r0, #16
122d8: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
122dc: 47a8 blx r5
122de: f249 01a9 movw r1, #37033 ; 0x90a9
122e2: 4602 mov r2, r0
122e4: 4650 mov r0, sl
122e6: 47b0 blx r6
lv_style_set_image_recolor(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff));
122e8: 6820 ldr r0, [r4, #0]
122ea: f100 0a10 add.w sl, r0, #16
122ee: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
122f2: 47a8 blx r5
122f4: f249 11a9 movw r1, #37289 ; 0x91a9
122f8: 4602 mov r2, r0
122fa: 4650 mov r0, sl
122fc: 47b0 blx r6
lv_style_set_image_recolor(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888));
122fe: 6820 ldr r0, [r4, #0]
12300: f100 0a10 add.w sl, r0, #16
12304: 4852 ldr r0, [pc, #328] ; (12450 <basic_init+0xa18>)
12306: 47a8 blx r5
12308: f24a 01a9 movw r1, #41129 ; 0xa0a9
1230c: 4602 mov r2, r0
1230e: 4650 mov r0, sl
12310: 47b0 blx r6
lv_style_set_value_color(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
12312: 6823 ldr r3, [r4, #0]
12314: f103 0a10 add.w sl, r3, #16
12318: 6a23 ldr r3, [r4, #32]
1231a: 079a lsls r2, r3, #30
1231c: bf4c ite mi
1231e: 484b ldrmi r0, [pc, #300] ; (1244c <basic_init+0xa14>)
12320: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
12324: 47a8 blx r5
_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar)
12326: 2179 movs r1, #121 ; 0x79
12328: 4602 mov r2, r0
1232a: 4650 mov r0, sl
1232c: 47b0 blx r6
lv_style_set_value_color(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff));
1232e: 6823 ldr r3, [r4, #0]
12330: f103 0a10 add.w sl, r3, #16
12334: 6a23 ldr r3, [r4, #32]
12336: 079b lsls r3, r3, #30
12338: bf4c ite mi
1233a: 4844 ldrmi r0, [pc, #272] ; (1244c <basic_init+0xa14>)
1233c: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
12340: 47a8 blx r5
12342: f241 0179 movw r1, #4217 ; 0x1079
12346: 4602 mov r2, r0
12348: 4650 mov r0, sl
1234a: 47b0 blx r6
lv_style_set_value_color(&styles->btn, LV_STATE_CHECKED, lv_color_hex(0xffffff));
1234c: 6820 ldr r0, [r4, #0]
1234e: f100 0a10 add.w sl, r0, #16
12352: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
12356: 47a8 blx r5
12358: f240 1179 movw r1, #377 ; 0x179
1235c: 4602 mov r2, r0
1235e: 4650 mov r0, sl
12360: 47b0 blx r6
lv_style_set_value_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff));
12362: 6820 ldr r0, [r4, #0]
12364: f100 0a10 add.w sl, r0, #16
12368: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
1236c: 47a8 blx r5
1236e: f241 1179 movw r1, #4473 ; 0x1179
12372: 4602 mov r2, r0
12374: 4650 mov r0, sl
12376: 47b0 blx r6
lv_style_set_value_color(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888));
12378: 6820 ldr r0, [r4, #0]
1237a: f100 0a10 add.w sl, r0, #16
1237e: 4834 ldr r0, [pc, #208] ; (12450 <basic_init+0xa18>)
12380: 47a8 blx r5
12382: f242 0179 movw r1, #8313 ; 0x2079
12386: 4602 mov r2, r0
12388: 4650 mov r0, sl
1238a: 47b0 blx r6
lv_style_set_pad_left(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
1238c: 2000 movs r0, #0
1238e: 6825 ldr r5, [r4, #0]
12390: 47c0 blx r8
12392: eb00 0080 add.w r0, r0, r0, lsl #2
12396: 00c0 lsls r0, r0, #3
12398: 28ef cmp r0, #239 ; 0xef
1239a: f105 0510 add.w r5, r5, #16
1239e: f340 81bb ble.w 12718 <basic_init+0xce0>
123a2: 2000 movs r0, #0
123a4: 47c0 blx r8
123a6: 2328 movs r3, #40 ; 0x28
123a8: 2250 movs r2, #80 ; 0x50
123aa: fb00 2203 mla r2, r0, r3, r2
123ae: 23a0 movs r3, #160 ; 0xa0
123b0: fb92 f2f3 sdiv r2, r2, r3
123b4: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
123b6: 4628 mov r0, r5
123b8: 2112 movs r1, #18
123ba: 47c8 blx r9
lv_style_set_pad_right(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
123bc: 2000 movs r0, #0
123be: 6825 ldr r5, [r4, #0]
123c0: 47c0 blx r8
123c2: eb00 0080 add.w r0, r0, r0, lsl #2
123c6: 00c0 lsls r0, r0, #3
123c8: 28ef cmp r0, #239 ; 0xef
123ca: f105 0510 add.w r5, r5, #16
123ce: f340 81a5 ble.w 1271c <basic_init+0xce4>
123d2: 2000 movs r0, #0
123d4: 47c0 blx r8
123d6: 2328 movs r3, #40 ; 0x28
123d8: 2250 movs r2, #80 ; 0x50
123da: fb00 2203 mla r2, r0, r3, r2
123de: 23a0 movs r3, #160 ; 0xa0
123e0: fb92 f2f3 sdiv r2, r2, r3
123e4: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
123e6: 4628 mov r0, r5
123e8: 2113 movs r1, #19
123ea: 47c8 blx r9
lv_style_set_pad_top(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
123ec: 2000 movs r0, #0
123ee: 6825 ldr r5, [r4, #0]
123f0: 47c0 blx r8
123f2: ebc0 1000 rsb r0, r0, r0, lsl #4
123f6: 28ef cmp r0, #239 ; 0xef
123f8: f105 0510 add.w r5, r5, #16
123fc: f340 8190 ble.w 12720 <basic_init+0xce8>
12400: 2000 movs r0, #0
12402: 47c0 blx r8
12404: 230f movs r3, #15
12406: 2250 movs r2, #80 ; 0x50
12408: fb00 2203 mla r2, r0, r3, r2
1240c: 23a0 movs r3, #160 ; 0xa0
1240e: fb92 f2f3 sdiv r2, r2, r3
12412: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
12414: 4628 mov r0, r5
12416: 2110 movs r1, #16
12418: 47c8 blx r9
lv_style_set_pad_bottom(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
1241a: 2000 movs r0, #0
1241c: 6825 ldr r5, [r4, #0]
1241e: 47c0 blx r8
12420: ebc0 1000 rsb r0, r0, r0, lsl #4
12424: 28ef cmp r0, #239 ; 0xef
12426: f105 0510 add.w r5, r5, #16
1242a: f340 817b ble.w 12724 <basic_init+0xcec>
1242e: 2000 movs r0, #0
12430: 47c0 blx r8
12432: 230f movs r3, #15
12434: 2250 movs r2, #80 ; 0x50
12436: fb00 2203 mla r2, r0, r3, r2
1243a: 23a0 movs r3, #160 ; 0xa0
1243c: fb92 f2f3 sdiv r2, r2, r3
12440: b212 sxth r2, r2
12442: e00b b.n 1245c <basic_init+0xa24>
12444: 00586273 .word 0x00586273
12448: 00005c9d .word 0x00005c9d
1244c: 0031404f .word 0x0031404f
12450: 00888888 .word 0x00888888
12454: 0000dbd5 .word 0x0000dbd5
12458: 00005afd .word 0x00005afd
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
1245c: 4628 mov r0, r5
1245e: 2111 movs r1, #17
12460: 47c8 blx r9
lv_style_set_pad_inner(&styles->btn, LV_STATE_DEFAULT, LV_DPX(20));
12462: 2000 movs r0, #0
12464: 6825 ldr r5, [r4, #0]
12466: 47c0 blx r8
12468: eb00 0080 add.w r0, r0, r0, lsl #2
1246c: 0080 lsls r0, r0, #2
1246e: 28ef cmp r0, #239 ; 0xef
12470: f105 0510 add.w r5, r5, #16
12474: f340 8158 ble.w 12728 <basic_init+0xcf0>
12478: 2000 movs r0, #0
1247a: 47c0 blx r8
1247c: 2314 movs r3, #20
1247e: 2250 movs r2, #80 ; 0x50
12480: fb00 2203 mla r2, r0, r3, r2
12484: 23a0 movs r3, #160 ; 0xa0
12486: fb92 f2f3 sdiv r2, r2, r3
1248a: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
1248c: 4628 mov r0, r5
1248e: 2114 movs r1, #20
12490: 47b8 blx r7
lv_style_set_outline_width(&styles->btn, LV_STATE_DEFAULT, 3);
12492: 6820 ldr r0, [r4, #0]
style_init_reset(&styles->pad_inner);
12494: 4dbb ldr r5, [pc, #748] ; (12784 <basic_init+0xd4c>)
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
12496: 2203 movs r2, #3
12498: 2140 movs r1, #64 ; 0x40
1249a: 3010 adds r0, #16
1249c: 47b8 blx r7
lv_style_set_outline_opa(&styles->btn, LV_STATE_DEFAULT, LV_OPA_0);
1249e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
124a0: 9b01 ldr r3, [sp, #4]
124a2: 2200 movs r2, #0
124a4: 214c movs r1, #76 ; 0x4c
124a6: 3010 adds r0, #16
124a8: 4798 blx r3
lv_style_set_outline_opa(&styles->btn, LV_STATE_FOCUSED, LV_OPA_50);
124aa: 6820 ldr r0, [r4, #0]
124ac: 9b01 ldr r3, [sp, #4]
124ae: 227f movs r2, #127 ; 0x7f
124b0: f44f 7113 mov.w r1, #588 ; 0x24c
124b4: 3010 adds r0, #16
124b6: 4798 blx r3
lv_style_set_outline_color(&styles->btn, LV_STATE_DEFAULT, theme.color_primary);
124b8: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
124ba: 89a2 ldrh r2, [r4, #12]
124bc: 2149 movs r1, #73 ; 0x49
124be: 3010 adds r0, #16
124c0: 47b0 blx r6
lv_style_set_outline_color(&styles->btn, LV_STATE_EDITED, theme.color_secondary);
124c2: 6820 ldr r0, [r4, #0]
124c4: 89e2 ldrh r2, [r4, #14]
124c6: f240 4149 movw r1, #1097 ; 0x449
124ca: 3010 adds r0, #16
124cc: 47b0 blx r6
lv_style_set_transition_time(&styles->btn, LV_STATE_DEFAULT, TRANSITION_TIME);
124ce: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
124d0: 2296 movs r2, #150 ; 0x96
124d2: 21b0 movs r1, #176 ; 0xb0
124d4: 3010 adds r0, #16
124d6: 47b8 blx r7
lv_style_set_transition_prop_4(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_BORDER_OPA);
124d8: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar)
124da: 223c movs r2, #60 ; 0x3c
124dc: 21b5 movs r1, #181 ; 0xb5
124de: 3010 adds r0, #16
124e0: 47b8 blx r7
lv_style_set_transition_prop_5(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR);
124e2: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
124e4: 2229 movs r2, #41 ; 0x29
124e6: 21b6 movs r1, #182 ; 0xb6
124e8: 3010 adds r0, #16
124ea: 47b8 blx r7
lv_style_set_transition_prop_6(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA);
124ec: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
124ee: 224c movs r2, #76 ; 0x4c
124f0: 21b7 movs r1, #183 ; 0xb7
124f2: 3010 adds r0, #16
124f4: 47b8 blx r7
lv_style_set_transition_delay(&styles->btn, LV_STATE_DEFAULT, TRANSITION_TIME);
124f6: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar)
124f8: 2296 movs r2, #150 ; 0x96
124fa: 21b1 movs r1, #177 ; 0xb1
124fc: 3010 adds r0, #16
124fe: 47b8 blx r7
lv_style_set_transition_delay(&styles->btn, LV_STATE_PRESSED, 0);
12500: 6820 ldr r0, [r4, #0]
12502: 2200 movs r2, #0
12504: f241 01b1 movw r1, #4273 ; 0x10b1
12508: 3010 adds r0, #16
1250a: 47b8 blx r7
style_init_reset(&styles->pad_inner);
1250c: 6820 ldr r0, [r4, #0]
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
1250e: 4f9e ldr r7, [pc, #632] ; (12788 <basic_init+0xd50>)
style_init_reset(&styles->pad_inner);
12510: 3014 adds r0, #20
12512: 47a8 blx r5
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
12514: 2000 movs r0, #0
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
12516: 6826 ldr r6, [r4, #0]
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
12518: 47b8 blx r7
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
1251a: 2832 cmp r0, #50 ; 0x32
1251c: f106 0614 add.w r6, r6, #20
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
12520: f04f 0000 mov.w r0, #0
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
12524: f200 810d bhi.w 12742 <basic_init+0xd0a>
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
12528: 47c0 blx r8
1252a: eb00 0080 add.w r0, r0, r0, lsl #2
1252e: 0080 lsls r0, r0, #2
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
12530: 28ef cmp r0, #239 ; 0xef
12532: f300 80fb bgt.w 1272c <basic_init+0xcf4>
12536: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
12538: 2114 movs r1, #20
1253a: 4630 mov r0, r6
1253c: 47c8 blx r9
style_init_reset(&styles->pad_small);
1253e: 6820 ldr r0, [r4, #0]
12540: 3018 adds r0, #24
12542: 47a8 blx r5
lv_style_int_t pad_small_value = lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(10) : LV_DPX(20);
12544: 2000 movs r0, #0
12546: 47b8 blx r7
12548: 2832 cmp r0, #50 ; 0x32
1254a: f04f 0000 mov.w r0, #0
1254e: f200 810e bhi.w 1276e <basic_init+0xd36>
12552: 47c0 blx r8
12554: eb00 0080 add.w r0, r0, r0, lsl #2
12558: 0040 lsls r0, r0, #1
1255a: 28ef cmp r0, #239 ; 0xef
1255c: f300 80fc bgt.w 12758 <basic_init+0xd20>
12560: 2201 movs r2, #1
lv_style_set_pad_left(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
12562: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
12564: 9201 str r2, [sp, #4]
12566: 2112 movs r1, #18
12568: 3018 adds r0, #24
1256a: 47c8 blx r9
lv_style_set_pad_right(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
1256c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
1256e: 9a01 ldr r2, [sp, #4]
12570: 2113 movs r1, #19
12572: 3018 adds r0, #24
12574: 47c8 blx r9
lv_style_set_pad_top(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
12576: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
12578: 9a01 ldr r2, [sp, #4]
1257a: 2110 movs r1, #16
1257c: 3018 adds r0, #24
1257e: 47c8 blx r9
lv_style_set_pad_bottom(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
12580: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
12582: 9a01 ldr r2, [sp, #4]
12584: 2111 movs r1, #17
12586: 3018 adds r0, #24
12588: 47c8 blx r9
lv_style_set_pad_inner(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value);
1258a: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
1258c: 9a01 ldr r2, [sp, #4]
1258e: 2114 movs r1, #20
12590: 3018 adds r0, #24
12592: 464b mov r3, r9
}
12594: b003 add sp, #12
12596: ecbd 8b02 vpop {d8}
1259a: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
1259e: 4718 bx r3
lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8));
125a0: 2201 movs r2, #1
125a2: f7ff ba9d b.w 11ae0 <basic_init+0xa8>
lv_style_set_border_width(&styles->bg, LV_STATE_DEFAULT, BORDER_WIDTH);
125a6: 2201 movs r2, #1
125a8: f7ff badb b.w 11b62 <basic_init+0x12a>
lv_style_set_pad_left(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
125ac: 2000 movs r0, #0
125ae: 47b0 blx r6
125b0: 230f movs r3, #15
125b2: 2250 movs r2, #80 ; 0x50
125b4: fb00 2203 mla r2, r0, r3, r2
125b8: 23a0 movs r3, #160 ; 0xa0
125ba: fb92 f2f3 sdiv r2, r2, r3
125be: fa1f fb82 uxth.w fp, r2
125c2: f7ff bb35 b.w 11c30 <basic_init+0x1f8>
125c6: 47b0 blx r6
125c8: ebc0 1000 rsb r0, r0, r0, lsl #4
125cc: 0040 lsls r0, r0, #1
125ce: 28ef cmp r0, #239 ; 0xef
125d0: f77f ab2c ble.w 11c2c <basic_init+0x1f4>
125d4: 2000 movs r0, #0
125d6: 47b0 blx r6
125d8: 231e movs r3, #30
125da: e7ea b.n 125b2 <basic_init+0xb7a>
125dc: 2001 movs r0, #1
125de: f7ff bb33 b.w 11c48 <basic_init+0x210>
lv_style_set_pad_right(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
125e2: 2000 movs r0, #0
125e4: 47b0 blx r6
125e6: 230f movs r3, #15
125e8: 2250 movs r2, #80 ; 0x50
125ea: fb00 2203 mla r2, r0, r3, r2
125ee: 23a0 movs r3, #160 ; 0xa0
125f0: fb92 f2f3 sdiv r2, r2, r3
125f4: fa1f fb82 uxth.w fp, r2
125f8: f7ff bb40 b.w 11c7c <basic_init+0x244>
125fc: 47b0 blx r6
125fe: ebc0 1000 rsb r0, r0, r0, lsl #4
12602: 0040 lsls r0, r0, #1
12604: 28ef cmp r0, #239 ; 0xef
12606: f77f ab37 ble.w 11c78 <basic_init+0x240>
1260a: 2000 movs r0, #0
1260c: 47b0 blx r6
1260e: 231e movs r3, #30
12610: e7ea b.n 125e8 <basic_init+0xbb0>
12612: 2001 movs r0, #1
12614: f7ff bb3e b.w 11c94 <basic_init+0x25c>
lv_style_set_pad_top(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
12618: 2000 movs r0, #0
1261a: 47b0 blx r6
1261c: 230f movs r3, #15
1261e: 2250 movs r2, #80 ; 0x50
12620: fb00 2203 mla r2, r0, r3, r2
12624: 23a0 movs r3, #160 ; 0xa0
12626: fb92 f2f3 sdiv r2, r2, r3
1262a: fa1f fb82 uxth.w fp, r2
1262e: f7ff bb6d b.w 11d0c <basic_init+0x2d4>
12632: 47b0 blx r6
12634: ebc0 1000 rsb r0, r0, r0, lsl #4
12638: 0040 lsls r0, r0, #1
1263a: 28ef cmp r0, #239 ; 0xef
1263c: f77f ab64 ble.w 11d08 <basic_init+0x2d0>
12640: 2000 movs r0, #0
12642: 47b0 blx r6
12644: 231e movs r3, #30
12646: e7ea b.n 1261e <basic_init+0xbe6>
12648: 2001 movs r0, #1
1264a: f7ff bb6b b.w 11d24 <basic_init+0x2ec>
lv_style_set_pad_bottom(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH);
1264e: 2000 movs r0, #0
12650: 47b0 blx r6
12652: 230f movs r3, #15
12654: 2250 movs r2, #80 ; 0x50
12656: fb00 2203 mla r2, r0, r3, r2
1265a: 23a0 movs r3, #160 ; 0xa0
1265c: fb92 f2f3 sdiv r2, r2, r3
12660: fa1f fb82 uxth.w fp, r2
12664: f7ff bb78 b.w 11d58 <basic_init+0x320>
12668: 47b0 blx r6
1266a: ebc0 1000 rsb r0, r0, r0, lsl #4
1266e: 0040 lsls r0, r0, #1
12670: 28ef cmp r0, #239 ; 0xef
12672: f77f ab6f ble.w 11d54 <basic_init+0x31c>
12676: 2000 movs r0, #0
12678: 47b0 blx r6
1267a: 231e movs r3, #30
1267c: e7ea b.n 12654 <basic_init+0xc1c>
1267e: 2001 movs r0, #1
12680: f7ff bb76 b.w 11d70 <basic_init+0x338>
lv_style_set_pad_inner(&styles->bg, LV_STATE_DEFAULT, PAD_DEF);
12684: 2000 movs r0, #0
12686: 47b0 blx r6
12688: 230f movs r3, #15
1268a: 2250 movs r2, #80 ; 0x50
1268c: fb00 2203 mla r2, r0, r3, r2
12690: 23a0 movs r3, #160 ; 0xa0
12692: fb92 f2f3 sdiv r2, r2, r3
12696: b212 sxth r2, r2
12698: f7ff bb82 b.w 11da0 <basic_init+0x368>
1269c: 47b0 blx r6
1269e: ebc0 1000 rsb r0, r0, r0, lsl #4
126a2: 0040 lsls r0, r0, #1
126a4: 28ef cmp r0, #239 ; 0xef
126a6: f77f ab7a ble.w 11d9e <basic_init+0x366>
126aa: 2000 movs r0, #0
126ac: 47b0 blx r6
126ae: 231e movs r3, #30
126b0: e7eb b.n 1268a <basic_init+0xc52>
lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_BORDER_PR);
126b2: 4836 ldr r0, [pc, #216] ; (1278c <basic_init+0xd54>)
126b4: 47a8 blx r5
126b6: e421 b.n 11efc <basic_init+0x4c4>
lv_style_set_bg_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_PR);
126b8: 4835 ldr r0, [pc, #212] ; (12790 <basic_init+0xd58>)
126ba: 47a8 blx r5
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
126bc: 89a2 ldrh r2, [r4, #12]
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
126be: 7b63 ldrb r3, [r4, #13]
126c0: f04f 0bb3 mov.w fp, #179 ; 0xb3
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
126c4: f3c0 1c45 ubfx ip, r0, #5, #6
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
126c8: f04f 0e4c mov.w lr, #76 ; 0x4c
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
126cc: f3c2 1245 ubfx r2, r2, #5, #6
126d0: fb0b fc0c mul.w ip, fp, ip
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
126d4: f3c0 21c4 ubfx r1, r0, #11, #5
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
126d8: fb0e cc02 mla ip, lr, r2, ip
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
126dc: 7b22 ldrb r2, [r4, #12]
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
126de: 08db lsrs r3, r3, #3
126e0: fb0b f101 mul.w r1, fp, r1
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
126e4: f000 001f and.w r0, r0, #31
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
126e8: fb0e 1103 mla r1, lr, r3, r1
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
126ec: f002 021f and.w r2, r2, #31
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
126f0: f248 0381 movw r3, #32897 ; 0x8081
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
126f4: fb0b f000 mul.w r0, fp, r0
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
126f8: 4359 muls r1, r3
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
126fa: fb03 fc0c mul.w ip, r3, ip
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
126fe: fb0e 0202 mla r2, lr, r2, r0
LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix)));
12702: f3c1 51c4 ubfx r1, r1, #23, #5
LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix)));
12706: f3cc 5cc5 ubfx ip, ip, #23, #6
LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix)));
1270a: 435a muls r2, r3
1270c: e513 b.n 12136 <basic_init+0x6fe>
lv_style_set_border_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN_BORDER_INA);
1270e: 4821 ldr r0, [pc, #132] ; (12794 <basic_init+0xd5c>)
12710: 47a8 blx r5
12712: e55f b.n 121d4 <basic_init+0x79c>
lv_style_set_border_width(&styles->btn, LV_STATE_DEFAULT, BORDER_WIDTH);
12714: 2201 movs r2, #1
12716: e574 b.n 12202 <basic_init+0x7ca>
lv_style_set_pad_left(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
12718: 2201 movs r2, #1
1271a: e64c b.n 123b6 <basic_init+0x97e>
lv_style_set_pad_right(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40));
1271c: 2201 movs r2, #1
1271e: e662 b.n 123e6 <basic_init+0x9ae>
lv_style_set_pad_top(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
12720: 2201 movs r2, #1
12722: e677 b.n 12414 <basic_init+0x9dc>
lv_style_set_pad_bottom(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15));
12724: 2201 movs r2, #1
12726: e699 b.n 1245c <basic_init+0xa24>
lv_style_set_pad_inner(&styles->btn, LV_STATE_DEFAULT, LV_DPX(20));
12728: 2201 movs r2, #1
1272a: e6af b.n 1248c <basic_init+0xa54>
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
1272c: 2000 movs r0, #0
1272e: 47c0 blx r8
12730: 2314 movs r3, #20
12732: 2250 movs r2, #80 ; 0x50
12734: fb00 2203 mla r2, r0, r3, r2
12738: 23a0 movs r3, #160 ; 0xa0
1273a: fb92 f2f3 sdiv r2, r2, r3
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
1273e: b212 sxth r2, r2
12740: e6fa b.n 12538 <basic_init+0xb00>
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
12742: 47c0 blx r8
12744: eb00 0080 add.w r0, r0, r0, lsl #2
12748: 00c0 lsls r0, r0, #3
lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT,
1274a: 28ef cmp r0, #239 ; 0xef
1274c: f77f aef3 ble.w 12536 <basic_init+0xafe>
lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40));
12750: 2000 movs r0, #0
12752: 47c0 blx r8
12754: 2328 movs r3, #40 ; 0x28
12756: e7ec b.n 12732 <basic_init+0xcfa>
lv_style_int_t pad_small_value = lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(10) : LV_DPX(20);
12758: 2000 movs r0, #0
1275a: 47c0 blx r8
1275c: 230a movs r3, #10
1275e: 2250 movs r2, #80 ; 0x50
12760: fb00 2203 mla r2, r0, r3, r2
12764: 23a0 movs r3, #160 ; 0xa0
12766: fb92 f2f3 sdiv r2, r2, r3
1276a: b212 sxth r2, r2
1276c: e6f9 b.n 12562 <basic_init+0xb2a>
1276e: 47c0 blx r8
12770: eb00 0080 add.w r0, r0, r0, lsl #2
12774: 0080 lsls r0, r0, #2
12776: 28ef cmp r0, #239 ; 0xef
12778: f77f aef2 ble.w 12560 <basic_init+0xb28>
1277c: 2000 movs r0, #0
1277e: 47c0 blx r8
12780: 2314 movs r3, #20
12782: e7ec b.n 1275e <basic_init+0xd26>
12784: 00010d4d .word 0x00010d4d
12788: 0000dbed .word 0x0000dbed
1278c: 005f656e .word 0x005f656e
12790: 00586273 .word 0x00586273
12794: 00404040 .word 0x00404040
00012798 <lv_theme_material_init>:
{
12798: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
if(!inited) {
1279c: 4cb4 ldr r4, [pc, #720] ; (12a70 <lv_theme_material_init+0x2d8>)
{
1279e: ed2d 8b02 vpush {d8}
127a2: 461e mov r6, r3
if(!inited) {
127a4: 7923 ldrb r3, [r4, #4]
{
127a6: b083 sub sp, #12
127a8: 4680 mov r8, r0
127aa: 460f mov r7, r1
127ac: 4615 mov r5, r2
if(!inited) {
127ae: b92b cbnz r3, 127bc <lv_theme_material_init+0x24>
LV_GC_ROOT(_lv_theme_material_styles) = lv_mem_alloc(sizeof(theme_styles_t));
127b0: 4bb0 ldr r3, [pc, #704] ; (12a74 <lv_theme_material_init+0x2dc>)
127b2: 20bc movs r0, #188 ; 0xbc
127b4: 4798 blx r3
127b6: 4bb0 ldr r3, [pc, #704] ; (12a78 <lv_theme_material_init+0x2e0>)
styles = (theme_styles_t *)LV_GC_ROOT(_lv_theme_material_styles);
127b8: 6020 str r0, [r4, #0]
LV_GC_ROOT(_lv_theme_material_styles) = lv_mem_alloc(sizeof(theme_styles_t));
127ba: 6018 str r0, [r3, #0]
theme.font_normal = font_normal;
127bc: 9b0e ldr r3, [sp, #56] ; 0x38
127be: 6163 str r3, [r4, #20]
theme.font_subtitle = font_subtitle;
127c0: 9b0f ldr r3, [sp, #60] ; 0x3c
127c2: 61a3 str r3, [r4, #24]
theme.font_title = font_title;
127c4: 9b10 ldr r3, [sp, #64] ; 0x40
theme.color_primary = color_primary;
127c6: f8a4 800c strh.w r8, [r4, #12]
theme.flags = flags;
127ca: e9c4 3507 strd r3, r5, [r4, #28]
basic_init();
127ce: 4bab ldr r3, [pc, #684] ; (12a7c <lv_theme_material_init+0x2e4>)
theme.color_secondary = color_secondary;
127d0: 81e7 strh r7, [r4, #14]
theme.font_small = font_small;
127d2: 6126 str r6, [r4, #16]
basic_init();
127d4: 4798 blx r3
bar_init();
127d6: 4baa ldr r3, [pc, #680] ; (12a80 <lv_theme_material_init+0x2e8>)
style_init_reset(&styles->arc_indic);
127d8: f8df 82dc ldr.w r8, [pc, #732] ; 12ab8 <lv_theme_material_init+0x320>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
127dc: 4fa9 ldr r7, [pc, #676] ; (12a84 <lv_theme_material_init+0x2ec>)
lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25));
127de: 4daa ldr r5, [pc, #680] ; (12a88 <lv_theme_material_init+0x2f0>)
bar_init();
127e0: 4798 blx r3
led_init();
127e2: 4baa ldr r3, [pc, #680] ; (12a8c <lv_theme_material_init+0x2f4>)
127e4: 4798 blx r3
slider_init();
127e6: 4baa ldr r3, [pc, #680] ; (12a90 <lv_theme_material_init+0x2f8>)
127e8: 4798 blx r3
switch_init();
127ea: 4baa ldr r3, [pc, #680] ; (12a94 <lv_theme_material_init+0x2fc>)
127ec: 4798 blx r3
linemeter_init();
127ee: 4baa ldr r3, [pc, #680] ; (12a98 <lv_theme_material_init+0x300>)
127f0: 4798 blx r3
gauge_init();
127f2: 4baa ldr r3, [pc, #680] ; (12a9c <lv_theme_material_init+0x304>)
127f4: 4798 blx r3
style_init_reset(&styles->arc_indic);
127f6: 6820 ldr r0, [r4, #0]
127f8: 301c adds r0, #28
127fa: 47c0 blx r8
lv_style_set_line_color(&styles->arc_indic, LV_STATE_DEFAULT, theme.color_primary);
127fc: 6820 ldr r0, [r4, #0]
127fe: 89a2 ldrh r2, [r4, #12]
12800: 2199 movs r1, #153 ; 0x99
12802: 301c adds r0, #28
12804: 47b8 blx r7
lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25));
12806: 2000 movs r0, #0
12808: 6826 ldr r6, [r4, #0]
1280a: 47a8 blx r5
1280c: eb00 0080 add.w r0, r0, r0, lsl #2
12810: eb00 0080 add.w r0, r0, r0, lsl #2
12814: 28ef cmp r0, #239 ; 0xef
12816: f106 061c add.w r6, r6, #28
1281a: f341 8256 ble.w 13cca <lv_theme_material_init+0x1532>
1281e: 2000 movs r0, #0
12820: 47a8 blx r5
12822: 2319 movs r3, #25
12824: 2250 movs r2, #80 ; 0x50
12826: fb00 2203 mla r2, r0, r3, r2
1282a: 23a0 movs r3, #160 ; 0xa0
1282c: fb92 f2f3 sdiv r2, r2, r3
12830: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
12832: 4630 mov r0, r6
12834: 2190 movs r1, #144 ; 0x90
12836: 4e9a ldr r6, [pc, #616] ; (12aa0 <lv_theme_material_init+0x308>)
12838: f8df a280 ldr.w sl, [pc, #640] ; 12abc <lv_theme_material_init+0x324>
1283c: 47b0 blx r6
lv_style_set_line_rounded(&styles->arc_indic, LV_STATE_DEFAULT, true);
1283e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar)
12840: 2201 movs r2, #1
12842: 2194 movs r1, #148 ; 0x94
12844: 301c adds r0, #28
12846: 47b0 blx r6
style_init_reset(&styles->arc_bg);
12848: 6820 ldr r0, [r4, #0]
1284a: 3020 adds r0, #32
1284c: 47c0 blx r8
lv_style_set_line_color(&styles->arc_bg, LV_STATE_DEFAULT, COLOR_BG_SEC);
1284e: 6823 ldr r3, [r4, #0]
12850: f103 0920 add.w r9, r3, #32
12854: 6a23 ldr r3, [r4, #32]
12856: f013 0f02 tst.w r3, #2
1285a: bf14 ite ne
1285c: 4891 ldrne r0, [pc, #580] ; (12aa4 <lv_theme_material_init+0x30c>)
1285e: 4892 ldreq r0, [pc, #584] ; (12aa8 <lv_theme_material_init+0x310>)
12860: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
12862: 2199 movs r1, #153 ; 0x99
12864: 4602 mov r2, r0
12866: 4648 mov r0, r9
12868: 47b8 blx r7
lv_style_set_line_width(&styles->arc_bg, LV_STATE_DEFAULT, LV_DPX(25));
1286a: 6823 ldr r3, [r4, #0]
1286c: 2000 movs r0, #0
1286e: f103 0920 add.w r9, r3, #32
12872: 47a8 blx r5
12874: eb00 0080 add.w r0, r0, r0, lsl #2
12878: eb00 0080 add.w r0, r0, r0, lsl #2
1287c: 28ef cmp r0, #239 ; 0xef
1287e: f341 8227 ble.w 13cd0 <lv_theme_material_init+0x1538>
12882: 2000 movs r0, #0
12884: 47a8 blx r5
12886: 2319 movs r3, #25
12888: 2250 movs r2, #80 ; 0x50
1288a: fb00 2203 mla r2, r0, r3, r2
1288e: 23a0 movs r3, #160 ; 0xa0
12890: fb92 f2f3 sdiv r2, r2, r3
12894: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar)
12896: 4648 mov r0, r9
12898: 2190 movs r1, #144 ; 0x90
1289a: 47b0 blx r6
lv_style_set_line_rounded(&styles->arc_bg, LV_STATE_DEFAULT, true);
1289c: 6820 ldr r0, [r4, #0]
lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
1289e: f8df 9220 ldr.w r9, [pc, #544] ; 12ac0 <lv_theme_material_init+0x328>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar)
128a2: 2201 movs r2, #1
128a4: 2194 movs r1, #148 ; 0x94
128a6: 3020 adds r0, #32
128a8: 47b0 blx r6
chart_init();
128aa: 4b80 ldr r3, [pc, #512] ; (12aac <lv_theme_material_init+0x314>)
128ac: 4798 blx r3
style_init_reset(&styles->calendar_header);
128ae: 6820 ldr r0, [r4, #0]
128b0: 3030 adds r0, #48 ; 0x30
128b2: 47c0 blx r8
lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
128b4: 6823 ldr r3, [r4, #0]
128b6: 2000 movs r0, #0
128b8: f103 0b30 add.w fp, r3, #48 ; 0x30
128bc: 47c8 blx r9
128be: 2801 cmp r0, #1
128c0: f04f 0000 mov.w r0, #0
128c4: f201 8213 bhi.w 13cee <lv_theme_material_init+0x1556>
128c8: 47a8 blx r5
128ca: ebc0 1000 rsb r0, r0, r0, lsl #4
128ce: 28ef cmp r0, #239 ; 0xef
128d0: f301 8201 bgt.w 13cd6 <lv_theme_material_init+0x153e>
128d4: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
128d6: 4658 mov r0, fp
128d8: 2110 movs r1, #16
128da: 47b0 blx r6
lv_style_set_pad_left(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
128dc: 6823 ldr r3, [r4, #0]
128de: 2000 movs r0, #0
128e0: f103 0b30 add.w fp, r3, #48 ; 0x30
128e4: 47c8 blx r9
128e6: 2801 cmp r0, #1
128e8: f04f 0000 mov.w r0, #0
128ec: f201 8216 bhi.w 13d1c <lv_theme_material_init+0x1584>
128f0: 47a8 blx r5
128f2: ebc0 1000 rsb r0, r0, r0, lsl #4
128f6: 28ef cmp r0, #239 ; 0xef
128f8: f301 8204 bgt.w 13d04 <lv_theme_material_init+0x156c>
128fc: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
128fe: 4658 mov r0, fp
12900: 2112 movs r1, #18
12902: 47b0 blx r6
lv_style_set_pad_right(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
12904: 6823 ldr r3, [r4, #0]
12906: 2000 movs r0, #0
12908: f103 0b30 add.w fp, r3, #48 ; 0x30
1290c: 47c8 blx r9
1290e: 2801 cmp r0, #1
12910: f04f 0000 mov.w r0, #0
12914: f201 8219 bhi.w 13d4a <lv_theme_material_init+0x15b2>
12918: 47a8 blx r5
1291a: ebc0 1000 rsb r0, r0, r0, lsl #4
1291e: 28ef cmp r0, #239 ; 0xef
12920: f301 8207 bgt.w 13d32 <lv_theme_material_init+0x159a>
12924: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
12926: 4658 mov r0, fp
12928: 2113 movs r1, #19
1292a: 47b0 blx r6
lv_style_set_pad_bottom(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
1292c: 6823 ldr r3, [r4, #0]
1292e: 2000 movs r0, #0
12930: f103 0b30 add.w fp, r3, #48 ; 0x30
12934: 47c8 blx r9
12936: 2801 cmp r0, #1
12938: f04f 0000 mov.w r0, #0
1293c: f201 821c bhi.w 13d78 <lv_theme_material_init+0x15e0>
12940: 47a8 blx r5
12942: ebc0 1000 rsb r0, r0, r0, lsl #4
12946: 28ef cmp r0, #239 ; 0xef
12948: f301 820a bgt.w 13d60 <lv_theme_material_init+0x15c8>
1294c: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
1294e: 4658 mov r0, fp
12950: 2111 movs r1, #17
12952: 47b0 blx r6
lv_style_set_text_color(&styles->calendar_header, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x888888) : LV_COLOR_WHITE);
12954: 6a22 ldr r2, [r4, #32]
12956: 6823 ldr r3, [r4, #0]
12958: f8df b168 ldr.w fp, [pc, #360] ; 12ac4 <lv_theme_material_init+0x32c>
1295c: f012 0f02 tst.w r2, #2
12960: f103 0330 add.w r3, r3, #48 ; 0x30
12964: f001 8213 beq.w 13d8e <lv_theme_material_init+0x15f6>
12968: 4851 ldr r0, [pc, #324] ; (12ab0 <lv_theme_material_init+0x318>)
1296a: 9301 str r3, [sp, #4]
1296c: 47d0 blx sl
1296e: 9b01 ldr r3, [sp, #4]
12970: 4602 mov r2, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
12972: 4618 mov r0, r3
12974: f249 0189 movw r1, #37001 ; 0x9089
12978: 47b8 blx r7
style_init_reset(&styles->calendar_daynames);
1297a: 6820 ldr r0, [r4, #0]
1297c: 3034 adds r0, #52 ; 0x34
1297e: 47c0 blx r8
lv_style_set_text_color(&styles->calendar_daynames, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex3(0xeee));
12980: 6823 ldr r3, [r4, #0]
12982: 3334 adds r3, #52 ; 0x34
12984: ee07 3a90 vmov s15, r3
12988: 6a23 ldr r3, [r4, #32]
1298a: 0798 lsls r0, r3, #30
1298c: f141 8203 bpl.w 13d96 <lv_theme_material_init+0x15fe>
12990: 4848 ldr r0, [pc, #288] ; (12ab4 <lv_theme_material_init+0x31c>)
12992: 47d0 blx sl
12994: 4602 mov r2, r0
12996: f248 0189 movw r1, #32905 ; 0x8089
1299a: ee17 0a90 vmov r0, s15
1299e: 47b8 blx r7
lv_style_set_pad_left(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
129a0: 6823 ldr r3, [r4, #0]
129a2: 2000 movs r0, #0
129a4: 3334 adds r3, #52 ; 0x34
129a6: ee08 3a10 vmov s16, r3
129aa: 47c8 blx r9
129ac: 2801 cmp r0, #1
129ae: f04f 0000 mov.w r0, #0
129b2: f201 8202 bhi.w 13dba <lv_theme_material_init+0x1622>
129b6: 47a8 blx r5
129b8: ebc0 1000 rsb r0, r0, r0, lsl #4
129bc: 28ef cmp r0, #239 ; 0xef
129be: f301 81f0 bgt.w 13da2 <lv_theme_material_init+0x160a>
129c2: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
129c4: ee18 0a10 vmov r0, s16
129c8: 2112 movs r1, #18
129ca: 47b0 blx r6
lv_style_set_pad_right(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
129cc: 6823 ldr r3, [r4, #0]
129ce: 2000 movs r0, #0
129d0: 3334 adds r3, #52 ; 0x34
129d2: ee08 3a10 vmov s16, r3
129d6: 47c8 blx r9
129d8: 2801 cmp r0, #1
129da: f04f 0000 mov.w r0, #0
129de: f201 8203 bhi.w 13de8 <lv_theme_material_init+0x1650>
129e2: 47a8 blx r5
129e4: ebc0 1000 rsb r0, r0, r0, lsl #4
129e8: 28ef cmp r0, #239 ; 0xef
129ea: f301 81f1 bgt.w 13dd0 <lv_theme_material_init+0x1638>
129ee: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
129f0: ee18 0a10 vmov r0, s16
129f4: 2113 movs r1, #19
129f6: 47b0 blx r6
lv_style_set_pad_bottom(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
129f8: 6823 ldr r3, [r4, #0]
129fa: 2000 movs r0, #0
129fc: 3334 adds r3, #52 ; 0x34
129fe: ee08 3a10 vmov s16, r3
12a02: 47c8 blx r9
12a04: 2801 cmp r0, #1
12a06: f04f 0000 mov.w r0, #0
12a0a: f201 8204 bhi.w 13e16 <lv_theme_material_init+0x167e>
12a0e: 47a8 blx r5
12a10: ebc0 1000 rsb r0, r0, r0, lsl #4
12a14: 28ef cmp r0, #239 ; 0xef
12a16: f301 81f2 bgt.w 13dfe <lv_theme_material_init+0x1666>
12a1a: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
12a1c: ee18 0a10 vmov r0, s16
12a20: 2111 movs r1, #17
12a22: 47b0 blx r6
style_init_reset(&styles->calendar_date_nums);
12a24: 6820 ldr r0, [r4, #0]
12a26: 302c adds r0, #44 ; 0x2c
12a28: 47c0 blx r8
lv_style_set_radius(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(4));
12a2a: 6823 ldr r3, [r4, #0]
12a2c: 2000 movs r0, #0
12a2e: 332c adds r3, #44 ; 0x2c
12a30: ee08 3a10 vmov s16, r3
12a34: 47a8 blx r5
12a36: 283b cmp r0, #59 ; 0x3b
12a38: f341 81f8 ble.w 13e2c <lv_theme_material_init+0x1694>
12a3c: 2000 movs r0, #0
12a3e: 47a8 blx r5
12a40: 2328 movs r3, #40 ; 0x28
12a42: f100 0214 add.w r2, r0, #20
12a46: fb92 f2f3 sdiv r2, r2, r3
12a4a: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
12a4c: 2101 movs r1, #1
12a4e: ee18 0a10 vmov r0, s16
12a52: 47b0 blx r6
lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
12a54: 6a22 ldr r2, [r4, #32]
12a56: 6823 ldr r3, [r4, #0]
12a58: 0791 lsls r1, r2, #30
12a5a: f103 032c add.w r3, r3, #44 ; 0x2c
12a5e: f141 81e8 bpl.w 13e32 <lv_theme_material_init+0x169a>
12a62: 4814 ldr r0, [pc, #80] ; (12ab4 <lv_theme_material_init+0x31c>)
12a64: 9301 str r3, [sp, #4]
12a66: 47d0 blx sl
12a68: 9b01 ldr r3, [sp, #4]
12a6a: 4602 mov r2, r0
12a6c: e02c b.n 12ac8 <lv_theme_material_init+0x330>
12a6e: bf00 nop
12a70: 200057a4 .word 0x200057a4
12a74: 0000ecbd .word 0x0000ecbd
12a78: 20003744 .word 0x20003744
12a7c: 00011a39 .word 0x00011a39
12a80: 00011145 .word 0x00011145
12a84: 00005bcd .word 0x00005bcd
12a88: 0000dbd5 .word 0x0000dbd5
12a8c: 00011041 .word 0x00011041
12a90: 00011289 .word 0x00011289
12a94: 00010d69 .word 0x00010d69
12a98: 00010e75 .word 0x00010e75
12a9c: 000114a9 .word 0x000114a9
12aa0: 00005afd .word 0x00005afd
12aa4: 00d4d7d9 .word 0x00d4d7d9
12aa8: 0045494d .word 0x0045494d
12aac: 00011869 .word 0x00011869
12ab0: 00888888 .word 0x00888888
12ab4: 0031404f .word 0x0031404f
12ab8: 00010d4d .word 0x00010d4d
12abc: 0001112d .word 0x0001112d
12ac0: 0000dbed .word 0x0000dbed
12ac4: 0002bcf6 .word 0x0002bcf6
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
12ac8: 4618 mov r0, r3
12aca: f248 1189 movw r1, #33161 ; 0x8189
12ace: 47b8 blx r7
lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? LV_OPA_20 : LV_OPA_40);
12ad0: 6a23 ldr r3, [r4, #32]
12ad2: 6820 ldr r0, [r4, #0]
12ad4: f013 0f02 tst.w r3, #2
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
12ad8: bf14 ite ne
12ada: 2233 movne r2, #51 ; 0x33
12adc: 2266 moveq r2, #102 ; 0x66
12ade: 4bc0 ldr r3, [pc, #768] ; (12de0 <lv_theme_material_init+0x648>)
12ae0: f44f 7196 mov.w r1, #300 ; 0x12c
12ae4: 302c adds r0, #44 ; 0x2c
12ae6: 4798 blx r3
lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_PRESSED, LV_OPA_20);
12ae8: 6820 ldr r0, [r4, #0]
12aea: 4bbd ldr r3, [pc, #756] ; (12de0 <lv_theme_material_init+0x648>)
12aec: 2233 movs r2, #51 ; 0x33
12aee: f241 012c movw r1, #4140 ; 0x102c
12af2: 302c adds r0, #44 ; 0x2c
12af4: 4798 blx r3
lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_FOCUSED, LV_OPA_COVER);
12af6: 6820 ldr r0, [r4, #0]
12af8: 4bb9 ldr r3, [pc, #740] ; (12de0 <lv_theme_material_init+0x648>)
12afa: 22ff movs r2, #255 ; 0xff
12afc: f44f 710b mov.w r1, #556 ; 0x22c
12b00: 302c adds r0, #44 ; 0x2c
12b02: 4798 blx r3
lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_FOCUSED, LV_COLOR_WHITE);
12b04: f8bb 3000 ldrh.w r3, [fp]
12b08: 6820 ldr r0, [r4, #0]
12b0a: f8ad 3004 strh.w r3, [sp, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
12b0e: b29a uxth r2, r3
12b10: f248 2189 movw r1, #33417 ; 0x8289
12b14: 302c adds r0, #44 ; 0x2c
12b16: 47b8 blx r7
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_FOCUSED, theme.color_primary);
12b18: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
12b1a: 89a2 ldrh r2, [r4, #12]
12b1c: f240 2129 movw r1, #553 ; 0x229
12b20: 302c adds r0, #44 ; 0x2c
12b22: 47b8 blx r7
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x666666) : LV_COLOR_WHITE);
12b24: 6a22 ldr r2, [r4, #32]
12b26: 6823 ldr r3, [r4, #0]
12b28: 0792 lsls r2, r2, #30
12b2a: f103 032c add.w r3, r3, #44 ; 0x2c
12b2e: f141 8184 bpl.w 13e3a <lv_theme_material_init+0x16a2>
12b32: 48ac ldr r0, [pc, #688] ; (12de4 <lv_theme_material_init+0x64c>)
12b34: 9301 str r3, [sp, #4]
12b36: 47d0 blx sl
12b38: 9b01 ldr r3, [sp, #4]
12b3a: 4602 mov r2, r0
12b3c: 4618 mov r0, r3
12b3e: 2129 movs r1, #41 ; 0x29
12b40: 47b8 blx r7
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_CHECKED, theme.color_primary);
12b42: 6820 ldr r0, [r4, #0]
12b44: 89a2 ldrh r2, [r4, #12]
12b46: f240 1129 movw r1, #297 ; 0x129
12b4a: 302c adds r0, #44 ; 0x2c
12b4c: 47b8 blx r7
lv_style_set_border_width(&styles->calendar_date_nums, LV_STATE_CHECKED, 2);
12b4e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
12b50: 2202 movs r2, #2
12b52: f44f 7198 mov.w r1, #304 ; 0x130
12b56: 302c adds r0, #44 ; 0x2c
12b58: 47b0 blx r6
lv_style_set_border_side(&styles->calendar_date_nums, LV_STATE_CHECKED, LV_BORDER_SIDE_LEFT);
12b5a: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
12b5c: 2204 movs r2, #4
12b5e: f240 1131 movw r1, #305 ; 0x131
12b62: 302c adds r0, #44 ; 0x2c
12b64: 47b0 blx r6
lv_style_set_border_color(&styles->calendar_date_nums, LV_STATE_CHECKED, theme.color_primary);
12b66: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
12b68: 89a2 ldrh r2, [r4, #12]
12b6a: f240 1139 movw r1, #313 ; 0x139
12b6e: 302c adds r0, #44 ; 0x2c
12b70: 47b8 blx r7
lv_style_set_pad_inner(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(3));
12b72: 6823 ldr r3, [r4, #0]
12b74: 2000 movs r0, #0
12b76: 332c adds r3, #44 ; 0x2c
12b78: ee08 3a10 vmov s16, r3
12b7c: 47a8 blx r5
12b7e: eb00 0040 add.w r0, r0, r0, lsl #1
12b82: 28ef cmp r0, #239 ; 0xef
12b84: f341 815d ble.w 13e42 <lv_theme_material_init+0x16aa>
12b88: 2000 movs r0, #0
12b8a: 47a8 blx r5
12b8c: 2303 movs r3, #3
12b8e: 2250 movs r2, #80 ; 0x50
12b90: fb00 2203 mla r2, r0, r3, r2
12b94: 23a0 movs r3, #160 ; 0xa0
12b96: fb92 f2f3 sdiv r2, r2, r3
12b9a: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
12b9c: ee18 0a10 vmov r0, s16
12ba0: 2114 movs r1, #20
12ba2: 47b0 blx r6
lv_style_set_pad_left(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
12ba4: 6823 ldr r3, [r4, #0]
12ba6: 2000 movs r0, #0
12ba8: 332c adds r3, #44 ; 0x2c
12baa: ee08 3a10 vmov s16, r3
12bae: 47c8 blx r9
12bb0: 2801 cmp r0, #1
12bb2: f04f 0000 mov.w r0, #0
12bb6: f201 8153 bhi.w 13e60 <lv_theme_material_init+0x16c8>
12bba: 47a8 blx r5
12bbc: ebc0 1000 rsb r0, r0, r0, lsl #4
12bc0: 28ef cmp r0, #239 ; 0xef
12bc2: f301 8141 bgt.w 13e48 <lv_theme_material_init+0x16b0>
12bc6: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
12bc8: ee18 0a10 vmov r0, s16
12bcc: 2112 movs r1, #18
12bce: 47b0 blx r6
lv_style_set_pad_right(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
12bd0: 6823 ldr r3, [r4, #0]
12bd2: 2000 movs r0, #0
12bd4: 332c adds r3, #44 ; 0x2c
12bd6: ee08 3a10 vmov s16, r3
12bda: 47c8 blx r9
12bdc: 2801 cmp r0, #1
12bde: f04f 0000 mov.w r0, #0
12be2: f201 8154 bhi.w 13e8e <lv_theme_material_init+0x16f6>
12be6: 47a8 blx r5
12be8: ebc0 1000 rsb r0, r0, r0, lsl #4
12bec: 28ef cmp r0, #239 ; 0xef
12bee: f301 8142 bgt.w 13e76 <lv_theme_material_init+0x16de>
12bf2: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
12bf4: ee18 0a10 vmov r0, s16
12bf8: 2113 movs r1, #19
12bfa: 47b0 blx r6
lv_style_set_pad_bottom(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
12bfc: 6823 ldr r3, [r4, #0]
12bfe: 2000 movs r0, #0
12c00: 332c adds r3, #44 ; 0x2c
12c02: ee08 3a10 vmov s16, r3
12c06: 47c8 blx r9
12c08: 2801 cmp r0, #1
12c0a: f04f 0000 mov.w r0, #0
12c0e: f201 8155 bhi.w 13ebc <lv_theme_material_init+0x1724>
12c12: 47a8 blx r5
12c14: ebc0 1000 rsb r0, r0, r0, lsl #4
12c18: 28ef cmp r0, #239 ; 0xef
12c1a: f301 8143 bgt.w 13ea4 <lv_theme_material_init+0x170c>
12c1e: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
12c20: 2111 movs r1, #17
12c22: ee18 0a10 vmov r0, s16
12c26: 47b0 blx r6
style_init_reset(&styles->cpicker_bg);
12c28: 6820 ldr r0, [r4, #0]
12c2a: 3038 adds r0, #56 ; 0x38
12c2c: 47c0 blx r8
lv_style_set_scale_width(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(30));
12c2e: 6823 ldr r3, [r4, #0]
12c30: 2000 movs r0, #0
12c32: f103 0938 add.w r9, r3, #56 ; 0x38
12c36: 47a8 blx r5
12c38: ebc0 1000 rsb r0, r0, r0, lsl #4
12c3c: 0040 lsls r0, r0, #1
12c3e: 28ef cmp r0, #239 ; 0xef
12c40: f341 8147 ble.w 13ed2 <lv_theme_material_init+0x173a>
12c44: 2000 movs r0, #0
12c46: 47a8 blx r5
12c48: 231e movs r3, #30
12c4a: 2250 movs r2, #80 ; 0x50
12c4c: fb00 2203 mla r2, r0, r3, r2
12c50: 23a0 movs r3, #160 ; 0xa0
12c52: fb92 f2f3 sdiv r2, r2, r3
12c56: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar)
12c58: 4648 mov r0, r9
12c5a: 21c0 movs r1, #192 ; 0xc0
12c5c: 47b0 blx r6
lv_style_set_bg_opa(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_OPA_COVER);
12c5e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
12c60: 4b5f ldr r3, [pc, #380] ; (12de0 <lv_theme_material_init+0x648>)
12c62: 3038 adds r0, #56 ; 0x38
12c64: 22ff movs r2, #255 ; 0xff
12c66: 212c movs r1, #44 ; 0x2c
12c68: 4798 blx r3
lv_style_set_bg_color(&styles->cpicker_bg, LV_STATE_DEFAULT, COLOR_SCR);
12c6a: 6823 ldr r3, [r4, #0]
12c6c: f103 0938 add.w r9, r3, #56 ; 0x38
12c70: 6a23 ldr r3, [r4, #32]
12c72: 079b lsls r3, r3, #30
12c74: bf4c ite mi
12c76: 485c ldrmi r0, [pc, #368] ; (12de8 <lv_theme_material_init+0x650>)
12c78: 485c ldrpl r0, [pc, #368] ; (12dec <lv_theme_material_init+0x654>)
12c7a: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
12c7c: 2129 movs r1, #41 ; 0x29
12c7e: 4602 mov r2, r0
12c80: 4648 mov r0, r9
12c82: 47b8 blx r7
lv_style_set_pad_inner(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(20));
12c84: 6823 ldr r3, [r4, #0]
12c86: 2000 movs r0, #0
12c88: f103 0938 add.w r9, r3, #56 ; 0x38
12c8c: 47a8 blx r5
12c8e: eb00 0080 add.w r0, r0, r0, lsl #2
12c92: 0080 lsls r0, r0, #2
12c94: 28ef cmp r0, #239 ; 0xef
12c96: f341 811f ble.w 13ed8 <lv_theme_material_init+0x1740>
12c9a: 2000 movs r0, #0
12c9c: 47a8 blx r5
12c9e: 2314 movs r3, #20
12ca0: 2250 movs r2, #80 ; 0x50
12ca2: fb00 2203 mla r2, r0, r3, r2
12ca6: 23a0 movs r3, #160 ; 0xa0
12ca8: fb92 f2f3 sdiv r2, r2, r3
12cac: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
12cae: 4648 mov r0, r9
12cb0: 2114 movs r1, #20
12cb2: 47b0 blx r6
lv_style_set_radius(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
12cb4: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
12cb6: f8df 9128 ldr.w r9, [pc, #296] ; 12de0 <lv_theme_material_init+0x648>
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
12cba: f647 72ff movw r2, #32767 ; 0x7fff
12cbe: 2101 movs r1, #1
12cc0: 3038 adds r0, #56 ; 0x38
12cc2: 47b0 blx r6
style_init_reset(&styles->cpicker_indic);
12cc4: 6820 ldr r0, [r4, #0]
12cc6: 303c adds r0, #60 ; 0x3c
12cc8: 47c0 blx r8
lv_style_set_radius(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
12cca: 6820 ldr r0, [r4, #0]
12ccc: f647 72ff movw r2, #32767 ; 0x7fff
12cd0: 2101 movs r1, #1
12cd2: 303c adds r0, #60 ; 0x3c
12cd4: 47b0 blx r6
lv_style_set_bg_color(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_COLOR_WHITE);
12cd6: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
12cd8: f8bb 2000 ldrh.w r2, [fp]
12cdc: 2129 movs r1, #41 ; 0x29
12cde: 303c adds r0, #60 ; 0x3c
12ce0: 47b8 blx r7
lv_style_set_bg_opa(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_OPA_COVER);
12ce2: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
12ce4: 22ff movs r2, #255 ; 0xff
12ce6: 212c movs r1, #44 ; 0x2c
12ce8: 303c adds r0, #60 ; 0x3c
12cea: 47c8 blx r9
lv_style_set_border_width(&styles->cpicker_indic, LV_STATE_DEFAULT, 2);
12cec: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
12cee: 2202 movs r2, #2
12cf0: 2130 movs r1, #48 ; 0x30
12cf2: 303c adds r0, #60 ; 0x3c
12cf4: 47b0 blx r6
lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_COLOR_GRAY);
12cf6: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
12cf8: f8bb 2002 ldrh.w r2, [fp, #2]
12cfc: 2139 movs r1, #57 ; 0x39
12cfe: 303c adds r0, #60 ; 0x3c
12d00: 47b8 blx r7
lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_FOCUSED, theme.color_primary);
12d02: 6820 ldr r0, [r4, #0]
12d04: 89a2 ldrh r2, [r4, #12]
12d06: f240 2139 movw r1, #569 ; 0x239
12d0a: 303c adds r0, #60 ; 0x3c
12d0c: 47b8 blx r7
lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_EDITED, theme.color_secondary);
12d0e: 6820 ldr r0, [r4, #0]
12d10: 89e2 ldrh r2, [r4, #14]
12d12: f240 4139 movw r1, #1081 ; 0x439
12d16: 303c adds r0, #60 ; 0x3c
12d18: 47b8 blx r7
lv_style_set_pad_left(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
12d1a: 6823 ldr r3, [r4, #0]
12d1c: 2000 movs r0, #0
12d1e: f103 0a3c add.w sl, r3, #60 ; 0x3c
12d22: 47a8 blx r5
12d24: eb00 0340 add.w r3, r0, r0, lsl #1
12d28: eb00 0083 add.w r0, r0, r3, lsl #2
12d2c: 28ef cmp r0, #239 ; 0xef
12d2e: f341 80d6 ble.w 13ede <lv_theme_material_init+0x1746>
12d32: 2000 movs r0, #0
12d34: 47a8 blx r5
12d36: 230d movs r3, #13
12d38: 2250 movs r2, #80 ; 0x50
12d3a: fb00 2203 mla r2, r0, r3, r2
12d3e: 23a0 movs r3, #160 ; 0xa0
12d40: fb92 f2f3 sdiv r2, r2, r3
12d44: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
12d46: 4650 mov r0, sl
12d48: 2112 movs r1, #18
12d4a: 47b0 blx r6
lv_style_set_pad_right(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
12d4c: 6823 ldr r3, [r4, #0]
12d4e: 2000 movs r0, #0
12d50: f103 0a3c add.w sl, r3, #60 ; 0x3c
12d54: 47a8 blx r5
12d56: eb00 0340 add.w r3, r0, r0, lsl #1
12d5a: eb00 0083 add.w r0, r0, r3, lsl #2
12d5e: 28ef cmp r0, #239 ; 0xef
12d60: f341 80c0 ble.w 13ee4 <lv_theme_material_init+0x174c>
12d64: 2000 movs r0, #0
12d66: 47a8 blx r5
12d68: 230d movs r3, #13
12d6a: 2250 movs r2, #80 ; 0x50
12d6c: fb00 2203 mla r2, r0, r3, r2
12d70: 23a0 movs r3, #160 ; 0xa0
12d72: fb92 f2f3 sdiv r2, r2, r3
12d76: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
12d78: 4650 mov r0, sl
12d7a: 2113 movs r1, #19
12d7c: 47b0 blx r6
lv_style_set_pad_top(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
12d7e: 6823 ldr r3, [r4, #0]
12d80: 2000 movs r0, #0
12d82: f103 0a3c add.w sl, r3, #60 ; 0x3c
12d86: 47a8 blx r5
12d88: eb00 0340 add.w r3, r0, r0, lsl #1
12d8c: eb00 0083 add.w r0, r0, r3, lsl #2
12d90: 28ef cmp r0, #239 ; 0xef
12d92: f341 80aa ble.w 13eea <lv_theme_material_init+0x1752>
12d96: 2000 movs r0, #0
12d98: 47a8 blx r5
12d9a: 230d movs r3, #13
12d9c: 2250 movs r2, #80 ; 0x50
12d9e: fb00 2203 mla r2, r0, r3, r2
12da2: 23a0 movs r3, #160 ; 0xa0
12da4: fb92 f2f3 sdiv r2, r2, r3
12da8: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
12daa: 4650 mov r0, sl
12dac: 2110 movs r1, #16
12dae: 47b0 blx r6
lv_style_set_pad_bottom(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
12db0: 6823 ldr r3, [r4, #0]
12db2: 2000 movs r0, #0
12db4: f103 0a3c add.w sl, r3, #60 ; 0x3c
12db8: 47a8 blx r5
12dba: eb00 0340 add.w r3, r0, r0, lsl #1
12dbe: eb00 0083 add.w r0, r0, r3, lsl #2
12dc2: 28ef cmp r0, #239 ; 0xef
12dc4: f341 8094 ble.w 13ef0 <lv_theme_material_init+0x1758>
12dc8: 2000 movs r0, #0
12dca: 47a8 blx r5
12dcc: 230d movs r3, #13
12dce: 2250 movs r2, #80 ; 0x50
12dd0: fb00 2203 mla r2, r0, r3, r2
12dd4: 23a0 movs r3, #160 ; 0xa0
12dd6: fb92 f2f3 sdiv r2, r2, r3
12dda: b212 sxth r2, r2
12ddc: e008 b.n 12df0 <lv_theme_material_init+0x658>
12dde: bf00 nop
12de0: 00005c9d .word 0x00005c9d
12de4: 00666666 .word 0x00666666
12de8: 00eaeff3 .word 0x00eaeff3
12dec: 00444b5a .word 0x00444b5a
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
12df0: 2111 movs r1, #17
12df2: 4650 mov r0, sl
12df4: 47b0 blx r6
style_init_reset(&styles->cb_bg);
12df6: 6820 ldr r0, [r4, #0]
12df8: 304c adds r0, #76 ; 0x4c
12dfa: 47c0 blx r8
lv_style_set_radius(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(4));
12dfc: 6823 ldr r3, [r4, #0]
12dfe: 2000 movs r0, #0
12e00: f103 084c add.w r8, r3, #76 ; 0x4c
12e04: 47a8 blx r5
12e06: 283b cmp r0, #59 ; 0x3b
12e08: f341 8075 ble.w 13ef6 <lv_theme_material_init+0x175e>
12e0c: 2000 movs r0, #0
12e0e: 47a8 blx r5
12e10: 2328 movs r3, #40 ; 0x28
12e12: f100 0214 add.w r2, r0, #20
12e16: fb92 f2f3 sdiv r2, r2, r3
12e1a: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
12e1c: 4640 mov r0, r8
12e1e: 2101 movs r1, #1
12e20: 47b0 blx r6
lv_style_set_pad_inner(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
12e22: 6823 ldr r3, [r4, #0]
12e24: 2000 movs r0, #0
12e26: f103 084c add.w r8, r3, #76 ; 0x4c
12e2a: 47a8 blx r5
12e2c: eb00 0080 add.w r0, r0, r0, lsl #2
12e30: 0040 lsls r0, r0, #1
12e32: 28ef cmp r0, #239 ; 0xef
12e34: f341 8062 ble.w 13efc <lv_theme_material_init+0x1764>
12e38: 2000 movs r0, #0
12e3a: 47a8 blx r5
12e3c: 230a movs r3, #10
12e3e: 2250 movs r2, #80 ; 0x50
12e40: fb00 2203 mla r2, r0, r3, r2
12e44: 23a0 movs r3, #160 ; 0xa0
12e46: fb92 f2f3 sdiv r2, r2, r3
12e4a: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
12e4c: 2114 movs r1, #20
12e4e: 4640 mov r0, r8
12e50: 47b0 blx r6
lv_style_set_outline_color(&styles->cb_bg, LV_STATE_DEFAULT, theme.color_primary);
12e52: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar)
12e54: 89a2 ldrh r2, [r4, #12]
12e56: 2149 movs r1, #73 ; 0x49
12e58: 304c adds r0, #76 ; 0x4c
12e5a: 47b8 blx r7
lv_style_set_outline_opa(&styles->cb_bg, LV_STATE_DEFAULT, LV_OPA_TRANSP);
12e5c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
12e5e: 214c movs r1, #76 ; 0x4c
12e60: 4408 add r0, r1
12e62: 2200 movs r2, #0
12e64: 47c8 blx r9
lv_style_set_outline_opa(&styles->cb_bg, LV_STATE_FOCUSED, LV_OPA_50);
12e66: 6820 ldr r0, [r4, #0]
12e68: 227f movs r2, #127 ; 0x7f
12e6a: f44f 7113 mov.w r1, #588 ; 0x24c
12e6e: 304c adds r0, #76 ; 0x4c
12e70: 47c8 blx r9
lv_style_set_outline_width(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(3));
12e72: 2000 movs r0, #0
12e74: 6824 ldr r4, [r4, #0]
12e76: 47a8 blx r5
12e78: eb00 0040 add.w r0, r0, r0, lsl #1
12e7c: 28ef cmp r0, #239 ; 0xef
12e7e: f104 044c add.w r4, r4, #76 ; 0x4c
12e82: f341 803e ble.w 13f02 <lv_theme_material_init+0x176a>
12e86: 2000 movs r0, #0
12e88: 47a8 blx r5
12e8a: 2303 movs r3, #3
12e8c: 2250 movs r2, #80 ; 0x50
12e8e: fb00 2203 mla r2, r0, r3, r2
12e92: 23a0 movs r3, #160 ; 0xa0
12e94: fb92 f2f3 sdiv r2, r2, r3
12e98: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar)
12e9a: 4620 mov r0, r4
12e9c: 2140 movs r1, #64 ; 0x40
lv_style_set_outline_pad(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
12e9e: 4cbf ldr r4, [pc, #764] ; (1319c <lv_theme_material_init+0xa04>)
12ea0: 47b0 blx r6
12ea2: 2000 movs r0, #0
12ea4: 6827 ldr r7, [r4, #0]
12ea6: 47a8 blx r5
12ea8: eb00 0080 add.w r0, r0, r0, lsl #2
12eac: 0040 lsls r0, r0, #1
12eae: 28ef cmp r0, #239 ; 0xef
12eb0: f107 074c add.w r7, r7, #76 ; 0x4c
12eb4: f341 8028 ble.w 13f08 <lv_theme_material_init+0x1770>
12eb8: 2000 movs r0, #0
12eba: 47a8 blx r5
12ebc: 230a movs r3, #10
12ebe: 2250 movs r2, #80 ; 0x50
12ec0: fb00 2203 mla r2, r0, r3, r2
12ec4: 23a0 movs r3, #160 ; 0xa0
12ec6: fb92 f2f3 sdiv r2, r2, r3
12eca: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar)
12ecc: 2141 movs r1, #65 ; 0x41
12ece: 4638 mov r0, r7
12ed0: 47b0 blx r6
lv_style_set_transition_time(&styles->cb_bg, LV_STATE_DEFAULT, TRANSITION_TIME);
12ed2: 6820 ldr r0, [r4, #0]
lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4));
12ed4: f8df 82e4 ldr.w r8, [pc, #740] ; 131bc <lv_theme_material_init+0xa24>
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
12ed8: 2296 movs r2, #150 ; 0x96
12eda: 21b0 movs r1, #176 ; 0xb0
12edc: 304c adds r0, #76 ; 0x4c
12ede: 47b0 blx r6
lv_style_set_transition_prop_6(&styles->cb_bg, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA);
12ee0: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
12ee2: 224c movs r2, #76 ; 0x4c
12ee4: 4410 add r0, r2
12ee6: 21b7 movs r1, #183 ; 0xb7
12ee8: 47b0 blx r6
style_init_reset(&styles->cb_bullet);
12eea: 6820 ldr r0, [r4, #0]
12eec: 4eac ldr r6, [pc, #688] ; (131a0 <lv_theme_material_init+0xa08>)
12eee: 3050 adds r0, #80 ; 0x50
12ef0: 47b0 blx r6
lv_style_set_outline_opa(&styles->cb_bullet, LV_STATE_FOCUSED, LV_OPA_TRANSP);
12ef2: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar)
12ef4: 2200 movs r2, #0
12ef6: f44f 7113 mov.w r1, #588 ; 0x24c
12efa: 3050 adds r0, #80 ; 0x50
12efc: 47c8 blx r9
lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4));
12efe: 2000 movs r0, #0
12f00: 6825 ldr r5, [r4, #0]
12f02: 47c0 blx r8
12f04: 283b cmp r0, #59 ; 0x3b
12f06: f105 0550 add.w r5, r5, #80 ; 0x50
12f0a: 46b2 mov sl, r6
12f0c: f341 8012 ble.w 13f34 <lv_theme_material_init+0x179c>
12f10: 2000 movs r0, #0
12f12: 47c0 blx r8
12f14: 2328 movs r3, #40 ; 0x28
12f16: f100 0214 add.w r2, r0, #20
12f1a: fb92 f2f3 sdiv r2, r2, r3
12f1e: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
12f20: 4628 mov r0, r5
12f22: 2101 movs r1, #1
12f24: 4d9f ldr r5, [pc, #636] ; (131a4 <lv_theme_material_init+0xa0c>)
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar)
12f26: 4fa0 ldr r7, [pc, #640] ; (131a8 <lv_theme_material_init+0xa10>)
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
12f28: 4ea0 ldr r6, [pc, #640] ; (131ac <lv_theme_material_init+0xa14>)
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
12f2a: 47a8 blx r5
lv_style_set_pattern_image(&styles->cb_bullet, LV_STATE_CHECKED, LV_SYMBOL_OK);
12f2c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar)
12f2e: 4aa0 ldr r2, [pc, #640] ; (131b0 <lv_theme_material_init+0xa18>)
12f30: f44f 71b7 mov.w r1, #366 ; 0x16e
12f34: 3050 adds r0, #80 ; 0x50
12f36: 47b8 blx r7
lv_style_set_pattern_recolor(&styles->cb_bullet, LV_STATE_CHECKED, LV_COLOR_WHITE);
12f38: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar)
12f3a: f8bb 2000 ldrh.w r2, [fp]
12f3e: f240 1169 movw r1, #361 ; 0x169
12f42: 3050 adds r0, #80 ; 0x50
12f44: 47b0 blx r6
lv_style_set_text_font(&styles->cb_bullet, LV_STATE_CHECKED, theme.font_small);
12f46: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
12f48: 6922 ldr r2, [r4, #16]
12f4a: f248 118e movw r1, #33166 ; 0x818e
12f4e: 3050 adds r0, #80 ; 0x50
12f50: 47b8 blx r7
lv_style_set_pad_left(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
12f52: 2000 movs r0, #0
12f54: 6827 ldr r7, [r4, #0]
12f56: 47c0 blx r8
12f58: eb00 0040 add.w r0, r0, r0, lsl #1
12f5c: 28ef cmp r0, #239 ; 0xef
12f5e: f107 0750 add.w r7, r7, #80 ; 0x50
12f62: f340 87ea ble.w 13f3a <lv_theme_material_init+0x17a2>
12f66: 2000 movs r0, #0
12f68: 47c0 blx r8
12f6a: 2303 movs r3, #3
12f6c: 2250 movs r2, #80 ; 0x50
12f6e: fb00 2203 mla r2, r0, r3, r2
12f72: 23a0 movs r3, #160 ; 0xa0
12f74: fb92 f2f3 sdiv r2, r2, r3
12f78: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
12f7a: 4638 mov r0, r7
12f7c: 2112 movs r1, #18
12f7e: 47a8 blx r5
lv_style_set_pad_right(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
12f80: 2000 movs r0, #0
12f82: 6827 ldr r7, [r4, #0]
12f84: 47c0 blx r8
12f86: eb00 0040 add.w r0, r0, r0, lsl #1
12f8a: 28ef cmp r0, #239 ; 0xef
12f8c: f107 0750 add.w r7, r7, #80 ; 0x50
12f90: f340 87d6 ble.w 13f40 <lv_theme_material_init+0x17a8>
12f94: 2000 movs r0, #0
12f96: 47c0 blx r8
12f98: 2303 movs r3, #3
12f9a: 2250 movs r2, #80 ; 0x50
12f9c: fb00 2203 mla r2, r0, r3, r2
12fa0: 23a0 movs r3, #160 ; 0xa0
12fa2: fb92 f2f3 sdiv r2, r2, r3
12fa6: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
12fa8: 4638 mov r0, r7
12faa: 2113 movs r1, #19
12fac: 47a8 blx r5
lv_style_set_pad_top(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
12fae: 2000 movs r0, #0
12fb0: 6827 ldr r7, [r4, #0]
12fb2: 47c0 blx r8
12fb4: eb00 0040 add.w r0, r0, r0, lsl #1
12fb8: 28ef cmp r0, #239 ; 0xef
12fba: f107 0750 add.w r7, r7, #80 ; 0x50
12fbe: f340 87c2 ble.w 13f46 <lv_theme_material_init+0x17ae>
12fc2: 2000 movs r0, #0
12fc4: 47c0 blx r8
12fc6: 2303 movs r3, #3
12fc8: 2250 movs r2, #80 ; 0x50
12fca: fb00 2203 mla r2, r0, r3, r2
12fce: 23a0 movs r3, #160 ; 0xa0
12fd0: fb92 f2f3 sdiv r2, r2, r3
12fd4: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
12fd6: 4638 mov r0, r7
12fd8: 2110 movs r1, #16
12fda: 47a8 blx r5
lv_style_set_pad_bottom(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
12fdc: 2000 movs r0, #0
12fde: 6827 ldr r7, [r4, #0]
12fe0: 47c0 blx r8
12fe2: eb00 0040 add.w r0, r0, r0, lsl #1
12fe6: 28ef cmp r0, #239 ; 0xef
12fe8: f107 0750 add.w r7, r7, #80 ; 0x50
12fec: f340 87ae ble.w 13f4c <lv_theme_material_init+0x17b4>
12ff0: 2000 movs r0, #0
12ff2: 47c0 blx r8
12ff4: 2303 movs r3, #3
12ff6: 2250 movs r2, #80 ; 0x50
12ff8: fb00 2203 mla r2, r0, r3, r2
12ffc: 23a0 movs r3, #160 ; 0xa0
12ffe: fb92 f2f3 sdiv r2, r2, r3
13002: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
13004: 2111 movs r1, #17
13006: 4638 mov r0, r7
13008: 47a8 blx r5
style_init_reset(&styles->kb_bg);
1300a: 6820 ldr r0, [r4, #0]
1300c: 3068 adds r0, #104 ; 0x68
1300e: 47d0 blx sl
lv_style_set_radius(&styles->kb_bg, LV_STATE_DEFAULT, 0);
13010: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
13012: 2200 movs r2, #0
13014: 2101 movs r1, #1
13016: 3068 adds r0, #104 ; 0x68
13018: 47a8 blx r5
lv_style_set_border_width(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(4));
1301a: 2000 movs r0, #0
1301c: 6827 ldr r7, [r4, #0]
1301e: 47c0 blx r8
13020: 283b cmp r0, #59 ; 0x3b
13022: f107 0768 add.w r7, r7, #104 ; 0x68
13026: f340 8794 ble.w 13f52 <lv_theme_material_init+0x17ba>
1302a: 2000 movs r0, #0
1302c: 47c0 blx r8
1302e: 2328 movs r3, #40 ; 0x28
13030: f100 0214 add.w r2, r0, #20
13034: fb92 f2f3 sdiv r2, r2, r3
13038: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
1303a: 4638 mov r0, r7
1303c: 2130 movs r1, #48 ; 0x30
1303e: 47a8 blx r5
lv_style_set_border_side(&styles->kb_bg, LV_STATE_DEFAULT, LV_BORDER_SIDE_TOP);
13040: 6820 ldr r0, [r4, #0]
13042: 4f5c ldr r7, [pc, #368] ; (131b4 <lv_theme_material_init+0xa1c>)
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
13044: 3068 adds r0, #104 ; 0x68
13046: 2202 movs r2, #2
13048: 2131 movs r1, #49 ; 0x31
1304a: 47a8 blx r5
lv_style_set_border_color(&styles->kb_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT : LV_COLOR_BLACK);
1304c: 6a20 ldr r0, [r4, #32]
1304e: 6823 ldr r3, [r4, #0]
13050: f010 0002 ands.w r0, r0, #2
13054: f103 0b68 add.w fp, r3, #104 ; 0x68
13058: f000 877e beq.w 13f58 <lv_theme_material_init+0x17c0>
1305c: 4856 ldr r0, [pc, #344] ; (131b8 <lv_theme_material_init+0xa20>)
1305e: 47b8 blx r7
13060: f000 021f and.w r2, r0, #31
13064: f3c0 1345 ubfx r3, r0, #5, #6
13068: f3c0 20c4 ubfx r0, r0, #11, #5
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
1306c: ea42 1243 orr.w r2, r2, r3, lsl #5
13070: ea42 22c0 orr.w r2, r2, r0, lsl #11
13074: 2139 movs r1, #57 ; 0x39
13076: 4658 mov r0, fp
13078: 47b0 blx r6
lv_style_set_border_color(&styles->kb_bg, LV_STATE_EDITED, theme.color_secondary);
1307a: 6820 ldr r0, [r4, #0]
1307c: 89e2 ldrh r2, [r4, #14]
1307e: f240 4139 movw r1, #1081 ; 0x439
13082: 3068 adds r0, #104 ; 0x68
13084: 47b0 blx r6
lv_style_set_pad_left(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
13086: 6823 ldr r3, [r4, #0]
13088: 2000 movs r0, #0
1308a: f103 0b68 add.w fp, r3, #104 ; 0x68
1308e: 47c0 blx r8
13090: eb00 0080 add.w r0, r0, r0, lsl #2
13094: 28ef cmp r0, #239 ; 0xef
13096: f340 8763 ble.w 13f60 <lv_theme_material_init+0x17c8>
1309a: 2000 movs r0, #0
1309c: 47c0 blx r8
1309e: 2305 movs r3, #5
130a0: 2250 movs r2, #80 ; 0x50
130a2: fb00 2203 mla r2, r0, r3, r2
130a6: 23a0 movs r3, #160 ; 0xa0
130a8: fb92 f2f3 sdiv r2, r2, r3
130ac: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
130ae: 4658 mov r0, fp
130b0: 2112 movs r1, #18
130b2: 47a8 blx r5
lv_style_set_pad_right(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
130b4: 6823 ldr r3, [r4, #0]
130b6: 2000 movs r0, #0
130b8: f103 0b68 add.w fp, r3, #104 ; 0x68
130bc: 47c0 blx r8
130be: eb00 0080 add.w r0, r0, r0, lsl #2
130c2: 28ef cmp r0, #239 ; 0xef
130c4: f340 874f ble.w 13f66 <lv_theme_material_init+0x17ce>
130c8: 2000 movs r0, #0
130ca: 47c0 blx r8
130cc: 2305 movs r3, #5
130ce: 2250 movs r2, #80 ; 0x50
130d0: fb00 2203 mla r2, r0, r3, r2
130d4: 23a0 movs r3, #160 ; 0xa0
130d6: fb92 f2f3 sdiv r2, r2, r3
130da: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
130dc: 4658 mov r0, fp
130de: 2113 movs r1, #19
130e0: 47a8 blx r5
lv_style_set_pad_top(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
130e2: 6823 ldr r3, [r4, #0]
130e4: 2000 movs r0, #0
130e6: f103 0b68 add.w fp, r3, #104 ; 0x68
130ea: 47c0 blx r8
130ec: eb00 0080 add.w r0, r0, r0, lsl #2
130f0: 28ef cmp r0, #239 ; 0xef
130f2: f340 873b ble.w 13f6c <lv_theme_material_init+0x17d4>
130f6: 2000 movs r0, #0
130f8: 47c0 blx r8
130fa: 2305 movs r3, #5
130fc: 2250 movs r2, #80 ; 0x50
130fe: fb00 2203 mla r2, r0, r3, r2
13102: 23a0 movs r3, #160 ; 0xa0
13104: fb92 f2f3 sdiv r2, r2, r3
13108: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
1310a: 4658 mov r0, fp
1310c: 2110 movs r1, #16
1310e: 47a8 blx r5
lv_style_set_pad_bottom(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
13110: 6823 ldr r3, [r4, #0]
13112: 2000 movs r0, #0
13114: f103 0b68 add.w fp, r3, #104 ; 0x68
13118: 47c0 blx r8
1311a: eb00 0080 add.w r0, r0, r0, lsl #2
1311e: 28ef cmp r0, #239 ; 0xef
13120: f340 8727 ble.w 13f72 <lv_theme_material_init+0x17da>
13124: 2000 movs r0, #0
13126: 47c0 blx r8
13128: 2305 movs r3, #5
1312a: 2250 movs r2, #80 ; 0x50
1312c: fb00 2203 mla r2, r0, r3, r2
13130: 23a0 movs r3, #160 ; 0xa0
13132: fb92 f2f3 sdiv r2, r2, r3
13136: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
13138: 4658 mov r0, fp
1313a: 2111 movs r1, #17
1313c: 47a8 blx r5
lv_style_set_pad_inner(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(3));
1313e: 6823 ldr r3, [r4, #0]
13140: 2000 movs r0, #0
13142: f103 0b68 add.w fp, r3, #104 ; 0x68
13146: 47c0 blx r8
13148: eb00 0040 add.w r0, r0, r0, lsl #1
1314c: 28ef cmp r0, #239 ; 0xef
1314e: f340 8713 ble.w 13f78 <lv_theme_material_init+0x17e0>
13152: 2000 movs r0, #0
13154: 47c0 blx r8
13156: 2303 movs r3, #3
13158: 2250 movs r2, #80 ; 0x50
1315a: fb00 2203 mla r2, r0, r3, r2
1315e: 23a0 movs r3, #160 ; 0xa0
13160: fb92 f2f3 sdiv r2, r2, r3
13164: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
13166: 2114 movs r1, #20
13168: 4658 mov r0, fp
1316a: 47a8 blx r5
style_init_reset(&styles->mbox_bg);
1316c: 6820 ldr r0, [r4, #0]
1316e: 307c adds r0, #124 ; 0x7c
13170: 47d0 blx sl
lv_style_set_shadow_width(&styles->mbox_bg, LV_STATE_DEFAULT, LV_DPX(50));
13172: 6823 ldr r3, [r4, #0]
13174: 2000 movs r0, #0
13176: f103 0b7c add.w fp, r3, #124 ; 0x7c
1317a: 47c0 blx r8
1317c: 2332 movs r3, #50 ; 0x32
1317e: 4358 muls r0, r3
13180: 28ef cmp r0, #239 ; 0xef
13182: f340 86fc ble.w 13f7e <lv_theme_material_init+0x17e6>
13186: 2000 movs r0, #0
13188: 47c0 blx r8
1318a: 2332 movs r3, #50 ; 0x32
1318c: 2250 movs r2, #80 ; 0x50
1318e: fb00 2203 mla r2, r0, r3, r2
13192: 23a0 movs r3, #160 ; 0xa0
13194: fb92 f2f3 sdiv r2, r2, r3
13198: b212 sxth r2, r2
1319a: e011 b.n 131c0 <lv_theme_material_init+0xa28>
1319c: 200057a4 .word 0x200057a4
131a0: 00010d4d .word 0x00010d4d
131a4: 00005afd .word 0x00005afd
131a8: 00005d71 .word 0x00005d71
131ac: 00005bcd .word 0x00005bcd
131b0: 0002bcf2 .word 0x0002bcf2
131b4: 0001112d .word 0x0001112d
131b8: 003b3e42 .word 0x003b3e42
131bc: 0000dbd5 .word 0x0000dbd5
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar)
131c0: 4658 mov r0, fp
131c2: 2150 movs r1, #80 ; 0x50
131c4: 47a8 blx r5
lv_style_set_shadow_color(&styles->mbox_bg, LV_STATE_DEFAULT, IS_LIGHT ? LV_COLOR_SILVER : lv_color_hex3(0x999));
131c6: 6823 ldr r3, [r4, #0]
131c8: f103 0b7c add.w fp, r3, #124 ; 0x7c
131cc: 6a23 ldr r3, [r4, #32]
131ce: 0798 lsls r0, r3, #30
131d0: f140 86d8 bpl.w 13f84 <lv_theme_material_init+0x17ec>
131d4: 4bb6 ldr r3, [pc, #728] ; (134b0 <lv_theme_material_init+0xd18>)
131d6: 889a ldrh r2, [r3, #4]
_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar)
131d8: 2159 movs r1, #89 ; 0x59
131da: 4658 mov r0, fp
131dc: 47b0 blx r6
style_init_reset(&styles->sb);
131de: 6820 ldr r0, [r4, #0]
131e0: 3080 adds r0, #128 ; 0x80
131e2: 47d0 blx sl
lv_style_set_bg_opa(&styles->sb, LV_STATE_DEFAULT, LV_OPA_COVER);
131e4: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
131e6: 22ff movs r2, #255 ; 0xff
131e8: 3080 adds r0, #128 ; 0x80
131ea: 212c movs r1, #44 ; 0x2c
131ec: 47c8 blx r9
lv_style_set_bg_color(&styles->sb, LV_STATE_DEFAULT, (IS_LIGHT ? lv_color_hex(0xcccfd1) : lv_color_hex(0x777f85)));
131ee: 6823 ldr r3, [r4, #0]
131f0: f103 0b80 add.w fp, r3, #128 ; 0x80
131f4: 6a23 ldr r3, [r4, #32]
131f6: 0799 lsls r1, r3, #30
131f8: bf4c ite mi
131fa: 48ae ldrmi r0, [pc, #696] ; (134b4 <lv_theme_material_init+0xd1c>)
131fc: 48ae ldrpl r0, [pc, #696] ; (134b8 <lv_theme_material_init+0xd20>)
131fe: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
13200: 2129 movs r1, #41 ; 0x29
13202: 4602 mov r2, r0
13204: 4658 mov r0, fp
13206: 47b0 blx r6
lv_style_set_radius(&styles->sb, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
13208: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
1320a: f647 72ff movw r2, #32767 ; 0x7fff
1320e: 2101 movs r1, #1
13210: 3080 adds r0, #128 ; 0x80
13212: 47a8 blx r5
lv_style_set_size(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
13214: 6823 ldr r3, [r4, #0]
13216: 2000 movs r0, #0
13218: f103 0b80 add.w fp, r3, #128 ; 0x80
1321c: 47c0 blx r8
1321e: ebc0 00c0 rsb r0, r0, r0, lsl #3
13222: 28ef cmp r0, #239 ; 0xef
13224: f340 86b5 ble.w 13f92 <lv_theme_material_init+0x17fa>
13228: 2000 movs r0, #0
1322a: 47c0 blx r8
1322c: 2307 movs r3, #7
1322e: 2250 movs r2, #80 ; 0x50
13230: fb00 2203 mla r2, r0, r3, r2
13234: 23a0 movs r3, #160 ; 0xa0
13236: fb92 f2f3 sdiv r2, r2, r3
1323a: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
1323c: 4658 mov r0, fp
1323e: 2103 movs r1, #3
13240: 47a8 blx r5
lv_style_set_pad_right(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
13242: 6823 ldr r3, [r4, #0]
13244: 2000 movs r0, #0
13246: f103 0b80 add.w fp, r3, #128 ; 0x80
1324a: 47c0 blx r8
1324c: ebc0 00c0 rsb r0, r0, r0, lsl #3
13250: 28ef cmp r0, #239 ; 0xef
13252: f340 86a1 ble.w 13f98 <lv_theme_material_init+0x1800>
13256: 2000 movs r0, #0
13258: 47c0 blx r8
1325a: 2307 movs r3, #7
1325c: 2250 movs r2, #80 ; 0x50
1325e: fb00 2203 mla r2, r0, r3, r2
13262: 23a0 movs r3, #160 ; 0xa0
13264: fb92 f2f3 sdiv r2, r2, r3
13268: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
1326a: 4658 mov r0, fp
1326c: 2113 movs r1, #19
1326e: 47a8 blx r5
lv_style_set_pad_bottom(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
13270: 6823 ldr r3, [r4, #0]
13272: 2000 movs r0, #0
13274: f103 0b80 add.w fp, r3, #128 ; 0x80
13278: 47c0 blx r8
1327a: ebc0 00c0 rsb r0, r0, r0, lsl #3
1327e: 28ef cmp r0, #239 ; 0xef
13280: f340 868d ble.w 13f9e <lv_theme_material_init+0x1806>
13284: 2000 movs r0, #0
13286: 47c0 blx r8
13288: 2307 movs r3, #7
1328a: 2250 movs r2, #80 ; 0x50
1328c: fb00 2203 mla r2, r0, r3, r2
13290: 23a0 movs r3, #160 ; 0xa0
13292: fb92 f2f3 sdiv r2, r2, r3
13296: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
13298: 2111 movs r1, #17
1329a: 4658 mov r0, fp
1329c: 47a8 blx r5
style_init_reset(&styles->edge_flash);
1329e: 6820 ldr r0, [r4, #0]
132a0: 3084 adds r0, #132 ; 0x84
132a2: 47d0 blx sl
lv_style_set_bg_opa(&styles->edge_flash, LV_STATE_DEFAULT, LV_OPA_COVER);
132a4: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
132a6: 22ff movs r2, #255 ; 0xff
132a8: 212c movs r1, #44 ; 0x2c
132aa: 3084 adds r0, #132 ; 0x84
132ac: 47c8 blx r9
lv_style_set_bg_color(&styles->edge_flash, LV_STATE_DEFAULT, lv_color_hex3(0x888));
132ae: 6823 ldr r3, [r4, #0]
132b0: f640 0088 movw r0, #2184 ; 0x888
132b4: f103 0b84 add.w fp, r3, #132 ; 0x84
132b8: 4b80 ldr r3, [pc, #512] ; (134bc <lv_theme_material_init+0xd24>)
132ba: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
132bc: 2129 movs r1, #41 ; 0x29
132be: 4602 mov r2, r0
132c0: 4658 mov r0, fp
132c2: 47b0 blx r6
style_init_reset(&styles->ta_cursor);
132c4: 6820 ldr r0, [r4, #0]
132c6: 30b4 adds r0, #180 ; 0xb4
132c8: 47d0 blx sl
lv_style_set_border_color(&styles->ta_cursor, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT);
132ca: 6823 ldr r3, [r4, #0]
132cc: f103 0bb4 add.w fp, r3, #180 ; 0xb4
132d0: 6a23 ldr r3, [r4, #32]
132d2: 079a lsls r2, r3, #30
132d4: bf4c ite mi
132d6: 487a ldrmi r0, [pc, #488] ; (134c0 <lv_theme_material_init+0xd28>)
132d8: 487a ldrpl r0, [pc, #488] ; (134c4 <lv_theme_material_init+0xd2c>)
132da: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
132dc: 2139 movs r1, #57 ; 0x39
132de: 4602 mov r2, r0
132e0: 4658 mov r0, fp
132e2: 47b0 blx r6
lv_style_set_border_width(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(2));
132e4: 6823 ldr r3, [r4, #0]
132e6: 2000 movs r0, #0
132e8: f103 0bb4 add.w fp, r3, #180 ; 0xb4
132ec: 47c0 blx r8
132ee: 2877 cmp r0, #119 ; 0x77
132f0: f340 8658 ble.w 13fa4 <lv_theme_material_init+0x180c>
132f4: 2000 movs r0, #0
132f6: 47c0 blx r8
132f8: 2350 movs r3, #80 ; 0x50
132fa: f100 0228 add.w r2, r0, #40 ; 0x28
132fe: fb92 f2f3 sdiv r2, r2, r3
13302: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
13304: 4658 mov r0, fp
13306: 2130 movs r1, #48 ; 0x30
13308: 47a8 blx r5
lv_style_set_pad_left(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(1));
1330a: 6823 ldr r3, [r4, #0]
1330c: 2000 movs r0, #0
1330e: f103 0bb4 add.w fp, r3, #180 ; 0xb4
13312: 47c0 blx r8
13314: 28ef cmp r0, #239 ; 0xef
13316: f340 8648 ble.w 13faa <lv_theme_material_init+0x1812>
1331a: 2000 movs r0, #0
1331c: 47c0 blx r8
1331e: 23a0 movs r3, #160 ; 0xa0
13320: f100 0250 add.w r2, r0, #80 ; 0x50
13324: fb92 f2f3 sdiv r2, r2, r3
13328: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
1332a: 4658 mov r0, fp
1332c: 2112 movs r1, #18
1332e: 47a8 blx r5
lv_style_set_border_side(&styles->ta_cursor, LV_STATE_DEFAULT, LV_BORDER_SIDE_LEFT);
13330: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
13332: 2204 movs r2, #4
13334: 2131 movs r1, #49 ; 0x31
13336: 30b4 adds r0, #180 ; 0xb4
13338: 47a8 blx r5
style_init_reset(&styles->ta_placeholder);
1333a: 6820 ldr r0, [r4, #0]
1333c: 30b8 adds r0, #184 ; 0xb8
1333e: 47d0 blx sl
lv_style_set_text_color(&styles->ta_placeholder, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
13340: 6823 ldr r3, [r4, #0]
13342: f103 0bb8 add.w fp, r3, #184 ; 0xb8
13346: 6a23 ldr r3, [r4, #32]
13348: 079b lsls r3, r3, #30
1334a: f140 8631 bpl.w 13fb0 <lv_theme_material_init+0x1818>
1334e: 4b5b ldr r3, [pc, #364] ; (134bc <lv_theme_material_init+0xd24>)
13350: f640 20aa movw r0, #2730 ; 0xaaa
13354: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
13356: 4602 mov r2, r0
13358: f248 0189 movw r1, #32905 ; 0x8089
1335c: 4658 mov r0, fp
1335e: 47b0 blx r6
style_init_reset(&styles->spinbox_cursor);
13360: 6820 ldr r0, [r4, #0]
13362: 3098 adds r0, #152 ; 0x98
13364: 47d0 blx sl
lv_style_set_bg_opa(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_OPA_COVER);
13366: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
13368: 22ff movs r2, #255 ; 0xff
1336a: 212c movs r1, #44 ; 0x2c
1336c: 3098 adds r0, #152 ; 0x98
1336e: 47c8 blx r9
lv_style_set_bg_color(&styles->spinbox_cursor, LV_STATE_DEFAULT, theme.color_primary);
13370: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
13372: 89a2 ldrh r2, [r4, #12]
13374: 2129 movs r1, #41 ; 0x29
13376: 3098 adds r0, #152 ; 0x98
13378: 47b0 blx r6
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
1337a: 4b4d ldr r3, [pc, #308] ; (134b0 <lv_theme_material_init+0xd18>)
lv_style_set_text_color(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_COLOR_WHITE);
1337c: 6820 ldr r0, [r4, #0]
1337e: 881a ldrh r2, [r3, #0]
13380: f248 0189 movw r1, #32905 ; 0x8089
13384: 3098 adds r0, #152 ; 0x98
13386: 47b0 blx r6
lv_style_set_pad_top(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
13388: 6823 ldr r3, [r4, #0]
1338a: 2000 movs r0, #0
1338c: f103 0998 add.w r9, r3, #152 ; 0x98
13390: 47c0 blx r8
13392: f04f 0b64 mov.w fp, #100 ; 0x64
13396: fb00 f00b mul.w r0, r0, fp
1339a: 28ef cmp r0, #239 ; 0xef
1339c: f340 860c ble.w 13fb8 <lv_theme_material_init+0x1820>
133a0: 2000 movs r0, #0
133a2: 47c0 blx r8
133a4: 2250 movs r2, #80 ; 0x50
133a6: fb00 220b mla r2, r0, fp, r2
133aa: 23a0 movs r3, #160 ; 0xa0
133ac: fb92 f2f3 sdiv r2, r2, r3
133b0: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
133b2: 4648 mov r0, r9
133b4: 2110 movs r1, #16
133b6: 47a8 blx r5
lv_style_set_pad_bottom(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
133b8: 6823 ldr r3, [r4, #0]
133ba: 2000 movs r0, #0
133bc: f103 0998 add.w r9, r3, #152 ; 0x98
133c0: 47c0 blx r8
133c2: f04f 0b64 mov.w fp, #100 ; 0x64
133c6: fb00 f00b mul.w r0, r0, fp
133ca: 28ef cmp r0, #239 ; 0xef
133cc: f340 85f7 ble.w 13fbe <lv_theme_material_init+0x1826>
133d0: 2000 movs r0, #0
133d2: 47c0 blx r8
133d4: 2250 movs r2, #80 ; 0x50
133d6: fb00 220b mla r2, r0, fp, r2
133da: 23a0 movs r3, #160 ; 0xa0
133dc: fb92 f2f3 sdiv r2, r2, r3
133e0: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
133e2: 2111 movs r1, #17
133e4: 4648 mov r0, r9
133e6: 47a8 blx r5
style_init_reset(&styles->list_bg);
133e8: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
133ea: f8df 90ec ldr.w r9, [pc, #236] ; 134d8 <lv_theme_material_init+0xd40>
133ee: 3074 adds r0, #116 ; 0x74
133f0: 47d0 blx sl
lv_style_set_clip_corner(&styles->list_bg, LV_STATE_DEFAULT, true);
133f2: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
133f4: 2201 movs r2, #1
133f6: 2102 movs r1, #2
133f8: 3074 adds r0, #116 ; 0x74
133fa: 47a8 blx r5
lv_style_set_pad_left(&styles->list_bg, LV_STATE_DEFAULT, 0);
133fc: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
133fe: 2200 movs r2, #0
13400: 2112 movs r1, #18
13402: 3074 adds r0, #116 ; 0x74
13404: 47a8 blx r5
lv_style_set_pad_right(&styles->list_bg, LV_STATE_DEFAULT, 0);
13406: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
13408: 2200 movs r2, #0
1340a: 2113 movs r1, #19
1340c: 3074 adds r0, #116 ; 0x74
1340e: 47a8 blx r5
lv_style_set_pad_top(&styles->list_bg, LV_STATE_DEFAULT, 0);
13410: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
13412: 2200 movs r2, #0
13414: 2110 movs r1, #16
13416: 3074 adds r0, #116 ; 0x74
13418: 47a8 blx r5
lv_style_set_pad_bottom(&styles->list_bg, LV_STATE_DEFAULT, 0);
1341a: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
1341c: 2200 movs r2, #0
1341e: 2111 movs r1, #17
13420: 3074 adds r0, #116 ; 0x74
13422: 47a8 blx r5
lv_style_set_pad_inner(&styles->list_bg, LV_STATE_DEFAULT, 0);
13424: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
13426: 2200 movs r2, #0
13428: 2114 movs r1, #20
1342a: 3074 adds r0, #116 ; 0x74
1342c: 47a8 blx r5
style_init_reset(&styles->list_btn);
1342e: 6820 ldr r0, [r4, #0]
13430: 3078 adds r0, #120 ; 0x78
13432: 47d0 blx sl
lv_style_set_bg_opa(&styles->list_btn, LV_STATE_DEFAULT, LV_OPA_COVER);
13434: 6820 ldr r0, [r4, #0]
13436: f8df a084 ldr.w sl, [pc, #132] ; 134bc <lv_theme_material_init+0xd24>
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
1343a: 3078 adds r0, #120 ; 0x78
1343c: 22ff movs r2, #255 ; 0xff
1343e: 212c movs r1, #44 ; 0x2c
13440: 47c8 blx r9
lv_style_set_bg_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG);
13442: 6823 ldr r3, [r4, #0]
13444: f103 0878 add.w r8, r3, #120 ; 0x78
13448: 6a23 ldr r3, [r4, #32]
1344a: 0798 lsls r0, r3, #30
1344c: bf54 ite pl
1344e: 481e ldrpl r0, [pc, #120] ; (134c8 <lv_theme_material_init+0xd30>)
13450: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000
13454: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
13456: 2129 movs r1, #41 ; 0x29
13458: 4602 mov r2, r0
1345a: 4640 mov r0, r8
1345c: 47b0 blx r6
lv_style_set_bg_color(&styles->list_btn, LV_STATE_PRESSED, COLOR_BG_PR);
1345e: 6823 ldr r3, [r4, #0]
13460: f103 0878 add.w r8, r3, #120 ; 0x78
13464: 6a23 ldr r3, [r4, #32]
13466: 0799 lsls r1, r3, #30
13468: bf4c ite mi
1346a: 4818 ldrmi r0, [pc, #96] ; (134cc <lv_theme_material_init+0xd34>)
1346c: 4818 ldrpl r0, [pc, #96] ; (134d0 <lv_theme_material_init+0xd38>)
1346e: 47b8 blx r7
13470: f241 0129 movw r1, #4137 ; 0x1029
13474: 4602 mov r2, r0
13476: 4640 mov r0, r8
13478: 47b0 blx r6
lv_style_set_bg_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_DIS);
1347a: 6823 ldr r3, [r4, #0]
1347c: f103 0878 add.w r8, r3, #120 ; 0x78
13480: 6a23 ldr r3, [r4, #32]
13482: 079a lsls r2, r3, #30
13484: bf54 ite pl
13486: 4810 ldrpl r0, [pc, #64] ; (134c8 <lv_theme_material_init+0xd30>)
13488: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000
1348c: 47b8 blx r7
1348e: f242 0129 movw r1, #8233 ; 0x2029
13492: 4602 mov r2, r0
13494: 4640 mov r0, r8
13496: 47b0 blx r6
lv_style_set_bg_color(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_CHK);
13498: 6820 ldr r0, [r4, #0]
1349a: 89a2 ldrh r2, [r4, #12]
1349c: f240 1129 movw r1, #297 ; 0x129
134a0: 3078 adds r0, #120 ; 0x78
134a2: 47b0 blx r6
lv_style_set_bg_color(&styles->list_btn, LV_STATE_CHECKED | LV_STATE_PRESSED, COLOR_BG_PR_CHK);
134a4: 6820 ldr r0, [r4, #0]
134a6: 4b0b ldr r3, [pc, #44] ; (134d4 <lv_theme_material_init+0xd3c>)
134a8: f100 0878 add.w r8, r0, #120 ; 0x78
134ac: e016 b.n 134dc <lv_theme_material_init+0xd44>
134ae: bf00 nop
134b0: 0002bcf6 .word 0x0002bcf6
134b4: 00cccfd1 .word 0x00cccfd1
134b8: 00777f85 .word 0x00777f85
134bc: 00010581 .word 0x00010581
134c0: 0031404f .word 0x0031404f
134c4: 00a5a8ad .word 0x00a5a8ad
134c8: 00586273 .word 0x00586273
134cc: 00eeeeee .word 0x00eeeeee
134d0: 00494f57 .word 0x00494f57
134d4: 0000e613 .word 0x0000e613
134d8: 00005c9d .word 0x00005c9d
134dc: 2133 movs r1, #51 ; 0x33
134de: 89a0 ldrh r0, [r4, #12]
134e0: 4798 blx r3
134e2: f241 1129 movw r1, #4393 ; 0x1129
134e6: 4602 mov r2, r0
134e8: 4640 mov r0, r8
134ea: 47b0 blx r6
lv_style_set_text_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT);
134ec: 6823 ldr r3, [r4, #0]
134ee: f103 0878 add.w r8, r3, #120 ; 0x78
134f2: 6a23 ldr r3, [r4, #32]
134f4: 079b lsls r3, r3, #30
134f6: bf4c ite mi
134f8: 48ba ldrmi r0, [pc, #744] ; (137e4 <lv_theme_material_init+0x104c>)
134fa: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
134fe: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
13500: f248 0189 movw r1, #32905 ; 0x8089
13504: 4602 mov r2, r0
13506: 4640 mov r0, r8
13508: 47b0 blx r6
lv_style_set_text_color(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
1350a: 6820 ldr r0, [r4, #0]
1350c: f100 0878 add.w r8, r0, #120 ; 0x78
13510: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
13514: 47b8 blx r7
13516: f248 1189 movw r1, #33161 ; 0x8189
1351a: 4602 mov r2, r0
1351c: 4640 mov r0, r8
1351e: 47b0 blx r6
lv_style_set_text_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
13520: 6823 ldr r3, [r4, #0]
13522: f103 0878 add.w r8, r3, #120 ; 0x78
13526: 6a23 ldr r3, [r4, #32]
13528: f013 0f02 tst.w r3, #2
1352c: bf14 ite ne
1352e: f640 20aa movwne r0, #2730 ; 0xaaa
13532: f640 1099 movweq r0, #2457 ; 0x999
13536: 47d0 blx sl
13538: f24a 0189 movw r1, #41097 ; 0xa089
1353c: 4602 mov r2, r0
1353e: 4640 mov r0, r8
13540: 47b0 blx r6
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT);
13542: 6823 ldr r3, [r4, #0]
13544: f103 0878 add.w r8, r3, #120 ; 0x78
13548: 6a23 ldr r3, [r4, #32]
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
1354a: 4ca7 ldr r4, [pc, #668] ; (137e8 <lv_theme_material_init+0x1050>)
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT);
1354c: 0798 lsls r0, r3, #30
1354e: bf4c ite mi
13550: 48a4 ldrmi r0, [pc, #656] ; (137e4 <lv_theme_material_init+0x104c>)
13552: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
13556: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
13558: f248 01a9 movw r1, #32937 ; 0x80a9
1355c: 4602 mov r2, r0
1355e: 4640 mov r0, r8
13560: 47b0 blx r6
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK);
13562: 6820 ldr r0, [r4, #0]
13564: f100 0878 add.w r8, r0, #120 ; 0x78
13568: f06f 407f mvn.w r0, #4278190080 ; 0xff000000
1356c: 47b8 blx r7
1356e: f248 11a9 movw r1, #33193 ; 0x81a9
13572: 4602 mov r2, r0
13574: 4640 mov r0, r8
13576: 47b0 blx r6
lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS);
13578: 6823 ldr r3, [r4, #0]
1357a: f103 0878 add.w r8, r3, #120 ; 0x78
1357e: 6a23 ldr r3, [r4, #32]
13580: 0799 lsls r1, r3, #30
13582: bf4c ite mi
13584: f640 20aa movwmi r0, #2730 ; 0xaaa
13588: f640 1099 movwpl r0, #2457 ; 0x999
1358c: 47d0 blx sl
1358e: f24a 01a9 movw r1, #41129 ; 0xa0a9
13592: 4602 mov r2, r0
13594: 4640 mov r0, r8
13596: 47b0 blx r6
lv_style_set_border_side(&styles->list_btn, LV_STATE_DEFAULT, LV_BORDER_SIDE_BOTTOM);
13598: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
1359a: 4e94 ldr r6, [pc, #592] ; (137ec <lv_theme_material_init+0x1054>)
lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
1359c: f8df 8268 ldr.w r8, [pc, #616] ; 13808 <lv_theme_material_init+0x1070>
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
135a0: 2201 movs r2, #1
135a2: 3078 adds r0, #120 ; 0x78
135a4: 2131 movs r1, #49 ; 0x31
135a6: 47a8 blx r5
lv_style_set_border_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_BORDER);
135a8: 6a23 ldr r3, [r4, #32]
135aa: 6825 ldr r5, [r4, #0]
135ac: 079a lsls r2, r3, #30
135ae: bf4c ite mi
135b0: 488f ldrmi r0, [pc, #572] ; (137f0 <lv_theme_material_init+0x1058>)
135b2: 4890 ldrpl r0, [pc, #576] ; (137f4 <lv_theme_material_init+0x105c>)
135b4: 47b8 blx r7
135b6: 3578 adds r5, #120 ; 0x78
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
135b8: 4602 mov r2, r0
135ba: 4f8f ldr r7, [pc, #572] ; (137f8 <lv_theme_material_init+0x1060>)
135bc: 4628 mov r0, r5
135be: 2139 movs r1, #57 ; 0x39
135c0: 47b8 blx r7
lv_style_set_border_color(&styles->list_btn, LV_STATE_FOCUSED, theme.color_primary);
135c2: 6820 ldr r0, [r4, #0]
135c4: 89a2 ldrh r2, [r4, #12]
135c6: 4d8d ldr r5, [pc, #564] ; (137fc <lv_theme_material_init+0x1064>)
135c8: f240 2139 movw r1, #569 ; 0x239
135cc: 3078 adds r0, #120 ; 0x78
135ce: 47b8 blx r7
lv_style_set_border_width(&styles->list_btn, LV_STATE_DEFAULT, 1);
135d0: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
135d2: 2201 movs r2, #1
135d4: 2130 movs r1, #48 ; 0x30
135d6: 3078 adds r0, #120 ; 0x78
135d8: 47b0 blx r6
lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
135da: 6823 ldr r3, [r4, #0]
135dc: 2000 movs r0, #0
135de: f103 0b78 add.w fp, r3, #120 ; 0x78
135e2: 47c0 blx r8
135e4: 2801 cmp r0, #1
135e6: f04f 0000 mov.w r0, #0
135ea: f200 84f7 bhi.w 13fdc <lv_theme_material_init+0x1844>
135ee: 47a8 blx r5
135f0: ebc0 1000 rsb r0, r0, r0, lsl #4
135f4: 28ef cmp r0, #239 ; 0xef
135f6: f300 84e5 bgt.w 13fc4 <lv_theme_material_init+0x182c>
135fa: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
135fc: 4658 mov r0, fp
135fe: 2112 movs r1, #18
13600: 47b0 blx r6
lv_style_set_pad_right(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
13602: 6823 ldr r3, [r4, #0]
13604: 2000 movs r0, #0
13606: f103 0b78 add.w fp, r3, #120 ; 0x78
1360a: 47c0 blx r8
1360c: 2801 cmp r0, #1
1360e: f04f 0000 mov.w r0, #0
13612: f200 84fa bhi.w 1400a <lv_theme_material_init+0x1872>
13616: 47a8 blx r5
13618: ebc0 1000 rsb r0, r0, r0, lsl #4
1361c: 28ef cmp r0, #239 ; 0xef
1361e: f300 84e8 bgt.w 13ff2 <lv_theme_material_init+0x185a>
13622: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
13624: 4658 mov r0, fp
13626: 2113 movs r1, #19
13628: 47b0 blx r6
lv_style_set_pad_top(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
1362a: 6823 ldr r3, [r4, #0]
1362c: 2000 movs r0, #0
1362e: f103 0b78 add.w fp, r3, #120 ; 0x78
13632: 47c0 blx r8
13634: 2801 cmp r0, #1
13636: f04f 0000 mov.w r0, #0
1363a: f200 84fd bhi.w 14038 <lv_theme_material_init+0x18a0>
1363e: 47a8 blx r5
13640: ebc0 1000 rsb r0, r0, r0, lsl #4
13644: 28ef cmp r0, #239 ; 0xef
13646: f300 84eb bgt.w 14020 <lv_theme_material_init+0x1888>
1364a: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
1364c: 4658 mov r0, fp
1364e: 2110 movs r1, #16
13650: 47b0 blx r6
lv_style_set_pad_bottom(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
13652: 6823 ldr r3, [r4, #0]
13654: 2000 movs r0, #0
13656: f103 0b78 add.w fp, r3, #120 ; 0x78
1365a: 47c0 blx r8
1365c: 2801 cmp r0, #1
1365e: f04f 0000 mov.w r0, #0
13662: f200 8500 bhi.w 14066 <lv_theme_material_init+0x18ce>
13666: 47a8 blx r5
13668: ebc0 1000 rsb r0, r0, r0, lsl #4
1366c: 28ef cmp r0, #239 ; 0xef
1366e: f300 84ee bgt.w 1404e <lv_theme_material_init+0x18b6>
13672: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
13674: 4658 mov r0, fp
13676: 2111 movs r1, #17
13678: 47b0 blx r6
lv_style_set_pad_inner(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
1367a: 6823 ldr r3, [r4, #0]
1367c: 2000 movs r0, #0
1367e: f103 0b78 add.w fp, r3, #120 ; 0x78
13682: 47c0 blx r8
13684: 2801 cmp r0, #1
13686: f04f 0000 mov.w r0, #0
1368a: f200 8503 bhi.w 14094 <lv_theme_material_init+0x18fc>
1368e: 47a8 blx r5
13690: ebc0 1000 rsb r0, r0, r0, lsl #4
13694: 28ef cmp r0, #239 ; 0xef
13696: f300 84f1 bgt.w 1407c <lv_theme_material_init+0x18e4>
1369a: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
1369c: 4658 mov r0, fp
1369e: 2114 movs r1, #20
136a0: 47b0 blx r6
lv_style_set_transform_width(&styles->list_btn, LV_STATE_DEFAULT, - PAD_DEF);
136a2: 6823 ldr r3, [r4, #0]
136a4: 2000 movs r0, #0
136a6: f103 0b78 add.w fp, r3, #120 ; 0x78
136aa: 47c0 blx r8
136ac: 2801 cmp r0, #1
136ae: f04f 0000 mov.w r0, #0
136b2: f200 8507 bhi.w 140c4 <lv_theme_material_init+0x192c>
136b6: 47a8 blx r5
136b8: ebc0 1000 rsb r0, r0, r0, lsl #4
136bc: 28ef cmp r0, #239 ; 0xef
136be: f300 84f4 bgt.w 140aa <lv_theme_material_init+0x1912>
136c2: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
136c6: 4658 mov r0, fp
136c8: 2104 movs r1, #4
136ca: 47b0 blx r6
lv_style_set_transform_width(&styles->list_btn, LV_STATE_PRESSED, 0);
136cc: 6820 ldr r0, [r4, #0]
style_init_reset(&styles->ddlist_page);
136ce: f8df b13c ldr.w fp, [pc, #316] ; 1380c <lv_theme_material_init+0x1074>
136d2: 2200 movs r2, #0
136d4: f241 0104 movw r1, #4100 ; 0x1004
136d8: 3078 adds r0, #120 ; 0x78
136da: 47b0 blx r6
lv_style_set_transform_width(&styles->list_btn, LV_STATE_CHECKED, 0);
136dc: 6820 ldr r0, [r4, #0]
136de: 2200 movs r2, #0
136e0: f44f 7182 mov.w r1, #260 ; 0x104
136e4: 3078 adds r0, #120 ; 0x78
136e6: 47b0 blx r6
lv_style_set_transform_width(&styles->list_btn, LV_STATE_DISABLED, 0);
136e8: 6820 ldr r0, [r4, #0]
136ea: 2200 movs r2, #0
136ec: f242 0104 movw r1, #8196 ; 0x2004
136f0: 3078 adds r0, #120 ; 0x78
136f2: 47b0 blx r6
lv_style_set_transition_time(&styles->list_btn, LV_STATE_DEFAULT, TRANSITION_TIME);
136f4: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar)
136f6: 2296 movs r2, #150 ; 0x96
136f8: 21b0 movs r1, #176 ; 0xb0
136fa: 3078 adds r0, #120 ; 0x78
136fc: 47b0 blx r6
lv_style_set_transition_prop_6(&styles->list_btn, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR);
136fe: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar)
13700: 2229 movs r2, #41 ; 0x29
13702: 21b7 movs r1, #183 ; 0xb7
13704: 3078 adds r0, #120 ; 0x78
13706: 47b0 blx r6
lv_style_set_transition_prop_5(&styles->list_btn, LV_STATE_DEFAULT, LV_STYLE_TRANSFORM_WIDTH);
13708: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar)
1370a: 2204 movs r2, #4
1370c: 21b6 movs r1, #182 ; 0xb6
1370e: 3078 adds r0, #120 ; 0x78
13710: 47b0 blx r6
style_init_reset(&styles->ddlist_page);
13712: 6820 ldr r0, [r4, #0]
13714: 3054 adds r0, #84 ; 0x54
13716: 47d8 blx fp
lv_style_set_text_line_space(&styles->ddlist_page, LV_STATE_DEFAULT, LV_DPX(20));
13718: 6823 ldr r3, [r4, #0]
1371a: 2000 movs r0, #0
1371c: f103 0854 add.w r8, r3, #84 ; 0x54
13720: 47a8 blx r5
13722: eb00 0080 add.w r0, r0, r0, lsl #2
13726: 0080 lsls r0, r0, #2
13728: 28ef cmp r0, #239 ; 0xef
1372a: f8cd b004 str.w fp, [sp, #4]
1372e: f340 84d4 ble.w 140da <lv_theme_material_init+0x1942>
13732: 2000 movs r0, #0
13734: 47a8 blx r5
13736: 2314 movs r3, #20
13738: 2250 movs r2, #80 ; 0x50
1373a: fb00 2203 mla r2, r0, r3, r2
1373e: 23a0 movs r3, #160 ; 0xa0
13740: fb92 f2f3 sdiv r2, r2, r3
13744: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
13746: 4640 mov r0, r8
13748: f248 0181 movw r1, #32897 ; 0x8081
1374c: 47b0 blx r6
lv_style_set_clip_corner(&styles->ddlist_page, LV_STATE_DEFAULT, true);
1374e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
13750: 2201 movs r2, #1
13752: 2102 movs r1, #2
13754: 3054 adds r0, #84 ; 0x54
13756: 47b0 blx r6
style_init_reset(&styles->ddlist_sel);
13758: 6820 ldr r0, [r4, #0]
1375a: 9b01 ldr r3, [sp, #4]
1375c: 3058 adds r0, #88 ; 0x58
1375e: 4798 blx r3
lv_style_set_bg_opa(&styles->ddlist_sel, LV_STATE_DEFAULT, LV_OPA_COVER);
13760: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
13762: 22ff movs r2, #255 ; 0xff
13764: 212c movs r1, #44 ; 0x2c
13766: 3058 adds r0, #88 ; 0x58
13768: 47c8 blx r9
lv_style_set_bg_color(&styles->ddlist_sel, LV_STATE_DEFAULT, theme.color_primary);
1376a: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
1376c: 89a2 ldrh r2, [r4, #12]
1376e: 2129 movs r1, #41 ; 0x29
13770: 3058 adds r0, #88 ; 0x58
13772: 47b8 blx r7
lv_style_set_text_color(&styles->ddlist_sel, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex3(0xfff) : lv_color_hex3(0xfff));
13774: 6823 ldr r3, [r4, #0]
13776: f640 70ff movw r0, #4095 ; 0xfff
1377a: f103 0858 add.w r8, r3, #88 ; 0x58
1377e: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
13780: f248 0189 movw r1, #32905 ; 0x8089
13784: 4602 mov r2, r0
13786: 4640 mov r0, r8
13788: 47b8 blx r7
lv_style_set_bg_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_PR);
1378a: 6823 ldr r3, [r4, #0]
1378c: f8df 8080 ldr.w r8, [pc, #128] ; 13810 <lv_theme_material_init+0x1078>
13790: f103 0b58 add.w fp, r3, #88 ; 0x58
13794: 6a23 ldr r3, [r4, #32]
13796: f013 0f02 tst.w r3, #2
1379a: bf14 ite ne
1379c: 4818 ldrne r0, [pc, #96] ; (13800 <lv_theme_material_init+0x1068>)
1379e: 4819 ldreq r0, [pc, #100] ; (13804 <lv_theme_material_init+0x106c>)
137a0: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
137a2: f241 0129 movw r1, #4137 ; 0x1029
137a6: 4602 mov r2, r0
137a8: 4658 mov r0, fp
137aa: 47b8 blx r7
lv_style_set_text_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_TEXT_PR);
137ac: 6823 ldr r3, [r4, #0]
137ae: f103 0b58 add.w fp, r3, #88 ; 0x58
137b2: 6a23 ldr r3, [r4, #32]
137b4: 079b lsls r3, r3, #30
137b6: bf4c ite mi
137b8: 480a ldrmi r0, [pc, #40] ; (137e4 <lv_theme_material_init+0x104c>)
137ba: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000
137be: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
137c0: f249 0189 movw r1, #37001 ; 0x9089
137c4: 4602 mov r2, r0
137c6: 4658 mov r0, fp
137c8: 47b8 blx r7
style_init_reset(&styles->roller_bg);
137ca: 6820 ldr r0, [r4, #0]
137cc: 9b01 ldr r3, [sp, #4]
137ce: 3088 adds r0, #136 ; 0x88
137d0: 4798 blx r3
lv_style_set_text_line_space(&styles->roller_bg, LV_STATE_DEFAULT, LV_DPX(25));
137d2: 6823 ldr r3, [r4, #0]
137d4: 2000 movs r0, #0
137d6: f103 0888 add.w r8, r3, #136 ; 0x88
137da: 47a8 blx r5
137dc: eb00 0080 add.w r0, r0, r0, lsl #2
137e0: e018 b.n 13814 <lv_theme_material_init+0x107c>
137e2: bf00 nop
137e4: 003b3e42 .word 0x003b3e42
137e8: 200057a4 .word 0x200057a4
137ec: 00005afd .word 0x00005afd
137f0: 00d6dde3 .word 0x00d6dde3
137f4: 00808a97 .word 0x00808a97
137f8: 00005bcd .word 0x00005bcd
137fc: 0000dbd5 .word 0x0000dbd5
13800: 00eeeeee .word 0x00eeeeee
13804: 00494f57 .word 0x00494f57
13808: 0000dbed .word 0x0000dbed
1380c: 00010d4d .word 0x00010d4d
13810: 0001112d .word 0x0001112d
13814: eb00 0080 add.w r0, r0, r0, lsl #2
13818: 28ef cmp r0, #239 ; 0xef
1381a: f340 8461 ble.w 140e0 <lv_theme_material_init+0x1948>
1381e: 2000 movs r0, #0
13820: 47a8 blx r5
13822: 2319 movs r3, #25
13824: 2250 movs r2, #80 ; 0x50
13826: fb00 2203 mla r2, r0, r3, r2
1382a: 23a0 movs r3, #160 ; 0xa0
1382c: fb92 f2f3 sdiv r2, r2, r3
13830: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
13832: f248 0181 movw r1, #32897 ; 0x8081
13836: 4640 mov r0, r8
13838: 47b0 blx r6
style_init_reset(&styles->roller_sel);
1383a: 6820 ldr r0, [r4, #0]
1383c: f8df 8308 ldr.w r8, [pc, #776] ; 13b48 <lv_theme_material_init+0x13b0>
13840: 308c adds r0, #140 ; 0x8c
13842: 47c0 blx r8
lv_style_set_bg_opa(&styles->roller_sel, LV_STATE_DEFAULT, LV_OPA_COVER);
13844: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
13846: 22ff movs r2, #255 ; 0xff
13848: 212c movs r1, #44 ; 0x2c
1384a: 308c adds r0, #140 ; 0x8c
1384c: 47c8 blx r9
lv_style_set_bg_color(&styles->roller_sel, LV_STATE_DEFAULT, theme.color_primary);
1384e: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
13850: 89a2 ldrh r2, [r4, #12]
13852: 2129 movs r1, #41 ; 0x29
13854: 308c adds r0, #140 ; 0x8c
13856: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
13858: 4bb4 ldr r3, [pc, #720] ; (13b2c <lv_theme_material_init+0x1394>)
lv_style_set_text_color(&styles->roller_sel, LV_STATE_DEFAULT, LV_COLOR_WHITE);
1385a: 6820 ldr r0, [r4, #0]
1385c: 881a ldrh r2, [r3, #0]
1385e: f248 0189 movw r1, #32905 ; 0x8089
13862: 308c adds r0, #140 ; 0x8c
13864: 47b8 blx r7
style_init_reset(&styles->tabview_btns_bg);
13866: 6820 ldr r0, [r4, #0]
13868: 30a8 adds r0, #168 ; 0xa8
1386a: 47c0 blx r8
lv_style_set_bg_opa(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_OPA_COVER);
1386c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
1386e: 22ff movs r2, #255 ; 0xff
13870: 30a8 adds r0, #168 ; 0xa8
13872: 212c movs r1, #44 ; 0x2c
13874: 47c8 blx r9
lv_style_set_bg_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_BG);
13876: 6823 ldr r3, [r4, #0]
13878: f8cd 8004 str.w r8, [sp, #4]
1387c: f103 0ba8 add.w fp, r3, #168 ; 0xa8
13880: 6a23 ldr r3, [r4, #32]
13882: f8df 82c8 ldr.w r8, [pc, #712] ; 13b4c <lv_theme_material_init+0x13b4>
13886: f013 0f02 tst.w r3, #2
1388a: bf0c ite eq
1388c: 48a8 ldreq r0, [pc, #672] ; (13b30 <lv_theme_material_init+0x1398>)
1388e: f06f 407f mvnne.w r0, #4278190080 ; 0xff000000
13892: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
13894: 2129 movs r1, #41 ; 0x29
13896: 4602 mov r2, r0
13898: 4658 mov r0, fp
1389a: 47b8 blx r7
lv_style_set_border_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT,
1389c: 6823 ldr r3, [r4, #0]
1389e: f103 0ba8 add.w fp, r3, #168 ; 0xa8
IS_LIGHT ? lv_color_hex(0xe4eaf0) : lv_color_hex(0x3b3e42));
138a2: 6a23 ldr r3, [r4, #32]
lv_style_set_border_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT,
138a4: 0798 lsls r0, r3, #30
IS_LIGHT ? lv_color_hex(0xe4eaf0) : lv_color_hex(0x3b3e42));
138a6: bf4c ite mi
138a8: 48a2 ldrmi r0, [pc, #648] ; (13b34 <lv_theme_material_init+0x139c>)
138aa: 48a3 ldrpl r0, [pc, #652] ; (13b38 <lv_theme_material_init+0x13a0>)
138ac: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
138ae: 2139 movs r1, #57 ; 0x39
138b0: 4602 mov r2, r0
138b2: 4658 mov r0, fp
138b4: 47b8 blx r7
lv_style_set_border_width(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(5));
138b6: 6823 ldr r3, [r4, #0]
138b8: 2000 movs r0, #0
138ba: f103 0ba8 add.w fp, r3, #168 ; 0xa8
138be: 47a8 blx r5
138c0: eb00 0080 add.w r0, r0, r0, lsl #2
138c4: 28ef cmp r0, #239 ; 0xef
138c6: f340 840e ble.w 140e6 <lv_theme_material_init+0x194e>
138ca: 2000 movs r0, #0
138cc: 47a8 blx r5
138ce: 2305 movs r3, #5
138d0: 2250 movs r2, #80 ; 0x50
138d2: fb00 2203 mla r2, r0, r3, r2
138d6: 23a0 movs r3, #160 ; 0xa0
138d8: fb92 f2f3 sdiv r2, r2, r3
138dc: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
138de: 4658 mov r0, fp
138e0: 2130 movs r1, #48 ; 0x30
138e2: 47b0 blx r6
lv_style_set_border_side(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_BORDER_SIDE_BOTTOM);
138e4: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
138e6: 2201 movs r2, #1
138e8: 30a8 adds r0, #168 ; 0xa8
138ea: 2131 movs r1, #49 ; 0x31
138ec: 47b0 blx r6
lv_style_set_text_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_SCR_TEXT);
138ee: 6823 ldr r3, [r4, #0]
138f0: f103 0ba8 add.w fp, r3, #168 ; 0xa8
138f4: 6a23 ldr r3, [r4, #32]
138f6: 0799 lsls r1, r3, #30
138f8: bf4c ite mi
138fa: 488f ldrmi r0, [pc, #572] ; (13b38 <lv_theme_material_init+0x13a0>)
138fc: 488f ldrpl r0, [pc, #572] ; (13b3c <lv_theme_material_init+0x13a4>)
138fe: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
13900: f248 0189 movw r1, #32905 ; 0x8089
13904: 4602 mov r2, r0
13906: 4658 mov r0, fp
13908: 47b8 blx r7
lv_style_set_text_font(&styles->tabview_btns_bg, LV_STATE_DEFAULT, theme.font_normal);
1390a: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
1390c: 6962 ldr r2, [r4, #20]
1390e: 4b8c ldr r3, [pc, #560] ; (13b40 <lv_theme_material_init+0x13a8>)
13910: f248 018e movw r1, #32910 ; 0x808e
13914: 30a8 adds r0, #168 ; 0xa8
13916: 4798 blx r3
lv_style_set_image_recolor(&styles->tabview_btns_bg, LV_STATE_DEFAULT, lv_color_hex(0x979a9f));
13918: 6823 ldr r3, [r4, #0]
1391a: 488a ldr r0, [pc, #552] ; (13b44 <lv_theme_material_init+0x13ac>)
1391c: f103 0ba8 add.w fp, r3, #168 ; 0xa8
13920: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
13922: f248 01a9 movw r1, #32937 ; 0x80a9
13926: 4602 mov r2, r0
13928: 4658 mov r0, fp
1392a: 47b8 blx r7
lv_style_set_pad_top(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
1392c: 6823 ldr r3, [r4, #0]
1392e: 2000 movs r0, #0
13930: f103 0ba8 add.w fp, r3, #168 ; 0xa8
13934: 47a8 blx r5
13936: ebc0 00c0 rsb r0, r0, r0, lsl #3
1393a: 28ef cmp r0, #239 ; 0xef
1393c: f340 83d6 ble.w 140ec <lv_theme_material_init+0x1954>
13940: 2000 movs r0, #0
13942: 47a8 blx r5
13944: 2307 movs r3, #7
13946: 2250 movs r2, #80 ; 0x50
13948: fb00 2203 mla r2, r0, r3, r2
1394c: 23a0 movs r3, #160 ; 0xa0
1394e: fb92 f2f3 sdiv r2, r2, r3
13952: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
13954: 4658 mov r0, fp
13956: 2110 movs r1, #16
13958: 47b0 blx r6
lv_style_set_pad_left(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
1395a: 6823 ldr r3, [r4, #0]
1395c: 2000 movs r0, #0
1395e: f103 0ba8 add.w fp, r3, #168 ; 0xa8
13962: 47a8 blx r5
13964: ebc0 00c0 rsb r0, r0, r0, lsl #3
13968: 28ef cmp r0, #239 ; 0xef
1396a: f340 83c1 ble.w 140f0 <lv_theme_material_init+0x1958>
1396e: 2000 movs r0, #0
13970: 47a8 blx r5
13972: 2307 movs r3, #7
13974: 2250 movs r2, #80 ; 0x50
13976: fb00 2203 mla r2, r0, r3, r2
1397a: 23a0 movs r3, #160 ; 0xa0
1397c: fb92 f2f3 sdiv r2, r2, r3
13980: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
13982: 4658 mov r0, fp
13984: 2112 movs r1, #18
13986: 47b0 blx r6
lv_style_set_pad_right(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
13988: 6823 ldr r3, [r4, #0]
1398a: 2000 movs r0, #0
1398c: f103 0ba8 add.w fp, r3, #168 ; 0xa8
13990: 47a8 blx r5
13992: ebc0 00c0 rsb r0, r0, r0, lsl #3
13996: 28ef cmp r0, #239 ; 0xef
13998: f340 83ac ble.w 140f4 <lv_theme_material_init+0x195c>
1399c: 2000 movs r0, #0
1399e: 47a8 blx r5
139a0: 2307 movs r3, #7
139a2: 2250 movs r2, #80 ; 0x50
139a4: fb00 2203 mla r2, r0, r3, r2
139a8: 23a0 movs r3, #160 ; 0xa0
139aa: fb92 f2f3 sdiv r2, r2, r3
139ae: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
139b0: 2113 movs r1, #19
139b2: 4658 mov r0, fp
139b4: 47b0 blx r6
style_init_reset(&styles->tabview_btns);
139b6: 6820 ldr r0, [r4, #0]
139b8: 9b01 ldr r3, [sp, #4]
139ba: 30a4 adds r0, #164 ; 0xa4
139bc: 4798 blx r3
lv_style_set_bg_opa(&styles->tabview_btns, LV_STATE_PRESSED, LV_OPA_50);
139be: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
139c0: 227f movs r2, #127 ; 0x7f
139c2: f241 012c movw r1, #4140 ; 0x102c
139c6: 30a4 adds r0, #164 ; 0xa4
139c8: 47c8 blx r9
lv_style_set_bg_color(&styles->tabview_btns, LV_STATE_PRESSED, lv_color_hex3(0x888));
139ca: 6823 ldr r3, [r4, #0]
139cc: f640 0088 movw r0, #2184 ; 0x888
139d0: f103 0ba4 add.w fp, r3, #164 ; 0xa4
139d4: 47d0 blx sl
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
139d6: f241 0129 movw r1, #4137 ; 0x1029
139da: 4602 mov r2, r0
139dc: 4658 mov r0, fp
139de: 47b8 blx r7
lv_style_set_text_color(&styles->tabview_btns, LV_STATE_CHECKED, COLOR_SCR_TEXT);
139e0: 6823 ldr r3, [r4, #0]
139e2: f103 0aa4 add.w sl, r3, #164 ; 0xa4
139e6: 6a23 ldr r3, [r4, #32]
139e8: 079a lsls r2, r3, #30
139ea: bf4c ite mi
139ec: 4852 ldrmi r0, [pc, #328] ; (13b38 <lv_theme_material_init+0x13a0>)
139ee: 4853 ldrpl r0, [pc, #332] ; (13b3c <lv_theme_material_init+0x13a4>)
139f0: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
139f2: f248 1189 movw r1, #33161 ; 0x8189
139f6: 4602 mov r2, r0
139f8: 4650 mov r0, sl
139fa: 47b8 blx r7
lv_style_set_pad_top(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
139fc: 6823 ldr r3, [r4, #0]
139fe: 2000 movs r0, #0
13a00: f103 0aa4 add.w sl, r3, #164 ; 0xa4
13a04: 47a8 blx r5
13a06: eb00 0080 add.w r0, r0, r0, lsl #2
13a0a: 0080 lsls r0, r0, #2
13a0c: 28ef cmp r0, #239 ; 0xef
13a0e: f340 8373 ble.w 140f8 <lv_theme_material_init+0x1960>
13a12: 2000 movs r0, #0
13a14: 47a8 blx r5
13a16: 2314 movs r3, #20
13a18: 2250 movs r2, #80 ; 0x50
13a1a: fb00 2203 mla r2, r0, r3, r2
13a1e: 23a0 movs r3, #160 ; 0xa0
13a20: fb92 f2f3 sdiv r2, r2, r3
13a24: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
13a26: 4650 mov r0, sl
13a28: 2110 movs r1, #16
13a2a: 47b0 blx r6
lv_style_set_pad_bottom(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
13a2c: 6823 ldr r3, [r4, #0]
13a2e: 2000 movs r0, #0
13a30: f103 0aa4 add.w sl, r3, #164 ; 0xa4
13a34: 47a8 blx r5
13a36: eb00 0080 add.w r0, r0, r0, lsl #2
13a3a: 0080 lsls r0, r0, #2
13a3c: 28ef cmp r0, #239 ; 0xef
13a3e: f340 835d ble.w 140fc <lv_theme_material_init+0x1964>
13a42: 2000 movs r0, #0
13a44: 47a8 blx r5
13a46: 2314 movs r3, #20
13a48: 2250 movs r2, #80 ; 0x50
13a4a: fb00 2203 mla r2, r0, r3, r2
13a4e: 23a0 movs r3, #160 ; 0xa0
13a50: fb92 f2f3 sdiv r2, r2, r3
13a54: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
13a56: 2111 movs r1, #17
13a58: 4650 mov r0, sl
13a5a: 47b0 blx r6
lv_style_set_text_color(&styles->tabview_btns, LV_STATE_FOCUSED, theme.color_primary);
13a5c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar)
13a5e: 89a2 ldrh r2, [r4, #12]
13a60: f248 2189 movw r1, #33417 ; 0x8289
13a64: 30a4 adds r0, #164 ; 0xa4
13a66: 47b8 blx r7
lv_style_set_text_color(&styles->tabview_btns, LV_STATE_EDITED, theme.color_secondary);
13a68: 6820 ldr r0, [r4, #0]
13a6a: 89e2 ldrh r2, [r4, #14]
13a6c: f248 4189 movw r1, #33929 ; 0x8489
13a70: 30a4 adds r0, #164 ; 0xa4
13a72: 47b8 blx r7
style_init_reset(&styles->tabview_indic);
13a74: 6820 ldr r0, [r4, #0]
13a76: 9b01 ldr r3, [sp, #4]
13a78: 30ac adds r0, #172 ; 0xac
13a7a: 4798 blx r3
lv_style_set_bg_opa(&styles->tabview_indic, LV_STATE_DEFAULT, LV_OPA_COVER);
13a7c: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar)
13a7e: 22ff movs r2, #255 ; 0xff
13a80: 212c movs r1, #44 ; 0x2c
13a82: 30ac adds r0, #172 ; 0xac
13a84: 47c8 blx r9
lv_style_set_bg_color(&styles->tabview_indic, LV_STATE_DEFAULT, theme.color_primary);
13a86: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar)
13a88: 89a2 ldrh r2, [r4, #12]
13a8a: 2129 movs r1, #41 ; 0x29
13a8c: 30ac adds r0, #172 ; 0xac
13a8e: 47b8 blx r7
lv_style_set_bg_color(&styles->tabview_indic, LV_STATE_EDITED, theme.color_secondary);
13a90: 6820 ldr r0, [r4, #0]
13a92: 89e2 ldrh r2, [r4, #14]
13a94: f240 4129 movw r1, #1065 ; 0x429
13a98: 30ac adds r0, #172 ; 0xac
13a9a: 47b8 blx r7
lv_style_set_size(&styles->tabview_indic, LV_STATE_DEFAULT, LV_DPX(5));
13a9c: 6823 ldr r3, [r4, #0]
13a9e: 2000 movs r0, #0
13aa0: f103 09ac add.w r9, r3, #172 ; 0xac
13aa4: 47a8 blx r5
13aa6: eb00 0080 add.w r0, r0, r0, lsl #2
13aaa: 28ef cmp r0, #239 ; 0xef
13aac: f340 8328 ble.w 14100 <lv_theme_material_init+0x1968>
13ab0: 2000 movs r0, #0
13ab2: 47a8 blx r5
13ab4: 2305 movs r3, #5
13ab6: 2250 movs r2, #80 ; 0x50
13ab8: fb00 2203 mla r2, r0, r3, r2
13abc: 23a0 movs r3, #160 ; 0xa0
13abe: fb92 f2f3 sdiv r2, r2, r3
13ac2: b212 sxth r2, r2
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
13ac4: 4648 mov r0, r9
13ac6: 2103 movs r1, #3
13ac8: 47b0 blx r6
lv_style_set_radius(&styles->tabview_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE);
13aca: 6820 ldr r0, [r4, #0]
lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
13acc: f8df 9080 ldr.w r9, [pc, #128] ; 13b50 <lv_theme_material_init+0x13b8>
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
13ad0: f647 72ff movw r2, #32767 ; 0x7fff
13ad4: 2101 movs r1, #1
13ad6: 30ac adds r0, #172 ; 0xac
13ad8: 47b0 blx r6
style_init_reset(&styles->tabview_page_scrl);
13ada: 6820 ldr r0, [r4, #0]
13adc: 9b01 ldr r3, [sp, #4]
13ade: 30b0 adds r0, #176 ; 0xb0
13ae0: 4798 blx r3
lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
13ae2: 6823 ldr r3, [r4, #0]
13ae4: 2000 movs r0, #0
13ae6: f103 0ab0 add.w sl, r3, #176 ; 0xb0
13aea: 47c8 blx r9
13aec: 2801 cmp r0, #1
13aee: f04f 0000 mov.w r0, #0
13af2: f200 8312 bhi.w 1411a <lv_theme_material_init+0x1982>
13af6: 47a8 blx r5
13af8: ebc0 1000 rsb r0, r0, r0, lsl #4
13afc: 28ef cmp r0, #239 ; 0xef
13afe: f300 8301 bgt.w 14104 <lv_theme_material_init+0x196c>
13b02: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
13b04: 4650 mov r0, sl
13b06: 2110 movs r1, #16
13b08: 47b0 blx r6
lv_style_set_pad_bottom(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
13b0a: 6823 ldr r3, [r4, #0]
13b0c: 2000 movs r0, #0
13b0e: f103 0ab0 add.w sl, r3, #176 ; 0xb0
13b12: 47c8 blx r9
13b14: 2801 cmp r0, #1
13b16: f04f 0000 mov.w r0, #0
13b1a: f200 8314 bhi.w 14146 <lv_theme_material_init+0x19ae>
13b1e: 47a8 blx r5
13b20: ebc0 1000 rsb r0, r0, r0, lsl #4
13b24: 28ef cmp r0, #239 ; 0xef
13b26: f300 8303 bgt.w 14130 <lv_theme_material_init+0x1998>
13b2a: e013 b.n 13b54 <lv_theme_material_init+0x13bc>
13b2c: 0002bcf6 .word 0x0002bcf6
13b30: 00586273 .word 0x00586273
13b34: 00e4eaf0 .word 0x00e4eaf0
13b38: 003b3e42 .word 0x003b3e42
13b3c: 00e7e9ec .word 0x00e7e9ec
13b40: 00005d71 .word 0x00005d71
13b44: 00979a9f .word 0x00979a9f
13b48: 00010d4d .word 0x00010d4d
13b4c: 0001112d .word 0x0001112d
13b50: 0000dbed .word 0x0000dbed
13b54: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
13b56: 4650 mov r0, sl
13b58: 2111 movs r1, #17
13b5a: 47b0 blx r6
lv_style_set_pad_left(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
13b5c: 6823 ldr r3, [r4, #0]
13b5e: 2000 movs r0, #0
13b60: f103 0ab0 add.w sl, r3, #176 ; 0xb0
13b64: 47c8 blx r9
13b66: 2801 cmp r0, #1
13b68: f04f 0000 mov.w r0, #0
13b6c: f200 8301 bhi.w 14172 <lv_theme_material_init+0x19da>
13b70: 47a8 blx r5
13b72: ebc0 1000 rsb r0, r0, r0, lsl #4
13b76: 28ef cmp r0, #239 ; 0xef
13b78: f300 82f0 bgt.w 1415c <lv_theme_material_init+0x19c4>
13b7c: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
13b7e: 4650 mov r0, sl
13b80: 2112 movs r1, #18
13b82: 47b0 blx r6
lv_style_set_pad_right(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
13b84: 6823 ldr r3, [r4, #0]
13b86: 2000 movs r0, #0
13b88: f103 0ab0 add.w sl, r3, #176 ; 0xb0
13b8c: 47c8 blx r9
13b8e: 2801 cmp r0, #1
13b90: f04f 0000 mov.w r0, #0
13b94: f200 8303 bhi.w 1419e <lv_theme_material_init+0x1a06>
13b98: 47a8 blx r5
13b9a: ebc0 1000 rsb r0, r0, r0, lsl #4
13b9e: 28ef cmp r0, #239 ; 0xef
13ba0: f300 82f2 bgt.w 14188 <lv_theme_material_init+0x19f0>
13ba4: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
13ba6: 4650 mov r0, sl
13ba8: 2113 movs r1, #19
13baa: 47b0 blx r6
lv_style_set_pad_inner(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
13bac: 6823 ldr r3, [r4, #0]
13bae: 2000 movs r0, #0
13bb0: f103 0ab0 add.w sl, r3, #176 ; 0xb0
13bb4: 47c8 blx r9
13bb6: 2801 cmp r0, #1
13bb8: f04f 0000 mov.w r0, #0
13bbc: f200 8305 bhi.w 141ca <lv_theme_material_init+0x1a32>
13bc0: 47a8 blx r5
13bc2: ebc0 1000 rsb r0, r0, r0, lsl #4
13bc6: 28ef cmp r0, #239 ; 0xef
13bc8: f300 82f4 bgt.w 141b4 <lv_theme_material_init+0x1a1c>
13bcc: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar)
13bce: 2114 movs r1, #20
13bd0: 4650 mov r0, sl
13bd2: 47b0 blx r6
style_init_reset(&styles->table_cell);
13bd4: 6820 ldr r0, [r4, #0]
13bd6: 9b01 ldr r3, [sp, #4]
13bd8: 30a0 adds r0, #160 ; 0xa0
13bda: 4798 blx r3
lv_style_set_border_color(&styles->table_cell, LV_STATE_DEFAULT, COLOR_BG_BORDER);
13bdc: 6823 ldr r3, [r4, #0]
13bde: f103 0aa0 add.w sl, r3, #160 ; 0xa0
13be2: 6a23 ldr r3, [r4, #32]
13be4: 079b lsls r3, r3, #30
13be6: bf4c ite mi
13be8: 48c9 ldrmi r0, [pc, #804] ; (13f10 <lv_theme_material_init+0x1778>)
13bea: 48ca ldrpl r0, [pc, #808] ; (13f14 <lv_theme_material_init+0x177c>)
13bec: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar)
13bee: 2139 movs r1, #57 ; 0x39
13bf0: 4602 mov r2, r0
13bf2: 4650 mov r0, sl
13bf4: 47b8 blx r7
lv_style_set_border_width(&styles->table_cell, LV_STATE_DEFAULT, 1);
13bf6: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar)
13bf8: 2201 movs r2, #1
13bfa: 2130 movs r1, #48 ; 0x30
13bfc: 30a0 adds r0, #160 ; 0xa0
13bfe: 47b0 blx r6
lv_style_set_border_side(&styles->table_cell, LV_STATE_DEFAULT, LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_BOTTOM);
13c00: 6820 ldr r0, [r4, #0]
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar)
13c02: 2203 movs r2, #3
13c04: 2131 movs r1, #49 ; 0x31
13c06: 30a0 adds r0, #160 ; 0xa0
13c08: 47b0 blx r6
lv_style_set_pad_left(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
13c0a: 2000 movs r0, #0
13c0c: 6827 ldr r7, [r4, #0]
13c0e: 47c8 blx r9
13c10: 2801 cmp r0, #1
13c12: f107 07a0 add.w r7, r7, #160 ; 0xa0
13c16: f04f 0000 mov.w r0, #0
13c1a: f200 82ec bhi.w 141f6 <lv_theme_material_init+0x1a5e>
13c1e: 47a8 blx r5
13c20: ebc0 1000 rsb r0, r0, r0, lsl #4
13c24: 28ef cmp r0, #239 ; 0xef
13c26: f300 82db bgt.w 141e0 <lv_theme_material_init+0x1a48>
13c2a: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
13c2c: 2112 movs r1, #18
13c2e: 4638 mov r0, r7
13c30: 47b0 blx r6
lv_style_set_pad_right(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
13c32: 2000 movs r0, #0
13c34: 6824 ldr r4, [r4, #0]
13c36: 47c8 blx r9
13c38: 2801 cmp r0, #1
13c3a: f104 04a0 add.w r4, r4, #160 ; 0xa0
13c3e: f04f 0000 mov.w r0, #0
13c42: f200 82ee bhi.w 14222 <lv_theme_material_init+0x1a8a>
13c46: 47a8 blx r5
13c48: ebc0 1000 rsb r0, r0, r0, lsl #4
13c4c: 28ef cmp r0, #239 ; 0xef
13c4e: f300 82dd bgt.w 1420c <lv_theme_material_init+0x1a74>
13c52: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
13c54: 4620 mov r0, r4
13c56: 2113 movs r1, #19
lv_style_set_pad_top(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
13c58: 4caf ldr r4, [pc, #700] ; (13f18 <lv_theme_material_init+0x1780>)
13c5a: 47b0 blx r6
13c5c: 2000 movs r0, #0
13c5e: 6827 ldr r7, [r4, #0]
13c60: 47c8 blx r9
13c62: 2801 cmp r0, #1
13c64: f107 07a0 add.w r7, r7, #160 ; 0xa0
13c68: f04f 0000 mov.w r0, #0
13c6c: f200 82ef bhi.w 1424e <lv_theme_material_init+0x1ab6>
13c70: 47a8 blx r5
13c72: ebc0 1000 rsb r0, r0, r0, lsl #4
13c76: 28ef cmp r0, #239 ; 0xef
13c78: f300 82de bgt.w 14238 <lv_theme_material_init+0x1aa0>
13c7c: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
13c7e: 2110 movs r1, #16
13c80: 4638 mov r0, r7
13c82: 47b0 blx r6
lv_style_set_pad_bottom(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
13c84: 2000 movs r0, #0
13c86: 6825 ldr r5, [r4, #0]
13c88: 4ea4 ldr r6, [pc, #656] ; (13f1c <lv_theme_material_init+0x1784>)
13c8a: 47c8 blx r9
13c8c: 2801 cmp r0, #1
13c8e: f105 05a0 add.w r5, r5, #160 ; 0xa0
13c92: f04f 0000 mov.w r0, #0
13c96: f200 82f0 bhi.w 1427a <lv_theme_material_init+0x1ae2>
13c9a: 47b0 blx r6
13c9c: ebc0 1000 rsb r0, r0, r0, lsl #4
13ca0: 28ef cmp r0, #239 ; 0xef
13ca2: f300 82df bgt.w 14264 <lv_theme_material_init+0x1acc>
13ca6: 2201 movs r2, #1
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
13ca8: 2111 movs r1, #17
13caa: 4628 mov r0, r5
13cac: 4b9c ldr r3, [pc, #624] ; (13f20 <lv_theme_material_init+0x1788>)
13cae: 4798 blx r3
theme.apply_xcb = theme_apply;
13cb0: 4b9c ldr r3, [pc, #624] ; (13f24 <lv_theme_material_init+0x178c>)
13cb2: 60a3 str r3, [r4, #8]
inited = true;
13cb4: 2301 movs r3, #1
13cb6: 7123 strb r3, [r4, #4]
lv_obj_report_style_mod(NULL);
13cb8: 2000 movs r0, #0
13cba: 4b9b ldr r3, [pc, #620] ; (13f28 <lv_theme_material_init+0x1790>)
13cbc: 4798 blx r3
}
13cbe: 489b ldr r0, [pc, #620] ; (13f2c <lv_theme_material_init+0x1794>)
13cc0: b003 add sp, #12
13cc2: ecbd 8b02 vpop {d8}
13cc6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25));
13cca: 2201 movs r2, #1
13ccc: f7fe bdb1 b.w 12832 <lv_theme_material_init+0x9a>
lv_style_set_line_width(&styles->arc_bg, LV_STATE_DEFAULT, LV_DPX(25));
13cd0: 2201 movs r2, #1
13cd2: f7fe bde0 b.w 12896 <lv_theme_material_init+0xfe>
lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
13cd6: 2000 movs r0, #0
13cd8: 47a8 blx r5
13cda: 230f movs r3, #15
13cdc: 2250 movs r2, #80 ; 0x50
13cde: fb00 2203 mla r2, r0, r3, r2
13ce2: 23a0 movs r3, #160 ; 0xa0
13ce4: fb92 f2f3 sdiv r2, r2, r3
13ce8: b212 sxth r2, r2
13cea: f7fe bdf4 b.w 128d6 <lv_theme_material_init+0x13e>
13cee: 47a8 blx r5
13cf0: ebc0 1000 rsb r0, r0, r0, lsl #4
13cf4: 0040 lsls r0, r0, #1
13cf6: 28ef cmp r0, #239 ; 0xef
13cf8: f77e adec ble.w 128d4 <lv_theme_material_init+0x13c>
13cfc: 2000 movs r0, #0
13cfe: 47a8 blx r5
13d00: 231e movs r3, #30
13d02: e7eb b.n 13cdc <lv_theme_material_init+0x1544>
lv_style_set_pad_left(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
13d04: 2000 movs r0, #0
13d06: 47a8 blx r5
13d08: 230f movs r3, #15
13d0a: 2250 movs r2, #80 ; 0x50
13d0c: fb00 2203 mla r2, r0, r3, r2
13d10: 23a0 movs r3, #160 ; 0xa0
13d12: fb92 f2f3 sdiv r2, r2, r3
13d16: b212 sxth r2, r2
13d18: f7fe bdf1 b.w 128fe <lv_theme_material_init+0x166>
13d1c: 47a8 blx r5
13d1e: ebc0 1000 rsb r0, r0, r0, lsl #4
13d22: 0040 lsls r0, r0, #1
13d24: 28ef cmp r0, #239 ; 0xef
13d26: f77e ade9 ble.w 128fc <lv_theme_material_init+0x164>
13d2a: 2000 movs r0, #0
13d2c: 47a8 blx r5
13d2e: 231e movs r3, #30
13d30: e7eb b.n 13d0a <lv_theme_material_init+0x1572>
lv_style_set_pad_right(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
13d32: 2000 movs r0, #0
13d34: 47a8 blx r5
13d36: 230f movs r3, #15
13d38: 2250 movs r2, #80 ; 0x50
13d3a: fb00 2203 mla r2, r0, r3, r2
13d3e: 23a0 movs r3, #160 ; 0xa0
13d40: fb92 f2f3 sdiv r2, r2, r3
13d44: b212 sxth r2, r2
13d46: f7fe bdee b.w 12926 <lv_theme_material_init+0x18e>
13d4a: 47a8 blx r5
13d4c: ebc0 1000 rsb r0, r0, r0, lsl #4
13d50: 0040 lsls r0, r0, #1
13d52: 28ef cmp r0, #239 ; 0xef
13d54: f77e ade6 ble.w 12924 <lv_theme_material_init+0x18c>
13d58: 2000 movs r0, #0
13d5a: 47a8 blx r5
13d5c: 231e movs r3, #30
13d5e: e7eb b.n 13d38 <lv_theme_material_init+0x15a0>
lv_style_set_pad_bottom(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF);
13d60: 2000 movs r0, #0
13d62: 47a8 blx r5
13d64: 230f movs r3, #15
13d66: 2250 movs r2, #80 ; 0x50
13d68: fb00 2203 mla r2, r0, r3, r2
13d6c: 23a0 movs r3, #160 ; 0xa0
13d6e: fb92 f2f3 sdiv r2, r2, r3
13d72: b212 sxth r2, r2
13d74: f7fe bdeb b.w 1294e <lv_theme_material_init+0x1b6>
13d78: 47a8 blx r5
13d7a: ebc0 1000 rsb r0, r0, r0, lsl #4
13d7e: 0040 lsls r0, r0, #1
13d80: 28ef cmp r0, #239 ; 0xef
13d82: f77e ade3 ble.w 1294c <lv_theme_material_init+0x1b4>
13d86: 2000 movs r0, #0
13d88: 47a8 blx r5
13d8a: 231e movs r3, #30
13d8c: e7eb b.n 13d66 <lv_theme_material_init+0x15ce>
lv_style_set_text_color(&styles->calendar_header, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x888888) : LV_COLOR_WHITE);
13d8e: f8bb 2000 ldrh.w r2, [fp]
13d92: f7fe bdee b.w 12972 <lv_theme_material_init+0x1da>
lv_style_set_text_color(&styles->calendar_daynames, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex3(0xeee));
13d96: 4b66 ldr r3, [pc, #408] ; (13f30 <lv_theme_material_init+0x1798>)
13d98: f640 60ee movw r0, #3822 ; 0xeee
13d9c: 4798 blx r3
13d9e: f7fe bdf9 b.w 12994 <lv_theme_material_init+0x1fc>
lv_style_set_pad_left(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
13da2: 2000 movs r0, #0
13da4: 47a8 blx r5
13da6: 230f movs r3, #15
13da8: 2250 movs r2, #80 ; 0x50
13daa: fb00 2203 mla r2, r0, r3, r2
13dae: 23a0 movs r3, #160 ; 0xa0
13db0: fb92 f2f3 sdiv r2, r2, r3
13db4: b212 sxth r2, r2
13db6: f7fe be05 b.w 129c4 <lv_theme_material_init+0x22c>
13dba: 47a8 blx r5
13dbc: ebc0 1000 rsb r0, r0, r0, lsl #4
13dc0: 0040 lsls r0, r0, #1
13dc2: 28ef cmp r0, #239 ; 0xef
13dc4: f77e adfd ble.w 129c2 <lv_theme_material_init+0x22a>
13dc8: 2000 movs r0, #0
13dca: 47a8 blx r5
13dcc: 231e movs r3, #30
13dce: e7eb b.n 13da8 <lv_theme_material_init+0x1610>
lv_style_set_pad_right(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
13dd0: 2000 movs r0, #0
13dd2: 47a8 blx r5
13dd4: 230f movs r3, #15
13dd6: 2250 movs r2, #80 ; 0x50
13dd8: fb00 2203 mla r2, r0, r3, r2
13ddc: 23a0 movs r3, #160 ; 0xa0
13dde: fb92 f2f3 sdiv r2, r2, r3
13de2: b212 sxth r2, r2
13de4: f7fe be04 b.w 129f0 <lv_theme_material_init+0x258>
13de8: 47a8 blx r5
13dea: ebc0 1000 rsb r0, r0, r0, lsl #4
13dee: 0040 lsls r0, r0, #1
13df0: 28ef cmp r0, #239 ; 0xef
13df2: f77e adfc ble.w 129ee <lv_theme_material_init+0x256>
13df6: 2000 movs r0, #0
13df8: 47a8 blx r5
13dfa: 231e movs r3, #30
13dfc: e7eb b.n 13dd6 <lv_theme_material_init+0x163e>
lv_style_set_pad_bottom(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF);
13dfe: 2000 movs r0, #0
13e00: 47a8 blx r5
13e02: 230f movs r3, #15
13e04: 2250 movs r2, #80 ; 0x50
13e06: fb00 2203 mla r2, r0, r3, r2
13e0a: 23a0 movs r3, #160 ; 0xa0
13e0c: fb92 f2f3 sdiv r2, r2, r3
13e10: b212 sxth r2, r2
13e12: f7fe be03 b.w 12a1c <lv_theme_material_init+0x284>
13e16: 47a8 blx r5
13e18: ebc0 1000 rsb r0, r0, r0, lsl #4
13e1c: 0040 lsls r0, r0, #1
13e1e: 28ef cmp r0, #239 ; 0xef
13e20: f77e adfb ble.w 12a1a <lv_theme_material_init+0x282>
13e24: 2000 movs r0, #0
13e26: 47a8 blx r5
13e28: 231e movs r3, #30
13e2a: e7eb b.n 13e04 <lv_theme_material_init+0x166c>
lv_style_set_radius(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(4));
13e2c: 2201 movs r2, #1
13e2e: f7fe be0d b.w 12a4c <lv_theme_material_init+0x2b4>
lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE);
13e32: f8bb 2000 ldrh.w r2, [fp]
13e36: f7fe be47 b.w 12ac8 <lv_theme_material_init+0x330>
lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x666666) : LV_COLOR_WHITE);
13e3a: f8bd 2004 ldrh.w r2, [sp, #4]
13e3e: f7fe be7d b.w 12b3c <lv_theme_material_init+0x3a4>
lv_style_set_pad_inner(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(3));
13e42: 2201 movs r2, #1
13e44: f7fe beaa b.w 12b9c <lv_theme_material_init+0x404>
lv_style_set_pad_left(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
13e48: 2000 movs r0, #0
13e4a: 47a8 blx r5
13e4c: 230f movs r3, #15
13e4e: 2250 movs r2, #80 ; 0x50
13e50: fb00 2203 mla r2, r0, r3, r2
13e54: 23a0 movs r3, #160 ; 0xa0
13e56: fb92 f2f3 sdiv r2, r2, r3
13e5a: b212 sxth r2, r2
13e5c: f7fe beb4 b.w 12bc8 <lv_theme_material_init+0x430>
13e60: 47a8 blx r5
13e62: ebc0 1000 rsb r0, r0, r0, lsl #4
13e66: 0040 lsls r0, r0, #1
13e68: 28ef cmp r0, #239 ; 0xef
13e6a: f77e aeac ble.w 12bc6 <lv_theme_material_init+0x42e>
13e6e: 2000 movs r0, #0
13e70: 47a8 blx r5
13e72: 231e movs r3, #30
13e74: e7eb b.n 13e4e <lv_theme_material_init+0x16b6>
lv_style_set_pad_right(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
13e76: 2000 movs r0, #0
13e78: 47a8 blx r5
13e7a: 230f movs r3, #15
13e7c: 2250 movs r2, #80 ; 0x50
13e7e: fb00 2203 mla r2, r0, r3, r2
13e82: 23a0 movs r3, #160 ; 0xa0
13e84: fb92 f2f3 sdiv r2, r2, r3
13e88: b212 sxth r2, r2
13e8a: f7fe beb3 b.w 12bf4 <lv_theme_material_init+0x45c>
13e8e: 47a8 blx r5
13e90: ebc0 1000 rsb r0, r0, r0, lsl #4
13e94: 0040 lsls r0, r0, #1
13e96: 28ef cmp r0, #239 ; 0xef
13e98: f77e aeab ble.w 12bf2 <lv_theme_material_init+0x45a>
13e9c: 2000 movs r0, #0
13e9e: 47a8 blx r5
13ea0: 231e movs r3, #30
13ea2: e7eb b.n 13e7c <lv_theme_material_init+0x16e4>
lv_style_set_pad_bottom(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF);
13ea4: 2000 movs r0, #0
13ea6: 47a8 blx r5
13ea8: 230f movs r3, #15
13eaa: 2250 movs r2, #80 ; 0x50
13eac: fb00 2203 mla r2, r0, r3, r2
13eb0: 23a0 movs r3, #160 ; 0xa0
13eb2: fb92 f2f3 sdiv r2, r2, r3
13eb6: b212 sxth r2, r2
13eb8: f7fe beb2 b.w 12c20 <lv_theme_material_init+0x488>
13ebc: 47a8 blx r5
13ebe: ebc0 1000 rsb r0, r0, r0, lsl #4
13ec2: 0040 lsls r0, r0, #1
13ec4: 28ef cmp r0, #239 ; 0xef
13ec6: f77e aeaa ble.w 12c1e <lv_theme_material_init+0x486>
13eca: 2000 movs r0, #0
13ecc: 47a8 blx r5
13ece: 231e movs r3, #30
13ed0: e7eb b.n 13eaa <lv_theme_material_init+0x1712>
lv_style_set_scale_width(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(30));
13ed2: 2201 movs r2, #1
13ed4: f7fe bec0 b.w 12c58 <lv_theme_material_init+0x4c0>
lv_style_set_pad_inner(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(20));
13ed8: 2201 movs r2, #1
13eda: f7fe bee8 b.w 12cae <lv_theme_material_init+0x516>
lv_style_set_pad_left(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
13ede: 2201 movs r2, #1
13ee0: f7fe bf31 b.w 12d46 <lv_theme_material_init+0x5ae>
lv_style_set_pad_right(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
13ee4: 2201 movs r2, #1
13ee6: f7fe bf47 b.w 12d78 <lv_theme_material_init+0x5e0>
lv_style_set_pad_top(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
13eea: 2201 movs r2, #1
13eec: f7fe bf5d b.w 12daa <lv_theme_material_init+0x612>
lv_style_set_pad_bottom(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13));
13ef0: 2201 movs r2, #1
13ef2: f7fe bf7d b.w 12df0 <lv_theme_material_init+0x658>
lv_style_set_radius(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(4));
13ef6: 2201 movs r2, #1
13ef8: f7fe bf90 b.w 12e1c <lv_theme_material_init+0x684>
lv_style_set_pad_inner(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
13efc: 2201 movs r2, #1
13efe: f7fe bfa5 b.w 12e4c <lv_theme_material_init+0x6b4>
lv_style_set_outline_width(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(3));
13f02: 2201 movs r2, #1
13f04: f7fe bfc9 b.w 12e9a <lv_theme_material_init+0x702>
lv_style_set_outline_pad(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10));
13f08: 2201 movs r2, #1
13f0a: f7fe bfdf b.w 12ecc <lv_theme_material_init+0x734>
13f0e: bf00 nop
13f10: 00d6dde3 .word 0x00d6dde3
13f14: 00808a97 .word 0x00808a97
13f18: 200057a4 .word 0x200057a4
13f1c: 0000dbd5 .word 0x0000dbd5
13f20: 00005afd .word 0x00005afd
13f24: 000105b9 .word 0x000105b9
13f28: 000031bd .word 0x000031bd
13f2c: 200057ac .word 0x200057ac
13f30: 00010581 .word 0x00010581
lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4));
13f34: 2201 movs r2, #1
13f36: f7fe bff3 b.w 12f20 <lv_theme_material_init+0x788>
lv_style_set_pad_left(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
13f3a: 2201 movs r2, #1
13f3c: f7ff b81d b.w 12f7a <lv_theme_material_init+0x7e2>
lv_style_set_pad_right(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
13f40: 2201 movs r2, #1
13f42: f7ff b831 b.w 12fa8 <lv_theme_material_init+0x810>
lv_style_set_pad_top(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
13f46: 2201 movs r2, #1
13f48: f7ff b845 b.w 12fd6 <lv_theme_material_init+0x83e>
lv_style_set_pad_bottom(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3));
13f4c: 2201 movs r2, #1
13f4e: f7ff b859 b.w 13004 <lv_theme_material_init+0x86c>
lv_style_set_border_width(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(4));
13f52: 2201 movs r2, #1
13f54: f7ff b871 b.w 1303a <lv_theme_material_init+0x8a2>
lv_style_set_border_color(&styles->kb_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT : LV_COLOR_BLACK);
13f58: 4603 mov r3, r0
13f5a: 4602 mov r2, r0
13f5c: f7ff b886 b.w 1306c <lv_theme_material_init+0x8d4>
lv_style_set_pad_left(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
13f60: 2201 movs r2, #1
13f62: f7ff b8a4 b.w 130ae <lv_theme_material_init+0x916>
lv_style_set_pad_right(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
13f66: 2201 movs r2, #1
13f68: f7ff b8b8 b.w 130dc <lv_theme_material_init+0x944>
lv_style_set_pad_top(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
13f6c: 2201 movs r2, #1
13f6e: f7ff b8cc b.w 1310a <lv_theme_material_init+0x972>
lv_style_set_pad_bottom(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5));
13f72: 2201 movs r2, #1
13f74: f7ff b8e0 b.w 13138 <lv_theme_material_init+0x9a0>
lv_style_set_pad_inner(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(3));
13f78: 2201 movs r2, #1
13f7a: f7ff b8f4 b.w 13166 <lv_theme_material_init+0x9ce>
lv_style_set_shadow_width(&styles->mbox_bg, LV_STATE_DEFAULT, LV_DPX(50));
13f7e: 2201 movs r2, #1
13f80: f7ff b91e b.w 131c0 <lv_theme_material_init+0xa28>
lv_style_set_shadow_color(&styles->mbox_bg, LV_STATE_DEFAULT, IS_LIGHT ? LV_COLOR_SILVER : lv_color_hex3(0x999));
13f84: 4bc2 ldr r3, [pc, #776] ; (14290 <lv_theme_material_init+0x1af8>)
13f86: f640 1099 movw r0, #2457 ; 0x999
13f8a: 4798 blx r3
13f8c: 4602 mov r2, r0
13f8e: f7ff b923 b.w 131d8 <lv_theme_material_init+0xa40>
lv_style_set_size(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
13f92: 2201 movs r2, #1
13f94: f7ff b952 b.w 1323c <lv_theme_material_init+0xaa4>
lv_style_set_pad_right(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
13f98: 2201 movs r2, #1
13f9a: f7ff b966 b.w 1326a <lv_theme_material_init+0xad2>
lv_style_set_pad_bottom(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7));
13f9e: 2201 movs r2, #1
13fa0: f7ff b97a b.w 13298 <lv_theme_material_init+0xb00>
lv_style_set_border_width(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(2));
13fa4: 2201 movs r2, #1
13fa6: f7ff b9ad b.w 13304 <lv_theme_material_init+0xb6c>
lv_style_set_pad_left(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(1));
13faa: 2201 movs r2, #1
13fac: f7ff b9bd b.w 1332a <lv_theme_material_init+0xb92>
lv_style_set_text_color(&styles->ta_placeholder, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd));
13fb0: 48b8 ldr r0, [pc, #736] ; (14294 <lv_theme_material_init+0x1afc>)
13fb2: 47b8 blx r7
13fb4: f7ff b9cf b.w 13356 <lv_theme_material_init+0xbbe>
lv_style_set_pad_top(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
13fb8: 2201 movs r2, #1
13fba: f7ff b9fa b.w 133b2 <lv_theme_material_init+0xc1a>
lv_style_set_pad_bottom(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100));
13fbe: 2201 movs r2, #1
13fc0: f7ff ba0f b.w 133e2 <lv_theme_material_init+0xc4a>
lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
13fc4: 2000 movs r0, #0
13fc6: 47a8 blx r5
13fc8: 230f movs r3, #15
13fca: 2250 movs r2, #80 ; 0x50
13fcc: fb00 2203 mla r2, r0, r3, r2
13fd0: 23a0 movs r3, #160 ; 0xa0
13fd2: fb92 f2f3 sdiv r2, r2, r3
13fd6: b212 sxth r2, r2
13fd8: f7ff bb10 b.w 135fc <lv_theme_material_init+0xe64>
13fdc: 47a8 blx r5
13fde: ebc0 1000 rsb r0, r0, r0, lsl #4
13fe2: 0040 lsls r0, r0, #1
13fe4: 28ef cmp r0, #239 ; 0xef
13fe6: f77f ab08 ble.w 135fa <lv_theme_material_init+0xe62>
13fea: 2000 movs r0, #0
13fec: 47a8 blx r5
13fee: 231e movs r3, #30
13ff0: e7eb b.n 13fca <lv_theme_material_init+0x1832>
lv_style_set_pad_right(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
13ff2: 2000 movs r0, #0
13ff4: 47a8 blx r5
13ff6: 230f movs r3, #15
13ff8: 2250 movs r2, #80 ; 0x50
13ffa: fb00 2203 mla r2, r0, r3, r2
13ffe: 23a0 movs r3, #160 ; 0xa0
14000: fb92 f2f3 sdiv r2, r2, r3
14004: b212 sxth r2, r2
14006: f7ff bb0d b.w 13624 <lv_theme_material_init+0xe8c>
1400a: 47a8 blx r5
1400c: ebc0 1000 rsb r0, r0, r0, lsl #4
14010: 0040 lsls r0, r0, #1
14012: 28ef cmp r0, #239 ; 0xef
14014: f77f ab05 ble.w 13622 <lv_theme_material_init+0xe8a>
14018: 2000 movs r0, #0
1401a: 47a8 blx r5
1401c: 231e movs r3, #30
1401e: e7eb b.n 13ff8 <lv_theme_material_init+0x1860>
lv_style_set_pad_top(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
14020: 2000 movs r0, #0
14022: 47a8 blx r5
14024: 230f movs r3, #15
14026: 2250 movs r2, #80 ; 0x50
14028: fb00 2203 mla r2, r0, r3, r2
1402c: 23a0 movs r3, #160 ; 0xa0
1402e: fb92 f2f3 sdiv r2, r2, r3
14032: b212 sxth r2, r2
14034: f7ff bb0a b.w 1364c <lv_theme_material_init+0xeb4>
14038: 47a8 blx r5
1403a: ebc0 1000 rsb r0, r0, r0, lsl #4
1403e: 0040 lsls r0, r0, #1
14040: 28ef cmp r0, #239 ; 0xef
14042: f77f ab02 ble.w 1364a <lv_theme_material_init+0xeb2>
14046: 2000 movs r0, #0
14048: 47a8 blx r5
1404a: 231e movs r3, #30
1404c: e7eb b.n 14026 <lv_theme_material_init+0x188e>
lv_style_set_pad_bottom(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
1404e: 2000 movs r0, #0
14050: 47a8 blx r5
14052: 230f movs r3, #15
14054: 2250 movs r2, #80 ; 0x50
14056: fb00 2203 mla r2, r0, r3, r2
1405a: 23a0 movs r3, #160 ; 0xa0
1405c: fb92 f2f3 sdiv r2, r2, r3
14060: b212 sxth r2, r2
14062: f7ff bb07 b.w 13674 <lv_theme_material_init+0xedc>
14066: 47a8 blx r5
14068: ebc0 1000 rsb r0, r0, r0, lsl #4
1406c: 0040 lsls r0, r0, #1
1406e: 28ef cmp r0, #239 ; 0xef
14070: f77f aaff ble.w 13672 <lv_theme_material_init+0xeda>
14074: 2000 movs r0, #0
14076: 47a8 blx r5
14078: 231e movs r3, #30
1407a: e7eb b.n 14054 <lv_theme_material_init+0x18bc>
lv_style_set_pad_inner(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF);
1407c: 2000 movs r0, #0
1407e: 47a8 blx r5
14080: 230f movs r3, #15
14082: 2250 movs r2, #80 ; 0x50
14084: fb00 2203 mla r2, r0, r3, r2
14088: 23a0 movs r3, #160 ; 0xa0
1408a: fb92 f2f3 sdiv r2, r2, r3
1408e: b212 sxth r2, r2
14090: f7ff bb04 b.w 1369c <lv_theme_material_init+0xf04>
14094: 47a8 blx r5
14096: ebc0 1000 rsb r0, r0, r0, lsl #4
1409a: 0040 lsls r0, r0, #1
1409c: 28ef cmp r0, #239 ; 0xef
1409e: f77f aafc ble.w 1369a <lv_theme_material_init+0xf02>
140a2: 2000 movs r0, #0
140a4: 47a8 blx r5
140a6: 231e movs r3, #30
140a8: e7eb b.n 14082 <lv_theme_material_init+0x18ea>
lv_style_set_transform_width(&styles->list_btn, LV_STATE_DEFAULT, - PAD_DEF);
140aa: 2000 movs r0, #0
140ac: 47a8 blx r5
140ae: 230f movs r3, #15
140b0: 2250 movs r2, #80 ; 0x50
140b2: fb00 2203 mla r2, r0, r3, r2
140b6: f06f 039f mvn.w r3, #159 ; 0x9f
140ba: fb92 f2f3 sdiv r2, r2, r3
140be: b212 sxth r2, r2
140c0: f7ff bb01 b.w 136c6 <lv_theme_material_init+0xf2e>
140c4: 47a8 blx r5
140c6: ebc0 1000 rsb r0, r0, r0, lsl #4
140ca: 0040 lsls r0, r0, #1
140cc: 28ef cmp r0, #239 ; 0xef
140ce: f77f aaf8 ble.w 136c2 <lv_theme_material_init+0xf2a>
140d2: 2000 movs r0, #0
140d4: 47a8 blx r5
140d6: 231e movs r3, #30
140d8: e7ea b.n 140b0 <lv_theme_material_init+0x1918>
lv_style_set_text_line_space(&styles->ddlist_page, LV_STATE_DEFAULT, LV_DPX(20));
140da: 2201 movs r2, #1
140dc: f7ff bb33 b.w 13746 <lv_theme_material_init+0xfae>
lv_style_set_text_line_space(&styles->roller_bg, LV_STATE_DEFAULT, LV_DPX(25));
140e0: 2201 movs r2, #1
140e2: f7ff bba6 b.w 13832 <lv_theme_material_init+0x109a>
lv_style_set_border_width(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(5));
140e6: 2201 movs r2, #1
140e8: f7ff bbf9 b.w 138de <lv_theme_material_init+0x1146>
lv_style_set_pad_top(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
140ec: 2201 movs r2, #1
140ee: e431 b.n 13954 <lv_theme_material_init+0x11bc>
lv_style_set_pad_left(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
140f0: 2201 movs r2, #1
140f2: e446 b.n 13982 <lv_theme_material_init+0x11ea>
lv_style_set_pad_right(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7));
140f4: 2201 movs r2, #1
140f6: e45b b.n 139b0 <lv_theme_material_init+0x1218>
lv_style_set_pad_top(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
140f8: 2201 movs r2, #1
140fa: e494 b.n 13a26 <lv_theme_material_init+0x128e>
lv_style_set_pad_bottom(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20));
140fc: 2201 movs r2, #1
140fe: e4aa b.n 13a56 <lv_theme_material_init+0x12be>
lv_style_set_size(&styles->tabview_indic, LV_STATE_DEFAULT, LV_DPX(5));
14100: 2201 movs r2, #1
14102: e4df b.n 13ac4 <lv_theme_material_init+0x132c>
lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
14104: 2000 movs r0, #0
14106: 47a8 blx r5
14108: 230f movs r3, #15
1410a: 2250 movs r2, #80 ; 0x50
1410c: fb00 2203 mla r2, r0, r3, r2
14110: 23a0 movs r3, #160 ; 0xa0
14112: fb92 f2f3 sdiv r2, r2, r3
14116: b212 sxth r2, r2
14118: e4f4 b.n 13b04 <lv_theme_material_init+0x136c>
1411a: 47a8 blx r5
1411c: ebc0 1000 rsb r0, r0, r0, lsl #4
14120: 0040 lsls r0, r0, #1
14122: 28ef cmp r0, #239 ; 0xef
14124: f77f aced ble.w 13b02 <lv_theme_material_init+0x136a>
14128: 2000 movs r0, #0
1412a: 47a8 blx r5
1412c: 231e movs r3, #30
1412e: e7ec b.n 1410a <lv_theme_material_init+0x1972>
lv_style_set_pad_bottom(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
14130: 2000 movs r0, #0
14132: 47a8 blx r5
14134: 230f movs r3, #15
14136: 2250 movs r2, #80 ; 0x50
14138: fb00 2203 mla r2, r0, r3, r2
1413c: 23a0 movs r3, #160 ; 0xa0
1413e: fb92 f2f3 sdiv r2, r2, r3
14142: b212 sxth r2, r2
14144: e507 b.n 13b56 <lv_theme_material_init+0x13be>
14146: 47a8 blx r5
14148: ebc0 1000 rsb r0, r0, r0, lsl #4
1414c: 0040 lsls r0, r0, #1
1414e: 28ef cmp r0, #239 ; 0xef
14150: f77f ad00 ble.w 13b54 <lv_theme_material_init+0x13bc>
14154: 2000 movs r0, #0
14156: 47a8 blx r5
14158: 231e movs r3, #30
1415a: e7ec b.n 14136 <lv_theme_material_init+0x199e>
lv_style_set_pad_left(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
1415c: 2000 movs r0, #0
1415e: 47a8 blx r5
14160: 230f movs r3, #15
14162: 2250 movs r2, #80 ; 0x50
14164: fb00 2203 mla r2, r0, r3, r2
14168: 23a0 movs r3, #160 ; 0xa0
1416a: fb92 f2f3 sdiv r2, r2, r3
1416e: b212 sxth r2, r2
14170: e505 b.n 13b7e <lv_theme_material_init+0x13e6>
14172: 47a8 blx r5
14174: ebc0 1000 rsb r0, r0, r0, lsl #4
14178: 0040 lsls r0, r0, #1
1417a: 28ef cmp r0, #239 ; 0xef
1417c: f77f acfe ble.w 13b7c <lv_theme_material_init+0x13e4>
14180: 2000 movs r0, #0
14182: 47a8 blx r5
14184: 231e movs r3, #30
14186: e7ec b.n 14162 <lv_theme_material_init+0x19ca>
lv_style_set_pad_right(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
14188: 2000 movs r0, #0
1418a: 47a8 blx r5
1418c: 230f movs r3, #15
1418e: 2250 movs r2, #80 ; 0x50
14190: fb00 2203 mla r2, r0, r3, r2
14194: 23a0 movs r3, #160 ; 0xa0
14196: fb92 f2f3 sdiv r2, r2, r3
1419a: b212 sxth r2, r2
1419c: e503 b.n 13ba6 <lv_theme_material_init+0x140e>
1419e: 47a8 blx r5
141a0: ebc0 1000 rsb r0, r0, r0, lsl #4
141a4: 0040 lsls r0, r0, #1
141a6: 28ef cmp r0, #239 ; 0xef
141a8: f77f acfc ble.w 13ba4 <lv_theme_material_init+0x140c>
141ac: 2000 movs r0, #0
141ae: 47a8 blx r5
141b0: 231e movs r3, #30
141b2: e7ec b.n 1418e <lv_theme_material_init+0x19f6>
lv_style_set_pad_inner(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF);
141b4: 2000 movs r0, #0
141b6: 47a8 blx r5
141b8: 230f movs r3, #15
141ba: 2250 movs r2, #80 ; 0x50
141bc: fb00 2203 mla r2, r0, r3, r2
141c0: 23a0 movs r3, #160 ; 0xa0
141c2: fb92 f2f3 sdiv r2, r2, r3
141c6: b212 sxth r2, r2
141c8: e501 b.n 13bce <lv_theme_material_init+0x1436>
141ca: 47a8 blx r5
141cc: ebc0 1000 rsb r0, r0, r0, lsl #4
141d0: 0040 lsls r0, r0, #1
141d2: 28ef cmp r0, #239 ; 0xef
141d4: f77f acfa ble.w 13bcc <lv_theme_material_init+0x1434>
141d8: 2000 movs r0, #0
141da: 47a8 blx r5
141dc: 231e movs r3, #30
141de: e7ec b.n 141ba <lv_theme_material_init+0x1a22>
lv_style_set_pad_left(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
141e0: 2000 movs r0, #0
141e2: 47a8 blx r5
141e4: 230f movs r3, #15
141e6: 2250 movs r2, #80 ; 0x50
141e8: fb00 2203 mla r2, r0, r3, r2
141ec: 23a0 movs r3, #160 ; 0xa0
141ee: fb92 f2f3 sdiv r2, r2, r3
141f2: b212 sxth r2, r2
141f4: e51a b.n 13c2c <lv_theme_material_init+0x1494>
141f6: 47a8 blx r5
141f8: ebc0 1000 rsb r0, r0, r0, lsl #4
141fc: 0040 lsls r0, r0, #1
141fe: 28ef cmp r0, #239 ; 0xef
14200: f77f ad13 ble.w 13c2a <lv_theme_material_init+0x1492>
14204: 2000 movs r0, #0
14206: 47a8 blx r5
14208: 231e movs r3, #30
1420a: e7ec b.n 141e6 <lv_theme_material_init+0x1a4e>
lv_style_set_pad_right(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
1420c: 2000 movs r0, #0
1420e: 47a8 blx r5
14210: 230f movs r3, #15
14212: 2250 movs r2, #80 ; 0x50
14214: fb00 2203 mla r2, r0, r3, r2
14218: 23a0 movs r3, #160 ; 0xa0
1421a: fb92 f2f3 sdiv r2, r2, r3
1421e: b212 sxth r2, r2
14220: e518 b.n 13c54 <lv_theme_material_init+0x14bc>
14222: 47a8 blx r5
14224: ebc0 1000 rsb r0, r0, r0, lsl #4
14228: 0040 lsls r0, r0, #1
1422a: 28ef cmp r0, #239 ; 0xef
1422c: f77f ad11 ble.w 13c52 <lv_theme_material_init+0x14ba>
14230: 2000 movs r0, #0
14232: 47a8 blx r5
14234: 231e movs r3, #30
14236: e7ec b.n 14212 <lv_theme_material_init+0x1a7a>
lv_style_set_pad_top(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
14238: 2000 movs r0, #0
1423a: 47a8 blx r5
1423c: 230f movs r3, #15
1423e: 2250 movs r2, #80 ; 0x50
14240: fb00 2203 mla r2, r0, r3, r2
14244: 23a0 movs r3, #160 ; 0xa0
14246: fb92 f2f3 sdiv r2, r2, r3
1424a: b212 sxth r2, r2
1424c: e517 b.n 13c7e <lv_theme_material_init+0x14e6>
1424e: 47a8 blx r5
14250: ebc0 1000 rsb r0, r0, r0, lsl #4
14254: 0040 lsls r0, r0, #1
14256: 28ef cmp r0, #239 ; 0xef
14258: f77f ad10 ble.w 13c7c <lv_theme_material_init+0x14e4>
1425c: 2000 movs r0, #0
1425e: 47a8 blx r5
14260: 231e movs r3, #30
14262: e7ec b.n 1423e <lv_theme_material_init+0x1aa6>
lv_style_set_pad_bottom(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF);
14264: 2000 movs r0, #0
14266: 47b0 blx r6
14268: 230f movs r3, #15
1426a: 2250 movs r2, #80 ; 0x50
1426c: fb00 2203 mla r2, r0, r3, r2
14270: 23a0 movs r3, #160 ; 0xa0
14272: fb92 f2f3 sdiv r2, r2, r3
14276: b212 sxth r2, r2
14278: e516 b.n 13ca8 <lv_theme_material_init+0x1510>
1427a: 47b0 blx r6
1427c: ebc0 1000 rsb r0, r0, r0, lsl #4
14280: 0040 lsls r0, r0, #1
14282: 28ef cmp r0, #239 ; 0xef
14284: f77f ad0f ble.w 13ca6 <lv_theme_material_init+0x150e>
14288: 2000 movs r0, #0
1428a: 47b0 blx r6
1428c: 231e movs r3, #30
1428e: e7ec b.n 1426a <lv_theme_material_init+0x1ad2>
14290: 00010581 .word 0x00010581
14294: 00a1adbd .word 0x00a1adbd
00014298 <lv_img_design>:
* LV_DESIGN_DRAW: draw the object (always return 'true')
* LV_DESIGN_DRAW_POST: drawing after every children are drawn
* @param return an element of `lv_design_res_t`
*/
static lv_design_res_t lv_img_design(lv_obj_t * img, const lv_area_t * clip_area, lv_design_mode_t mode)
{
14298: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
1429c: 4ba4 ldr r3, [pc, #656] ; (14530 <lv_img_design+0x298>)
{
1429e: b0a7 sub sp, #156 ; 0x9c
142a0: 4616 mov r6, r2
142a2: 4604 mov r4, r0
142a4: 460f mov r7, r1
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
142a6: 4798 blx r3
if(mode == LV_DESIGN_COVER_CHK) {
142a8: 2e02 cmp r6, #2
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
142aa: 4605 mov r5, r0
if(mode == LV_DESIGN_COVER_CHK) {
142ac: d163 bne.n 14376 <lv_img_design+0xde>
_OBJ_GET_STYLE_##scalar(prop_name, func_name, value_type, style_type) \
_OBJ_SET_STYLE_LOCAL_##scalar(prop_name, func_name, value_type, style_type) \
_OBJ_SET_STYLE_##scalar(prop_name, func_name, value_type, style_type)
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
142ae: f8df 82b4 ldr.w r8, [pc, #692] ; 14564 <lv_img_design+0x2cc>
142b2: 4632 mov r2, r6
142b4: 2100 movs r1, #0
142b6: 4620 mov r0, r4
142b8: 47c0 blx r8
if(lv_obj_get_style_clip_corner(img, LV_IMG_PART_MAIN)) return LV_DESIGN_RES_MASKED;
142ba: 2800 cmp r0, #0
142bc: f040 81ff bne.w 146be <lv_img_design+0x426>
if(ext->src_type == LV_IMG_SRC_UNKNOWN || ext->src_type == LV_IMG_SRC_SYMBOL) return LV_DESIGN_RES_NOT_COVER;
142c0: 7d2b ldrb r3, [r5, #20]
142c2: 0799 lsls r1, r3, #30
142c4: d42a bmi.n 1431c <lv_img_design+0x84>
/*Non true color format might have "holes"*/
if(ext->cf != LV_IMG_CF_TRUE_COLOR && ext->cf != LV_IMG_CF_RAW) return LV_DESIGN_RES_NOT_COVER;
142c6: f003 03f8 and.w r3, r3, #248 ; 0xf8
142ca: 2b20 cmp r3, #32
142cc: d001 beq.n 142d2 <lv_img_design+0x3a>
142ce: 2b08 cmp r3, #8
142d0: d124 bne.n 1431c <lv_img_design+0x84>
_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ANGLE, transform_angle, lv_style_int_t, _int, scalar)
142d2: 2206 movs r2, #6
142d4: 2100 movs r1, #0
142d6: 4620 mov r0, r4
142d8: 47c0 blx r8
int32_t angle_final = lv_obj_get_style_transform_angle(img, LV_IMG_PART_MAIN);
angle_final += ext->angle;
142da: 89ab ldrh r3, [r5, #12]
if(angle_final == 0) return LV_DESIGN_RES_NOT_COVER;
142dc: 42c3 cmn r3, r0
142de: d01d beq.n 1431c <lv_img_design+0x84>
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar)
142e0: 2207 movs r2, #7
142e2: 2100 movs r1, #0
142e4: 4620 mov r0, r4
142e6: 47c0 blx r8
int32_t zoom_final = lv_obj_get_style_transform_zoom(img, LV_IMG_PART_MAIN);
zoom_final = (zoom_final * ext->zoom) >> 8;
142e8: f8b5 8012 ldrh.w r8, [r5, #18]
142ec: f8df 9278 ldr.w r9, [pc, #632] ; 14568 <lv_img_design+0x2d0>
142f0: fb00 f808 mul.w r8, r0, r8
142f4: ea4f 2828 mov.w r8, r8, asr #8
if(zoom_final != LV_IMG_ZOOM_NONE) {
142f8: f5b8 7f80 cmp.w r8, #256 ; 0x100
142fc: d012 beq.n 14324 <lv_img_design+0x8c>
if(_lv_area_is_in(clip_area, &img->coords, 0) == false) return LV_DESIGN_RES_NOT_COVER;
142fe: 2200 movs r2, #0
14300: f104 0110 add.w r1, r4, #16
a.x1 += img->coords.x1;
a.y1 += img->coords.y1;
a.x2 += img->coords.x1;
a.y2 += img->coords.y1;
if(_lv_area_is_in(clip_area, &a, 0) == false) return LV_DESIGN_RES_NOT_COVER;
14304: 4638 mov r0, r7
14306: 47c8 blx r9
14308: b140 cbz r0, 1431c <lv_img_design+0x84>
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_OPA, line_opa, lv_opa_t, _opa, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_BLEND_MODE, image_blend_mode, lv_blend_mode_t, _int, scalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_OPA, image_opa, lv_opa_t, _opa, scalar)
1430a: 4b8a ldr r3, [pc, #552] ; (14534 <lv_img_design+0x29c>)
1430c: f248 02ac movw r2, #32940 ; 0x80ac
14310: 2100 movs r1, #0
14312: 4620 mov r0, r4
14314: 4798 blx r3
}
if(lv_obj_get_style_image_opa(img, LV_IMG_PART_MAIN) != LV_OPA_COVER) return LV_DESIGN_RES_NOT_COVER;
return LV_DESIGN_RES_COVER;
14316: 28ff cmp r0, #255 ; 0xff
14318: bf08 it eq
1431a: 2601 moveq r6, #1
lv_draw_rect(&img->coords, clip_area, &draw_dsc);
}
}
return LV_DESIGN_RES_OK;
}
1431c: 4630 mov r0, r6
1431e: b027 add sp, #156 ; 0x9c
14320: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
_lv_img_buf_get_transformed_area(&a, lv_obj_get_width(img), lv_obj_get_height(img), 0, zoom_final, &ext->pivot);
14324: 4b84 ldr r3, [pc, #528] ; (14538 <lv_img_design+0x2a0>)
14326: 4620 mov r0, r4
14328: 4798 blx r3
1432a: 4b84 ldr r3, [pc, #528] ; (1453c <lv_img_design+0x2a4>)
1432c: 9003 str r0, [sp, #12]
1432e: 4620 mov r0, r4
14330: 4798 blx r3
14332: 350e adds r5, #14
14334: 4602 mov r2, r0
14336: e9cd 8500 strd r8, r5, [sp]
1433a: 9903 ldr r1, [sp, #12]
1433c: 4d80 ldr r5, [pc, #512] ; (14540 <lv_img_design+0x2a8>)
1433e: 2300 movs r3, #0
14340: a811 add r0, sp, #68 ; 0x44
14342: 47a8 blx r5
a.x1 += img->coords.x1;
14344: 8a22 ldrh r2, [r4, #16]
14346: f8bd 3044 ldrh.w r3, [sp, #68] ; 0x44
a.y1 += img->coords.y1;
1434a: f8bd 1046 ldrh.w r1, [sp, #70] ; 0x46
a.x1 += img->coords.x1;
1434e: 4413 add r3, r2
14350: f8ad 3044 strh.w r3, [sp, #68] ; 0x44
a.y1 += img->coords.y1;
14354: 8a63 ldrh r3, [r4, #18]
14356: 4419 add r1, r3
14358: f8ad 1046 strh.w r1, [sp, #70] ; 0x46
a.x2 += img->coords.x1;
1435c: f8bd 1048 ldrh.w r1, [sp, #72] ; 0x48
14360: 440a add r2, r1
14362: f8ad 2048 strh.w r2, [sp, #72] ; 0x48
a.y2 += img->coords.y1;
14366: f8bd 204a ldrh.w r2, [sp, #74] ; 0x4a
1436a: 4413 add r3, r2
1436c: f8ad 304a strh.w r3, [sp, #74] ; 0x4a
if(_lv_area_is_in(clip_area, &a, 0) == false) return LV_DESIGN_RES_NOT_COVER;
14370: 2200 movs r2, #0
14372: a911 add r1, sp, #68 ; 0x44
14374: e7c6 b.n 14304 <lv_img_design+0x6c>
else if(mode == LV_DESIGN_DRAW_MAIN) {
14376: 2e00 cmp r6, #0
14378: f040 8176 bne.w 14668 <lv_img_design+0x3d0>
if(ext->h == 0 || ext->w == 0) return true;
1437c: f9b0 300a ldrsh.w r3, [r0, #10]
14380: 2b00 cmp r3, #0
14382: f000 816f beq.w 14664 <lv_img_design+0x3cc>
14386: f9b0 3008 ldrsh.w r3, [r0, #8]
1438a: 2b00 cmp r3, #0
1438c: f000 816a beq.w 14664 <lv_img_design+0x3cc>
lv_obj_get_coords(img, &img_coords);
14390: a904 add r1, sp, #16
14392: 4b6c ldr r3, [pc, #432] ; (14544 <lv_img_design+0x2ac>)
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
14394: f8df 91cc ldr.w r9, [pc, #460] ; 14564 <lv_img_design+0x2cc>
14398: 4620 mov r0, r4
1439a: 4798 blx r3
lv_draw_rect_dsc_init(&bg_dsc);
1439c: 4b6a ldr r3, [pc, #424] ; (14548 <lv_img_design+0x2b0>)
1439e: a811 add r0, sp, #68 ; 0x44
143a0: 4798 blx r3
lv_obj_init_draw_rect_dsc(img, LV_IMG_PART_MAIN, &bg_dsc);
143a2: aa11 add r2, sp, #68 ; 0x44
143a4: 4631 mov r1, r6
143a6: 4620 mov r0, r4
143a8: 4b68 ldr r3, [pc, #416] ; (1454c <lv_img_design+0x2b4>)
143aa: 4798 blx r3
143ac: 2233 movs r2, #51 ; 0x33
143ae: 4631 mov r1, r6
143b0: 4620 mov r0, r4
143b2: 47c8 blx r9
if(lv_obj_get_style_border_post(img, LV_OBJ_PART_MAIN)) {
143b4: b108 cbz r0, 143ba <lv_img_design+0x122>
bg_dsc.border_opa = LV_OPA_TRANSP;
143b6: f88d 6058 strb.w r6, [sp, #88] ; 0x58
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar)
143ba: 2207 movs r2, #7
143bc: 2100 movs r1, #0
143be: 4620 mov r0, r4
143c0: 47c8 blx r9
zoom_final = (zoom_final * ext->zoom) >> 8;
143c2: f8b5 8012 ldrh.w r8, [r5, #18]
143c6: fb00 f008 mul.w r0, r0, r8
if(zoom_final == 0) return LV_DESIGN_RES_OK;
143ca: ea5f 2820 movs.w r8, r0, asr #8
143ce: d0a5 beq.n 1431c <lv_img_design+0x84>
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ANGLE, transform_angle, lv_style_int_t, _int, scalar)
143d0: 2206 movs r2, #6
143d2: 2100 movs r1, #0
143d4: 4620 mov r0, r4
143d6: 47c8 blx r9
* @param area_p pointer to an area
* @return the height of the area (if y1 == y2 -> height = 1)
*/
static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p)
{
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
143d8: f8bd 2016 ldrh.w r2, [sp, #22]
143dc: f8bd 3012 ldrh.w r3, [sp, #18]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
143e0: f8bd 1014 ldrh.w r1, [sp, #20]
angle_final += ext->angle;
143e4: f8b5 a00c ldrh.w sl, [r5, #12]
_lv_img_buf_get_transformed_area(&bg_coords, lv_area_get_width(&img_coords), lv_area_get_height(&img_coords),
143e8: f8df b154 ldr.w fp, [pc, #340] ; 14540 <lv_img_design+0x2a8>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
143ec: 3201 adds r2, #1
143ee: 1ad2 subs r2, r2, r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
143f0: f8bd 3010 ldrh.w r3, [sp, #16]
143f4: 3101 adds r1, #1
angle_final += ext->angle;
143f6: 4482 add sl, r0
143f8: 1ac9 subs r1, r1, r3
_lv_img_buf_get_transformed_area(&bg_coords, lv_area_get_width(&img_coords), lv_area_get_height(&img_coords),
143fa: fa1f f888 uxth.w r8, r8
143fe: f105 030e add.w r3, r5, #14
14402: e9cd 8300 strd r8, r3, [sp]
14406: b212 sxth r2, r2
14408: fa0f f38a sxth.w r3, sl
1440c: b209 sxth r1, r1
1440e: a806 add r0, sp, #24
14410: 47d8 blx fp
bg_coords.x1 += img_coords.x1;
14412: f8bd 2010 ldrh.w r2, [sp, #16]
14416: f8bd 3018 ldrh.w r3, [sp, #24]
bg_coords.y1 += img_coords.y1;
1441a: f8bd 101a ldrh.w r1, [sp, #26]
bg_coords.x1 += img_coords.x1;
1441e: 4413 add r3, r2
14420: f8ad 3018 strh.w r3, [sp, #24]
bg_coords.y1 += img_coords.y1;
14424: f8bd 3012 ldrh.w r3, [sp, #18]
14428: 4419 add r1, r3
1442a: f8ad 101a strh.w r1, [sp, #26]
bg_coords.x2 += img_coords.x1;
1442e: f8bd 101c ldrh.w r1, [sp, #28]
14432: 440a add r2, r1
14434: f8ad 201c strh.w r2, [sp, #28]
bg_coords.y2 += img_coords.y1;
14438: f8bd 201e ldrh.w r2, [sp, #30]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
1443c: 2100 movs r1, #0
1443e: 4413 add r3, r2
14440: 4620 mov r0, r4
14442: 2212 movs r2, #18
14444: f8ad 301e strh.w r3, [sp, #30]
14448: 47c8 blx r9
bg_coords.x1 -= lv_obj_get_style_pad_left(img, LV_IMG_PART_MAIN);
1444a: f8bd 3018 ldrh.w r3, [sp, #24]
1444e: 1a18 subs r0, r3, r0
14450: f8ad 0018 strh.w r0, [sp, #24]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14454: 2213 movs r2, #19
14456: 2100 movs r1, #0
14458: 4620 mov r0, r4
1445a: 47c8 blx r9
bg_coords.x2 += lv_obj_get_style_pad_right(img, LV_IMG_PART_MAIN);
1445c: f8bd 301c ldrh.w r3, [sp, #28]
14460: 4418 add r0, r3
14462: f8ad 001c strh.w r0, [sp, #28]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14466: 2210 movs r2, #16
14468: 2100 movs r1, #0
1446a: 4620 mov r0, r4
1446c: 47c8 blx r9
bg_coords.y1 -= lv_obj_get_style_pad_top(img, LV_IMG_PART_MAIN);
1446e: f8bd 301a ldrh.w r3, [sp, #26]
14472: 1a18 subs r0, r3, r0
14474: f8ad 001a strh.w r0, [sp, #26]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
14478: 2211 movs r2, #17
1447a: 2100 movs r1, #0
1447c: 4620 mov r0, r4
1447e: 47c8 blx r9
bg_coords.y2 += lv_obj_get_style_pad_bottom(img, LV_IMG_PART_MAIN);
14480: f8bd 301e ldrh.w r3, [sp, #30]
14484: 4418 add r0, r3
14486: f8ad 001e strh.w r0, [sp, #30]
lv_draw_rect(&bg_coords, clip_area, &bg_dsc);
1448a: aa11 add r2, sp, #68 ; 0x44
1448c: 4639 mov r1, r7
1448e: a806 add r0, sp, #24
14490: 4b2f ldr r3, [pc, #188] ; (14550 <lv_img_design+0x2b8>)
14492: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
14494: 2202 movs r2, #2
14496: 2100 movs r1, #0
14498: 4620 mov r0, r4
1449a: 47c8 blx r9
if(lv_obj_get_style_clip_corner(img, LV_OBJ_PART_MAIN)) {
1449c: b198 cbz r0, 144c6 <lv_img_design+0x22e>
lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t));
1449e: 4b2d ldr r3, [pc, #180] ; (14554 <lv_img_design+0x2bc>)
144a0: 201c movs r0, #28
144a2: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar)
144a4: 2201 movs r2, #1
144a6: 4683 mov fp, r0
144a8: 2100 movs r1, #0
144aa: 4620 mov r0, r4
144ac: 47c8 blx r9
lv_draw_mask_radius_init(mp, &bg_coords, r, false);
144ae: 2300 movs r3, #0
144b0: 4602 mov r2, r0
144b2: a906 add r1, sp, #24
144b4: 4658 mov r0, fp
144b6: f8df 90b4 ldr.w r9, [pc, #180] ; 1456c <lv_img_design+0x2d4>
144ba: 47c8 blx r9
lv_draw_mask_add(mp, img + 8);
144bc: 4b26 ldr r3, [pc, #152] ; (14558 <lv_img_design+0x2c0>)
144be: f504 7118 add.w r1, r4, #608 ; 0x260
144c2: 4658 mov r0, fp
144c4: 4798 blx r3
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_VARIABLE) {
144c6: 7d2b ldrb r3, [r5, #20]
144c8: 079a lsls r2, r3, #30
144ca: f100 809d bmi.w 14608 <lv_img_design+0x370>
img_coords.x1 += ext->offset.x;
144ce: f8bd 2010 ldrh.w r2, [sp, #16]
144d2: 88ab ldrh r3, [r5, #4]
if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w;
144d4: f9b4 c010 ldrsh.w ip, [r4, #16]
img_coords.y1 += ext->offset.y;
144d8: 88e9 ldrh r1, [r5, #6]
img_coords.x1 += ext->offset.x;
144da: 441a add r2, r3
144dc: b290 uxth r0, r2
144de: b212 sxth r2, r2
if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w;
144e0: 4594 cmp ip, r2
img_coords.x1 += ext->offset.x;
144e2: f8ad 2010 strh.w r2, [sp, #16]
if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w;
144e6: bfb8 it lt
144e8: 892a ldrhlt r2, [r5, #8]
img_coords.y1 += ext->offset.y;
144ea: f8bd 3012 ldrh.w r3, [sp, #18]
if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w;
144ee: bfbc itt lt
144f0: 1a82 sublt r2, r0, r2
144f2: f8ad 2010 strhlt.w r2, [sp, #16]
img_coords.y1 += ext->offset.y;
144f6: 440b add r3, r1
if(img_coords.y1 > img->coords.y1) img_coords.y1 -= ext->h;
144f8: f9b4 2012 ldrsh.w r2, [r4, #18]
img_coords.y1 += ext->offset.y;
144fc: b299 uxth r1, r3
144fe: b21b sxth r3, r3
if(img_coords.y1 > img->coords.y1) img_coords.y1 -= ext->h;
14500: 429a cmp r2, r3
img_coords.y1 += ext->offset.y;
14502: f8ad 3012 strh.w r3, [sp, #18]
if(img_coords.y1 > img->coords.y1) img_coords.y1 -= ext->h;
14506: bfbe ittt lt
14508: 896b ldrhlt r3, [r5, #10]
1450a: 1acb sublt r3, r1, r3
1450c: f8ad 3012 strhlt.w r3, [sp, #18]
lv_draw_img_dsc_init(&img_dsc);
14510: a80a add r0, sp, #40 ; 0x28
14512: 4b12 ldr r3, [pc, #72] ; (1455c <lv_img_design+0x2c4>)
14514: 4798 blx r3
lv_obj_init_draw_img_dsc(img, LV_IMG_PART_MAIN, &img_dsc);
14516: 4b12 ldr r3, [pc, #72] ; (14560 <lv_img_design+0x2c8>)
14518: aa0a add r2, sp, #40 ; 0x28
1451a: 2100 movs r1, #0
1451c: 4620 mov r0, r4
1451e: 4798 blx r3
img_dsc.zoom = zoom_final;
14520: f8ad 8030 strh.w r8, [sp, #48] ; 0x30
if(img_dsc.zoom == 0) return LV_DESIGN_RES_OK;
14524: f1b8 0f00 cmp.w r8, #0
14528: d122 bne.n 14570 <lv_img_design+0x2d8>
return LV_DESIGN_RES_OK;
1452a: 2600 movs r6, #0
1452c: e6f6 b.n 1431c <lv_img_design+0x84>
1452e: bf00 nop
14530: 0000422d .word 0x0000422d
14534: 00003abd .word 0x00003abd
14538: 00002671 .word 0x00002671
1453c: 000026c1 .word 0x000026c1
14540: 0000c2e5 .word 0x0000c2e5
14544: 00002559 .word 0x00002559
14548: 00009e25 .word 0x00009e25
1454c: 0000452d .word 0x0000452d
14550: 00009e71 .word 0x00009e71
14554: 0000f145 .word 0x0000f145
14558: 00009995 .word 0x00009995
1455c: 000077dd .word 0x000077dd
14560: 00004b21 .word 0x00004b21
14564: 00003995 .word 0x00003995
14568: 0000e315 .word 0x0000e315
1456c: 00009b99 .word 0x00009b99
img_dsc.pivot.x = ext->pivot.x;
14570: 89eb ldrh r3, [r5, #14]
14572: f8ad 302c strh.w r3, [sp, #44] ; 0x2c
img_dsc.pivot.y = ext->pivot.y;
14576: 8a2b ldrh r3, [r5, #16]
14578: f8ad 302e strh.w r3, [sp, #46] ; 0x2e
img_dsc.antialias = ext->antialias;
1457c: 7d6b ldrb r3, [r5, #21]
1457e: f89d 2037 ldrb.w r2, [sp, #55] ; 0x37
lv_draw_img(&cords_tmp, clip_area, ext->src, &img_dsc);
14582: 4c50 ldr r4, [pc, #320] ; (146c4 <lv_img_design+0x42c>)
img_dsc.angle = angle_final;
14584: f8ad a02a strh.w sl, [sp, #42] ; 0x2a
img_dsc.antialias = ext->antialias;
14588: f3c3 0300 ubfx r3, r3, #0, #1
1458c: f363 0200 bfi r2, r3, #0, #1
14590: f88d 2037 strb.w r2, [sp, #55] ; 0x37
cords_tmp.y1 = img_coords.y1;
14594: f9bd 3012 ldrsh.w r3, [sp, #18]
cords_tmp.y2 = img_coords.y1 + ext->h - 1;
14598: 896a ldrh r2, [r5, #10]
cords_tmp.y1 = img_coords.y1;
1459a: f8ad 3022 strh.w r3, [sp, #34] ; 0x22
cords_tmp.y2 = img_coords.y1 + ext->h - 1;
1459e: 3b01 subs r3, #1
145a0: 4413 add r3, r2
145a2: b21b sxth r3, r3
for(; cords_tmp.y1 <= img_coords.y2; cords_tmp.y1 += ext->h, cords_tmp.y2 += ext->h) {
145a4: f9bd 2022 ldrsh.w r2, [sp, #34] ; 0x22
cords_tmp.y2 = img_coords.y1 + ext->h - 1;
145a8: f8ad 3026 strh.w r3, [sp, #38] ; 0x26
for(; cords_tmp.y1 <= img_coords.y2; cords_tmp.y1 += ext->h, cords_tmp.y2 += ext->h) {
145ac: f9bd 3016 ldrsh.w r3, [sp, #22]
145b0: 429a cmp r2, r3
145b2: f73f aeb3 bgt.w 1431c <lv_img_design+0x84>
cords_tmp.x1 = img_coords.x1;
145b6: f9bd 3010 ldrsh.w r3, [sp, #16]
cords_tmp.x2 = img_coords.x1 + ext->w - 1;
145ba: 892a ldrh r2, [r5, #8]
cords_tmp.x1 = img_coords.x1;
145bc: f8ad 3020 strh.w r3, [sp, #32]
cords_tmp.x2 = img_coords.x1 + ext->w - 1;
145c0: 3b01 subs r3, #1
for(; cords_tmp.x1 <= img_coords.x2; cords_tmp.x1 += ext->w, cords_tmp.x2 += ext->w) {
145c2: 4413 add r3, r2
145c4: b21b sxth r3, r3
145c6: f9bd 2020 ldrsh.w r2, [sp, #32]
cords_tmp.x2 = img_coords.x1 + ext->w - 1;
145ca: f8ad 3024 strh.w r3, [sp, #36] ; 0x24
for(; cords_tmp.x1 <= img_coords.x2; cords_tmp.x1 += ext->w, cords_tmp.x2 += ext->w) {
145ce: f9bd 3014 ldrsh.w r3, [sp, #20]
145d2: 429a cmp r2, r3
145d4: dd0a ble.n 145ec <lv_img_design+0x354>
for(; cords_tmp.y1 <= img_coords.y2; cords_tmp.y1 += ext->h, cords_tmp.y2 += ext->h) {
145d6: 896b ldrh r3, [r5, #10]
145d8: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22
145dc: 441a add r2, r3
145de: f8ad 2022 strh.w r2, [sp, #34] ; 0x22
145e2: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26
145e6: 4413 add r3, r2
145e8: b21b sxth r3, r3
145ea: e7db b.n 145a4 <lv_img_design+0x30c>
lv_draw_img(&cords_tmp, clip_area, ext->src, &img_dsc);
145ec: 682a ldr r2, [r5, #0]
145ee: ab0a add r3, sp, #40 ; 0x28
145f0: 4639 mov r1, r7
145f2: a808 add r0, sp, #32
145f4: 47a0 blx r4
for(; cords_tmp.x1 <= img_coords.x2; cords_tmp.x1 += ext->w, cords_tmp.x2 += ext->w) {
145f6: f8bd 2020 ldrh.w r2, [sp, #32]
145fa: 892b ldrh r3, [r5, #8]
145fc: 441a add r2, r3
145fe: f8ad 2020 strh.w r2, [sp, #32]
14602: f8bd 2024 ldrh.w r2, [sp, #36] ; 0x24
14606: e7dc b.n 145c2 <lv_img_design+0x32a>
else if(ext->src_type == LV_IMG_SRC_SYMBOL) {
14608: f003 0303 and.w r3, r3, #3
1460c: 2b02 cmp r3, #2
1460e: d118 bne.n 14642 <lv_img_design+0x3aa>
lv_draw_label_dsc_init(&label_dsc);
14610: a80a add r0, sp, #40 ; 0x28
14612: 4b2d ldr r3, [pc, #180] ; (146c8 <lv_img_design+0x430>)
14614: 4798 blx r3
lv_obj_init_draw_label_dsc(img, LV_IMG_PART_MAIN, &label_dsc);
14616: aa0a add r2, sp, #40 ; 0x28
14618: 4620 mov r0, r4
1461a: 4b2c ldr r3, [pc, #176] ; (146cc <lv_img_design+0x434>)
1461c: 2100 movs r1, #0
1461e: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar)
14620: 4b2b ldr r3, [pc, #172] ; (146d0 <lv_img_design+0x438>)
14622: f248 02a9 movw r2, #32937 ; 0x80a9
14626: 2100 movs r1, #0
14628: 4620 mov r0, r4
1462a: 4798 blx r3
lv_draw_label(&img_coords, clip_area, &label_dsc, ext->src, NULL);
1462c: 2300 movs r3, #0
1462e: 9300 str r3, [sp, #0]
label_dsc.color = lv_obj_get_style_image_recolor(img, LV_IMG_PART_MAIN);
14630: f8ad 0028 strh.w r0, [sp, #40] ; 0x28
lv_draw_label(&img_coords, clip_area, &label_dsc, ext->src, NULL);
14634: 682b ldr r3, [r5, #0]
14636: 4c27 ldr r4, [pc, #156] ; (146d4 <lv_img_design+0x43c>)
14638: aa0a add r2, sp, #40 ; 0x28
1463a: 4639 mov r1, r7
1463c: a804 add r0, sp, #16
1463e: 47a0 blx r4
14640: e66c b.n 1431c <lv_img_design+0x84>
LV_LOG_WARN("lv_img_design: image source type is unknown");
14642: 4b25 ldr r3, [pc, #148] ; (146d8 <lv_img_design+0x440>)
14644: 9300 str r3, [sp, #0]
14646: 4925 ldr r1, [pc, #148] ; (146dc <lv_img_design+0x444>)
14648: 4b25 ldr r3, [pc, #148] ; (146e0 <lv_img_design+0x448>)
1464a: 4d26 ldr r5, [pc, #152] ; (146e4 <lv_img_design+0x44c>)
1464c: f240 22bb movw r2, #699 ; 0x2bb
14650: 2002 movs r0, #2
14652: 47a8 blx r5
lv_draw_img(&img->coords, clip_area, NULL, NULL);
14654: 2300 movs r3, #0
14656: f104 0010 add.w r0, r4, #16
1465a: 461a mov r2, r3
1465c: 4c19 ldr r4, [pc, #100] ; (146c4 <lv_img_design+0x42c>)
1465e: 4639 mov r1, r7
14660: 47a0 blx r4
14662: e65b b.n 1431c <lv_img_design+0x84>
if(ext->h == 0 || ext->w == 0) return true;
14664: 2601 movs r6, #1
14666: e659 b.n 1431c <lv_img_design+0x84>
else if(mode == LV_DESIGN_DRAW_POST) {
14668: 2e01 cmp r6, #1
1466a: f47f af5e bne.w 1452a <lv_img_design+0x292>
_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar)
1466e: 4d1e ldr r5, [pc, #120] ; (146e8 <lv_img_design+0x450>)
14670: 2202 movs r2, #2
14672: 2100 movs r1, #0
14674: 4620 mov r0, r4
14676: 47a8 blx r5
if(lv_obj_get_style_clip_corner(img, LV_OBJ_PART_MAIN)) {
14678: b128 cbz r0, 14686 <lv_img_design+0x3ee>
lv_draw_mask_radius_param_t * param = lv_draw_mask_remove_custom(img + 8);
1467a: 4b1c ldr r3, [pc, #112] ; (146ec <lv_img_design+0x454>)
1467c: f504 7018 add.w r0, r4, #608 ; 0x260
14680: 4798 blx r3
_lv_mem_buf_release(param);
14682: 4b1b ldr r3, [pc, #108] ; (146f0 <lv_img_design+0x458>)
14684: 4798 blx r3
lv_draw_rect_dsc_init(&draw_dsc);
14686: a811 add r0, sp, #68 ; 0x44
14688: 4b1a ldr r3, [pc, #104] ; (146f4 <lv_img_design+0x45c>)
1468a: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar)
1468c: 2233 movs r2, #51 ; 0x33
1468e: 2100 movs r1, #0
14690: 4620 mov r0, r4
14692: 47a8 blx r5
if(lv_obj_get_style_border_post(img, LV_OBJ_PART_MAIN)) {
14694: 2800 cmp r0, #0
14696: f43f af48 beq.w 1452a <lv_img_design+0x292>
draw_dsc.bg_opa = LV_OPA_TRANSP;
1469a: 2100 movs r1, #0
1469c: f88d 1050 strb.w r1, [sp, #80] ; 0x50
draw_dsc.pattern_opa = LV_OPA_TRANSP;
146a0: f88d 107a strb.w r1, [sp, #122] ; 0x7a
draw_dsc.shadow_opa = LV_OPA_TRANSP;
146a4: f88d 106c strb.w r1, [sp, #108] ; 0x6c
lv_obj_init_draw_rect_dsc(img, LV_OBJ_PART_MAIN, &draw_dsc);
146a8: aa11 add r2, sp, #68 ; 0x44
146aa: 4620 mov r0, r4
146ac: 4b12 ldr r3, [pc, #72] ; (146f8 <lv_img_design+0x460>)
146ae: 4798 blx r3
lv_draw_rect(&img->coords, clip_area, &draw_dsc);
146b0: 4b12 ldr r3, [pc, #72] ; (146fc <lv_img_design+0x464>)
146b2: aa11 add r2, sp, #68 ; 0x44
146b4: 4639 mov r1, r7
146b6: f104 0010 add.w r0, r4, #16
146ba: 4798 blx r3
146bc: e735 b.n 1452a <lv_img_design+0x292>
if(lv_obj_get_style_clip_corner(img, LV_IMG_PART_MAIN)) return LV_DESIGN_RES_MASKED;
146be: 2603 movs r6, #3
146c0: e62c b.n 1431c <lv_img_design+0x84>
146c2: bf00 nop
146c4: 00007845 .word 0x00007845
146c8: 00007ac9 .word 0x00007ac9
146cc: 00004a69 .word 0x00004a69
146d0: 00003a39 .word 0x00003a39
146d4: 00007af9 .word 0x00007af9
146d8: 00027847 .word 0x00027847
146dc: 0002bcfc .word 0x0002bcfc
146e0: 0002bdb5 .word 0x0002bdb5
146e4: 0000eb79 .word 0x0000eb79
146e8: 00003995 .word 0x00003995
146ec: 00009a4d .word 0x00009a4d
146f0: 0000edf9 .word 0x0000edf9
146f4: 00009e25 .word 0x00009e25
146f8: 0000452d .word 0x0000452d
146fc: 00009e71 .word 0x00009e71
00014700 <lv_img_get_auto_size>:
{
14700: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(img, LV_OBJX_NAME);
14702: 4b0d ldr r3, [pc, #52] ; (14738 <lv_img_get_auto_size+0x38>)
{
14704: 4604 mov r4, r0
LV_ASSERT_OBJ(img, LV_OBJX_NAME);
14706: 4798 blx r3
14708: 4605 mov r5, r0
1470a: b968 cbnz r0, 14728 <lv_img_get_auto_size+0x28>
1470c: 4b0b ldr r3, [pc, #44] ; (1473c <lv_img_get_auto_size+0x3c>)
1470e: 490c ldr r1, [pc, #48] ; (14740 <lv_img_get_auto_size+0x40>)
14710: 9300 str r3, [sp, #0]
14712: f44f 72e7 mov.w r2, #462 ; 0x1ce
14716: 2003 movs r0, #3
14718: 4e0a ldr r6, [pc, #40] ; (14744 <lv_img_get_auto_size+0x44>)
1471a: 47b0 blx r6
1471c: 480a ldr r0, [pc, #40] ; (14748 <lv_img_get_auto_size+0x48>)
1471e: 490b ldr r1, [pc, #44] ; (1474c <lv_img_get_auto_size+0x4c>)
14720: 4622 mov r2, r4
14722: 462b mov r3, r5
14724: 4788 blx r1
14726: e7fe b.n 14726 <lv_img_get_auto_size+0x26>
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
14728: 4b09 ldr r3, [pc, #36] ; (14750 <lv_img_get_auto_size+0x50>)
1472a: 4620 mov r0, r4
1472c: 4798 blx r3
return ext->auto_size == 0 ? false : true;
1472e: 7d00 ldrb r0, [r0, #20]
}
14730: f3c0 0080 ubfx r0, r0, #2, #1
14734: b002 add sp, #8
14736: bd70 pop {r4, r5, r6, pc}
14738: 00001a65 .word 0x00001a65
1473c: 0002be24 .word 0x0002be24
14740: 0002bcfc .word 0x0002bcfc
14744: 0000eb79 .word 0x0000eb79
14748: 00026943 .word 0x00026943
1474c: 00001a6d .word 0x00001a6d
14750: 0000422d .word 0x0000422d
00014754 <lv_img_set_src>:
{
14754: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
LV_ASSERT_OBJ(img, LV_OBJX_NAME);
14758: f8df a244 ldr.w sl, [pc, #580] ; 149a0 <lv_img_set_src+0x24c>
{
1475c: b088 sub sp, #32
1475e: 4606 mov r6, r0
14760: 460f mov r7, r1
LV_ASSERT_OBJ(img, LV_OBJX_NAME);
14762: 47d0 blx sl
14764: 4604 mov r4, r0
14766: b960 cbnz r0, 14782 <lv_img_set_src+0x2e>
14768: 4b77 ldr r3, [pc, #476] ; (14948 <lv_img_set_src+0x1f4>)
1476a: 4978 ldr r1, [pc, #480] ; (1494c <lv_img_set_src+0x1f8>)
1476c: 9300 str r3, [sp, #0]
1476e: 228f movs r2, #143 ; 0x8f
14770: 2003 movs r0, #3
14772: 4d77 ldr r5, [pc, #476] ; (14950 <lv_img_set_src+0x1fc>)
14774: 47a8 blx r5
14776: 4877 ldr r0, [pc, #476] ; (14954 <lv_img_set_src+0x200>)
14778: 4977 ldr r1, [pc, #476] ; (14958 <lv_img_set_src+0x204>)
1477a: 4632 mov r2, r6
1477c: 4623 mov r3, r4
1477e: 4788 blx r1
14780: e7fe b.n 14780 <lv_img_set_src+0x2c>
lv_img_src_t src_type = lv_img_src_get_type(src_img);
14782: 4b76 ldr r3, [pc, #472] ; (1495c <lv_img_set_src+0x208>)
14784: 4638 mov r0, r7
14786: 4798 blx r3
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
14788: 4b75 ldr r3, [pc, #468] ; (14960 <lv_img_set_src+0x20c>)
lv_img_src_t src_type = lv_img_src_get_type(src_img);
1478a: 4605 mov r5, r0
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
1478c: 4630 mov r0, r6
1478e: 4798 blx r3
switch(src_type) {
14790: 2d02 cmp r5, #2
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
14792: 4604 mov r4, r0
switch(src_type) {
14794: d923 bls.n 147de <lv_img_set_src+0x8a>
LV_LOG_WARN("lv_img_set_src: unknown type");
14796: 4b73 ldr r3, [pc, #460] ; (14964 <lv_img_set_src+0x210>)
14798: 9300 str r3, [sp, #0]
1479a: 496c ldr r1, [pc, #432] ; (1494c <lv_img_set_src+0x1f8>)
1479c: 4b6a ldr r3, [pc, #424] ; (14948 <lv_img_set_src+0x1f4>)
1479e: f8df 81b0 ldr.w r8, [pc, #432] ; 14950 <lv_img_set_src+0x1fc>
147a2: 22a0 movs r2, #160 ; 0xa0
147a4: 2002 movs r0, #2
147a6: 47c0 blx r8
if(src_type == LV_IMG_SRC_UNKNOWN) {
147a8: 2d03 cmp r5, #3
147aa: d118 bne.n 147de <lv_img_set_src+0x8a>
LV_LOG_WARN("lv_img_set_src: unknown image type");
147ac: 4b6e ldr r3, [pc, #440] ; (14968 <lv_img_set_src+0x214>)
147ae: 9300 str r3, [sp, #0]
147b0: 4966 ldr r1, [pc, #408] ; (1494c <lv_img_set_src+0x1f8>)
147b2: 4b65 ldr r3, [pc, #404] ; (14948 <lv_img_set_src+0x1f4>)
147b4: 22a6 movs r2, #166 ; 0xa6
147b6: 2002 movs r0, #2
147b8: 47c0 blx r8
if(ext->src_type == LV_IMG_SRC_SYMBOL || ext->src_type == LV_IMG_SRC_FILE) {
147ba: 7d23 ldrb r3, [r4, #20]
147bc: f003 0303 and.w r3, r3, #3
147c0: 3b01 subs r3, #1
147c2: 2b01 cmp r3, #1
147c4: d802 bhi.n 147cc <lv_img_set_src+0x78>
lv_mem_free(ext->src);
147c6: 6820 ldr r0, [r4, #0]
147c8: 4b68 ldr r3, [pc, #416] ; (1496c <lv_img_set_src+0x218>)
147ca: 4798 blx r3
ext->src = NULL;
147cc: 2300 movs r3, #0
147ce: 6023 str r3, [r4, #0]
ext->src_type = LV_IMG_SRC_UNKNOWN;
147d0: 7d23 ldrb r3, [r4, #20]
147d2: f043 0303 orr.w r3, r3, #3
147d6: 7523 strb r3, [r4, #20]
}
147d8: b008 add sp, #32
147da: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
lv_img_decoder_get_info(src_img, &header);
147de: 4b64 ldr r3, [pc, #400] ; (14970 <lv_img_set_src+0x21c>)
147e0: a906 add r1, sp, #24
147e2: 4638 mov r0, r7
147e4: 4798 blx r3
if(src_type == LV_IMG_SRC_VARIABLE) {
147e6: 2d00 cmp r5, #0
147e8: d146 bne.n 14878 <lv_img_set_src+0x124>
LV_LOG_INFO("lv_img_set_src: `LV_IMG_SRC_VARIABLE` type found");
147ea: 4b62 ldr r3, [pc, #392] ; (14974 <lv_img_set_src+0x220>)
147ec: 9300 str r3, [sp, #0]
147ee: 4957 ldr r1, [pc, #348] ; (1494c <lv_img_set_src+0x1f8>)
147f0: 4b55 ldr r3, [pc, #340] ; (14948 <lv_img_set_src+0x1f4>)
147f2: f8df 815c ldr.w r8, [pc, #348] ; 14950 <lv_img_set_src+0x1fc>
147f6: 22b4 movs r2, #180 ; 0xb4
147f8: 2001 movs r0, #1
147fa: 47c0 blx r8
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) {
147fc: 7d23 ldrb r3, [r4, #20]
147fe: f003 0303 and.w r3, r3, #3
14802: 3b01 subs r3, #1
14804: 2b01 cmp r3, #1
14806: d802 bhi.n 1480e <lv_img_set_src+0xba>
lv_mem_free(ext->src);
14808: 6820 ldr r0, [r4, #0]
1480a: 4b58 ldr r3, [pc, #352] ; (1496c <lv_img_set_src+0x218>)
1480c: 4798 blx r3
ext->src = src_img;
1480e: 6027 str r7, [r4, #0]
ext->w = header.w;
14810: 9a06 ldr r2, [sp, #24]
14812: f3c2 238a ubfx r3, r2, #10, #11
14816: 8123 strh r3, [r4, #8]
ext->h = header.h;
14818: f8bd 301a ldrh.w r3, [sp, #26]
1481c: f3c3 114a ubfx r1, r3, #5, #11
14820: 8161 strh r1, [r4, #10]
ext->cf = header.cf;
14822: f89d 1018 ldrb.w r1, [sp, #24]
ext->src_type = src_type;
14826: f005 0503 and.w r5, r5, #3
ext->cf = header.cf;
1482a: f3c1 0104 ubfx r1, r1, #0, #5
ext->src_type = src_type;
1482e: ea45 05c1 orr.w r5, r5, r1, lsl #3
14832: 7d21 ldrb r1, [r4, #20]
14834: f001 0104 and.w r1, r1, #4
ext->pivot.y = header.h / 2;
14838: f3c3 1389 ubfx r3, r3, #6, #10
ext->src_type = src_type;
1483c: 430d orrs r5, r1
ext->pivot.x = header.w / 2;
1483e: f3c2 22c9 ubfx r2, r2, #11, #10
ext->pivot.y = header.h / 2;
14842: 8223 strh r3, [r4, #16]
ext->src_type = src_type;
14844: 7525 strb r5, [r4, #20]
if(lv_img_get_auto_size(img) != false) {
14846: 4b4c ldr r3, [pc, #304] ; (14978 <lv_img_set_src+0x224>)
ext->pivot.x = header.w / 2;
14848: 81e2 strh r2, [r4, #14]
if(lv_img_get_auto_size(img) != false) {
1484a: 4630 mov r0, r6
1484c: 4798 blx r3
1484e: b130 cbz r0, 1485e <lv_img_set_src+0x10a>
lv_obj_set_size(img, ext->w, ext->h);
14850: f9b4 200a ldrsh.w r2, [r4, #10]
14854: f9b4 1008 ldrsh.w r1, [r4, #8]
14858: 4b48 ldr r3, [pc, #288] ; (1497c <lv_img_set_src+0x228>)
1485a: 4630 mov r0, r6
1485c: 4798 blx r3
if(ext->angle || ext->zoom != LV_IMG_ZOOM_NONE) lv_obj_refresh_ext_draw_pad(img);
1485e: 89a3 ldrh r3, [r4, #12]
14860: b91b cbnz r3, 1486a <lv_img_set_src+0x116>
14862: 8a63 ldrh r3, [r4, #18]
14864: f5b3 7f80 cmp.w r3, #256 ; 0x100
14868: d002 beq.n 14870 <lv_img_set_src+0x11c>
1486a: 4b45 ldr r3, [pc, #276] ; (14980 <lv_img_set_src+0x22c>)
1486c: 4630 mov r0, r6
1486e: 4798 blx r3
lv_obj_invalidate(img);
14870: 4b44 ldr r3, [pc, #272] ; (14984 <lv_img_set_src+0x230>)
14872: 4630 mov r0, r6
14874: 4798 blx r3
14876: e7af b.n 147d8 <lv_img_set_src+0x84>
else if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_SYMBOL) {
14878: 1e6b subs r3, r5, #1
1487a: b2db uxtb r3, r3
1487c: 2b01 cmp r3, #1
1487e: d831 bhi.n 148e4 <lv_img_set_src+0x190>
if(ext->src != src_img) {
14880: f8d4 9000 ldr.w r9, [r4]
14884: 454f cmp r7, r9
14886: d02d beq.n 148e4 <lv_img_set_src+0x190>
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) {
14888: 7d23 ldrb r3, [r4, #20]
1488a: f003 0303 and.w r3, r3, #3
1488e: 3b01 subs r3, #1
const void * old_src = NULL;
14890: 2b01 cmp r3, #1
char * new_str = lv_mem_alloc(strlen(src_img) + 1);
14892: 4638 mov r0, r7
14894: 4b3c ldr r3, [pc, #240] ; (14988 <lv_img_set_src+0x234>)
const void * old_src = NULL;
14896: bf88 it hi
14898: f04f 0900 movhi.w r9, #0
char * new_str = lv_mem_alloc(strlen(src_img) + 1);
1489c: 4798 blx r3
1489e: 4b3b ldr r3, [pc, #236] ; (1498c <lv_img_set_src+0x238>)
148a0: 3001 adds r0, #1
148a2: 4798 blx r3
148a4: 4680 mov r8, r0
LV_ASSERT_MEM(new_str);
148a6: 47d0 blx sl
148a8: 4682 mov sl, r0
148aa: b960 cbnz r0, 148c6 <lv_img_set_src+0x172>
148ac: 4b26 ldr r3, [pc, #152] ; (14948 <lv_img_set_src+0x1f4>)
148ae: 4927 ldr r1, [pc, #156] ; (1494c <lv_img_set_src+0x1f8>)
148b0: 9300 str r3, [sp, #0]
148b2: 22c7 movs r2, #199 ; 0xc7
148b4: 2003 movs r0, #3
148b6: 4c26 ldr r4, [pc, #152] ; (14950 <lv_img_set_src+0x1fc>)
148b8: 47a0 blx r4
148ba: 4835 ldr r0, [pc, #212] ; (14990 <lv_img_set_src+0x23c>)
148bc: 4926 ldr r1, [pc, #152] ; (14958 <lv_img_set_src+0x204>)
148be: 4642 mov r2, r8
148c0: 4653 mov r3, sl
148c2: 4788 blx r1
148c4: e7fe b.n 148c4 <lv_img_set_src+0x170>
if(new_str == NULL) return;
148c6: f1b8 0f00 cmp.w r8, #0
148ca: d085 beq.n 147d8 <lv_img_set_src+0x84>
148cc: 4b31 ldr r3, [pc, #196] ; (14994 <lv_img_set_src+0x240>)
148ce: 4639 mov r1, r7
148d0: 4640 mov r0, r8
148d2: 4798 blx r3
ext->src = new_str;
148d4: f8c4 8000 str.w r8, [r4]
if(old_src) lv_mem_free(old_src);
148d8: f1b9 0f00 cmp.w r9, #0
148dc: d002 beq.n 148e4 <lv_img_set_src+0x190>
148de: 4b23 ldr r3, [pc, #140] ; (1496c <lv_img_set_src+0x218>)
148e0: 4648 mov r0, r9
148e2: 4798 blx r3
if(src_type == LV_IMG_SRC_SYMBOL) {
148e4: 2d02 cmp r5, #2
148e6: d193 bne.n 14810 <lv_img_set_src+0xbc>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
148e8: 4b2b ldr r3, [pc, #172] ; (14998 <lv_img_set_src+0x244>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
148ea: f8df 90b8 ldr.w r9, [pc, #184] ; 149a4 <lv_img_set_src+0x250>
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
148ee: f248 028e movw r2, #32910 ; 0x808e
148f2: 2100 movs r1, #0
148f4: 4630 mov r0, r6
148f6: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
148f8: f248 0280 movw r2, #32896 ; 0x8080
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
148fc: 4680 mov r8, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
148fe: 2100 movs r1, #0
14900: 4630 mov r0, r6
14902: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
14904: f248 0281 movw r2, #32897 ; 0x8081
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
14908: 9005 str r0, [sp, #20]
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
1490a: 2100 movs r1, #0
1490c: 4630 mov r0, r6
1490e: 47c8 blx r9
_lv_txt_get_size(&size, src_img, font, letter_space, line_space,
14910: f647 4218 movw r2, #31768 ; 0x7c18
14914: 2300 movs r3, #0
14916: e9cd 2301 strd r2, r3, [sp, #4]
1491a: 9000 str r0, [sp, #0]
1491c: 9b05 ldr r3, [sp, #20]
1491e: 4642 mov r2, r8
14920: 4639 mov r1, r7
14922: a807 add r0, sp, #28
14924: 4f1d ldr r7, [pc, #116] ; (1499c <lv_img_set_src+0x248>)
14926: 47b8 blx r7
header.w = size.x;
14928: f8bd 201c ldrh.w r2, [sp, #28]
1492c: f9bd 301e ldrsh.w r3, [sp, #30]
14930: f3c2 020a ubfx r2, r2, #0, #11
14934: 055b lsls r3, r3, #21
14936: ea43 2382 orr.w r3, r3, r2, lsl #10
1493a: 9a06 ldr r2, [sp, #24]
1493c: f3c2 0209 ubfx r2, r2, #0, #10
14940: 4313 orrs r3, r2
14942: 9306 str r3, [sp, #24]
14944: e764 b.n 14810 <lv_img_set_src+0xbc>
14946: bf00 nop
14948: 0002be39 .word 0x0002be39
1494c: 0002bcfc .word 0x0002bcfc
14950: 0000eb79 .word 0x0000eb79
14954: 00026943 .word 0x00026943
14958: 00001a6d .word 0x00001a6d
1495c: 00007a89 .word 0x00007a89
14960: 0000422d .word 0x0000422d
14964: 0002bd2e .word 0x0002bd2e
14968: 0002bd4b .word 0x0002bd4b
1496c: 0000ed75 .word 0x0000ed75
14970: 0000d1ad .word 0x0000d1ad
14974: 0002bd6e .word 0x0002bd6e
14978: 00014701 .word 0x00014701
1497c: 00003765 .word 0x00003765
14980: 00002355 .word 0x00002355
14984: 00002a09 .word 0x00002a09
14988: 00017481 .word 0x00017481
1498c: 0000ecbd .word 0x0000ecbd
14990: 00026842 .word 0x00026842
14994: 0001739d .word 0x0001739d
14998: 00003b4d .word 0x00003b4d
1499c: 0001042d .word 0x0001042d
149a0: 00001a65 .word 0x00001a65
149a4: 00003995 .word 0x00003995
000149a8 <lv_img_create>:
{
149a8: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr}
lv_obj_t * img = lv_obj_create(par, copy);
149ac: 4b53 ldr r3, [pc, #332] ; (14afc <lv_img_create+0x154>)
LV_ASSERT_MEM(img);
149ae: f8df 81a8 ldr.w r8, [pc, #424] ; 14b58 <lv_img_create+0x1b0>
{
149b2: 460e mov r6, r1
149b4: 4607 mov r7, r0
lv_obj_t * img = lv_obj_create(par, copy);
149b6: 4798 blx r3
149b8: 4605 mov r5, r0
LV_ASSERT_MEM(img);
149ba: 47c0 blx r8
149bc: 4604 mov r4, r0
149be: b960 cbnz r0, 149da <lv_img_create+0x32>
149c0: 4b4f ldr r3, [pc, #316] ; (14b00 <lv_img_create+0x158>)
149c2: 4950 ldr r1, [pc, #320] ; (14b04 <lv_img_create+0x15c>)
149c4: 9300 str r3, [sp, #0]
149c6: 2242 movs r2, #66 ; 0x42
149c8: 2003 movs r0, #3
149ca: 4e4f ldr r6, [pc, #316] ; (14b08 <lv_img_create+0x160>)
149cc: 47b0 blx r6
149ce: 484f ldr r0, [pc, #316] ; (14b0c <lv_img_create+0x164>)
149d0: 494f ldr r1, [pc, #316] ; (14b10 <lv_img_create+0x168>)
149d2: 462a mov r2, r5
149d4: 4623 mov r3, r4
149d6: 4788 blx r1
149d8: e7fe b.n 149d8 <lv_img_create+0x30>
if(img == NULL) return NULL;
149da: b315 cbz r5, 14a22 <lv_img_create+0x7a>
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(img);
149dc: 4c4d ldr r4, [pc, #308] ; (14b14 <lv_img_create+0x16c>)
149de: 6823 ldr r3, [r4, #0]
149e0: b91b cbnz r3, 149ea <lv_img_create+0x42>
149e2: 4b4d ldr r3, [pc, #308] ; (14b18 <lv_img_create+0x170>)
149e4: 4628 mov r0, r5
149e6: 4798 blx r3
149e8: 6020 str r0, [r4, #0]
lv_img_ext_t * ext = lv_obj_allocate_ext_attr(img, sizeof(lv_img_ext_t));
149ea: 4b4c ldr r3, [pc, #304] ; (14b1c <lv_img_create+0x174>)
149ec: 2118 movs r1, #24
149ee: 4628 mov r0, r5
149f0: 4798 blx r3
149f2: 4604 mov r4, r0
LV_ASSERT_MEM(ext);
149f4: 47c0 blx r8
149f6: 4680 mov r8, r0
149f8: b960 cbnz r0, 14a14 <lv_img_create+0x6c>
149fa: 4b41 ldr r3, [pc, #260] ; (14b00 <lv_img_create+0x158>)
149fc: 4941 ldr r1, [pc, #260] ; (14b04 <lv_img_create+0x15c>)
149fe: 9300 str r3, [sp, #0]
14a00: 2249 movs r2, #73 ; 0x49
14a02: 2003 movs r0, #3
14a04: 4d40 ldr r5, [pc, #256] ; (14b08 <lv_img_create+0x160>)
14a06: 47a8 blx r5
14a08: 4840 ldr r0, [pc, #256] ; (14b0c <lv_img_create+0x164>)
14a0a: 4941 ldr r1, [pc, #260] ; (14b10 <lv_img_create+0x168>)
14a0c: 4622 mov r2, r4
14a0e: 4643 mov r3, r8
14a10: 4788 blx r1
14a12: e7fe b.n 14a12 <lv_img_create+0x6a>
if(ext == NULL) {
14a14: f04f 0800 mov.w r8, #0
14a18: b93c cbnz r4, 14a2a <lv_img_create+0x82>
lv_obj_del(img);
14a1a: 4628 mov r0, r5
14a1c: 4b40 ldr r3, [pc, #256] ; (14b20 <lv_img_create+0x178>)
14a1e: 4798 blx r3
return NULL;
14a20: 4625 mov r5, r4
}
14a22: 4628 mov r0, r5
14a24: b002 add sp, #8
14a26: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
ext->src_type = LV_IMG_SRC_UNKNOWN;
14a2a: 7d23 ldrb r3, [r4, #20]
ext->src = NULL;
14a2c: f8c4 8000 str.w r8, [r4]
ext->src_type = LV_IMG_SRC_UNKNOWN;
14a30: f003 0304 and.w r3, r3, #4
14a34: f043 0303 orr.w r3, r3, #3
14a38: 7523 strb r3, [r4, #20]
ext->w = lv_obj_get_width(img);
14a3a: 4628 mov r0, r5
14a3c: 4b39 ldr r3, [pc, #228] ; (14b24 <lv_img_create+0x17c>)
14a3e: 4798 blx r3
ext->h = lv_obj_get_height(img);
14a40: 4b39 ldr r3, [pc, #228] ; (14b28 <lv_img_create+0x180>)
ext->w = lv_obj_get_width(img);
14a42: 8120 strh r0, [r4, #8]
ext->h = lv_obj_get_height(img);
14a44: 4628 mov r0, r5
14a46: 4798 blx r3
ext->pivot.y = 0;
14a48: f04f 7380 mov.w r3, #16777216 ; 0x1000000
14a4c: 6123 str r3, [r4, #16]
ext->auto_size = 1;
14a4e: 8aa3 ldrh r3, [r4, #20]
lv_obj_set_signal_cb(img, lv_img_signal);
14a50: 4936 ldr r1, [pc, #216] ; (14b2c <lv_img_create+0x184>)
ext->h = lv_obj_get_height(img);
14a52: 8160 strh r0, [r4, #10]
ext->auto_size = 1;
14a54: f443 7382 orr.w r3, r3, #260 ; 0x104
14a58: 82a3 strh r3, [r4, #20]
lv_obj_set_signal_cb(img, lv_img_signal);
14a5a: 4628 mov r0, r5
14a5c: 4b34 ldr r3, [pc, #208] ; (14b30 <lv_img_create+0x188>)
ext->offset.x = 0;
14a5e: f8c4 8004 str.w r8, [r4, #4]
ext->angle = 0;
14a62: f8c4 800c str.w r8, [r4, #12]
lv_obj_set_signal_cb(img, lv_img_signal);
14a66: 4798 blx r3
lv_obj_set_design_cb(img, lv_img_design);
14a68: 4932 ldr r1, [pc, #200] ; (14b34 <lv_img_create+0x18c>)
14a6a: 4b33 ldr r3, [pc, #204] ; (14b38 <lv_img_create+0x190>)
14a6c: 4628 mov r0, r5
14a6e: 4798 blx r3
if(copy == NULL) {
14a70: b9e6 cbnz r6, 14aac <lv_img_create+0x104>
lv_theme_apply(img, LV_THEME_IMAGE);
14a72: 4b32 ldr r3, [pc, #200] ; (14b3c <lv_img_create+0x194>)
14a74: 210f movs r1, #15
14a76: 4628 mov r0, r5
14a78: 4798 blx r3
lv_obj_set_click(img, false);
14a7a: 4b31 ldr r3, [pc, #196] ; (14b40 <lv_img_create+0x198>)
14a7c: 4631 mov r1, r6
14a7e: 4628 mov r0, r5
14a80: 4798 blx r3
lv_obj_set_adv_hittest(img, true); /*Images have fast hit-testing*/
14a82: 4b30 ldr r3, [pc, #192] ; (14b44 <lv_img_create+0x19c>)
14a84: 2101 movs r1, #1
14a86: 4628 mov r0, r5
14a88: 4798 blx r3
if(par != NULL) {
14a8a: 7d23 ldrb r3, [r4, #20]
14a8c: b15f cbz r7, 14aa6 <lv_img_create+0xfe>
ext->auto_size = 1;
14a8e: f043 0304 orr.w r3, r3, #4
ext->auto_size = 0;
14a92: 7523 strb r3, [r4, #20]
LV_LOG_INFO("image created");
14a94: 4b2c ldr r3, [pc, #176] ; (14b48 <lv_img_create+0x1a0>)
14a96: 9300 str r3, [sp, #0]
14a98: 491a ldr r1, [pc, #104] ; (14b04 <lv_img_create+0x15c>)
14a9a: 4b19 ldr r3, [pc, #100] ; (14b00 <lv_img_create+0x158>)
14a9c: 4c1a ldr r4, [pc, #104] ; (14b08 <lv_img_create+0x160>)
14a9e: 227f movs r2, #127 ; 0x7f
14aa0: 2001 movs r0, #1
14aa2: 47a0 blx r4
return img;
14aa4: e7bd b.n 14a22 <lv_img_create+0x7a>
ext->auto_size = 0;
14aa6: f367 0382 bfi r3, r7, #2, #1
14aaa: e7f2 b.n 14a92 <lv_img_create+0xea>
lv_img_ext_t * copy_ext = lv_obj_get_ext_attr(copy);
14aac: 4b27 ldr r3, [pc, #156] ; (14b4c <lv_img_create+0x1a4>)
14aae: 4630 mov r0, r6
14ab0: 4798 blx r3
ext->auto_size = copy_ext->auto_size;
14ab2: 7d03 ldrb r3, [r0, #20]
14ab4: 7d22 ldrb r2, [r4, #20]
14ab6: f3c3 0380 ubfx r3, r3, #2, #1
14aba: f363 0282 bfi r2, r3, #2, #1
14abe: 7522 strb r2, [r4, #20]
ext->zoom = copy_ext->zoom;
14ac0: 8a43 ldrh r3, [r0, #18]
14ac2: 8263 strh r3, [r4, #18]
ext->angle = copy_ext->angle;
14ac4: 8983 ldrh r3, [r0, #12]
ext->antialias = copy_ext->antialias;
14ac6: 7d42 ldrb r2, [r0, #21]
ext->angle = copy_ext->angle;
14ac8: 81a3 strh r3, [r4, #12]
ext->antialias = copy_ext->antialias;
14aca: 7d63 ldrb r3, [r4, #21]
14acc: f362 0300 bfi r3, r2, #0, #1
14ad0: 7563 strb r3, [r4, #21]
ext->offset.x = copy_ext->offset.x;
14ad2: f9b0 3004 ldrsh.w r3, [r0, #4]
14ad6: 80a3 strh r3, [r4, #4]
ext->offset.y = copy_ext->offset.y;
14ad8: f9b0 3006 ldrsh.w r3, [r0, #6]
14adc: 80e3 strh r3, [r4, #6]
ext->pivot.x = copy_ext->pivot.x;
14ade: f9b0 300e ldrsh.w r3, [r0, #14]
14ae2: 81e3 strh r3, [r4, #14]
ext->pivot.y = copy_ext->pivot.y;
14ae4: f9b0 3010 ldrsh.w r3, [r0, #16]
lv_img_set_src(img, copy_ext->src);
14ae8: 6801 ldr r1, [r0, #0]
ext->pivot.y = copy_ext->pivot.y;
14aea: 8223 strh r3, [r4, #16]
lv_img_set_src(img, copy_ext->src);
14aec: 4628 mov r0, r5
14aee: 4b18 ldr r3, [pc, #96] ; (14b50 <lv_img_create+0x1a8>)
14af0: 4798 blx r3
lv_obj_refresh_style(img, LV_STYLE_PROP_ALL);
14af2: 4b18 ldr r3, [pc, #96] ; (14b54 <lv_img_create+0x1ac>)
14af4: 21ff movs r1, #255 ; 0xff
14af6: 4628 mov r0, r5
14af8: 4798 blx r3
14afa: e7cb b.n 14a94 <lv_img_create+0xec>
14afc: 00003369 .word 0x00003369
14b00: 0002be48 .word 0x0002be48
14b04: 0002bcfc .word 0x0002bcfc
14b08: 0000eb79 .word 0x0000eb79
14b0c: 00026842 .word 0x00026842
14b10: 00001a6d .word 0x00001a6d
14b14: 200057c8 .word 0x200057c8
14b18: 000041e5 .word 0x000041e5
14b1c: 000022fd .word 0x000022fd
14b20: 000043e5 .word 0x000043e5
14b24: 00002671 .word 0x00002671
14b28: 000026c1 .word 0x000026c1
14b2c: 00014b5d .word 0x00014b5d
14b30: 00002261 .word 0x00002261
14b34: 00014299 .word 0x00014299
14b38: 000022b5 .word 0x000022b5
14b3c: 00010575 .word 0x00010575
14b40: 000020e1 .word 0x000020e1
14b44: 0000208d .word 0x0000208d
14b48: 0002bda0 .word 0x0002bda0
14b4c: 0000422d .word 0x0000422d
14b50: 00014755 .word 0x00014755
14b54: 00003015 .word 0x00003015
14b58: 00001a65 .word 0x00001a65
00014b5c <lv_img_signal>:
* @param sign a signal type from lv_signal_t enum
* @param param pointer to a signal specific variable
* @return LV_RES_OK: the object is not deleted in the function; LV_RES_INV: the object is deleted
*/
static lv_res_t lv_img_signal(lv_obj_t * img, lv_signal_t sign, void * param)
{
14b5c: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
lv_res_t res;
if(sign == LV_SIGNAL_GET_STYLE) {
14b60: 2908 cmp r1, #8
{
14b62: b085 sub sp, #20
14b64: 4604 mov r4, r0
14b66: 4689 mov r9, r1
14b68: 4616 mov r6, r2
if(sign == LV_SIGNAL_GET_STYLE) {
14b6a: d110 bne.n 14b8e <lv_img_signal+0x32>
static lv_style_list_t * lv_img_get_style(lv_obj_t * img, uint8_t type)
{
lv_style_list_t * style_dsc_p;
switch(type) {
14b6c: 7813 ldrb r3, [r2, #0]
14b6e: b13b cbz r3, 14b80 <lv_img_signal+0x24>
info->result = lv_img_get_style(img, info->part);
14b70: 2300 movs r3, #0
14b72: 6053 str r3, [r2, #4]
else return ancestor_signal(img, sign, param);
14b74: 4b83 ldr r3, [pc, #524] ; (14d84 <lv_img_signal+0x228>)
14b76: 681b ldr r3, [r3, #0]
}
14b78: b005 add sp, #20
14b7a: e8bd 43f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr}
else return ancestor_signal(img, sign, param);
14b7e: 4718 bx r3
case LV_IMG_PART_MAIN:
style_dsc_p = &img->style_list;
14b80: 3428 adds r4, #40 ; 0x28
info->result = lv_img_get_style(img, info->part);
14b82: 6054 str r4, [r2, #4]
if(info->result != NULL) return LV_RES_OK;
14b84: 2701 movs r7, #1
}
14b86: 4638 mov r0, r7
14b88: b005 add sp, #20
14b8a: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
res = ancestor_signal(img, sign, param);
14b8e: 4b7d ldr r3, [pc, #500] ; (14d84 <lv_img_signal+0x228>)
14b90: 681b ldr r3, [r3, #0]
14b92: 4798 blx r3
if(res != LV_RES_OK) return res;
14b94: 2801 cmp r0, #1
res = ancestor_signal(img, sign, param);
14b96: 4607 mov r7, r0
if(res != LV_RES_OK) return res;
14b98: d1f5 bne.n 14b86 <lv_img_signal+0x2a>
if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
14b9a: f1b9 0f07 cmp.w r9, #7
14b9e: d106 bne.n 14bae <lv_img_signal+0x52>
14ba0: 4979 ldr r1, [pc, #484] ; (14d88 <lv_img_signal+0x22c>)
14ba2: 4b7a ldr r3, [pc, #488] ; (14d8c <lv_img_signal+0x230>)
14ba4: 4630 mov r0, r6
}
14ba6: b005 add sp, #20
14ba8: e8bd 43f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr}
if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
14bac: 4718 bx r3
lv_img_ext_t * ext = lv_obj_get_ext_attr(img);
14bae: 4b78 ldr r3, [pc, #480] ; (14d90 <lv_img_signal+0x234>)
14bb0: 4620 mov r0, r4
14bb2: 4798 blx r3
14bb4: 4605 mov r5, r0
if(sign == LV_SIGNAL_CLEANUP) {
14bb6: f1b9 0f00 cmp.w r9, #0
14bba: d10f bne.n 14bdc <lv_img_signal+0x80>
if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) {
14bbc: 7d03 ldrb r3, [r0, #20]
14bbe: f003 0303 and.w r3, r3, #3
14bc2: 3b01 subs r3, #1
14bc4: 2b01 cmp r3, #1
14bc6: d8de bhi.n 14b86 <lv_img_signal+0x2a>
lv_mem_free(ext->src);
14bc8: 4b72 ldr r3, [pc, #456] ; (14d94 <lv_img_signal+0x238>)
14bca: 6800 ldr r0, [r0, #0]
14bcc: 4798 blx r3
ext->src_type = LV_IMG_SRC_UNKNOWN;
14bce: 7d2b ldrb r3, [r5, #20]
ext->src = NULL;
14bd0: f8c5 9000 str.w r9, [r5]
ext->src_type = LV_IMG_SRC_UNKNOWN;
14bd4: f043 0303 orr.w r3, r3, #3
14bd8: 752b strb r3, [r5, #20]
14bda: e7d4 b.n 14b86 <lv_img_signal+0x2a>
else if(sign == LV_SIGNAL_STYLE_CHG) {
14bdc: f1b9 0f04 cmp.w r9, #4
14be0: d109 bne.n 14bf6 <lv_img_signal+0x9a>
if(ext->src_type == LV_IMG_SRC_SYMBOL) {
14be2: 7d03 ldrb r3, [r0, #20]
14be4: f003 0303 and.w r3, r3, #3
14be8: 2b02 cmp r3, #2
14bea: d1cc bne.n 14b86 <lv_img_signal+0x2a>
lv_img_set_src(img, ext->src);
14bec: 6801 ldr r1, [r0, #0]
14bee: 4b6a ldr r3, [pc, #424] ; (14d98 <lv_img_signal+0x23c>)
14bf0: 4620 mov r0, r4
14bf2: 4798 blx r3
14bf4: e7c7 b.n 14b86 <lv_img_signal+0x2a>
else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) {
14bf6: f1b9 0f06 cmp.w r9, #6
14bfa: d16e bne.n 14cda <lv_img_signal+0x17e>
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar)
14bfc: 4e67 ldr r6, [pc, #412] ; (14d9c <lv_img_signal+0x240>)
14bfe: 2207 movs r2, #7
14c00: 2100 movs r1, #0
14c02: 4620 mov r0, r4
14c04: 47b0 blx r6
transf_zoom = (transf_zoom * ext->zoom) >> 8;
14c06: f8b5 8012 ldrh.w r8, [r5, #18]
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ANGLE, transform_angle, lv_style_int_t, _int, scalar)
14c0a: 464a mov r2, r9
14c0c: fb00 f808 mul.w r8, r0, r8
14c10: 2100 movs r1, #0
14c12: 4620 mov r0, r4
14c14: 47b0 blx r6
transf_angle += ext->angle;
14c16: 89ab ldrh r3, [r5, #12]
14c18: 4418 add r0, r3
14c1a: b203 sxth r3, r0
transf_zoom = (transf_zoom * ext->zoom) >> 8;
14c1c: ea4f 2828 mov.w r8, r8, asr #8
if(transf_angle || transf_zoom != LV_IMG_ZOOM_NONE) {
14c20: b923 cbnz r3, 14c2c <lv_img_signal+0xd0>
14c22: fa0f f288 sxth.w r2, r8
14c26: f5b2 7f80 cmp.w r2, #256 ; 0x100
14c2a: d031 beq.n 14c90 <lv_img_signal+0x134>
_lv_img_buf_get_transformed_area(&a, ext->w, ext->h, transf_angle, transf_zoom, &ext->pivot);
14c2c: f105 000e add.w r0, r5, #14
14c30: f9b5 200a ldrsh.w r2, [r5, #10]
14c34: f9b5 1008 ldrsh.w r1, [r5, #8]
14c38: 9001 str r0, [sp, #4]
14c3a: fa1f f088 uxth.w r0, r8
14c3e: 9000 str r0, [sp, #0]
14c40: f8df 8164 ldr.w r8, [pc, #356] ; 14da8 <lv_img_signal+0x24c>
14c44: a802 add r0, sp, #8
14c46: 47c0 blx r8
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.x1);
14c48: f9b4 1032 ldrsh.w r1, [r4, #50] ; 0x32
14c4c: f9bd 3008 ldrsh.w r3, [sp, #8]
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.y1);
14c50: f9bd 200a ldrsh.w r2, [sp, #10]
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori + a.x2 - ext->w);
14c54: f9b5 0008 ldrsh.w r0, [r5, #8]
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.x1);
14c58: 1acb subs r3, r1, r3
14c5a: 428b cmp r3, r1
14c5c: bfb8 it lt
14c5e: 460b movlt r3, r1
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.y1);
14c60: 1a8a subs r2, r1, r2
14c62: b21b sxth r3, r3
14c64: 4293 cmp r3, r2
14c66: bfb8 it lt
14c68: 4613 movlt r3, r2
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori + a.x2 - ext->w);
14c6a: f9bd 200c ldrsh.w r2, [sp, #12]
14c6e: 440a add r2, r1
14c70: b21b sxth r3, r3
14c72: 1a12 subs r2, r2, r0
14c74: 4293 cmp r3, r2
14c76: bfb8 it lt
14c78: 4613 movlt r3, r2
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori + a.y2 - ext->h);
14c7a: f9bd 200e ldrsh.w r2, [sp, #14]
14c7e: 440a add r2, r1
14c80: f9b5 100a ldrsh.w r1, [r5, #10]
14c84: b21b sxth r3, r3
14c86: 1a52 subs r2, r2, r1
14c88: 4293 cmp r3, r2
14c8a: bfb8 it lt
14c8c: 4613 movlt r3, r2
14c8e: 8663 strh r3, [r4, #50] ; 0x32
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
14c90: 2212 movs r2, #18
14c92: 2100 movs r1, #0
14c94: 4620 mov r0, r4
14c96: 47b0 blx r6
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14c98: 2213 movs r2, #19
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
14c9a: 4681 mov r9, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14c9c: 2100 movs r1, #0
14c9e: 4620 mov r0, r4
14ca0: 47b0 blx r6
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14ca2: 2210 movs r2, #16
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14ca4: 4605 mov r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14ca6: 2100 movs r1, #0
14ca8: 4620 mov r0, r4
14caa: 47b0 blx r6
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
14cac: 2211 movs r2, #17
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14cae: 4680 mov r8, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
14cb0: 2100 movs r1, #0
14cb2: 4620 mov r0, r4
14cb4: 47b0 blx r6
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, right);
14cb6: 454d cmp r5, r9
14cb8: f9b4 3032 ldrsh.w r3, [r4, #50] ; 0x32
14cbc: bfb8 it lt
14cbe: 464d movlt r5, r9
14cc0: b22d sxth r5, r5
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, top);
14cc2: 42ab cmp r3, r5
14cc4: bfb8 it lt
14cc6: 462b movlt r3, r5
14cc8: 4543 cmp r3, r8
14cca: bfb8 it lt
14ccc: 4643 movlt r3, r8
img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, bottom);
14cce: b21b sxth r3, r3
14cd0: 4298 cmp r0, r3
14cd2: bfb8 it lt
14cd4: 4618 movlt r0, r3
14cd6: 8660 strh r0, [r4, #50] ; 0x32
14cd8: e755 b.n 14b86 <lv_img_signal+0x2a>
else if(sign == LV_SIGNAL_HIT_TEST) {
14cda: f1b9 0f0a cmp.w r9, #10
14cde: f47f af52 bne.w 14b86 <lv_img_signal+0x2a>
if(ext->zoom != 256 && ext->angle == 0) {
14ce2: f8b0 c012 ldrh.w ip, [r0, #18]
14ce6: f5bc 7f80 cmp.w ip, #256 ; 0x100
14cea: d045 beq.n 14d78 <lv_img_signal+0x21c>
14cec: 8983 ldrh r3, [r0, #12]
14cee: 2b00 cmp r3, #0
14cf0: d142 bne.n 14d78 <lv_img_signal+0x21c>
14cf2: 8aa5 ldrh r5, [r4, #20]
14cf4: 8a23 ldrh r3, [r4, #16]
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
14cf6: 8a62 ldrh r2, [r4, #18]
{
uint8_t * d8 = (uint8_t *)dst;
const uint8_t * s8 = (const uint8_t *)src;
while(len) {
*d8 = *s8;
14cf8: 6920 ldr r0, [r4, #16]
14cfa: 6961 ldr r1, [r4, #20]
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
14cfc: 3501 adds r5, #1
14cfe: 1aed subs r5, r5, r3
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
14d00: 8ae3 ldrh r3, [r4, #22]
14d02: 3301 adds r3, #1
lv_coord_t scaled_width = (origin_width * ext->zoom + 255) / 256;
14d04: b22d sxth r5, r5
14d06: 1a9b subs r3, r3, r2
14d08: aa02 add r2, sp, #8
14d0a: c203 stmia r2!, {r0, r1}
14d0c: fb0c f205 mul.w r2, ip, r5
14d10: 32ff adds r2, #255 ; 0xff
14d12: bf48 it mi
14d14: 32ff addmi r2, #255 ; 0xff
lv_coord_t width_offset = (origin_width - scaled_width) / 2;
14d16: f342 220f sbfx r2, r2, #8, #16
14d1a: 1aad subs r5, r5, r2
14d1c: eb05 75d5 add.w r5, r5, r5, lsr #31
coords.x1 += width_offset;
14d20: f8bd 2008 ldrh.w r2, [sp, #8]
info->result = _lv_area_is_point_on(&coords, info->point, 0);
14d24: 6831 ldr r1, [r6, #0]
coords.x1 += width_offset;
14d26: f3c5 054f ubfx r5, r5, #1, #16
14d2a: 442a add r2, r5
14d2c: f8ad 2008 strh.w r2, [sp, #8]
coords.x2 -= width_offset;
14d30: f8bd 200c ldrh.w r2, [sp, #12]
lv_coord_t scaled_height = (origin_height * ext->zoom + 255) / 256;
14d34: b21b sxth r3, r3
14d36: fb03 fc0c mul.w ip, r3, ip
coords.x2 -= width_offset;
14d3a: 1b52 subs r2, r2, r5
14d3c: f8ad 200c strh.w r2, [sp, #12]
lv_coord_t scaled_height = (origin_height * ext->zoom + 255) / 256;
14d40: f11c 02ff adds.w r2, ip, #255 ; 0xff
14d44: bf48 it mi
14d46: f50c 72ff addmi.w r2, ip, #510 ; 0x1fe
lv_coord_t height_offset = (origin_height - scaled_height) / 2;
14d4a: f342 220f sbfx r2, r2, #8, #16
14d4e: 1a9b subs r3, r3, r2
14d50: eb03 73d3 add.w r3, r3, r3, lsr #31
coords.y1 += height_offset;
14d54: f8bd 200a ldrh.w r2, [sp, #10]
14d58: f3c3 034f ubfx r3, r3, #1, #16
14d5c: 441a add r2, r3
14d5e: f8ad 200a strh.w r2, [sp, #10]
coords.y2 -= height_offset;
14d62: f8bd 200e ldrh.w r2, [sp, #14]
14d66: 1ad3 subs r3, r2, r3
14d68: f8ad 300e strh.w r3, [sp, #14]
info->result = _lv_area_is_point_on(&coords, info->point, 0);
14d6c: 2200 movs r2, #0
14d6e: 4b0c ldr r3, [pc, #48] ; (14da0 <lv_img_signal+0x244>)
14d70: a802 add r0, sp, #8
14d72: 4798 blx r3
info->result = lv_obj_is_point_on_coords(img, info->point);
14d74: 7130 strb r0, [r6, #4]
14d76: e706 b.n 14b86 <lv_img_signal+0x2a>
14d78: 6831 ldr r1, [r6, #0]
14d7a: 4b0a ldr r3, [pc, #40] ; (14da4 <lv_img_signal+0x248>)
14d7c: 4620 mov r0, r4
14d7e: 4798 blx r3
14d80: e7f8 b.n 14d74 <lv_img_signal+0x218>
14d82: bf00 nop
14d84: 200057c8 .word 0x200057c8
14d88: 0002bdae .word 0x0002bdae
14d8c: 00004511 .word 0x00004511
14d90: 0000422d .word 0x0000422d
14d94: 0000ed75 .word 0x0000ed75
14d98: 00014755 .word 0x00014755
14d9c: 00003995 .word 0x00003995
14da0: 0000e1a9 .word 0x0000e1a9
14da4: 000044d5 .word 0x000044d5
14da8: 0000c2e5 .word 0x0000c2e5
00014dac <lv_label_dot_tmp_free>:
* Free the dot_tmp_ptr field if it was previously allocated.
* Always clears the field
* @param label pointer to label object.
*/
static void lv_label_dot_tmp_free(lv_obj_t * label)
{
14dac: b510 push {r4, lr}
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14dae: 4b08 ldr r3, [pc, #32] ; (14dd0 <lv_label_dot_tmp_free+0x24>)
14db0: 4798 blx r3
if(ext->dot_tmp_alloc && ext->dot.tmp_ptr) {
14db2: 7c43 ldrb r3, [r0, #17]
14db4: 07db lsls r3, r3, #31
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14db6: 4604 mov r4, r0
if(ext->dot_tmp_alloc && ext->dot.tmp_ptr) {
14db8: d503 bpl.n 14dc2 <lv_label_dot_tmp_free+0x16>
14dba: 6840 ldr r0, [r0, #4]
14dbc: b108 cbz r0, 14dc2 <lv_label_dot_tmp_free+0x16>
lv_mem_free(ext->dot.tmp_ptr);
14dbe: 4b05 ldr r3, [pc, #20] ; (14dd4 <lv_label_dot_tmp_free+0x28>)
14dc0: 4798 blx r3
}
ext->dot_tmp_alloc = false;
14dc2: 7c63 ldrb r3, [r4, #17]
14dc4: f36f 0300 bfc r3, #0, #1
14dc8: 7463 strb r3, [r4, #17]
ext->dot.tmp_ptr = NULL;
14dca: 2300 movs r3, #0
14dcc: 6063 str r3, [r4, #4]
}
14dce: bd10 pop {r4, pc}
14dd0: 0000422d .word 0x0000422d
14dd4: 0000ed75 .word 0x0000ed75
00014dd8 <lv_label_revert_dots>:
{
14dd8: b5f8 push {r3, r4, r5, r6, r7, lr}
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14dda: 4e1a ldr r6, [pc, #104] ; (14e44 <lv_label_revert_dots+0x6c>)
{
14ddc: 4605 mov r5, r0
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14dde: 47b0 blx r6
if(ext->long_mode != LV_LABEL_LONG_DOT) return;
14de0: 7c03 ldrb r3, [r0, #16]
14de2: f003 0307 and.w r3, r3, #7
14de6: 2b02 cmp r3, #2
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14de8: 4604 mov r4, r0
if(ext->long_mode != LV_LABEL_LONG_DOT) return;
14dea: d128 bne.n 14e3e <lv_label_revert_dots+0x66>
if(ext->dot_end == LV_LABEL_DOT_END_INV) return;
14dec: 8901 ldrh r1, [r0, #8]
14dee: f64f 73ff movw r3, #65535 ; 0xffff
14df2: 4299 cmp r1, r3
14df4: d023 beq.n 14e3e <lv_label_revert_dots+0x66>
uint32_t byte_i = _lv_txt_encoded_get_byte_id(ext->text, letter_i);
14df6: 4b14 ldr r3, [pc, #80] ; (14e48 <lv_label_revert_dots+0x70>)
14df8: 6800 ldr r0, [r0, #0]
14dfa: 681b ldr r3, [r3, #0]
14dfc: 3903 subs r1, #3
14dfe: 4798 blx r3
14e00: 4607 mov r7, r0
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14e02: 4628 mov r0, r5
14e04: 47b0 blx r6
if(ext->dot_tmp_alloc) {
14e06: 7c42 ldrb r2, [r0, #17]
14e08: 07d2 lsls r2, r2, #31
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14e0a: 4603 mov r3, r0
return ext->dot.tmp_ptr;
14e0c: bf4c ite mi
14e0e: 6843 ldrmi r3, [r0, #4]
return ext->dot.tmp;
14e10: 3304 addpl r3, #4
while(ext->text[byte_i + i] != '\0') {
14e12: 2200 movs r2, #0
14e14: fa57 f182 uxtab r1, r7, r2
14e18: 6826 ldr r6, [r4, #0]
14e1a: b2d0 uxtb r0, r2
14e1c: f816 e001 ldrb.w lr, [r6, r1]
ext->text[byte_i + i] = dot_tmp[i];
14e20: 5c18 ldrb r0, [r3, r0]
while(ext->text[byte_i + i] != '\0') {
14e22: eb06 0c01 add.w ip, r6, r1
14e26: 3201 adds r2, #1
14e28: f1be 0f00 cmp.w lr, #0
14e2c: d108 bne.n 14e40 <lv_label_revert_dots+0x68>
lv_label_dot_tmp_free(label);
14e2e: 4b07 ldr r3, [pc, #28] ; (14e4c <lv_label_revert_dots+0x74>)
ext->text[byte_i + i] = dot_tmp[i];
14e30: f88c 0000 strb.w r0, [ip]
lv_label_dot_tmp_free(label);
14e34: 4628 mov r0, r5
14e36: 4798 blx r3
ext->dot_end = LV_LABEL_DOT_END_INV;
14e38: f64f 73ff movw r3, #65535 ; 0xffff
14e3c: 8123 strh r3, [r4, #8]
}
14e3e: bdf8 pop {r3, r4, r5, r6, r7, pc}
ext->text[byte_i + i] = dot_tmp[i];
14e40: 5470 strb r0, [r6, r1]
i++;
14e42: e7e7 b.n 14e14 <lv_label_revert_dots+0x3c>
14e44: 0000422d .word 0x0000422d
14e48: 20000050 .word 0x20000050
14e4c: 00014dad .word 0x00014dad
00014e50 <lv_label_set_offset_y>:
{
14e50: b570 push {r4, r5, r6, lr}
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14e52: 4b05 ldr r3, [pc, #20] ; (14e68 <lv_label_set_offset_y+0x18>)
{
14e54: 4604 mov r4, r0
14e56: 460d mov r5, r1
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14e58: 4798 blx r3
lv_obj_invalidate(label);
14e5a: 4b04 ldr r3, [pc, #16] ; (14e6c <lv_label_set_offset_y+0x1c>)
ext->offset.y = y;
14e5c: 81c5 strh r5, [r0, #14]
lv_obj_invalidate(label);
14e5e: 4620 mov r0, r4
}
14e60: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_invalidate(label);
14e64: 4718 bx r3
14e66: bf00 nop
14e68: 0000422d .word 0x0000422d
14e6c: 00002a09 .word 0x00002a09
00014e70 <lv_label_set_offset_x>:
{
14e70: b570 push {r4, r5, r6, lr}
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14e72: 4b05 ldr r3, [pc, #20] ; (14e88 <lv_label_set_offset_x+0x18>)
{
14e74: 4604 mov r4, r0
14e76: 460d mov r5, r1
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14e78: 4798 blx r3
lv_obj_invalidate(label);
14e7a: 4b04 ldr r3, [pc, #16] ; (14e8c <lv_label_set_offset_x+0x1c>)
ext->offset.x = x;
14e7c: 8185 strh r5, [r0, #12]
lv_obj_invalidate(label);
14e7e: 4620 mov r0, r4
}
14e80: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_invalidate(label);
14e84: 4718 bx r3
14e86: bf00 nop
14e88: 0000422d .word 0x0000422d
14e8c: 00002a09 .word 0x00002a09
00014e90 <lv_label_set_dot_tmp>:
{
14e90: b57f push {r0, r1, r2, r3, r4, r5, r6, lr}
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14e92: 4b1a ldr r3, [pc, #104] ; (14efc <lv_label_set_dot_tmp+0x6c>)
{
14e94: 9103 str r1, [sp, #12]
14e96: 4616 mov r6, r2
14e98: 4604 mov r4, r0
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14e9a: 4798 blx r3
lv_label_dot_tmp_free(label); /* Deallocate any existing space */
14e9c: 4b18 ldr r3, [pc, #96] ; (14f00 <lv_label_set_dot_tmp+0x70>)
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14e9e: 4605 mov r5, r0
lv_label_dot_tmp_free(label); /* Deallocate any existing space */
14ea0: 4620 mov r0, r4
14ea2: 4798 blx r3
if(len > sizeof(char *)) {
14ea4: 2e04 cmp r6, #4
14ea6: 9903 ldr r1, [sp, #12]
14ea8: d91e bls.n 14ee8 <lv_label_set_dot_tmp+0x58>
ext->dot.tmp_ptr = lv_mem_alloc(len + 1);
14eaa: 4b16 ldr r3, [pc, #88] ; (14f04 <lv_label_set_dot_tmp+0x74>)
14eac: 1c70 adds r0, r6, #1
14eae: 4798 blx r3
if(ext->dot.tmp_ptr == NULL) {
14eb0: 9903 ldr r1, [sp, #12]
ext->dot.tmp_ptr = lv_mem_alloc(len + 1);
14eb2: 6068 str r0, [r5, #4]
14eb4: 4604 mov r4, r0
if(ext->dot.tmp_ptr == NULL) {
14eb6: b958 cbnz r0, 14ed0 <lv_label_set_dot_tmp+0x40>
LV_LOG_ERROR("Failed to allocate memory for dot_tmp_ptr");
14eb8: 4b13 ldr r3, [pc, #76] ; (14f08 <lv_label_set_dot_tmp+0x78>)
14eba: 9300 str r3, [sp, #0]
14ebc: 2003 movs r0, #3
14ebe: 4b13 ldr r3, [pc, #76] ; (14f0c <lv_label_set_dot_tmp+0x7c>)
14ec0: 4913 ldr r1, [pc, #76] ; (14f10 <lv_label_set_dot_tmp+0x80>)
14ec2: 4d14 ldr r5, [pc, #80] ; (14f14 <lv_label_set_dot_tmp+0x84>)
14ec4: f240 52b5 movw r2, #1461 ; 0x5b5
14ec8: 47a8 blx r5
return false;
14eca: 4620 mov r0, r4
}
14ecc: b004 add sp, #16
14ece: bd70 pop {r4, r5, r6, pc}
_lv_memcpy(ext->dot.tmp_ptr, data, len);
14ed0: 4b11 ldr r3, [pc, #68] ; (14f18 <lv_label_set_dot_tmp+0x88>)
14ed2: 4632 mov r2, r6
14ed4: 4798 blx r3
ext->dot.tmp_ptr[len] = '\0';
14ed6: 686b ldr r3, [r5, #4]
14ed8: 2200 movs r2, #0
14eda: 559a strb r2, [r3, r6]
ext->dot_tmp_alloc = true;
14edc: 7c6b ldrb r3, [r5, #17]
14ede: f043 0301 orr.w r3, r3, #1
14ee2: 746b strb r3, [r5, #17]
return true;
14ee4: 2001 movs r0, #1
14ee6: e7f1 b.n 14ecc <lv_label_set_dot_tmp+0x3c>
ext->dot_tmp_alloc = false;
14ee8: 7c6b ldrb r3, [r5, #17]
14eea: f36f 0300 bfc r3, #0, #1
14eee: 746b strb r3, [r5, #17]
_lv_memcpy(ext->dot.tmp, data, len);
14ef0: 4632 mov r2, r6
14ef2: 4b09 ldr r3, [pc, #36] ; (14f18 <lv_label_set_dot_tmp+0x88>)
14ef4: 1d28 adds r0, r5, #4
14ef6: 4798 blx r3
14ef8: e7f4 b.n 14ee4 <lv_label_set_dot_tmp+0x54>
14efa: bf00 nop
14efc: 0000422d .word 0x0000422d
14f00: 00014dad .word 0x00014dad
14f04: 0000ecbd .word 0x0000ecbd
14f08: 0002bef9 .word 0x0002bef9
14f0c: 0002bf3f .word 0x0002bf3f
14f10: 0002bec5 .word 0x0002bec5
14f14: 0000eb79 .word 0x0000eb79
14f18: 0000eec1 .word 0x0000eec1
00014f1c <get_txt_coords>:
static void get_txt_coords(const lv_obj_t * label, lv_area_t * area)
{
14f1c: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
lv_obj_get_coords(label, area);
14f20: 4b13 ldr r3, [pc, #76] ; (14f70 <get_txt_coords+0x54>)
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
14f22: f8df 8050 ldr.w r8, [pc, #80] ; 14f74 <get_txt_coords+0x58>
{
14f26: 4605 mov r5, r0
14f28: 460c mov r4, r1
lv_obj_get_coords(label, area);
14f2a: 4798 blx r3
14f2c: 2212 movs r2, #18
14f2e: 2100 movs r1, #0
14f30: 4628 mov r0, r5
14f32: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14f34: 2213 movs r2, #19
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
14f36: 4607 mov r7, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14f38: 2100 movs r1, #0
14f3a: 4628 mov r0, r5
14f3c: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14f3e: 2210 movs r2, #16
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
14f40: 4681 mov r9, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14f42: 2100 movs r1, #0
14f44: 4628 mov r0, r5
14f46: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
14f48: 2211 movs r2, #17
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
14f4a: 4606 mov r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
14f4c: 2100 movs r1, #0
14f4e: 4628 mov r0, r5
14f50: 47c0 blx r8
lv_coord_t left = lv_obj_get_style_pad_left(label, LV_LABEL_PART_MAIN);
lv_coord_t right = lv_obj_get_style_pad_right(label, LV_LABEL_PART_MAIN);
lv_coord_t top = lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN);
lv_coord_t bottom = lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
area->x1 += left;
14f52: 8823 ldrh r3, [r4, #0]
14f54: 441f add r7, r3
area->x2 -= right;
14f56: 88a3 ldrh r3, [r4, #4]
area->x1 += left;
14f58: 8027 strh r7, [r4, #0]
area->x2 -= right;
14f5a: eba3 0309 sub.w r3, r3, r9
14f5e: 80a3 strh r3, [r4, #4]
area->y1 += top;
14f60: 8863 ldrh r3, [r4, #2]
14f62: 441e add r6, r3
area->y2 -= bottom;
14f64: 88e3 ldrh r3, [r4, #6]
area->y1 += top;
14f66: 8066 strh r6, [r4, #2]
area->y2 -= bottom;
14f68: 1a18 subs r0, r3, r0
14f6a: 80e0 strh r0, [r4, #6]
}
14f6c: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
14f70: 00002559 .word 0x00002559
14f74: 00003995 .word 0x00003995
00014f78 <lv_label_set_align>:
{
14f78: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14f7a: 4b13 ldr r3, [pc, #76] ; (14fc8 <lv_label_set_align+0x50>)
{
14f7c: 4604 mov r4, r0
14f7e: 460d mov r5, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14f80: 4798 blx r3
14f82: 4606 mov r6, r0
14f84: b968 cbnz r0, 14fa2 <lv_label_set_align+0x2a>
14f86: 4b11 ldr r3, [pc, #68] ; (14fcc <lv_label_set_align+0x54>)
14f88: 4911 ldr r1, [pc, #68] ; (14fd0 <lv_label_set_align+0x58>)
14f8a: 9300 str r3, [sp, #0]
14f8c: f44f 72c4 mov.w r2, #392 ; 0x188
14f90: 2003 movs r0, #3
14f92: 4d10 ldr r5, [pc, #64] ; (14fd4 <lv_label_set_align+0x5c>)
14f94: 47a8 blx r5
14f96: 4810 ldr r0, [pc, #64] ; (14fd8 <lv_label_set_align+0x60>)
14f98: 4910 ldr r1, [pc, #64] ; (14fdc <lv_label_set_align+0x64>)
14f9a: 4622 mov r2, r4
14f9c: 4633 mov r3, r6
14f9e: 4788 blx r1
14fa0: e7fe b.n 14fa0 <lv_label_set_align+0x28>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
14fa2: 4b0f ldr r3, [pc, #60] ; (14fe0 <lv_label_set_align+0x68>)
14fa4: 4620 mov r0, r4
14fa6: 4798 blx r3
if(ext->align == align) return;
14fa8: 7c03 ldrb r3, [r0, #16]
14faa: f3c3 1201 ubfx r2, r3, #4, #2
14fae: 42aa cmp r2, r5
14fb0: d008 beq.n 14fc4 <lv_label_set_align+0x4c>
ext->align = align;
14fb2: f365 1305 bfi r3, r5, #4, #2
14fb6: 7403 strb r3, [r0, #16]
lv_obj_invalidate(label); /*Enough to invalidate because alignment is only drawing related
14fb8: 4b0a ldr r3, [pc, #40] ; (14fe4 <lv_label_set_align+0x6c>)
14fba: 4620 mov r0, r4
}
14fbc: b002 add sp, #8
14fbe: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_obj_invalidate(label); /*Enough to invalidate because alignment is only drawing related
14fc2: 4718 bx r3
}
14fc4: b002 add sp, #8
14fc6: bd70 pop {r4, r5, r6, pc}
14fc8: 00001a65 .word 0x00001a65
14fcc: 0002bf54 .word 0x0002bf54
14fd0: 0002bec5 .word 0x0002bec5
14fd4: 0000eb79 .word 0x0000eb79
14fd8: 00026943 .word 0x00026943
14fdc: 00001a6d .word 0x00001a6d
14fe0: 0000422d .word 0x0000422d
14fe4: 00002a09 .word 0x00002a09
00014fe8 <lv_label_get_text>:
{
14fe8: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14fea: 4b0c ldr r3, [pc, #48] ; (1501c <lv_label_get_text+0x34>)
{
14fec: 4604 mov r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
14fee: 4798 blx r3
14ff0: 4605 mov r5, r0
14ff2: b968 cbnz r0, 15010 <lv_label_get_text+0x28>
14ff4: 4b0a ldr r3, [pc, #40] ; (15020 <lv_label_get_text+0x38>)
14ff6: 490b ldr r1, [pc, #44] ; (15024 <lv_label_get_text+0x3c>)
14ff8: 9300 str r3, [sp, #0]
14ffa: f44f 72f2 mov.w r2, #484 ; 0x1e4
14ffe: 2003 movs r0, #3
15000: 4e09 ldr r6, [pc, #36] ; (15028 <lv_label_get_text+0x40>)
15002: 47b0 blx r6
15004: 4809 ldr r0, [pc, #36] ; (1502c <lv_label_get_text+0x44>)
15006: 490a ldr r1, [pc, #40] ; (15030 <lv_label_get_text+0x48>)
15008: 4622 mov r2, r4
1500a: 462b mov r3, r5
1500c: 4788 blx r1
1500e: e7fe b.n 1500e <lv_label_get_text+0x26>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15010: 4b08 ldr r3, [pc, #32] ; (15034 <lv_label_get_text+0x4c>)
15012: 4620 mov r0, r4
15014: 4798 blx r3
}
15016: 6800 ldr r0, [r0, #0]
15018: b002 add sp, #8
1501a: bd70 pop {r4, r5, r6, pc}
1501c: 00001a65 .word 0x00001a65
15020: 0002bf9d .word 0x0002bf9d
15024: 0002bec5 .word 0x0002bec5
15028: 0000eb79 .word 0x0000eb79
1502c: 00026943 .word 0x00026943
15030: 00001a6d .word 0x00001a6d
15034: 0000422d .word 0x0000422d
00015038 <lv_label_get_long_mode>:
{
15038: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1503a: 4b0d ldr r3, [pc, #52] ; (15070 <lv_label_get_long_mode+0x38>)
{
1503c: 4604 mov r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1503e: 4798 blx r3
15040: 4605 mov r5, r0
15042: b968 cbnz r0, 15060 <lv_label_get_long_mode+0x28>
15044: 4b0b ldr r3, [pc, #44] ; (15074 <lv_label_get_long_mode+0x3c>)
15046: 490c ldr r1, [pc, #48] ; (15078 <lv_label_get_long_mode+0x40>)
15048: 9300 str r3, [sp, #0]
1504a: f44f 72f9 mov.w r2, #498 ; 0x1f2
1504e: 2003 movs r0, #3
15050: 4e0a ldr r6, [pc, #40] ; (1507c <lv_label_get_long_mode+0x44>)
15052: 47b0 blx r6
15054: 480a ldr r0, [pc, #40] ; (15080 <lv_label_get_long_mode+0x48>)
15056: 490b ldr r1, [pc, #44] ; (15084 <lv_label_get_long_mode+0x4c>)
15058: 4622 mov r2, r4
1505a: 462b mov r3, r5
1505c: 4788 blx r1
1505e: e7fe b.n 1505e <lv_label_get_long_mode+0x26>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15060: 4b09 ldr r3, [pc, #36] ; (15088 <lv_label_get_long_mode+0x50>)
15062: 4620 mov r0, r4
15064: 4798 blx r3
return ext->long_mode;
15066: 7c00 ldrb r0, [r0, #16]
}
15068: f000 0007 and.w r0, r0, #7
1506c: b002 add sp, #8
1506e: bd70 pop {r4, r5, r6, pc}
15070: 00001a65 .word 0x00001a65
15074: 0002bfaf .word 0x0002bfaf
15078: 0002bec5 .word 0x0002bec5
1507c: 0000eb79 .word 0x0000eb79
15080: 00026943 .word 0x00026943
15084: 00001a6d .word 0x00001a6d
15088: 0000422d .word 0x0000422d
0001508c <lv_label_get_align>:
{
1508c: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1508e: 4b0f ldr r3, [pc, #60] ; (150cc <lv_label_get_align+0x40>)
{
15090: 4604 mov r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15092: 4798 blx r3
15094: 4605 mov r5, r0
15096: b968 cbnz r0, 150b4 <lv_label_get_align+0x28>
15098: 4b0d ldr r3, [pc, #52] ; (150d0 <lv_label_get_align+0x44>)
1509a: 490e ldr r1, [pc, #56] ; (150d4 <lv_label_get_align+0x48>)
1509c: 9300 str r3, [sp, #0]
1509e: f240 12ff movw r2, #511 ; 0x1ff
150a2: 2003 movs r0, #3
150a4: 4e0c ldr r6, [pc, #48] ; (150d8 <lv_label_get_align+0x4c>)
150a6: 47b0 blx r6
150a8: 480c ldr r0, [pc, #48] ; (150dc <lv_label_get_align+0x50>)
150aa: 490d ldr r1, [pc, #52] ; (150e0 <lv_label_get_align+0x54>)
150ac: 4622 mov r2, r4
150ae: 462b mov r3, r5
150b0: 4788 blx r1
150b2: e7fe b.n 150b2 <lv_label_get_align+0x26>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
150b4: 4b0b ldr r3, [pc, #44] ; (150e4 <lv_label_get_align+0x58>)
150b6: 4620 mov r0, r4
150b8: 4798 blx r3
lv_label_align_t align = ext->align;
150ba: 7c00 ldrb r0, [r0, #16]
150bc: f3c0 1001 ubfx r0, r0, #4, #2
align = LV_LABEL_ALIGN_LEFT;
150c0: 2803 cmp r0, #3
}
150c2: bf08 it eq
150c4: 2000 moveq r0, #0
150c6: b002 add sp, #8
150c8: bd70 pop {r4, r5, r6, pc}
150ca: bf00 nop
150cc: 00001a65 .word 0x00001a65
150d0: 0002bfc6 .word 0x0002bfc6
150d4: 0002bec5 .word 0x0002bec5
150d8: 0000eb79 .word 0x0000eb79
150dc: 00026943 .word 0x00026943
150e0: 00001a6d .word 0x00001a6d
150e4: 0000422d .word 0x0000422d
000150e8 <lv_label_get_recolor>:
{
150e8: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
150ea: 4b0d ldr r3, [pc, #52] ; (15120 <lv_label_get_recolor+0x38>)
{
150ec: 4604 mov r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
150ee: 4798 blx r3
150f0: 4605 mov r5, r0
150f2: b968 cbnz r0, 15110 <lv_label_get_recolor+0x28>
150f4: 4b0b ldr r3, [pc, #44] ; (15124 <lv_label_get_recolor+0x3c>)
150f6: 490c ldr r1, [pc, #48] ; (15128 <lv_label_get_recolor+0x40>)
150f8: 9300 str r3, [sp, #0]
150fa: f240 221b movw r2, #539 ; 0x21b
150fe: 2003 movs r0, #3
15100: 4e0a ldr r6, [pc, #40] ; (1512c <lv_label_get_recolor+0x44>)
15102: 47b0 blx r6
15104: 480a ldr r0, [pc, #40] ; (15130 <lv_label_get_recolor+0x48>)
15106: 490b ldr r1, [pc, #44] ; (15134 <lv_label_get_recolor+0x4c>)
15108: 4622 mov r2, r4
1510a: 462b mov r3, r5
1510c: 4788 blx r1
1510e: e7fe b.n 1510e <lv_label_get_recolor+0x26>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15110: 4b09 ldr r3, [pc, #36] ; (15138 <lv_label_get_recolor+0x50>)
15112: 4620 mov r0, r4
15114: 4798 blx r3
return ext->recolor == 0 ? false : true;
15116: 7c00 ldrb r0, [r0, #16]
}
15118: f3c0 1080 ubfx r0, r0, #6, #1
1511c: b002 add sp, #8
1511e: bd70 pop {r4, r5, r6, pc}
15120: 00001a65 .word 0x00001a65
15124: 0002bfd9 .word 0x0002bfd9
15128: 0002bec5 .word 0x0002bec5
1512c: 0000eb79 .word 0x0000eb79
15130: 00026943 .word 0x00026943
15134: 00001a6d .word 0x00001a6d
15138: 0000422d .word 0x0000422d
0001513c <lv_label_get_letter_on>:
{
1513c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
15140: ed2d 8b02 vpush {d8}
15144: b08b sub sp, #44 ; 0x2c
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15146: 4e93 ldr r6, [pc, #588] ; (15394 <lv_label_get_letter_on+0x258>)
{
15148: 9102 str r1, [sp, #8]
1514a: 4604 mov r4, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
1514c: 47b0 blx r6
1514e: 4605 mov r5, r0
15150: b968 cbnz r0, 1516e <lv_label_get_letter_on+0x32>
15152: 4b91 ldr r3, [pc, #580] ; (15398 <lv_label_get_letter_on+0x25c>)
15154: 4991 ldr r1, [pc, #580] ; (1539c <lv_label_get_letter_on+0x260>)
15156: 9300 str r3, [sp, #0]
15158: f240 22a5 movw r2, #677 ; 0x2a5
1515c: 2003 movs r0, #3
1515e: 4e90 ldr r6, [pc, #576] ; (153a0 <lv_label_get_letter_on+0x264>)
15160: 47b0 blx r6
15162: 4890 ldr r0, [pc, #576] ; (153a4 <lv_label_get_letter_on+0x268>)
15164: 4990 ldr r1, [pc, #576] ; (153a8 <lv_label_get_letter_on+0x26c>)
15166: 4622 mov r2, r4
15168: 462b mov r3, r5
1516a: 4788 blx r1
1516c: e7fe b.n 1516c <lv_label_get_letter_on+0x30>
LV_ASSERT_NULL(pos);
1516e: 9802 ldr r0, [sp, #8]
15170: 47b0 blx r6
15172: 4605 mov r5, r0
15174: b968 cbnz r0, 15192 <lv_label_get_letter_on+0x56>
15176: 4b88 ldr r3, [pc, #544] ; (15398 <lv_label_get_letter_on+0x25c>)
15178: 4988 ldr r1, [pc, #544] ; (1539c <lv_label_get_letter_on+0x260>)
1517a: 9300 str r3, [sp, #0]
1517c: f240 22a6 movw r2, #678 ; 0x2a6
15180: 2003 movs r0, #3
15182: 4c87 ldr r4, [pc, #540] ; (153a0 <lv_label_get_letter_on+0x264>)
15184: 47a0 blx r4
15186: 9a02 ldr r2, [sp, #8]
15188: 4886 ldr r0, [pc, #536] ; (153a4 <lv_label_get_letter_on+0x268>)
1518a: 4987 ldr r1, [pc, #540] ; (153a8 <lv_label_get_letter_on+0x26c>)
1518c: 462b mov r3, r5
1518e: 4788 blx r1
15190: e7fe b.n 15190 <lv_label_get_letter_on+0x54>
get_txt_coords(label, &txt_coords);
15192: a908 add r1, sp, #32
15194: 4620 mov r0, r4
15196: 4b85 ldr r3, [pc, #532] ; (153ac <lv_label_get_letter_on+0x270>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
15198: 4f85 ldr r7, [pc, #532] ; (153b0 <lv_label_get_letter_on+0x274>)
1519a: 4798 blx r3
const char * txt = lv_label_get_text(label);
1519c: 4b85 ldr r3, [pc, #532] ; (153b4 <lv_label_get_letter_on+0x278>)
1519e: 4620 mov r0, r4
151a0: 4798 blx r3
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
151a2: 4b85 ldr r3, [pc, #532] ; (153b8 <lv_label_get_letter_on+0x27c>)
const char * txt = lv_label_get_text(label);
151a4: 4680 mov r8, r0
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
151a6: 4620 mov r0, r4
151a8: 4798 blx r3
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
151aa: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24
151ae: f8bd 2020 ldrh.w r2, [sp, #32]
151b2: 3301 adds r3, #1
151b4: 1a9b subs r3, r3, r2
151b6: b21b sxth r3, r3
151b8: 4606 mov r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
151ba: f248 028e movw r2, #32910 ; 0x808e
151be: 2100 movs r1, #0
151c0: 4620 mov r0, r4
151c2: ee08 3a90 vmov s17, r3
151c6: 4b7d ldr r3, [pc, #500] ; (153bc <lv_label_get_letter_on+0x280>)
151c8: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
151ca: f248 0281 movw r2, #32897 ; 0x8081
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
151ce: 4682 mov sl, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
151d0: 2100 movs r1, #0
151d2: 4620 mov r0, r4
151d4: 47b8 blx r7
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
151d6: f248 0280 movw r2, #32896 ; 0x8080
151da: 2100 movs r1, #0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
151dc: 4605 mov r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
151de: 4620 mov r0, r4
151e0: 47b8 blx r7
* @param font_p pointer to a font
* @return the height of a font
*/
static inline lv_coord_t lv_font_get_line_height(const lv_font_t * font_p)
{
return font_p->line_height;
151e2: f9ba 3008 ldrsh.w r3, [sl, #8]
151e6: 9303 str r3, [sp, #12]
if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR;
151e8: 7c33 ldrb r3, [r6, #16]
lv_txt_flag_t flag = LV_TXT_FLAG_NONE;
151ea: f3c3 1680 ubfx r6, r3, #6, #1
if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND;
151ee: 061a lsls r2, r3, #24
151f0: bf48 it mi
151f2: f046 0602 orrmi.w r6, r6, #2
151f6: ee08 0a10 vmov s16, r0
if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT;
151fa: 075b lsls r3, r3, #29
lv_label_align_t align = lv_label_get_align(label);
151fc: 4620 mov r0, r4
151fe: 4b70 ldr r3, [pc, #448] ; (153c0 <lv_label_get_letter_on+0x284>)
if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT;
15200: bf08 it eq
15202: f046 0610 orreq.w r6, r6, #16
lv_label_align_t align = lv_label_get_align(label);
15206: 4798 blx r3
if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER;
15208: 2801 cmp r0, #1
lv_label_align_t align = lv_label_get_align(label);
1520a: 4604 mov r4, r0
if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER;
1520c: d108 bne.n 15220 <lv_label_get_letter_on+0xe4>
1520e: f046 0604 orr.w r6, r6, #4
y += letter_height + line_space;
15212: 9b03 ldr r3, [sp, #12]
new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag);
15214: f04f 0b00 mov.w fp, #0
y += letter_height + line_space;
15218: 442b add r3, r5
new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag);
1521a: 465f mov r7, fp
y += letter_height + line_space;
1521c: 9304 str r3, [sp, #16]
1521e: e059 b.n 152d4 <lv_label_get_letter_on+0x198>
if(align == LV_LABEL_ALIGN_RIGHT) flag |= LV_TXT_FLAG_RIGHT;
15220: 2802 cmp r0, #2
15222: d1f6 bne.n 15212 <lv_label_get_letter_on+0xd6>
15224: f046 0608 orr.w r6, r6, #8
15228: e7f3 b.n 15212 <lv_label_get_letter_on+0xd6>
new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag);
1522a: ee18 3a90 vmov r3, s17
1522e: ee18 2a10 vmov r2, s16
15232: 4d64 ldr r5, [pc, #400] ; (153c4 <lv_label_get_letter_on+0x288>)
15234: 9600 str r6, [sp, #0]
15236: 4651 mov r1, sl
15238: 4648 mov r0, r9
1523a: 47a8 blx r5
if(pos->y <= y + letter_height) {
1523c: 9b02 ldr r3, [sp, #8]
1523e: f9b3 2002 ldrsh.w r2, [r3, #2]
15242: 9b03 ldr r3, [sp, #12]
15244: 445b add r3, fp
15246: 429a cmp r2, r3
new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag);
15248: eb00 0507 add.w r5, r0, r7
if(pos->y <= y + letter_height) {
1524c: dc3d bgt.n 152ca <lv_label_get_letter_on+0x18e>
letter = _lv_txt_encoded_prev(txt, &tmp);
1524e: 4b5e ldr r3, [pc, #376] ; (153c8 <lv_label_get_letter_on+0x28c>)
uint32_t tmp = new_line_start;
15250: 9507 str r5, [sp, #28]
letter = _lv_txt_encoded_prev(txt, &tmp);
15252: 681b ldr r3, [r3, #0]
15254: a907 add r1, sp, #28
15256: 4640 mov r0, r8
15258: 4798 blx r3
if(letter != '\n' && txt[new_line_start] == '\0') new_line_start++;
1525a: 280a cmp r0, #10
1525c: d003 beq.n 15266 <lv_label_get_letter_on+0x12a>
1525e: f818 3005 ldrb.w r3, [r8, r5]
15262: b903 cbnz r3, 15266 <lv_label_get_letter_on+0x12a>
15264: 3501 adds r5, #1
if(align == LV_LABEL_ALIGN_CENTER) {
15266: 2c01 cmp r4, #1
15268: d13c bne.n 152e4 <lv_label_get_letter_on+0x1a8>
line_w = _lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag);
1526a: 1be9 subs r1, r5, r7
1526c: ee18 3a10 vmov r3, s16
15270: 4c56 ldr r4, [pc, #344] ; (153cc <lv_label_get_letter_on+0x290>)
15272: 9600 str r6, [sp, #0]
15274: 4652 mov r2, sl
15276: b289 uxth r1, r1
15278: 4648 mov r0, r9
1527a: 47a0 blx r4
1527c: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24
15280: f8bd 2020 ldrh.w r2, [sp, #32]
15284: 3301 adds r3, #1
15286: 1a9b subs r3, r3, r2
x += lv_area_get_width(&txt_coords) / 2 - line_w / 2;
15288: f3c3 32c0 ubfx r2, r3, #15, #1
1528c: eb00 74d0 add.w r4, r0, r0, lsr #31
15290: fa02 f383 sxtah r3, r2, r3
15294: 1064 asrs r4, r4, #1
15296: ebc4 0463 rsb r4, r4, r3, asr #1
x += lv_area_get_width(&txt_coords) - line_w;
1529a: b224 sxth r4, r4
lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT;
1529c: 2300 movs r3, #0
1529e: f88d 301b strb.w r3, [sp, #27]
uint32_t i = 0;
152a2: 9307 str r3, [sp, #28]
if(new_line_start > 0) {
152a4: 2d00 cmp r5, #0
152a6: d16d bne.n 15384 <lv_label_get_letter_on+0x248>
logical_pos = _lv_txt_encoded_get_char_id(bidi_txt, i);
152a8: 4d49 ldr r5, [pc, #292] ; (153d0 <lv_label_get_letter_on+0x294>)
152aa: 9907 ldr r1, [sp, #28]
152ac: 682b ldr r3, [r5, #0]
152ae: 4648 mov r0, r9
152b0: 4798 blx r3
return logical_pos + _lv_txt_encoded_get_char_id(txt, line_start);
152b2: 682b ldr r3, [r5, #0]
logical_pos = _lv_txt_encoded_get_char_id(bidi_txt, i);
152b4: 4604 mov r4, r0
return logical_pos + _lv_txt_encoded_get_char_id(txt, line_start);
152b6: 4639 mov r1, r7
152b8: 4640 mov r0, r8
152ba: 4798 blx r3
152bc: 4420 add r0, r4
}
152be: b280 uxth r0, r0
152c0: b00b add sp, #44 ; 0x2c
152c2: ecbd 8b02 vpop {d8}
152c6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
y += letter_height + line_space;
152ca: 9b04 ldr r3, [sp, #16]
152cc: 449b add fp, r3
152ce: fa0f fb8b sxth.w fp, fp
new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag);
152d2: 462f mov r7, r5
while(txt[line_start] != '\0') {
152d4: f818 3007 ldrb.w r3, [r8, r7]
152d8: eb08 0907 add.w r9, r8, r7
152dc: 2b00 cmp r3, #0
152de: d1a4 bne.n 1522a <lv_label_get_letter_on+0xee>
152e0: 463d mov r5, r7
152e2: e7c0 b.n 15266 <lv_label_get_letter_on+0x12a>
else if(align == LV_LABEL_ALIGN_RIGHT) {
152e4: 2c02 cmp r4, #2
152e6: d110 bne.n 1530a <lv_label_get_letter_on+0x1ce>
line_w = _lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag);
152e8: 1be9 subs r1, r5, r7
152ea: ee18 3a10 vmov r3, s16
152ee: 4c37 ldr r4, [pc, #220] ; (153cc <lv_label_get_letter_on+0x290>)
152f0: 9600 str r6, [sp, #0]
152f2: 4652 mov r2, sl
152f4: b289 uxth r1, r1
152f6: 4648 mov r0, r9
152f8: 47a0 blx r4
152fa: f8bd 4024 ldrh.w r4, [sp, #36] ; 0x24
152fe: f8bd 3020 ldrh.w r3, [sp, #32]
15302: 3401 adds r4, #1
15304: 1ae4 subs r4, r4, r3
x += lv_area_get_width(&txt_coords) - line_w;
15306: 1a24 subs r4, r4, r0
15308: e7c7 b.n 1529a <lv_label_get_letter_on+0x15e>
lv_coord_t x = 0;
1530a: 2400 movs r4, #0
1530c: e7c6 b.n 1529c <lv_label_get_letter_on+0x160>
if(_lv_txt_is_cmd(&cmd_state, bidi_txt[i]) != false) {
1530e: 9b07 ldr r3, [sp, #28]
15310: 9005 str r0, [sp, #20]
15312: f819 1003 ldrb.w r1, [r9, r3]
15316: 4b2f ldr r3, [pc, #188] ; (153d4 <lv_label_get_letter_on+0x298>)
15318: f10d 001b add.w r0, sp, #27
1531c: 4798 blx r3
1531e: 9a05 ldr r2, [sp, #20]
15320: b198 cbz r0, 1534a <lv_label_get_letter_on+0x20e>
while(i + line_start < new_line_start) {
15322: 9b07 ldr r3, [sp, #28]
15324: 443b add r3, r7
15326: 429d cmp r5, r3
15328: d9be bls.n 152a8 <lv_label_get_letter_on+0x16c>
uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i);
1532a: f8db 3000 ldr.w r3, [fp]
1532e: a907 add r1, sp, #28
15330: 4648 mov r0, r9
15332: 4798 blx r3
15334: 4606 mov r6, r0
uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL);
15336: 9807 ldr r0, [sp, #28]
15338: f8db 3000 ldr.w r3, [fp]
1533c: 2100 movs r1, #0
1533e: 4448 add r0, r9
15340: 4798 blx r3
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
15342: 9b04 ldr r3, [sp, #16]
uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL);
15344: 4602 mov r2, r0
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
15346: 2b00 cmp r3, #0
15348: d1e1 bne.n 1530e <lv_label_get_letter_on+0x1d2>
x += lv_font_get_glyph_width(font, letter, letter_next);
1534a: 4b23 ldr r3, [pc, #140] ; (153d8 <lv_label_get_letter_on+0x29c>)
1534c: 4631 mov r1, r6
1534e: 4650 mov r0, sl
15350: 4798 blx r3
if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') {
15352: 9b02 ldr r3, [sp, #8]
x += lv_font_get_glyph_width(font, letter, letter_next);
15354: 4420 add r0, r4
if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') {
15356: f9b3 3000 ldrsh.w r3, [r3]
x += lv_font_get_glyph_width(font, letter, letter_next);
1535a: b284 uxth r4, r0
if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') {
1535c: b200 sxth r0, r0
1535e: 4283 cmp r3, r0
15360: da02 bge.n 15368 <lv_label_get_letter_on+0x22c>
i = i_act;
15362: 9b03 ldr r3, [sp, #12]
15364: 9307 str r3, [sp, #28]
break;
15366: e79f b.n 152a8 <lv_label_get_letter_on+0x16c>
if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') {
15368: 9b07 ldr r3, [sp, #28]
1536a: 18fa adds r2, r7, r3
1536c: 4295 cmp r5, r2
1536e: d0f8 beq.n 15362 <lv_label_get_letter_on+0x226>
15370: f818 2002 ldrb.w r2, [r8, r2]
15374: 2a00 cmp r2, #0
15376: d0f4 beq.n 15362 <lv_label_get_letter_on+0x226>
x += letter_space;
15378: ee18 2a10 vmov r2, s16
1537c: 4414 add r4, r2
1537e: b224 sxth r4, r4
i_act = i;
15380: 9303 str r3, [sp, #12]
15382: e7ce b.n 15322 <lv_label_get_letter_on+0x1e6>
uint32_t i_act = i;
15384: 9303 str r3, [sp, #12]
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
15386: f006 0301 and.w r3, r6, #1
uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i);
1538a: f8df b050 ldr.w fp, [pc, #80] ; 153dc <lv_label_get_letter_on+0x2a0>
if((flag & LV_TXT_FLAG_RECOLOR) != 0) {
1538e: 9304 str r3, [sp, #16]
15390: e7c7 b.n 15322 <lv_label_get_letter_on+0x1e6>
15392: bf00 nop
15394: 00001a65 .word 0x00001a65
15398: 0002c01e .word 0x0002c01e
1539c: 0002bec5 .word 0x0002bec5
153a0: 0000eb79 .word 0x0000eb79
153a4: 00026943 .word 0x00026943
153a8: 00001a6d .word 0x00001a6d
153ac: 00014f1d .word 0x00014f1d
153b0: 00003995 .word 0x00003995
153b4: 00014fe9 .word 0x00014fe9
153b8: 0000422d .word 0x0000422d
153bc: 00003b4d .word 0x00003b4d
153c0: 0001508d .word 0x0001508d
153c4: 00010255 .word 0x00010255
153c8: 2000005c .word 0x2000005c
153cc: 000101ad .word 0x000101ad
153d0: 20000058 .word 0x20000058
153d4: 00010175 .word 0x00010175
153d8: 0000d3f9 .word 0x0000d3f9
153dc: 2000004c .word 0x2000004c
000153e0 <lv_label_refr_text>:
{
153e0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
153e4: 4b8d ldr r3, [pc, #564] ; (1561c <lv_label_refr_text+0x23c>)
{
153e6: b09b sub sp, #108 ; 0x6c
153e8: 4604 mov r4, r0
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
153ea: 4798 blx r3
if(ext->text == NULL) return;
153ec: 6803 ldr r3, [r0, #0]
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
153ee: 4605 mov r5, r0
if(ext->text == NULL) return;
153f0: 2b00 cmp r3, #0
153f2: d062 beq.n 154ba <lv_label_refr_text+0xda>
get_txt_coords(label, &txt_coords);
153f4: 4b8a ldr r3, [pc, #552] ; (15620 <lv_label_refr_text+0x240>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
153f6: f8df 8258 ldr.w r8, [pc, #600] ; 15650 <lv_label_refr_text+0x270>
153fa: a908 add r1, sp, #32
153fc: 4620 mov r0, r4
153fe: 4798 blx r3
15400: f8bd a024 ldrh.w sl, [sp, #36] ; 0x24
15404: f8bd 3020 ldrh.w r3, [sp, #32]
15408: f10a 0a01 add.w sl, sl, #1
1540c: ebaa 0a03 sub.w sl, sl, r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
15410: f248 028e movw r2, #32910 ; 0x808e
15414: 4b83 ldr r3, [pc, #524] ; (15624 <lv_label_refr_text+0x244>)
15416: 2100 movs r1, #0
15418: 4620 mov r0, r4
1541a: 4798 blx r3
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
1541c: f248 0281 movw r2, #32897 ; 0x8081
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar)
15420: 4606 mov r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
15422: 2100 movs r1, #0
15424: 4620 mov r0, r4
15426: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
15428: 2100 movs r1, #0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar)
1542a: 4607 mov r7, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar)
1542c: f248 0280 movw r2, #32896 ; 0x8080
15430: 4620 mov r0, r4
15432: 47c0 blx r8
if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR;
15434: 7c2a ldrb r2, [r5, #16]
_lv_txt_get_size(&size, ext->text, font, letter_space, line_space, max_w, flag);
15436: 9700 str r7, [sp, #0]
lv_txt_flag_t flag = LV_TXT_FLAG_NONE;
15438: f3c2 1380 ubfx r3, r2, #6, #1
if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND;
1543c: 0611 lsls r1, r2, #24
1543e: bf48 it mi
15440: f043 0302 orrmi.w r3, r3, #2
if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT;
15444: 0752 lsls r2, r2, #29
15446: bf08 it eq
15448: f043 0310 orreq.w r3, r3, #16
1544c: fa0f fa8a sxth.w sl, sl
_lv_txt_get_size(&size, ext->text, font, letter_space, line_space, max_w, flag);
15450: e9cd a301 strd sl, r3, [sp, #4]
15454: 4681 mov r9, r0
15456: 6829 ldr r1, [r5, #0]
15458: f8df a1f8 ldr.w sl, [pc, #504] ; 15654 <lv_label_refr_text+0x274>
1545c: 4603 mov r3, r0
1545e: 4632 mov r2, r6
15460: a806 add r0, sp, #24
15462: 47d0 blx sl
if(ext->long_mode == LV_LABEL_LONG_EXPAND) {
15464: 7c29 ldrb r1, [r5, #16]
15466: f011 0107 ands.w r1, r1, #7
1546a: d129 bne.n 154c0 <lv_label_refr_text+0xe0>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
1546c: 2212 movs r2, #18
1546e: 4620 mov r0, r4
15470: 9105 str r1, [sp, #20]
15472: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
15474: 9905 ldr r1, [sp, #20]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar)
15476: 4605 mov r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar)
15478: 2213 movs r2, #19
1547a: 4620 mov r0, r4
1547c: 47c0 blx r8
size.x += lv_obj_get_style_pad_left(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_right(label, LV_LABEL_PART_MAIN);
1547e: f8bd 3018 ldrh.w r3, [sp, #24]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
15482: 9905 ldr r1, [sp, #20]
15484: 4428 add r0, r5
15486: 4418 add r0, r3
15488: f8ad 0018 strh.w r0, [sp, #24]
1548c: 2210 movs r2, #16
1548e: 4620 mov r0, r4
15490: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
15492: 9905 ldr r1, [sp, #20]
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
15494: 4605 mov r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
15496: 2211 movs r2, #17
15498: 4620 mov r0, r4
1549a: 47c0 blx r8
size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
1549c: f8bd 301a ldrh.w r3, [sp, #26]
lv_obj_set_size(label, size.x, size.y);
154a0: f9bd 1018 ldrsh.w r1, [sp, #24]
size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
154a4: 182a adds r2, r5, r0
154a6: 441a add r2, r3
154a8: b212 sxth r2, r2
lv_obj_set_size(label, size.x, size.y);
154aa: 4b5f ldr r3, [pc, #380] ; (15628 <lv_label_refr_text+0x248>)
size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
154ac: f8ad 201a strh.w r2, [sp, #26]
lv_obj_set_size(label, size.x, size.y);
154b0: 4620 mov r0, r4
154b2: 4798 blx r3
lv_obj_invalidate(label);
154b4: 4b5d ldr r3, [pc, #372] ; (1562c <lv_label_refr_text+0x24c>)
154b6: 4620 mov r0, r4
154b8: 4798 blx r3
}
154ba: b01b add sp, #108 ; 0x6c
154bc: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
else if(ext->long_mode == LV_LABEL_LONG_SROLL) {
154c0: 3901 subs r1, #1
154c2: 2903 cmp r1, #3
154c4: d8f6 bhi.n 154b4 <lv_label_refr_text+0xd4>
154c6: e8df f011 tbh [pc, r1, lsl #1]
154ca: 01c8 .short 0x01c8
154cc: 0004013c .word 0x0004013c
154d0: 00c7 .short 0x00c7
lv_anim_init(&a);
154d2: 4b57 ldr r3, [pc, #348] ; (15630 <lv_label_refr_text+0x250>)
154d4: a80a add r0, sp, #40 ; 0x28
154d6: 4798 blx r3
lv_anim_set_playback_delay(&a, (((lv_font_get_glyph_width(font, ' ', ' ') + letter_space) * 1000) /
154d8: 2220 movs r2, #32
* @param a pointer to an initialized `lv_anim_t` variable
* @param cnt repeat count or `LV_ANIM_REPEAT_INFINITE` for infinite repetition. 0: to disable repetition.
*/
static inline void lv_anim_set_repeat_count(lv_anim_t * a, uint16_t cnt)
{
a->repeat_cnt = cnt;
154da: f64f 73ff movw r3, #65535 ; 0xffff
154de: 4611 mov r1, r2
154e0: f8ad 305c strh.w r3, [sp, #92] ; 0x5c
a->var = var;
154e4: 940a str r4, [sp, #40] ; 0x28
154e6: 4b53 ldr r3, [pc, #332] ; (15634 <lv_label_refr_text+0x254>)
154e8: 4630 mov r0, r6
154ea: 4798 blx r3
154ec: f44f 727a mov.w r2, #1000 ; 0x3e8
154f0: eb00 0309 add.w r3, r0, r9
ext->anim_speed) *
154f4: 896f ldrh r7, [r5, #10]
if(size.x > lv_area_get_width(&txt_coords)) {
154f6: f9bd 1018 ldrsh.w r1, [sp, #24]
lv_anim_set_playback_delay(&a, (((lv_font_get_glyph_width(font, ' ', ' ') + letter_space) * 1000) /
154fa: 4353 muls r3, r2
154fc: fb93 f3f7 sdiv r3, r3, r7
15500: eb03 0343 add.w r3, r3, r3, lsl #1
a->playback_delay = delay;
15504: b29b uxth r3, r3
15506: 9314 str r3, [sp, #80] ; 0x50
* @param a pointer to an initialized `lv_anim_t` variable
* @param delay delay in milliseconds before repeating the animation.
*/
static inline void lv_anim_set_repeat_delay(lv_anim_t * a, uint16_t delay)
{
a->repeat_delay = delay;
15508: 9316 str r3, [sp, #88] ; 0x58
1550a: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24
1550e: f8bd 2020 ldrh.w r2, [sp, #32]
15512: 3301 adds r3, #1
15514: 1a9b subs r3, r3, r2
15516: b29a uxth r2, r3
if(size.x > lv_area_get_width(&txt_coords)) {
15518: b21b sxth r3, r3
1551a: 4299 cmp r1, r3
1551c: dd74 ble.n 15608 <lv_label_refr_text+0x228>
lv_anim_set_values(&a, 0, lv_area_get_width(&txt_coords) - size.x);
1551e: 1a52 subs r2, r2, r1
a->exec_cb = exec_cb;
15520: f8df 8124 ldr.w r8, [pc, #292] ; 15648 <lv_label_refr_text+0x268>
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
15524: 4b44 ldr r3, [pc, #272] ; (15638 <lv_label_refr_text+0x258>)
15526: f8cd 802c str.w r8, [sp, #44] ; 0x2c
a->start = start;
1552a: 2100 movs r1, #0
lv_anim_set_values(&a, 0, lv_area_get_width(&txt_coords) - size.x);
1552c: b212 sxth r2, r2
a->end = end;
1552e: e9cd 1210 strd r1, r2, [sp, #64] ; 0x40
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
15532: 4638 mov r0, r7
15534: 4798 blx r3
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
15536: 4b41 ldr r3, [pc, #260] ; (1563c <lv_label_refr_text+0x25c>)
a->time = duration;
15538: 9012 str r0, [sp, #72] ; 0x48
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
1553a: 9015 str r0, [sp, #84] ; 0x54
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
1553c: 4641 mov r1, r8
1553e: 4620 mov r0, r4
15540: 4798 blx r3
if(anim_cur) {
15542: 2800 cmp r0, #0
15544: d05e beq.n 15604 <lv_label_refr_text+0x224>
act_time = anim_cur->act_time;
15546: 6a43 ldr r3, [r0, #36] ; 0x24
playback_now = anim_cur->playback_now;
15548: f890 003c ldrb.w r0, [r0, #60] ; 0x3c
1554c: f000 0001 and.w r0, r0, #1
if(act_time < a.time) {
15550: 9a12 ldr r2, [sp, #72] ; 0x48
15552: 429a cmp r2, r3
15554: dd11 ble.n 1557a <lv_label_refr_text+0x19a>
a.act_time = act_time; /*To keep the old position*/
15556: 9313 str r3, [sp, #76] ; 0x4c
a.early_apply = 0;
15558: f89d 305e ldrb.w r3, [sp, #94] ; 0x5e
1555c: f36f 0300 bfc r3, #0, #1
15560: f88d 305e strb.w r3, [sp, #94] ; 0x5e
if(playback_now) {
15564: b148 cbz r0, 1557a <lv_label_refr_text+0x19a>
a.playback_now = 1;
15566: f89d 3064 ldrb.w r3, [sp, #100] ; 0x64
1556a: f043 0301 orr.w r3, r3, #1
1556e: f88d 3064 strb.w r3, [sp, #100] ; 0x64
a.start = a.end;
15572: e9dd 3210 ldrd r3, r2, [sp, #64] ; 0x40
a.end = tmp;
15576: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40
lv_anim_start(&a);
1557a: 4b31 ldr r3, [pc, #196] ; (15640 <lv_label_refr_text+0x260>)
1557c: a80a add r0, sp, #40 ; 0x28
1557e: 4798 blx r3
hor_anim = true;
15580: 2701 movs r7, #1
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
15582: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26
15586: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22
if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) {
1558a: f9bd 101a ldrsh.w r1, [sp, #26]
1558e: 3301 adds r3, #1
15590: 1a9b subs r3, r3, r2
15592: b29a uxth r2, r3
15594: b21b sxth r3, r3
15596: 4299 cmp r1, r3
15598: f340 80cc ble.w 15734 <lv_label_refr_text+0x354>
1559c: 2f00 cmp r7, #0
1559e: f040 80c9 bne.w 15734 <lv_label_refr_text+0x354>
lv_anim_set_values(&a, 0, lv_area_get_height(&txt_coords) - size.y - (lv_font_get_line_height(font)));
155a2: 8933 ldrh r3, [r6, #8]
a->exec_cb = exec_cb;
155a4: 4e27 ldr r6, [pc, #156] ; (15644 <lv_label_refr_text+0x264>)
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
155a6: 8968 ldrh r0, [r5, #10]
155a8: 960b str r6, [sp, #44] ; 0x2c
lv_anim_set_values(&a, 0, lv_area_get_height(&txt_coords) - size.y - (lv_font_get_line_height(font)));
155aa: 1a52 subs r2, r2, r1
155ac: 1ad2 subs r2, r2, r3
155ae: b212 sxth r2, r2
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
155b0: 4b21 ldr r3, [pc, #132] ; (15638 <lv_label_refr_text+0x258>)
155b2: 4639 mov r1, r7
a->end = end;
155b4: e9cd 7210 strd r7, r2, [sp, #64] ; 0x40
155b8: 4798 blx r3
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
155ba: 4b20 ldr r3, [pc, #128] ; (1563c <lv_label_refr_text+0x25c>)
a->time = duration;
155bc: 9012 str r0, [sp, #72] ; 0x48
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
155be: 9015 str r0, [sp, #84] ; 0x54
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
155c0: 4631 mov r1, r6
155c2: 4620 mov r0, r4
155c4: 4798 blx r3
if(anim_cur) {
155c6: b330 cbz r0, 15616 <lv_label_refr_text+0x236>
playback_now = anim_cur->playback_now;
155c8: f890 703c ldrb.w r7, [r0, #60] ; 0x3c
act_time = anim_cur->act_time;
155cc: 6a43 ldr r3, [r0, #36] ; 0x24
playback_now = anim_cur->playback_now;
155ce: f007 0701 and.w r7, r7, #1
if(act_time < a.time) {
155d2: 9a12 ldr r2, [sp, #72] ; 0x48
155d4: 429a cmp r2, r3
155d6: dd11 ble.n 155fc <lv_label_refr_text+0x21c>
a.act_time = act_time; /*To keep the old position*/
155d8: 9313 str r3, [sp, #76] ; 0x4c
a.early_apply = 0;
155da: f89d 305e ldrb.w r3, [sp, #94] ; 0x5e
155de: f36f 0300 bfc r3, #0, #1
155e2: f88d 305e strb.w r3, [sp, #94] ; 0x5e
if(playback_now) {
155e6: b14f cbz r7, 155fc <lv_label_refr_text+0x21c>
a.playback_now = 1;
155e8: f89d 3064 ldrb.w r3, [sp, #100] ; 0x64
155ec: f043 0301 orr.w r3, r3, #1
155f0: f88d 3064 strb.w r3, [sp, #100] ; 0x64
a.start = a.end;
155f4: e9dd 3210 ldrd r3, r2, [sp, #64] ; 0x40
a.end = tmp;
155f8: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40
lv_anim_start(&a);
155fc: 4b10 ldr r3, [pc, #64] ; (15640 <lv_label_refr_text+0x260>)
155fe: a80a add r0, sp, #40 ; 0x28
15600: 4798 blx r3
if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) {
15602: e757 b.n 154b4 <lv_label_refr_text+0xd4>
int32_t act_time = 0;
15604: 4603 mov r3, r0
15606: e7a3 b.n 15550 <lv_label_refr_text+0x170>
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
15608: 490f ldr r1, [pc, #60] ; (15648 <lv_label_refr_text+0x268>)
1560a: 4b10 ldr r3, [pc, #64] ; (1564c <lv_label_refr_text+0x26c>)
1560c: 4620 mov r0, r4
ext->offset.x = 0;
1560e: 2700 movs r7, #0
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
15610: 4798 blx r3
ext->offset.x = 0;
15612: 81af strh r7, [r5, #12]
15614: e7b5 b.n 15582 <lv_label_refr_text+0x1a2>
int32_t act_time = 0;
15616: 463b mov r3, r7
15618: e7db b.n 155d2 <lv_label_refr_text+0x1f2>
1561a: bf00 nop
1561c: 0000422d .word 0x0000422d
15620: 00014f1d .word 0x00014f1d
15624: 00003b4d .word 0x00003b4d
15628: 00003765 .word 0x00003765
1562c: 00002a09 .word 0x00002a09
15630: 0000defd .word 0x0000defd
15634: 0000d3f9 .word 0x0000d3f9
15638: 0000e091 .word 0x0000e091
1563c: 0000e05d .word 0x0000e05d
15640: 0000dfa5 .word 0x0000dfa5
15644: 00014e51 .word 0x00014e51
15648: 00014e71 .word 0x00014e71
1564c: 0000df35 .word 0x0000df35
15650: 00003995 .word 0x00003995
15654: 0001042d .word 0x0001042d
lv_anim_init(&a);
15658: 4b8a ldr r3, [pc, #552] ; (15884 <lv_label_refr_text+0x4a4>)
1565a: a80a add r0, sp, #40 ; 0x28
1565c: 4798 blx r3
a->repeat_cnt = cnt;
1565e: f64f 73ff movw r3, #65535 ; 0xffff
15662: f8ad 305c strh.w r3, [sp, #92] ; 0x5c
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
15666: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24
1566a: f8bd 2020 ldrh.w r2, [sp, #32]
a->var = var;
1566e: 940a str r4, [sp, #40] ; 0x28
15670: 3301 adds r3, #1
15672: 1a9b subs r3, r3, r2
if(size.x > lv_area_get_width(&txt_coords)) {
15674: f9bd 2018 ldrsh.w r2, [sp, #24]
15678: b21b sxth r3, r3
1567a: 429a cmp r2, r3
1567c: dd53 ble.n 15726 <lv_label_refr_text+0x346>
lv_anim_set_values(&a, 0, -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT);
1567e: 2220 movs r2, #32
15680: 4611 mov r1, r2
15682: 4b81 ldr r3, [pc, #516] ; (15888 <lv_label_refr_text+0x4a8>)
a->exec_cb = exec_cb;
15684: 4f81 ldr r7, [pc, #516] ; (1588c <lv_label_refr_text+0x4ac>)
15686: 4630 mov r0, r6
15688: 4798 blx r3
1568a: ebc0 3380 rsb r3, r0, r0, lsl #14
1568e: eb00 0283 add.w r2, r0, r3, lsl #2
15692: f8bd 3018 ldrh.w r3, [sp, #24]
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
15696: 8968 ldrh r0, [r5, #10]
15698: 970b str r7, [sp, #44] ; 0x2c
lv_anim_set_values(&a, 0, -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT);
1569a: 1ad2 subs r2, r2, r3
a->start = start;
1569c: 2100 movs r1, #0
1569e: b212 sxth r2, r2
a->end = end;
156a0: e9cd 1210 strd r1, r2, [sp, #64] ; 0x40
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
156a4: 4b7a ldr r3, [pc, #488] ; (15890 <lv_label_refr_text+0x4b0>)
156a6: 4798 blx r3
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
156a8: 4b7a ldr r3, [pc, #488] ; (15894 <lv_label_refr_text+0x4b4>)
a->time = duration;
156aa: 9012 str r0, [sp, #72] ; 0x48
156ac: 4639 mov r1, r7
156ae: 4620 mov r0, r4
156b0: 4798 blx r3
int32_t act_time = anim_cur ? anim_cur->act_time : 0;
156b2: b100 cbz r0, 156b6 <lv_label_refr_text+0x2d6>
156b4: 6a40 ldr r0, [r0, #36] ; 0x24
if(act_time < a.time) {
156b6: 9b12 ldr r3, [sp, #72] ; 0x48
156b8: 4283 cmp r3, r0
a.early_apply = 0;
156ba: bfc1 itttt gt
156bc: f89d 305e ldrbgt.w r3, [sp, #94] ; 0x5e
a.act_time = act_time; /*To keep the old position*/
156c0: 9013 strgt r0, [sp, #76] ; 0x4c
a.early_apply = 0;
156c2: f36f 0300 bfcgt r3, #0, #1
156c6: f88d 305e strbgt.w r3, [sp, #94] ; 0x5e
lv_anim_start(&a);
156ca: a80a add r0, sp, #40 ; 0x28
156cc: 4b72 ldr r3, [pc, #456] ; (15898 <lv_label_refr_text+0x4b8>)
156ce: 4798 blx r3
hor_anim = true;
156d0: 2701 movs r7, #1
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
156d2: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26
156d6: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22
if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) {
156da: f9bd 201a ldrsh.w r2, [sp, #26]
156de: 3301 adds r3, #1
156e0: 1a5b subs r3, r3, r1
156e2: b21b sxth r3, r3
156e4: 429a cmp r2, r3
156e6: dd25 ble.n 15734 <lv_label_refr_text+0x354>
156e8: bb27 cbnz r7, 15734 <lv_label_refr_text+0x354>
lv_anim_set_values(&a, 0, -size.y - (lv_font_get_line_height(font)));
156ea: 8933 ldrh r3, [r6, #8]
a->exec_cb = exec_cb;
156ec: 4e6b ldr r6, [pc, #428] ; (1589c <lv_label_refr_text+0x4bc>)
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
156ee: 8968 ldrh r0, [r5, #10]
156f0: 960b str r6, [sp, #44] ; 0x2c
lv_anim_set_values(&a, 0, -size.y - (lv_font_get_line_height(font)));
156f2: 441a add r2, r3
156f4: 4252 negs r2, r2
156f6: b212 sxth r2, r2
lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end));
156f8: 4b65 ldr r3, [pc, #404] ; (15890 <lv_label_refr_text+0x4b0>)
156fa: 4639 mov r1, r7
a->end = end;
156fc: e9cd 7210 strd r7, r2, [sp, #64] ; 0x40
15700: 4798 blx r3
lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
15702: 4b64 ldr r3, [pc, #400] ; (15894 <lv_label_refr_text+0x4b4>)
a->time = duration;
15704: 9012 str r0, [sp, #72] ; 0x48
15706: 4631 mov r1, r6
15708: 4620 mov r0, r4
1570a: 4798 blx r3
int32_t act_time = anim_cur ? anim_cur->act_time : 0;
1570c: b100 cbz r0, 15710 <lv_label_refr_text+0x330>
1570e: 6a47 ldr r7, [r0, #36] ; 0x24
if(act_time < a.time) {
15710: 9b12 ldr r3, [sp, #72] ; 0x48
15712: 42bb cmp r3, r7
a.early_apply = 0;
15714: bfc1 itttt gt
15716: f89d 305e ldrbgt.w r3, [sp, #94] ; 0x5e
a.act_time = act_time; /*To keep the old position*/
1571a: 9713 strgt r7, [sp, #76] ; 0x4c
a.early_apply = 0;
1571c: f36f 0300 bfcgt r3, #0, #1
15720: f88d 305e strbgt.w r3, [sp, #94] ; 0x5e
15724: e76a b.n 155fc <lv_label_refr_text+0x21c>
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
15726: 4959 ldr r1, [pc, #356] ; (1588c <lv_label_refr_text+0x4ac>)
15728: 4b5d ldr r3, [pc, #372] ; (158a0 <lv_label_refr_text+0x4c0>)
1572a: 4620 mov r0, r4
ext->offset.x = 0;
1572c: 2700 movs r7, #0
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
1572e: 4798 blx r3
ext->offset.x = 0;
15730: 81af strh r7, [r5, #12]
15732: e7ce b.n 156d2 <lv_label_refr_text+0x2f2>
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
15734: 4b5a ldr r3, [pc, #360] ; (158a0 <lv_label_refr_text+0x4c0>)
15736: 4959 ldr r1, [pc, #356] ; (1589c <lv_label_refr_text+0x4bc>)
15738: 4620 mov r0, r4
1573a: 4798 blx r3
ext->offset.y = 0;
1573c: 2300 movs r3, #0
1573e: 81eb strh r3, [r5, #14]
15740: e6b8 b.n 154b4 <lv_label_refr_text+0xd4>
15742: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26
15746: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22
1574a: 3301 adds r3, #1
1574c: 1a9b subs r3, r3, r2
if(size.y <= lv_area_get_height(&txt_coords)) { /*No dots are required, the text is short enough*/
1574e: f9bd 201a ldrsh.w r2, [sp, #26]
15752: b21b sxth r3, r3
15754: 429a cmp r2, r3
15756: dc03 bgt.n 15760 <lv_label_refr_text+0x380>
ext->dot_end = LV_LABEL_DOT_END_INV;
15758: f64f 73ff movw r3, #65535 ; 0xffff
1575c: 812b strh r3, [r5, #8]
1575e: e6a9 b.n 154b4 <lv_label_refr_text+0xd4>
else if(_lv_txt_get_encoded_length(ext->text) <= LV_LABEL_DOT_NUM) { /*Don't turn to dots all the characters*/
15760: 4b50 ldr r3, [pc, #320] ; (158a4 <lv_label_refr_text+0x4c4>)
15762: 6828 ldr r0, [r5, #0]
15764: 681b ldr r3, [r3, #0]
15766: 4798 blx r3
15768: 2803 cmp r0, #3
1576a: d9f5 bls.n 15758 <lv_label_refr_text+0x378>
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
1576c: f8bd 8024 ldrh.w r8, [sp, #36] ; 0x24
15770: f8bd 3020 ldrh.w r3, [sp, #32]
(lv_font_get_glyph_width(font, '.', '.') + letter_space) *
15774: 222e movs r2, #46 ; 0x2e
15776: f108 0801 add.w r8, r8, #1
1577a: 4611 mov r1, r2
1577c: eba8 0803 sub.w r8, r8, r3
15780: 4630 mov r0, r6
15782: 4b41 ldr r3, [pc, #260] ; (15888 <lv_label_refr_text+0x4a8>)
15784: 4798 blx r3
15786: 4448 add r0, r9
p.x = lv_area_get_width(&txt_coords) -
15788: ebc0 3380 rsb r3, r0, r0, lsl #14
1578c: eb00 0083 add.w r0, r0, r3, lsl #2
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
15790: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26
15794: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22
byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]);
15798: f8df 9124 ldr.w r9, [pc, #292] ; 158c0 <lv_label_refr_text+0x4e0>
1579c: 3301 adds r3, #1
1579e: 1a9b subs r3, r3, r2
(lv_font_get_line_height(font) + line_space); /*Round down to the last line*/
157a0: f9b6 2008 ldrsh.w r2, [r6, #8]
157a4: b29b uxth r3, r3
157a6: 443a add r2, r7
p.y -= line_space; /*Trim the last line space*/
157a8: 1bd9 subs r1, r3, r7
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
157aa: fa1f f888 uxth.w r8, r8
p.y -= p.y %
157ae: b21b sxth r3, r3
p.x = lv_area_get_width(&txt_coords) -
157b0: 4480 add r8, r0
p.y -= p.y %
157b2: fb93 f0f2 sdiv r0, r3, r2
157b6: fb02 3310 mls r3, r2, r0, r3
p.y -= line_space; /*Trim the last line space*/
157ba: 1acb subs r3, r1, r3
157bc: f8ad 301e strh.w r3, [sp, #30]
uint32_t letter_id = lv_label_get_letter_on(label, &p);
157c0: a907 add r1, sp, #28
157c2: 4b39 ldr r3, [pc, #228] ; (158a8 <lv_label_refr_text+0x4c8>)
p.x = lv_area_get_width(&txt_coords) -
157c4: f8ad 801c strh.w r8, [sp, #28]
uint32_t letter_id = lv_label_get_letter_on(label, &p);
157c8: 4620 mov r0, r4
157ca: 4798 blx r3
size_t txt_len = strlen(ext->text);
157cc: 682e ldr r6, [r5, #0]
157ce: 4b37 ldr r3, [pc, #220] ; (158ac <lv_label_refr_text+0x4cc>)
uint32_t letter_id = lv_label_get_letter_on(label, &p);
157d0: 4607 mov r7, r0
size_t txt_len = strlen(ext->text);
157d2: 4630 mov r0, r6
157d4: 4798 blx r3
uint32_t byte_id = _lv_txt_encoded_get_byte_id(ext->text, letter_id);
157d6: 4b36 ldr r3, [pc, #216] ; (158b0 <lv_label_refr_text+0x4d0>)
size_t txt_len = strlen(ext->text);
157d8: 4680 mov r8, r0
uint32_t byte_id = _lv_txt_encoded_get_byte_id(ext->text, letter_id);
157da: 681b ldr r3, [r3, #0]
157dc: 4630 mov r0, r6
157de: 4639 mov r1, r7
157e0: 4798 blx r3
157e2: 4606 mov r6, r0
byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]);
157e4: 6828 ldr r0, [r5, #0]
157e6: f8d9 3000 ldr.w r3, [r9]
uint32_t byte_id = _lv_txt_encoded_get_byte_id(ext->text, letter_id);
157ea: 960a str r6, [sp, #40] ; 0x28
while(byte_id + LV_LABEL_DOT_NUM > txt_len) {
157ec: f106 0b03 add.w fp, r6, #3
157f0: 45c3 cmp fp, r8
byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]);
157f2: 4430 add r0, r6
while(byte_id + LV_LABEL_DOT_NUM > txt_len) {
157f4: d82c bhi.n 15850 <lv_label_refr_text+0x470>
157f6: f04f 0a04 mov.w sl, #4
uint8_t len = 0;
157fa: f04f 0800 mov.w r8, #0
len += _lv_txt_encoded_size(&ext->text[byte_id]);
157fe: 9a0a ldr r2, [sp, #40] ; 0x28
15800: 6828 ldr r0, [r5, #0]
15802: f8d9 3000 ldr.w r3, [r9]
15806: 4410 add r0, r2
15808: 4798 blx r3
_lv_txt_encoded_next(ext->text, &byte_id);
1580a: 4b2a ldr r3, [pc, #168] ; (158b4 <lv_label_refr_text+0x4d4>)
len += _lv_txt_encoded_size(&ext->text[byte_id]);
1580c: 4440 add r0, r8
_lv_txt_encoded_next(ext->text, &byte_id);
1580e: 681b ldr r3, [r3, #0]
len += _lv_txt_encoded_size(&ext->text[byte_id]);
15810: fa5f f880 uxtb.w r8, r0
_lv_txt_encoded_next(ext->text, &byte_id);
15814: a90a add r1, sp, #40 ; 0x28
15816: 6828 ldr r0, [r5, #0]
15818: 4798 blx r3
for(i = 0; i <= LV_LABEL_DOT_NUM; i++) {
1581a: f1ba 0a01 subs.w sl, sl, #1
1581e: d1ee bne.n 157fe <lv_label_refr_text+0x41e>
if(lv_label_set_dot_tmp(label, &ext->text[byte_id_ori], len)) {
15820: 6829 ldr r1, [r5, #0]
15822: 4b25 ldr r3, [pc, #148] ; (158b8 <lv_label_refr_text+0x4d8>)
15824: 4642 mov r2, r8
15826: 4431 add r1, r6
15828: 4620 mov r0, r4
1582a: 4798 blx r3
1582c: 2800 cmp r0, #0
1582e: f43f ae41 beq.w 154b4 <lv_label_refr_text+0xd4>
ext->text[byte_id_ori + i] = '.';
15832: 682b ldr r3, [r5, #0]
15834: 222e movs r2, #46 ; 0x2e
15836: 559a strb r2, [r3, r6]
15838: 682b ldr r3, [r5, #0]
1583a: 4433 add r3, r6
ext->dot_end = letter_id + LV_LABEL_DOT_NUM;
1583c: 3703 adds r7, #3
ext->text[byte_id_ori + i] = '.';
1583e: 705a strb r2, [r3, #1]
15840: 682b ldr r3, [r5, #0]
15842: 4433 add r3, r6
15844: 709a strb r2, [r3, #2]
ext->text[byte_id_ori + LV_LABEL_DOT_NUM] = '\0';
15846: 682b ldr r3, [r5, #0]
15848: f803 a00b strb.w sl, [r3, fp]
ext->dot_end = letter_id + LV_LABEL_DOT_NUM;
1584c: 812f strh r7, [r5, #8]
1584e: e631 b.n 154b4 <lv_label_refr_text+0xd4>
byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]);
15850: 4798 blx r3
15852: 9e0a ldr r6, [sp, #40] ; 0x28
letter_id--;
15854: 3f01 subs r7, #1
byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]);
15856: 1a36 subs r6, r6, r0
letter_id--;
15858: e7c4 b.n 157e4 <lv_label_refr_text+0x404>
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
1585a: 2210 movs r2, #16
1585c: 2100 movs r1, #0
1585e: 4620 mov r0, r4
15860: 47c0 blx r8
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
15862: 2211 movs r2, #17
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar)
15864: 4605 mov r5, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar)
15866: 2100 movs r1, #0
15868: 4620 mov r0, r4
1586a: 47c0 blx r8
size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
1586c: f8bd 301a ldrh.w r3, [sp, #26]
15870: 1829 adds r1, r5, r0
15872: 4419 add r1, r3
15874: b209 sxth r1, r1
lv_obj_set_height(label, size.y);
15876: 4b11 ldr r3, [pc, #68] ; (158bc <lv_label_refr_text+0x4dc>)
size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN);
15878: f8ad 101a strh.w r1, [sp, #26]
lv_obj_set_height(label, size.y);
1587c: 4620 mov r0, r4
1587e: 4798 blx r3
15880: e618 b.n 154b4 <lv_label_refr_text+0xd4>
15882: bf00 nop
15884: 0000defd .word 0x0000defd
15888: 0000d3f9 .word 0x0000d3f9
1588c: 00014e71 .word 0x00014e71
15890: 0000e091 .word 0x0000e091
15894: 0000e05d .word 0x0000e05d
15898: 0000dfa5 .word 0x0000dfa5
1589c: 00014e51 .word 0x00014e51
158a0: 0000df35 .word 0x0000df35
158a4: 20000054 .word 0x20000054
158a8: 0001513d .word 0x0001513d
158ac: 00017481 .word 0x00017481
158b0: 20000050 .word 0x20000050
158b4: 2000004c .word 0x2000004c
158b8: 00014e91 .word 0x00014e91
158bc: 00003875 .word 0x00003875
158c0: 20000048 .word 0x20000048
000158c4 <lv_label_set_text>:
{
158c4: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
158c8: 4f40 ldr r7, [pc, #256] ; (159cc <lv_label_set_text+0x108>)
{
158ca: 4606 mov r6, r0
158cc: 460d mov r5, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
158ce: 47b8 blx r7
158d0: 4604 mov r4, r0
158d2: b960 cbnz r0, 158ee <lv_label_set_text+0x2a>
158d4: 4b3e ldr r3, [pc, #248] ; (159d0 <lv_label_set_text+0x10c>)
158d6: 493f ldr r1, [pc, #252] ; (159d4 <lv_label_set_text+0x110>)
158d8: 9300 str r3, [sp, #0]
158da: 22b8 movs r2, #184 ; 0xb8
158dc: 2003 movs r0, #3
158de: 4d3e ldr r5, [pc, #248] ; (159d8 <lv_label_set_text+0x114>)
158e0: 47a8 blx r5
158e2: 483e ldr r0, [pc, #248] ; (159dc <lv_label_set_text+0x118>)
158e4: 493e ldr r1, [pc, #248] ; (159e0 <lv_label_set_text+0x11c>)
158e6: 4632 mov r2, r6
158e8: 4623 mov r3, r4
158ea: 4788 blx r1
158ec: e7fe b.n 158ec <lv_label_set_text+0x28>
lv_obj_invalidate(label);
158ee: 4b3d ldr r3, [pc, #244] ; (159e4 <lv_label_set_text+0x120>)
158f0: 4630 mov r0, r6
158f2: 4798 blx r3
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
158f4: 4b3c ldr r3, [pc, #240] ; (159e8 <lv_label_set_text+0x124>)
158f6: 4630 mov r0, r6
158f8: 4798 blx r3
158fa: 4604 mov r4, r0
if(text == NULL) {
158fc: b92d cbnz r5, 1590a <lv_label_set_text+0x46>
lv_label_refr_text(label);
158fe: 4b3b ldr r3, [pc, #236] ; (159ec <lv_label_set_text+0x128>)
15900: 4630 mov r0, r6
}
15902: b003 add sp, #12
15904: e8bd 43f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr}
lv_label_refr_text(label);
15908: 4718 bx r3
LV_ASSERT_STR(text);
1590a: 4628 mov r0, r5
1590c: 47b8 blx r7
1590e: 4680 mov r8, r0
15910: b960 cbnz r0, 1592c <lv_label_set_text+0x68>
15912: 4b2f ldr r3, [pc, #188] ; (159d0 <lv_label_set_text+0x10c>)
15914: 492f ldr r1, [pc, #188] ; (159d4 <lv_label_set_text+0x110>)
15916: 9300 str r3, [sp, #0]
15918: 22c4 movs r2, #196 ; 0xc4
1591a: 2003 movs r0, #3
1591c: 4c2e ldr r4, [pc, #184] ; (159d8 <lv_label_set_text+0x114>)
1591e: 47a0 blx r4
15920: 482e ldr r0, [pc, #184] ; (159dc <lv_label_set_text+0x118>)
15922: 492f ldr r1, [pc, #188] ; (159e0 <lv_label_set_text+0x11c>)
15924: 462a mov r2, r5
15926: 4643 mov r3, r8
15928: 4788 blx r1
1592a: e7fe b.n 1592a <lv_label_set_text+0x66>
if(ext->text == text && ext->static_txt == 0) {
1592c: 6820 ldr r0, [r4, #0]
1592e: f8df 90d4 ldr.w r9, [pc, #212] ; 15a04 <lv_label_set_text+0x140>
15932: 4285 cmp r5, r0
15934: d11f bne.n 15976 <lv_label_set_text+0xb2>
15936: 7c23 ldrb r3, [r4, #16]
15938: 071b lsls r3, r3, #28
1593a: d425 bmi.n 15988 <lv_label_set_text+0xc4>
ext->text = lv_mem_realloc(ext->text, strlen(ext->text) + 1);
1593c: 4628 mov r0, r5
1593e: 47c8 blx r9
15940: 4b2b ldr r3, [pc, #172] ; (159f0 <lv_label_set_text+0x12c>)
15942: 1c41 adds r1, r0, #1
15944: 4628 mov r0, r5
15946: 4798 blx r3
15948: 6020 str r0, [r4, #0]
LV_ASSERT_MEM(ext->text);
1594a: 47b8 blx r7
1594c: 4605 mov r5, r0
1594e: b960 cbnz r0, 1596a <lv_label_set_text+0xa6>
15950: 4b1f ldr r3, [pc, #124] ; (159d0 <lv_label_set_text+0x10c>)
15952: 4920 ldr r1, [pc, #128] ; (159d4 <lv_label_set_text+0x110>)
15954: 9300 str r3, [sp, #0]
15956: 22d5 movs r2, #213 ; 0xd5
15958: 2003 movs r0, #3
1595a: 4e1f ldr r6, [pc, #124] ; (159d8 <lv_label_set_text+0x114>)
1595c: 47b0 blx r6
1595e: 6822 ldr r2, [r4, #0]
15960: 4824 ldr r0, [pc, #144] ; (159f4 <lv_label_set_text+0x130>)
15962: 491f ldr r1, [pc, #124] ; (159e0 <lv_label_set_text+0x11c>)
15964: 462b mov r3, r5
15966: 4788 blx r1
15968: e7fe b.n 15968 <lv_label_set_text+0xa4>
if(ext->text == NULL) return;
1596a: 6823 ldr r3, [r4, #0]
1596c: 2b00 cmp r3, #0
1596e: d1c6 bne.n 158fe <lv_label_set_text+0x3a>
}
15970: b003 add sp, #12
15972: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
if(ext->text != NULL && ext->static_txt == 0) {
15976: b138 cbz r0, 15988 <lv_label_set_text+0xc4>
15978: 7c23 ldrb r3, [r4, #16]
1597a: f013 0808 ands.w r8, r3, #8
1597e: d103 bne.n 15988 <lv_label_set_text+0xc4>
lv_mem_free(ext->text);
15980: 4b1d ldr r3, [pc, #116] ; (159f8 <lv_label_set_text+0x134>)
15982: 4798 blx r3
ext->text = NULL;
15984: f8c4 8000 str.w r8, [r4]
size_t len = strlen(text) + 1;
15988: 4628 mov r0, r5
1598a: 47c8 blx r9
ext->text = lv_mem_alloc(len);
1598c: 4b1b ldr r3, [pc, #108] ; (159fc <lv_label_set_text+0x138>)
1598e: 3001 adds r0, #1
15990: 4798 blx r3
15992: 6020 str r0, [r4, #0]
LV_ASSERT_MEM(ext->text);
15994: 47b8 blx r7
15996: 4607 mov r7, r0
15998: b960 cbnz r0, 159b4 <lv_label_set_text+0xf0>
1599a: 4b0d ldr r3, [pc, #52] ; (159d0 <lv_label_set_text+0x10c>)
1599c: 490d ldr r1, [pc, #52] ; (159d4 <lv_label_set_text+0x110>)
1599e: 9300 str r3, [sp, #0]
159a0: 22ee movs r2, #238 ; 0xee
159a2: 2003 movs r0, #3
159a4: 4d0c ldr r5, [pc, #48] ; (159d8 <lv_label_set_text+0x114>)
159a6: 47a8 blx r5
159a8: 6822 ldr r2, [r4, #0]
159aa: 4812 ldr r0, [pc, #72] ; (159f4 <lv_label_set_text+0x130>)
159ac: 490c ldr r1, [pc, #48] ; (159e0 <lv_label_set_text+0x11c>)
159ae: 463b mov r3, r7
159b0: 4788 blx r1
159b2: e7fe b.n 159b2 <lv_label_set_text+0xee>
if(ext->text == NULL) return;
159b4: 6820 ldr r0, [r4, #0]
159b6: 2800 cmp r0, #0
159b8: d0da beq.n 15970 <lv_label_set_text+0xac>
159ba: 4b11 ldr r3, [pc, #68] ; (15a00 <lv_label_set_text+0x13c>)
159bc: 4629 mov r1, r5
159be: 4798 blx r3
ext->static_txt = 0;
159c0: 7c23 ldrb r3, [r4, #16]
159c2: f36f 03c3 bfc r3, #3, #1
159c6: 7423 strb r3, [r4, #16]
159c8: e799 b.n 158fe <lv_label_set_text+0x3a>
159ca: bf00 nop
159cc: 00001a65 .word 0x00001a65
159d0: 0002c035 .word 0x0002c035
159d4: 0002bec5 .word 0x0002bec5
159d8: 0000eb79 .word 0x0000eb79
159dc: 00026943 .word 0x00026943
159e0: 00001a6d .word 0x00001a6d
159e4: 00002a09 .word 0x00002a09
159e8: 0000422d .word 0x0000422d
159ec: 000153e1 .word 0x000153e1
159f0: 0000f0a5 .word 0x0000f0a5
159f4: 00026842 .word 0x00026842
159f8: 0000ed75 .word 0x0000ed75
159fc: 0000ecbd .word 0x0000ecbd
15a00: 0001739d .word 0x0001739d
15a04: 00017481 .word 0x00017481
00015a08 <lv_label_set_text_static>:
{
15a08: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15a0a: 4b16 ldr r3, [pc, #88] ; (15a64 <lv_label_set_text_static+0x5c>)
{
15a0c: 4605 mov r5, r0
15a0e: 460e mov r6, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15a10: 4798 blx r3
15a12: 4604 mov r4, r0
15a14: b968 cbnz r0, 15a32 <lv_label_set_text_static+0x2a>
15a16: 4b14 ldr r3, [pc, #80] ; (15a68 <lv_label_set_text_static+0x60>)
15a18: 4914 ldr r1, [pc, #80] ; (15a6c <lv_label_set_text_static+0x64>)
15a1a: 9300 str r3, [sp, #0]
15a1c: f44f 72a6 mov.w r2, #332 ; 0x14c
15a20: 2003 movs r0, #3
15a22: 4e13 ldr r6, [pc, #76] ; (15a70 <lv_label_set_text_static+0x68>)
15a24: 47b0 blx r6
15a26: 4813 ldr r0, [pc, #76] ; (15a74 <lv_label_set_text_static+0x6c>)
15a28: 4913 ldr r1, [pc, #76] ; (15a78 <lv_label_set_text_static+0x70>)
15a2a: 462a mov r2, r5
15a2c: 4623 mov r3, r4
15a2e: 4788 blx r1
15a30: e7fe b.n 15a30 <lv_label_set_text_static+0x28>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15a32: 4b12 ldr r3, [pc, #72] ; (15a7c <lv_label_set_text_static+0x74>)
15a34: 4628 mov r0, r5
15a36: 4798 blx r3
if(ext->static_txt == 0 && ext->text != NULL) {
15a38: 7c03 ldrb r3, [r0, #16]
15a3a: f013 0708 ands.w r7, r3, #8
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15a3e: 4604 mov r4, r0
if(ext->static_txt == 0 && ext->text != NULL) {
15a40: d104 bne.n 15a4c <lv_label_set_text_static+0x44>
15a42: 6800 ldr r0, [r0, #0]
15a44: b110 cbz r0, 15a4c <lv_label_set_text_static+0x44>
lv_mem_free(ext->text);
15a46: 4b0e ldr r3, [pc, #56] ; (15a80 <lv_label_set_text_static+0x78>)
15a48: 4798 blx r3
ext->text = NULL;
15a4a: 6027 str r7, [r4, #0]
if(text != NULL) {
15a4c: b126 cbz r6, 15a58 <lv_label_set_text_static+0x50>
ext->static_txt = 1;
15a4e: 7c23 ldrb r3, [r4, #16]
ext->text = (char *)text;
15a50: 6026 str r6, [r4, #0]
ext->static_txt = 1;
15a52: f043 0308 orr.w r3, r3, #8
15a56: 7423 strb r3, [r4, #16]
lv_label_refr_text(label);
15a58: 4b0a ldr r3, [pc, #40] ; (15a84 <lv_label_set_text_static+0x7c>)
15a5a: 4628 mov r0, r5
}
15a5c: b003 add sp, #12
15a5e: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr}
lv_label_refr_text(label);
15a62: 4718 bx r3
15a64: 00001a65 .word 0x00001a65
15a68: 0002c05d .word 0x0002c05d
15a6c: 0002bec5 .word 0x0002bec5
15a70: 0000eb79 .word 0x0000eb79
15a74: 00026943 .word 0x00026943
15a78: 00001a6d .word 0x00001a6d
15a7c: 0000422d .word 0x0000422d
15a80: 0000ed75 .word 0x0000ed75
15a84: 000153e1 .word 0x000153e1
00015a88 <lv_label_set_long_mode>:
{
15a88: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15a8a: 4b23 ldr r3, [pc, #140] ; (15b18 <lv_label_set_long_mode+0x90>)
{
15a8c: 4604 mov r4, r0
15a8e: 460e mov r6, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15a90: 4798 blx r3
15a92: 4605 mov r5, r0
15a94: b968 cbnz r0, 15ab2 <lv_label_set_long_mode+0x2a>
15a96: 4b21 ldr r3, [pc, #132] ; (15b1c <lv_label_set_long_mode+0x94>)
15a98: 4921 ldr r1, [pc, #132] ; (15b20 <lv_label_set_long_mode+0x98>)
15a9a: 9300 str r3, [sp, #0]
15a9c: f240 1265 movw r2, #357 ; 0x165
15aa0: 2003 movs r0, #3
15aa2: 4e20 ldr r6, [pc, #128] ; (15b24 <lv_label_set_long_mode+0x9c>)
15aa4: 47b0 blx r6
15aa6: 4820 ldr r0, [pc, #128] ; (15b28 <lv_label_set_long_mode+0xa0>)
15aa8: 4920 ldr r1, [pc, #128] ; (15b2c <lv_label_set_long_mode+0xa4>)
15aaa: 4622 mov r2, r4
15aac: 462b mov r3, r5
15aae: 4788 blx r1
15ab0: e7fe b.n 15ab0 <lv_label_set_long_mode+0x28>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15ab2: 4b1f ldr r3, [pc, #124] ; (15b30 <lv_label_set_long_mode+0xa8>)
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_x);
15ab4: 4f1f ldr r7, [pc, #124] ; (15b34 <lv_label_set_long_mode+0xac>)
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15ab6: 4620 mov r0, r4
15ab8: 4798 blx r3
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_x);
15aba: 491f ldr r1, [pc, #124] ; (15b38 <lv_label_set_long_mode+0xb0>)
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15abc: 4605 mov r5, r0
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_x);
15abe: 4620 mov r0, r4
15ac0: 47b8 blx r7
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_y);
15ac2: 491e ldr r1, [pc, #120] ; (15b3c <lv_label_set_long_mode+0xb4>)
15ac4: 4620 mov r0, r4
15ac6: 47b8 blx r7
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x);
15ac8: 491d ldr r1, [pc, #116] ; (15b40 <lv_label_set_long_mode+0xb8>)
15aca: 4620 mov r0, r4
15acc: 47b8 blx r7
lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y);
15ace: 491d ldr r1, [pc, #116] ; (15b44 <lv_label_set_long_mode+0xbc>)
15ad0: 4620 mov r0, r4
15ad2: 47b8 blx r7
if(long_mode == LV_LABEL_LONG_SROLL || long_mode == LV_LABEL_LONG_SROLL_CIRC || long_mode == LV_LABEL_LONG_CROP)
15ad4: 1ef2 subs r2, r6, #3
ext->offset.x = 0;
15ad6: 2300 movs r3, #0
if(long_mode == LV_LABEL_LONG_SROLL || long_mode == LV_LABEL_LONG_SROLL_CIRC || long_mode == LV_LABEL_LONG_CROP)
15ad8: 2a02 cmp r2, #2
ext->offset.x = 0;
15ada: 60eb str r3, [r5, #12]
15adc: 7c2b ldrb r3, [r5, #16]
if(long_mode == LV_LABEL_LONG_SROLL || long_mode == LV_LABEL_LONG_SROLL_CIRC || long_mode == LV_LABEL_LONG_CROP)
15ade: bf8c ite hi
15ae0: 2200 movhi r2, #0
15ae2: 2201 movls r2, #1
15ae4: f362 13c7 bfi r3, r2, #7, #1
15ae8: 742b strb r3, [r5, #16]
if(ext->long_mode == LV_LABEL_LONG_DOT && ext->dot_end != LV_LABEL_DOT_END_INV) {
15aea: f003 0307 and.w r3, r3, #7
15aee: 2b02 cmp r3, #2
15af0: d107 bne.n 15b02 <lv_label_set_long_mode+0x7a>
15af2: 892a ldrh r2, [r5, #8]
15af4: f64f 73ff movw r3, #65535 ; 0xffff
15af8: 429a cmp r2, r3
15afa: d002 beq.n 15b02 <lv_label_set_long_mode+0x7a>
lv_label_revert_dots(label);
15afc: 4b12 ldr r3, [pc, #72] ; (15b48 <lv_label_set_long_mode+0xc0>)
15afe: 4620 mov r0, r4
15b00: 4798 blx r3
ext->long_mode = long_mode;
15b02: 7c2b ldrb r3, [r5, #16]
15b04: f366 0302 bfi r3, r6, #0, #3
15b08: 742b strb r3, [r5, #16]
lv_label_refr_text(label);
15b0a: 4b10 ldr r3, [pc, #64] ; (15b4c <lv_label_set_long_mode+0xc4>)
15b0c: 4620 mov r0, r4
}
15b0e: b003 add sp, #12
15b10: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr}
lv_label_refr_text(label);
15b14: 4718 bx r3
15b16: bf00 nop
15b18: 00001a65 .word 0x00001a65
15b1c: 0002c076 .word 0x0002c076
15b20: 0002bec5 .word 0x0002bec5
15b24: 0000eb79 .word 0x0000eb79
15b28: 00026943 .word 0x00026943
15b2c: 00001a6d .word 0x00001a6d
15b30: 0000422d .word 0x0000422d
15b34: 0000df35 .word 0x0000df35
15b38: 00002c0d .word 0x00002c0d
15b3c: 00002c6d .word 0x00002c6d
15b40: 00014e71 .word 0x00014e71
15b44: 00014e51 .word 0x00014e51
15b48: 00014dd9 .word 0x00014dd9
15b4c: 000153e1 .word 0x000153e1
00015b50 <lv_label_set_recolor>:
{
15b50: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15b52: 4b13 ldr r3, [pc, #76] ; (15ba0 <lv_label_set_recolor+0x50>)
{
15b54: 4604 mov r4, r0
15b56: 460d mov r5, r1
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15b58: 4798 blx r3
15b5a: 4606 mov r6, r0
15b5c: b968 cbnz r0, 15b7a <lv_label_set_recolor+0x2a>
15b5e: 4b11 ldr r3, [pc, #68] ; (15ba4 <lv_label_set_recolor+0x54>)
15b60: 4911 ldr r1, [pc, #68] ; (15ba8 <lv_label_set_recolor+0x58>)
15b62: 9300 str r3, [sp, #0]
15b64: f44f 72cd mov.w r2, #410 ; 0x19a
15b68: 2003 movs r0, #3
15b6a: 4d10 ldr r5, [pc, #64] ; (15bac <lv_label_set_recolor+0x5c>)
15b6c: 47a8 blx r5
15b6e: 4810 ldr r0, [pc, #64] ; (15bb0 <lv_label_set_recolor+0x60>)
15b70: 4910 ldr r1, [pc, #64] ; (15bb4 <lv_label_set_recolor+0x64>)
15b72: 4622 mov r2, r4
15b74: 4633 mov r3, r6
15b76: 4788 blx r1
15b78: e7fe b.n 15b78 <lv_label_set_recolor+0x28>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15b7a: 4b0f ldr r3, [pc, #60] ; (15bb8 <lv_label_set_recolor+0x68>)
15b7c: 4620 mov r0, r4
15b7e: 4798 blx r3
if(ext->recolor == en) return;
15b80: 7c03 ldrb r3, [r0, #16]
15b82: f3c3 1280 ubfx r2, r3, #6, #1
15b86: 42aa cmp r2, r5
15b88: d008 beq.n 15b9c <lv_label_set_recolor+0x4c>
ext->recolor = en == false ? 0 : 1;
15b8a: f365 1386 bfi r3, r5, #6, #1
15b8e: 7403 strb r3, [r0, #16]
lv_label_refr_text(label); /*Refresh the text because the potential colo codes in text needs to
15b90: 4b0a ldr r3, [pc, #40] ; (15bbc <lv_label_set_recolor+0x6c>)
15b92: 4620 mov r0, r4
}
15b94: b002 add sp, #8
15b96: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr}
lv_label_refr_text(label); /*Refresh the text because the potential colo codes in text needs to
15b9a: 4718 bx r3
}
15b9c: b002 add sp, #8
15b9e: bd70 pop {r4, r5, r6, pc}
15ba0: 00001a65 .word 0x00001a65
15ba4: 0002c08d .word 0x0002c08d
15ba8: 0002bec5 .word 0x0002bec5
15bac: 0000eb79 .word 0x0000eb79
15bb0: 00026943 .word 0x00026943
15bb4: 00001a6d .word 0x00001a6d
15bb8: 0000422d .word 0x0000422d
15bbc: 000153e1 .word 0x000153e1
00015bc0 <lv_label_create>:
{
15bc0: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
lv_obj_t * new_label = lv_obj_create(par, copy);
15bc4: 4b71 ldr r3, [pc, #452] ; (15d8c <lv_label_create+0x1cc>)
LV_ASSERT_MEM(new_label);
15bc6: f8df 8248 ldr.w r8, [pc, #584] ; 15e10 <lv_label_create+0x250>
{
15bca: b085 sub sp, #20
15bcc: 460f mov r7, r1
lv_obj_t * new_label = lv_obj_create(par, copy);
15bce: 4798 blx r3
15bd0: 4605 mov r5, r0
LV_ASSERT_MEM(new_label);
15bd2: 47c0 blx r8
15bd4: 4604 mov r4, r0
15bd6: b960 cbnz r0, 15bf2 <lv_label_create+0x32>
15bd8: 4b6d ldr r3, [pc, #436] ; (15d90 <lv_label_create+0x1d0>)
15bda: 496e ldr r1, [pc, #440] ; (15d94 <lv_label_create+0x1d4>)
15bdc: 9300 str r3, [sp, #0]
15bde: 2254 movs r2, #84 ; 0x54
15be0: 2003 movs r0, #3
15be2: 4e6d ldr r6, [pc, #436] ; (15d98 <lv_label_create+0x1d8>)
15be4: 47b0 blx r6
15be6: 486d ldr r0, [pc, #436] ; (15d9c <lv_label_create+0x1dc>)
15be8: 496d ldr r1, [pc, #436] ; (15da0 <lv_label_create+0x1e0>)
15bea: 462a mov r2, r5
15bec: 4623 mov r3, r4
15bee: 4788 blx r1
15bf0: e7fe b.n 15bf0 <lv_label_create+0x30>
if(new_label == NULL) return NULL;
15bf2: b925 cbnz r5, 15bfe <lv_label_create+0x3e>
15bf4: 2400 movs r4, #0
}
15bf6: 4620 mov r0, r4
15bf8: b005 add sp, #20
15bfa: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(new_label);
15bfe: 4c69 ldr r4, [pc, #420] ; (15da4 <lv_label_create+0x1e4>)
15c00: 6823 ldr r3, [r4, #0]
15c02: b91b cbnz r3, 15c0c <lv_label_create+0x4c>
15c04: 4b68 ldr r3, [pc, #416] ; (15da8 <lv_label_create+0x1e8>)
15c06: 4628 mov r0, r5
15c08: 4798 blx r3
15c0a: 6020 str r0, [r4, #0]
lv_obj_allocate_ext_attr(new_label, sizeof(lv_label_ext_t));
15c0c: 4b67 ldr r3, [pc, #412] ; (15dac <lv_label_create+0x1ec>)
lv_label_ext_t * ext = lv_obj_get_ext_attr(new_label);
15c0e: 4e68 ldr r6, [pc, #416] ; (15db0 <lv_label_create+0x1f0>)
lv_obj_allocate_ext_attr(new_label, sizeof(lv_label_ext_t));
15c10: 2114 movs r1, #20
15c12: 4628 mov r0, r5
15c14: 4798 blx r3
lv_label_ext_t * ext = lv_obj_get_ext_attr(new_label);
15c16: 4628 mov r0, r5
15c18: 47b0 blx r6
15c1a: 4604 mov r4, r0
LV_ASSERT_MEM(ext);
15c1c: 47c0 blx r8
15c1e: 4681 mov r9, r0
15c20: b960 cbnz r0, 15c3c <lv_label_create+0x7c>
15c22: 4b5b ldr r3, [pc, #364] ; (15d90 <lv_label_create+0x1d0>)
15c24: 495b ldr r1, [pc, #364] ; (15d94 <lv_label_create+0x1d4>)
15c26: 9300 str r3, [sp, #0]
15c28: 225d movs r2, #93 ; 0x5d
15c2a: 2003 movs r0, #3
15c2c: 4d5a ldr r5, [pc, #360] ; (15d98 <lv_label_create+0x1d8>)
15c2e: 47a8 blx r5
15c30: 485a ldr r0, [pc, #360] ; (15d9c <lv_label_create+0x1dc>)
15c32: 495b ldr r1, [pc, #364] ; (15da0 <lv_label_create+0x1e0>)
15c34: 4622 mov r2, r4
15c36: 464b mov r3, r9
15c38: 4788 blx r1
15c3a: e7fe b.n 15c3a <lv_label_create+0x7a>
if(ext == NULL) {
15c3c: b91c cbnz r4, 15c46 <lv_label_create+0x86>
lv_obj_del(new_label);
15c3e: 4b5d ldr r3, [pc, #372] ; (15db4 <lv_label_create+0x1f4>)
15c40: 4628 mov r0, r5
15c42: 4798 blx r3
return NULL;
15c44: e7d7 b.n 15bf6 <lv_label_create+0x36>
ext->dot_end = LV_LABEL_DOT_END_INV;
15c46: 4a5c ldr r2, [pc, #368] ; (15db8 <lv_label_create+0x1f8>)
lv_obj_set_design_cb(new_label, lv_label_design);
15c48: 495c ldr r1, [pc, #368] ; (15dbc <lv_label_create+0x1fc>)
15c4a: f8df 91c8 ldr.w r9, [pc, #456] ; 15e14 <lv_label_create+0x254>
ext->text = NULL;
15c4e: 2300 movs r3, #0
ext->offset.x = 0;
15c50: e9c4 2302 strd r2, r3, [r4, #8]
ext->dot.tmp_ptr = NULL;
15c54: e9c4 3300 strd r3, r3, [r4]
ext->long_mode = LV_LABEL_LONG_EXPAND;
15c58: 8a23 ldrh r3, [r4, #16]
15c5a: f423 73bf bic.w r3, r3, #382 ; 0x17e
15c5e: f023 0301 bic.w r3, r3, #1
15c62: f043 0330 orr.w r3, r3, #48 ; 0x30
15c66: 8223 strh r3, [r4, #16]
lv_obj_set_design_cb(new_label, lv_label_design);
15c68: 4628 mov r0, r5
15c6a: 4b55 ldr r3, [pc, #340] ; (15dc0 <lv_label_create+0x200>)
15c6c: 4798 blx r3
lv_obj_set_signal_cb(new_label, lv_label_signal);
15c6e: 4955 ldr r1, [pc, #340] ; (15dc4 <lv_label_create+0x204>)
15c70: 4b55 ldr r3, [pc, #340] ; (15dc8 <lv_label_create+0x208>)
15c72: 4628 mov r0, r5
15c74: 4798 blx r3
if(copy == NULL) {
15c76: b9c7 cbnz r7, 15caa <lv_label_create+0xea>
lv_theme_apply(new_label, LV_THEME_LABEL);
15c78: 4b54 ldr r3, [pc, #336] ; (15dcc <lv_label_create+0x20c>)
15c7a: 2112 movs r1, #18
15c7c: 4628 mov r0, r5
15c7e: 4798 blx r3
lv_obj_set_click(new_label, false);
15c80: 4b53 ldr r3, [pc, #332] ; (15dd0 <lv_label_create+0x210>)
15c82: 4639 mov r1, r7
15c84: 4628 mov r0, r5
15c86: 4798 blx r3
lv_label_set_long_mode(new_label, LV_LABEL_LONG_EXPAND);
15c88: 4639 mov r1, r7
15c8a: 4628 mov r0, r5
15c8c: 47c8 blx r9
lv_label_set_text(new_label, "Text");
15c8e: 4951 ldr r1, [pc, #324] ; (15dd4 <lv_label_create+0x214>)
15c90: 4b51 ldr r3, [pc, #324] ; (15dd8 <lv_label_create+0x218>)
15c92: 4628 mov r0, r5
15c94: 4798 blx r3
LV_LOG_INFO("label created");
15c96: 4b51 ldr r3, [pc, #324] ; (15ddc <lv_label_create+0x21c>)
15c98: 4c3f ldr r4, [pc, #252] ; (15d98 <lv_label_create+0x1d8>)
15c9a: 9300 str r3, [sp, #0]
15c9c: 493d ldr r1, [pc, #244] ; (15d94 <lv_label_create+0x1d4>)
15c9e: 4b3c ldr r3, [pc, #240] ; (15d90 <lv_label_create+0x1d0>)
15ca0: 22a8 movs r2, #168 ; 0xa8
15ca2: 2001 movs r0, #1
15ca4: 47a0 blx r4
return new_label;
15ca6: 462c mov r4, r5
15ca8: e7a5 b.n 15bf6 <lv_label_create+0x36>
lv_label_ext_t * copy_ext = lv_obj_get_ext_attr(copy);
15caa: 4638 mov r0, r7
15cac: 47b0 blx r6
lv_label_set_long_mode(new_label, lv_label_get_long_mode(copy));
15cae: 4b4c ldr r3, [pc, #304] ; (15de0 <lv_label_create+0x220>)
lv_label_ext_t * copy_ext = lv_obj_get_ext_attr(copy);
15cb0: 4606 mov r6, r0
lv_label_set_long_mode(new_label, lv_label_get_long_mode(copy));
15cb2: 4638 mov r0, r7
15cb4: 4798 blx r3
15cb6: 4601 mov r1, r0
15cb8: 4628 mov r0, r5
15cba: 47c8 blx r9
lv_label_set_recolor(new_label, lv_label_get_recolor(copy));
15cbc: 4b49 ldr r3, [pc, #292] ; (15de4 <lv_label_create+0x224>)
15cbe: 4638 mov r0, r7
15cc0: 4798 blx r3
15cc2: 4b49 ldr r3, [pc, #292] ; (15de8 <lv_label_create+0x228>)
15cc4: 4601 mov r1, r0
15cc6: 4628 mov r0, r5
15cc8: 4798 blx r3
lv_label_set_align(new_label, lv_label_get_align(copy));
15cca: 4b48 ldr r3, [pc, #288] ; (15dec <lv_label_create+0x22c>)
15ccc: 4638 mov r0, r7
15cce: 4798 blx r3
15cd0: 4b47 ldr r3, [pc, #284] ; (15df0 <lv_label_create+0x230>)
15cd2: 4601 mov r1, r0
15cd4: 4628 mov r0, r5
15cd6: 4798 blx r3
if(copy_ext->static_txt == 0)
15cd8: 7c33 ldrb r3, [r6, #16]
15cda: f013 0f08 tst.w r3, #8
lv_label_set_text(new_label, lv_label_get_text(copy));
15cde: 4638 mov r0, r7
15ce0: 4b44 ldr r3, [pc, #272] ; (15df4 <lv_label_create+0x234>)
if(copy_ext->static_txt == 0)
15ce2: d123 bne.n 15d2c <lv_label_create+0x16c>
lv_label_set_text(new_label, lv_label_get_text(copy));
15ce4: 4798 blx r3
15ce6: 4b3c ldr r3, [pc, #240] ; (15dd8 <lv_label_create+0x218>)
15ce8: 4601 mov r1, r0
15cea: 4628 mov r0, r5
lv_label_set_text_static(new_label, lv_label_get_text(copy));
15cec: 4798 blx r3
if(copy_ext->long_mode == LV_LABEL_LONG_DOT) {
15cee: 7c33 ldrb r3, [r6, #16]
15cf0: f003 0307 and.w r3, r3, #7
15cf4: 2b02 cmp r3, #2
15cf6: d12b bne.n 15d50 <lv_label_create+0x190>
ext->text = lv_mem_realloc(ext->text, _lv_mem_get_size(copy_ext->text));
15cf8: 6830 ldr r0, [r6, #0]
15cfa: f8df 911c ldr.w r9, [pc, #284] ; 15e18 <lv_label_create+0x258>
15cfe: 6827 ldr r7, [r4, #0]
15d00: 47c8 blx r9
15d02: 4b3d ldr r3, [pc, #244] ; (15df8 <lv_label_create+0x238>)
15d04: 4601 mov r1, r0
15d06: 4638 mov r0, r7
15d08: 4798 blx r3
15d0a: 6020 str r0, [r4, #0]
LV_ASSERT_MEM(ext->text);
15d0c: 47c0 blx r8
15d0e: 4607 mov r7, r0
15d10: b988 cbnz r0, 15d36 <lv_label_create+0x176>
15d12: 4b1f ldr r3, [pc, #124] ; (15d90 <lv_label_create+0x1d0>)
15d14: 491f ldr r1, [pc, #124] ; (15d94 <lv_label_create+0x1d4>)
15d16: 9300 str r3, [sp, #0]
15d18: 2295 movs r2, #149 ; 0x95
15d1a: 2003 movs r0, #3
15d1c: 4d1e ldr r5, [pc, #120] ; (15d98 <lv_label_create+0x1d8>)
15d1e: 47a8 blx r5
15d20: 6822 ldr r2, [r4, #0]
15d22: 481e ldr r0, [pc, #120] ; (15d9c <lv_label_create+0x1dc>)
15d24: 491e ldr r1, [pc, #120] ; (15da0 <lv_label_create+0x1e0>)
15d26: 463b mov r3, r7
15d28: 4788 blx r1
15d2a: e7fe b.n 15d2a <lv_label_create+0x16a>
lv_label_set_text_static(new_label, lv_label_get_text(copy));
15d2c: 4798 blx r3
15d2e: 4b33 ldr r3, [pc, #204] ; (15dfc <lv_label_create+0x23c>)
15d30: 4601 mov r1, r0
15d32: 4628 mov r0, r5
15d34: e7da b.n 15cec <lv_label_create+0x12c>
if(ext->text == NULL) return NULL;
15d36: 6827 ldr r7, [r4, #0]
15d38: 2f00 cmp r7, #0
15d3a: f43f af5b beq.w 15bf4 <lv_label_create+0x34>
_lv_memcpy(ext->text, copy_ext->text, _lv_mem_get_size(copy_ext->text));
15d3e: 6831 ldr r1, [r6, #0]
15d40: 9103 str r1, [sp, #12]
15d42: 4608 mov r0, r1
15d44: 47c8 blx r9
15d46: 9903 ldr r1, [sp, #12]
15d48: 4b2d ldr r3, [pc, #180] ; (15e00 <lv_label_create+0x240>)
15d4a: 4602 mov r2, r0
15d4c: 4638 mov r0, r7
15d4e: 4798 blx r3
if(copy_ext->dot_tmp_alloc && copy_ext->dot.tmp_ptr) {
15d50: 7c73 ldrb r3, [r6, #17]
15d52: 07db lsls r3, r3, #31
15d54: d514 bpl.n 15d80 <lv_label_create+0x1c0>
15d56: 6870 ldr r0, [r6, #4]
15d58: b190 cbz r0, 15d80 <lv_label_create+0x1c0>
uint16_t len = (uint16_t)strlen(copy_ext->dot.tmp_ptr);
15d5a: 4b2a ldr r3, [pc, #168] ; (15e04 <lv_label_create+0x244>)
15d5c: 4798 blx r3
lv_label_set_dot_tmp(new_label, ext->dot.tmp_ptr, len);
15d5e: 6861 ldr r1, [r4, #4]
15d60: 4b29 ldr r3, [pc, #164] ; (15e08 <lv_label_create+0x248>)
15d62: b282 uxth r2, r0
15d64: 4628 mov r0, r5
15d66: 4798 blx r3
ext->dot_tmp_alloc = copy_ext->dot_tmp_alloc;
15d68: 7c72 ldrb r2, [r6, #17]
15d6a: 7c63 ldrb r3, [r4, #17]
15d6c: f362 0300 bfi r3, r2, #0, #1
15d70: 7463 strb r3, [r4, #17]
ext->dot_end = copy_ext->dot_end;
15d72: 8933 ldrh r3, [r6, #8]
15d74: 8123 strh r3, [r4, #8]
lv_obj_refresh_style(new_label, LV_STYLE_PROP_ALL);
15d76: 21ff movs r1, #255 ; 0xff
15d78: 4b24 ldr r3, [pc, #144] ; (15e0c <lv_label_create+0x24c>)
15d7a: 4628 mov r0, r5
15d7c: 4798 blx r3
15d7e: e78a b.n 15c96 <lv_label_create+0xd6>
_lv_memcpy(ext->dot.tmp, copy_ext->dot.tmp, sizeof(ext->dot.tmp));
15d80: 2204 movs r2, #4
15d82: 4b1f ldr r3, [pc, #124] ; (15e00 <lv_label_create+0x240>)
15d84: 18b1 adds r1, r6, r2
15d86: 18a0 adds r0, r4, r2
15d88: 4798 blx r3
15d8a: e7ed b.n 15d68 <lv_label_create+0x1a8>
15d8c: 00003369 .word 0x00003369
15d90: 0002c0a2 .word 0x0002c0a2
15d94: 0002bec5 .word 0x0002bec5
15d98: 0000eb79 .word 0x0000eb79
15d9c: 00026842 .word 0x00026842
15da0: 00001a6d .word 0x00001a6d
15da4: 200057cc .word 0x200057cc
15da8: 000041e5 .word 0x000041e5
15dac: 000022fd .word 0x000022fd
15db0: 0000422d .word 0x0000422d
15db4: 000043e5 .word 0x000043e5
15db8: 0019ffff .word 0x0019ffff
15dbc: 00015f79 .word 0x00015f79
15dc0: 000022b5 .word 0x000022b5
15dc4: 00015e1d .word 0x00015e1d
15dc8: 00002261 .word 0x00002261
15dcc: 00010575 .word 0x00010575
15dd0: 000020e1 .word 0x000020e1
15dd4: 0002bf23 .word 0x0002bf23
15dd8: 000158c5 .word 0x000158c5
15ddc: 0002bf28 .word 0x0002bf28
15de0: 00015039 .word 0x00015039
15de4: 000150e9 .word 0x000150e9
15de8: 00015b51 .word 0x00015b51
15dec: 0001508d .word 0x0001508d
15df0: 00014f79 .word 0x00014f79
15df4: 00014fe9 .word 0x00014fe9
15df8: 0000f0a5 .word 0x0000f0a5
15dfc: 00015a09 .word 0x00015a09
15e00: 0000eec1 .word 0x0000eec1
15e04: 00017481 .word 0x00017481
15e08: 00014e91 .word 0x00014e91
15e0c: 00003015 .word 0x00003015
15e10: 00001a65 .word 0x00001a65
15e14: 00015a89 .word 0x00015a89
15e18: 0000eddd .word 0x0000eddd
00015e1c <lv_label_signal>:
if(sign == LV_SIGNAL_GET_STYLE) {
15e1c: 2908 cmp r1, #8
{
15e1e: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
15e22: 4604 mov r4, r0
15e24: 460e mov r6, r1
15e26: 4615 mov r5, r2
if(sign == LV_SIGNAL_GET_STYLE) {
15e28: d10e bne.n 15e48 <lv_label_signal+0x2c>
switch(type) {
15e2a: 7813 ldrb r3, [r2, #0]
15e2c: b133 cbz r3, 15e3c <lv_label_signal+0x20>
info->result = lv_label_get_style(label, info->part);
15e2e: 2300 movs r3, #0
15e30: 6053 str r3, [r2, #4]
else return ancestor_signal(label, sign, param);
15e32: 4b25 ldr r3, [pc, #148] ; (15ec8 <lv_label_signal+0xac>)
}
15e34: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
else return ancestor_signal(label, sign, param);
15e38: 681b ldr r3, [r3, #0]
15e3a: 4718 bx r3
style_dsc_p = &label->style_list;
15e3c: 3428 adds r4, #40 ; 0x28
info->result = lv_label_get_style(label, info->part);
15e3e: 6054 str r4, [r2, #4]
if(info->result != NULL) return LV_RES_OK;
15e40: 2701 movs r7, #1
}
15e42: 4638 mov r0, r7
15e44: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
res = ancestor_signal(label, sign, param);
15e48: 4b1f ldr r3, [pc, #124] ; (15ec8 <lv_label_signal+0xac>)
15e4a: 681b ldr r3, [r3, #0]
15e4c: 4798 blx r3
if(res != LV_RES_OK) return res;
15e4e: 2801 cmp r0, #1
res = ancestor_signal(label, sign, param);
15e50: 4607 mov r7, r0
if(res != LV_RES_OK) return res;
15e52: d1f6 bne.n 15e42 <lv_label_signal+0x26>
if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
15e54: 2e07 cmp r6, #7
15e56: d105 bne.n 15e64 <lv_label_signal+0x48>
15e58: 4628 mov r0, r5
15e5a: 491c ldr r1, [pc, #112] ; (15ecc <lv_label_signal+0xb0>)
15e5c: 4b1c ldr r3, [pc, #112] ; (15ed0 <lv_label_signal+0xb4>)
}
15e5e: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);
15e62: 4718 bx r3
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15e64: 4b1b ldr r3, [pc, #108] ; (15ed4 <lv_label_signal+0xb8>)
15e66: 4620 mov r0, r4
15e68: 4798 blx r3
15e6a: 4680 mov r8, r0
if(sign == LV_SIGNAL_CLEANUP) {
15e6c: b966 cbnz r6, 15e88 <lv_label_signal+0x6c>
if(ext->static_txt == 0) {
15e6e: 7c03 ldrb r3, [r0, #16]
15e70: f013 0508 ands.w r5, r3, #8
15e74: d104 bne.n 15e80 <lv_label_signal+0x64>
lv_mem_free(ext->text);
15e76: 6800 ldr r0, [r0, #0]
15e78: 4b17 ldr r3, [pc, #92] ; (15ed8 <lv_label_signal+0xbc>)
15e7a: 4798 blx r3
ext->text = NULL;
15e7c: f8c8 5000 str.w r5, [r8]
lv_label_dot_tmp_free(label);
15e80: 4b16 ldr r3, [pc, #88] ; (15edc <lv_label_signal+0xc0>)
15e82: 4620 mov r0, r4
lv_label_refr_text(label);
15e84: 4798 blx r3
15e86: e7dc b.n 15e42 <lv_label_signal+0x26>
else if(sign == LV_SIGNAL_STYLE_CHG) {
15e88: 2e04 cmp r6, #4
15e8a: d105 bne.n 15e98 <lv_label_signal+0x7c>
lv_label_revert_dots(label);
15e8c: 4b14 ldr r3, [pc, #80] ; (15ee0 <lv_label_signal+0xc4>)
15e8e: 4620 mov r0, r4
15e90: 4798 blx r3
lv_label_refr_text(label);
15e92: 4b14 ldr r3, [pc, #80] ; (15ee4 <lv_label_signal+0xc8>)
15e94: 4620 mov r0, r4
15e96: e7f5 b.n 15e84 <lv_label_signal+0x68>
else if(sign == LV_SIGNAL_COORD_CHG) {
15e98: 2e02 cmp r6, #2
15e9a: d1d2 bne.n 15e42 <lv_label_signal+0x26>
15e9c: 8a23 ldrh r3, [r4, #16]
15e9e: 8aa2 ldrh r2, [r4, #20]
15ea0: 8829 ldrh r1, [r5, #0]
15ea2: 1ad2 subs r2, r2, r3
15ea4: 88ab ldrh r3, [r5, #4]
15ea6: 1a5b subs r3, r3, r1
if(lv_area_get_width(&label->coords) != lv_area_get_width(param) ||
15ea8: b292 uxth r2, r2
15eaa: b29b uxth r3, r3
15eac: 429a cmp r2, r3
15eae: d1ed bne.n 15e8c <lv_label_signal+0x70>
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
15eb0: 8a63 ldrh r3, [r4, #18]
15eb2: 8ae2 ldrh r2, [r4, #22]
15eb4: 8869 ldrh r1, [r5, #2]
15eb6: 1ad2 subs r2, r2, r3
15eb8: 88eb ldrh r3, [r5, #6]
15eba: 1a5b subs r3, r3, r1
15ebc: b292 uxth r2, r2
15ebe: b29b uxth r3, r3
15ec0: 429a cmp r2, r3
15ec2: d1e3 bne.n 15e8c <lv_label_signal+0x70>
15ec4: e7bd b.n 15e42 <lv_label_signal+0x26>
15ec6: bf00 nop
15ec8: 200057cc .word 0x200057cc
15ecc: 0002bf36 .word 0x0002bf36
15ed0: 00004511 .word 0x00004511
15ed4: 0000422d .word 0x0000422d
15ed8: 0000ed75 .word 0x0000ed75
15edc: 00014dad .word 0x00014dad
15ee0: 00014dd9 .word 0x00014dd9
15ee4: 000153e1 .word 0x000153e1
00015ee8 <lv_label_get_text_sel_start>:
{
15ee8: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15eea: 4b0b ldr r3, [pc, #44] ; (15f18 <lv_label_get_text_sel_start+0x30>)
{
15eec: 4605 mov r5, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15eee: 4798 blx r3
15ef0: 4604 mov r4, r0
15ef2: b968 cbnz r0, 15f10 <lv_label_get_text_sel_start+0x28>
15ef4: 4b09 ldr r3, [pc, #36] ; (15f1c <lv_label_get_text_sel_start+0x34>)
15ef6: 490a ldr r1, [pc, #40] ; (15f20 <lv_label_get_text_sel_start+0x38>)
15ef8: 9300 str r3, [sp, #0]
15efa: f240 321d movw r2, #797 ; 0x31d
15efe: 2003 movs r0, #3
15f00: 4e08 ldr r6, [pc, #32] ; (15f24 <lv_label_get_text_sel_start+0x3c>)
15f02: 47b0 blx r6
15f04: 4808 ldr r0, [pc, #32] ; (15f28 <lv_label_get_text_sel_start+0x40>)
15f06: 4909 ldr r1, [pc, #36] ; (15f2c <lv_label_get_text_sel_start+0x44>)
15f08: 462a mov r2, r5
15f0a: 4623 mov r3, r4
15f0c: 4788 blx r1
15f0e: e7fe b.n 15f0e <lv_label_get_text_sel_start+0x26>
}
15f10: f64f 70ff movw r0, #65535 ; 0xffff
15f14: b002 add sp, #8
15f16: bd70 pop {r4, r5, r6, pc}
15f18: 00001a65 .word 0x00001a65
15f1c: 0002c0ca .word 0x0002c0ca
15f20: 0002bec5 .word 0x0002bec5
15f24: 0000eb79 .word 0x0000eb79
15f28: 00026943 .word 0x00026943
15f2c: 00001a6d .word 0x00001a6d
00015f30 <lv_label_get_text_sel_end>:
{
15f30: b573 push {r0, r1, r4, r5, r6, lr}
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15f32: 4b0b ldr r3, [pc, #44] ; (15f60 <lv_label_get_text_sel_end+0x30>)
{
15f34: 4605 mov r5, r0
LV_ASSERT_OBJ(label, LV_OBJX_NAME);
15f36: 4798 blx r3
15f38: 4604 mov r4, r0
15f3a: b968 cbnz r0, 15f58 <lv_label_get_text_sel_end+0x28>
15f3c: 4b09 ldr r3, [pc, #36] ; (15f64 <lv_label_get_text_sel_end+0x34>)
15f3e: 490a ldr r1, [pc, #40] ; (15f68 <lv_label_get_text_sel_end+0x38>)
15f40: 9300 str r3, [sp, #0]
15f42: f44f 724c mov.w r2, #816 ; 0x330
15f46: 2003 movs r0, #3
15f48: 4e08 ldr r6, [pc, #32] ; (15f6c <lv_label_get_text_sel_end+0x3c>)
15f4a: 47b0 blx r6
15f4c: 4808 ldr r0, [pc, #32] ; (15f70 <lv_label_get_text_sel_end+0x40>)
15f4e: 4909 ldr r1, [pc, #36] ; (15f74 <lv_label_get_text_sel_end+0x44>)
15f50: 462a mov r2, r5
15f52: 4623 mov r3, r4
15f54: 4788 blx r1
15f56: e7fe b.n 15f56 <lv_label_get_text_sel_end+0x26>
}
15f58: f64f 70ff movw r0, #65535 ; 0xffff
15f5c: b002 add sp, #8
15f5e: bd70 pop {r4, r5, r6, pc}
15f60: 00001a65 .word 0x00001a65
15f64: 0002c0e6 .word 0x0002c0e6
15f68: 0002bec5 .word 0x0002bec5
15f6c: 0000eb79 .word 0x0000eb79
15f70: 00026943 .word 0x00026943
15f74: 00001a6d .word 0x00001a6d
00015f78 <lv_label_design>:
{
15f78: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
if(mode == LV_DESIGN_COVER_CHK)
15f7c: 2a02 cmp r2, #2
{
15f7e: b0a9 sub sp, #164 ; 0xa4
15f80: 4605 mov r5, r0
15f82: 4688 mov r8, r1
15f84: 4617 mov r7, r2
if(mode == LV_DESIGN_COVER_CHK)
15f86: f000 80fa beq.w 1617e <lv_label_design+0x206>
else if(mode == LV_DESIGN_DRAW_MAIN) {
15f8a: 2a00 cmp r2, #0
15f8c: f040 8100 bne.w 16190 <lv_label_design+0x218>
lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
15f90: 4b80 ldr r3, [pc, #512] ; (16194 <lv_label_design+0x21c>)
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
15f92: f8df 9238 ldr.w r9, [pc, #568] ; 161cc <lv_label_design+0x254>
15f96: 4798 blx r3
15f98: 2204 movs r2, #4
15f9a: 4639 mov r1, r7
15f9c: 4604 mov r4, r0
15f9e: 4628 mov r0, r5
15fa0: 47c8 blx r9
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
15fa2: 2205 movs r2, #5
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar)
15fa4: 4606 mov r6, r0
_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar)
15fa6: 4639 mov r1, r7
15fa8: 4628 mov r0, r5
15faa: 47c8 blx r9
15fac: 6969 ldr r1, [r5, #20]
15fae: 4603 mov r3, r0
15fb0: 6928 ldr r0, [r5, #16]
15fb2: aa06 add r2, sp, #24
15fb4: c203 stmia r2!, {r0, r1}
bg_coords.x1 -= w;
15fb6: f8bd 2018 ldrh.w r2, [sp, #24]
15fba: b2b0 uxth r0, r6
15fbc: 1a12 subs r2, r2, r0
15fbe: f8ad 2018 strh.w r2, [sp, #24]
bg_coords.x2 += w;
15fc2: f8bd 201c ldrh.w r2, [sp, #28]
15fc6: 4410 add r0, r2
15fc8: f8ad 001c strh.w r0, [sp, #28]
bg_coords.y1 -= h;
15fcc: b298 uxth r0, r3
15fce: f8bd 301a ldrh.w r3, [sp, #26]
15fd2: 1a1b subs r3, r3, r0
15fd4: f8ad 301a strh.w r3, [sp, #26]
bg_coords.y2 += h;
15fd8: f8bd 301e ldrh.w r3, [sp, #30]
15fdc: 4418 add r0, r3
15fde: f8ad 001e strh.w r0, [sp, #30]
lv_draw_rect_dsc_init(&draw_rect_dsc);
15fe2: 4b6d ldr r3, [pc, #436] ; (16198 <lv_label_design+0x220>)
15fe4: a813 add r0, sp, #76 ; 0x4c
15fe6: 4798 blx r3
lv_obj_init_draw_rect_dsc(label, LV_LABEL_PART_MAIN, &draw_rect_dsc);
15fe8: 4b6c ldr r3, [pc, #432] ; (1619c <lv_label_design+0x224>)
15fea: aa13 add r2, sp, #76 ; 0x4c
15fec: 4639 mov r1, r7
15fee: 4628 mov r0, r5
15ff0: 4798 blx r3
lv_draw_rect(&bg_coords, clip_area, &draw_rect_dsc);
15ff2: aa13 add r2, sp, #76 ; 0x4c
15ff4: 4b6a ldr r3, [pc, #424] ; (161a0 <lv_label_design+0x228>)
15ff6: 4641 mov r1, r8
15ff8: a806 add r0, sp, #24
15ffa: 4798 blx r3
get_txt_coords(label, &txt_coords);
15ffc: 4b69 ldr r3, [pc, #420] ; (161a4 <lv_label_design+0x22c>)
15ffe: a908 add r1, sp, #32
16000: 4628 mov r0, r5
16002: 4798 blx r3
bool is_common = _lv_area_intersect(&txt_clip, clip_area, &txt_coords);
16004: 4b68 ldr r3, [pc, #416] ; (161a8 <lv_label_design+0x230>)
16006: aa08 add r2, sp, #32
16008: 4641 mov r1, r8
1600a: a80a add r0, sp, #40 ; 0x28
1600c: 4798 blx r3
if(!is_common) return LV_DESIGN_RES_OK;
1600e: 2800 cmp r0, #0
16010: f000 80b5 beq.w 1617e <lv_label_design+0x206>
lv_label_align_t align = lv_label_get_align(label);
16014: 4b65 ldr r3, [pc, #404] ; (161ac <lv_label_design+0x234>)
16016: 4628 mov r0, r5
16018: 4798 blx r3
if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR;
1601a: 7c23 ldrb r3, [r4, #16]
lv_txt_flag_t flag = LV_TXT_FLAG_NONE;
1601c: f3c3 1680 ubfx r6, r3, #6, #1
if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND;
16020: 061a lsls r2, r3, #24
16022: bf48 it mi
16024: f046 0602 orrmi.w r6, r6, #2
if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT;
16028: 075b lsls r3, r3, #29
1602a: bf08 it eq
1602c: f046 0610 orreq.w r6, r6, #16
if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER;
16030: 2801 cmp r0, #1
16032: f040 80a8 bne.w 16186 <lv_label_design+0x20e>
16036: f046 0604 orr.w r6, r6, #4
lv_draw_label_dsc_init(&label_draw_dsc);
1603a: 4b5d ldr r3, [pc, #372] ; (161b0 <lv_label_design+0x238>)
1603c: a80c add r0, sp, #48 ; 0x30
1603e: 4798 blx r3
label_draw_dsc.sel_start = lv_label_get_text_sel_start(label);
16040: 4b5c ldr r3, [pc, #368] ; (161b4 <lv_label_design+0x23c>)
16042: 4628 mov r0, r5
16044: 4798 blx r3
label_draw_dsc.sel_end = lv_label_get_text_sel_end(label);
16046: 4b5c ldr r3, [pc, #368] ; (161b8 <lv_label_design+0x240>)
label_draw_dsc.sel_start = lv_label_get_text_sel_start(label);
16048: f8ad 003e strh.w r0, [sp, #62] ; 0x3e
label_draw_dsc.sel_end = lv_label_get_text_sel_end(label);
1604c: 4628 mov r0, r5
1604e: 4798 blx r3
label_draw_dsc.ofs_x = ext->offset.x;
16050: 89a3 ldrh r3, [r4, #12]
16052: f8ad 3042 strh.w r3, [sp, #66] ; 0x42
label_draw_dsc.ofs_y = ext->offset.y;
16056: 89e3 ldrh r3, [r4, #14]
label_draw_dsc.sel_end = lv_label_get_text_sel_end(label);
16058: f8ad 0040 strh.w r0, [sp, #64] ; 0x40
label_draw_dsc.ofs_y = ext->offset.y;
1605c: f8ad 3044 strh.w r3, [sp, #68] ; 0x44
lv_obj_init_draw_label_dsc(label, LV_LABEL_PART_MAIN, &label_draw_dsc);
16060: aa0c add r2, sp, #48 ; 0x30
16062: 4b56 ldr r3, [pc, #344] ; (161bc <lv_label_design+0x244>)
label_draw_dsc.flag = flag;
16064: f88d 6047 strb.w r6, [sp, #71] ; 0x47
lv_obj_init_draw_label_dsc(label, LV_LABEL_PART_MAIN, &label_draw_dsc);
16068: 2100 movs r1, #0
1606a: 4628 mov r0, r5
1606c: 4798 blx r3
if((ext->long_mode == LV_LABEL_LONG_SROLL || ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) &&
1606e: 7c23 ldrb r3, [r4, #16]
16070: f003 0207 and.w r2, r3, #7
16074: 3a03 subs r2, #3
16076: 2a01 cmp r2, #1
16078: d824 bhi.n 160c4 <lv_label_design+0x14c>
(ext->align == LV_LABEL_ALIGN_CENTER || ext->align == LV_LABEL_ALIGN_RIGHT)) {
1607a: f003 0330 and.w r3, r3, #48 ; 0x30
if((ext->long_mode == LV_LABEL_LONG_SROLL || ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) &&
1607e: 2b10 cmp r3, #16
16080: d001 beq.n 16086 <lv_label_design+0x10e>
(ext->align == LV_LABEL_ALIGN_CENTER || ext->align == LV_LABEL_ALIGN_RIGHT)) {
16082: 2b20 cmp r3, #32
16084: d11e bne.n 160c4 <lv_label_design+0x14c>
_lv_txt_get_size(&size, ext->text, label_draw_dsc.font, label_draw_dsc.letter_space, label_draw_dsc.line_space,
16086: f647 4318 movw r3, #31768 ; 0x7c18
1608a: 9301 str r3, [sp, #4]
1608c: f9bd 303a ldrsh.w r3, [sp, #58] ; 0x3a
16090: 9300 str r3, [sp, #0]
16092: 9602 str r6, [sp, #8]
16094: f9bd 303c ldrsh.w r3, [sp, #60] ; 0x3c
16098: 9a0d ldr r2, [sp, #52] ; 0x34
1609a: 6821 ldr r1, [r4, #0]
1609c: 4d48 ldr r5, [pc, #288] ; (161c0 <lv_label_design+0x248>)
1609e: a805 add r0, sp, #20
160a0: 47a8 blx r5
return (lv_coord_t)(area_p->x2 - area_p->x1 + 1);
160a2: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24
160a6: f8bd 2020 ldrh.w r2, [sp, #32]
160aa: 3301 adds r3, #1
160ac: 1a9b subs r3, r3, r2
if(size.x > lv_area_get_width(&txt_coords)) {
160ae: f9bd 2014 ldrsh.w r2, [sp, #20]
160b2: b21b sxth r3, r3
160b4: 429a cmp r2, r3
label_draw_dsc.flag &= ~LV_TXT_FLAG_CENTER;
160b6: bfc2 ittt gt
160b8: f89d 3047 ldrbgt.w r3, [sp, #71] ; 0x47
160bc: f023 030c bicgt.w r3, r3, #12
160c0: f88d 3047 strbgt.w r3, [sp, #71] ; 0x47
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
160c4: f04f 0900 mov.w r9, #0
160c8: f8cd 9000 str.w r9, [sp]
160cc: 6823 ldr r3, [r4, #0]
160ce: f8df 80f8 ldr.w r8, [pc, #248] ; 161c8 <lv_label_design+0x250>
160d2: aa0c add r2, sp, #48 ; 0x30
160d4: a90a add r1, sp, #40 ; 0x28
160d6: a808 add r0, sp, #32
160d8: 47c0 blx r8
if(ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) {
160da: 7c23 ldrb r3, [r4, #16]
160dc: f003 0307 and.w r3, r3, #7
160e0: 2b04 cmp r3, #4
160e2: d14c bne.n 1617e <lv_label_design+0x206>
_lv_txt_get_size(&size, ext->text, label_draw_dsc.font, label_draw_dsc.letter_space, label_draw_dsc.line_space,
160e4: f647 4318 movw r3, #31768 ; 0x7c18
160e8: 9301 str r3, [sp, #4]
160ea: f9bd 303a ldrsh.w r3, [sp, #58] ; 0x3a
160ee: 9300 str r3, [sp, #0]
160f0: 9602 str r6, [sp, #8]
160f2: f9bd 303c ldrsh.w r3, [sp, #60] ; 0x3c
160f6: 9a0d ldr r2, [sp, #52] ; 0x34
160f8: 6821 ldr r1, [r4, #0]
160fa: 4d31 ldr r5, [pc, #196] ; (161c0 <lv_label_design+0x248>)
160fc: a805 add r0, sp, #20
160fe: 47a8 blx r5
16100: f8bd 2024 ldrh.w r2, [sp, #36] ; 0x24
16104: f8bd 1020 ldrh.w r1, [sp, #32]
if(size.x > lv_area_get_width(&txt_coords)) {
16108: f9bd 3014 ldrsh.w r3, [sp, #20]
1610c: 3201 adds r2, #1
1610e: 1a52 subs r2, r2, r1
16110: b212 sxth r2, r2
16112: 4293 cmp r3, r2
16114: dd16 ble.n 16144 <lv_label_design+0x1cc>
label_draw_dsc.ofs_x = ext->offset.x + size.x +
16116: 89a2 ldrh r2, [r4, #12]
lv_font_get_glyph_width(label_draw_dsc.font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT;
16118: 980d ldr r0, [sp, #52] ; 0x34
label_draw_dsc.ofs_x = ext->offset.x + size.x +
1611a: 4413 add r3, r2
lv_font_get_glyph_width(label_draw_dsc.font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT;
1611c: 2220 movs r2, #32
1611e: 4611 mov r1, r2
label_draw_dsc.ofs_x = ext->offset.x + size.x +
16120: b29d uxth r5, r3
lv_font_get_glyph_width(label_draw_dsc.font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT;
16122: 4b28 ldr r3, [pc, #160] ; (161c4 <lv_label_design+0x24c>)
16124: 4798 blx r3
label_draw_dsc.ofs_y = ext->offset.y;
16126: 89e3 ldrh r3, [r4, #14]
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
16128: f8cd 9000 str.w r9, [sp]
label_draw_dsc.ofs_x = ext->offset.x + size.x +
1612c: eb00 0040 add.w r0, r0, r0, lsl #1
16130: 4405 add r5, r0
label_draw_dsc.ofs_y = ext->offset.y;
16132: f8ad 3044 strh.w r3, [sp, #68] ; 0x44
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
16136: aa0c add r2, sp, #48 ; 0x30
16138: 6823 ldr r3, [r4, #0]
label_draw_dsc.ofs_x = ext->offset.x + size.x +
1613a: f8ad 5042 strh.w r5, [sp, #66] ; 0x42
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
1613e: a90a add r1, sp, #40 ; 0x28
16140: a808 add r0, sp, #32
16142: 47c0 blx r8
return (lv_coord_t)(area_p->y2 - area_p->y1 + 1);
16144: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26
16148: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22
if(size.y > lv_area_get_height(&txt_coords)) {
1614c: f9bd 2016 ldrsh.w r2, [sp, #22]
16150: 3301 adds r3, #1
16152: 1a5b subs r3, r3, r1
16154: b21b sxth r3, r3
16156: 429a cmp r2, r3
16158: dd11 ble.n 1617e <lv_label_design+0x206>
label_draw_dsc.ofs_x = ext->offset.x;
1615a: 89a3 ldrh r3, [r4, #12]
1615c: f8ad 3042 strh.w r3, [sp, #66] ; 0x42
16160: 9b0d ldr r3, [sp, #52] ; 0x34
label_draw_dsc.ofs_y = ext->offset.y + size.y + lv_font_get_line_height(label_draw_dsc.font);
16162: 891b ldrh r3, [r3, #8]
16164: 441a add r2, r3
16166: 89e3 ldrh r3, [r4, #14]
16168: 441a add r2, r3
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
1616a: 2300 movs r3, #0
1616c: 9300 str r3, [sp, #0]
1616e: 6823 ldr r3, [r4, #0]
label_draw_dsc.ofs_y = ext->offset.y + size.y + lv_font_get_line_height(label_draw_dsc.font);
16170: f8ad 2044 strh.w r2, [sp, #68] ; 0x44
lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint);
16174: 4c14 ldr r4, [pc, #80] ; (161c8 <lv_label_design+0x250>)
16176: aa0c add r2, sp, #48 ; 0x30
16178: a90a add r1, sp, #40 ; 0x28
1617a: a808 add r0, sp, #32
1617c: 47a0 blx r4
}
1617e: 4638 mov r0, r7
16180: b029 add sp, #164 ; 0xa4
16182: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
if(align == LV_LABEL_ALIGN_RIGHT) flag |= LV_TXT_FLAG_RIGHT;
16186: 2802 cmp r0, #2
16188: bf08 it eq
1618a: f046 0608 orreq.w r6, r6, #8
1618e: e754 b.n 1603a <lv_label_design+0xc2>
return LV_DESIGN_RES_OK;
16190: 2700 movs r7, #0
16192: e7f4 b.n 1617e <lv_label_design+0x206>
16194: 0000422d .word 0x0000422d
16198: 00009e25 .word 0x00009e25
1619c: 0000452d .word 0x0000452d
161a0: 00009e71 .word 0x00009e71
161a4: 00014f1d .word 0x00014f1d
161a8: 0000e111 .word 0x0000e111
161ac: 0001508d .word 0x0001508d
161b0: 00007ac9 .word 0x00007ac9
161b4: 00015ee9 .word 0x00015ee9
161b8: 00015f31 .word 0x00015f31
161bc: 00004a69 .word 0x00004a69
161c0: 0001042d .word 0x0001042d
161c4: 0000d3f9 .word 0x0000d3f9
161c8: 00007af9 .word 0x00007af9
161cc: 00003995 .word 0x00003995
000161d0 <__aeabi_drsub>:
161d0: f081 4100 eor.w r1, r1, #2147483648 ; 0x80000000
161d4: e002 b.n 161dc <__adddf3>
161d6: bf00 nop
000161d8 <__aeabi_dsub>:
161d8: f083 4300 eor.w r3, r3, #2147483648 ; 0x80000000
000161dc <__adddf3>:
161dc: b530 push {r4, r5, lr}
161de: ea4f 0441 mov.w r4, r1, lsl #1
161e2: ea4f 0543 mov.w r5, r3, lsl #1
161e6: ea94 0f05 teq r4, r5
161ea: bf08 it eq
161ec: ea90 0f02 teqeq r0, r2
161f0: bf1f itttt ne
161f2: ea54 0c00 orrsne.w ip, r4, r0
161f6: ea55 0c02 orrsne.w ip, r5, r2
161fa: ea7f 5c64 mvnsne.w ip, r4, asr #21
161fe: ea7f 5c65 mvnsne.w ip, r5, asr #21
16202: f000 80e2 beq.w 163ca <__adddf3+0x1ee>
16206: ea4f 5454 mov.w r4, r4, lsr #21
1620a: ebd4 5555 rsbs r5, r4, r5, lsr #21
1620e: bfb8 it lt
16210: 426d neglt r5, r5
16212: dd0c ble.n 1622e <__adddf3+0x52>
16214: 442c add r4, r5
16216: ea80 0202 eor.w r2, r0, r2
1621a: ea81 0303 eor.w r3, r1, r3
1621e: ea82 0000 eor.w r0, r2, r0
16222: ea83 0101 eor.w r1, r3, r1
16226: ea80 0202 eor.w r2, r0, r2
1622a: ea81 0303 eor.w r3, r1, r3
1622e: 2d36 cmp r5, #54 ; 0x36
16230: bf88 it hi
16232: bd30 pophi {r4, r5, pc}
16234: f011 4f00 tst.w r1, #2147483648 ; 0x80000000
16238: ea4f 3101 mov.w r1, r1, lsl #12
1623c: f44f 1c80 mov.w ip, #1048576 ; 0x100000
16240: ea4c 3111 orr.w r1, ip, r1, lsr #12
16244: d002 beq.n 1624c <__adddf3+0x70>
16246: 4240 negs r0, r0
16248: eb61 0141 sbc.w r1, r1, r1, lsl #1
1624c: f013 4f00 tst.w r3, #2147483648 ; 0x80000000
16250: ea4f 3303 mov.w r3, r3, lsl #12
16254: ea4c 3313 orr.w r3, ip, r3, lsr #12
16258: d002 beq.n 16260 <__adddf3+0x84>
1625a: 4252 negs r2, r2
1625c: eb63 0343 sbc.w r3, r3, r3, lsl #1
16260: ea94 0f05 teq r4, r5
16264: f000 80a7 beq.w 163b6 <__adddf3+0x1da>
16268: f1a4 0401 sub.w r4, r4, #1
1626c: f1d5 0e20 rsbs lr, r5, #32
16270: db0d blt.n 1628e <__adddf3+0xb2>
16272: fa02 fc0e lsl.w ip, r2, lr
16276: fa22 f205 lsr.w r2, r2, r5
1627a: 1880 adds r0, r0, r2
1627c: f141 0100 adc.w r1, r1, #0
16280: fa03 f20e lsl.w r2, r3, lr
16284: 1880 adds r0, r0, r2
16286: fa43 f305 asr.w r3, r3, r5
1628a: 4159 adcs r1, r3
1628c: e00e b.n 162ac <__adddf3+0xd0>
1628e: f1a5 0520 sub.w r5, r5, #32
16292: f10e 0e20 add.w lr, lr, #32
16296: 2a01 cmp r2, #1
16298: fa03 fc0e lsl.w ip, r3, lr
1629c: bf28 it cs
1629e: f04c 0c02 orrcs.w ip, ip, #2
162a2: fa43 f305 asr.w r3, r3, r5
162a6: 18c0 adds r0, r0, r3
162a8: eb51 71e3 adcs.w r1, r1, r3, asr #31
162ac: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000
162b0: d507 bpl.n 162c2 <__adddf3+0xe6>
162b2: f04f 0e00 mov.w lr, #0
162b6: f1dc 0c00 rsbs ip, ip, #0
162ba: eb7e 0000 sbcs.w r0, lr, r0
162be: eb6e 0101 sbc.w r1, lr, r1
162c2: f5b1 1f80 cmp.w r1, #1048576 ; 0x100000
162c6: d31b bcc.n 16300 <__adddf3+0x124>
162c8: f5b1 1f00 cmp.w r1, #2097152 ; 0x200000
162cc: d30c bcc.n 162e8 <__adddf3+0x10c>
162ce: 0849 lsrs r1, r1, #1
162d0: ea5f 0030 movs.w r0, r0, rrx
162d4: ea4f 0c3c mov.w ip, ip, rrx
162d8: f104 0401 add.w r4, r4, #1
162dc: ea4f 5244 mov.w r2, r4, lsl #21
162e0: f512 0f80 cmn.w r2, #4194304 ; 0x400000
162e4: f080 809a bcs.w 1641c <__adddf3+0x240>
162e8: f1bc 4f00 cmp.w ip, #2147483648 ; 0x80000000
162ec: bf08 it eq
162ee: ea5f 0c50 movseq.w ip, r0, lsr #1
162f2: f150 0000 adcs.w r0, r0, #0
162f6: eb41 5104 adc.w r1, r1, r4, lsl #20
162fa: ea41 0105 orr.w r1, r1, r5
162fe: bd30 pop {r4, r5, pc}
16300: ea5f 0c4c movs.w ip, ip, lsl #1
16304: 4140 adcs r0, r0
16306: eb41 0101 adc.w r1, r1, r1
1630a: 3c01 subs r4, #1
1630c: bf28 it cs
1630e: f5b1 1f80 cmpcs.w r1, #1048576 ; 0x100000
16312: d2e9 bcs.n 162e8 <__adddf3+0x10c>
16314: f091 0f00 teq r1, #0
16318: bf04 itt eq
1631a: 4601 moveq r1, r0
1631c: 2000 moveq r0, #0
1631e: fab1 f381 clz r3, r1
16322: bf08 it eq
16324: 3320 addeq r3, #32
16326: f1a3 030b sub.w r3, r3, #11
1632a: f1b3 0220 subs.w r2, r3, #32
1632e: da0c bge.n 1634a <__adddf3+0x16e>
16330: 320c adds r2, #12
16332: dd08 ble.n 16346 <__adddf3+0x16a>
16334: f102 0c14 add.w ip, r2, #20
16338: f1c2 020c rsb r2, r2, #12
1633c: fa01 f00c lsl.w r0, r1, ip
16340: fa21 f102 lsr.w r1, r1, r2
16344: e00c b.n 16360 <__adddf3+0x184>
16346: f102 0214 add.w r2, r2, #20
1634a: bfd8 it le
1634c: f1c2 0c20 rsble ip, r2, #32
16350: fa01 f102 lsl.w r1, r1, r2
16354: fa20 fc0c lsr.w ip, r0, ip
16358: bfdc itt le
1635a: ea41 010c orrle.w r1, r1, ip
1635e: 4090 lslle r0, r2
16360: 1ae4 subs r4, r4, r3
16362: bfa2 ittt ge
16364: eb01 5104 addge.w r1, r1, r4, lsl #20
16368: 4329 orrge r1, r5
1636a: bd30 popge {r4, r5, pc}
1636c: ea6f 0404 mvn.w r4, r4
16370: 3c1f subs r4, #31
16372: da1c bge.n 163ae <__adddf3+0x1d2>
16374: 340c adds r4, #12
16376: dc0e bgt.n 16396 <__adddf3+0x1ba>
16378: f104 0414 add.w r4, r4, #20
1637c: f1c4 0220 rsb r2, r4, #32
16380: fa20 f004 lsr.w r0, r0, r4
16384: fa01 f302 lsl.w r3, r1, r2
16388: ea40 0003 orr.w r0, r0, r3
1638c: fa21 f304 lsr.w r3, r1, r4
16390: ea45 0103 orr.w r1, r5, r3
16394: bd30 pop {r4, r5, pc}
16396: f1c4 040c rsb r4, r4, #12
1639a: f1c4 0220 rsb r2, r4, #32
1639e: fa20 f002 lsr.w r0, r0, r2
163a2: fa01 f304 lsl.w r3, r1, r4
163a6: ea40 0003 orr.w r0, r0, r3
163aa: 4629 mov r1, r5
163ac: bd30 pop {r4, r5, pc}
163ae: fa21 f004 lsr.w r0, r1, r4
163b2: 4629 mov r1, r5
163b4: bd30 pop {r4, r5, pc}
163b6: f094 0f00 teq r4, #0
163ba: f483 1380 eor.w r3, r3, #1048576 ; 0x100000
163be: bf06 itte eq
163c0: f481 1180 eoreq.w r1, r1, #1048576 ; 0x100000
163c4: 3401 addeq r4, #1
163c6: 3d01 subne r5, #1
163c8: e74e b.n 16268 <__adddf3+0x8c>
163ca: ea7f 5c64 mvns.w ip, r4, asr #21
163ce: bf18 it ne
163d0: ea7f 5c65 mvnsne.w ip, r5, asr #21
163d4: d029 beq.n 1642a <__adddf3+0x24e>
163d6: ea94 0f05 teq r4, r5
163da: bf08 it eq
163dc: ea90 0f02 teqeq r0, r2
163e0: d005 beq.n 163ee <__adddf3+0x212>
163e2: ea54 0c00 orrs.w ip, r4, r0
163e6: bf04 itt eq
163e8: 4619 moveq r1, r3
163ea: 4610 moveq r0, r2
163ec: bd30 pop {r4, r5, pc}
163ee: ea91 0f03 teq r1, r3
163f2: bf1e ittt ne
163f4: 2100 movne r1, #0
163f6: 2000 movne r0, #0
163f8: bd30 popne {r4, r5, pc}
163fa: ea5f 5c54 movs.w ip, r4, lsr #21
163fe: d105 bne.n 1640c <__adddf3+0x230>
16400: 0040 lsls r0, r0, #1
16402: 4149 adcs r1, r1
16404: bf28 it cs
16406: f041 4100 orrcs.w r1, r1, #2147483648 ; 0x80000000
1640a: bd30 pop {r4, r5, pc}
1640c: f514 0480 adds.w r4, r4, #4194304 ; 0x400000
16410: bf3c itt cc
16412: f501 1180 addcc.w r1, r1, #1048576 ; 0x100000
16416: bd30 popcc {r4, r5, pc}
16418: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000
1641c: f045 41fe orr.w r1, r5, #2130706432 ; 0x7f000000
16420: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000
16424: f04f 0000 mov.w r0, #0
16428: bd30 pop {r4, r5, pc}
1642a: ea7f 5c64 mvns.w ip, r4, asr #21
1642e: bf1a itte ne
16430: 4619 movne r1, r3
16432: 4610 movne r0, r2
16434: ea7f 5c65 mvnseq.w ip, r5, asr #21
16438: bf1c itt ne
1643a: 460b movne r3, r1
1643c: 4602 movne r2, r0
1643e: ea50 3401 orrs.w r4, r0, r1, lsl #12
16442: bf06 itte eq
16444: ea52 3503 orrseq.w r5, r2, r3, lsl #12
16448: ea91 0f03 teqeq r1, r3
1644c: f441 2100 orrne.w r1, r1, #524288 ; 0x80000
16450: bd30 pop {r4, r5, pc}
16452: bf00 nop
00016454 <__aeabi_ui2d>:
16454: f090 0f00 teq r0, #0
16458: bf04 itt eq
1645a: 2100 moveq r1, #0
1645c: 4770 bxeq lr
1645e: b530 push {r4, r5, lr}
16460: f44f 6480 mov.w r4, #1024 ; 0x400
16464: f104 0432 add.w r4, r4, #50 ; 0x32
16468: f04f 0500 mov.w r5, #0
1646c: f04f 0100 mov.w r1, #0
16470: e750 b.n 16314 <__adddf3+0x138>
16472: bf00 nop
00016474 <__aeabi_i2d>:
16474: f090 0f00 teq r0, #0
16478: bf04 itt eq
1647a: 2100 moveq r1, #0
1647c: 4770 bxeq lr
1647e: b530 push {r4, r5, lr}
16480: f44f 6480 mov.w r4, #1024 ; 0x400
16484: f104 0432 add.w r4, r4, #50 ; 0x32
16488: f010 4500 ands.w r5, r0, #2147483648 ; 0x80000000
1648c: bf48 it mi
1648e: 4240 negmi r0, r0
16490: f04f 0100 mov.w r1, #0
16494: e73e b.n 16314 <__adddf3+0x138>
16496: bf00 nop
00016498 <__aeabi_f2d>:
16498: 0042 lsls r2, r0, #1
1649a: ea4f 01e2 mov.w r1, r2, asr #3
1649e: ea4f 0131 mov.w r1, r1, rrx
164a2: ea4f 7002 mov.w r0, r2, lsl #28
164a6: bf1f itttt ne
164a8: f012 437f andsne.w r3, r2, #4278190080 ; 0xff000000
164ac: f093 4f7f teqne r3, #4278190080 ; 0xff000000
164b0: f081 5160 eorne.w r1, r1, #939524096 ; 0x38000000
164b4: 4770 bxne lr
164b6: f032 427f bics.w r2, r2, #4278190080 ; 0xff000000
164ba: bf08 it eq
164bc: 4770 bxeq lr
164be: f093 4f7f teq r3, #4278190080 ; 0xff000000
164c2: bf04 itt eq
164c4: f441 2100 orreq.w r1, r1, #524288 ; 0x80000
164c8: 4770 bxeq lr
164ca: b530 push {r4, r5, lr}
164cc: f44f 7460 mov.w r4, #896 ; 0x380
164d0: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000
164d4: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000
164d8: e71c b.n 16314 <__adddf3+0x138>
164da: bf00 nop
000164dc <__aeabi_ul2d>:
164dc: ea50 0201 orrs.w r2, r0, r1
164e0: bf08 it eq
164e2: 4770 bxeq lr
164e4: b530 push {r4, r5, lr}
164e6: f04f 0500 mov.w r5, #0
164ea: e00a b.n 16502 <__aeabi_l2d+0x16>
000164ec <__aeabi_l2d>:
164ec: ea50 0201 orrs.w r2, r0, r1
164f0: bf08 it eq
164f2: 4770 bxeq lr
164f4: b530 push {r4, r5, lr}
164f6: f011 4500 ands.w r5, r1, #2147483648 ; 0x80000000
164fa: d502 bpl.n 16502 <__aeabi_l2d+0x16>
164fc: 4240 negs r0, r0
164fe: eb61 0141 sbc.w r1, r1, r1, lsl #1
16502: f44f 6480 mov.w r4, #1024 ; 0x400
16506: f104 0432 add.w r4, r4, #50 ; 0x32
1650a: ea5f 5c91 movs.w ip, r1, lsr #22
1650e: f43f aed8 beq.w 162c2 <__adddf3+0xe6>
16512: f04f 0203 mov.w r2, #3
16516: ea5f 0cdc movs.w ip, ip, lsr #3
1651a: bf18 it ne
1651c: 3203 addne r2, #3
1651e: ea5f 0cdc movs.w ip, ip, lsr #3
16522: bf18 it ne
16524: 3203 addne r2, #3
16526: eb02 02dc add.w r2, r2, ip, lsr #3
1652a: f1c2 0320 rsb r3, r2, #32
1652e: fa00 fc03 lsl.w ip, r0, r3
16532: fa20 f002 lsr.w r0, r0, r2
16536: fa01 fe03 lsl.w lr, r1, r3
1653a: ea40 000e orr.w r0, r0, lr
1653e: fa21 f102 lsr.w r1, r1, r2
16542: 4414 add r4, r2
16544: e6bd b.n 162c2 <__adddf3+0xe6>
16546: bf00 nop
00016548 <__aeabi_dmul>:
16548: b570 push {r4, r5, r6, lr}
1654a: f04f 0cff mov.w ip, #255 ; 0xff
1654e: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700
16552: ea1c 5411 ands.w r4, ip, r1, lsr #20
16556: bf1d ittte ne
16558: ea1c 5513 andsne.w r5, ip, r3, lsr #20
1655c: ea94 0f0c teqne r4, ip
16560: ea95 0f0c teqne r5, ip
16564: f000 f8de bleq 16724 <__aeabi_dmul+0x1dc>
16568: 442c add r4, r5
1656a: ea81 0603 eor.w r6, r1, r3
1656e: ea21 514c bic.w r1, r1, ip, lsl #21
16572: ea23 534c bic.w r3, r3, ip, lsl #21
16576: ea50 3501 orrs.w r5, r0, r1, lsl #12
1657a: bf18 it ne
1657c: ea52 3503 orrsne.w r5, r2, r3, lsl #12
16580: f441 1180 orr.w r1, r1, #1048576 ; 0x100000
16584: f443 1380 orr.w r3, r3, #1048576 ; 0x100000
16588: d038 beq.n 165fc <__aeabi_dmul+0xb4>
1658a: fba0 ce02 umull ip, lr, r0, r2
1658e: f04f 0500 mov.w r5, #0
16592: fbe1 e502 umlal lr, r5, r1, r2
16596: f006 4200 and.w r2, r6, #2147483648 ; 0x80000000
1659a: fbe0 e503 umlal lr, r5, r0, r3
1659e: f04f 0600 mov.w r6, #0
165a2: fbe1 5603 umlal r5, r6, r1, r3
165a6: f09c 0f00 teq ip, #0
165aa: bf18 it ne
165ac: f04e 0e01 orrne.w lr, lr, #1
165b0: f1a4 04ff sub.w r4, r4, #255 ; 0xff
165b4: f5b6 7f00 cmp.w r6, #512 ; 0x200
165b8: f564 7440 sbc.w r4, r4, #768 ; 0x300
165bc: d204 bcs.n 165c8 <__aeabi_dmul+0x80>
165be: ea5f 0e4e movs.w lr, lr, lsl #1
165c2: 416d adcs r5, r5
165c4: eb46 0606 adc.w r6, r6, r6
165c8: ea42 21c6 orr.w r1, r2, r6, lsl #11
165cc: ea41 5155 orr.w r1, r1, r5, lsr #21
165d0: ea4f 20c5 mov.w r0, r5, lsl #11
165d4: ea40 505e orr.w r0, r0, lr, lsr #21
165d8: ea4f 2ece mov.w lr, lr, lsl #11
165dc: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd
165e0: bf88 it hi
165e2: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700
165e6: d81e bhi.n 16626 <__aeabi_dmul+0xde>
165e8: f1be 4f00 cmp.w lr, #2147483648 ; 0x80000000
165ec: bf08 it eq
165ee: ea5f 0e50 movseq.w lr, r0, lsr #1
165f2: f150 0000 adcs.w r0, r0, #0
165f6: eb41 5104 adc.w r1, r1, r4, lsl #20
165fa: bd70 pop {r4, r5, r6, pc}
165fc: f006 4600 and.w r6, r6, #2147483648 ; 0x80000000
16600: ea46 0101 orr.w r1, r6, r1
16604: ea40 0002 orr.w r0, r0, r2
16608: ea81 0103 eor.w r1, r1, r3
1660c: ebb4 045c subs.w r4, r4, ip, lsr #1
16610: bfc2 ittt gt
16612: ebd4 050c rsbsgt r5, r4, ip
16616: ea41 5104 orrgt.w r1, r1, r4, lsl #20
1661a: bd70 popgt {r4, r5, r6, pc}
1661c: f441 1180 orr.w r1, r1, #1048576 ; 0x100000
16620: f04f 0e00 mov.w lr, #0
16624: 3c01 subs r4, #1
16626: f300 80ab bgt.w 16780 <__aeabi_dmul+0x238>
1662a: f114 0f36 cmn.w r4, #54 ; 0x36
1662e: bfde ittt le
16630: 2000 movle r0, #0
16632: f001 4100 andle.w r1, r1, #2147483648 ; 0x80000000
16636: bd70 pople {r4, r5, r6, pc}
16638: f1c4 0400 rsb r4, r4, #0
1663c: 3c20 subs r4, #32
1663e: da35 bge.n 166ac <__aeabi_dmul+0x164>
16640: 340c adds r4, #12
16642: dc1b bgt.n 1667c <__aeabi_dmul+0x134>
16644: f104 0414 add.w r4, r4, #20
16648: f1c4 0520 rsb r5, r4, #32
1664c: fa00 f305 lsl.w r3, r0, r5
16650: fa20 f004 lsr.w r0, r0, r4
16654: fa01 f205 lsl.w r2, r1, r5
16658: ea40 0002 orr.w r0, r0, r2
1665c: f001 4200 and.w r2, r1, #2147483648 ; 0x80000000
16660: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000
16664: eb10 70d3 adds.w r0, r0, r3, lsr #31
16668: fa21 f604 lsr.w r6, r1, r4
1666c: eb42 0106 adc.w r1, r2, r6
16670: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
16674: bf08 it eq
16676: ea20 70d3 biceq.w r0, r0, r3, lsr #31
1667a: bd70 pop {r4, r5, r6, pc}
1667c: f1c4 040c rsb r4, r4, #12
16680: f1c4 0520 rsb r5, r4, #32
16684: fa00 f304 lsl.w r3, r0, r4
16688: fa20 f005 lsr.w r0, r0, r5
1668c: fa01 f204 lsl.w r2, r1, r4
16690: ea40 0002 orr.w r0, r0, r2
16694: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000
16698: eb10 70d3 adds.w r0, r0, r3, lsr #31
1669c: f141 0100 adc.w r1, r1, #0
166a0: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
166a4: bf08 it eq
166a6: ea20 70d3 biceq.w r0, r0, r3, lsr #31
166aa: bd70 pop {r4, r5, r6, pc}
166ac: f1c4 0520 rsb r5, r4, #32
166b0: fa00 f205 lsl.w r2, r0, r5
166b4: ea4e 0e02 orr.w lr, lr, r2
166b8: fa20 f304 lsr.w r3, r0, r4
166bc: fa01 f205 lsl.w r2, r1, r5
166c0: ea43 0302 orr.w r3, r3, r2
166c4: fa21 f004 lsr.w r0, r1, r4
166c8: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000
166cc: fa21 f204 lsr.w r2, r1, r4
166d0: ea20 0002 bic.w r0, r0, r2
166d4: eb00 70d3 add.w r0, r0, r3, lsr #31
166d8: ea5e 0e43 orrs.w lr, lr, r3, lsl #1
166dc: bf08 it eq
166de: ea20 70d3 biceq.w r0, r0, r3, lsr #31
166e2: bd70 pop {r4, r5, r6, pc}
166e4: f094 0f00 teq r4, #0
166e8: d10f bne.n 1670a <__aeabi_dmul+0x1c2>
166ea: f001 4600 and.w r6, r1, #2147483648 ; 0x80000000
166ee: 0040 lsls r0, r0, #1
166f0: eb41 0101 adc.w r1, r1, r1
166f4: f411 1f80 tst.w r1, #1048576 ; 0x100000
166f8: bf08 it eq
166fa: 3c01 subeq r4, #1
166fc: d0f7 beq.n 166ee <__aeabi_dmul+0x1a6>
166fe: ea41 0106 orr.w r1, r1, r6
16702: f095 0f00 teq r5, #0
16706: bf18 it ne
16708: 4770 bxne lr
1670a: f003 4600 and.w r6, r3, #2147483648 ; 0x80000000
1670e: 0052 lsls r2, r2, #1
16710: eb43 0303 adc.w r3, r3, r3
16714: f413 1f80 tst.w r3, #1048576 ; 0x100000
16718: bf08 it eq
1671a: 3d01 subeq r5, #1
1671c: d0f7 beq.n 1670e <__aeabi_dmul+0x1c6>
1671e: ea43 0306 orr.w r3, r3, r6
16722: 4770 bx lr
16724: ea94 0f0c teq r4, ip
16728: ea0c 5513 and.w r5, ip, r3, lsr #20
1672c: bf18 it ne
1672e: ea95 0f0c teqne r5, ip
16732: d00c beq.n 1674e <__aeabi_dmul+0x206>
16734: ea50 0641 orrs.w r6, r0, r1, lsl #1
16738: bf18 it ne
1673a: ea52 0643 orrsne.w r6, r2, r3, lsl #1
1673e: d1d1 bne.n 166e4 <__aeabi_dmul+0x19c>
16740: ea81 0103 eor.w r1, r1, r3
16744: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000
16748: f04f 0000 mov.w r0, #0
1674c: bd70 pop {r4, r5, r6, pc}
1674e: ea50 0641 orrs.w r6, r0, r1, lsl #1
16752: bf06 itte eq
16754: 4610 moveq r0, r2
16756: 4619 moveq r1, r3
16758: ea52 0643 orrsne.w r6, r2, r3, lsl #1
1675c: d019 beq.n 16792 <__aeabi_dmul+0x24a>
1675e: ea94 0f0c teq r4, ip
16762: d102 bne.n 1676a <__aeabi_dmul+0x222>
16764: ea50 3601 orrs.w r6, r0, r1, lsl #12
16768: d113 bne.n 16792 <__aeabi_dmul+0x24a>
1676a: ea95 0f0c teq r5, ip
1676e: d105 bne.n 1677c <__aeabi_dmul+0x234>
16770: ea52 3603 orrs.w r6, r2, r3, lsl #12
16774: bf1c itt ne
16776: 4610 movne r0, r2
16778: 4619 movne r1, r3
1677a: d10a bne.n 16792 <__aeabi_dmul+0x24a>
1677c: ea81 0103 eor.w r1, r1, r3
16780: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000
16784: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000
16788: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000
1678c: f04f 0000 mov.w r0, #0
16790: bd70 pop {r4, r5, r6, pc}
16792: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000
16796: f441 0178 orr.w r1, r1, #16252928 ; 0xf80000
1679a: bd70 pop {r4, r5, r6, pc}
0001679c <__aeabi_ddiv>:
1679c: b570 push {r4, r5, r6, lr}
1679e: f04f 0cff mov.w ip, #255 ; 0xff
167a2: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700
167a6: ea1c 5411 ands.w r4, ip, r1, lsr #20
167aa: bf1d ittte ne
167ac: ea1c 5513 andsne.w r5, ip, r3, lsr #20
167b0: ea94 0f0c teqne r4, ip
167b4: ea95 0f0c teqne r5, ip
167b8: f000 f8a7 bleq 1690a <__aeabi_ddiv+0x16e>
167bc: eba4 0405 sub.w r4, r4, r5
167c0: ea81 0e03 eor.w lr, r1, r3
167c4: ea52 3503 orrs.w r5, r2, r3, lsl #12
167c8: ea4f 3101 mov.w r1, r1, lsl #12
167cc: f000 8088 beq.w 168e0 <__aeabi_ddiv+0x144>
167d0: ea4f 3303 mov.w r3, r3, lsl #12
167d4: f04f 5580 mov.w r5, #268435456 ; 0x10000000
167d8: ea45 1313 orr.w r3, r5, r3, lsr #4
167dc: ea43 6312 orr.w r3, r3, r2, lsr #24
167e0: ea4f 2202 mov.w r2, r2, lsl #8
167e4: ea45 1511 orr.w r5, r5, r1, lsr #4
167e8: ea45 6510 orr.w r5, r5, r0, lsr #24
167ec: ea4f 2600 mov.w r6, r0, lsl #8
167f0: f00e 4100 and.w r1, lr, #2147483648 ; 0x80000000
167f4: 429d cmp r5, r3
167f6: bf08 it eq
167f8: 4296 cmpeq r6, r2
167fa: f144 04fd adc.w r4, r4, #253 ; 0xfd
167fe: f504 7440 add.w r4, r4, #768 ; 0x300
16802: d202 bcs.n 1680a <__aeabi_ddiv+0x6e>
16804: 085b lsrs r3, r3, #1
16806: ea4f 0232 mov.w r2, r2, rrx
1680a: 1ab6 subs r6, r6, r2
1680c: eb65 0503 sbc.w r5, r5, r3
16810: 085b lsrs r3, r3, #1
16812: ea4f 0232 mov.w r2, r2, rrx
16816: f44f 1080 mov.w r0, #1048576 ; 0x100000
1681a: f44f 2c00 mov.w ip, #524288 ; 0x80000
1681e: ebb6 0e02 subs.w lr, r6, r2
16822: eb75 0e03 sbcs.w lr, r5, r3
16826: bf22 ittt cs
16828: 1ab6 subcs r6, r6, r2
1682a: 4675 movcs r5, lr
1682c: ea40 000c orrcs.w r0, r0, ip
16830: 085b lsrs r3, r3, #1
16832: ea4f 0232 mov.w r2, r2, rrx
16836: ebb6 0e02 subs.w lr, r6, r2
1683a: eb75 0e03 sbcs.w lr, r5, r3
1683e: bf22 ittt cs
16840: 1ab6 subcs r6, r6, r2
16842: 4675 movcs r5, lr
16844: ea40 005c orrcs.w r0, r0, ip, lsr #1
16848: 085b lsrs r3, r3, #1
1684a: ea4f 0232 mov.w r2, r2, rrx
1684e: ebb6 0e02 subs.w lr, r6, r2
16852: eb75 0e03 sbcs.w lr, r5, r3
16856: bf22 ittt cs
16858: 1ab6 subcs r6, r6, r2
1685a: 4675 movcs r5, lr
1685c: ea40 009c orrcs.w r0, r0, ip, lsr #2
16860: 085b lsrs r3, r3, #1
16862: ea4f 0232 mov.w r2, r2, rrx
16866: ebb6 0e02 subs.w lr, r6, r2
1686a: eb75 0e03 sbcs.w lr, r5, r3
1686e: bf22 ittt cs
16870: 1ab6 subcs r6, r6, r2
16872: 4675 movcs r5, lr
16874: ea40 00dc orrcs.w r0, r0, ip, lsr #3
16878: ea55 0e06 orrs.w lr, r5, r6
1687c: d018 beq.n 168b0 <__aeabi_ddiv+0x114>
1687e: ea4f 1505 mov.w r5, r5, lsl #4
16882: ea45 7516 orr.w r5, r5, r6, lsr #28
16886: ea4f 1606 mov.w r6, r6, lsl #4
1688a: ea4f 03c3 mov.w r3, r3, lsl #3
1688e: ea43 7352 orr.w r3, r3, r2, lsr #29
16892: ea4f 02c2 mov.w r2, r2, lsl #3
16896: ea5f 1c1c movs.w ip, ip, lsr #4
1689a: d1c0 bne.n 1681e <__aeabi_ddiv+0x82>
1689c: f411 1f80 tst.w r1, #1048576 ; 0x100000
168a0: d10b bne.n 168ba <__aeabi_ddiv+0x11e>
168a2: ea41 0100 orr.w r1, r1, r0
168a6: f04f 0000 mov.w r0, #0
168aa: f04f 4c00 mov.w ip, #2147483648 ; 0x80000000
168ae: e7b6 b.n 1681e <__aeabi_ddiv+0x82>
168b0: f411 1f80 tst.w r1, #1048576 ; 0x100000
168b4: bf04 itt eq
168b6: 4301 orreq r1, r0
168b8: 2000 moveq r0, #0
168ba: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd
168be: bf88 it hi
168c0: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700
168c4: f63f aeaf bhi.w 16626 <__aeabi_dmul+0xde>
168c8: ebb5 0c03 subs.w ip, r5, r3
168cc: bf04 itt eq
168ce: ebb6 0c02 subseq.w ip, r6, r2
168d2: ea5f 0c50 movseq.w ip, r0, lsr #1
168d6: f150 0000 adcs.w r0, r0, #0
168da: eb41 5104 adc.w r1, r1, r4, lsl #20
168de: bd70 pop {r4, r5, r6, pc}
168e0: f00e 4e00 and.w lr, lr, #2147483648 ; 0x80000000
168e4: ea4e 3111 orr.w r1, lr, r1, lsr #12
168e8: eb14 045c adds.w r4, r4, ip, lsr #1
168ec: bfc2 ittt gt
168ee: ebd4 050c rsbsgt r5, r4, ip
168f2: ea41 5104 orrgt.w r1, r1, r4, lsl #20
168f6: bd70 popgt {r4, r5, r6, pc}
168f8: f441 1180 orr.w r1, r1, #1048576 ; 0x100000
168fc: f04f 0e00 mov.w lr, #0
16900: 3c01 subs r4, #1
16902: e690 b.n 16626 <__aeabi_dmul+0xde>
16904: ea45 0e06 orr.w lr, r5, r6
16908: e68d b.n 16626 <__aeabi_dmul+0xde>
1690a: ea0c 5513 and.w r5, ip, r3, lsr #20
1690e: ea94 0f0c teq r4, ip
16912: bf08 it eq
16914: ea95 0f0c teqeq r5, ip
16918: f43f af3b beq.w 16792 <__aeabi_dmul+0x24a>
1691c: ea94 0f0c teq r4, ip
16920: d10a bne.n 16938 <__aeabi_ddiv+0x19c>
16922: ea50 3401 orrs.w r4, r0, r1, lsl #12
16926: f47f af34 bne.w 16792 <__aeabi_dmul+0x24a>
1692a: ea95 0f0c teq r5, ip
1692e: f47f af25 bne.w 1677c <__aeabi_dmul+0x234>
16932: 4610 mov r0, r2
16934: 4619 mov r1, r3
16936: e72c b.n 16792 <__aeabi_dmul+0x24a>
16938: ea95 0f0c teq r5, ip
1693c: d106 bne.n 1694c <__aeabi_ddiv+0x1b0>
1693e: ea52 3503 orrs.w r5, r2, r3, lsl #12
16942: f43f aefd beq.w 16740 <__aeabi_dmul+0x1f8>
16946: 4610 mov r0, r2
16948: 4619 mov r1, r3
1694a: e722 b.n 16792 <__aeabi_dmul+0x24a>
1694c: ea50 0641 orrs.w r6, r0, r1, lsl #1
16950: bf18 it ne
16952: ea52 0643 orrsne.w r6, r2, r3, lsl #1
16956: f47f aec5 bne.w 166e4 <__aeabi_dmul+0x19c>
1695a: ea50 0441 orrs.w r4, r0, r1, lsl #1
1695e: f47f af0d bne.w 1677c <__aeabi_dmul+0x234>
16962: ea52 0543 orrs.w r5, r2, r3, lsl #1
16966: f47f aeeb bne.w 16740 <__aeabi_dmul+0x1f8>
1696a: e712 b.n 16792 <__aeabi_dmul+0x24a>
0001696c <__aeabi_uldivmod>:
1696c: b953 cbnz r3, 16984 <__aeabi_uldivmod+0x18>
1696e: b94a cbnz r2, 16984 <__aeabi_uldivmod+0x18>
16970: 2900 cmp r1, #0
16972: bf08 it eq
16974: 2800 cmpeq r0, #0
16976: bf1c itt ne
16978: f04f 31ff movne.w r1, #4294967295 ; 0xffffffff
1697c: f04f 30ff movne.w r0, #4294967295 ; 0xffffffff
16980: f000 b978 b.w 16c74 <__aeabi_idiv0>
16984: f1ad 0c08 sub.w ip, sp, #8
16988: e96d ce04 strd ip, lr, [sp, #-16]!
1698c: f000 f806 bl 1699c <__udivmoddi4>
16990: f8dd e004 ldr.w lr, [sp, #4]
16994: e9dd 2302 ldrd r2, r3, [sp, #8]
16998: b004 add sp, #16
1699a: 4770 bx lr
0001699c <__udivmoddi4>:
1699c: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
169a0: 9d08 ldr r5, [sp, #32]
169a2: 460e mov r6, r1
169a4: 4604 mov r4, r0
169a6: 460f mov r7, r1
169a8: 2b00 cmp r3, #0
169aa: d14a bne.n 16a42 <__udivmoddi4+0xa6>
169ac: 428a cmp r2, r1
169ae: 4694 mov ip, r2
169b0: d965 bls.n 16a7e <__udivmoddi4+0xe2>
169b2: fab2 f282 clz r2, r2
169b6: b142 cbz r2, 169ca <__udivmoddi4+0x2e>
169b8: f1c2 0320 rsb r3, r2, #32
169bc: 4097 lsls r7, r2
169be: fa20 f303 lsr.w r3, r0, r3
169c2: fa0c fc02 lsl.w ip, ip, r2
169c6: 431f orrs r7, r3
169c8: 4094 lsls r4, r2
169ca: ea4f 4e1c mov.w lr, ip, lsr #16
169ce: fa1f f68c uxth.w r6, ip
169d2: fbb7 f1fe udiv r1, r7, lr
169d6: 0c23 lsrs r3, r4, #16
169d8: fb0e 7711 mls r7, lr, r1, r7
169dc: ea43 4307 orr.w r3, r3, r7, lsl #16
169e0: fb01 f006 mul.w r0, r1, r6
169e4: 4298 cmp r0, r3
169e6: d90a bls.n 169fe <__udivmoddi4+0x62>
169e8: eb1c 0303 adds.w r3, ip, r3
169ec: f101 37ff add.w r7, r1, #4294967295 ; 0xffffffff
169f0: f080 8120 bcs.w 16c34 <__udivmoddi4+0x298>
169f4: 4298 cmp r0, r3
169f6: f240 811d bls.w 16c34 <__udivmoddi4+0x298>
169fa: 3902 subs r1, #2
169fc: 4463 add r3, ip
169fe: 1a1b subs r3, r3, r0
16a00: b2a4 uxth r4, r4
16a02: fbb3 f0fe udiv r0, r3, lr
16a06: fb0e 3310 mls r3, lr, r0, r3
16a0a: ea44 4403 orr.w r4, r4, r3, lsl #16
16a0e: fb00 f606 mul.w r6, r0, r6
16a12: 42a6 cmp r6, r4
16a14: d90a bls.n 16a2c <__udivmoddi4+0x90>
16a16: eb1c 0404 adds.w r4, ip, r4
16a1a: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff
16a1e: f080 810b bcs.w 16c38 <__udivmoddi4+0x29c>
16a22: 42a6 cmp r6, r4
16a24: f240 8108 bls.w 16c38 <__udivmoddi4+0x29c>
16a28: 4464 add r4, ip
16a2a: 3802 subs r0, #2
16a2c: ea40 4001 orr.w r0, r0, r1, lsl #16
16a30: 1ba4 subs r4, r4, r6
16a32: 2100 movs r1, #0
16a34: b11d cbz r5, 16a3e <__udivmoddi4+0xa2>
16a36: 40d4 lsrs r4, r2
16a38: 2300 movs r3, #0
16a3a: e9c5 4300 strd r4, r3, [r5]
16a3e: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
16a42: 428b cmp r3, r1
16a44: d908 bls.n 16a58 <__udivmoddi4+0xbc>
16a46: 2d00 cmp r5, #0
16a48: f000 80f1 beq.w 16c2e <__udivmoddi4+0x292>
16a4c: 2100 movs r1, #0
16a4e: e9c5 0600 strd r0, r6, [r5]
16a52: 4608 mov r0, r1
16a54: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
16a58: fab3 f183 clz r1, r3
16a5c: 2900 cmp r1, #0
16a5e: d14a bne.n 16af6 <__udivmoddi4+0x15a>
16a60: 42b3 cmp r3, r6
16a62: d302 bcc.n 16a6a <__udivmoddi4+0xce>
16a64: 4282 cmp r2, r0
16a66: f200 8100 bhi.w 16c6a <__udivmoddi4+0x2ce>
16a6a: 1a84 subs r4, r0, r2
16a6c: eb66 0203 sbc.w r2, r6, r3
16a70: 2001 movs r0, #1
16a72: 4617 mov r7, r2
16a74: 2d00 cmp r5, #0
16a76: d0e2 beq.n 16a3e <__udivmoddi4+0xa2>
16a78: e9c5 4700 strd r4, r7, [r5]
16a7c: e7df b.n 16a3e <__udivmoddi4+0xa2>
16a7e: b902 cbnz r2, 16a82 <__udivmoddi4+0xe6>
16a80: deff udf #255 ; 0xff
16a82: fab2 f282 clz r2, r2
16a86: 2a00 cmp r2, #0
16a88: f040 8094 bne.w 16bb4 <__udivmoddi4+0x218>
16a8c: eba1 030c sub.w r3, r1, ip
16a90: ea4f 471c mov.w r7, ip, lsr #16
16a94: fa1f fe8c uxth.w lr, ip
16a98: 2101 movs r1, #1
16a9a: fbb3 f6f7 udiv r6, r3, r7
16a9e: fb07 3016 mls r0, r7, r6, r3
16aa2: 0c23 lsrs r3, r4, #16
16aa4: ea43 4300 orr.w r3, r3, r0, lsl #16
16aa8: fb0e f006 mul.w r0, lr, r6
16aac: 4298 cmp r0, r3
16aae: d908 bls.n 16ac2 <__udivmoddi4+0x126>
16ab0: eb1c 0303 adds.w r3, ip, r3
16ab4: f106 38ff add.w r8, r6, #4294967295 ; 0xffffffff
16ab8: d202 bcs.n 16ac0 <__udivmoddi4+0x124>
16aba: 4298 cmp r0, r3
16abc: f200 80d2 bhi.w 16c64 <__udivmoddi4+0x2c8>
16ac0: 4646 mov r6, r8
16ac2: 1a1b subs r3, r3, r0
16ac4: b2a4 uxth r4, r4
16ac6: fbb3 f0f7 udiv r0, r3, r7
16aca: fb07 3310 mls r3, r7, r0, r3
16ace: ea44 4403 orr.w r4, r4, r3, lsl #16
16ad2: fb0e fe00 mul.w lr, lr, r0
16ad6: 45a6 cmp lr, r4
16ad8: d908 bls.n 16aec <__udivmoddi4+0x150>
16ada: eb1c 0404 adds.w r4, ip, r4
16ade: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff
16ae2: d202 bcs.n 16aea <__udivmoddi4+0x14e>
16ae4: 45a6 cmp lr, r4
16ae6: f200 80ba bhi.w 16c5e <__udivmoddi4+0x2c2>
16aea: 4618 mov r0, r3
16aec: eba4 040e sub.w r4, r4, lr
16af0: ea40 4006 orr.w r0, r0, r6, lsl #16
16af4: e79e b.n 16a34 <__udivmoddi4+0x98>
16af6: f1c1 0720 rsb r7, r1, #32
16afa: 408b lsls r3, r1
16afc: fa22 fc07 lsr.w ip, r2, r7
16b00: ea4c 0c03 orr.w ip, ip, r3
16b04: fa06 fe01 lsl.w lr, r6, r1
16b08: fa20 f407 lsr.w r4, r0, r7
16b0c: fa26 f307 lsr.w r3, r6, r7
16b10: ea44 040e orr.w r4, r4, lr
16b14: fa00 f801 lsl.w r8, r0, r1
16b18: ea4f 401c mov.w r0, ip, lsr #16
16b1c: ea4f 4914 mov.w r9, r4, lsr #16
16b20: fbb3 fef0 udiv lr, r3, r0
16b24: fa1f f68c uxth.w r6, ip
16b28: fb00 331e mls r3, r0, lr, r3
16b2c: ea49 4303 orr.w r3, r9, r3, lsl #16
16b30: fb0e f906 mul.w r9, lr, r6
16b34: 4599 cmp r9, r3
16b36: fa02 f201 lsl.w r2, r2, r1
16b3a: d90b bls.n 16b54 <__udivmoddi4+0x1b8>
16b3c: eb1c 0303 adds.w r3, ip, r3
16b40: f10e 3aff add.w sl, lr, #4294967295 ; 0xffffffff
16b44: f080 8089 bcs.w 16c5a <__udivmoddi4+0x2be>
16b48: 4599 cmp r9, r3
16b4a: f240 8086 bls.w 16c5a <__udivmoddi4+0x2be>
16b4e: f1ae 0e02 sub.w lr, lr, #2
16b52: 4463 add r3, ip
16b54: eba3 0909 sub.w r9, r3, r9
16b58: b2a4 uxth r4, r4
16b5a: fbb9 f3f0 udiv r3, r9, r0
16b5e: fb00 9913 mls r9, r0, r3, r9
16b62: ea44 4409 orr.w r4, r4, r9, lsl #16
16b66: fb03 f606 mul.w r6, r3, r6
16b6a: 42a6 cmp r6, r4
16b6c: d908 bls.n 16b80 <__udivmoddi4+0x1e4>
16b6e: eb1c 0404 adds.w r4, ip, r4
16b72: f103 30ff add.w r0, r3, #4294967295 ; 0xffffffff
16b76: d26c bcs.n 16c52 <__udivmoddi4+0x2b6>
16b78: 42a6 cmp r6, r4
16b7a: d96a bls.n 16c52 <__udivmoddi4+0x2b6>
16b7c: 3b02 subs r3, #2
16b7e: 4464 add r4, ip
16b80: ea43 400e orr.w r0, r3, lr, lsl #16
16b84: 1ba4 subs r4, r4, r6
16b86: fba0 e602 umull lr, r6, r0, r2
16b8a: 42b4 cmp r4, r6
16b8c: 4673 mov r3, lr
16b8e: 46b1 mov r9, r6
16b90: d356 bcc.n 16c40 <__udivmoddi4+0x2a4>
16b92: d053 beq.n 16c3c <__udivmoddi4+0x2a0>
16b94: 2d00 cmp r5, #0
16b96: d06a beq.n 16c6e <__udivmoddi4+0x2d2>
16b98: ebb8 0203 subs.w r2, r8, r3
16b9c: eb64 0409 sbc.w r4, r4, r9
16ba0: fa22 f301 lsr.w r3, r2, r1
16ba4: fa04 f707 lsl.w r7, r4, r7
16ba8: 431f orrs r7, r3
16baa: 40cc lsrs r4, r1
16bac: e9c5 7400 strd r7, r4, [r5]
16bb0: 2100 movs r1, #0
16bb2: e744 b.n 16a3e <__udivmoddi4+0xa2>
16bb4: f1c2 0120 rsb r1, r2, #32
16bb8: fa20 f301 lsr.w r3, r0, r1
16bbc: fa0c fc02 lsl.w ip, ip, r2
16bc0: fa26 f101 lsr.w r1, r6, r1
16bc4: 4096 lsls r6, r2
16bc6: 4333 orrs r3, r6
16bc8: ea4f 471c mov.w r7, ip, lsr #16
16bcc: fa1f fe8c uxth.w lr, ip
16bd0: fbb1 f0f7 udiv r0, r1, r7
16bd4: fb07 1610 mls r6, r7, r0, r1
16bd8: 0c19 lsrs r1, r3, #16
16bda: ea41 4106 orr.w r1, r1, r6, lsl #16
16bde: fb00 f60e mul.w r6, r0, lr
16be2: 428e cmp r6, r1
16be4: fa04 f402 lsl.w r4, r4, r2
16be8: d908 bls.n 16bfc <__udivmoddi4+0x260>
16bea: eb1c 0101 adds.w r1, ip, r1
16bee: f100 38ff add.w r8, r0, #4294967295 ; 0xffffffff
16bf2: d230 bcs.n 16c56 <__udivmoddi4+0x2ba>
16bf4: 428e cmp r6, r1
16bf6: d92e bls.n 16c56 <__udivmoddi4+0x2ba>
16bf8: 3802 subs r0, #2
16bfa: 4461 add r1, ip
16bfc: 1b89 subs r1, r1, r6
16bfe: b29b uxth r3, r3
16c00: fbb1 f6f7 udiv r6, r1, r7
16c04: fb07 1116 mls r1, r7, r6, r1
16c08: ea43 4301 orr.w r3, r3, r1, lsl #16
16c0c: fb06 f10e mul.w r1, r6, lr
16c10: 4299 cmp r1, r3
16c12: d908 bls.n 16c26 <__udivmoddi4+0x28a>
16c14: eb1c 0303 adds.w r3, ip, r3
16c18: f106 38ff add.w r8, r6, #4294967295 ; 0xffffffff
16c1c: d217 bcs.n 16c4e <__udivmoddi4+0x2b2>
16c1e: 4299 cmp r1, r3
16c20: d915 bls.n 16c4e <__udivmoddi4+0x2b2>
16c22: 3e02 subs r6, #2
16c24: 4463 add r3, ip
16c26: 1a5b subs r3, r3, r1
16c28: ea46 4100 orr.w r1, r6, r0, lsl #16
16c2c: e735 b.n 16a9a <__udivmoddi4+0xfe>
16c2e: 4629 mov r1, r5
16c30: 4628 mov r0, r5
16c32: e704 b.n 16a3e <__udivmoddi4+0xa2>
16c34: 4639 mov r1, r7
16c36: e6e2 b.n 169fe <__udivmoddi4+0x62>
16c38: 4618 mov r0, r3
16c3a: e6f7 b.n 16a2c <__udivmoddi4+0x90>
16c3c: 45f0 cmp r8, lr
16c3e: d2a9 bcs.n 16b94 <__udivmoddi4+0x1f8>
16c40: ebbe 0302 subs.w r3, lr, r2
16c44: eb66 060c sbc.w r6, r6, ip
16c48: 3801 subs r0, #1
16c4a: 46b1 mov r9, r6
16c4c: e7a2 b.n 16b94 <__udivmoddi4+0x1f8>
16c4e: 4646 mov r6, r8
16c50: e7e9 b.n 16c26 <__udivmoddi4+0x28a>
16c52: 4603 mov r3, r0
16c54: e794 b.n 16b80 <__udivmoddi4+0x1e4>
16c56: 4640 mov r0, r8
16c58: e7d0 b.n 16bfc <__udivmoddi4+0x260>
16c5a: 46d6 mov lr, sl
16c5c: e77a b.n 16b54 <__udivmoddi4+0x1b8>
16c5e: 4464 add r4, ip
16c60: 3802 subs r0, #2
16c62: e743 b.n 16aec <__udivmoddi4+0x150>
16c64: 3e02 subs r6, #2
16c66: 4463 add r3, ip
16c68: e72b b.n 16ac2 <__udivmoddi4+0x126>
16c6a: 4608 mov r0, r1
16c6c: e702 b.n 16a74 <__udivmoddi4+0xd8>
16c6e: 4629 mov r1, r5
16c70: e6e5 b.n 16a3e <__udivmoddi4+0xa2>
16c72: bf00 nop
00016c74 <__aeabi_idiv0>:
16c74: 4770 bx lr
16c76: bf00 nop
00016c78 <__libc_init_array>:
16c78: b570 push {r4, r5, r6, lr}
16c7a: 4e0d ldr r6, [pc, #52] ; (16cb0 <__libc_init_array+0x38>)
16c7c: 4d0d ldr r5, [pc, #52] ; (16cb4 <__libc_init_array+0x3c>)
16c7e: 1b76 subs r6, r6, r5
16c80: 10b6 asrs r6, r6, #2
16c82: d006 beq.n 16c92 <__libc_init_array+0x1a>
16c84: 2400 movs r4, #0
16c86: f855 3b04 ldr.w r3, [r5], #4
16c8a: 3401 adds r4, #1
16c8c: 4798 blx r3
16c8e: 42a6 cmp r6, r4
16c90: d1f9 bne.n 16c86 <__libc_init_array+0xe>
16c92: 4e09 ldr r6, [pc, #36] ; (16cb8 <__libc_init_array+0x40>)
16c94: 4d09 ldr r5, [pc, #36] ; (16cbc <__libc_init_array+0x44>)
16c96: 1b76 subs r6, r6, r5
16c98: f015 fc6a bl 2c570 <_init>
16c9c: 10b6 asrs r6, r6, #2
16c9e: d006 beq.n 16cae <__libc_init_array+0x36>
16ca0: 2400 movs r4, #0
16ca2: f855 3b04 ldr.w r3, [r5], #4
16ca6: 3401 adds r4, #1
16ca8: 4798 blx r3
16caa: 42a6 cmp r6, r4
16cac: d1f9 bne.n 16ca2 <__libc_init_array+0x2a>
16cae: bd70 pop {r4, r5, r6, pc}
16cb0: 0002c57c .word 0x0002c57c
16cb4: 0002c57c .word 0x0002c57c
16cb8: 0002c580 .word 0x0002c580
16cbc: 0002c57c .word 0x0002c57c
00016cc0 <memcmp>:
16cc0: 2a03 cmp r2, #3
16cc2: b510 push {r4, lr}
16cc4: d916 bls.n 16cf4 <memcmp+0x34>
16cc6: ea40 0301 orr.w r3, r0, r1
16cca: 079b lsls r3, r3, #30
16ccc: d124 bne.n 16d18 <memcmp+0x58>
16cce: 4604 mov r4, r0
16cd0: 460b mov r3, r1
16cd2: 4619 mov r1, r3
16cd4: 4620 mov r0, r4
16cd6: f8d1 e000 ldr.w lr, [r1]
16cda: f8d0 c000 ldr.w ip, [r0]
16cde: 45f4 cmp ip, lr
16ce0: f104 0404 add.w r4, r4, #4
16ce4: f103 0304 add.w r3, r3, #4
16ce8: d116 bne.n 16d18 <memcmp+0x58>
16cea: 3a04 subs r2, #4
16cec: 2a03 cmp r2, #3
16cee: 4620 mov r0, r4
16cf0: 4619 mov r1, r3
16cf2: d8ee bhi.n 16cd2 <memcmp+0x12>
16cf4: 1e54 subs r4, r2, #1
16cf6: b19a cbz r2, 16d20 <memcmp+0x60>
16cf8: 1e42 subs r2, r0, #1
16cfa: 3901 subs r1, #1
16cfc: e001 b.n 16d02 <memcmp+0x42>
16cfe: 18c3 adds r3, r0, r3
16d00: d00c beq.n 16d1c <memcmp+0x5c>
16d02: f812 ef01 ldrb.w lr, [r2, #1]!
16d06: f811 cf01 ldrb.w ip, [r1, #1]!
16d0a: 45e6 cmp lr, ip
16d0c: eba4 0302 sub.w r3, r4, r2
16d10: d0f5 beq.n 16cfe <memcmp+0x3e>
16d12: ebae 000c sub.w r0, lr, ip
16d16: bd10 pop {r4, pc}
16d18: 1e54 subs r4, r2, #1
16d1a: e7ed b.n 16cf8 <memcmp+0x38>
16d1c: 4618 mov r0, r3
16d1e: bd10 pop {r4, pc}
16d20: 4610 mov r0, r2
16d22: bd10 pop {r4, pc}
00016d24 <memcpy>:
16d24: 4684 mov ip, r0
16d26: ea41 0300 orr.w r3, r1, r0
16d2a: f013 0303 ands.w r3, r3, #3
16d2e: d16d bne.n 16e0c <memcpy+0xe8>
16d30: 3a40 subs r2, #64 ; 0x40
16d32: d341 bcc.n 16db8 <memcpy+0x94>
16d34: f851 3b04 ldr.w r3, [r1], #4
16d38: f840 3b04 str.w r3, [r0], #4
16d3c: f851 3b04 ldr.w r3, [r1], #4
16d40: f840 3b04 str.w r3, [r0], #4
16d44: f851 3b04 ldr.w r3, [r1], #4
16d48: f840 3b04 str.w r3, [r0], #4
16d4c: f851 3b04 ldr.w r3, [r1], #4
16d50: f840 3b04 str.w r3, [r0], #4
16d54: f851 3b04 ldr.w r3, [r1], #4
16d58: f840 3b04 str.w r3, [r0], #4
16d5c: f851 3b04 ldr.w r3, [r1], #4
16d60: f840 3b04 str.w r3, [r0], #4
16d64: f851 3b04 ldr.w r3, [r1], #4
16d68: f840 3b04 str.w r3, [r0], #4
16d6c: f851 3b04 ldr.w r3, [r1], #4
16d70: f840 3b04 str.w r3, [r0], #4
16d74: f851 3b04 ldr.w r3, [r1], #4
16d78: f840 3b04 str.w r3, [r0], #4
16d7c: f851 3b04 ldr.w r3, [r1], #4
16d80: f840 3b04 str.w r3, [r0], #4
16d84: f851 3b04 ldr.w r3, [r1], #4
16d88: f840 3b04 str.w r3, [r0], #4
16d8c: f851 3b04 ldr.w r3, [r1], #4
16d90: f840 3b04 str.w r3, [r0], #4
16d94: f851 3b04 ldr.w r3, [r1], #4
16d98: f840 3b04 str.w r3, [r0], #4
16d9c: f851 3b04 ldr.w r3, [r1], #4
16da0: f840 3b04 str.w r3, [r0], #4
16da4: f851 3b04 ldr.w r3, [r1], #4
16da8: f840 3b04 str.w r3, [r0], #4
16dac: f851 3b04 ldr.w r3, [r1], #4
16db0: f840 3b04 str.w r3, [r0], #4
16db4: 3a40 subs r2, #64 ; 0x40
16db6: d2bd bcs.n 16d34 <memcpy+0x10>
16db8: 3230 adds r2, #48 ; 0x30
16dba: d311 bcc.n 16de0 <memcpy+0xbc>
16dbc: f851 3b04 ldr.w r3, [r1], #4
16dc0: f840 3b04 str.w r3, [r0], #4
16dc4: f851 3b04 ldr.w r3, [r1], #4
16dc8: f840 3b04 str.w r3, [r0], #4
16dcc: f851 3b04 ldr.w r3, [r1], #4
16dd0: f840 3b04 str.w r3, [r0], #4
16dd4: f851 3b04 ldr.w r3, [r1], #4
16dd8: f840 3b04 str.w r3, [r0], #4
16ddc: 3a10 subs r2, #16
16dde: d2ed bcs.n 16dbc <memcpy+0x98>
16de0: 320c adds r2, #12
16de2: d305 bcc.n 16df0 <memcpy+0xcc>
16de4: f851 3b04 ldr.w r3, [r1], #4
16de8: f840 3b04 str.w r3, [r0], #4
16dec: 3a04 subs r2, #4
16dee: d2f9 bcs.n 16de4 <memcpy+0xc0>
16df0: 3204 adds r2, #4
16df2: d008 beq.n 16e06 <memcpy+0xe2>
16df4: 07d2 lsls r2, r2, #31
16df6: bf1c itt ne
16df8: f811 3b01 ldrbne.w r3, [r1], #1
16dfc: f800 3b01 strbne.w r3, [r0], #1
16e00: d301 bcc.n 16e06 <memcpy+0xe2>
16e02: 880b ldrh r3, [r1, #0]
16e04: 8003 strh r3, [r0, #0]
16e06: 4660 mov r0, ip
16e08: 4770 bx lr
16e0a: bf00 nop
16e0c: 2a08 cmp r2, #8
16e0e: d313 bcc.n 16e38 <memcpy+0x114>
16e10: 078b lsls r3, r1, #30
16e12: d08d beq.n 16d30 <memcpy+0xc>
16e14: f010 0303 ands.w r3, r0, #3
16e18: d08a beq.n 16d30 <memcpy+0xc>
16e1a: f1c3 0304 rsb r3, r3, #4
16e1e: 1ad2 subs r2, r2, r3
16e20: 07db lsls r3, r3, #31
16e22: bf1c itt ne
16e24: f811 3b01 ldrbne.w r3, [r1], #1
16e28: f800 3b01 strbne.w r3, [r0], #1
16e2c: d380 bcc.n 16d30 <memcpy+0xc>
16e2e: f831 3b02 ldrh.w r3, [r1], #2
16e32: f820 3b02 strh.w r3, [r0], #2
16e36: e77b b.n 16d30 <memcpy+0xc>
16e38: 3a04 subs r2, #4
16e3a: d3d9 bcc.n 16df0 <memcpy+0xcc>
16e3c: 3a01 subs r2, #1
16e3e: f811 3b01 ldrb.w r3, [r1], #1
16e42: f800 3b01 strb.w r3, [r0], #1
16e46: d2f9 bcs.n 16e3c <memcpy+0x118>
16e48: 780b ldrb r3, [r1, #0]
16e4a: 7003 strb r3, [r0, #0]
16e4c: 784b ldrb r3, [r1, #1]
16e4e: 7043 strb r3, [r0, #1]
16e50: 788b ldrb r3, [r1, #2]
16e52: 7083 strb r3, [r0, #2]
16e54: 4660 mov r0, ip
16e56: 4770 bx lr
00016e58 <memmove>:
16e58: 4288 cmp r0, r1
16e5a: d90d bls.n 16e78 <memmove+0x20>
16e5c: 188b adds r3, r1, r2
16e5e: 4283 cmp r3, r0
16e60: d90a bls.n 16e78 <memmove+0x20>
16e62: eb00 0c02 add.w ip, r0, r2
16e66: b1ba cbz r2, 16e98 <memmove+0x40>
16e68: 4662 mov r2, ip
16e6a: f813 cd01 ldrb.w ip, [r3, #-1]!
16e6e: f802 cd01 strb.w ip, [r2, #-1]!
16e72: 4299 cmp r1, r3
16e74: d1f9 bne.n 16e6a <memmove+0x12>
16e76: 4770 bx lr
16e78: 2a0f cmp r2, #15
16e7a: d80e bhi.n 16e9a <memmove+0x42>
16e7c: 4603 mov r3, r0
16e7e: f102 3cff add.w ip, r2, #4294967295 ; 0xffffffff
16e82: b14a cbz r2, 16e98 <memmove+0x40>
16e84: f10c 0c01 add.w ip, ip, #1
16e88: 3b01 subs r3, #1
16e8a: 448c add ip, r1
16e8c: f811 2b01 ldrb.w r2, [r1], #1
16e90: f803 2f01 strb.w r2, [r3, #1]!
16e94: 4561 cmp r1, ip
16e96: d1f9 bne.n 16e8c <memmove+0x34>
16e98: 4770 bx lr
16e9a: ea40 0301 orr.w r3, r0, r1
16e9e: 079b lsls r3, r3, #30
16ea0: d150 bne.n 16f44 <memmove+0xec>
16ea2: f1a2 0310 sub.w r3, r2, #16
16ea6: b570 push {r4, r5, r6, lr}
16ea8: f101 0c20 add.w ip, r1, #32
16eac: f023 050f bic.w r5, r3, #15
16eb0: f101 0e10 add.w lr, r1, #16
16eb4: f100 0410 add.w r4, r0, #16
16eb8: 44ac add ip, r5
16eba: 091b lsrs r3, r3, #4
16ebc: f85e 5c10 ldr.w r5, [lr, #-16]
16ec0: f844 5c10 str.w r5, [r4, #-16]
16ec4: f85e 5c0c ldr.w r5, [lr, #-12]
16ec8: f844 5c0c str.w r5, [r4, #-12]
16ecc: f85e 5c08 ldr.w r5, [lr, #-8]
16ed0: f844 5c08 str.w r5, [r4, #-8]
16ed4: f85e 5c04 ldr.w r5, [lr, #-4]
16ed8: f844 5c04 str.w r5, [r4, #-4]
16edc: f10e 0e10 add.w lr, lr, #16
16ee0: 45e6 cmp lr, ip
16ee2: f104 0410 add.w r4, r4, #16
16ee6: d1e9 bne.n 16ebc <memmove+0x64>
16ee8: 3301 adds r3, #1
16eea: f012 0f0c tst.w r2, #12
16eee: eb01 1103 add.w r1, r1, r3, lsl #4
16ef2: f002 040f and.w r4, r2, #15
16ef6: eb00 1303 add.w r3, r0, r3, lsl #4
16efa: d027 beq.n 16f4c <memmove+0xf4>
16efc: 3c04 subs r4, #4
16efe: f024 0603 bic.w r6, r4, #3
16f02: ea4f 0c94 mov.w ip, r4, lsr #2
16f06: 441e add r6, r3
16f08: 1f1c subs r4, r3, #4
16f0a: 468e mov lr, r1
16f0c: f85e 5b04 ldr.w r5, [lr], #4
16f10: f844 5f04 str.w r5, [r4, #4]!
16f14: 42b4 cmp r4, r6
16f16: d1f9 bne.n 16f0c <memmove+0xb4>
16f18: f10c 0401 add.w r4, ip, #1
16f1c: f002 0203 and.w r2, r2, #3
16f20: eb03 0384 add.w r3, r3, r4, lsl #2
16f24: eb01 0184 add.w r1, r1, r4, lsl #2
16f28: f102 3cff add.w ip, r2, #4294967295 ; 0xffffffff
16f2c: b14a cbz r2, 16f42 <memmove+0xea>
16f2e: f10c 0c01 add.w ip, ip, #1
16f32: 3b01 subs r3, #1
16f34: 448c add ip, r1
16f36: f811 2b01 ldrb.w r2, [r1], #1
16f3a: f803 2f01 strb.w r2, [r3, #1]!
16f3e: 4561 cmp r1, ip
16f40: d1f9 bne.n 16f36 <memmove+0xde>
16f42: bd70 pop {r4, r5, r6, pc}
16f44: f102 3cff add.w ip, r2, #4294967295 ; 0xffffffff
16f48: 4603 mov r3, r0
16f4a: e79b b.n 16e84 <memmove+0x2c>
16f4c: 4622 mov r2, r4
16f4e: e7eb b.n 16f28 <memmove+0xd0>
00016f50 <memset>:
16f50: 0783 lsls r3, r0, #30
16f52: b530 push {r4, r5, lr}
16f54: d048 beq.n 16fe8 <memset+0x98>
16f56: 1e54 subs r4, r2, #1
16f58: 2a00 cmp r2, #0
16f5a: d03f beq.n 16fdc <memset+0x8c>
16f5c: b2ca uxtb r2, r1
16f5e: 4603 mov r3, r0
16f60: e001 b.n 16f66 <memset+0x16>
16f62: 3c01 subs r4, #1
16f64: d33a bcc.n 16fdc <memset+0x8c>
16f66: f803 2b01 strb.w r2, [r3], #1
16f6a: 079d lsls r5, r3, #30
16f6c: d1f9 bne.n 16f62 <memset+0x12>
16f6e: 2c03 cmp r4, #3
16f70: d92d bls.n 16fce <memset+0x7e>
16f72: b2cd uxtb r5, r1
16f74: ea45 2505 orr.w r5, r5, r5, lsl #8
16f78: 2c0f cmp r4, #15
16f7a: ea45 4505 orr.w r5, r5, r5, lsl #16
16f7e: d936 bls.n 16fee <memset+0x9e>
16f80: f1a4 0210 sub.w r2, r4, #16
16f84: f022 0c0f bic.w ip, r2, #15
16f88: f103 0e20 add.w lr, r3, #32
16f8c: 44e6 add lr, ip
16f8e: ea4f 1c12 mov.w ip, r2, lsr #4
16f92: f103 0210 add.w r2, r3, #16
16f96: e942 5504 strd r5, r5, [r2, #-16]
16f9a: e942 5502 strd r5, r5, [r2, #-8]
16f9e: 3210 adds r2, #16
16fa0: 4572 cmp r2, lr
16fa2: d1f8 bne.n 16f96 <memset+0x46>
16fa4: f10c 0201 add.w r2, ip, #1
16fa8: f014 0f0c tst.w r4, #12
16fac: eb03 1202 add.w r2, r3, r2, lsl #4
16fb0: f004 0c0f and.w ip, r4, #15
16fb4: d013 beq.n 16fde <memset+0x8e>
16fb6: f1ac 0304 sub.w r3, ip, #4
16fba: f023 0303 bic.w r3, r3, #3
16fbe: 3304 adds r3, #4
16fc0: 4413 add r3, r2
16fc2: f842 5b04 str.w r5, [r2], #4
16fc6: 4293 cmp r3, r2
16fc8: d1fb bne.n 16fc2 <memset+0x72>
16fca: f00c 0403 and.w r4, ip, #3
16fce: b12c cbz r4, 16fdc <memset+0x8c>
16fd0: b2c9 uxtb r1, r1
16fd2: 441c add r4, r3
16fd4: f803 1b01 strb.w r1, [r3], #1
16fd8: 429c cmp r4, r3
16fda: d1fb bne.n 16fd4 <memset+0x84>
16fdc: bd30 pop {r4, r5, pc}
16fde: 4664 mov r4, ip
16fe0: 4613 mov r3, r2
16fe2: 2c00 cmp r4, #0
16fe4: d1f4 bne.n 16fd0 <memset+0x80>
16fe6: e7f9 b.n 16fdc <memset+0x8c>
16fe8: 4603 mov r3, r0
16fea: 4614 mov r4, r2
16fec: e7bf b.n 16f6e <memset+0x1e>
16fee: 461a mov r2, r3
16ff0: 46a4 mov ip, r4
16ff2: e7e0 b.n 16fb6 <memset+0x66>
00016ff4 <printf>:
16ff4: b40f push {r0, r1, r2, r3}
16ff6: b500 push {lr}
16ff8: 4907 ldr r1, [pc, #28] ; (17018 <printf+0x24>)
16ffa: b083 sub sp, #12
16ffc: ab04 add r3, sp, #16
16ffe: 6808 ldr r0, [r1, #0]
17000: f853 2b04 ldr.w r2, [r3], #4
17004: 6881 ldr r1, [r0, #8]
17006: 9301 str r3, [sp, #4]
17008: f001 fc68 bl 188dc <_vfprintf_r>
1700c: b003 add sp, #12
1700e: f85d eb04 ldr.w lr, [sp], #4
17012: b004 add sp, #16
17014: 4770 bx lr
17016: bf00 nop
17018: 20000068 .word 0x20000068
0001701c <snprintf>:
1701c: b40c push {r2, r3}
1701e: b510 push {r4, lr}
17020: 4b1f ldr r3, [pc, #124] ; (170a0 <snprintf+0x84>)
17022: 2900 cmp r1, #0
17024: 681c ldr r4, [r3, #0]
17026: b09a sub sp, #104 ; 0x68
17028: db35 blt.n 17096 <snprintf+0x7a>
1702a: f44f 7302 mov.w r3, #520 ; 0x208
1702e: f8ad 3010 strh.w r3, [sp, #16]
17032: 9001 str r0, [sp, #4]
17034: 9005 str r0, [sp, #20]
17036: ab1d add r3, sp, #116 ; 0x74
17038: d018 beq.n 1706c <snprintf+0x50>
1703a: 3901 subs r1, #1
1703c: f64f 72ff movw r2, #65535 ; 0xffff
17040: 9103 str r1, [sp, #12]
17042: 9106 str r1, [sp, #24]
17044: f8ad 2012 strh.w r2, [sp, #18]
17048: a901 add r1, sp, #4
1704a: 9a1c ldr r2, [sp, #112] ; 0x70
1704c: 9300 str r3, [sp, #0]
1704e: 4620 mov r0, r4
17050: f000 fa84 bl 1755c <_svfprintf_r>
17054: 1c42 adds r2, r0, #1
17056: da01 bge.n 1705c <snprintf+0x40>
17058: 238b movs r3, #139 ; 0x8b
1705a: 6023 str r3, [r4, #0]
1705c: 9b01 ldr r3, [sp, #4]
1705e: 2200 movs r2, #0
17060: 701a strb r2, [r3, #0]
17062: b01a add sp, #104 ; 0x68
17064: e8bd 4010 ldmia.w sp!, {r4, lr}
17068: b002 add sp, #8
1706a: 4770 bx lr
1706c: f64f 72ff movw r2, #65535 ; 0xffff
17070: 9103 str r1, [sp, #12]
17072: 9106 str r1, [sp, #24]
17074: f8ad 2012 strh.w r2, [sp, #18]
17078: a901 add r1, sp, #4
1707a: 9a1c ldr r2, [sp, #112] ; 0x70
1707c: 9300 str r3, [sp, #0]
1707e: 4620 mov r0, r4
17080: f000 fa6c bl 1755c <_svfprintf_r>
17084: 1c43 adds r3, r0, #1
17086: da01 bge.n 1708c <snprintf+0x70>
17088: 238b movs r3, #139 ; 0x8b
1708a: 6023 str r3, [r4, #0]
1708c: b01a add sp, #104 ; 0x68
1708e: e8bd 4010 ldmia.w sp!, {r4, lr}
17092: b002 add sp, #8
17094: 4770 bx lr
17096: 238b movs r3, #139 ; 0x8b
17098: 6023 str r3, [r4, #0]
1709a: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
1709e: e7f5 b.n 1708c <snprintf+0x70>
170a0: 20000068 .word 0x20000068
...
170c0: eba2 0003 sub.w r0, r2, r3
170c4: 4770 bx lr
170c6: bf00 nop
000170c8 <strcmp>:
170c8: 7802 ldrb r2, [r0, #0]
170ca: 780b ldrb r3, [r1, #0]
170cc: 2a01 cmp r2, #1
170ce: bf28 it cs
170d0: 429a cmpcs r2, r3
170d2: d1f5 bne.n 170c0 <snprintf+0xa4>
170d4: e96d 4504 strd r4, r5, [sp, #-16]!
170d8: ea40 0401 orr.w r4, r0, r1
170dc: e9cd 6702 strd r6, r7, [sp, #8]
170e0: f06f 0c00 mvn.w ip, #0
170e4: ea4f 7244 mov.w r2, r4, lsl #29
170e8: b312 cbz r2, 17130 <strcmp+0x68>
170ea: ea80 0401 eor.w r4, r0, r1
170ee: f014 0f07 tst.w r4, #7
170f2: d16a bne.n 171ca <strcmp+0x102>
170f4: f000 0407 and.w r4, r0, #7
170f8: f020 0007 bic.w r0, r0, #7
170fc: f004 0503 and.w r5, r4, #3
17100: f021 0107 bic.w r1, r1, #7
17104: ea4f 05c5 mov.w r5, r5, lsl #3
17108: e8f0 2304 ldrd r2, r3, [r0], #16
1710c: f014 0f04 tst.w r4, #4
17110: e8f1 6704 ldrd r6, r7, [r1], #16
17114: fa0c f405 lsl.w r4, ip, r5
17118: ea62 0204 orn r2, r2, r4
1711c: ea66 0604 orn r6, r6, r4
17120: d00a beq.n 17138 <strcmp+0x70>
17122: ea63 0304 orn r3, r3, r4
17126: 4662 mov r2, ip
17128: ea67 0704 orn r7, r7, r4
1712c: 4666 mov r6, ip
1712e: e003 b.n 17138 <strcmp+0x70>
17130: e8f0 2304 ldrd r2, r3, [r0], #16
17134: e8f1 6704 ldrd r6, r7, [r1], #16
17138: fa82 f54c uadd8 r5, r2, ip
1713c: ea82 0406 eor.w r4, r2, r6
17140: faa4 f48c sel r4, r4, ip
17144: bb6c cbnz r4, 171a2 <strcmp+0xda>
17146: fa83 f54c uadd8 r5, r3, ip
1714a: ea83 0507 eor.w r5, r3, r7
1714e: faa5 f58c sel r5, r5, ip
17152: b995 cbnz r5, 1717a <strcmp+0xb2>
17154: e950 2302 ldrd r2, r3, [r0, #-8]
17158: e951 6702 ldrd r6, r7, [r1, #-8]
1715c: fa82 f54c uadd8 r5, r2, ip
17160: ea82 0406 eor.w r4, r2, r6
17164: faa4 f48c sel r4, r4, ip
17168: fa83 f54c uadd8 r5, r3, ip
1716c: ea83 0507 eor.w r5, r3, r7
17170: faa5 f58c sel r5, r5, ip
17174: 4325 orrs r5, r4
17176: d0db beq.n 17130 <strcmp+0x68>
17178: b99c cbnz r4, 171a2 <strcmp+0xda>
1717a: ba2d rev r5, r5
1717c: fab5 f485 clz r4, r5
17180: f024 0407 bic.w r4, r4, #7
17184: fa27 f104 lsr.w r1, r7, r4
17188: e9dd 6702 ldrd r6, r7, [sp, #8]
1718c: fa23 f304 lsr.w r3, r3, r4
17190: f003 00ff and.w r0, r3, #255 ; 0xff
17194: f001 01ff and.w r1, r1, #255 ; 0xff
17198: e8fd 4504 ldrd r4, r5, [sp], #16
1719c: eba0 0001 sub.w r0, r0, r1
171a0: 4770 bx lr
171a2: ba24 rev r4, r4
171a4: fab4 f484 clz r4, r4
171a8: f024 0407 bic.w r4, r4, #7
171ac: fa26 f104 lsr.w r1, r6, r4
171b0: e9dd 6702 ldrd r6, r7, [sp, #8]
171b4: fa22 f204 lsr.w r2, r2, r4
171b8: f002 00ff and.w r0, r2, #255 ; 0xff
171bc: f001 01ff and.w r1, r1, #255 ; 0xff
171c0: e8fd 4504 ldrd r4, r5, [sp], #16
171c4: eba0 0001 sub.w r0, r0, r1
171c8: 4770 bx lr
171ca: f014 0f03 tst.w r4, #3
171ce: d13c bne.n 1724a <strcmp+0x182>
171d0: f010 0403 ands.w r4, r0, #3
171d4: d128 bne.n 17228 <strcmp+0x160>
171d6: f850 2b08 ldr.w r2, [r0], #8
171da: f851 3b08 ldr.w r3, [r1], #8
171de: fa82 f54c uadd8 r5, r2, ip
171e2: ea82 0503 eor.w r5, r2, r3
171e6: faa5 f58c sel r5, r5, ip
171ea: b95d cbnz r5, 17204 <strcmp+0x13c>
171ec: f850 2c04 ldr.w r2, [r0, #-4]
171f0: f851 3c04 ldr.w r3, [r1, #-4]
171f4: fa82 f54c uadd8 r5, r2, ip
171f8: ea82 0503 eor.w r5, r2, r3
171fc: faa5 f58c sel r5, r5, ip
17200: 2d00 cmp r5, #0
17202: d0e8 beq.n 171d6 <strcmp+0x10e>
17204: ba2d rev r5, r5
17206: fab5 f485 clz r4, r5
1720a: f024 0407 bic.w r4, r4, #7
1720e: fa23 f104 lsr.w r1, r3, r4
17212: fa22 f204 lsr.w r2, r2, r4
17216: f002 00ff and.w r0, r2, #255 ; 0xff
1721a: f001 01ff and.w r1, r1, #255 ; 0xff
1721e: e8fd 4504 ldrd r4, r5, [sp], #16
17222: eba0 0001 sub.w r0, r0, r1
17226: 4770 bx lr
17228: ea4f 04c4 mov.w r4, r4, lsl #3
1722c: f020 0003 bic.w r0, r0, #3
17230: f850 2b08 ldr.w r2, [r0], #8
17234: f021 0103 bic.w r1, r1, #3
17238: f851 3b08 ldr.w r3, [r1], #8
1723c: fa0c f404 lsl.w r4, ip, r4
17240: ea62 0204 orn r2, r2, r4
17244: ea63 0304 orn r3, r3, r4
17248: e7c9 b.n 171de <strcmp+0x116>
1724a: f010 0403 ands.w r4, r0, #3
1724e: d01a beq.n 17286 <strcmp+0x1be>
17250: eba1 0104 sub.w r1, r1, r4
17254: f020 0003 bic.w r0, r0, #3
17258: 07e4 lsls r4, r4, #31
1725a: f850 2b04 ldr.w r2, [r0], #4
1725e: d006 beq.n 1726e <strcmp+0x1a6>
17260: d20f bcs.n 17282 <strcmp+0x1ba>
17262: 788b ldrb r3, [r1, #2]
17264: fa5f f4a2 uxtb.w r4, r2, ror #16
17268: 1ae4 subs r4, r4, r3
1726a: d106 bne.n 1727a <strcmp+0x1b2>
1726c: b12b cbz r3, 1727a <strcmp+0x1b2>
1726e: 78cb ldrb r3, [r1, #3]
17270: fa5f f4b2 uxtb.w r4, r2, ror #24
17274: 1ae4 subs r4, r4, r3
17276: d100 bne.n 1727a <strcmp+0x1b2>
17278: b91b cbnz r3, 17282 <strcmp+0x1ba>
1727a: 4620 mov r0, r4
1727c: f85d 4b10 ldr.w r4, [sp], #16
17280: 4770 bx lr
17282: f101 0104 add.w r1, r1, #4
17286: f850 2b04 ldr.w r2, [r0], #4
1728a: 07cc lsls r4, r1, #31
1728c: f021 0103 bic.w r1, r1, #3
17290: f851 3b04 ldr.w r3, [r1], #4
17294: d848 bhi.n 17328 <strcmp+0x260>
17296: d224 bcs.n 172e2 <strcmp+0x21a>
17298: f022 447f bic.w r4, r2, #4278190080 ; 0xff000000
1729c: fa82 f54c uadd8 r5, r2, ip
172a0: ea94 2513 eors.w r5, r4, r3, lsr #8
172a4: faa5 f58c sel r5, r5, ip
172a8: d10a bne.n 172c0 <strcmp+0x1f8>
172aa: b965 cbnz r5, 172c6 <strcmp+0x1fe>
172ac: f851 3b04 ldr.w r3, [r1], #4
172b0: ea84 0402 eor.w r4, r4, r2
172b4: ebb4 6f03 cmp.w r4, r3, lsl #24
172b8: d10e bne.n 172d8 <strcmp+0x210>
172ba: f850 2b04 ldr.w r2, [r0], #4
172be: e7eb b.n 17298 <strcmp+0x1d0>
172c0: ea4f 2313 mov.w r3, r3, lsr #8
172c4: e055 b.n 17372 <strcmp+0x2aa>
172c6: f035 457f bics.w r5, r5, #4278190080 ; 0xff000000
172ca: d14d bne.n 17368 <strcmp+0x2a0>
172cc: 7808 ldrb r0, [r1, #0]
172ce: e8fd 4504 ldrd r4, r5, [sp], #16
172d2: f1c0 0000 rsb r0, r0, #0
172d6: 4770 bx lr
172d8: ea4f 6212 mov.w r2, r2, lsr #24
172dc: f003 03ff and.w r3, r3, #255 ; 0xff
172e0: e047 b.n 17372 <strcmp+0x2aa>
172e2: ea02 441c and.w r4, r2, ip, lsr #16
172e6: fa82 f54c uadd8 r5, r2, ip
172ea: ea94 4513 eors.w r5, r4, r3, lsr #16
172ee: faa5 f58c sel r5, r5, ip
172f2: d10a bne.n 1730a <strcmp+0x242>
172f4: b965 cbnz r5, 17310 <strcmp+0x248>
172f6: f851 3b04 ldr.w r3, [r1], #4
172fa: ea84 0402 eor.w r4, r4, r2
172fe: ebb4 4f03 cmp.w r4, r3, lsl #16
17302: d10c bne.n 1731e <strcmp+0x256>
17304: f850 2b04 ldr.w r2, [r0], #4
17308: e7eb b.n 172e2 <strcmp+0x21a>
1730a: ea4f 4313 mov.w r3, r3, lsr #16
1730e: e030 b.n 17372 <strcmp+0x2aa>
17310: ea15 451c ands.w r5, r5, ip, lsr #16
17314: d128 bne.n 17368 <strcmp+0x2a0>
17316: 880b ldrh r3, [r1, #0]
17318: ea4f 4212 mov.w r2, r2, lsr #16
1731c: e029 b.n 17372 <strcmp+0x2aa>
1731e: ea4f 4212 mov.w r2, r2, lsr #16
17322: ea03 431c and.w r3, r3, ip, lsr #16
17326: e024 b.n 17372 <strcmp+0x2aa>
17328: f002 04ff and.w r4, r2, #255 ; 0xff
1732c: fa82 f54c uadd8 r5, r2, ip
17330: ea94 6513 eors.w r5, r4, r3, lsr #24
17334: faa5 f58c sel r5, r5, ip
17338: d10a bne.n 17350 <strcmp+0x288>
1733a: b965 cbnz r5, 17356 <strcmp+0x28e>
1733c: f851 3b04 ldr.w r3, [r1], #4
17340: ea84 0402 eor.w r4, r4, r2
17344: ebb4 2f03 cmp.w r4, r3, lsl #8
17348: d109 bne.n 1735e <strcmp+0x296>
1734a: f850 2b04 ldr.w r2, [r0], #4
1734e: e7eb b.n 17328 <strcmp+0x260>
17350: ea4f 6313 mov.w r3, r3, lsr #24
17354: e00d b.n 17372 <strcmp+0x2aa>
17356: f015 0fff tst.w r5, #255 ; 0xff
1735a: d105 bne.n 17368 <strcmp+0x2a0>
1735c: 680b ldr r3, [r1, #0]
1735e: ea4f 2212 mov.w r2, r2, lsr #8
17362: f023 437f bic.w r3, r3, #4278190080 ; 0xff000000
17366: e004 b.n 17372 <strcmp+0x2aa>
17368: f04f 0000 mov.w r0, #0
1736c: e8fd 4504 ldrd r4, r5, [sp], #16
17370: 4770 bx lr
17372: ba12 rev r2, r2
17374: ba1b rev r3, r3
17376: fa82 f44c uadd8 r4, r2, ip
1737a: ea82 0403 eor.w r4, r2, r3
1737e: faa4 f58c sel r5, r4, ip
17382: fab5 f485 clz r4, r5
17386: fa02 f204 lsl.w r2, r2, r4
1738a: fa03 f304 lsl.w r3, r3, r4
1738e: ea4f 6012 mov.w r0, r2, lsr #24
17392: e8fd 4504 ldrd r4, r5, [sp], #16
17396: eba0 6013 sub.w r0, r0, r3, lsr #24
1739a: 4770 bx lr
0001739c <strcpy>:
1739c: ea80 0201 eor.w r2, r0, r1
173a0: 4684 mov ip, r0
173a2: f012 0f03 tst.w r2, #3
173a6: d14f bne.n 17448 <strcpy+0xac>
173a8: f011 0f03 tst.w r1, #3
173ac: d132 bne.n 17414 <strcpy+0x78>
173ae: f84d 4d04 str.w r4, [sp, #-4]!
173b2: f011 0f04 tst.w r1, #4
173b6: f851 3b04 ldr.w r3, [r1], #4
173ba: d00b beq.n 173d4 <strcpy+0x38>
173bc: f1a3 3201 sub.w r2, r3, #16843009 ; 0x1010101
173c0: 439a bics r2, r3
173c2: f012 3f80 tst.w r2, #2155905152 ; 0x80808080
173c6: bf04 itt eq
173c8: f84c 3b04 streq.w r3, [ip], #4
173cc: f851 3b04 ldreq.w r3, [r1], #4
173d0: d116 bne.n 17400 <strcpy+0x64>
173d2: bf00 nop
173d4: f851 4b04 ldr.w r4, [r1], #4
173d8: f1a3 3201 sub.w r2, r3, #16843009 ; 0x1010101
173dc: 439a bics r2, r3
173de: f012 3f80 tst.w r2, #2155905152 ; 0x80808080
173e2: f1a4 3201 sub.w r2, r4, #16843009 ; 0x1010101
173e6: d10b bne.n 17400 <strcpy+0x64>
173e8: f84c 3b04 str.w r3, [ip], #4
173ec: 43a2 bics r2, r4
173ee: f012 3f80 tst.w r2, #2155905152 ; 0x80808080
173f2: bf04 itt eq
173f4: f851 3b04 ldreq.w r3, [r1], #4
173f8: f84c 4b04 streq.w r4, [ip], #4
173fc: d0ea beq.n 173d4 <strcpy+0x38>
173fe: 4623 mov r3, r4
17400: f80c 3b01 strb.w r3, [ip], #1
17404: f013 0fff tst.w r3, #255 ; 0xff
17408: ea4f 2333 mov.w r3, r3, ror #8
1740c: d1f8 bne.n 17400 <strcpy+0x64>
1740e: f85d 4b04 ldr.w r4, [sp], #4
17412: 4770 bx lr
17414: f011 0f01 tst.w r1, #1
17418: d006 beq.n 17428 <strcpy+0x8c>
1741a: f811 2b01 ldrb.w r2, [r1], #1
1741e: f80c 2b01 strb.w r2, [ip], #1
17422: 2a00 cmp r2, #0
17424: bf08 it eq
17426: 4770 bxeq lr
17428: f011 0f02 tst.w r1, #2
1742c: d0bf beq.n 173ae <strcpy+0x12>
1742e: f831 2b02 ldrh.w r2, [r1], #2
17432: f012 0fff tst.w r2, #255 ; 0xff
17436: bf16 itet ne
17438: f82c 2b02 strhne.w r2, [ip], #2
1743c: f88c 2000 strbeq.w r2, [ip]
17440: f412 4f7f tstne.w r2, #65280 ; 0xff00
17444: d1b3 bne.n 173ae <strcpy+0x12>
17446: 4770 bx lr
17448: f811 2b01 ldrb.w r2, [r1], #1
1744c: f80c 2b01 strb.w r2, [ip], #1
17450: 2a00 cmp r2, #0
17452: d1f9 bne.n 17448 <strcpy+0xac>
17454: 4770 bx lr
17456: bf00 nop
...
00017480 <strlen>:
17480: f890 f000 pld [r0]
17484: e96d 4502 strd r4, r5, [sp, #-8]!
17488: f020 0107 bic.w r1, r0, #7
1748c: f06f 0c00 mvn.w ip, #0
17490: f010 0407 ands.w r4, r0, #7
17494: f891 f020 pld [r1, #32]
17498: f040 8049 bne.w 1752e <strlen+0xae>
1749c: f04f 0400 mov.w r4, #0
174a0: f06f 0007 mvn.w r0, #7
174a4: e9d1 2300 ldrd r2, r3, [r1]
174a8: f891 f040 pld [r1, #64] ; 0x40
174ac: f100 0008 add.w r0, r0, #8
174b0: fa82 f24c uadd8 r2, r2, ip
174b4: faa4 f28c sel r2, r4, ip
174b8: fa83 f34c uadd8 r3, r3, ip
174bc: faa2 f38c sel r3, r2, ip
174c0: bb4b cbnz r3, 17516 <strlen+0x96>
174c2: e9d1 2302 ldrd r2, r3, [r1, #8]
174c6: fa82 f24c uadd8 r2, r2, ip
174ca: f100 0008 add.w r0, r0, #8
174ce: faa4 f28c sel r2, r4, ip
174d2: fa83 f34c uadd8 r3, r3, ip
174d6: faa2 f38c sel r3, r2, ip
174da: b9e3 cbnz r3, 17516 <strlen+0x96>
174dc: e9d1 2304 ldrd r2, r3, [r1, #16]
174e0: fa82 f24c uadd8 r2, r2, ip
174e4: f100 0008 add.w r0, r0, #8
174e8: faa4 f28c sel r2, r4, ip
174ec: fa83 f34c uadd8 r3, r3, ip
174f0: faa2 f38c sel r3, r2, ip
174f4: b97b cbnz r3, 17516 <strlen+0x96>
174f6: e9d1 2306 ldrd r2, r3, [r1, #24]
174fa: f101 0120 add.w r1, r1, #32
174fe: fa82 f24c uadd8 r2, r2, ip
17502: f100 0008 add.w r0, r0, #8
17506: faa4 f28c sel r2, r4, ip
1750a: fa83 f34c uadd8 r3, r3, ip
1750e: faa2 f38c sel r3, r2, ip
17512: 2b00 cmp r3, #0
17514: d0c6 beq.n 174a4 <strlen+0x24>
17516: 2a00 cmp r2, #0
17518: bf04 itt eq
1751a: 3004 addeq r0, #4
1751c: 461a moveq r2, r3
1751e: ba12 rev r2, r2
17520: fab2 f282 clz r2, r2
17524: e8fd 4502 ldrd r4, r5, [sp], #8
17528: eb00 00d2 add.w r0, r0, r2, lsr #3
1752c: 4770 bx lr
1752e: e9d1 2300 ldrd r2, r3, [r1]
17532: f004 0503 and.w r5, r4, #3
17536: f1c4 0000 rsb r0, r4, #0
1753a: ea4f 05c5 mov.w r5, r5, lsl #3
1753e: f014 0f04 tst.w r4, #4
17542: f891 f040 pld [r1, #64] ; 0x40
17546: fa0c f505 lsl.w r5, ip, r5
1754a: ea62 0205 orn r2, r2, r5
1754e: bf1c itt ne
17550: ea63 0305 ornne r3, r3, r5
17554: 4662 movne r2, ip
17556: f04f 0400 mov.w r4, #0
1755a: e7a9 b.n 174b0 <strlen+0x30>
0001755c <_svfprintf_r>:
1755c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
17560: b0bf sub sp, #252 ; 0xfc
17562: 468a mov sl, r1
17564: 4690 mov r8, r2
17566: 930d str r3, [sp, #52] ; 0x34
17568: 900c str r0, [sp, #48] ; 0x30
1756a: f003 fee5 bl 1b338 <_localeconv_r>
1756e: 6803 ldr r3, [r0, #0]
17570: 9315 str r3, [sp, #84] ; 0x54
17572: 4618 mov r0, r3
17574: f7ff ff84 bl 17480 <strlen>
17578: f8ba 300c ldrh.w r3, [sl, #12]
1757c: 9014 str r0, [sp, #80] ; 0x50
1757e: 061f lsls r7, r3, #24
17580: d504 bpl.n 1758c <_svfprintf_r+0x30>
17582: f8da 3010 ldr.w r3, [sl, #16]
17586: 2b00 cmp r3, #0
17588: f000 8690 beq.w 182ac <_svfprintf_r+0xd50>
1758c: 2300 movs r3, #0
1758e: e9cd 3322 strd r3, r3, [sp, #136] ; 0x88
17592: 9312 str r3, [sp, #72] ; 0x48
17594: 9313 str r3, [sp, #76] ; 0x4c
17596: 9316 str r3, [sp, #88] ; 0x58
17598: 9309 str r3, [sp, #36] ; 0x24
1759a: 2400 movs r4, #0
1759c: 2300 movs r3, #0
1759e: e9cd 3410 strd r3, r4, [sp, #64] ; 0x40
175a2: aa2e add r2, sp, #184 ; 0xb8
175a4: 9221 str r2, [sp, #132] ; 0x84
175a6: 4691 mov r9, r2
175a8: 46d3 mov fp, sl
175aa: f898 3000 ldrb.w r3, [r8]
175ae: 2b00 cmp r3, #0
175b0: f000 8137 beq.w 17822 <_svfprintf_r+0x2c6>
175b4: 4644 mov r4, r8
175b6: e004 b.n 175c2 <_svfprintf_r+0x66>
175b8: f814 3f01 ldrb.w r3, [r4, #1]!
175bc: 2b00 cmp r3, #0
175be: f000 8087 beq.w 176d0 <_svfprintf_r+0x174>
175c2: 2b25 cmp r3, #37 ; 0x25
175c4: d1f8 bne.n 175b8 <_svfprintf_r+0x5c>
175c6: ebb4 0508 subs.w r5, r4, r8
175ca: f040 8085 bne.w 176d8 <_svfprintf_r+0x17c>
175ce: 7823 ldrb r3, [r4, #0]
175d0: 2b00 cmp r3, #0
175d2: f000 8126 beq.w 17822 <_svfprintf_r+0x2c6>
175d6: 2300 movs r3, #0
175d8: 1c62 adds r2, r4, #1
175da: f88d 3067 strb.w r3, [sp, #103] ; 0x67
175de: 4618 mov r0, r3
175e0: f04f 35ff mov.w r5, #4294967295 ; 0xffffffff
175e4: 4619 mov r1, r3
175e6: 461c mov r4, r3
175e8: 4690 mov r8, r2
175ea: f818 7b01 ldrb.w r7, [r8], #1
175ee: f1a7 0220 sub.w r2, r7, #32
175f2: 2a58 cmp r2, #88 ; 0x58
175f4: f200 808b bhi.w 1770e <_svfprintf_r+0x1b2>
175f8: e8df f012 tbh [pc, r2, lsl #1]
175fc: 00890296 .word 0x00890296
17600: 02880089 .word 0x02880089
17604: 00890089 .word 0x00890089
17608: 00890089 .word 0x00890089
1760c: 00890089 .word 0x00890089
17610: 06470194 .word 0x06470194
17614: 019c0089 .word 0x019c0089
17618: 0089019f .word 0x0089019f
1761c: 005902a8 .word 0x005902a8
17620: 00590059 .word 0x00590059
17624: 00590059 .word 0x00590059
17628: 00590059 .word 0x00590059
1762c: 00590059 .word 0x00590059
17630: 00890089 .word 0x00890089
17634: 00890089 .word 0x00890089
17638: 00890089 .word 0x00890089
1763c: 00890089 .word 0x00890089
17640: 00890089 .word 0x00890089
17644: 0125029c .word 0x0125029c
17648: 01250089 .word 0x01250089
1764c: 00890089 .word 0x00890089
17650: 00890089 .word 0x00890089
17654: 00890258 .word 0x00890258
17658: 02640089 .word 0x02640089
1765c: 00890089 .word 0x00890089
17660: 00890089 .word 0x00890089
17664: 025b0089 .word 0x025b0089
17668: 00890089 .word 0x00890089
1766c: 0089027d .word 0x0089027d
17670: 00890089 .word 0x00890089
17674: 00890089 .word 0x00890089
17678: 00890089 .word 0x00890089
1767c: 00890089 .word 0x00890089
17680: 026e0089 .word 0x026e0089
17684: 0125016a .word 0x0125016a
17688: 01250125 .word 0x01250125
1768c: 016a0285 .word 0x016a0285
17690: 00890089 .word 0x00890089
17694: 00890067 .word 0x00890067
17698: 02310243 .word 0x02310243
1769c: 00670220 .word 0x00670220
176a0: 01fa0089 .word 0x01fa0089
176a4: 01ea0089 .word 0x01ea0089
176a8: 00890089 .word 0x00890089
176ac: 01b6 .short 0x01b6
176ae: f1a7 0230 sub.w r2, r7, #48 ; 0x30
176b2: 2100 movs r1, #0
176b4: f818 7b01 ldrb.w r7, [r8], #1
176b8: eb01 0181 add.w r1, r1, r1, lsl #2
176bc: eb02 0141 add.w r1, r2, r1, lsl #1
176c0: f1a7 0230 sub.w r2, r7, #48 ; 0x30
176c4: 2a09 cmp r2, #9
176c6: d9f5 bls.n 176b4 <_svfprintf_r+0x158>
176c8: e791 b.n 175ee <_svfprintf_r+0x92>
176ca: f044 0410 orr.w r4, r4, #16
176ce: e78c b.n 175ea <_svfprintf_r+0x8e>
176d0: ebb4 0508 subs.w r5, r4, r8
176d4: f000 80a5 beq.w 17822 <_svfprintf_r+0x2c6>
176d8: 9b23 ldr r3, [sp, #140] ; 0x8c
176da: 442b add r3, r5
176dc: 9323 str r3, [sp, #140] ; 0x8c
176de: 9b22 ldr r3, [sp, #136] ; 0x88
176e0: 3301 adds r3, #1
176e2: 2b07 cmp r3, #7
176e4: e9c9 8500 strd r8, r5, [r9]
176e8: 9322 str r3, [sp, #136] ; 0x88
176ea: dc05 bgt.n 176f8 <_svfprintf_r+0x19c>
176ec: f109 0908 add.w r9, r9, #8
176f0: 9b09 ldr r3, [sp, #36] ; 0x24
176f2: 442b add r3, r5
176f4: 9309 str r3, [sp, #36] ; 0x24
176f6: e76a b.n 175ce <_svfprintf_r+0x72>
176f8: 980c ldr r0, [sp, #48] ; 0x30
176fa: aa21 add r2, sp, #132 ; 0x84
176fc: 4659 mov r1, fp
176fe: f004 fddf bl 1c2c0 <__ssprint_r>
17702: 2800 cmp r0, #0
17704: f040 834f bne.w 17da6 <_svfprintf_r+0x84a>
17708: f10d 09b8 add.w r9, sp, #184 ; 0xb8
1770c: e7f0 b.n 176f0 <_svfprintf_r+0x194>
1770e: 910b str r1, [sp, #44] ; 0x2c
17710: 2b00 cmp r3, #0
17712: f040 8795 bne.w 18640 <_svfprintf_r+0x10e4>
17716: 2f00 cmp r7, #0
17718: f000 8083 beq.w 17822 <_svfprintf_r+0x2c6>
1771c: 2300 movs r3, #0
1771e: f88d 3067 strb.w r3, [sp, #103] ; 0x67
17722: 2301 movs r3, #1
17724: f88d 7090 strb.w r7, [sp, #144] ; 0x90
17728: 9307 str r3, [sp, #28]
1772a: 930a str r3, [sp, #40] ; 0x28
1772c: ad24 add r5, sp, #144 ; 0x90
1772e: 2300 movs r3, #0
17730: 9406 str r4, [sp, #24]
17732: 9308 str r3, [sp, #32]
17734: 930f str r3, [sp, #60] ; 0x3c
17736: 9b06 ldr r3, [sp, #24]
17738: f013 0302 ands.w r3, r3, #2
1773c: d002 beq.n 17744 <_svfprintf_r+0x1e8>
1773e: 9a07 ldr r2, [sp, #28]
17740: 3202 adds r2, #2
17742: 9207 str r2, [sp, #28]
17744: 9a06 ldr r2, [sp, #24]
17746: 9c23 ldr r4, [sp, #140] ; 0x8c
17748: f012 0284 ands.w r2, r2, #132 ; 0x84
1774c: 920e str r2, [sp, #56] ; 0x38
1774e: d105 bne.n 1775c <_svfprintf_r+0x200>
17750: 9a0b ldr r2, [sp, #44] ; 0x2c
17752: 9907 ldr r1, [sp, #28]
17754: 1a56 subs r6, r2, r1
17756: 2e00 cmp r6, #0
17758: f300 8388 bgt.w 17e6c <_svfprintf_r+0x910>
1775c: f89d 2067 ldrb.w r2, [sp, #103] ; 0x67
17760: b18a cbz r2, 17786 <_svfprintf_r+0x22a>
17762: 9a22 ldr r2, [sp, #136] ; 0x88
17764: f10d 0167 add.w r1, sp, #103 ; 0x67
17768: 3201 adds r2, #1
1776a: 3401 adds r4, #1
1776c: f8c9 1000 str.w r1, [r9]
17770: 2a07 cmp r2, #7
17772: f04f 0101 mov.w r1, #1
17776: 9423 str r4, [sp, #140] ; 0x8c
17778: 9222 str r2, [sp, #136] ; 0x88
1777a: f8c9 1004 str.w r1, [r9, #4]
1777e: f300 83c9 bgt.w 17f14 <_svfprintf_r+0x9b8>
17782: f109 0908 add.w r9, r9, #8
17786: b183 cbz r3, 177aa <_svfprintf_r+0x24e>
17788: 9b22 ldr r3, [sp, #136] ; 0x88
1778a: aa1a add r2, sp, #104 ; 0x68
1778c: 3301 adds r3, #1
1778e: 3402 adds r4, #2
17790: f8c9 2000 str.w r2, [r9]
17794: 2b07 cmp r3, #7
17796: f04f 0202 mov.w r2, #2
1779a: 9423 str r4, [sp, #140] ; 0x8c
1779c: 9322 str r3, [sp, #136] ; 0x88
1779e: f8c9 2004 str.w r2, [r9, #4]
177a2: f300 83ab bgt.w 17efc <_svfprintf_r+0x9a0>
177a6: f109 0908 add.w r9, r9, #8
177aa: 9b0e ldr r3, [sp, #56] ; 0x38
177ac: 2b80 cmp r3, #128 ; 0x80
177ae: f000 8266 beq.w 17c7e <_svfprintf_r+0x722>
177b2: 9b08 ldr r3, [sp, #32]
177b4: 9a0a ldr r2, [sp, #40] ; 0x28
177b6: eba3 0a02 sub.w sl, r3, r2
177ba: f1ba 0f00 cmp.w sl, #0
177be: f300 82a8 bgt.w 17d12 <_svfprintf_r+0x7b6>
177c2: 9b06 ldr r3, [sp, #24]
177c4: 05de lsls r6, r3, #23
177c6: f100 81ea bmi.w 17b9e <_svfprintf_r+0x642>
177ca: 9b0a ldr r3, [sp, #40] ; 0x28
177cc: f8c9 3004 str.w r3, [r9, #4]
177d0: 441c add r4, r3
177d2: 9b22 ldr r3, [sp, #136] ; 0x88
177d4: f8c9 5000 str.w r5, [r9]
177d8: 3301 adds r3, #1
177da: 2b07 cmp r3, #7
177dc: 9423 str r4, [sp, #140] ; 0x8c
177de: 9322 str r3, [sp, #136] ; 0x88
177e0: f300 82ee bgt.w 17dc0 <_svfprintf_r+0x864>
177e4: f109 0908 add.w r9, r9, #8
177e8: 9b06 ldr r3, [sp, #24]
177ea: 075a lsls r2, r3, #29
177ec: d505 bpl.n 177fa <_svfprintf_r+0x29e>
177ee: 9b0b ldr r3, [sp, #44] ; 0x2c
177f0: 9a07 ldr r2, [sp, #28]
177f2: 1a9d subs r5, r3, r2
177f4: 2d00 cmp r5, #0
177f6: f300 839b bgt.w 17f30 <_svfprintf_r+0x9d4>
177fa: 9b09 ldr r3, [sp, #36] ; 0x24
177fc: 9a0b ldr r2, [sp, #44] ; 0x2c
177fe: 9907 ldr r1, [sp, #28]
17800: 428a cmp r2, r1
17802: bfac ite ge
17804: 189b addge r3, r3, r2
17806: 185b addlt r3, r3, r1
17808: 9309 str r3, [sp, #36] ; 0x24
1780a: 2c00 cmp r4, #0
1780c: f040 82c3 bne.w 17d96 <_svfprintf_r+0x83a>
17810: 2300 movs r3, #0
17812: 9322 str r3, [sp, #136] ; 0x88
17814: f898 3000 ldrb.w r3, [r8]
17818: f10d 09b8 add.w r9, sp, #184 ; 0xb8
1781c: 2b00 cmp r3, #0
1781e: f47f aec9 bne.w 175b4 <_svfprintf_r+0x58>
17822: 9b23 ldr r3, [sp, #140] ; 0x8c
17824: 46da mov sl, fp
17826: 2b00 cmp r3, #0
17828: f040 87b1 bne.w 1878e <_svfprintf_r+0x1232>
1782c: f8ba 300c ldrh.w r3, [sl, #12]
17830: f013 0f40 tst.w r3, #64 ; 0x40
17834: 9b09 ldr r3, [sp, #36] ; 0x24
17836: bf18 it ne
17838: f04f 33ff movne.w r3, #4294967295 ; 0xffffffff
1783c: 9309 str r3, [sp, #36] ; 0x24
1783e: 9809 ldr r0, [sp, #36] ; 0x24
17840: b03f add sp, #252 ; 0xfc
17842: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
17846: 910b str r1, [sp, #44] ; 0x2c
17848: 9508 str r5, [sp, #32]
1784a: 2b00 cmp r3, #0
1784c: f040 87aa bne.w 187a4 <_svfprintf_r+0x1248>
17850: 9b0d ldr r3, [sp, #52] ; 0x34
17852: 3307 adds r3, #7
17854: f023 0107 bic.w r1, r3, #7
17858: e8f1 2302 ldrd r2, r3, [r1], #8
1785c: f023 4500 bic.w r5, r3, #2147483648 ; 0x80000000
17860: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40
17864: 910d str r1, [sp, #52] ; 0x34
17866: 4616 mov r6, r2
17868: 4610 mov r0, r2
1786a: 4baa ldr r3, [pc, #680] ; (17b14 <_svfprintf_r+0x5b8>)
1786c: 4629 mov r1, r5
1786e: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
17872: f006 fa21 bl 1dcb8 <__aeabi_dcmpun>
17876: 2800 cmp r0, #0
17878: f040 849c bne.w 181b4 <_svfprintf_r+0xc58>
1787c: 4ba5 ldr r3, [pc, #660] ; (17b14 <_svfprintf_r+0x5b8>)
1787e: 4630 mov r0, r6
17880: 4629 mov r1, r5
17882: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
17886: f006 f9f9 bl 1dc7c <__aeabi_dcmple>
1788a: 2800 cmp r0, #0
1788c: f040 8492 bne.w 181b4 <_svfprintf_r+0xc58>
17890: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40
17894: 2200 movs r2, #0
17896: 2300 movs r3, #0
17898: f006 f9e6 bl 1dc68 <__aeabi_dcmplt>
1789c: 2800 cmp r0, #0
1789e: f040 86a7 bne.w 185f0 <_svfprintf_r+0x1094>
178a2: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67
178a6: 4d9c ldr r5, [pc, #624] ; (17b18 <_svfprintf_r+0x5bc>)
178a8: f024 0380 bic.w r3, r4, #128 ; 0x80
178ac: 9306 str r3, [sp, #24]
178ae: 4b9b ldr r3, [pc, #620] ; (17b1c <_svfprintf_r+0x5c0>)
178b0: 2200 movs r2, #0
178b2: 2f47 cmp r7, #71 ; 0x47
178b4: bfc8 it gt
178b6: 461d movgt r5, r3
178b8: 2303 movs r3, #3
178ba: e9cd 3207 strd r3, r2, [sp, #28]
178be: 930a str r3, [sp, #40] ; 0x28
178c0: 920f str r2, [sp, #60] ; 0x3c
178c2: 2900 cmp r1, #0
178c4: f43f af37 beq.w 17736 <_svfprintf_r+0x1da>
178c8: 9b07 ldr r3, [sp, #28]
178ca: 3301 adds r3, #1
178cc: 9307 str r3, [sp, #28]
178ce: e732 b.n 17736 <_svfprintf_r+0x1da>
178d0: 910b str r1, [sp, #44] ; 0x2c
178d2: 9508 str r5, [sp, #32]
178d4: 2b00 cmp r3, #0
178d6: f040 8769 bne.w 187ac <_svfprintf_r+0x1250>
178da: 9b0d ldr r3, [sp, #52] ; 0x34
178dc: 06e5 lsls r5, r4, #27
178de: f853 2b04 ldr.w r2, [r3], #4
178e2: 930d str r3, [sp, #52] ; 0x34
178e4: d402 bmi.n 178ec <_svfprintf_r+0x390>
178e6: 0660 lsls r0, r4, #25
178e8: f100 8460 bmi.w 181ac <_svfprintf_r+0xc50>
178ec: 4613 mov r3, r2
178ee: 2a00 cmp r2, #0
178f0: f2c0 842a blt.w 18148 <_svfprintf_r+0xbec>
178f4: 9808 ldr r0, [sp, #32]
178f6: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67
178fa: 3001 adds r0, #1
178fc: d006 beq.n 1790c <_svfprintf_r+0x3b0>
178fe: f024 0080 bic.w r0, r4, #128 ; 0x80
17902: 9006 str r0, [sp, #24]
17904: 2a00 cmp r2, #0
17906: f000 83c2 beq.w 1808e <_svfprintf_r+0xb32>
1790a: 9c06 ldr r4, [sp, #24]
1790c: 2b09 cmp r3, #9
1790e: f200 851c bhi.w 1834a <_svfprintf_r+0xdee>
17912: 3330 adds r3, #48 ; 0x30
17914: f88d 30b7 strb.w r3, [sp, #183] ; 0xb7
17918: 2301 movs r3, #1
1791a: 9406 str r4, [sp, #24]
1791c: 930a str r3, [sp, #40] ; 0x28
1791e: f10d 05b7 add.w r5, sp, #183 ; 0xb7
17922: e133 b.n 17b8c <_svfprintf_r+0x630>
17924: 9a0d ldr r2, [sp, #52] ; 0x34
17926: f852 1b04 ldr.w r1, [r2], #4
1792a: 2900 cmp r1, #0
1792c: f280 842a bge.w 18184 <_svfprintf_r+0xc28>
17930: 4249 negs r1, r1
17932: 920d str r2, [sp, #52] ; 0x34
17934: f044 0404 orr.w r4, r4, #4
17938: e657 b.n 175ea <_svfprintf_r+0x8e>
1793a: f818 7b01 ldrb.w r7, [r8], #1
1793e: 2f2a cmp r7, #42 ; 0x2a
17940: f000 87b0 beq.w 188a4 <_svfprintf_r+0x1348>
17944: f1a7 0230 sub.w r2, r7, #48 ; 0x30
17948: 2a09 cmp r2, #9
1794a: f04f 0500 mov.w r5, #0
1794e: f63f ae4e bhi.w 175ee <_svfprintf_r+0x92>
17952: f818 7b01 ldrb.w r7, [r8], #1
17956: eb05 0585 add.w r5, r5, r5, lsl #2
1795a: eb02 0545 add.w r5, r2, r5, lsl #1
1795e: f1a7 0230 sub.w r2, r7, #48 ; 0x30
17962: 2a09 cmp r2, #9
17964: d9f5 bls.n 17952 <_svfprintf_r+0x3f6>
17966: e642 b.n 175ee <_svfprintf_r+0x92>
17968: 910b str r1, [sp, #44] ; 0x2c
1796a: 9508 str r5, [sp, #32]
1796c: 2b00 cmp r3, #0
1796e: f040 8706 bne.w 1877e <_svfprintf_r+0x1222>
17972: 4b6b ldr r3, [pc, #428] ; (17b20 <_svfprintf_r+0x5c4>)
17974: 9313 str r3, [sp, #76] ; 0x4c
17976: 9a0d ldr r2, [sp, #52] ; 0x34
17978: 06e1 lsls r1, r4, #27
1797a: f852 3b04 ldr.w r3, [r2], #4
1797e: 920d str r2, [sp, #52] ; 0x34
17980: d402 bmi.n 17988 <_svfprintf_r+0x42c>
17982: 0662 lsls r2, r4, #25
17984: bf48 it mi
17986: b29b uxthmi r3, r3
17988: 07e6 lsls r6, r4, #31
1798a: d502 bpl.n 17992 <_svfprintf_r+0x436>
1798c: 2b00 cmp r3, #0
1798e: f040 8403 bne.w 18198 <_svfprintf_r+0xc3c>
17992: 2202 movs r2, #2
17994: 2100 movs r1, #0
17996: 9808 ldr r0, [sp, #32]
17998: f88d 1067 strb.w r1, [sp, #103] ; 0x67
1799c: 1c45 adds r5, r0, #1
1799e: f000 80d9 beq.w 17b54 <_svfprintf_r+0x5f8>
179a2: f024 0580 bic.w r5, r4, #128 ; 0x80
179a6: 9506 str r5, [sp, #24]
179a8: 2b00 cmp r3, #0
179aa: f040 80d2 bne.w 17b52 <_svfprintf_r+0x5f6>
179ae: 2800 cmp r0, #0
179b0: f040 8150 bne.w 17c54 <_svfprintf_r+0x6f8>
179b4: 2a00 cmp r2, #0
179b6: f040 836e bne.w 18096 <_svfprintf_r+0xb3a>
179ba: f014 0301 ands.w r3, r4, #1
179be: 930a str r3, [sp, #40] ; 0x28
179c0: f000 83e3 beq.w 1818a <_svfprintf_r+0xc2e>
179c4: 2330 movs r3, #48 ; 0x30
179c6: f88d 30b7 strb.w r3, [sp, #183] ; 0xb7
179ca: f10d 05b7 add.w r5, sp, #183 ; 0xb7
179ce: e0dd b.n 17b8c <_svfprintf_r+0x630>
179d0: 910b str r1, [sp, #44] ; 0x2c
179d2: 9508 str r5, [sp, #32]
179d4: 2b00 cmp r3, #0
179d6: f040 86e1 bne.w 1879c <_svfprintf_r+0x1240>
179da: 9a0d ldr r2, [sp, #52] ; 0x34
179dc: 06e6 lsls r6, r4, #27
179de: f852 3b04 ldr.w r3, [r2], #4
179e2: 920d str r2, [sp, #52] ; 0x34
179e4: d402 bmi.n 179ec <_svfprintf_r+0x490>
179e6: 0660 lsls r0, r4, #25
179e8: bf48 it mi
179ea: b29b uxthmi r3, r3
179ec: 2201 movs r2, #1
179ee: e7d1 b.n 17994 <_svfprintf_r+0x438>
179f0: 9e0d ldr r6, [sp, #52] ; 0x34
179f2: 9508 str r5, [sp, #32]
179f4: f856 5b04 ldr.w r5, [r6], #4
179f8: 9b08 ldr r3, [sp, #32]
179fa: 910b str r1, [sp, #44] ; 0x2c
179fc: f04f 0a00 mov.w sl, #0
17a00: f88d a067 strb.w sl, [sp, #103] ; 0x67
17a04: 2d00 cmp r5, #0
17a06: f000 8522 beq.w 1844e <_svfprintf_r+0xef2>
17a0a: 1c5a adds r2, r3, #1
17a0c: f000 8486 beq.w 1831c <_svfprintf_r+0xdc0>
17a10: 461a mov r2, r3
17a12: 4651 mov r1, sl
17a14: 4628 mov r0, r5
17a16: f003 ffb3 bl 1b980 <memchr>
17a1a: 2800 cmp r0, #0
17a1c: f000 86a4 beq.w 18768 <_svfprintf_r+0x120c>
17a20: 1b43 subs r3, r0, r5
17a22: 930a str r3, [sp, #40] ; 0x28
17a24: ea23 73e3 bic.w r3, r3, r3, asr #31
17a28: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67
17a2c: f8cd a020 str.w sl, [sp, #32]
17a30: 960d str r6, [sp, #52] ; 0x34
17a32: 9406 str r4, [sp, #24]
17a34: 9307 str r3, [sp, #28]
17a36: f8cd a03c str.w sl, [sp, #60] ; 0x3c
17a3a: e742 b.n 178c2 <_svfprintf_r+0x366>
17a3c: 9a0d ldr r2, [sp, #52] ; 0x34
17a3e: 910b str r1, [sp, #44] ; 0x2c
17a40: f852 3b04 ldr.w r3, [r2], #4
17a44: 920d str r2, [sp, #52] ; 0x34
17a46: f647 0230 movw r2, #30768 ; 0x7830
17a4a: f8ad 2068 strh.w r2, [sp, #104] ; 0x68
17a4e: 4a34 ldr r2, [pc, #208] ; (17b20 <_svfprintf_r+0x5c4>)
17a50: 9213 str r2, [sp, #76] ; 0x4c
17a52: 9508 str r5, [sp, #32]
17a54: f044 0402 orr.w r4, r4, #2
17a58: 2202 movs r2, #2
17a5a: 2778 movs r7, #120 ; 0x78
17a5c: e79a b.n 17994 <_svfprintf_r+0x438>
17a5e: 910b str r1, [sp, #44] ; 0x2c
17a60: 9508 str r5, [sp, #32]
17a62: 2b00 cmp r3, #0
17a64: f040 86a6 bne.w 187b4 <_svfprintf_r+0x1258>
17a68: 9a0d ldr r2, [sp, #52] ; 0x34
17a6a: f014 0110 ands.w r1, r4, #16
17a6e: f852 3b04 ldr.w r3, [r2], #4
17a72: 920d str r2, [sp, #52] ; 0x34
17a74: d12e bne.n 17ad4 <_svfprintf_r+0x578>
17a76: f014 0240 ands.w r2, r4, #64 ; 0x40
17a7a: d08b beq.n 17994 <_svfprintf_r+0x438>
17a7c: b29b uxth r3, r3
17a7e: 460a mov r2, r1
17a80: e788 b.n 17994 <_svfprintf_r+0x438>
17a82: 2b00 cmp r3, #0
17a84: f040 869a bne.w 187bc <_svfprintf_r+0x1260>
17a88: 9a0d ldr r2, [sp, #52] ; 0x34
17a8a: 06e0 lsls r0, r4, #27
17a8c: f102 0304 add.w r3, r2, #4
17a90: d407 bmi.n 17aa2 <_svfprintf_r+0x546>
17a92: 0661 lsls r1, r4, #25
17a94: 9a0d ldr r2, [sp, #52] ; 0x34
17a96: d504 bpl.n 17aa2 <_svfprintf_r+0x546>
17a98: 6812 ldr r2, [r2, #0]
17a9a: 9909 ldr r1, [sp, #36] ; 0x24
17a9c: 8011 strh r1, [r2, #0]
17a9e: 930d str r3, [sp, #52] ; 0x34
17aa0: e583 b.n 175aa <_svfprintf_r+0x4e>
17aa2: 6812 ldr r2, [r2, #0]
17aa4: 9909 ldr r1, [sp, #36] ; 0x24
17aa6: 6011 str r1, [r2, #0]
17aa8: 930d str r3, [sp, #52] ; 0x34
17aaa: e57e b.n 175aa <_svfprintf_r+0x4e>
17aac: f044 0408 orr.w r4, r4, #8
17ab0: e59b b.n 175ea <_svfprintf_r+0x8e>
17ab2: 9a0d ldr r2, [sp, #52] ; 0x34
17ab4: 910b str r1, [sp, #44] ; 0x2c
17ab6: f852 3b04 ldr.w r3, [r2], #4
17aba: 9508 str r5, [sp, #32]
17abc: f044 0410 orr.w r4, r4, #16
17ac0: 920d str r2, [sp, #52] ; 0x34
17ac2: e793 b.n 179ec <_svfprintf_r+0x490>
17ac4: 9a0d ldr r2, [sp, #52] ; 0x34
17ac6: 910b str r1, [sp, #44] ; 0x2c
17ac8: f852 3b04 ldr.w r3, [r2], #4
17acc: 9508 str r5, [sp, #32]
17ace: f044 0410 orr.w r4, r4, #16
17ad2: 920d str r2, [sp, #52] ; 0x34
17ad4: 2200 movs r2, #0
17ad6: e75d b.n 17994 <_svfprintf_r+0x438>
17ad8: 9b0d ldr r3, [sp, #52] ; 0x34
17ada: 910b str r1, [sp, #44] ; 0x2c
17adc: 2200 movs r2, #0
17ade: f88d 2067 strb.w r2, [sp, #103] ; 0x67
17ae2: f853 2b04 ldr.w r2, [r3], #4
17ae6: 930d str r3, [sp, #52] ; 0x34
17ae8: 2301 movs r3, #1
17aea: f88d 2090 strb.w r2, [sp, #144] ; 0x90
17aee: 9307 str r3, [sp, #28]
17af0: 930a str r3, [sp, #40] ; 0x28
17af2: ad24 add r5, sp, #144 ; 0x90
17af4: e61b b.n 1772e <_svfprintf_r+0x1d2>
17af6: 910b str r1, [sp, #44] ; 0x2c
17af8: 9508 str r5, [sp, #32]
17afa: 2b00 cmp r3, #0
17afc: f040 8662 bne.w 187c4 <_svfprintf_r+0x1268>
17b00: 4b08 ldr r3, [pc, #32] ; (17b24 <_svfprintf_r+0x5c8>)
17b02: 9313 str r3, [sp, #76] ; 0x4c
17b04: e737 b.n 17976 <_svfprintf_r+0x41a>
17b06: f044 0440 orr.w r4, r4, #64 ; 0x40
17b0a: e56e b.n 175ea <_svfprintf_r+0x8e>
17b0c: f044 0401 orr.w r4, r4, #1
17b10: e56b b.n 175ea <_svfprintf_r+0x8e>
17b12: bf00 nop
17b14: 7fefffff .word 0x7fefffff
17b18: 0002c140 .word 0x0002c140
17b1c: 0002c144 .word 0x0002c144
17b20: 0002c164 .word 0x0002c164
17b24: 0002c150 .word 0x0002c150
17b28: 2800 cmp r0, #0
17b2a: f47f ad5e bne.w 175ea <_svfprintf_r+0x8e>
17b2e: 2301 movs r3, #1
17b30: 2020 movs r0, #32
17b32: e55a b.n 175ea <_svfprintf_r+0x8e>
17b34: 910b str r1, [sp, #44] ; 0x2c
17b36: 9508 str r5, [sp, #32]
17b38: 2b00 cmp r3, #0
17b3a: f040 8624 bne.w 18786 <_svfprintf_r+0x122a>
17b3e: 9b0d ldr r3, [sp, #52] ; 0x34
17b40: f853 2b04 ldr.w r2, [r3], #4
17b44: 930d str r3, [sp, #52] ; 0x34
17b46: f044 0410 orr.w r4, r4, #16
17b4a: e6cf b.n 178ec <_svfprintf_r+0x390>
17b4c: f044 0480 orr.w r4, r4, #128 ; 0x80
17b50: e54b b.n 175ea <_svfprintf_r+0x8e>
17b52: 9c06 ldr r4, [sp, #24]
17b54: 2a01 cmp r2, #1
17b56: f43f aed9 beq.w 1790c <_svfprintf_r+0x3b0>
17b5a: 2a02 cmp r2, #2
17b5c: f000 8081 beq.w 17c62 <_svfprintf_r+0x706>
17b60: ad2e add r5, sp, #184 ; 0xb8
17b62: f003 0207 and.w r2, r3, #7
17b66: 3230 adds r2, #48 ; 0x30
17b68: 08db lsrs r3, r3, #3
17b6a: 4628 mov r0, r5
17b6c: f805 2d01 strb.w r2, [r5, #-1]!
17b70: d1f7 bne.n 17b62 <_svfprintf_r+0x606>
17b72: 07e3 lsls r3, r4, #31
17b74: d57e bpl.n 17c74 <_svfprintf_r+0x718>
17b76: 2a30 cmp r2, #48 ; 0x30
17b78: d07c beq.n 17c74 <_svfprintf_r+0x718>
17b7a: 2330 movs r3, #48 ; 0x30
17b7c: 3802 subs r0, #2
17b7e: f805 3c01 strb.w r3, [r5, #-1]
17b82: ab2e add r3, sp, #184 ; 0xb8
17b84: 1a1b subs r3, r3, r0
17b86: 9406 str r4, [sp, #24]
17b88: 930a str r3, [sp, #40] ; 0x28
17b8a: 4605 mov r5, r0
17b8c: 9b08 ldr r3, [sp, #32]
17b8e: 9a0a ldr r2, [sp, #40] ; 0x28
17b90: 4293 cmp r3, r2
17b92: bfb8 it lt
17b94: 4613 movlt r3, r2
17b96: 9307 str r3, [sp, #28]
17b98: 2300 movs r3, #0
17b9a: 930f str r3, [sp, #60] ; 0x3c
17b9c: e691 b.n 178c2 <_svfprintf_r+0x366>
17b9e: 2f65 cmp r7, #101 ; 0x65
17ba0: f340 8119 ble.w 17dd6 <_svfprintf_r+0x87a>
17ba4: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40
17ba8: 2200 movs r2, #0
17baa: 2300 movs r3, #0
17bac: f006 f852 bl 1dc54 <__aeabi_dcmpeq>
17bb0: 2800 cmp r0, #0
17bb2: f000 81f8 beq.w 17fa6 <_svfprintf_r+0xa4a>
17bb6: 9b22 ldr r3, [sp, #136] ; 0x88
17bb8: 4ab3 ldr r2, [pc, #716] ; (17e88 <_svfprintf_r+0x92c>)
17bba: f8c9 2000 str.w r2, [r9]
17bbe: 3301 adds r3, #1
17bc0: 3401 adds r4, #1
17bc2: 2201 movs r2, #1
17bc4: 2b07 cmp r3, #7
17bc6: 9423 str r4, [sp, #140] ; 0x8c
17bc8: 9322 str r3, [sp, #136] ; 0x88
17bca: f8c9 2004 str.w r2, [r9, #4]
17bce: f300 8417 bgt.w 18400 <_svfprintf_r+0xea4>
17bd2: f109 0908 add.w r9, r9, #8
17bd6: 9b1b ldr r3, [sp, #108] ; 0x6c
17bd8: 9a12 ldr r2, [sp, #72] ; 0x48
17bda: 4293 cmp r3, r2
17bdc: db03 blt.n 17be6 <_svfprintf_r+0x68a>
17bde: 9b06 ldr r3, [sp, #24]
17be0: 07dd lsls r5, r3, #31
17be2: f57f ae01 bpl.w 177e8 <_svfprintf_r+0x28c>
17be6: 9b14 ldr r3, [sp, #80] ; 0x50
17be8: 9a15 ldr r2, [sp, #84] ; 0x54
17bea: 441c add r4, r3
17bec: e9c9 2300 strd r2, r3, [r9]
17bf0: 9b22 ldr r3, [sp, #136] ; 0x88
17bf2: 9423 str r4, [sp, #140] ; 0x8c
17bf4: 3301 adds r3, #1
17bf6: 2b07 cmp r3, #7
17bf8: 9322 str r3, [sp, #136] ; 0x88
17bfa: f300 841b bgt.w 18434 <_svfprintf_r+0xed8>
17bfe: f109 0908 add.w r9, r9, #8
17c02: 9b12 ldr r3, [sp, #72] ; 0x48
17c04: 1e5d subs r5, r3, #1
17c06: 2d00 cmp r5, #0
17c08: f77f adee ble.w 177e8 <_svfprintf_r+0x28c>
17c0c: 2d10 cmp r5, #16
17c0e: 9b22 ldr r3, [sp, #136] ; 0x88
17c10: 4e9e ldr r6, [pc, #632] ; (17e8c <_svfprintf_r+0x930>)
17c12: f340 80ca ble.w 17daa <_svfprintf_r+0x84e>
17c16: f8dd a030 ldr.w sl, [sp, #48] ; 0x30
17c1a: 2710 movs r7, #16
17c1c: e005 b.n 17c2a <_svfprintf_r+0x6ce>
17c1e: f109 0908 add.w r9, r9, #8
17c22: 3d10 subs r5, #16
17c24: 2d10 cmp r5, #16
17c26: f340 80c0 ble.w 17daa <_svfprintf_r+0x84e>
17c2a: 3301 adds r3, #1
17c2c: 3410 adds r4, #16
17c2e: 2b07 cmp r3, #7
17c30: e9c9 6700 strd r6, r7, [r9]
17c34: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
17c38: ddf1 ble.n 17c1e <_svfprintf_r+0x6c2>
17c3a: aa21 add r2, sp, #132 ; 0x84
17c3c: 4659 mov r1, fp
17c3e: 4650 mov r0, sl
17c40: f004 fb3e bl 1c2c0 <__ssprint_r>
17c44: 2800 cmp r0, #0
17c46: f040 80ae bne.w 17da6 <_svfprintf_r+0x84a>
17c4a: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88
17c4e: f10d 09b8 add.w r9, sp, #184 ; 0xb8
17c52: e7e6 b.n 17c22 <_svfprintf_r+0x6c6>
17c54: 2a01 cmp r2, #1
17c56: f000 854c beq.w 186f2 <_svfprintf_r+0x1196>
17c5a: 2a02 cmp r2, #2
17c5c: 9c06 ldr r4, [sp, #24]
17c5e: f47f af7f bne.w 17b60 <_svfprintf_r+0x604>
17c62: 9813 ldr r0, [sp, #76] ; 0x4c
17c64: ad2e add r5, sp, #184 ; 0xb8
17c66: f003 020f and.w r2, r3, #15
17c6a: 091b lsrs r3, r3, #4
17c6c: 5c82 ldrb r2, [r0, r2]
17c6e: f805 2d01 strb.w r2, [r5, #-1]!
17c72: d1f8 bne.n 17c66 <_svfprintf_r+0x70a>
17c74: ab2e add r3, sp, #184 ; 0xb8
17c76: 1b5b subs r3, r3, r5
17c78: 9406 str r4, [sp, #24]
17c7a: 930a str r3, [sp, #40] ; 0x28
17c7c: e786 b.n 17b8c <_svfprintf_r+0x630>
17c7e: 9b0b ldr r3, [sp, #44] ; 0x2c
17c80: 9a07 ldr r2, [sp, #28]
17c82: eba3 0a02 sub.w sl, r3, r2
17c86: f1ba 0f00 cmp.w sl, #0
17c8a: f77f ad92 ble.w 177b2 <_svfprintf_r+0x256>
17c8e: f1ba 0f10 cmp.w sl, #16
17c92: 9b22 ldr r3, [sp, #136] ; 0x88
17c94: 4e7d ldr r6, [pc, #500] ; (17e8c <_svfprintf_r+0x930>)
17c96: dd2e ble.n 17cf6 <_svfprintf_r+0x79a>
17c98: 4632 mov r2, r6
17c9a: 950e str r5, [sp, #56] ; 0x38
17c9c: 465e mov r6, fp
17c9e: 9d0c ldr r5, [sp, #48] ; 0x30
17ca0: 46bb mov fp, r7
17ca2: 4617 mov r7, r2
17ca4: e006 b.n 17cb4 <_svfprintf_r+0x758>
17ca6: f1aa 0a10 sub.w sl, sl, #16
17caa: f1ba 0f10 cmp.w sl, #16
17cae: f109 0908 add.w r9, r9, #8
17cb2: dd1b ble.n 17cec <_svfprintf_r+0x790>
17cb4: 3301 adds r3, #1
17cb6: 3410 adds r4, #16
17cb8: 2210 movs r2, #16
17cba: 2b07 cmp r3, #7
17cbc: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
17cc0: f8c9 7000 str.w r7, [r9]
17cc4: f8c9 2004 str.w r2, [r9, #4]
17cc8: dded ble.n 17ca6 <_svfprintf_r+0x74a>
17cca: aa21 add r2, sp, #132 ; 0x84
17ccc: 4631 mov r1, r6
17cce: 4628 mov r0, r5
17cd0: f10d 09b8 add.w r9, sp, #184 ; 0xb8
17cd4: f004 faf4 bl 1c2c0 <__ssprint_r>
17cd8: 2800 cmp r0, #0
17cda: f040 8162 bne.w 17fa2 <_svfprintf_r+0xa46>
17cde: f1aa 0a10 sub.w sl, sl, #16
17ce2: f1ba 0f10 cmp.w sl, #16
17ce6: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88
17cea: dce3 bgt.n 17cb4 <_svfprintf_r+0x758>
17cec: 463a mov r2, r7
17cee: 9d0e ldr r5, [sp, #56] ; 0x38
17cf0: 465f mov r7, fp
17cf2: 46b3 mov fp, r6
17cf4: 4616 mov r6, r2
17cf6: 3301 adds r3, #1
17cf8: 4454 add r4, sl
17cfa: 2b07 cmp r3, #7
17cfc: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
17d00: f8c9 6000 str.w r6, [r9]
17d04: f8c9 a004 str.w sl, [r9, #4]
17d08: f300 8387 bgt.w 1841a <_svfprintf_r+0xebe>
17d0c: f109 0908 add.w r9, r9, #8
17d10: e54f b.n 177b2 <_svfprintf_r+0x256>
17d12: f1ba 0f10 cmp.w sl, #16
17d16: 9b22 ldr r3, [sp, #136] ; 0x88
17d18: 4e5c ldr r6, [pc, #368] ; (17e8c <_svfprintf_r+0x930>)
17d1a: dd2e ble.n 17d7a <_svfprintf_r+0x81e>
17d1c: 4632 mov r2, r6
17d1e: 9508 str r5, [sp, #32]
17d20: 465e mov r6, fp
17d22: 9d0c ldr r5, [sp, #48] ; 0x30
17d24: 46bb mov fp, r7
17d26: 4617 mov r7, r2
17d28: e006 b.n 17d38 <_svfprintf_r+0x7dc>
17d2a: f1aa 0a10 sub.w sl, sl, #16
17d2e: f1ba 0f10 cmp.w sl, #16
17d32: f109 0908 add.w r9, r9, #8
17d36: dd1b ble.n 17d70 <_svfprintf_r+0x814>
17d38: 3301 adds r3, #1
17d3a: 3410 adds r4, #16
17d3c: 2210 movs r2, #16
17d3e: 2b07 cmp r3, #7
17d40: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
17d44: f8c9 7000 str.w r7, [r9]
17d48: f8c9 2004 str.w r2, [r9, #4]
17d4c: dded ble.n 17d2a <_svfprintf_r+0x7ce>
17d4e: aa21 add r2, sp, #132 ; 0x84
17d50: 4631 mov r1, r6
17d52: 4628 mov r0, r5
17d54: f004 fab4 bl 1c2c0 <__ssprint_r>
17d58: 2800 cmp r0, #0
17d5a: f040 8122 bne.w 17fa2 <_svfprintf_r+0xa46>
17d5e: f1aa 0a10 sub.w sl, sl, #16
17d62: f1ba 0f10 cmp.w sl, #16
17d66: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88
17d6a: f10d 09b8 add.w r9, sp, #184 ; 0xb8
17d6e: dce3 bgt.n 17d38 <_svfprintf_r+0x7dc>
17d70: 463a mov r2, r7
17d72: 9d08 ldr r5, [sp, #32]
17d74: 465f mov r7, fp
17d76: 46b3 mov fp, r6
17d78: 4616 mov r6, r2
17d7a: 3301 adds r3, #1
17d7c: 4454 add r4, sl
17d7e: 2b07 cmp r3, #7
17d80: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
17d84: f8c9 6000 str.w r6, [r9]
17d88: f8c9 a004 str.w sl, [r9, #4]
17d8c: f300 81cf bgt.w 1812e <_svfprintf_r+0xbd2>
17d90: f109 0908 add.w r9, r9, #8
17d94: e515 b.n 177c2 <_svfprintf_r+0x266>
17d96: 980c ldr r0, [sp, #48] ; 0x30
17d98: aa21 add r2, sp, #132 ; 0x84
17d9a: 4659 mov r1, fp
17d9c: f004 fa90 bl 1c2c0 <__ssprint_r>
17da0: 2800 cmp r0, #0
17da2: f43f ad35 beq.w 17810 <_svfprintf_r+0x2b4>
17da6: 46da mov sl, fp
17da8: e540 b.n 1782c <_svfprintf_r+0x2d0>
17daa: 3301 adds r3, #1
17dac: 442c add r4, r5
17dae: 2b07 cmp r3, #7
17db0: f8c9 6000 str.w r6, [r9]
17db4: f8c9 5004 str.w r5, [r9, #4]
17db8: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
17dbc: f77f ad12 ble.w 177e4 <_svfprintf_r+0x288>
17dc0: 980c ldr r0, [sp, #48] ; 0x30
17dc2: aa21 add r2, sp, #132 ; 0x84
17dc4: 4659 mov r1, fp
17dc6: f004 fa7b bl 1c2c0 <__ssprint_r>
17dca: 2800 cmp r0, #0
17dcc: d1eb bne.n 17da6 <_svfprintf_r+0x84a>
17dce: 9c23 ldr r4, [sp, #140] ; 0x8c
17dd0: f10d 09b8 add.w r9, sp, #184 ; 0xb8
17dd4: e508 b.n 177e8 <_svfprintf_r+0x28c>
17dd6: 9b12 ldr r3, [sp, #72] ; 0x48
17dd8: 9f22 ldr r7, [sp, #136] ; 0x88
17dda: 2b01 cmp r3, #1
17ddc: f104 0401 add.w r4, r4, #1
17de0: f107 0701 add.w r7, r7, #1
17de4: f109 0a08 add.w sl, r9, #8
17de8: f340 815a ble.w 180a0 <_svfprintf_r+0xb44>
17dec: 2301 movs r3, #1
17dee: 2f07 cmp r7, #7
17df0: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88
17df4: f8c9 5000 str.w r5, [r9]
17df8: f8c9 3004 str.w r3, [r9, #4]
17dfc: f300 81a8 bgt.w 18150 <_svfprintf_r+0xbf4>
17e00: 9b14 ldr r3, [sp, #80] ; 0x50
17e02: 9a15 ldr r2, [sp, #84] ; 0x54
17e04: 3701 adds r7, #1
17e06: 441c add r4, r3
17e08: 2f07 cmp r7, #7
17e0a: e9ca 2300 strd r2, r3, [sl]
17e0e: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88
17e12: f300 81aa bgt.w 1816a <_svfprintf_r+0xc0e>
17e16: f10a 0a08 add.w sl, sl, #8
17e1a: 9b12 ldr r3, [sp, #72] ; 0x48
17e1c: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40
17e20: f103 39ff add.w r9, r3, #4294967295 ; 0xffffffff
17e24: 2200 movs r2, #0
17e26: 2300 movs r3, #0
17e28: f005 ff14 bl 1dc54 <__aeabi_dcmpeq>
17e2c: 2800 cmp r0, #0
17e2e: f040 8152 bne.w 180d6 <_svfprintf_r+0xb7a>
17e32: 3701 adds r7, #1
17e34: 3501 adds r5, #1
17e36: 444c add r4, r9
17e38: 2f07 cmp r7, #7
17e3a: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88
17e3e: f8ca 5000 str.w r5, [sl]
17e42: f8ca 9004 str.w r9, [sl, #4]
17e46: f300 8139 bgt.w 180bc <_svfprintf_r+0xb60>
17e4a: f10a 0a08 add.w sl, sl, #8
17e4e: 9b16 ldr r3, [sp, #88] ; 0x58
17e50: f8ca 3004 str.w r3, [sl, #4]
17e54: 3701 adds r7, #1
17e56: 441c add r4, r3
17e58: 2f07 cmp r7, #7
17e5a: ab1d add r3, sp, #116 ; 0x74
17e5c: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88
17e60: f8ca 3000 str.w r3, [sl]
17e64: dcac bgt.n 17dc0 <_svfprintf_r+0x864>
17e66: f10a 0908 add.w r9, sl, #8
17e6a: e4bd b.n 177e8 <_svfprintf_r+0x28c>
17e6c: 2e10 cmp r6, #16
17e6e: 9a22 ldr r2, [sp, #136] ; 0x88
17e70: dd35 ble.n 17ede <_svfprintf_r+0x982>
17e72: 4659 mov r1, fp
17e74: 9317 str r3, [sp, #92] ; 0x5c
17e76: 46b3 mov fp, r6
17e78: 4623 mov r3, r4
17e7a: 462e mov r6, r5
17e7c: 9c0c ldr r4, [sp, #48] ; 0x30
17e7e: f04f 0a10 mov.w sl, #16
17e82: 460d mov r5, r1
17e84: e00b b.n 17e9e <_svfprintf_r+0x942>
17e86: bf00 nop
17e88: 0002c180 .word 0x0002c180
17e8c: 0002c194 .word 0x0002c194
17e90: f1ab 0b10 sub.w fp, fp, #16
17e94: f1bb 0f10 cmp.w fp, #16
17e98: f109 0908 add.w r9, r9, #8
17e9c: dd19 ble.n 17ed2 <_svfprintf_r+0x976>
17e9e: 3201 adds r2, #1
17ea0: 49bb ldr r1, [pc, #748] ; (18190 <_svfprintf_r+0xc34>)
17ea2: 3310 adds r3, #16
17ea4: 2a07 cmp r2, #7
17ea6: e9c9 1a00 strd r1, sl, [r9]
17eaa: e9cd 2322 strd r2, r3, [sp, #136] ; 0x88
17eae: ddef ble.n 17e90 <_svfprintf_r+0x934>
17eb0: aa21 add r2, sp, #132 ; 0x84
17eb2: 4629 mov r1, r5
17eb4: 4620 mov r0, r4
17eb6: f10d 09b8 add.w r9, sp, #184 ; 0xb8
17eba: f004 fa01 bl 1c2c0 <__ssprint_r>
17ebe: 2800 cmp r0, #0
17ec0: f040 829b bne.w 183fa <_svfprintf_r+0xe9e>
17ec4: f1ab 0b10 sub.w fp, fp, #16
17ec8: f1bb 0f10 cmp.w fp, #16
17ecc: e9dd 2322 ldrd r2, r3, [sp, #136] ; 0x88
17ed0: dce5 bgt.n 17e9e <_svfprintf_r+0x942>
17ed2: 4629 mov r1, r5
17ed4: 461c mov r4, r3
17ed6: 9b17 ldr r3, [sp, #92] ; 0x5c
17ed8: 4635 mov r5, r6
17eda: 465e mov r6, fp
17edc: 468b mov fp, r1
17ede: 3201 adds r2, #1
17ee0: 49ab ldr r1, [pc, #684] ; (18190 <_svfprintf_r+0xc34>)
17ee2: f8c9 6004 str.w r6, [r9, #4]
17ee6: 4434 add r4, r6
17ee8: 2a07 cmp r2, #7
17eea: e9cd 2422 strd r2, r4, [sp, #136] ; 0x88
17eee: f8c9 1000 str.w r1, [r9]
17ef2: f300 8273 bgt.w 183dc <_svfprintf_r+0xe80>
17ef6: f109 0908 add.w r9, r9, #8
17efa: e42f b.n 1775c <_svfprintf_r+0x200>
17efc: 980c ldr r0, [sp, #48] ; 0x30
17efe: aa21 add r2, sp, #132 ; 0x84
17f00: 4659 mov r1, fp
17f02: f004 f9dd bl 1c2c0 <__ssprint_r>
17f06: 2800 cmp r0, #0
17f08: f47f af4d bne.w 17da6 <_svfprintf_r+0x84a>
17f0c: 9c23 ldr r4, [sp, #140] ; 0x8c
17f0e: f10d 09b8 add.w r9, sp, #184 ; 0xb8
17f12: e44a b.n 177aa <_svfprintf_r+0x24e>
17f14: 980c ldr r0, [sp, #48] ; 0x30
17f16: 9317 str r3, [sp, #92] ; 0x5c
17f18: aa21 add r2, sp, #132 ; 0x84
17f1a: 4659 mov r1, fp
17f1c: f004 f9d0 bl 1c2c0 <__ssprint_r>
17f20: 2800 cmp r0, #0
17f22: f47f af40 bne.w 17da6 <_svfprintf_r+0x84a>
17f26: 9c23 ldr r4, [sp, #140] ; 0x8c
17f28: 9b17 ldr r3, [sp, #92] ; 0x5c
17f2a: f10d 09b8 add.w r9, sp, #184 ; 0xb8
17f2e: e42a b.n 17786 <_svfprintf_r+0x22a>
17f30: 2d10 cmp r5, #16
17f32: 9b22 ldr r3, [sp, #136] ; 0x88
17f34: dd1f ble.n 17f76 <_svfprintf_r+0xa1a>
17f36: 9f0c ldr r7, [sp, #48] ; 0x30
17f38: 2610 movs r6, #16
17f3a: e004 b.n 17f46 <_svfprintf_r+0x9ea>
17f3c: 3d10 subs r5, #16
17f3e: 2d10 cmp r5, #16
17f40: f109 0908 add.w r9, r9, #8
17f44: dd17 ble.n 17f76 <_svfprintf_r+0xa1a>
17f46: 3301 adds r3, #1
17f48: 4a91 ldr r2, [pc, #580] ; (18190 <_svfprintf_r+0xc34>)
17f4a: 3410 adds r4, #16
17f4c: 2b07 cmp r3, #7
17f4e: e9c9 2600 strd r2, r6, [r9]
17f52: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
17f56: ddf1 ble.n 17f3c <_svfprintf_r+0x9e0>
17f58: aa21 add r2, sp, #132 ; 0x84
17f5a: 4659 mov r1, fp
17f5c: 4638 mov r0, r7
17f5e: f10d 09b8 add.w r9, sp, #184 ; 0xb8
17f62: f004 f9ad bl 1c2c0 <__ssprint_r>
17f66: 2800 cmp r0, #0
17f68: f47f af1d bne.w 17da6 <_svfprintf_r+0x84a>
17f6c: 3d10 subs r5, #16
17f6e: 2d10 cmp r5, #16
17f70: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88
17f74: dce7 bgt.n 17f46 <_svfprintf_r+0x9ea>
17f76: 3301 adds r3, #1
17f78: 4a85 ldr r2, [pc, #532] ; (18190 <_svfprintf_r+0xc34>)
17f7a: f8c9 5004 str.w r5, [r9, #4]
17f7e: 442c add r4, r5
17f80: 2b07 cmp r3, #7
17f82: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
17f86: f8c9 2000 str.w r2, [r9]
17f8a: f77f ac36 ble.w 177fa <_svfprintf_r+0x29e>
17f8e: 980c ldr r0, [sp, #48] ; 0x30
17f90: aa21 add r2, sp, #132 ; 0x84
17f92: 4659 mov r1, fp
17f94: f004 f994 bl 1c2c0 <__ssprint_r>
17f98: 2800 cmp r0, #0
17f9a: f47f af04 bne.w 17da6 <_svfprintf_r+0x84a>
17f9e: 9c23 ldr r4, [sp, #140] ; 0x8c
17fa0: e42b b.n 177fa <_svfprintf_r+0x29e>
17fa2: 46b2 mov sl, r6
17fa4: e442 b.n 1782c <_svfprintf_r+0x2d0>
17fa6: 991b ldr r1, [sp, #108] ; 0x6c
17fa8: 2900 cmp r1, #0
17faa: f340 81e3 ble.w 18374 <_svfprintf_r+0xe18>
17fae: 9e12 ldr r6, [sp, #72] ; 0x48
17fb0: 9b0f ldr r3, [sp, #60] ; 0x3c
17fb2: 429e cmp r6, r3
17fb4: bfa8 it ge
17fb6: 461e movge r6, r3
17fb8: 2e00 cmp r6, #0
17fba: dd0b ble.n 17fd4 <_svfprintf_r+0xa78>
17fbc: 9b22 ldr r3, [sp, #136] ; 0x88
17fbe: 3301 adds r3, #1
17fc0: 4434 add r4, r6
17fc2: 2b07 cmp r3, #7
17fc4: e9c9 5600 strd r5, r6, [r9]
17fc8: 9423 str r4, [sp, #140] ; 0x8c
17fca: 9322 str r3, [sp, #136] ; 0x88
17fcc: f300 83ae bgt.w 1872c <_svfprintf_r+0x11d0>
17fd0: f109 0908 add.w r9, r9, #8
17fd4: 9f0f ldr r7, [sp, #60] ; 0x3c
17fd6: 2e00 cmp r6, #0
17fd8: bfa8 it ge
17fda: 1bbf subge r7, r7, r6
17fdc: 2f00 cmp r7, #0
17fde: f300 8175 bgt.w 182cc <_svfprintf_r+0xd70>
17fe2: 9a1b ldr r2, [sp, #108] ; 0x6c
17fe4: 9b12 ldr r3, [sp, #72] ; 0x48
17fe6: 429a cmp r2, r3
17fe8: f280 8153 bge.w 18292 <_svfprintf_r+0xd36>
17fec: 9b14 ldr r3, [sp, #80] ; 0x50
17fee: 9915 ldr r1, [sp, #84] ; 0x54
17ff0: 441c add r4, r3
17ff2: e9c9 1300 strd r1, r3, [r9]
17ff6: 9b22 ldr r3, [sp, #136] ; 0x88
17ff8: 9423 str r4, [sp, #140] ; 0x8c
17ffa: 3301 adds r3, #1
17ffc: 2b07 cmp r3, #7
17ffe: 9322 str r3, [sp, #136] ; 0x88
18000: f300 82fb bgt.w 185fa <_svfprintf_r+0x109e>
18004: f109 0908 add.w r9, r9, #8
18008: 9b12 ldr r3, [sp, #72] ; 0x48
1800a: 990f ldr r1, [sp, #60] ; 0x3c
1800c: 1a9a subs r2, r3, r2
1800e: 1a5e subs r6, r3, r1
18010: 4296 cmp r6, r2
18012: bfa8 it ge
18014: 4616 movge r6, r2
18016: 2e00 cmp r6, #0
18018: dd0e ble.n 18038 <_svfprintf_r+0xadc>
1801a: 9b22 ldr r3, [sp, #136] ; 0x88
1801c: f8c9 6004 str.w r6, [r9, #4]
18020: 3301 adds r3, #1
18022: 440d add r5, r1
18024: 4434 add r4, r6
18026: 2b07 cmp r3, #7
18028: f8c9 5000 str.w r5, [r9]
1802c: 9423 str r4, [sp, #140] ; 0x8c
1802e: 9322 str r3, [sp, #136] ; 0x88
18030: f300 838b bgt.w 1874a <_svfprintf_r+0x11ee>
18034: f109 0908 add.w r9, r9, #8
18038: 2e00 cmp r6, #0
1803a: bfac ite ge
1803c: 1b95 subge r5, r2, r6
1803e: 4615 movlt r5, r2
18040: 2d00 cmp r5, #0
18042: f77f abd1 ble.w 177e8 <_svfprintf_r+0x28c>
18046: 2d10 cmp r5, #16
18048: 9b22 ldr r3, [sp, #136] ; 0x88
1804a: 4e52 ldr r6, [pc, #328] ; (18194 <_svfprintf_r+0xc38>)
1804c: f77f aead ble.w 17daa <_svfprintf_r+0x84e>
18050: f8dd a030 ldr.w sl, [sp, #48] ; 0x30
18054: 2710 movs r7, #16
18056: e005 b.n 18064 <_svfprintf_r+0xb08>
18058: f109 0908 add.w r9, r9, #8
1805c: 3d10 subs r5, #16
1805e: 2d10 cmp r5, #16
18060: f77f aea3 ble.w 17daa <_svfprintf_r+0x84e>
18064: 3301 adds r3, #1
18066: 3410 adds r4, #16
18068: 2b07 cmp r3, #7
1806a: e9c9 6700 strd r6, r7, [r9]
1806e: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
18072: ddf1 ble.n 18058 <_svfprintf_r+0xafc>
18074: aa21 add r2, sp, #132 ; 0x84
18076: 4659 mov r1, fp
18078: 4650 mov r0, sl
1807a: f004 f921 bl 1c2c0 <__ssprint_r>
1807e: 2800 cmp r0, #0
18080: f47f ae91 bne.w 17da6 <_svfprintf_r+0x84a>
18084: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88
18088: f10d 09b8 add.w r9, sp, #184 ; 0xb8
1808c: e7e6 b.n 1805c <_svfprintf_r+0xb00>
1808e: 9a08 ldr r2, [sp, #32]
18090: 2a00 cmp r2, #0
18092: f040 832e bne.w 186f2 <_svfprintf_r+0x1196>
18096: 2300 movs r3, #0
18098: 9308 str r3, [sp, #32]
1809a: 930a str r3, [sp, #40] ; 0x28
1809c: ad2e add r5, sp, #184 ; 0xb8
1809e: e575 b.n 17b8c <_svfprintf_r+0x630>
180a0: 9b06 ldr r3, [sp, #24]
180a2: 07d9 lsls r1, r3, #31
180a4: f53f aea2 bmi.w 17dec <_svfprintf_r+0x890>
180a8: 2301 movs r3, #1
180aa: 2f07 cmp r7, #7
180ac: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88
180b0: f8c9 5000 str.w r5, [r9]
180b4: f8c9 3004 str.w r3, [r9, #4]
180b8: f77f aec9 ble.w 17e4e <_svfprintf_r+0x8f2>
180bc: 980c ldr r0, [sp, #48] ; 0x30
180be: aa21 add r2, sp, #132 ; 0x84
180c0: 4659 mov r1, fp
180c2: f004 f8fd bl 1c2c0 <__ssprint_r>
180c6: 2800 cmp r0, #0
180c8: f47f ae6d bne.w 17da6 <_svfprintf_r+0x84a>
180cc: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88
180d0: f10d 0ab8 add.w sl, sp, #184 ; 0xb8
180d4: e6bb b.n 17e4e <_svfprintf_r+0x8f2>
180d6: f1b9 0f00 cmp.w r9, #0
180da: f77f aeb8 ble.w 17e4e <_svfprintf_r+0x8f2>
180de: f1b9 0f10 cmp.w r9, #16
180e2: 4e2c ldr r6, [pc, #176] ; (18194 <_svfprintf_r+0xc38>)
180e4: f340 81be ble.w 18464 <_svfprintf_r+0xf08>
180e8: f8cd 8020 str.w r8, [sp, #32]
180ec: 2510 movs r5, #16
180ee: f8dd 8030 ldr.w r8, [sp, #48] ; 0x30
180f2: e007 b.n 18104 <_svfprintf_r+0xba8>
180f4: f10a 0a08 add.w sl, sl, #8
180f8: f1a9 0910 sub.w r9, r9, #16
180fc: f1b9 0f10 cmp.w r9, #16
18100: f340 81ae ble.w 18460 <_svfprintf_r+0xf04>
18104: 3701 adds r7, #1
18106: 3410 adds r4, #16
18108: 2f07 cmp r7, #7
1810a: e9ca 6500 strd r6, r5, [sl]
1810e: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88
18112: ddef ble.n 180f4 <_svfprintf_r+0xb98>
18114: aa21 add r2, sp, #132 ; 0x84
18116: 4659 mov r1, fp
18118: 4640 mov r0, r8
1811a: f004 f8d1 bl 1c2c0 <__ssprint_r>
1811e: 2800 cmp r0, #0
18120: f47f ae41 bne.w 17da6 <_svfprintf_r+0x84a>
18124: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88
18128: f10d 0ab8 add.w sl, sp, #184 ; 0xb8
1812c: e7e4 b.n 180f8 <_svfprintf_r+0xb9c>
1812e: 980c ldr r0, [sp, #48] ; 0x30
18130: aa21 add r2, sp, #132 ; 0x84
18132: 4659 mov r1, fp
18134: f004 f8c4 bl 1c2c0 <__ssprint_r>
18138: 2800 cmp r0, #0
1813a: f47f ae34 bne.w 17da6 <_svfprintf_r+0x84a>
1813e: 9c23 ldr r4, [sp, #140] ; 0x8c
18140: f10d 09b8 add.w r9, sp, #184 ; 0xb8
18144: f7ff bb3d b.w 177c2 <_svfprintf_r+0x266>
18148: 4253 negs r3, r2
1814a: 212d movs r1, #45 ; 0x2d
1814c: 2201 movs r2, #1
1814e: e422 b.n 17996 <_svfprintf_r+0x43a>
18150: 980c ldr r0, [sp, #48] ; 0x30
18152: aa21 add r2, sp, #132 ; 0x84
18154: 4659 mov r1, fp
18156: f004 f8b3 bl 1c2c0 <__ssprint_r>
1815a: 2800 cmp r0, #0
1815c: f47f ae23 bne.w 17da6 <_svfprintf_r+0x84a>
18160: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88
18164: f10d 0ab8 add.w sl, sp, #184 ; 0xb8
18168: e64a b.n 17e00 <_svfprintf_r+0x8a4>
1816a: 980c ldr r0, [sp, #48] ; 0x30
1816c: aa21 add r2, sp, #132 ; 0x84
1816e: 4659 mov r1, fp
18170: f004 f8a6 bl 1c2c0 <__ssprint_r>
18174: 2800 cmp r0, #0
18176: f47f ae16 bne.w 17da6 <_svfprintf_r+0x84a>
1817a: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88
1817e: f10d 0ab8 add.w sl, sp, #184 ; 0xb8
18182: e64a b.n 17e1a <_svfprintf_r+0x8be>
18184: 920d str r2, [sp, #52] ; 0x34
18186: f7ff ba30 b.w 175ea <_svfprintf_r+0x8e>
1818a: ad2e add r5, sp, #184 ; 0xb8
1818c: e4fe b.n 17b8c <_svfprintf_r+0x630>
1818e: bf00 nop
18190: 0002c184 .word 0x0002c184
18194: 0002c194 .word 0x0002c194
18198: 2230 movs r2, #48 ; 0x30
1819a: f88d 2068 strb.w r2, [sp, #104] ; 0x68
1819e: f88d 7069 strb.w r7, [sp, #105] ; 0x69
181a2: f044 0402 orr.w r4, r4, #2
181a6: 2202 movs r2, #2
181a8: f7ff bbf4 b.w 17994 <_svfprintf_r+0x438>
181ac: b212 sxth r2, r2
181ae: 4613 mov r3, r2
181b0: f7ff bb9d b.w 178ee <_svfprintf_r+0x392>
181b4: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40
181b8: 4602 mov r2, r0
181ba: 460b mov r3, r1
181bc: f005 fd7c bl 1dcb8 <__aeabi_dcmpun>
181c0: 2800 cmp r0, #0
181c2: f040 833e bne.w 18842 <_svfprintf_r+0x12e6>
181c6: 9a08 ldr r2, [sp, #32]
181c8: f027 0320 bic.w r3, r7, #32
181cc: 1c51 adds r1, r2, #1
181ce: 930a str r3, [sp, #40] ; 0x28
181d0: f000 82b8 beq.w 18744 <_svfprintf_r+0x11e8>
181d4: 2b47 cmp r3, #71 ; 0x47
181d6: f000 80b2 beq.w 1833e <_svfprintf_r+0xde2>
181da: e9dd 1210 ldrd r1, r2, [sp, #64] ; 0x40
181de: f444 7380 orr.w r3, r4, #256 ; 0x100
181e2: 9306 str r3, [sp, #24]
181e4: 4613 mov r3, r2
181e6: 2b00 cmp r3, #0
181e8: f2c0 8221 blt.w 1862e <_svfprintf_r+0x10d2>
181ec: 9307 str r3, [sp, #28]
181ee: f8dd a040 ldr.w sl, [sp, #64] ; 0x40
181f2: 2300 movs r3, #0
181f4: 930e str r3, [sp, #56] ; 0x38
181f6: 2f66 cmp r7, #102 ; 0x66
181f8: f000 8174 beq.w 184e4 <_svfprintf_r+0xf88>
181fc: 2f46 cmp r7, #70 ; 0x46
181fe: f000 8171 beq.w 184e4 <_svfprintf_r+0xf88>
18202: 9b0a ldr r3, [sp, #40] ; 0x28
18204: 2b45 cmp r3, #69 ; 0x45
18206: 4652 mov r2, sl
18208: 9b07 ldr r3, [sp, #28]
1820a: f000 8275 beq.w 186f8 <_svfprintf_r+0x119c>
1820e: a91f add r1, sp, #124 ; 0x7c
18210: 9104 str r1, [sp, #16]
18212: a91c add r1, sp, #112 ; 0x70
18214: 9103 str r1, [sp, #12]
18216: a91b add r1, sp, #108 ; 0x6c
18218: 9e08 ldr r6, [sp, #32]
1821a: 9102 str r1, [sp, #8]
1821c: 2102 movs r1, #2
1821e: 980c ldr r0, [sp, #48] ; 0x30
18220: 9601 str r6, [sp, #4]
18222: 9100 str r1, [sp, #0]
18224: f001 fea4 bl 19f70 <_dtoa_r>
18228: 2f67 cmp r7, #103 ; 0x67
1822a: 4605 mov r5, r0
1822c: f040 8345 bne.w 188ba <_svfprintf_r+0x135e>
18230: 07e3 lsls r3, r4, #31
18232: f100 8273 bmi.w 1871c <_svfprintf_r+0x11c0>
18236: 9b1f ldr r3, [sp, #124] ; 0x7c
18238: 1b5b subs r3, r3, r5
1823a: 9312 str r3, [sp, #72] ; 0x48
1823c: 9b1b ldr r3, [sp, #108] ; 0x6c
1823e: 930f str r3, [sp, #60] ; 0x3c
18240: 9b0a ldr r3, [sp, #40] ; 0x28
18242: 2b47 cmp r3, #71 ; 0x47
18244: f040 819b bne.w 1857e <_svfprintf_r+0x1022>
18248: 9b0f ldr r3, [sp, #60] ; 0x3c
1824a: 1cde adds r6, r3, #3
1824c: f2c0 8196 blt.w 1857c <_svfprintf_r+0x1020>
18250: 9a08 ldr r2, [sp, #32]
18252: 429a cmp r2, r3
18254: f2c0 8192 blt.w 1857c <_svfprintf_r+0x1020>
18258: 9b12 ldr r3, [sp, #72] ; 0x48
1825a: 9a0f ldr r2, [sp, #60] ; 0x3c
1825c: 4293 cmp r3, r2
1825e: f300 82d6 bgt.w 1880e <_svfprintf_r+0x12b2>
18262: 07e4 lsls r4, r4, #31
18264: 9b0f ldr r3, [sp, #60] ; 0x3c
18266: f100 82fd bmi.w 18864 <_svfprintf_r+0x1308>
1826a: ea23 72e3 bic.w r2, r3, r3, asr #31
1826e: 9207 str r2, [sp, #28]
18270: 930a str r3, [sp, #40] ; 0x28
18272: 2767 movs r7, #103 ; 0x67
18274: 9b0e ldr r3, [sp, #56] ; 0x38
18276: 2b00 cmp r3, #0
18278: f000 8252 beq.w 18720 <_svfprintf_r+0x11c4>
1827c: 232d movs r3, #45 ; 0x2d
1827e: f88d 3067 strb.w r3, [sp, #103] ; 0x67
18282: 2300 movs r3, #0
18284: 9308 str r3, [sp, #32]
18286: f7ff bb1f b.w 178c8 <_svfprintf_r+0x36c>
1828a: 2301 movs r3, #1
1828c: 202b movs r0, #43 ; 0x2b
1828e: f7ff b9ac b.w 175ea <_svfprintf_r+0x8e>
18292: 9b06 ldr r3, [sp, #24]
18294: 07d8 lsls r0, r3, #31
18296: f53f aea9 bmi.w 17fec <_svfprintf_r+0xa90>
1829a: 9b12 ldr r3, [sp, #72] ; 0x48
1829c: 990f ldr r1, [sp, #60] ; 0x3c
1829e: 1a9a subs r2, r3, r2
182a0: 1a5b subs r3, r3, r1
182a2: 4293 cmp r3, r2
182a4: bfa8 it ge
182a6: 4613 movge r3, r2
182a8: 461e mov r6, r3
182aa: e6c5 b.n 18038 <_svfprintf_r+0xadc>
182ac: 980c ldr r0, [sp, #48] ; 0x30
182ae: 2140 movs r1, #64 ; 0x40
182b0: f003 f8b6 bl 1b420 <_malloc_r>
182b4: f8ca 0000 str.w r0, [sl]
182b8: f8ca 0010 str.w r0, [sl, #16]
182bc: 2800 cmp r0, #0
182be: f000 82fe beq.w 188be <_svfprintf_r+0x1362>
182c2: 2340 movs r3, #64 ; 0x40
182c4: f8ca 3014 str.w r3, [sl, #20]
182c8: f7ff b960 b.w 1758c <_svfprintf_r+0x30>
182cc: 2f10 cmp r7, #16
182ce: 9b22 ldr r3, [sp, #136] ; 0x88
182d0: 4ea6 ldr r6, [pc, #664] ; (1856c <_svfprintf_r+0x1010>)
182d2: f340 8180 ble.w 185d6 <_svfprintf_r+0x107a>
182d6: 4632 mov r2, r6
182d8: 9508 str r5, [sp, #32]
182da: 465e mov r6, fp
182dc: 9d0c ldr r5, [sp, #48] ; 0x30
182de: f04f 0a10 mov.w sl, #16
182e2: 4693 mov fp, r2
182e4: e005 b.n 182f2 <_svfprintf_r+0xd96>
182e6: f109 0908 add.w r9, r9, #8
182ea: 3f10 subs r7, #16
182ec: 2f10 cmp r7, #16
182ee: f340 816e ble.w 185ce <_svfprintf_r+0x1072>
182f2: 3301 adds r3, #1
182f4: 3410 adds r4, #16
182f6: 2b07 cmp r3, #7
182f8: e9c9 ba00 strd fp, sl, [r9]
182fc: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
18300: ddf1 ble.n 182e6 <_svfprintf_r+0xd8a>
18302: aa21 add r2, sp, #132 ; 0x84
18304: 4631 mov r1, r6
18306: 4628 mov r0, r5
18308: f003 ffda bl 1c2c0 <__ssprint_r>
1830c: 2800 cmp r0, #0
1830e: f47f ae48 bne.w 17fa2 <_svfprintf_r+0xa46>
18312: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88
18316: f10d 09b8 add.w r9, sp, #184 ; 0xb8
1831a: e7e6 b.n 182ea <_svfprintf_r+0xd8e>
1831c: 4628 mov r0, r5
1831e: f8cd a020 str.w sl, [sp, #32]
18322: 960d str r6, [sp, #52] ; 0x34
18324: 9406 str r4, [sp, #24]
18326: f7ff f8ab bl 17480 <strlen>
1832a: ea20 73e0 bic.w r3, r0, r0, asr #31
1832e: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67
18332: 900a str r0, [sp, #40] ; 0x28
18334: 9307 str r3, [sp, #28]
18336: f8cd a03c str.w sl, [sp, #60] ; 0x3c
1833a: f7ff bac2 b.w 178c2 <_svfprintf_r+0x366>
1833e: 2a00 cmp r2, #0
18340: 4613 mov r3, r2
18342: bf08 it eq
18344: 2301 moveq r3, #1
18346: 9308 str r3, [sp, #32]
18348: e747 b.n 181da <_svfprintf_r+0xc7e>
1834a: 4e89 ldr r6, [pc, #548] ; (18570 <_svfprintf_r+0x1014>)
1834c: ad2e add r5, sp, #184 ; 0xb8
1834e: fba6 0203 umull r0, r2, r6, r3
18352: 08d2 lsrs r2, r2, #3
18354: eb02 0082 add.w r0, r2, r2, lsl #2
18358: eba3 0040 sub.w r0, r3, r0, lsl #1
1835c: 3030 adds r0, #48 ; 0x30
1835e: f805 0d01 strb.w r0, [r5, #-1]!
18362: 4618 mov r0, r3
18364: 2809 cmp r0, #9
18366: 4613 mov r3, r2
18368: d8f1 bhi.n 1834e <_svfprintf_r+0xdf2>
1836a: ab2e add r3, sp, #184 ; 0xb8
1836c: 1b5b subs r3, r3, r5
1836e: 9406 str r4, [sp, #24]
18370: 930a str r3, [sp, #40] ; 0x28
18372: e40b b.n 17b8c <_svfprintf_r+0x630>
18374: 9b22 ldr r3, [sp, #136] ; 0x88
18376: 4a7f ldr r2, [pc, #508] ; (18574 <_svfprintf_r+0x1018>)
18378: f8c9 2000 str.w r2, [r9]
1837c: 3301 adds r3, #1
1837e: 3401 adds r4, #1
18380: 2201 movs r2, #1
18382: 2b07 cmp r3, #7
18384: 9423 str r4, [sp, #140] ; 0x8c
18386: 9322 str r3, [sp, #136] ; 0x88
18388: f8c9 2004 str.w r2, [r9, #4]
1838c: f300 8142 bgt.w 18614 <_svfprintf_r+0x10b8>
18390: f109 0908 add.w r9, r9, #8
18394: 2900 cmp r1, #0
18396: d171 bne.n 1847c <_svfprintf_r+0xf20>
18398: 9b06 ldr r3, [sp, #24]
1839a: 9a12 ldr r2, [sp, #72] ; 0x48
1839c: f003 0301 and.w r3, r3, #1
183a0: 4313 orrs r3, r2
183a2: f43f aa21 beq.w 177e8 <_svfprintf_r+0x28c>
183a6: 9b14 ldr r3, [sp, #80] ; 0x50
183a8: 9915 ldr r1, [sp, #84] ; 0x54
183aa: 191a adds r2, r3, r4
183ac: e9c9 1300 strd r1, r3, [r9]
183b0: 9b22 ldr r3, [sp, #136] ; 0x88
183b2: 9223 str r2, [sp, #140] ; 0x8c
183b4: 3301 adds r3, #1
183b6: 2b07 cmp r3, #7
183b8: 9322 str r3, [sp, #136] ; 0x88
183ba: f300 8180 bgt.w 186be <_svfprintf_r+0x1162>
183be: f109 0908 add.w r9, r9, #8
183c2: 9912 ldr r1, [sp, #72] ; 0x48
183c4: f8c9 5000 str.w r5, [r9]
183c8: 3301 adds r3, #1
183ca: 188c adds r4, r1, r2
183cc: 2b07 cmp r3, #7
183ce: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
183d2: f8c9 1004 str.w r1, [r9, #4]
183d6: f77f aa05 ble.w 177e4 <_svfprintf_r+0x288>
183da: e4f1 b.n 17dc0 <_svfprintf_r+0x864>
183dc: 980c ldr r0, [sp, #48] ; 0x30
183de: 9317 str r3, [sp, #92] ; 0x5c
183e0: aa21 add r2, sp, #132 ; 0x84
183e2: 4659 mov r1, fp
183e4: f003 ff6c bl 1c2c0 <__ssprint_r>
183e8: 2800 cmp r0, #0
183ea: f47f acdc bne.w 17da6 <_svfprintf_r+0x84a>
183ee: 9c23 ldr r4, [sp, #140] ; 0x8c
183f0: 9b17 ldr r3, [sp, #92] ; 0x5c
183f2: f10d 09b8 add.w r9, sp, #184 ; 0xb8
183f6: f7ff b9b1 b.w 1775c <_svfprintf_r+0x200>
183fa: 46aa mov sl, r5
183fc: f7ff ba16 b.w 1782c <_svfprintf_r+0x2d0>
18400: 980c ldr r0, [sp, #48] ; 0x30
18402: aa21 add r2, sp, #132 ; 0x84
18404: 4659 mov r1, fp
18406: f003 ff5b bl 1c2c0 <__ssprint_r>
1840a: 2800 cmp r0, #0
1840c: f47f accb bne.w 17da6 <_svfprintf_r+0x84a>
18410: 9c23 ldr r4, [sp, #140] ; 0x8c
18412: f10d 09b8 add.w r9, sp, #184 ; 0xb8
18416: f7ff bbde b.w 17bd6 <_svfprintf_r+0x67a>
1841a: 980c ldr r0, [sp, #48] ; 0x30
1841c: aa21 add r2, sp, #132 ; 0x84
1841e: 4659 mov r1, fp
18420: f003 ff4e bl 1c2c0 <__ssprint_r>
18424: 2800 cmp r0, #0
18426: f47f acbe bne.w 17da6 <_svfprintf_r+0x84a>
1842a: 9c23 ldr r4, [sp, #140] ; 0x8c
1842c: f10d 09b8 add.w r9, sp, #184 ; 0xb8
18430: f7ff b9bf b.w 177b2 <_svfprintf_r+0x256>
18434: 980c ldr r0, [sp, #48] ; 0x30
18436: aa21 add r2, sp, #132 ; 0x84
18438: 4659 mov r1, fp
1843a: f003 ff41 bl 1c2c0 <__ssprint_r>
1843e: 2800 cmp r0, #0
18440: f47f acb1 bne.w 17da6 <_svfprintf_r+0x84a>
18444: 9c23 ldr r4, [sp, #140] ; 0x8c
18446: f10d 09b8 add.w r9, sp, #184 ; 0xb8
1844a: f7ff bbda b.w 17c02 <_svfprintf_r+0x6a6>
1844e: 2b06 cmp r3, #6
18450: bf28 it cs
18452: 2306 movcs r3, #6
18454: 4d48 ldr r5, [pc, #288] ; (18578 <_svfprintf_r+0x101c>)
18456: 930a str r3, [sp, #40] ; 0x28
18458: 960d str r6, [sp, #52] ; 0x34
1845a: 9307 str r3, [sp, #28]
1845c: f7ff b967 b.w 1772e <_svfprintf_r+0x1d2>
18460: f8dd 8020 ldr.w r8, [sp, #32]
18464: f8ca 6000 str.w r6, [sl]
18468: 3701 adds r7, #1
1846a: 444c add r4, r9
1846c: 2f07 cmp r7, #7
1846e: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88
18472: f8ca 9004 str.w r9, [sl, #4]
18476: f77f ace8 ble.w 17e4a <_svfprintf_r+0x8ee>
1847a: e61f b.n 180bc <_svfprintf_r+0xb60>
1847c: 9b14 ldr r3, [sp, #80] ; 0x50
1847e: 9815 ldr r0, [sp, #84] ; 0x54
18480: 191a adds r2, r3, r4
18482: e9c9 0300 strd r0, r3, [r9]
18486: 9b22 ldr r3, [sp, #136] ; 0x88
18488: 9223 str r2, [sp, #140] ; 0x8c
1848a: 3301 adds r3, #1
1848c: 2b07 cmp r3, #7
1848e: 9322 str r3, [sp, #136] ; 0x88
18490: f300 8115 bgt.w 186be <_svfprintf_r+0x1162>
18494: f109 0908 add.w r9, r9, #8
18498: 2900 cmp r1, #0
1849a: da92 bge.n 183c2 <_svfprintf_r+0xe66>
1849c: 424f negs r7, r1
1849e: 3110 adds r1, #16
184a0: 4e32 ldr r6, [pc, #200] ; (1856c <_svfprintf_r+0x1010>)
184a2: f280 8193 bge.w 187cc <_svfprintf_r+0x1270>
184a6: f8dd a030 ldr.w sl, [sp, #48] ; 0x30
184aa: 2410 movs r4, #16
184ac: e005 b.n 184ba <_svfprintf_r+0xf5e>
184ae: f109 0908 add.w r9, r9, #8
184b2: 3f10 subs r7, #16
184b4: 2f10 cmp r7, #16
184b6: f340 8189 ble.w 187cc <_svfprintf_r+0x1270>
184ba: 3301 adds r3, #1
184bc: 3210 adds r2, #16
184be: 2b07 cmp r3, #7
184c0: e9c9 6400 strd r6, r4, [r9]
184c4: e9cd 3222 strd r3, r2, [sp, #136] ; 0x88
184c8: ddf1 ble.n 184ae <_svfprintf_r+0xf52>
184ca: aa21 add r2, sp, #132 ; 0x84
184cc: 4659 mov r1, fp
184ce: 4650 mov r0, sl
184d0: f003 fef6 bl 1c2c0 <__ssprint_r>
184d4: 2800 cmp r0, #0
184d6: f47f ac66 bne.w 17da6 <_svfprintf_r+0x84a>
184da: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88
184de: f10d 09b8 add.w r9, sp, #184 ; 0xb8
184e2: e7e6 b.n 184b2 <_svfprintf_r+0xf56>
184e4: a91f add r1, sp, #124 ; 0x7c
184e6: e9dd 3607 ldrd r3, r6, [sp, #28]
184ea: 9104 str r1, [sp, #16]
184ec: a91c add r1, sp, #112 ; 0x70
184ee: 9103 str r1, [sp, #12]
184f0: a91b add r1, sp, #108 ; 0x6c
184f2: 9102 str r1, [sp, #8]
184f4: 2103 movs r1, #3
184f6: 9601 str r6, [sp, #4]
184f8: 980c ldr r0, [sp, #48] ; 0x30
184fa: 9100 str r1, [sp, #0]
184fc: 4652 mov r2, sl
184fe: f001 fd37 bl 19f70 <_dtoa_r>
18502: 4605 mov r5, r0
18504: 1986 adds r6, r0, r6
18506: 782b ldrb r3, [r5, #0]
18508: 2b30 cmp r3, #48 ; 0x30
1850a: f000 818c beq.w 18826 <_svfprintf_r+0x12ca>
1850e: 9b1b ldr r3, [sp, #108] ; 0x6c
18510: 441e add r6, r3
18512: 9907 ldr r1, [sp, #28]
18514: 4650 mov r0, sl
18516: 2200 movs r2, #0
18518: 2300 movs r3, #0
1851a: f005 fb9b bl 1dc54 <__aeabi_dcmpeq>
1851e: 2800 cmp r0, #0
18520: f040 808c bne.w 1863c <_svfprintf_r+0x10e0>
18524: 9b1f ldr r3, [sp, #124] ; 0x7c
18526: 42b3 cmp r3, r6
18528: d206 bcs.n 18538 <_svfprintf_r+0xfdc>
1852a: 2130 movs r1, #48 ; 0x30
1852c: 1c5a adds r2, r3, #1
1852e: 921f str r2, [sp, #124] ; 0x7c
18530: 7019 strb r1, [r3, #0]
18532: 9b1f ldr r3, [sp, #124] ; 0x7c
18534: 429e cmp r6, r3
18536: d8f9 bhi.n 1852c <_svfprintf_r+0xfd0>
18538: 1b5b subs r3, r3, r5
1853a: 9312 str r3, [sp, #72] ; 0x48
1853c: 9b1b ldr r3, [sp, #108] ; 0x6c
1853e: 930f str r3, [sp, #60] ; 0x3c
18540: 9b0a ldr r3, [sp, #40] ; 0x28
18542: 2b47 cmp r3, #71 ; 0x47
18544: f43f ae80 beq.w 18248 <_svfprintf_r+0xcec>
18548: 2f66 cmp r7, #102 ; 0x66
1854a: d118 bne.n 1857e <_svfprintf_r+0x1022>
1854c: 9a08 ldr r2, [sp, #32]
1854e: f004 0301 and.w r3, r4, #1
18552: 4313 orrs r3, r2
18554: 9a0f ldr r2, [sp, #60] ; 0x3c
18556: 2a00 cmp r2, #0
18558: f340 80aa ble.w 186b0 <_svfprintf_r+0x1154>
1855c: 2b00 cmp r3, #0
1855e: f040 8189 bne.w 18874 <_svfprintf_r+0x1318>
18562: 9b0f ldr r3, [sp, #60] ; 0x3c
18564: 9307 str r3, [sp, #28]
18566: 930a str r3, [sp, #40] ; 0x28
18568: e684 b.n 18274 <_svfprintf_r+0xd18>
1856a: bf00 nop
1856c: 0002c194 .word 0x0002c194
18570: cccccccd .word 0xcccccccd
18574: 0002c180 .word 0x0002c180
18578: 0002c178 .word 0x0002c178
1857c: 3f02 subs r7, #2
1857e: 9a0f ldr r2, [sp, #60] ; 0x3c
18580: f88d 7074 strb.w r7, [sp, #116] ; 0x74
18584: 1e53 subs r3, r2, #1
18586: 2b00 cmp r3, #0
18588: 931b str r3, [sp, #108] ; 0x6c
1858a: bfb6 itet lt
1858c: f1c2 0301 rsblt r3, r2, #1
18590: 222b movge r2, #43 ; 0x2b
18592: 222d movlt r2, #45 ; 0x2d
18594: 2b09 cmp r3, #9
18596: f88d 2075 strb.w r2, [sp, #117] ; 0x75
1859a: dc55 bgt.n 18648 <_svfprintf_r+0x10ec>
1859c: 3330 adds r3, #48 ; 0x30
1859e: f88d 3077 strb.w r3, [sp, #119] ; 0x77
185a2: 2330 movs r3, #48 ; 0x30
185a4: f88d 3076 strb.w r3, [sp, #118] ; 0x76
185a8: 2304 movs r3, #4
185aa: 9316 str r3, [sp, #88] ; 0x58
185ac: 9a12 ldr r2, [sp, #72] ; 0x48
185ae: 9b16 ldr r3, [sp, #88] ; 0x58
185b0: 2a01 cmp r2, #1
185b2: 4413 add r3, r2
185b4: 930a str r3, [sp, #40] ; 0x28
185b6: f340 8121 ble.w 187fc <_svfprintf_r+0x12a0>
185ba: 9b0a ldr r3, [sp, #40] ; 0x28
185bc: 9a14 ldr r2, [sp, #80] ; 0x50
185be: 4413 add r3, r2
185c0: 930a str r3, [sp, #40] ; 0x28
185c2: ea23 73e3 bic.w r3, r3, r3, asr #31
185c6: 9307 str r3, [sp, #28]
185c8: 2300 movs r3, #0
185ca: 930f str r3, [sp, #60] ; 0x3c
185cc: e652 b.n 18274 <_svfprintf_r+0xd18>
185ce: 465a mov r2, fp
185d0: 9d08 ldr r5, [sp, #32]
185d2: 46b3 mov fp, r6
185d4: 4616 mov r6, r2
185d6: 3301 adds r3, #1
185d8: 443c add r4, r7
185da: 2b07 cmp r3, #7
185dc: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
185e0: f8c9 6000 str.w r6, [r9]
185e4: f8c9 7004 str.w r7, [r9, #4]
185e8: dc77 bgt.n 186da <_svfprintf_r+0x117e>
185ea: f109 0908 add.w r9, r9, #8
185ee: e4f8 b.n 17fe2 <_svfprintf_r+0xa86>
185f0: 212d movs r1, #45 ; 0x2d
185f2: f88d 1067 strb.w r1, [sp, #103] ; 0x67
185f6: f7ff b956 b.w 178a6 <_svfprintf_r+0x34a>
185fa: 980c ldr r0, [sp, #48] ; 0x30
185fc: aa21 add r2, sp, #132 ; 0x84
185fe: 4659 mov r1, fp
18600: f003 fe5e bl 1c2c0 <__ssprint_r>
18604: 2800 cmp r0, #0
18606: f47f abce bne.w 17da6 <_svfprintf_r+0x84a>
1860a: 9a1b ldr r2, [sp, #108] ; 0x6c
1860c: 9c23 ldr r4, [sp, #140] ; 0x8c
1860e: f10d 09b8 add.w r9, sp, #184 ; 0xb8
18612: e4f9 b.n 18008 <_svfprintf_r+0xaac>
18614: 980c ldr r0, [sp, #48] ; 0x30
18616: aa21 add r2, sp, #132 ; 0x84
18618: 4659 mov r1, fp
1861a: f003 fe51 bl 1c2c0 <__ssprint_r>
1861e: 2800 cmp r0, #0
18620: f47f abc1 bne.w 17da6 <_svfprintf_r+0x84a>
18624: 991b ldr r1, [sp, #108] ; 0x6c
18626: 9c23 ldr r4, [sp, #140] ; 0x8c
18628: f10d 09b8 add.w r9, sp, #184 ; 0xb8
1862c: e6b2 b.n 18394 <_svfprintf_r+0xe38>
1862e: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000
18632: 9307 str r3, [sp, #28]
18634: 232d movs r3, #45 ; 0x2d
18636: 468a mov sl, r1
18638: 930e str r3, [sp, #56] ; 0x38
1863a: e5dc b.n 181f6 <_svfprintf_r+0xc9a>
1863c: 4633 mov r3, r6
1863e: e77b b.n 18538 <_svfprintf_r+0xfdc>
18640: f88d 0067 strb.w r0, [sp, #103] ; 0x67
18644: f7ff b867 b.w 17716 <_svfprintf_r+0x1ba>
18648: f10d 0683 add.w r6, sp, #131 ; 0x83
1864c: f8df c280 ldr.w ip, [pc, #640] ; 188d0 <_svfprintf_r+0x1374>
18650: 4632 mov r2, r6
18652: 4610 mov r0, r2
18654: fb8c 2103 smull r2, r1, ip, r3
18658: 17da asrs r2, r3, #31
1865a: ebc2 02a1 rsb r2, r2, r1, asr #2
1865e: eb02 0182 add.w r1, r2, r2, lsl #2
18662: eba3 0141 sub.w r1, r3, r1, lsl #1
18666: 3130 adds r1, #48 ; 0x30
18668: f800 1c01 strb.w r1, [r0, #-1]
1866c: 4619 mov r1, r3
1866e: 2963 cmp r1, #99 ; 0x63
18670: 4613 mov r3, r2
18672: f100 32ff add.w r2, r0, #4294967295 ; 0xffffffff
18676: dcec bgt.n 18652 <_svfprintf_r+0x10f6>
18678: 3330 adds r3, #48 ; 0x30
1867a: b2d9 uxtb r1, r3
1867c: 1e83 subs r3, r0, #2
1867e: 429e cmp r6, r3
18680: f802 1c01 strb.w r1, [r2, #-1]
18684: f240 8116 bls.w 188b4 <_svfprintf_r+0x1358>
18688: 4613 mov r3, r2
1868a: f10d 0276 add.w r2, sp, #118 ; 0x76
1868e: e001 b.n 18694 <_svfprintf_r+0x1138>
18690: f813 1b01 ldrb.w r1, [r3], #1
18694: f802 1b01 strb.w r1, [r2], #1
18698: 429e cmp r6, r3
1869a: d1f9 bne.n 18690 <_svfprintf_r+0x1134>
1869c: f10d 0385 add.w r3, sp, #133 ; 0x85
186a0: f10d 0276 add.w r2, sp, #118 ; 0x76
186a4: 1a1b subs r3, r3, r0
186a6: 4413 add r3, r2
186a8: aa1d add r2, sp, #116 ; 0x74
186aa: 1a9b subs r3, r3, r2
186ac: 9316 str r3, [sp, #88] ; 0x58
186ae: e77d b.n 185ac <_svfprintf_r+0x1050>
186b0: 2b00 cmp r3, #0
186b2: f040 80f4 bne.w 1889e <_svfprintf_r+0x1342>
186b6: 2301 movs r3, #1
186b8: 9307 str r3, [sp, #28]
186ba: 930a str r3, [sp, #40] ; 0x28
186bc: e5da b.n 18274 <_svfprintf_r+0xd18>
186be: 980c ldr r0, [sp, #48] ; 0x30
186c0: aa21 add r2, sp, #132 ; 0x84
186c2: 4659 mov r1, fp
186c4: f003 fdfc bl 1c2c0 <__ssprint_r>
186c8: 2800 cmp r0, #0
186ca: f47f ab6c bne.w 17da6 <_svfprintf_r+0x84a>
186ce: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88
186d2: 991b ldr r1, [sp, #108] ; 0x6c
186d4: f10d 09b8 add.w r9, sp, #184 ; 0xb8
186d8: e6de b.n 18498 <_svfprintf_r+0xf3c>
186da: 980c ldr r0, [sp, #48] ; 0x30
186dc: aa21 add r2, sp, #132 ; 0x84
186de: 4659 mov r1, fp
186e0: f003 fdee bl 1c2c0 <__ssprint_r>
186e4: 2800 cmp r0, #0
186e6: f47f ab5e bne.w 17da6 <_svfprintf_r+0x84a>
186ea: 9c23 ldr r4, [sp, #140] ; 0x8c
186ec: f10d 09b8 add.w r9, sp, #184 ; 0xb8
186f0: e477 b.n 17fe2 <_svfprintf_r+0xa86>
186f2: 9c06 ldr r4, [sp, #24]
186f4: f7ff b90d b.w 17912 <_svfprintf_r+0x3b6>
186f8: 9908 ldr r1, [sp, #32]
186fa: 980c ldr r0, [sp, #48] ; 0x30
186fc: 1c4e adds r6, r1, #1
186fe: a91f add r1, sp, #124 ; 0x7c
18700: 9104 str r1, [sp, #16]
18702: a91c add r1, sp, #112 ; 0x70
18704: 9103 str r1, [sp, #12]
18706: a91b add r1, sp, #108 ; 0x6c
18708: 9102 str r1, [sp, #8]
1870a: 2102 movs r1, #2
1870c: 9601 str r6, [sp, #4]
1870e: 9100 str r1, [sp, #0]
18710: f001 fc2e bl 19f70 <_dtoa_r>
18714: 4605 mov r5, r0
18716: 2f47 cmp r7, #71 ; 0x47
18718: f43f ad8a beq.w 18230 <_svfprintf_r+0xcd4>
1871c: 442e add r6, r5
1871e: e6f8 b.n 18512 <_svfprintf_r+0xfb6>
18720: 9b0e ldr r3, [sp, #56] ; 0x38
18722: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67
18726: 9308 str r3, [sp, #32]
18728: f7ff b8cb b.w 178c2 <_svfprintf_r+0x366>
1872c: 980c ldr r0, [sp, #48] ; 0x30
1872e: aa21 add r2, sp, #132 ; 0x84
18730: 4659 mov r1, fp
18732: f003 fdc5 bl 1c2c0 <__ssprint_r>
18736: 2800 cmp r0, #0
18738: f47f ab35 bne.w 17da6 <_svfprintf_r+0x84a>
1873c: 9c23 ldr r4, [sp, #140] ; 0x8c
1873e: f10d 09b8 add.w r9, sp, #184 ; 0xb8
18742: e447 b.n 17fd4 <_svfprintf_r+0xa78>
18744: 2306 movs r3, #6
18746: 9308 str r3, [sp, #32]
18748: e547 b.n 181da <_svfprintf_r+0xc7e>
1874a: 980c ldr r0, [sp, #48] ; 0x30
1874c: aa21 add r2, sp, #132 ; 0x84
1874e: 4659 mov r1, fp
18750: f003 fdb6 bl 1c2c0 <__ssprint_r>
18754: 2800 cmp r0, #0
18756: f47f ab26 bne.w 17da6 <_svfprintf_r+0x84a>
1875a: 9a1b ldr r2, [sp, #108] ; 0x6c
1875c: 9b12 ldr r3, [sp, #72] ; 0x48
1875e: 9c23 ldr r4, [sp, #140] ; 0x8c
18760: 1a9a subs r2, r3, r2
18762: f10d 09b8 add.w r9, sp, #184 ; 0xb8
18766: e467 b.n 18038 <_svfprintf_r+0xadc>
18768: 9b08 ldr r3, [sp, #32]
1876a: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67
1876e: 960d str r6, [sp, #52] ; 0x34
18770: 9406 str r4, [sp, #24]
18772: 9307 str r3, [sp, #28]
18774: 930a str r3, [sp, #40] ; 0x28
18776: 9008 str r0, [sp, #32]
18778: 900f str r0, [sp, #60] ; 0x3c
1877a: f7ff b8a2 b.w 178c2 <_svfprintf_r+0x366>
1877e: f88d 0067 strb.w r0, [sp, #103] ; 0x67
18782: f7ff b8f6 b.w 17972 <_svfprintf_r+0x416>
18786: f88d 0067 strb.w r0, [sp, #103] ; 0x67
1878a: f7ff b9d8 b.w 17b3e <_svfprintf_r+0x5e2>
1878e: 980c ldr r0, [sp, #48] ; 0x30
18790: aa21 add r2, sp, #132 ; 0x84
18792: 4659 mov r1, fp
18794: f003 fd94 bl 1c2c0 <__ssprint_r>
18798: f7ff b848 b.w 1782c <_svfprintf_r+0x2d0>
1879c: f88d 0067 strb.w r0, [sp, #103] ; 0x67
187a0: f7ff b91b b.w 179da <_svfprintf_r+0x47e>
187a4: f88d 0067 strb.w r0, [sp, #103] ; 0x67
187a8: f7ff b852 b.w 17850 <_svfprintf_r+0x2f4>
187ac: f88d 0067 strb.w r0, [sp, #103] ; 0x67
187b0: f7ff b893 b.w 178da <_svfprintf_r+0x37e>
187b4: f88d 0067 strb.w r0, [sp, #103] ; 0x67
187b8: f7ff b956 b.w 17a68 <_svfprintf_r+0x50c>
187bc: f88d 0067 strb.w r0, [sp, #103] ; 0x67
187c0: f7ff b962 b.w 17a88 <_svfprintf_r+0x52c>
187c4: f88d 0067 strb.w r0, [sp, #103] ; 0x67
187c8: f7ff b99a b.w 17b00 <_svfprintf_r+0x5a4>
187cc: 3301 adds r3, #1
187ce: 443a add r2, r7
187d0: 2b07 cmp r3, #7
187d2: e9cd 3222 strd r3, r2, [sp, #136] ; 0x88
187d6: f8c9 6000 str.w r6, [r9]
187da: f8c9 7004 str.w r7, [r9, #4]
187de: f77f adee ble.w 183be <_svfprintf_r+0xe62>
187e2: 980c ldr r0, [sp, #48] ; 0x30
187e4: aa21 add r2, sp, #132 ; 0x84
187e6: 4659 mov r1, fp
187e8: f003 fd6a bl 1c2c0 <__ssprint_r>
187ec: 2800 cmp r0, #0
187ee: f47f aada bne.w 17da6 <_svfprintf_r+0x84a>
187f2: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88
187f6: f10d 09b8 add.w r9, sp, #184 ; 0xb8
187fa: e5e2 b.n 183c2 <_svfprintf_r+0xe66>
187fc: f014 0201 ands.w r2, r4, #1
18800: 920f str r2, [sp, #60] ; 0x3c
18802: f47f aeda bne.w 185ba <_svfprintf_r+0x105e>
18806: ea23 73e3 bic.w r3, r3, r3, asr #31
1880a: 9307 str r3, [sp, #28]
1880c: e532 b.n 18274 <_svfprintf_r+0xd18>
1880e: 9a14 ldr r2, [sp, #80] ; 0x50
18810: 9b12 ldr r3, [sp, #72] ; 0x48
18812: 4413 add r3, r2
18814: 9a0f ldr r2, [sp, #60] ; 0x3c
18816: 930a str r3, [sp, #40] ; 0x28
18818: 2a00 cmp r2, #0
1881a: dd35 ble.n 18888 <_svfprintf_r+0x132c>
1881c: ea23 73e3 bic.w r3, r3, r3, asr #31
18820: 9307 str r3, [sp, #28]
18822: 2767 movs r7, #103 ; 0x67
18824: e526 b.n 18274 <_svfprintf_r+0xd18>
18826: 9907 ldr r1, [sp, #28]
18828: 4650 mov r0, sl
1882a: 2200 movs r2, #0
1882c: 2300 movs r3, #0
1882e: f005 fa11 bl 1dc54 <__aeabi_dcmpeq>
18832: 2800 cmp r0, #0
18834: f47f ae6b bne.w 1850e <_svfprintf_r+0xfb2>
18838: 9b08 ldr r3, [sp, #32]
1883a: f1c3 0301 rsb r3, r3, #1
1883e: 931b str r3, [sp, #108] ; 0x6c
18840: e666 b.n 18510 <_svfprintf_r+0xfb4>
18842: 9b11 ldr r3, [sp, #68] ; 0x44
18844: 4d23 ldr r5, [pc, #140] ; (188d4 <_svfprintf_r+0x1378>)
18846: 2b00 cmp r3, #0
18848: bfb8 it lt
1884a: 212d movlt r1, #45 ; 0x2d
1884c: f024 0380 bic.w r3, r4, #128 ; 0x80
18850: 9306 str r3, [sp, #24]
18852: bfa8 it ge
18854: f89d 1067 ldrbge.w r1, [sp, #103] ; 0x67
18858: 4b1f ldr r3, [pc, #124] ; (188d8 <_svfprintf_r+0x137c>)
1885a: bfb8 it lt
1885c: f88d 1067 strblt.w r1, [sp, #103] ; 0x67
18860: f7ff b826 b.w 178b0 <_svfprintf_r+0x354>
18864: 9a14 ldr r2, [sp, #80] ; 0x50
18866: 4413 add r3, r2
18868: 930a str r3, [sp, #40] ; 0x28
1886a: ea23 73e3 bic.w r3, r3, r3, asr #31
1886e: 9307 str r3, [sp, #28]
18870: 2767 movs r7, #103 ; 0x67
18872: e4ff b.n 18274 <_svfprintf_r+0xd18>
18874: 9b0f ldr r3, [sp, #60] ; 0x3c
18876: 9a14 ldr r2, [sp, #80] ; 0x50
18878: 4413 add r3, r2
1887a: 9a08 ldr r2, [sp, #32]
1887c: 441a add r2, r3
1887e: ea22 73e2 bic.w r3, r2, r2, asr #31
18882: 920a str r2, [sp, #40] ; 0x28
18884: 9307 str r3, [sp, #28]
18886: e4f5 b.n 18274 <_svfprintf_r+0xd18>
18888: 9b0f ldr r3, [sp, #60] ; 0x3c
1888a: 9a0a ldr r2, [sp, #40] ; 0x28
1888c: f1c3 0301 rsb r3, r3, #1
18890: 441a add r2, r3
18892: ea22 73e2 bic.w r3, r2, r2, asr #31
18896: 920a str r2, [sp, #40] ; 0x28
18898: 9307 str r3, [sp, #28]
1889a: 2767 movs r7, #103 ; 0x67
1889c: e4ea b.n 18274 <_svfprintf_r+0xd18>
1889e: 9b14 ldr r3, [sp, #80] ; 0x50
188a0: 3301 adds r3, #1
188a2: e7ea b.n 1887a <_svfprintf_r+0x131e>
188a4: 9a0d ldr r2, [sp, #52] ; 0x34
188a6: f852 5b04 ldr.w r5, [r2], #4
188aa: 920d str r2, [sp, #52] ; 0x34
188ac: ea45 75e5 orr.w r5, r5, r5, asr #31
188b0: f7fe be9b b.w 175ea <_svfprintf_r+0x8e>
188b4: 2302 movs r3, #2
188b6: 9316 str r3, [sp, #88] ; 0x58
188b8: e678 b.n 185ac <_svfprintf_r+0x1050>
188ba: 9e08 ldr r6, [sp, #32]
188bc: e72b b.n 18716 <_svfprintf_r+0x11ba>
188be: 9a0c ldr r2, [sp, #48] ; 0x30
188c0: 230c movs r3, #12
188c2: 6013 str r3, [r2, #0]
188c4: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
188c8: 9309 str r3, [sp, #36] ; 0x24
188ca: f7fe bfb8 b.w 1783e <_svfprintf_r+0x2e2>
188ce: bf00 nop
188d0: 66666667 .word 0x66666667
188d4: 0002c148 .word 0x0002c148
188d8: 0002c14c .word 0x0002c14c
000188dc <_vfprintf_r>:
188dc: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
188e0: b0bf sub sp, #252 ; 0xfc
188e2: 461c mov r4, r3
188e4: 468a mov sl, r1
188e6: 4690 mov r8, r2
188e8: 4605 mov r5, r0
188ea: 900c str r0, [sp, #48] ; 0x30
188ec: f002 fd24 bl 1b338 <_localeconv_r>
188f0: 6802 ldr r2, [r0, #0]
188f2: 9215 str r2, [sp, #84] ; 0x54
188f4: 4610 mov r0, r2
188f6: 940d str r4, [sp, #52] ; 0x34
188f8: f7fe fdc2 bl 17480 <strlen>
188fc: 9013 str r0, [sp, #76] ; 0x4c
188fe: b11d cbz r5, 18908 <_vfprintf_r+0x2c>
18900: 6bab ldr r3, [r5, #56] ; 0x38
18902: 2b00 cmp r3, #0
18904: f000 81d7 beq.w 18cb6 <_vfprintf_r+0x3da>
18908: f9ba 300c ldrsh.w r3, [sl, #12]
1890c: 0499 lsls r1, r3, #18
1890e: b29a uxth r2, r3
18910: d40a bmi.n 18928 <_vfprintf_r+0x4c>
18912: f443 5300 orr.w r3, r3, #8192 ; 0x2000
18916: f8aa 300c strh.w r3, [sl, #12]
1891a: b29a uxth r2, r3
1891c: f8da 3060 ldr.w r3, [sl, #96] ; 0x60
18920: f423 5300 bic.w r3, r3, #8192 ; 0x2000
18924: f8ca 3060 str.w r3, [sl, #96] ; 0x60
18928: 0717 lsls r7, r2, #28
1892a: f140 80ac bpl.w 18a86 <_vfprintf_r+0x1aa>
1892e: f8da 3010 ldr.w r3, [sl, #16]
18932: 2b00 cmp r3, #0
18934: f000 80a7 beq.w 18a86 <_vfprintf_r+0x1aa>
18938: f002 021a and.w r2, r2, #26
1893c: 2a0a cmp r2, #10
1893e: f000 80b0 beq.w 18aa2 <_vfprintf_r+0x1c6>
18942: 2300 movs r3, #0
18944: e9cd 3322 strd r3, r3, [sp, #136] ; 0x88
18948: 9312 str r3, [sp, #72] ; 0x48
1894a: 9314 str r3, [sp, #80] ; 0x50
1894c: 9316 str r3, [sp, #88] ; 0x58
1894e: 9309 str r3, [sp, #36] ; 0x24
18950: 2400 movs r4, #0
18952: 2300 movs r3, #0
18954: e9cd 3410 strd r3, r4, [sp, #64] ; 0x40
18958: aa2e add r2, sp, #184 ; 0xb8
1895a: 9221 str r2, [sp, #132] ; 0x84
1895c: 4691 mov r9, r2
1895e: 46d3 mov fp, sl
18960: f898 3000 ldrb.w r3, [r8]
18964: 2b00 cmp r3, #0
18966: f000 8153 beq.w 18c10 <_vfprintf_r+0x334>
1896a: 4644 mov r4, r8
1896c: e004 b.n 18978 <_vfprintf_r+0x9c>
1896e: f814 3f01 ldrb.w r3, [r4, #1]!
18972: 2b00 cmp r3, #0
18974: f000 80a3 beq.w 18abe <_vfprintf_r+0x1e2>
18978: 2b25 cmp r3, #37 ; 0x25
1897a: d1f8 bne.n 1896e <_vfprintf_r+0x92>
1897c: ebb4 0508 subs.w r5, r4, r8
18980: f040 80a1 bne.w 18ac6 <_vfprintf_r+0x1ea>
18984: 7823 ldrb r3, [r4, #0]
18986: 2b00 cmp r3, #0
18988: f000 8142 beq.w 18c10 <_vfprintf_r+0x334>
1898c: 2300 movs r3, #0
1898e: 1c62 adds r2, r4, #1
18990: f88d 3067 strb.w r3, [sp, #103] ; 0x67
18994: 4618 mov r0, r3
18996: f04f 35ff mov.w r5, #4294967295 ; 0xffffffff
1899a: 4619 mov r1, r3
1899c: 461c mov r4, r3
1899e: 4690 mov r8, r2
189a0: f818 7b01 ldrb.w r7, [r8], #1
189a4: f1a7 0220 sub.w r2, r7, #32
189a8: 2a58 cmp r2, #88 ; 0x58
189aa: f200 80a7 bhi.w 18afc <_vfprintf_r+0x220>
189ae: e8df f012 tbh [pc, r2, lsl #1]
189b2: 01ef .short 0x01ef
189b4: 00a500a5 .word 0x00a500a5
189b8: 00a501ec .word 0x00a501ec
189bc: 00a500a5 .word 0x00a500a5
189c0: 00a500a5 .word 0x00a500a5
189c4: 01b800a5 .word 0x01b800a5
189c8: 00a50684 .word 0x00a50684
189cc: 01c301c0 .word 0x01c301c0
189d0: 01e900a5 .word 0x01e900a5
189d4: 00590059 .word 0x00590059
189d8: 00590059 .word 0x00590059
189dc: 00590059 .word 0x00590059
189e0: 00590059 .word 0x00590059
189e4: 00a50059 .word 0x00a50059
189e8: 00a500a5 .word 0x00a500a5
189ec: 00a500a5 .word 0x00a500a5
189f0: 00a500a5 .word 0x00a500a5
189f4: 00a500a5 .word 0x00a500a5
189f8: 01dd00a5 .word 0x01dd00a5
189fc: 00a5013d .word 0x00a5013d
18a00: 00a5013d .word 0x00a5013d
18a04: 00a500a5 .word 0x00a500a5
18a08: 023800a5 .word 0x023800a5
18a0c: 00a500a5 .word 0x00a500a5
18a10: 00a50245 .word 0x00a50245
18a14: 00a500a5 .word 0x00a500a5
18a18: 00a500a5 .word 0x00a500a5
18a1c: 00a5023b .word 0x00a5023b
18a20: 020400a5 .word 0x020400a5
18a24: 00a500a5 .word 0x00a500a5
18a28: 00a500a5 .word 0x00a500a5
18a2c: 00a500a5 .word 0x00a500a5
18a30: 00a500a5 .word 0x00a500a5
18a34: 00a500a5 .word 0x00a500a5
18a38: 018601f5 .word 0x018601f5
18a3c: 013d013d .word 0x013d013d
18a40: 01da013d .word 0x01da013d
18a44: 00a50186 .word 0x00a50186
18a48: 006700a5 .word 0x006700a5
18a4c: 02ba00a5 .word 0x02ba00a5
18a50: 028c02a7 .word 0x028c02a7
18a54: 00a50067 .word 0x00a50067
18a58: 00a50266 .word 0x00a50266
18a5c: 00a50257 .word 0x00a50257
18a60: 024f00a5 .word 0x024f00a5
18a64: f1a7 0230 sub.w r2, r7, #48 ; 0x30
18a68: 2100 movs r1, #0
18a6a: f818 7b01 ldrb.w r7, [r8], #1
18a6e: eb01 0181 add.w r1, r1, r1, lsl #2
18a72: eb02 0141 add.w r1, r2, r1, lsl #1
18a76: f1a7 0230 sub.w r2, r7, #48 ; 0x30
18a7a: 2a09 cmp r2, #9
18a7c: d9f5 bls.n 18a6a <_vfprintf_r+0x18e>
18a7e: e791 b.n 189a4 <_vfprintf_r+0xc8>
18a80: f044 0410 orr.w r4, r4, #16
18a84: e78c b.n 189a0 <_vfprintf_r+0xc4>
18a86: 980c ldr r0, [sp, #48] ; 0x30
18a88: 4651 mov r1, sl
18a8a: f001 f953 bl 19d34 <__swsetup_r>
18a8e: 2800 cmp r0, #0
18a90: f041 8096 bne.w 19bc0 <_vfprintf_r+0x12e4>
18a94: f8ba 200c ldrh.w r2, [sl, #12]
18a98: f002 021a and.w r2, r2, #26
18a9c: 2a0a cmp r2, #10
18a9e: f47f af50 bne.w 18942 <_vfprintf_r+0x66>
18aa2: f9ba 300e ldrsh.w r3, [sl, #14]
18aa6: 2b00 cmp r3, #0
18aa8: f6ff af4b blt.w 18942 <_vfprintf_r+0x66>
18aac: 980c ldr r0, [sp, #48] ; 0x30
18aae: 4623 mov r3, r4
18ab0: 4642 mov r2, r8
18ab2: 4651 mov r1, sl
18ab4: b03f add sp, #252 ; 0xfc
18ab6: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
18aba: f001 b8ef b.w 19c9c <__sbprintf>
18abe: ebb4 0508 subs.w r5, r4, r8
18ac2: f000 80a5 beq.w 18c10 <_vfprintf_r+0x334>
18ac6: 9b23 ldr r3, [sp, #140] ; 0x8c
18ac8: 442b add r3, r5
18aca: 9323 str r3, [sp, #140] ; 0x8c
18acc: 9b22 ldr r3, [sp, #136] ; 0x88
18ace: 3301 adds r3, #1
18ad0: 2b07 cmp r3, #7
18ad2: e9c9 8500 strd r8, r5, [r9]
18ad6: 9322 str r3, [sp, #136] ; 0x88
18ad8: dc05 bgt.n 18ae6 <_vfprintf_r+0x20a>
18ada: f109 0908 add.w r9, r9, #8
18ade: 9b09 ldr r3, [sp, #36] ; 0x24
18ae0: 442b add r3, r5
18ae2: 9309 str r3, [sp, #36] ; 0x24
18ae4: e74e b.n 18984 <_vfprintf_r+0xa8>
18ae6: 980c ldr r0, [sp, #48] ; 0x30
18ae8: aa21 add r2, sp, #132 ; 0x84
18aea: 4659 mov r1, fp
18aec: f003 fcb2 bl 1c454 <__sprint_r>
18af0: 2800 cmp r0, #0
18af2: f040 834a bne.w 1918a <_vfprintf_r+0x8ae>
18af6: f10d 09b8 add.w r9, sp, #184 ; 0xb8
18afa: e7f0 b.n 18ade <_vfprintf_r+0x202>
18afc: 910b str r1, [sp, #44] ; 0x2c
18afe: 2b00 cmp r3, #0
18b00: f040 878b bne.w 19a1a <_vfprintf_r+0x113e>
18b04: 2f00 cmp r7, #0
18b06: f000 8083 beq.w 18c10 <_vfprintf_r+0x334>
18b0a: 2300 movs r3, #0
18b0c: f88d 3067 strb.w r3, [sp, #103] ; 0x67
18b10: 2301 movs r3, #1
18b12: f88d 7090 strb.w r7, [sp, #144] ; 0x90
18b16: 9307 str r3, [sp, #28]
18b18: 930a str r3, [sp, #40] ; 0x28
18b1a: ad24 add r5, sp, #144 ; 0x90
18b1c: 2300 movs r3, #0
18b1e: 9406 str r4, [sp, #24]
18b20: 9308 str r3, [sp, #32]
18b22: 930f str r3, [sp, #60] ; 0x3c
18b24: 9b06 ldr r3, [sp, #24]
18b26: f013 0302 ands.w r3, r3, #2
18b2a: d002 beq.n 18b32 <_vfprintf_r+0x256>
18b2c: 9a07 ldr r2, [sp, #28]
18b2e: 3202 adds r2, #2
18b30: 9207 str r2, [sp, #28]
18b32: 9a06 ldr r2, [sp, #24]
18b34: 9c23 ldr r4, [sp, #140] ; 0x8c
18b36: f012 0284 ands.w r2, r2, #132 ; 0x84
18b3a: 920e str r2, [sp, #56] ; 0x38
18b3c: d105 bne.n 18b4a <_vfprintf_r+0x26e>
18b3e: 9a0b ldr r2, [sp, #44] ; 0x2c
18b40: 9907 ldr r1, [sp, #28]
18b42: 1a56 subs r6, r2, r1
18b44: 2e00 cmp r6, #0
18b46: f300 8383 bgt.w 19250 <_vfprintf_r+0x974>
18b4a: f89d 2067 ldrb.w r2, [sp, #103] ; 0x67
18b4e: b18a cbz r2, 18b74 <_vfprintf_r+0x298>
18b50: 9a22 ldr r2, [sp, #136] ; 0x88
18b52: f10d 0167 add.w r1, sp, #103 ; 0x67
18b56: 3201 adds r2, #1
18b58: 3401 adds r4, #1
18b5a: f8c9 1000 str.w r1, [r9]
18b5e: 2a07 cmp r2, #7
18b60: f04f 0101 mov.w r1, #1
18b64: 9423 str r4, [sp, #140] ; 0x8c
18b66: 9222 str r2, [sp, #136] ; 0x88
18b68: f8c9 1004 str.w r1, [r9, #4]
18b6c: f300 83c4 bgt.w 192f8 <_vfprintf_r+0xa1c>
18b70: f109 0908 add.w r9, r9, #8
18b74: b183 cbz r3, 18b98 <_vfprintf_r+0x2bc>
18b76: 9b22 ldr r3, [sp, #136] ; 0x88
18b78: aa1a add r2, sp, #104 ; 0x68
18b7a: 3301 adds r3, #1
18b7c: 3402 adds r4, #2
18b7e: f8c9 2000 str.w r2, [r9]
18b82: 2b07 cmp r3, #7
18b84: f04f 0202 mov.w r2, #2
18b88: 9423 str r4, [sp, #140] ; 0x8c
18b8a: 9322 str r3, [sp, #136] ; 0x88
18b8c: f8c9 2004 str.w r2, [r9, #4]
18b90: f300 83a6 bgt.w 192e0 <_vfprintf_r+0xa04>
18b94: f109 0908 add.w r9, r9, #8
18b98: 9b0e ldr r3, [sp, #56] ; 0x38
18b9a: 2b80 cmp r3, #128 ; 0x80
18b9c: f000 8261 beq.w 19062 <_vfprintf_r+0x786>
18ba0: 9b08 ldr r3, [sp, #32]
18ba2: 9a0a ldr r2, [sp, #40] ; 0x28
18ba4: eba3 0a02 sub.w sl, r3, r2
18ba8: f1ba 0f00 cmp.w sl, #0
18bac: f300 82a3 bgt.w 190f6 <_vfprintf_r+0x81a>
18bb0: 9b06 ldr r3, [sp, #24]
18bb2: 05db lsls r3, r3, #23
18bb4: f100 81e9 bmi.w 18f8a <_vfprintf_r+0x6ae>
18bb8: 9b0a ldr r3, [sp, #40] ; 0x28
18bba: f8c9 3004 str.w r3, [r9, #4]
18bbe: 441c add r4, r3
18bc0: 9b22 ldr r3, [sp, #136] ; 0x88
18bc2: f8c9 5000 str.w r5, [r9]
18bc6: 3301 adds r3, #1
18bc8: 2b07 cmp r3, #7
18bca: 9423 str r4, [sp, #140] ; 0x8c
18bcc: 9322 str r3, [sp, #136] ; 0x88
18bce: f300 82e9 bgt.w 191a4 <_vfprintf_r+0x8c8>
18bd2: f109 0908 add.w r9, r9, #8
18bd6: 9b06 ldr r3, [sp, #24]
18bd8: 0759 lsls r1, r3, #29
18bda: d505 bpl.n 18be8 <_vfprintf_r+0x30c>
18bdc: 9b0b ldr r3, [sp, #44] ; 0x2c
18bde: 9a07 ldr r2, [sp, #28]
18be0: 1a9d subs r5, r3, r2
18be2: 2d00 cmp r5, #0
18be4: f300 8396 bgt.w 19314 <_vfprintf_r+0xa38>
18be8: 9b09 ldr r3, [sp, #36] ; 0x24
18bea: 9a0b ldr r2, [sp, #44] ; 0x2c
18bec: 9907 ldr r1, [sp, #28]
18bee: 428a cmp r2, r1
18bf0: bfac ite ge
18bf2: 189b addge r3, r3, r2
18bf4: 185b addlt r3, r3, r1
18bf6: 9309 str r3, [sp, #36] ; 0x24
18bf8: 2c00 cmp r4, #0
18bfa: f040 82be bne.w 1917a <_vfprintf_r+0x89e>
18bfe: 2300 movs r3, #0
18c00: 9322 str r3, [sp, #136] ; 0x88
18c02: f898 3000 ldrb.w r3, [r8]
18c06: f10d 09b8 add.w r9, sp, #184 ; 0xb8
18c0a: 2b00 cmp r3, #0
18c0c: f47f aead bne.w 1896a <_vfprintf_r+0x8e>
18c10: 9b23 ldr r3, [sp, #140] ; 0x8c
18c12: 46da mov sl, fp
18c14: 2b00 cmp r3, #0
18c16: f040 86f9 bne.w 19a0c <_vfprintf_r+0x1130>
18c1a: f8ba 300c ldrh.w r3, [sl, #12]
18c1e: 065a lsls r2, r3, #25
18c20: f100 87ce bmi.w 19bc0 <_vfprintf_r+0x12e4>
18c24: 9809 ldr r0, [sp, #36] ; 0x24
18c26: b03f add sp, #252 ; 0xfc
18c28: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
18c2c: 910b str r1, [sp, #44] ; 0x2c
18c2e: 9508 str r5, [sp, #32]
18c30: 2b00 cmp r3, #0
18c32: f040 87a8 bne.w 19b86 <_vfprintf_r+0x12aa>
18c36: 9b0d ldr r3, [sp, #52] ; 0x34
18c38: 3307 adds r3, #7
18c3a: f023 0107 bic.w r1, r3, #7
18c3e: e8f1 2302 ldrd r2, r3, [r1], #8
18c42: f023 4500 bic.w r5, r3, #2147483648 ; 0x80000000
18c46: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40
18c4a: 910d str r1, [sp, #52] ; 0x34
18c4c: 4616 mov r6, r2
18c4e: 4610 mov r0, r2
18c50: 4ba6 ldr r3, [pc, #664] ; (18eec <_vfprintf_r+0x610>)
18c52: 4629 mov r1, r5
18c54: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
18c58: f005 f82e bl 1dcb8 <__aeabi_dcmpun>
18c5c: 2800 cmp r0, #0
18c5e: f040 847d bne.w 1955c <_vfprintf_r+0xc80>
18c62: 4ba2 ldr r3, [pc, #648] ; (18eec <_vfprintf_r+0x610>)
18c64: 4630 mov r0, r6
18c66: 4629 mov r1, r5
18c68: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff
18c6c: f005 f806 bl 1dc7c <__aeabi_dcmple>
18c70: 2800 cmp r0, #0
18c72: f040 8473 bne.w 1955c <_vfprintf_r+0xc80>
18c76: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40
18c7a: 2200 movs r2, #0
18c7c: 2300 movs r3, #0
18c7e: f004 fff3 bl 1dc68 <__aeabi_dcmplt>
18c82: 2800 cmp r0, #0
18c84: f040 86a9 bne.w 199da <_vfprintf_r+0x10fe>
18c88: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67
18c8c: 4d98 ldr r5, [pc, #608] ; (18ef0 <_vfprintf_r+0x614>)
18c8e: f024 0380 bic.w r3, r4, #128 ; 0x80
18c92: 9306 str r3, [sp, #24]
18c94: 4b97 ldr r3, [pc, #604] ; (18ef4 <_vfprintf_r+0x618>)
18c96: 2200 movs r2, #0
18c98: 2f47 cmp r7, #71 ; 0x47
18c9a: bfc8 it gt
18c9c: 461d movgt r5, r3
18c9e: 2303 movs r3, #3
18ca0: e9cd 3207 strd r3, r2, [sp, #28]
18ca4: 930a str r3, [sp, #40] ; 0x28
18ca6: 920f str r2, [sp, #60] ; 0x3c
18ca8: 2900 cmp r1, #0
18caa: f43f af3b beq.w 18b24 <_vfprintf_r+0x248>
18cae: 9b07 ldr r3, [sp, #28]
18cb0: 3301 adds r3, #1
18cb2: 9307 str r3, [sp, #28]
18cb4: e736 b.n 18b24 <_vfprintf_r+0x248>
18cb6: 980c ldr r0, [sp, #48] ; 0x30
18cb8: f002 f9c8 bl 1b04c <__sinit>
18cbc: e624 b.n 18908 <_vfprintf_r+0x2c>
18cbe: 910b str r1, [sp, #44] ; 0x2c
18cc0: 9508 str r5, [sp, #32]
18cc2: 2b00 cmp r3, #0
18cc4: f040 8753 bne.w 19b6e <_vfprintf_r+0x1292>
18cc8: 9b0d ldr r3, [sp, #52] ; 0x34
18cca: 06e5 lsls r5, r4, #27
18ccc: f853 2b04 ldr.w r2, [r3], #4
18cd0: 930d str r3, [sp, #52] ; 0x34
18cd2: d402 bmi.n 18cda <_vfprintf_r+0x3fe>
18cd4: 0660 lsls r0, r4, #25
18cd6: f100 8438 bmi.w 1954a <_vfprintf_r+0xc6e>
18cda: 4613 mov r3, r2
18cdc: 2a00 cmp r2, #0
18cde: f2c0 8425 blt.w 1952c <_vfprintf_r+0xc50>
18ce2: 9808 ldr r0, [sp, #32]
18ce4: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67
18ce8: 3001 adds r0, #1
18cea: d006 beq.n 18cfa <_vfprintf_r+0x41e>
18cec: f024 0080 bic.w r0, r4, #128 ; 0x80
18cf0: 9006 str r0, [sp, #24]
18cf2: 2a00 cmp r2, #0
18cf4: f000 83d8 beq.w 194a8 <_vfprintf_r+0xbcc>
18cf8: 9c06 ldr r4, [sp, #24]
18cfa: 2b09 cmp r3, #9
18cfc: f200 8545 bhi.w 1978a <_vfprintf_r+0xeae>
18d00: 3330 adds r3, #48 ; 0x30
18d02: f88d 30b7 strb.w r3, [sp, #183] ; 0xb7
18d06: 2301 movs r3, #1
18d08: 9406 str r4, [sp, #24]
18d0a: 930a str r3, [sp, #40] ; 0x28
18d0c: f10d 05b7 add.w r5, sp, #183 ; 0xb7
18d10: 9b08 ldr r3, [sp, #32]
18d12: 9a0a ldr r2, [sp, #40] ; 0x28
18d14: 4293 cmp r3, r2
18d16: bfb8 it lt
18d18: 4613 movlt r3, r2
18d1a: 9307 str r3, [sp, #28]
18d1c: 2300 movs r3, #0
18d1e: 930f str r3, [sp, #60] ; 0x3c
18d20: e7c2 b.n 18ca8 <_vfprintf_r+0x3cc>
18d22: 9a0d ldr r2, [sp, #52] ; 0x34
18d24: f852 1b04 ldr.w r1, [r2], #4
18d28: 2900 cmp r1, #0
18d2a: f280 8408 bge.w 1953e <_vfprintf_r+0xc62>
18d2e: 4249 negs r1, r1
18d30: 920d str r2, [sp, #52] ; 0x34
18d32: f044 0404 orr.w r4, r4, #4
18d36: e633 b.n 189a0 <_vfprintf_r+0xc4>
18d38: f818 7b01 ldrb.w r7, [r8], #1
18d3c: 2f2a cmp r7, #42 ; 0x2a
18d3e: f000 879b beq.w 19c78 <_vfprintf_r+0x139c>
18d42: f1a7 0230 sub.w r2, r7, #48 ; 0x30
18d46: 2a09 cmp r2, #9
18d48: f04f 0500 mov.w r5, #0
18d4c: f63f ae2a bhi.w 189a4 <_vfprintf_r+0xc8>
18d50: f818 7b01 ldrb.w r7, [r8], #1
18d54: eb05 0585 add.w r5, r5, r5, lsl #2
18d58: eb02 0545 add.w r5, r2, r5, lsl #1
18d5c: f1a7 0230 sub.w r2, r7, #48 ; 0x30
18d60: 2a09 cmp r2, #9
18d62: d9f5 bls.n 18d50 <_vfprintf_r+0x474>
18d64: e61e b.n 189a4 <_vfprintf_r+0xc8>
18d66: f044 0440 orr.w r4, r4, #64 ; 0x40
18d6a: e619 b.n 189a0 <_vfprintf_r+0xc4>
18d6c: 910b str r1, [sp, #44] ; 0x2c
18d6e: 9508 str r5, [sp, #32]
18d70: 2b00 cmp r3, #0
18d72: f040 86f0 bne.w 19b56 <_vfprintf_r+0x127a>
18d76: 9b0d ldr r3, [sp, #52] ; 0x34
18d78: f853 2b04 ldr.w r2, [r3], #4
18d7c: 930d str r3, [sp, #52] ; 0x34
18d7e: f044 0410 orr.w r4, r4, #16
18d82: e7aa b.n 18cda <_vfprintf_r+0x3fe>
18d84: f044 0480 orr.w r4, r4, #128 ; 0x80
18d88: e60a b.n 189a0 <_vfprintf_r+0xc4>
18d8a: f044 0401 orr.w r4, r4, #1
18d8e: e607 b.n 189a0 <_vfprintf_r+0xc4>
18d90: 2800 cmp r0, #0
18d92: f47f ae05 bne.w 189a0 <_vfprintf_r+0xc4>
18d96: 2301 movs r3, #1
18d98: 2020 movs r0, #32
18d9a: e601 b.n 189a0 <_vfprintf_r+0xc4>
18d9c: 9b0d ldr r3, [sp, #52] ; 0x34
18d9e: 910b str r1, [sp, #44] ; 0x2c
18da0: 2200 movs r2, #0
18da2: f88d 2067 strb.w r2, [sp, #103] ; 0x67
18da6: f853 2b04 ldr.w r2, [r3], #4
18daa: 930d str r3, [sp, #52] ; 0x34
18dac: 2301 movs r3, #1
18dae: f88d 2090 strb.w r2, [sp, #144] ; 0x90
18db2: 9307 str r3, [sp, #28]
18db4: 930a str r3, [sp, #40] ; 0x28
18db6: ad24 add r5, sp, #144 ; 0x90
18db8: e6b0 b.n 18b1c <_vfprintf_r+0x240>
18dba: 910b str r1, [sp, #44] ; 0x2c
18dbc: 9508 str r5, [sp, #32]
18dbe: 2b00 cmp r3, #0
18dc0: f040 86e5 bne.w 19b8e <_vfprintf_r+0x12b2>
18dc4: 4b4c ldr r3, [pc, #304] ; (18ef8 <_vfprintf_r+0x61c>)
18dc6: 9314 str r3, [sp, #80] ; 0x50
18dc8: 9a0d ldr r2, [sp, #52] ; 0x34
18dca: 06e1 lsls r1, r4, #27
18dcc: f852 3b04 ldr.w r3, [r2], #4
18dd0: 920d str r2, [sp, #52] ; 0x34
18dd2: d402 bmi.n 18dda <_vfprintf_r+0x4fe>
18dd4: 0662 lsls r2, r4, #25
18dd6: bf48 it mi
18dd8: b29b uxthmi r3, r3
18dda: 07e6 lsls r6, r4, #31
18ddc: d502 bpl.n 18de4 <_vfprintf_r+0x508>
18dde: 2b00 cmp r3, #0
18de0: f040 8461 bne.w 196a6 <_vfprintf_r+0xdca>
18de4: 2202 movs r2, #2
18de6: 2100 movs r1, #0
18de8: 9808 ldr r0, [sp, #32]
18dea: f88d 1067 strb.w r1, [sp, #103] ; 0x67
18dee: 1c45 adds r5, r0, #1
18df0: f000 80af beq.w 18f52 <_vfprintf_r+0x676>
18df4: f024 0580 bic.w r5, r4, #128 ; 0x80
18df8: 9506 str r5, [sp, #24]
18dfa: 2b00 cmp r3, #0
18dfc: f040 80a8 bne.w 18f50 <_vfprintf_r+0x674>
18e00: 2800 cmp r0, #0
18e02: f040 811a bne.w 1903a <_vfprintf_r+0x75e>
18e06: 2a00 cmp r2, #0
18e08: f040 8352 bne.w 194b0 <_vfprintf_r+0xbd4>
18e0c: f014 0301 ands.w r3, r4, #1
18e10: 930a str r3, [sp, #40] ; 0x28
18e12: f000 8397 beq.w 19544 <_vfprintf_r+0xc68>
18e16: 2330 movs r3, #48 ; 0x30
18e18: f88d 30b7 strb.w r3, [sp, #183] ; 0xb7
18e1c: f10d 05b7 add.w r5, sp, #183 ; 0xb7
18e20: e776 b.n 18d10 <_vfprintf_r+0x434>
18e22: f044 0408 orr.w r4, r4, #8
18e26: e5bb b.n 189a0 <_vfprintf_r+0xc4>
18e28: 9a0d ldr r2, [sp, #52] ; 0x34
18e2a: 910b str r1, [sp, #44] ; 0x2c
18e2c: f852 3b04 ldr.w r3, [r2], #4
18e30: 9508 str r5, [sp, #32]
18e32: f044 0410 orr.w r4, r4, #16
18e36: 920d str r2, [sp, #52] ; 0x34
18e38: 2201 movs r2, #1
18e3a: e7d4 b.n 18de6 <_vfprintf_r+0x50a>
18e3c: 9a0d ldr r2, [sp, #52] ; 0x34
18e3e: 910b str r1, [sp, #44] ; 0x2c
18e40: f852 3b04 ldr.w r3, [r2], #4
18e44: 9508 str r5, [sp, #32]
18e46: f044 0410 orr.w r4, r4, #16
18e4a: 920d str r2, [sp, #52] ; 0x34
18e4c: 2200 movs r2, #0
18e4e: e7ca b.n 18de6 <_vfprintf_r+0x50a>
18e50: 910b str r1, [sp, #44] ; 0x2c
18e52: 9508 str r5, [sp, #32]
18e54: 2b00 cmp r3, #0
18e56: f040 8682 bne.w 19b5e <_vfprintf_r+0x1282>
18e5a: 4b28 ldr r3, [pc, #160] ; (18efc <_vfprintf_r+0x620>)
18e5c: 9314 str r3, [sp, #80] ; 0x50
18e5e: e7b3 b.n 18dc8 <_vfprintf_r+0x4ec>
18e60: 910b str r1, [sp, #44] ; 0x2c
18e62: 9508 str r5, [sp, #32]
18e64: 2b00 cmp r3, #0
18e66: f040 867e bne.w 19b66 <_vfprintf_r+0x128a>
18e6a: 9a0d ldr r2, [sp, #52] ; 0x34
18e6c: 06e6 lsls r6, r4, #27
18e6e: f852 3b04 ldr.w r3, [r2], #4
18e72: 920d str r2, [sp, #52] ; 0x34
18e74: d4e0 bmi.n 18e38 <_vfprintf_r+0x55c>
18e76: 0660 lsls r0, r4, #25
18e78: bf48 it mi
18e7a: b29b uxthmi r3, r3
18e7c: e7dc b.n 18e38 <_vfprintf_r+0x55c>
18e7e: 9e0d ldr r6, [sp, #52] ; 0x34
18e80: 9508 str r5, [sp, #32]
18e82: f856 5b04 ldr.w r5, [r6], #4
18e86: 9b08 ldr r3, [sp, #32]
18e88: 910b str r1, [sp, #44] ; 0x2c
18e8a: f04f 0a00 mov.w sl, #0
18e8e: f88d a067 strb.w sl, [sp, #103] ; 0x67
18e92: 2d00 cmp r5, #0
18e94: f000 842e beq.w 196f4 <_vfprintf_r+0xe18>
18e98: 1c5a adds r2, r3, #1
18e9a: f000 852e beq.w 198fa <_vfprintf_r+0x101e>
18e9e: 461a mov r2, r3
18ea0: 4651 mov r1, sl
18ea2: 4628 mov r0, r5
18ea4: f002 fd6c bl 1b980 <memchr>
18ea8: 2800 cmp r0, #0
18eaa: f000 8649 beq.w 19b40 <_vfprintf_r+0x1264>
18eae: 1b43 subs r3, r0, r5
18eb0: 930a str r3, [sp, #40] ; 0x28
18eb2: ea23 73e3 bic.w r3, r3, r3, asr #31
18eb6: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67
18eba: f8cd a020 str.w sl, [sp, #32]
18ebe: 960d str r6, [sp, #52] ; 0x34
18ec0: 9406 str r4, [sp, #24]
18ec2: 9307 str r3, [sp, #28]
18ec4: f8cd a03c str.w sl, [sp, #60] ; 0x3c
18ec8: e6ee b.n 18ca8 <_vfprintf_r+0x3cc>
18eca: 9a0d ldr r2, [sp, #52] ; 0x34
18ecc: 910b str r1, [sp, #44] ; 0x2c
18ece: f852 3b04 ldr.w r3, [r2], #4
18ed2: 920d str r2, [sp, #52] ; 0x34
18ed4: f647 0230 movw r2, #30768 ; 0x7830
18ed8: f8ad 2068 strh.w r2, [sp, #104] ; 0x68
18edc: 4a07 ldr r2, [pc, #28] ; (18efc <_vfprintf_r+0x620>)
18ede: 9214 str r2, [sp, #80] ; 0x50
18ee0: 9508 str r5, [sp, #32]
18ee2: f044 0402 orr.w r4, r4, #2
18ee6: 2202 movs r2, #2
18ee8: 2778 movs r7, #120 ; 0x78
18eea: e77c b.n 18de6 <_vfprintf_r+0x50a>
18eec: 7fefffff .word 0x7fefffff
18ef0: 0002c140 .word 0x0002c140
18ef4: 0002c144 .word 0x0002c144
18ef8: 0002c150 .word 0x0002c150
18efc: 0002c164 .word 0x0002c164
18f00: 910b str r1, [sp, #44] ; 0x2c
18f02: 9508 str r5, [sp, #32]
18f04: 2b00 cmp r3, #0
18f06: f040 8636 bne.w 19b76 <_vfprintf_r+0x129a>
18f0a: 9a0d ldr r2, [sp, #52] ; 0x34
18f0c: f014 0110 ands.w r1, r4, #16
18f10: f852 3b04 ldr.w r3, [r2], #4
18f14: 920d str r2, [sp, #52] ; 0x34
18f16: d199 bne.n 18e4c <_vfprintf_r+0x570>
18f18: f014 0240 ands.w r2, r4, #64 ; 0x40
18f1c: f43f af63 beq.w 18de6 <_vfprintf_r+0x50a>
18f20: b29b uxth r3, r3
18f22: 460a mov r2, r1
18f24: e75f b.n 18de6 <_vfprintf_r+0x50a>
18f26: 2b00 cmp r3, #0
18f28: f040 8629 bne.w 19b7e <_vfprintf_r+0x12a2>
18f2c: 9a0d ldr r2, [sp, #52] ; 0x34
18f2e: 06e0 lsls r0, r4, #27
18f30: f102 0304 add.w r3, r2, #4
18f34: d407 bmi.n 18f46 <_vfprintf_r+0x66a>
18f36: 0661 lsls r1, r4, #25
18f38: 9a0d ldr r2, [sp, #52] ; 0x34
18f3a: d504 bpl.n 18f46 <_vfprintf_r+0x66a>
18f3c: 6812 ldr r2, [r2, #0]
18f3e: 9909 ldr r1, [sp, #36] ; 0x24
18f40: 8011 strh r1, [r2, #0]
18f42: 930d str r3, [sp, #52] ; 0x34
18f44: e50c b.n 18960 <_vfprintf_r+0x84>
18f46: 6812 ldr r2, [r2, #0]
18f48: 9909 ldr r1, [sp, #36] ; 0x24
18f4a: 6011 str r1, [r2, #0]
18f4c: 930d str r3, [sp, #52] ; 0x34
18f4e: e507 b.n 18960 <_vfprintf_r+0x84>
18f50: 9c06 ldr r4, [sp, #24]
18f52: 2a01 cmp r2, #1
18f54: f43f aed1 beq.w 18cfa <_vfprintf_r+0x41e>
18f58: 2a02 cmp r2, #2
18f5a: d074 beq.n 19046 <_vfprintf_r+0x76a>
18f5c: ad2e add r5, sp, #184 ; 0xb8
18f5e: f003 0207 and.w r2, r3, #7
18f62: 3230 adds r2, #48 ; 0x30
18f64: 08db lsrs r3, r3, #3
18f66: 4628 mov r0, r5
18f68: f805 2d01 strb.w r2, [r5, #-1]!
18f6c: d1f7 bne.n 18f5e <_vfprintf_r+0x682>
18f6e: 07e6 lsls r6, r4, #31
18f70: d572 bpl.n 19058 <_vfprintf_r+0x77c>
18f72: 2a30 cmp r2, #48 ; 0x30
18f74: d070 beq.n 19058 <_vfprintf_r+0x77c>
18f76: 2330 movs r3, #48 ; 0x30
18f78: 3802 subs r0, #2
18f7a: f805 3c01 strb.w r3, [r5, #-1]
18f7e: ab2e add r3, sp, #184 ; 0xb8
18f80: 1a1b subs r3, r3, r0
18f82: 9406 str r4, [sp, #24]
18f84: 930a str r3, [sp, #40] ; 0x28
18f86: 4605 mov r5, r0
18f88: e6c2 b.n 18d10 <_vfprintf_r+0x434>
18f8a: 2f65 cmp r7, #101 ; 0x65
18f8c: f340 8115 ble.w 191ba <_vfprintf_r+0x8de>
18f90: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40
18f94: 2200 movs r2, #0
18f96: 2300 movs r3, #0
18f98: f004 fe5c bl 1dc54 <__aeabi_dcmpeq>
18f9c: 2800 cmp r0, #0
18f9e: f000 81f4 beq.w 1938a <_vfprintf_r+0xaae>
18fa2: 9b22 ldr r3, [sp, #136] ; 0x88
18fa4: 4ab1 ldr r2, [pc, #708] ; (1926c <_vfprintf_r+0x990>)
18fa6: f8c9 2000 str.w r2, [r9]
18faa: 3301 adds r3, #1
18fac: 3401 adds r4, #1
18fae: 2201 movs r2, #1
18fb0: 2b07 cmp r3, #7
18fb2: 9423 str r4, [sp, #140] ; 0x8c
18fb4: 9322 str r3, [sp, #136] ; 0x88
18fb6: f8c9 2004 str.w r2, [r9, #4]
18fba: f300 8442 bgt.w 19842 <_vfprintf_r+0xf66>
18fbe: f109 0908 add.w r9, r9, #8
18fc2: 9b1b ldr r3, [sp, #108] ; 0x6c
18fc4: 9a12 ldr r2, [sp, #72] ; 0x48
18fc6: 4293 cmp r3, r2
18fc8: f280 82b4 bge.w 19534 <_vfprintf_r+0xc58>
18fcc: 9b13 ldr r3, [sp, #76] ; 0x4c
18fce: 9a15 ldr r2, [sp, #84] ; 0x54
18fd0: 441c add r4, r3
18fd2: e9c9 2300 strd r2, r3, [r9]
18fd6: 9b22 ldr r3, [sp, #136] ; 0x88
18fd8: 9423 str r4, [sp, #140] ; 0x8c
18fda: 3301 adds r3, #1
18fdc: 2b07 cmp r3, #7
18fde: 9322 str r3, [sp, #136] ; 0x88
18fe0: f300 837c bgt.w 196dc <_vfprintf_r+0xe00>
18fe4: f109 0908 add.w r9, r9, #8
18fe8: 9b12 ldr r3, [sp, #72] ; 0x48
18fea: 1e5d subs r5, r3, #1
18fec: 2d00 cmp r5, #0
18fee: f77f adf2 ble.w 18bd6 <_vfprintf_r+0x2fa>
18ff2: 2d10 cmp r5, #16
18ff4: 9b22 ldr r3, [sp, #136] ; 0x88
18ff6: 4e9e ldr r6, [pc, #632] ; (19270 <_vfprintf_r+0x994>)
18ff8: f340 80c9 ble.w 1918e <_vfprintf_r+0x8b2>
18ffc: f8dd a030 ldr.w sl, [sp, #48] ; 0x30
19000: 2710 movs r7, #16
19002: e005 b.n 19010 <_vfprintf_r+0x734>
19004: f109 0908 add.w r9, r9, #8
19008: 3d10 subs r5, #16
1900a: 2d10 cmp r5, #16
1900c: f340 80bf ble.w 1918e <_vfprintf_r+0x8b2>
19010: 3301 adds r3, #1
19012: 3410 adds r4, #16
19014: 2b07 cmp r3, #7
19016: e9c9 6700 strd r6, r7, [r9]
1901a: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
1901e: ddf1 ble.n 19004 <_vfprintf_r+0x728>
19020: aa21 add r2, sp, #132 ; 0x84
19022: 4659 mov r1, fp
19024: 4650 mov r0, sl
19026: f003 fa15 bl 1c454 <__sprint_r>
1902a: 2800 cmp r0, #0
1902c: f040 80ad bne.w 1918a <_vfprintf_r+0x8ae>
19030: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88
19034: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19038: e7e6 b.n 19008 <_vfprintf_r+0x72c>
1903a: 2a01 cmp r2, #1
1903c: f000 851e beq.w 19a7c <_vfprintf_r+0x11a0>
19040: 2a02 cmp r2, #2
19042: 9c06 ldr r4, [sp, #24]
19044: d18a bne.n 18f5c <_vfprintf_r+0x680>
19046: 9814 ldr r0, [sp, #80] ; 0x50
19048: ad2e add r5, sp, #184 ; 0xb8
1904a: f003 020f and.w r2, r3, #15
1904e: 091b lsrs r3, r3, #4
19050: 5c82 ldrb r2, [r0, r2]
19052: f805 2d01 strb.w r2, [r5, #-1]!
19056: d1f8 bne.n 1904a <_vfprintf_r+0x76e>
19058: ab2e add r3, sp, #184 ; 0xb8
1905a: 1b5b subs r3, r3, r5
1905c: 9406 str r4, [sp, #24]
1905e: 930a str r3, [sp, #40] ; 0x28
19060: e656 b.n 18d10 <_vfprintf_r+0x434>
19062: 9b0b ldr r3, [sp, #44] ; 0x2c
19064: 9a07 ldr r2, [sp, #28]
19066: eba3 0a02 sub.w sl, r3, r2
1906a: f1ba 0f00 cmp.w sl, #0
1906e: f77f ad97 ble.w 18ba0 <_vfprintf_r+0x2c4>
19072: f1ba 0f10 cmp.w sl, #16
19076: 9b22 ldr r3, [sp, #136] ; 0x88
19078: 4e7d ldr r6, [pc, #500] ; (19270 <_vfprintf_r+0x994>)
1907a: dd2e ble.n 190da <_vfprintf_r+0x7fe>
1907c: 4632 mov r2, r6
1907e: 950e str r5, [sp, #56] ; 0x38
19080: 465e mov r6, fp
19082: 9d0c ldr r5, [sp, #48] ; 0x30
19084: 46bb mov fp, r7
19086: 4617 mov r7, r2
19088: e006 b.n 19098 <_vfprintf_r+0x7bc>
1908a: f1aa 0a10 sub.w sl, sl, #16
1908e: f1ba 0f10 cmp.w sl, #16
19092: f109 0908 add.w r9, r9, #8
19096: dd1b ble.n 190d0 <_vfprintf_r+0x7f4>
19098: 3301 adds r3, #1
1909a: 3410 adds r4, #16
1909c: 2210 movs r2, #16
1909e: 2b07 cmp r3, #7
190a0: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
190a4: f8c9 7000 str.w r7, [r9]
190a8: f8c9 2004 str.w r2, [r9, #4]
190ac: dded ble.n 1908a <_vfprintf_r+0x7ae>
190ae: aa21 add r2, sp, #132 ; 0x84
190b0: 4631 mov r1, r6
190b2: 4628 mov r0, r5
190b4: f10d 09b8 add.w r9, sp, #184 ; 0xb8
190b8: f003 f9cc bl 1c454 <__sprint_r>
190bc: 2800 cmp r0, #0
190be: f040 8162 bne.w 19386 <_vfprintf_r+0xaaa>
190c2: f1aa 0a10 sub.w sl, sl, #16
190c6: f1ba 0f10 cmp.w sl, #16
190ca: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88
190ce: dce3 bgt.n 19098 <_vfprintf_r+0x7bc>
190d0: 463a mov r2, r7
190d2: 9d0e ldr r5, [sp, #56] ; 0x38
190d4: 465f mov r7, fp
190d6: 46b3 mov fp, r6
190d8: 4616 mov r6, r2
190da: 3301 adds r3, #1
190dc: 4454 add r4, sl
190de: 2b07 cmp r3, #7
190e0: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
190e4: f8c9 6000 str.w r6, [r9]
190e8: f8c9 a004 str.w sl, [r9, #4]
190ec: f300 83b6 bgt.w 1985c <_vfprintf_r+0xf80>
190f0: f109 0908 add.w r9, r9, #8
190f4: e554 b.n 18ba0 <_vfprintf_r+0x2c4>
190f6: f1ba 0f10 cmp.w sl, #16
190fa: 9b22 ldr r3, [sp, #136] ; 0x88
190fc: 4e5c ldr r6, [pc, #368] ; (19270 <_vfprintf_r+0x994>)
190fe: dd2e ble.n 1915e <_vfprintf_r+0x882>
19100: 4632 mov r2, r6
19102: 9508 str r5, [sp, #32]
19104: 465e mov r6, fp
19106: 9d0c ldr r5, [sp, #48] ; 0x30
19108: 46bb mov fp, r7
1910a: 4617 mov r7, r2
1910c: e006 b.n 1911c <_vfprintf_r+0x840>
1910e: f1aa 0a10 sub.w sl, sl, #16
19112: f1ba 0f10 cmp.w sl, #16
19116: f109 0908 add.w r9, r9, #8
1911a: dd1b ble.n 19154 <_vfprintf_r+0x878>
1911c: 3301 adds r3, #1
1911e: 3410 adds r4, #16
19120: 2210 movs r2, #16
19122: 2b07 cmp r3, #7
19124: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
19128: f8c9 7000 str.w r7, [r9]
1912c: f8c9 2004 str.w r2, [r9, #4]
19130: dded ble.n 1910e <_vfprintf_r+0x832>
19132: aa21 add r2, sp, #132 ; 0x84
19134: 4631 mov r1, r6
19136: 4628 mov r0, r5
19138: f003 f98c bl 1c454 <__sprint_r>
1913c: 2800 cmp r0, #0
1913e: f040 8122 bne.w 19386 <_vfprintf_r+0xaaa>
19142: f1aa 0a10 sub.w sl, sl, #16
19146: f1ba 0f10 cmp.w sl, #16
1914a: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88
1914e: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19152: dce3 bgt.n 1911c <_vfprintf_r+0x840>
19154: 463a mov r2, r7
19156: 9d08 ldr r5, [sp, #32]
19158: 465f mov r7, fp
1915a: 46b3 mov fp, r6
1915c: 4616 mov r6, r2
1915e: 3301 adds r3, #1
19160: 4454 add r4, sl
19162: 2b07 cmp r3, #7
19164: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
19168: f8c9 6000 str.w r6, [r9]
1916c: f8c9 a004 str.w sl, [r9, #4]
19170: f300 81cf bgt.w 19512 <_vfprintf_r+0xc36>
19174: f109 0908 add.w r9, r9, #8
19178: e51a b.n 18bb0 <_vfprintf_r+0x2d4>
1917a: 980c ldr r0, [sp, #48] ; 0x30
1917c: aa21 add r2, sp, #132 ; 0x84
1917e: 4659 mov r1, fp
19180: f003 f968 bl 1c454 <__sprint_r>
19184: 2800 cmp r0, #0
19186: f43f ad3a beq.w 18bfe <_vfprintf_r+0x322>
1918a: 46da mov sl, fp
1918c: e545 b.n 18c1a <_vfprintf_r+0x33e>
1918e: 3301 adds r3, #1
19190: 442c add r4, r5
19192: 2b07 cmp r3, #7
19194: f8c9 6000 str.w r6, [r9]
19198: f8c9 5004 str.w r5, [r9, #4]
1919c: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
191a0: f77f ad17 ble.w 18bd2 <_vfprintf_r+0x2f6>
191a4: 980c ldr r0, [sp, #48] ; 0x30
191a6: aa21 add r2, sp, #132 ; 0x84
191a8: 4659 mov r1, fp
191aa: f003 f953 bl 1c454 <__sprint_r>
191ae: 2800 cmp r0, #0
191b0: d1eb bne.n 1918a <_vfprintf_r+0x8ae>
191b2: 9c23 ldr r4, [sp, #140] ; 0x8c
191b4: f10d 09b8 add.w r9, sp, #184 ; 0xb8
191b8: e50d b.n 18bd6 <_vfprintf_r+0x2fa>
191ba: 9b12 ldr r3, [sp, #72] ; 0x48
191bc: 9f22 ldr r7, [sp, #136] ; 0x88
191be: 2b01 cmp r3, #1
191c0: f104 0401 add.w r4, r4, #1
191c4: f107 0701 add.w r7, r7, #1
191c8: f109 0a08 add.w sl, r9, #8
191cc: f340 8151 ble.w 19472 <_vfprintf_r+0xb96>
191d0: 2301 movs r3, #1
191d2: 2f07 cmp r7, #7
191d4: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88
191d8: f8c9 5000 str.w r5, [r9]
191dc: f8c9 3004 str.w r3, [r9, #4]
191e0: f300 82b9 bgt.w 19756 <_vfprintf_r+0xe7a>
191e4: 9b13 ldr r3, [sp, #76] ; 0x4c
191e6: 9a15 ldr r2, [sp, #84] ; 0x54
191e8: 3701 adds r7, #1
191ea: 441c add r4, r3
191ec: 2f07 cmp r7, #7
191ee: e9ca 2300 strd r2, r3, [sl]
191f2: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88
191f6: f300 82bb bgt.w 19770 <_vfprintf_r+0xe94>
191fa: f10a 0a08 add.w sl, sl, #8
191fe: 9b12 ldr r3, [sp, #72] ; 0x48
19200: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40
19204: f103 39ff add.w r9, r3, #4294967295 ; 0xffffffff
19208: 2200 movs r2, #0
1920a: 2300 movs r3, #0
1920c: f004 fd22 bl 1dc54 <__aeabi_dcmpeq>
19210: 2800 cmp r0, #0
19212: f040 8152 bne.w 194ba <_vfprintf_r+0xbde>
19216: 3701 adds r7, #1
19218: 3501 adds r5, #1
1921a: 444c add r4, r9
1921c: 2f07 cmp r7, #7
1921e: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88
19222: f8ca 5000 str.w r5, [sl]
19226: f8ca 9004 str.w r9, [sl, #4]
1922a: f300 8130 bgt.w 1948e <_vfprintf_r+0xbb2>
1922e: f10a 0a08 add.w sl, sl, #8
19232: 9b16 ldr r3, [sp, #88] ; 0x58
19234: f8ca 3004 str.w r3, [sl, #4]
19238: 3701 adds r7, #1
1923a: 441c add r4, r3
1923c: 2f07 cmp r7, #7
1923e: ab1d add r3, sp, #116 ; 0x74
19240: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88
19244: f8ca 3000 str.w r3, [sl]
19248: dcac bgt.n 191a4 <_vfprintf_r+0x8c8>
1924a: f10a 0908 add.w r9, sl, #8
1924e: e4c2 b.n 18bd6 <_vfprintf_r+0x2fa>
19250: 2e10 cmp r6, #16
19252: 9a22 ldr r2, [sp, #136] ; 0x88
19254: dd35 ble.n 192c2 <_vfprintf_r+0x9e6>
19256: 4659 mov r1, fp
19258: 9317 str r3, [sp, #92] ; 0x5c
1925a: 46b3 mov fp, r6
1925c: 4623 mov r3, r4
1925e: 462e mov r6, r5
19260: 9c0c ldr r4, [sp, #48] ; 0x30
19262: f04f 0a10 mov.w sl, #16
19266: 460d mov r5, r1
19268: e00b b.n 19282 <_vfprintf_r+0x9a6>
1926a: bf00 nop
1926c: 0002c180 .word 0x0002c180
19270: 0002c1b4 .word 0x0002c1b4
19274: f1ab 0b10 sub.w fp, fp, #16
19278: f1bb 0f10 cmp.w fp, #16
1927c: f109 0908 add.w r9, r9, #8
19280: dd19 ble.n 192b6 <_vfprintf_r+0x9da>
19282: 3201 adds r2, #1
19284: 49b3 ldr r1, [pc, #716] ; (19554 <_vfprintf_r+0xc78>)
19286: 3310 adds r3, #16
19288: 2a07 cmp r2, #7
1928a: e9c9 1a00 strd r1, sl, [r9]
1928e: e9cd 2322 strd r2, r3, [sp, #136] ; 0x88
19292: ddef ble.n 19274 <_vfprintf_r+0x998>
19294: aa21 add r2, sp, #132 ; 0x84
19296: 4629 mov r1, r5
19298: 4620 mov r0, r4
1929a: f10d 09b8 add.w r9, sp, #184 ; 0xb8
1929e: f003 f8d9 bl 1c454 <__sprint_r>
192a2: 2800 cmp r0, #0
192a4: f040 82ca bne.w 1983c <_vfprintf_r+0xf60>
192a8: f1ab 0b10 sub.w fp, fp, #16
192ac: f1bb 0f10 cmp.w fp, #16
192b0: e9dd 2322 ldrd r2, r3, [sp, #136] ; 0x88
192b4: dce5 bgt.n 19282 <_vfprintf_r+0x9a6>
192b6: 4629 mov r1, r5
192b8: 461c mov r4, r3
192ba: 9b17 ldr r3, [sp, #92] ; 0x5c
192bc: 4635 mov r5, r6
192be: 465e mov r6, fp
192c0: 468b mov fp, r1
192c2: 3201 adds r2, #1
192c4: 49a3 ldr r1, [pc, #652] ; (19554 <_vfprintf_r+0xc78>)
192c6: f8c9 6004 str.w r6, [r9, #4]
192ca: 4434 add r4, r6
192cc: 2a07 cmp r2, #7
192ce: e9cd 2422 strd r2, r4, [sp, #136] ; 0x88
192d2: f8c9 1000 str.w r1, [r9]
192d6: f300 82a2 bgt.w 1981e <_vfprintf_r+0xf42>
192da: f109 0908 add.w r9, r9, #8
192de: e434 b.n 18b4a <_vfprintf_r+0x26e>
192e0: 980c ldr r0, [sp, #48] ; 0x30
192e2: aa21 add r2, sp, #132 ; 0x84
192e4: 4659 mov r1, fp
192e6: f003 f8b5 bl 1c454 <__sprint_r>
192ea: 2800 cmp r0, #0
192ec: f47f af4d bne.w 1918a <_vfprintf_r+0x8ae>
192f0: 9c23 ldr r4, [sp, #140] ; 0x8c
192f2: f10d 09b8 add.w r9, sp, #184 ; 0xb8
192f6: e44f b.n 18b98 <_vfprintf_r+0x2bc>
192f8: 980c ldr r0, [sp, #48] ; 0x30
192fa: 9317 str r3, [sp, #92] ; 0x5c
192fc: aa21 add r2, sp, #132 ; 0x84
192fe: 4659 mov r1, fp
19300: f003 f8a8 bl 1c454 <__sprint_r>
19304: 2800 cmp r0, #0
19306: f47f af40 bne.w 1918a <_vfprintf_r+0x8ae>
1930a: 9c23 ldr r4, [sp, #140] ; 0x8c
1930c: 9b17 ldr r3, [sp, #92] ; 0x5c
1930e: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19312: e42f b.n 18b74 <_vfprintf_r+0x298>
19314: 2d10 cmp r5, #16
19316: 9b22 ldr r3, [sp, #136] ; 0x88
19318: dd1f ble.n 1935a <_vfprintf_r+0xa7e>
1931a: 9f0c ldr r7, [sp, #48] ; 0x30
1931c: 2610 movs r6, #16
1931e: e004 b.n 1932a <_vfprintf_r+0xa4e>
19320: 3d10 subs r5, #16
19322: 2d10 cmp r5, #16
19324: f109 0908 add.w r9, r9, #8
19328: dd17 ble.n 1935a <_vfprintf_r+0xa7e>
1932a: 3301 adds r3, #1
1932c: 4a89 ldr r2, [pc, #548] ; (19554 <_vfprintf_r+0xc78>)
1932e: 3410 adds r4, #16
19330: 2b07 cmp r3, #7
19332: e9c9 2600 strd r2, r6, [r9]
19336: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
1933a: ddf1 ble.n 19320 <_vfprintf_r+0xa44>
1933c: aa21 add r2, sp, #132 ; 0x84
1933e: 4659 mov r1, fp
19340: 4638 mov r0, r7
19342: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19346: f003 f885 bl 1c454 <__sprint_r>
1934a: 2800 cmp r0, #0
1934c: f47f af1d bne.w 1918a <_vfprintf_r+0x8ae>
19350: 3d10 subs r5, #16
19352: 2d10 cmp r5, #16
19354: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88
19358: dce7 bgt.n 1932a <_vfprintf_r+0xa4e>
1935a: 3301 adds r3, #1
1935c: 4a7d ldr r2, [pc, #500] ; (19554 <_vfprintf_r+0xc78>)
1935e: f8c9 5004 str.w r5, [r9, #4]
19362: 442c add r4, r5
19364: 2b07 cmp r3, #7
19366: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
1936a: f8c9 2000 str.w r2, [r9]
1936e: f77f ac3b ble.w 18be8 <_vfprintf_r+0x30c>
19372: 980c ldr r0, [sp, #48] ; 0x30
19374: aa21 add r2, sp, #132 ; 0x84
19376: 4659 mov r1, fp
19378: f003 f86c bl 1c454 <__sprint_r>
1937c: 2800 cmp r0, #0
1937e: f47f af04 bne.w 1918a <_vfprintf_r+0x8ae>
19382: 9c23 ldr r4, [sp, #140] ; 0x8c
19384: e430 b.n 18be8 <_vfprintf_r+0x30c>
19386: 46b2 mov sl, r6
19388: e447 b.n 18c1a <_vfprintf_r+0x33e>
1938a: 991b ldr r1, [sp, #108] ; 0x6c
1938c: 2900 cmp r1, #0
1938e: f340 8212 ble.w 197b6 <_vfprintf_r+0xeda>
19392: 9e0f ldr r6, [sp, #60] ; 0x3c
19394: 9b12 ldr r3, [sp, #72] ; 0x48
19396: 429e cmp r6, r3
19398: bfa8 it ge
1939a: 461e movge r6, r3
1939c: 2e00 cmp r6, #0
1939e: dd0b ble.n 193b8 <_vfprintf_r+0xadc>
193a0: 9b22 ldr r3, [sp, #136] ; 0x88
193a2: 3301 adds r3, #1
193a4: 4434 add r4, r6
193a6: 2b07 cmp r3, #7
193a8: e9c9 5600 strd r5, r6, [r9]
193ac: 9423 str r4, [sp, #140] ; 0x8c
193ae: 9322 str r3, [sp, #136] ; 0x88
193b0: f300 83a8 bgt.w 19b04 <_vfprintf_r+0x1228>
193b4: f109 0908 add.w r9, r9, #8
193b8: 9f0f ldr r7, [sp, #60] ; 0x3c
193ba: 2e00 cmp r6, #0
193bc: bfa8 it ge
193be: 1bbf subge r7, r7, r6
193c0: 2f00 cmp r7, #0
193c2: f300 81a0 bgt.w 19706 <_vfprintf_r+0xe2a>
193c6: 9a1b ldr r2, [sp, #108] ; 0x6c
193c8: 9b12 ldr r3, [sp, #72] ; 0x48
193ca: 429a cmp r2, r3
193cc: f280 8179 bge.w 196c2 <_vfprintf_r+0xde6>
193d0: 9b13 ldr r3, [sp, #76] ; 0x4c
193d2: 9915 ldr r1, [sp, #84] ; 0x54
193d4: 441c add r4, r3
193d6: e9c9 1300 strd r1, r3, [r9]
193da: 9b22 ldr r3, [sp, #136] ; 0x88
193dc: 9423 str r4, [sp, #140] ; 0x8c
193de: 3301 adds r3, #1
193e0: 2b07 cmp r3, #7
193e2: 9322 str r3, [sp, #136] ; 0x88
193e4: f300 8373 bgt.w 19ace <_vfprintf_r+0x11f2>
193e8: f109 0908 add.w r9, r9, #8
193ec: 9b12 ldr r3, [sp, #72] ; 0x48
193ee: 990f ldr r1, [sp, #60] ; 0x3c
193f0: 1a9a subs r2, r3, r2
193f2: 1a5e subs r6, r3, r1
193f4: 4296 cmp r6, r2
193f6: bfa8 it ge
193f8: 4616 movge r6, r2
193fa: 2e00 cmp r6, #0
193fc: dd0e ble.n 1941c <_vfprintf_r+0xb40>
193fe: 9b22 ldr r3, [sp, #136] ; 0x88
19400: f8c9 6004 str.w r6, [r9, #4]
19404: 3301 adds r3, #1
19406: 440d add r5, r1
19408: 4434 add r4, r6
1940a: 2b07 cmp r3, #7
1940c: f8c9 5000 str.w r5, [r9]
19410: 9423 str r4, [sp, #140] ; 0x8c
19412: 9322 str r3, [sp, #136] ; 0x88
19414: f300 8385 bgt.w 19b22 <_vfprintf_r+0x1246>
19418: f109 0908 add.w r9, r9, #8
1941c: 2e00 cmp r6, #0
1941e: bfac ite ge
19420: 1b95 subge r5, r2, r6
19422: 4615 movlt r5, r2
19424: 2d00 cmp r5, #0
19426: f77f abd6 ble.w 18bd6 <_vfprintf_r+0x2fa>
1942a: 2d10 cmp r5, #16
1942c: 9b22 ldr r3, [sp, #136] ; 0x88
1942e: 4e4a ldr r6, [pc, #296] ; (19558 <_vfprintf_r+0xc7c>)
19430: f77f aead ble.w 1918e <_vfprintf_r+0x8b2>
19434: f8dd a030 ldr.w sl, [sp, #48] ; 0x30
19438: 2710 movs r7, #16
1943a: e005 b.n 19448 <_vfprintf_r+0xb6c>
1943c: f109 0908 add.w r9, r9, #8
19440: 3d10 subs r5, #16
19442: 2d10 cmp r5, #16
19444: f77f aea3 ble.w 1918e <_vfprintf_r+0x8b2>
19448: 3301 adds r3, #1
1944a: 3410 adds r4, #16
1944c: 2b07 cmp r3, #7
1944e: e9c9 6700 strd r6, r7, [r9]
19452: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
19456: ddf1 ble.n 1943c <_vfprintf_r+0xb60>
19458: aa21 add r2, sp, #132 ; 0x84
1945a: 4659 mov r1, fp
1945c: 4650 mov r0, sl
1945e: f002 fff9 bl 1c454 <__sprint_r>
19462: 2800 cmp r0, #0
19464: f47f ae91 bne.w 1918a <_vfprintf_r+0x8ae>
19468: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88
1946c: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19470: e7e6 b.n 19440 <_vfprintf_r+0xb64>
19472: 9b06 ldr r3, [sp, #24]
19474: 07d8 lsls r0, r3, #31
19476: f53f aeab bmi.w 191d0 <_vfprintf_r+0x8f4>
1947a: 2301 movs r3, #1
1947c: 2f07 cmp r7, #7
1947e: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88
19482: f8c9 5000 str.w r5, [r9]
19486: f8c9 3004 str.w r3, [r9, #4]
1948a: f77f aed2 ble.w 19232 <_vfprintf_r+0x956>
1948e: 980c ldr r0, [sp, #48] ; 0x30
19490: aa21 add r2, sp, #132 ; 0x84
19492: 4659 mov r1, fp
19494: f002 ffde bl 1c454 <__sprint_r>
19498: 2800 cmp r0, #0
1949a: f47f ae76 bne.w 1918a <_vfprintf_r+0x8ae>
1949e: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88
194a2: f10d 0ab8 add.w sl, sp, #184 ; 0xb8
194a6: e6c4 b.n 19232 <_vfprintf_r+0x956>
194a8: 9a08 ldr r2, [sp, #32]
194aa: 2a00 cmp r2, #0
194ac: f040 82e6 bne.w 19a7c <_vfprintf_r+0x11a0>
194b0: 2300 movs r3, #0
194b2: 9308 str r3, [sp, #32]
194b4: 930a str r3, [sp, #40] ; 0x28
194b6: ad2e add r5, sp, #184 ; 0xb8
194b8: e42a b.n 18d10 <_vfprintf_r+0x434>
194ba: f1b9 0f00 cmp.w r9, #0
194be: f77f aeb8 ble.w 19232 <_vfprintf_r+0x956>
194c2: f1b9 0f10 cmp.w r9, #16
194c6: 4e24 ldr r6, [pc, #144] ; (19558 <_vfprintf_r+0xc7c>)
194c8: f340 820b ble.w 198e2 <_vfprintf_r+0x1006>
194cc: f8cd 8020 str.w r8, [sp, #32]
194d0: 2510 movs r5, #16
194d2: f8dd 8030 ldr.w r8, [sp, #48] ; 0x30
194d6: e007 b.n 194e8 <_vfprintf_r+0xc0c>
194d8: f10a 0a08 add.w sl, sl, #8
194dc: f1a9 0910 sub.w r9, r9, #16
194e0: f1b9 0f10 cmp.w r9, #16
194e4: f340 81fb ble.w 198de <_vfprintf_r+0x1002>
194e8: 3701 adds r7, #1
194ea: 3410 adds r4, #16
194ec: 2f07 cmp r7, #7
194ee: e9ca 6500 strd r6, r5, [sl]
194f2: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88
194f6: ddef ble.n 194d8 <_vfprintf_r+0xbfc>
194f8: aa21 add r2, sp, #132 ; 0x84
194fa: 4659 mov r1, fp
194fc: 4640 mov r0, r8
194fe: f002 ffa9 bl 1c454 <__sprint_r>
19502: 2800 cmp r0, #0
19504: f47f ae41 bne.w 1918a <_vfprintf_r+0x8ae>
19508: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88
1950c: f10d 0ab8 add.w sl, sp, #184 ; 0xb8
19510: e7e4 b.n 194dc <_vfprintf_r+0xc00>
19512: 980c ldr r0, [sp, #48] ; 0x30
19514: aa21 add r2, sp, #132 ; 0x84
19516: 4659 mov r1, fp
19518: f002 ff9c bl 1c454 <__sprint_r>
1951c: 2800 cmp r0, #0
1951e: f47f ae34 bne.w 1918a <_vfprintf_r+0x8ae>
19522: 9c23 ldr r4, [sp, #140] ; 0x8c
19524: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19528: f7ff bb42 b.w 18bb0 <_vfprintf_r+0x2d4>
1952c: 4253 negs r3, r2
1952e: 212d movs r1, #45 ; 0x2d
19530: 2201 movs r2, #1
19532: e459 b.n 18de8 <_vfprintf_r+0x50c>
19534: 9b06 ldr r3, [sp, #24]
19536: 07df lsls r7, r3, #31
19538: f57f ab4d bpl.w 18bd6 <_vfprintf_r+0x2fa>
1953c: e546 b.n 18fcc <_vfprintf_r+0x6f0>
1953e: 920d str r2, [sp, #52] ; 0x34
19540: f7ff ba2e b.w 189a0 <_vfprintf_r+0xc4>
19544: ad2e add r5, sp, #184 ; 0xb8
19546: f7ff bbe3 b.w 18d10 <_vfprintf_r+0x434>
1954a: b212 sxth r2, r2
1954c: 4613 mov r3, r2
1954e: f7ff bbc5 b.w 18cdc <_vfprintf_r+0x400>
19552: bf00 nop
19554: 0002c1a4 .word 0x0002c1a4
19558: 0002c1b4 .word 0x0002c1b4
1955c: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40
19560: 4602 mov r2, r0
19562: 460b mov r3, r1
19564: f004 fba8 bl 1dcb8 <__aeabi_dcmpun>
19568: 2800 cmp r0, #0
1956a: f040 834f bne.w 19c0c <_vfprintf_r+0x1330>
1956e: 9a08 ldr r2, [sp, #32]
19570: f027 0320 bic.w r3, r7, #32
19574: 1c51 adds r1, r2, #1
19576: 930a str r3, [sp, #40] ; 0x28
19578: f000 82d0 beq.w 19b1c <_vfprintf_r+0x1240>
1957c: 2b47 cmp r3, #71 ; 0x47
1957e: f000 825d beq.w 19a3c <_vfprintf_r+0x1160>
19582: e9dd 1210 ldrd r1, r2, [sp, #64] ; 0x40
19586: f444 7380 orr.w r3, r4, #256 ; 0x100
1958a: 9306 str r3, [sp, #24]
1958c: 4613 mov r3, r2
1958e: 2b00 cmp r3, #0
19590: f2c0 8228 blt.w 199e4 <_vfprintf_r+0x1108>
19594: 9307 str r3, [sp, #28]
19596: f8dd a040 ldr.w sl, [sp, #64] ; 0x40
1959a: 2300 movs r3, #0
1959c: 930e str r3, [sp, #56] ; 0x38
1959e: 2f66 cmp r7, #102 ; 0x66
195a0: f000 81c6 beq.w 19930 <_vfprintf_r+0x1054>
195a4: 2f46 cmp r7, #70 ; 0x46
195a6: f000 81c3 beq.w 19930 <_vfprintf_r+0x1054>
195aa: 9b0a ldr r3, [sp, #40] ; 0x28
195ac: 2b45 cmp r3, #69 ; 0x45
195ae: 4652 mov r2, sl
195b0: 9b07 ldr r3, [sp, #28]
195b2: f000 8266 beq.w 19a82 <_vfprintf_r+0x11a6>
195b6: a91f add r1, sp, #124 ; 0x7c
195b8: 9104 str r1, [sp, #16]
195ba: a91c add r1, sp, #112 ; 0x70
195bc: 9103 str r1, [sp, #12]
195be: a91b add r1, sp, #108 ; 0x6c
195c0: 9e08 ldr r6, [sp, #32]
195c2: 9102 str r1, [sp, #8]
195c4: 2102 movs r1, #2
195c6: 980c ldr r0, [sp, #48] ; 0x30
195c8: 9601 str r6, [sp, #4]
195ca: 9100 str r1, [sp, #0]
195cc: f000 fcd0 bl 19f70 <_dtoa_r>
195d0: 2f67 cmp r7, #103 ; 0x67
195d2: 4605 mov r5, r0
195d4: f040 835b bne.w 19c8e <_vfprintf_r+0x13b2>
195d8: 07e3 lsls r3, r4, #31
195da: f100 8264 bmi.w 19aa6 <_vfprintf_r+0x11ca>
195de: 9b1f ldr r3, [sp, #124] ; 0x7c
195e0: 1b5b subs r3, r3, r5
195e2: 9312 str r3, [sp, #72] ; 0x48
195e4: 9b1b ldr r3, [sp, #108] ; 0x6c
195e6: 930f str r3, [sp, #60] ; 0x3c
195e8: 9b0a ldr r3, [sp, #40] ; 0x28
195ea: 2b47 cmp r3, #71 ; 0x47
195ec: d107 bne.n 195fe <_vfprintf_r+0xd22>
195ee: 9b0f ldr r3, [sp, #60] ; 0x3c
195f0: 1cde adds r6, r3, #3
195f2: db03 blt.n 195fc <_vfprintf_r+0xd20>
195f4: 9a08 ldr r2, [sp, #32]
195f6: 429a cmp r2, r3
195f8: f280 8276 bge.w 19ae8 <_vfprintf_r+0x120c>
195fc: 3f02 subs r7, #2
195fe: 9a0f ldr r2, [sp, #60] ; 0x3c
19600: f88d 7074 strb.w r7, [sp, #116] ; 0x74
19604: 1e53 subs r3, r2, #1
19606: 2b00 cmp r3, #0
19608: 931b str r3, [sp, #108] ; 0x6c
1960a: bfb6 itet lt
1960c: f1c2 0301 rsblt r3, r2, #1
19610: 222b movge r2, #43 ; 0x2b
19612: 222d movlt r2, #45 ; 0x2d
19614: 2b09 cmp r3, #9
19616: f88d 2075 strb.w r2, [sp, #117] ; 0x75
1961a: f340 82bc ble.w 19b96 <_vfprintf_r+0x12ba>
1961e: f10d 0683 add.w r6, sp, #131 ; 0x83
19622: f8df c2f8 ldr.w ip, [pc, #760] ; 1991c <_vfprintf_r+0x1040>
19626: 4632 mov r2, r6
19628: 4610 mov r0, r2
1962a: fb8c 2103 smull r2, r1, ip, r3
1962e: 17da asrs r2, r3, #31
19630: ebc2 02a1 rsb r2, r2, r1, asr #2
19634: eb02 0182 add.w r1, r2, r2, lsl #2
19638: eba3 0141 sub.w r1, r3, r1, lsl #1
1963c: 3130 adds r1, #48 ; 0x30
1963e: f800 1c01 strb.w r1, [r0, #-1]
19642: 4619 mov r1, r3
19644: 2963 cmp r1, #99 ; 0x63
19646: 4613 mov r3, r2
19648: f100 32ff add.w r2, r0, #4294967295 ; 0xffffffff
1964c: dcec bgt.n 19628 <_vfprintf_r+0xd4c>
1964e: 3330 adds r3, #48 ; 0x30
19650: b2d9 uxtb r1, r3
19652: 1e83 subs r3, r0, #2
19654: 429e cmp r6, r3
19656: f802 1c01 strb.w r1, [r2, #-1]
1965a: f240 8315 bls.w 19c88 <_vfprintf_r+0x13ac>
1965e: 4613 mov r3, r2
19660: f10d 0276 add.w r2, sp, #118 ; 0x76
19664: e001 b.n 1966a <_vfprintf_r+0xd8e>
19666: f813 1b01 ldrb.w r1, [r3], #1
1966a: f802 1b01 strb.w r1, [r2], #1
1966e: 429e cmp r6, r3
19670: d1f9 bne.n 19666 <_vfprintf_r+0xd8a>
19672: f10d 0385 add.w r3, sp, #133 ; 0x85
19676: f10d 0276 add.w r2, sp, #118 ; 0x76
1967a: 1a1b subs r3, r3, r0
1967c: 4413 add r3, r2
1967e: aa1d add r2, sp, #116 ; 0x74
19680: 1a9b subs r3, r3, r2
19682: 9316 str r3, [sp, #88] ; 0x58
19684: 9a12 ldr r2, [sp, #72] ; 0x48
19686: 9b16 ldr r3, [sp, #88] ; 0x58
19688: 2a01 cmp r2, #1
1968a: 4413 add r3, r2
1968c: 930a str r3, [sp, #40] ; 0x28
1968e: f340 82b4 ble.w 19bfa <_vfprintf_r+0x131e>
19692: 9b0a ldr r3, [sp, #40] ; 0x28
19694: 9a13 ldr r2, [sp, #76] ; 0x4c
19696: 4413 add r3, r2
19698: 930a str r3, [sp, #40] ; 0x28
1969a: ea23 73e3 bic.w r3, r3, r3, asr #31
1969e: 9307 str r3, [sp, #28]
196a0: 2300 movs r3, #0
196a2: 930f str r3, [sp, #60] ; 0x3c
196a4: e17d b.n 199a2 <_vfprintf_r+0x10c6>
196a6: 2230 movs r2, #48 ; 0x30
196a8: f88d 2068 strb.w r2, [sp, #104] ; 0x68
196ac: f88d 7069 strb.w r7, [sp, #105] ; 0x69
196b0: f044 0402 orr.w r4, r4, #2
196b4: 2202 movs r2, #2
196b6: f7ff bb96 b.w 18de6 <_vfprintf_r+0x50a>
196ba: 2301 movs r3, #1
196bc: 202b movs r0, #43 ; 0x2b
196be: f7ff b96f b.w 189a0 <_vfprintf_r+0xc4>
196c2: 9b06 ldr r3, [sp, #24]
196c4: 07de lsls r6, r3, #31
196c6: f53f ae83 bmi.w 193d0 <_vfprintf_r+0xaf4>
196ca: 9b12 ldr r3, [sp, #72] ; 0x48
196cc: 990f ldr r1, [sp, #60] ; 0x3c
196ce: 1a9a subs r2, r3, r2
196d0: 1a5b subs r3, r3, r1
196d2: 4293 cmp r3, r2
196d4: bfa8 it ge
196d6: 4613 movge r3, r2
196d8: 461e mov r6, r3
196da: e69f b.n 1941c <_vfprintf_r+0xb40>
196dc: 980c ldr r0, [sp, #48] ; 0x30
196de: aa21 add r2, sp, #132 ; 0x84
196e0: 4659 mov r1, fp
196e2: f002 feb7 bl 1c454 <__sprint_r>
196e6: 2800 cmp r0, #0
196e8: f47f ad4f bne.w 1918a <_vfprintf_r+0x8ae>
196ec: 9c23 ldr r4, [sp, #140] ; 0x8c
196ee: f10d 09b8 add.w r9, sp, #184 ; 0xb8
196f2: e479 b.n 18fe8 <_vfprintf_r+0x70c>
196f4: 2b06 cmp r3, #6
196f6: bf28 it cs
196f8: 2306 movcs r3, #6
196fa: 4d89 ldr r5, [pc, #548] ; (19920 <_vfprintf_r+0x1044>)
196fc: 930a str r3, [sp, #40] ; 0x28
196fe: 960d str r6, [sp, #52] ; 0x34
19700: 9307 str r3, [sp, #28]
19702: f7ff ba0b b.w 18b1c <_vfprintf_r+0x240>
19706: 2f10 cmp r7, #16
19708: 9b22 ldr r3, [sp, #136] ; 0x88
1970a: 4e86 ldr r6, [pc, #536] ; (19924 <_vfprintf_r+0x1048>)
1970c: f340 8158 ble.w 199c0 <_vfprintf_r+0x10e4>
19710: 4632 mov r2, r6
19712: 9508 str r5, [sp, #32]
19714: 465e mov r6, fp
19716: 9d0c ldr r5, [sp, #48] ; 0x30
19718: f04f 0a10 mov.w sl, #16
1971c: 4693 mov fp, r2
1971e: e005 b.n 1972c <_vfprintf_r+0xe50>
19720: f109 0908 add.w r9, r9, #8
19724: 3f10 subs r7, #16
19726: 2f10 cmp r7, #16
19728: f340 8146 ble.w 199b8 <_vfprintf_r+0x10dc>
1972c: 3301 adds r3, #1
1972e: 3410 adds r4, #16
19730: 2b07 cmp r3, #7
19732: e9c9 ba00 strd fp, sl, [r9]
19736: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
1973a: ddf1 ble.n 19720 <_vfprintf_r+0xe44>
1973c: aa21 add r2, sp, #132 ; 0x84
1973e: 4631 mov r1, r6
19740: 4628 mov r0, r5
19742: f002 fe87 bl 1c454 <__sprint_r>
19746: 2800 cmp r0, #0
19748: f47f ae1d bne.w 19386 <_vfprintf_r+0xaaa>
1974c: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88
19750: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19754: e7e6 b.n 19724 <_vfprintf_r+0xe48>
19756: 980c ldr r0, [sp, #48] ; 0x30
19758: aa21 add r2, sp, #132 ; 0x84
1975a: 4659 mov r1, fp
1975c: f002 fe7a bl 1c454 <__sprint_r>
19760: 2800 cmp r0, #0
19762: f47f ad12 bne.w 1918a <_vfprintf_r+0x8ae>
19766: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88
1976a: f10d 0ab8 add.w sl, sp, #184 ; 0xb8
1976e: e539 b.n 191e4 <_vfprintf_r+0x908>
19770: 980c ldr r0, [sp, #48] ; 0x30
19772: aa21 add r2, sp, #132 ; 0x84
19774: 4659 mov r1, fp
19776: f002 fe6d bl 1c454 <__sprint_r>
1977a: 2800 cmp r0, #0
1977c: f47f ad05 bne.w 1918a <_vfprintf_r+0x8ae>
19780: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88
19784: f10d 0ab8 add.w sl, sp, #184 ; 0xb8
19788: e539 b.n 191fe <_vfprintf_r+0x922>
1978a: 4e67 ldr r6, [pc, #412] ; (19928 <_vfprintf_r+0x104c>)
1978c: ad2e add r5, sp, #184 ; 0xb8
1978e: fba6 0203 umull r0, r2, r6, r3
19792: 08d2 lsrs r2, r2, #3
19794: eb02 0082 add.w r0, r2, r2, lsl #2
19798: eba3 0040 sub.w r0, r3, r0, lsl #1
1979c: 3030 adds r0, #48 ; 0x30
1979e: f805 0d01 strb.w r0, [r5, #-1]!
197a2: 4618 mov r0, r3
197a4: 2809 cmp r0, #9
197a6: 4613 mov r3, r2
197a8: d8f1 bhi.n 1978e <_vfprintf_r+0xeb2>
197aa: ab2e add r3, sp, #184 ; 0xb8
197ac: 1b5b subs r3, r3, r5
197ae: 9406 str r4, [sp, #24]
197b0: 930a str r3, [sp, #40] ; 0x28
197b2: f7ff baad b.w 18d10 <_vfprintf_r+0x434>
197b6: 9b22 ldr r3, [sp, #136] ; 0x88
197b8: 4a5c ldr r2, [pc, #368] ; (1992c <_vfprintf_r+0x1050>)
197ba: f8c9 2000 str.w r2, [r9]
197be: 3301 adds r3, #1
197c0: 3401 adds r4, #1
197c2: 2201 movs r2, #1
197c4: 2b07 cmp r3, #7
197c6: 9423 str r4, [sp, #140] ; 0x8c
197c8: 9322 str r3, [sp, #136] ; 0x88
197ca: f8c9 2004 str.w r2, [r9, #4]
197ce: f300 8110 bgt.w 199f2 <_vfprintf_r+0x1116>
197d2: f109 0908 add.w r9, r9, #8
197d6: 2900 cmp r1, #0
197d8: d14d bne.n 19876 <_vfprintf_r+0xf9a>
197da: 9b06 ldr r3, [sp, #24]
197dc: 9a12 ldr r2, [sp, #72] ; 0x48
197de: f003 0301 and.w r3, r3, #1
197e2: 4313 orrs r3, r2
197e4: f43f a9f7 beq.w 18bd6 <_vfprintf_r+0x2fa>
197e8: 9b13 ldr r3, [sp, #76] ; 0x4c
197ea: 9915 ldr r1, [sp, #84] ; 0x54
197ec: 191a adds r2, r3, r4
197ee: e9c9 1300 strd r1, r3, [r9]
197f2: 9b22 ldr r3, [sp, #136] ; 0x88
197f4: 9223 str r2, [sp, #140] ; 0x8c
197f6: 3301 adds r3, #1
197f8: 2b07 cmp r3, #7
197fa: 9322 str r3, [sp, #136] ; 0x88
197fc: f300 8124 bgt.w 19a48 <_vfprintf_r+0x116c>
19800: f109 0908 add.w r9, r9, #8
19804: 9912 ldr r1, [sp, #72] ; 0x48
19806: f8c9 5000 str.w r5, [r9]
1980a: 3301 adds r3, #1
1980c: 188c adds r4, r1, r2
1980e: 2b07 cmp r3, #7
19810: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
19814: f8c9 1004 str.w r1, [r9, #4]
19818: f77f a9db ble.w 18bd2 <_vfprintf_r+0x2f6>
1981c: e4c2 b.n 191a4 <_vfprintf_r+0x8c8>
1981e: 980c ldr r0, [sp, #48] ; 0x30
19820: 9317 str r3, [sp, #92] ; 0x5c
19822: aa21 add r2, sp, #132 ; 0x84
19824: 4659 mov r1, fp
19826: f002 fe15 bl 1c454 <__sprint_r>
1982a: 2800 cmp r0, #0
1982c: f47f acad bne.w 1918a <_vfprintf_r+0x8ae>
19830: 9c23 ldr r4, [sp, #140] ; 0x8c
19832: 9b17 ldr r3, [sp, #92] ; 0x5c
19834: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19838: f7ff b987 b.w 18b4a <_vfprintf_r+0x26e>
1983c: 46aa mov sl, r5
1983e: f7ff b9ec b.w 18c1a <_vfprintf_r+0x33e>
19842: 980c ldr r0, [sp, #48] ; 0x30
19844: aa21 add r2, sp, #132 ; 0x84
19846: 4659 mov r1, fp
19848: f002 fe04 bl 1c454 <__sprint_r>
1984c: 2800 cmp r0, #0
1984e: f47f ac9c bne.w 1918a <_vfprintf_r+0x8ae>
19852: 9c23 ldr r4, [sp, #140] ; 0x8c
19854: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19858: f7ff bbb3 b.w 18fc2 <_vfprintf_r+0x6e6>
1985c: 980c ldr r0, [sp, #48] ; 0x30
1985e: aa21 add r2, sp, #132 ; 0x84
19860: 4659 mov r1, fp
19862: f002 fdf7 bl 1c454 <__sprint_r>
19866: 2800 cmp r0, #0
19868: f47f ac8f bne.w 1918a <_vfprintf_r+0x8ae>
1986c: 9c23 ldr r4, [sp, #140] ; 0x8c
1986e: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19872: f7ff b995 b.w 18ba0 <_vfprintf_r+0x2c4>
19876: 9b13 ldr r3, [sp, #76] ; 0x4c
19878: 9815 ldr r0, [sp, #84] ; 0x54
1987a: 191a adds r2, r3, r4
1987c: e9c9 0300 strd r0, r3, [r9]
19880: 9b22 ldr r3, [sp, #136] ; 0x88
19882: 9223 str r2, [sp, #140] ; 0x8c
19884: 3301 adds r3, #1
19886: 2b07 cmp r3, #7
19888: 9322 str r3, [sp, #136] ; 0x88
1988a: f300 80dd bgt.w 19a48 <_vfprintf_r+0x116c>
1988e: f109 0908 add.w r9, r9, #8
19892: 2900 cmp r1, #0
19894: dab6 bge.n 19804 <_vfprintf_r+0xf28>
19896: 424f negs r7, r1
19898: 3110 adds r1, #16
1989a: 4e22 ldr r6, [pc, #136] ; (19924 <_vfprintf_r+0x1048>)
1989c: f280 8195 bge.w 19bca <_vfprintf_r+0x12ee>
198a0: f8dd a030 ldr.w sl, [sp, #48] ; 0x30
198a4: 2410 movs r4, #16
198a6: e005 b.n 198b4 <_vfprintf_r+0xfd8>
198a8: f109 0908 add.w r9, r9, #8
198ac: 3f10 subs r7, #16
198ae: 2f10 cmp r7, #16
198b0: f340 818b ble.w 19bca <_vfprintf_r+0x12ee>
198b4: 3301 adds r3, #1
198b6: 3210 adds r2, #16
198b8: 2b07 cmp r3, #7
198ba: e9c9 6400 strd r6, r4, [r9]
198be: e9cd 3222 strd r3, r2, [sp, #136] ; 0x88
198c2: ddf1 ble.n 198a8 <_vfprintf_r+0xfcc>
198c4: aa21 add r2, sp, #132 ; 0x84
198c6: 4659 mov r1, fp
198c8: 4650 mov r0, sl
198ca: f002 fdc3 bl 1c454 <__sprint_r>
198ce: 2800 cmp r0, #0
198d0: f47f ac5b bne.w 1918a <_vfprintf_r+0x8ae>
198d4: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88
198d8: f10d 09b8 add.w r9, sp, #184 ; 0xb8
198dc: e7e6 b.n 198ac <_vfprintf_r+0xfd0>
198de: f8dd 8020 ldr.w r8, [sp, #32]
198e2: f8ca 6000 str.w r6, [sl]
198e6: 3701 adds r7, #1
198e8: 444c add r4, r9
198ea: 2f07 cmp r7, #7
198ec: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88
198f0: f8ca 9004 str.w r9, [sl, #4]
198f4: f77f ac9b ble.w 1922e <_vfprintf_r+0x952>
198f8: e5c9 b.n 1948e <_vfprintf_r+0xbb2>
198fa: 4628 mov r0, r5
198fc: f8cd a020 str.w sl, [sp, #32]
19900: 960d str r6, [sp, #52] ; 0x34
19902: 9406 str r4, [sp, #24]
19904: f7fd fdbc bl 17480 <strlen>
19908: ea20 73e0 bic.w r3, r0, r0, asr #31
1990c: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67
19910: 900a str r0, [sp, #40] ; 0x28
19912: 9307 str r3, [sp, #28]
19914: f8cd a03c str.w sl, [sp, #60] ; 0x3c
19918: f7ff b9c6 b.w 18ca8 <_vfprintf_r+0x3cc>
1991c: 66666667 .word 0x66666667
19920: 0002c178 .word 0x0002c178
19924: 0002c1b4 .word 0x0002c1b4
19928: cccccccd .word 0xcccccccd
1992c: 0002c180 .word 0x0002c180
19930: a91f add r1, sp, #124 ; 0x7c
19932: e9dd 3607 ldrd r3, r6, [sp, #28]
19936: 9104 str r1, [sp, #16]
19938: a91c add r1, sp, #112 ; 0x70
1993a: 9103 str r1, [sp, #12]
1993c: a91b add r1, sp, #108 ; 0x6c
1993e: 9102 str r1, [sp, #8]
19940: 2103 movs r1, #3
19942: 9601 str r6, [sp, #4]
19944: 980c ldr r0, [sp, #48] ; 0x30
19946: 9100 str r1, [sp, #0]
19948: 4652 mov r2, sl
1994a: f000 fb11 bl 19f70 <_dtoa_r>
1994e: 4605 mov r5, r0
19950: 1986 adds r6, r0, r6
19952: 782b ldrb r3, [r5, #0]
19954: 2b30 cmp r3, #48 ; 0x30
19956: d064 beq.n 19a22 <_vfprintf_r+0x1146>
19958: 9b1b ldr r3, [sp, #108] ; 0x6c
1995a: 441e add r6, r3
1995c: 9907 ldr r1, [sp, #28]
1995e: 4650 mov r0, sl
19960: 2200 movs r2, #0
19962: 2300 movs r3, #0
19964: f004 f976 bl 1dc54 <__aeabi_dcmpeq>
19968: 2800 cmp r0, #0
1996a: f000 809e beq.w 19aaa <_vfprintf_r+0x11ce>
1996e: 4633 mov r3, r6
19970: 1b5b subs r3, r3, r5
19972: 9312 str r3, [sp, #72] ; 0x48
19974: 9b1b ldr r3, [sp, #108] ; 0x6c
19976: 930f str r3, [sp, #60] ; 0x3c
19978: 9b0a ldr r3, [sp, #40] ; 0x28
1997a: 2b47 cmp r3, #71 ; 0x47
1997c: f43f ae37 beq.w 195ee <_vfprintf_r+0xd12>
19980: 2f66 cmp r7, #102 ; 0x66
19982: f47f ae3c bne.w 195fe <_vfprintf_r+0xd22>
19986: 9a08 ldr r2, [sp, #32]
19988: f004 0301 and.w r3, r4, #1
1998c: 4313 orrs r3, r2
1998e: 9a0f ldr r2, [sp, #60] ; 0x3c
19990: 2a00 cmp r2, #0
19992: f340 8169 ble.w 19c68 <_vfprintf_r+0x138c>
19996: 2b00 cmp r3, #0
19998: f040 8149 bne.w 19c2e <_vfprintf_r+0x1352>
1999c: 9b0f ldr r3, [sp, #60] ; 0x3c
1999e: 9307 str r3, [sp, #28]
199a0: 930a str r3, [sp, #40] ; 0x28
199a2: 9b0e ldr r3, [sp, #56] ; 0x38
199a4: 2b00 cmp r3, #0
199a6: f000 808c beq.w 19ac2 <_vfprintf_r+0x11e6>
199aa: 232d movs r3, #45 ; 0x2d
199ac: f88d 3067 strb.w r3, [sp, #103] ; 0x67
199b0: 2300 movs r3, #0
199b2: 9308 str r3, [sp, #32]
199b4: f7ff b97b b.w 18cae <_vfprintf_r+0x3d2>
199b8: 465a mov r2, fp
199ba: 9d08 ldr r5, [sp, #32]
199bc: 46b3 mov fp, r6
199be: 4616 mov r6, r2
199c0: 3301 adds r3, #1
199c2: 443c add r4, r7
199c4: 2b07 cmp r3, #7
199c6: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88
199ca: f8c9 6000 str.w r6, [r9]
199ce: f8c9 7004 str.w r7, [r9, #4]
199d2: dc47 bgt.n 19a64 <_vfprintf_r+0x1188>
199d4: f109 0908 add.w r9, r9, #8
199d8: e4f5 b.n 193c6 <_vfprintf_r+0xaea>
199da: 212d movs r1, #45 ; 0x2d
199dc: f88d 1067 strb.w r1, [sp, #103] ; 0x67
199e0: f7ff b954 b.w 18c8c <_vfprintf_r+0x3b0>
199e4: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000
199e8: 9307 str r3, [sp, #28]
199ea: 232d movs r3, #45 ; 0x2d
199ec: 468a mov sl, r1
199ee: 930e str r3, [sp, #56] ; 0x38
199f0: e5d5 b.n 1959e <_vfprintf_r+0xcc2>
199f2: 980c ldr r0, [sp, #48] ; 0x30
199f4: aa21 add r2, sp, #132 ; 0x84
199f6: 4659 mov r1, fp
199f8: f002 fd2c bl 1c454 <__sprint_r>
199fc: 2800 cmp r0, #0
199fe: f47f abc4 bne.w 1918a <_vfprintf_r+0x8ae>
19a02: 991b ldr r1, [sp, #108] ; 0x6c
19a04: 9c23 ldr r4, [sp, #140] ; 0x8c
19a06: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19a0a: e6e4 b.n 197d6 <_vfprintf_r+0xefa>
19a0c: 980c ldr r0, [sp, #48] ; 0x30
19a0e: aa21 add r2, sp, #132 ; 0x84
19a10: 4659 mov r1, fp
19a12: f002 fd1f bl 1c454 <__sprint_r>
19a16: f7ff b900 b.w 18c1a <_vfprintf_r+0x33e>
19a1a: f88d 0067 strb.w r0, [sp, #103] ; 0x67
19a1e: f7ff b871 b.w 18b04 <_vfprintf_r+0x228>
19a22: 9907 ldr r1, [sp, #28]
19a24: 4650 mov r0, sl
19a26: 2200 movs r2, #0
19a28: 2300 movs r3, #0
19a2a: f004 f913 bl 1dc54 <__aeabi_dcmpeq>
19a2e: 2800 cmp r0, #0
19a30: d192 bne.n 19958 <_vfprintf_r+0x107c>
19a32: 9b08 ldr r3, [sp, #32]
19a34: f1c3 0301 rsb r3, r3, #1
19a38: 931b str r3, [sp, #108] ; 0x6c
19a3a: e78e b.n 1995a <_vfprintf_r+0x107e>
19a3c: 2a00 cmp r2, #0
19a3e: 4613 mov r3, r2
19a40: bf08 it eq
19a42: 2301 moveq r3, #1
19a44: 9308 str r3, [sp, #32]
19a46: e59c b.n 19582 <_vfprintf_r+0xca6>
19a48: 980c ldr r0, [sp, #48] ; 0x30
19a4a: aa21 add r2, sp, #132 ; 0x84
19a4c: 4659 mov r1, fp
19a4e: f002 fd01 bl 1c454 <__sprint_r>
19a52: 2800 cmp r0, #0
19a54: f47f ab99 bne.w 1918a <_vfprintf_r+0x8ae>
19a58: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88
19a5c: 991b ldr r1, [sp, #108] ; 0x6c
19a5e: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19a62: e716 b.n 19892 <_vfprintf_r+0xfb6>
19a64: 980c ldr r0, [sp, #48] ; 0x30
19a66: aa21 add r2, sp, #132 ; 0x84
19a68: 4659 mov r1, fp
19a6a: f002 fcf3 bl 1c454 <__sprint_r>
19a6e: 2800 cmp r0, #0
19a70: f47f ab8b bne.w 1918a <_vfprintf_r+0x8ae>
19a74: 9c23 ldr r4, [sp, #140] ; 0x8c
19a76: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19a7a: e4a4 b.n 193c6 <_vfprintf_r+0xaea>
19a7c: 9c06 ldr r4, [sp, #24]
19a7e: f7ff b93f b.w 18d00 <_vfprintf_r+0x424>
19a82: 9908 ldr r1, [sp, #32]
19a84: 980c ldr r0, [sp, #48] ; 0x30
19a86: 1c4e adds r6, r1, #1
19a88: a91f add r1, sp, #124 ; 0x7c
19a8a: 9104 str r1, [sp, #16]
19a8c: a91c add r1, sp, #112 ; 0x70
19a8e: 9103 str r1, [sp, #12]
19a90: a91b add r1, sp, #108 ; 0x6c
19a92: 9102 str r1, [sp, #8]
19a94: 2102 movs r1, #2
19a96: 9601 str r6, [sp, #4]
19a98: 9100 str r1, [sp, #0]
19a9a: f000 fa69 bl 19f70 <_dtoa_r>
19a9e: 4605 mov r5, r0
19aa0: 2f47 cmp r7, #71 ; 0x47
19aa2: f43f ad99 beq.w 195d8 <_vfprintf_r+0xcfc>
19aa6: 442e add r6, r5
19aa8: e758 b.n 1995c <_vfprintf_r+0x1080>
19aaa: 9b1f ldr r3, [sp, #124] ; 0x7c
19aac: 42b3 cmp r3, r6
19aae: f4bf af5f bcs.w 19970 <_vfprintf_r+0x1094>
19ab2: 2130 movs r1, #48 ; 0x30
19ab4: 1c5a adds r2, r3, #1
19ab6: 921f str r2, [sp, #124] ; 0x7c
19ab8: 7019 strb r1, [r3, #0]
19aba: 9b1f ldr r3, [sp, #124] ; 0x7c
19abc: 429e cmp r6, r3
19abe: d8f9 bhi.n 19ab4 <_vfprintf_r+0x11d8>
19ac0: e756 b.n 19970 <_vfprintf_r+0x1094>
19ac2: 9b0e ldr r3, [sp, #56] ; 0x38
19ac4: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67
19ac8: 9308 str r3, [sp, #32]
19aca: f7ff b8ed b.w 18ca8 <_vfprintf_r+0x3cc>
19ace: 980c ldr r0, [sp, #48] ; 0x30
19ad0: aa21 add r2, sp, #132 ; 0x84
19ad2: 4659 mov r1, fp
19ad4: f002 fcbe bl 1c454 <__sprint_r>
19ad8: 2800 cmp r0, #0
19ada: f47f ab56 bne.w 1918a <_vfprintf_r+0x8ae>
19ade: 9a1b ldr r2, [sp, #108] ; 0x6c
19ae0: 9c23 ldr r4, [sp, #140] ; 0x8c
19ae2: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19ae6: e481 b.n 193ec <_vfprintf_r+0xb10>
19ae8: 9b12 ldr r3, [sp, #72] ; 0x48
19aea: 9a0f ldr r2, [sp, #60] ; 0x3c
19aec: 4293 cmp r3, r2
19aee: dc5b bgt.n 19ba8 <_vfprintf_r+0x12cc>
19af0: 07e4 lsls r4, r4, #31
19af2: 9b0f ldr r3, [sp, #60] ; 0x3c
19af4: f100 80a5 bmi.w 19c42 <_vfprintf_r+0x1366>
19af8: ea23 72e3 bic.w r2, r3, r3, asr #31
19afc: 9207 str r2, [sp, #28]
19afe: 930a str r3, [sp, #40] ; 0x28
19b00: 2767 movs r7, #103 ; 0x67
19b02: e74e b.n 199a2 <_vfprintf_r+0x10c6>
19b04: 980c ldr r0, [sp, #48] ; 0x30
19b06: aa21 add r2, sp, #132 ; 0x84
19b08: 4659 mov r1, fp
19b0a: f002 fca3 bl 1c454 <__sprint_r>
19b0e: 2800 cmp r0, #0
19b10: f47f ab3b bne.w 1918a <_vfprintf_r+0x8ae>
19b14: 9c23 ldr r4, [sp, #140] ; 0x8c
19b16: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19b1a: e44d b.n 193b8 <_vfprintf_r+0xadc>
19b1c: 2306 movs r3, #6
19b1e: 9308 str r3, [sp, #32]
19b20: e52f b.n 19582 <_vfprintf_r+0xca6>
19b22: 980c ldr r0, [sp, #48] ; 0x30
19b24: aa21 add r2, sp, #132 ; 0x84
19b26: 4659 mov r1, fp
19b28: f002 fc94 bl 1c454 <__sprint_r>
19b2c: 2800 cmp r0, #0
19b2e: f47f ab2c bne.w 1918a <_vfprintf_r+0x8ae>
19b32: 9a1b ldr r2, [sp, #108] ; 0x6c
19b34: 9b12 ldr r3, [sp, #72] ; 0x48
19b36: 9c23 ldr r4, [sp, #140] ; 0x8c
19b38: 1a9a subs r2, r3, r2
19b3a: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19b3e: e46d b.n 1941c <_vfprintf_r+0xb40>
19b40: 9b08 ldr r3, [sp, #32]
19b42: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67
19b46: 960d str r6, [sp, #52] ; 0x34
19b48: 9406 str r4, [sp, #24]
19b4a: 9307 str r3, [sp, #28]
19b4c: 930a str r3, [sp, #40] ; 0x28
19b4e: 9008 str r0, [sp, #32]
19b50: 900f str r0, [sp, #60] ; 0x3c
19b52: f7ff b8a9 b.w 18ca8 <_vfprintf_r+0x3cc>
19b56: f88d 0067 strb.w r0, [sp, #103] ; 0x67
19b5a: f7ff b90c b.w 18d76 <_vfprintf_r+0x49a>
19b5e: f88d 0067 strb.w r0, [sp, #103] ; 0x67
19b62: f7ff b97a b.w 18e5a <_vfprintf_r+0x57e>
19b66: f88d 0067 strb.w r0, [sp, #103] ; 0x67
19b6a: f7ff b97e b.w 18e6a <_vfprintf_r+0x58e>
19b6e: f88d 0067 strb.w r0, [sp, #103] ; 0x67
19b72: f7ff b8a9 b.w 18cc8 <_vfprintf_r+0x3ec>
19b76: f88d 0067 strb.w r0, [sp, #103] ; 0x67
19b7a: f7ff b9c6 b.w 18f0a <_vfprintf_r+0x62e>
19b7e: f88d 0067 strb.w r0, [sp, #103] ; 0x67
19b82: f7ff b9d3 b.w 18f2c <_vfprintf_r+0x650>
19b86: f88d 0067 strb.w r0, [sp, #103] ; 0x67
19b8a: f7ff b854 b.w 18c36 <_vfprintf_r+0x35a>
19b8e: f88d 0067 strb.w r0, [sp, #103] ; 0x67
19b92: f7ff b917 b.w 18dc4 <_vfprintf_r+0x4e8>
19b96: 3330 adds r3, #48 ; 0x30
19b98: f88d 3077 strb.w r3, [sp, #119] ; 0x77
19b9c: 2330 movs r3, #48 ; 0x30
19b9e: f88d 3076 strb.w r3, [sp, #118] ; 0x76
19ba2: 2304 movs r3, #4
19ba4: 9316 str r3, [sp, #88] ; 0x58
19ba6: e56d b.n 19684 <_vfprintf_r+0xda8>
19ba8: e9dd 3212 ldrd r3, r2, [sp, #72] ; 0x48
19bac: 4413 add r3, r2
19bae: 9a0f ldr r2, [sp, #60] ; 0x3c
19bb0: 930a str r3, [sp, #40] ; 0x28
19bb2: 2a00 cmp r2, #0
19bb4: dd4d ble.n 19c52 <_vfprintf_r+0x1376>
19bb6: ea23 73e3 bic.w r3, r3, r3, asr #31
19bba: 9307 str r3, [sp, #28]
19bbc: 2767 movs r7, #103 ; 0x67
19bbe: e6f0 b.n 199a2 <_vfprintf_r+0x10c6>
19bc0: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
19bc4: 9309 str r3, [sp, #36] ; 0x24
19bc6: f7ff b82d b.w 18c24 <_vfprintf_r+0x348>
19bca: 3301 adds r3, #1
19bcc: 443a add r2, r7
19bce: 2b07 cmp r3, #7
19bd0: e9cd 3222 strd r3, r2, [sp, #136] ; 0x88
19bd4: f8c9 6000 str.w r6, [r9]
19bd8: f8c9 7004 str.w r7, [r9, #4]
19bdc: f77f ae10 ble.w 19800 <_vfprintf_r+0xf24>
19be0: 980c ldr r0, [sp, #48] ; 0x30
19be2: aa21 add r2, sp, #132 ; 0x84
19be4: 4659 mov r1, fp
19be6: f002 fc35 bl 1c454 <__sprint_r>
19bea: 2800 cmp r0, #0
19bec: f47f aacd bne.w 1918a <_vfprintf_r+0x8ae>
19bf0: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88
19bf4: f10d 09b8 add.w r9, sp, #184 ; 0xb8
19bf8: e604 b.n 19804 <_vfprintf_r+0xf28>
19bfa: f014 0201 ands.w r2, r4, #1
19bfe: 920f str r2, [sp, #60] ; 0x3c
19c00: f47f ad47 bne.w 19692 <_vfprintf_r+0xdb6>
19c04: ea23 73e3 bic.w r3, r3, r3, asr #31
19c08: 9307 str r3, [sp, #28]
19c0a: e6ca b.n 199a2 <_vfprintf_r+0x10c6>
19c0c: 9b11 ldr r3, [sp, #68] ; 0x44
19c0e: 4d21 ldr r5, [pc, #132] ; (19c94 <_vfprintf_r+0x13b8>)
19c10: 2b00 cmp r3, #0
19c12: bfb8 it lt
19c14: 212d movlt r1, #45 ; 0x2d
19c16: f024 0380 bic.w r3, r4, #128 ; 0x80
19c1a: 9306 str r3, [sp, #24]
19c1c: bfa8 it ge
19c1e: f89d 1067 ldrbge.w r1, [sp, #103] ; 0x67
19c22: 4b1d ldr r3, [pc, #116] ; (19c98 <_vfprintf_r+0x13bc>)
19c24: bfb8 it lt
19c26: f88d 1067 strblt.w r1, [sp, #103] ; 0x67
19c2a: f7ff b834 b.w 18c96 <_vfprintf_r+0x3ba>
19c2e: 9b0f ldr r3, [sp, #60] ; 0x3c
19c30: 9a13 ldr r2, [sp, #76] ; 0x4c
19c32: 4413 add r3, r2
19c34: 9a08 ldr r2, [sp, #32]
19c36: 441a add r2, r3
19c38: ea22 73e2 bic.w r3, r2, r2, asr #31
19c3c: 920a str r2, [sp, #40] ; 0x28
19c3e: 9307 str r3, [sp, #28]
19c40: e6af b.n 199a2 <_vfprintf_r+0x10c6>
19c42: 9a13 ldr r2, [sp, #76] ; 0x4c
19c44: 4413 add r3, r2
19c46: 930a str r3, [sp, #40] ; 0x28
19c48: ea23 73e3 bic.w r3, r3, r3, asr #31
19c4c: 9307 str r3, [sp, #28]
19c4e: 2767 movs r7, #103 ; 0x67
19c50: e6a7 b.n 199a2 <_vfprintf_r+0x10c6>
19c52: 9b0f ldr r3, [sp, #60] ; 0x3c
19c54: 9a0a ldr r2, [sp, #40] ; 0x28
19c56: f1c3 0301 rsb r3, r3, #1
19c5a: 441a add r2, r3
19c5c: ea22 73e2 bic.w r3, r2, r2, asr #31
19c60: 920a str r2, [sp, #40] ; 0x28
19c62: 9307 str r3, [sp, #28]
19c64: 2767 movs r7, #103 ; 0x67
19c66: e69c b.n 199a2 <_vfprintf_r+0x10c6>
19c68: b91b cbnz r3, 19c72 <_vfprintf_r+0x1396>
19c6a: 2301 movs r3, #1
19c6c: 9307 str r3, [sp, #28]
19c6e: 930a str r3, [sp, #40] ; 0x28
19c70: e697 b.n 199a2 <_vfprintf_r+0x10c6>
19c72: 9b13 ldr r3, [sp, #76] ; 0x4c
19c74: 3301 adds r3, #1
19c76: e7dd b.n 19c34 <_vfprintf_r+0x1358>
19c78: 9a0d ldr r2, [sp, #52] ; 0x34
19c7a: f852 5b04 ldr.w r5, [r2], #4
19c7e: 920d str r2, [sp, #52] ; 0x34
19c80: ea45 75e5 orr.w r5, r5, r5, asr #31
19c84: f7fe be8c b.w 189a0 <_vfprintf_r+0xc4>
19c88: 2302 movs r3, #2
19c8a: 9316 str r3, [sp, #88] ; 0x58
19c8c: e4fa b.n 19684 <_vfprintf_r+0xda8>
19c8e: 9e08 ldr r6, [sp, #32]
19c90: e706 b.n 19aa0 <_vfprintf_r+0x11c4>
19c92: bf00 nop
19c94: 0002c148 .word 0x0002c148
19c98: 0002c14c .word 0x0002c14c
00019c9c <__sbprintf>:
19c9c: b570 push {r4, r5, r6, lr}
19c9e: 460c mov r4, r1
19ca0: 8989 ldrh r1, [r1, #12]
19ca2: f5ad 6d8d sub.w sp, sp, #1128 ; 0x468
19ca6: f021 0102 bic.w r1, r1, #2
19caa: f8ad 1010 strh.w r1, [sp, #16]
19cae: 6e21 ldr r1, [r4, #96] ; 0x60
19cb0: 9119 str r1, [sp, #100] ; 0x64
19cb2: 89e1 ldrh r1, [r4, #14]
19cb4: f8ad 1012 strh.w r1, [sp, #18]
19cb8: 69e1 ldr r1, [r4, #28]
19cba: 9108 str r1, [sp, #32]
19cbc: 6a61 ldr r1, [r4, #36] ; 0x24
19cbe: 910a str r1, [sp, #40] ; 0x28
19cc0: a91a add r1, sp, #104 ; 0x68
19cc2: 9101 str r1, [sp, #4]
19cc4: 9105 str r1, [sp, #20]
19cc6: f44f 6180 mov.w r1, #1024 ; 0x400
19cca: 9103 str r1, [sp, #12]
19ccc: 9106 str r1, [sp, #24]
19cce: 2100 movs r1, #0
19cd0: 9107 str r1, [sp, #28]
19cd2: a901 add r1, sp, #4
19cd4: 4606 mov r6, r0
19cd6: f7fe fe01 bl 188dc <_vfprintf_r>
19cda: 1e05 subs r5, r0, #0
19cdc: db07 blt.n 19cee <__sbprintf+0x52>
19cde: a901 add r1, sp, #4
19ce0: 4630 mov r0, r6
19ce2: f001 f92b bl 1af3c <_fflush_r>
19ce6: 2800 cmp r0, #0
19ce8: bf18 it ne
19cea: f04f 35ff movne.w r5, #4294967295 ; 0xffffffff
19cee: f8bd 3010 ldrh.w r3, [sp, #16]
19cf2: 065b lsls r3, r3, #25
19cf4: d503 bpl.n 19cfe <__sbprintf+0x62>
19cf6: 89a3 ldrh r3, [r4, #12]
19cf8: f043 0340 orr.w r3, r3, #64 ; 0x40
19cfc: 81a3 strh r3, [r4, #12]
19cfe: 4628 mov r0, r5
19d00: f50d 6d8d add.w sp, sp, #1128 ; 0x468
19d04: bd70 pop {r4, r5, r6, pc}
19d06: bf00 nop
00019d08 <__vsprintf_chk>:
19d08: b510 push {r4, lr}
19d0a: 1e14 subs r4, r2, #0
19d0c: 4619 mov r1, r3
19d0e: 9b02 ldr r3, [sp, #8]
19d10: db08 blt.n 19d24 <__vsprintf_chk+0x1c>
19d12: 460a mov r2, r1
19d14: 4621 mov r1, r4
19d16: f003 f947 bl 1cfa8 <vsnprintf>
19d1a: 2800 cmp r0, #0
19d1c: db01 blt.n 19d22 <__vsprintf_chk+0x1a>
19d1e: 42a0 cmp r0, r4
19d20: d205 bcs.n 19d2e <__vsprintf_chk+0x26>
19d22: bd10 pop {r4, pc}
19d24: e8bd 4010 ldmia.w sp!, {r4, lr}
19d28: 461a mov r2, r3
19d2a: f003 b975 b.w 1d018 <vsprintf>
19d2e: f000 f86b bl 19e08 <__chk_fail>
19d32: bf00 nop
00019d34 <__swsetup_r>:
19d34: b538 push {r3, r4, r5, lr}
19d36: 4b33 ldr r3, [pc, #204] ; (19e04 <__swsetup_r+0xd0>)
19d38: 681b ldr r3, [r3, #0]
19d3a: 4605 mov r5, r0
19d3c: 460c mov r4, r1
19d3e: b10b cbz r3, 19d44 <__swsetup_r+0x10>
19d40: 6b9a ldr r2, [r3, #56] ; 0x38
19d42: b312 cbz r2, 19d8a <__swsetup_r+0x56>
19d44: f9b4 300c ldrsh.w r3, [r4, #12]
19d48: 0718 lsls r0, r3, #28
19d4a: b29a uxth r2, r3
19d4c: d525 bpl.n 19d9a <__swsetup_r+0x66>
19d4e: 6921 ldr r1, [r4, #16]
19d50: 2900 cmp r1, #0
19d52: d02d beq.n 19db0 <__swsetup_r+0x7c>
19d54: f012 0001 ands.w r0, r2, #1
19d58: d007 beq.n 19d6a <__swsetup_r+0x36>
19d5a: 2000 movs r0, #0
19d5c: 60a0 str r0, [r4, #8]
19d5e: 6960 ldr r0, [r4, #20]
19d60: 4240 negs r0, r0
19d62: 61a0 str r0, [r4, #24]
19d64: b139 cbz r1, 19d76 <__swsetup_r+0x42>
19d66: 2000 movs r0, #0
19d68: bd38 pop {r3, r4, r5, pc}
19d6a: 0795 lsls r5, r2, #30
19d6c: bf58 it pl
19d6e: 6960 ldrpl r0, [r4, #20]
19d70: 60a0 str r0, [r4, #8]
19d72: 2900 cmp r1, #0
19d74: d1f7 bne.n 19d66 <__swsetup_r+0x32>
19d76: 0612 lsls r2, r2, #24
19d78: bf58 it pl
19d7a: 4608 movpl r0, r1
19d7c: d5f4 bpl.n 19d68 <__swsetup_r+0x34>
19d7e: f043 0340 orr.w r3, r3, #64 ; 0x40
19d82: 81a3 strh r3, [r4, #12]
19d84: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
19d88: bd38 pop {r3, r4, r5, pc}
19d8a: 4618 mov r0, r3
19d8c: f001 f95e bl 1b04c <__sinit>
19d90: f9b4 300c ldrsh.w r3, [r4, #12]
19d94: 0718 lsls r0, r3, #28
19d96: b29a uxth r2, r3
19d98: d4d9 bmi.n 19d4e <__swsetup_r+0x1a>
19d9a: 06d1 lsls r1, r2, #27
19d9c: d52a bpl.n 19df4 <__swsetup_r+0xc0>
19d9e: 0752 lsls r2, r2, #29
19da0: d414 bmi.n 19dcc <__swsetup_r+0x98>
19da2: 6921 ldr r1, [r4, #16]
19da4: f043 0308 orr.w r3, r3, #8
19da8: 81a3 strh r3, [r4, #12]
19daa: b29a uxth r2, r3
19dac: 2900 cmp r1, #0
19dae: d1d1 bne.n 19d54 <__swsetup_r+0x20>
19db0: f402 7020 and.w r0, r2, #640 ; 0x280
19db4: f5b0 7f00 cmp.w r0, #512 ; 0x200
19db8: d0cc beq.n 19d54 <__swsetup_r+0x20>
19dba: 4621 mov r1, r4
19dbc: 4628 mov r0, r5
19dbe: f001 fabf bl 1b340 <__smakebuf_r>
19dc2: f9b4 300c ldrsh.w r3, [r4, #12]
19dc6: 6921 ldr r1, [r4, #16]
19dc8: b29a uxth r2, r3
19dca: e7c3 b.n 19d54 <__swsetup_r+0x20>
19dcc: 6b21 ldr r1, [r4, #48] ; 0x30
19dce: b151 cbz r1, 19de6 <__swsetup_r+0xb2>
19dd0: f104 0240 add.w r2, r4, #64 ; 0x40
19dd4: 4291 cmp r1, r2
19dd6: d004 beq.n 19de2 <__swsetup_r+0xae>
19dd8: 4628 mov r0, r5
19dda: f001 f98d bl 1b0f8 <_free_r>
19dde: f9b4 300c ldrsh.w r3, [r4, #12]
19de2: 2200 movs r2, #0
19de4: 6322 str r2, [r4, #48] ; 0x30
19de6: 6921 ldr r1, [r4, #16]
19de8: 2200 movs r2, #0
19dea: e9c4 1200 strd r1, r2, [r4]
19dee: f023 0324 bic.w r3, r3, #36 ; 0x24
19df2: e7d7 b.n 19da4 <__swsetup_r+0x70>
19df4: 2209 movs r2, #9
19df6: f043 0340 orr.w r3, r3, #64 ; 0x40
19dfa: 602a str r2, [r5, #0]
19dfc: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
19e00: 81a3 strh r3, [r4, #12]
19e02: bd38 pop {r3, r4, r5, pc}
19e04: 20000068 .word 0x20000068
00019e08 <__chk_fail>:
19e08: b500 push {lr}
19e0a: 4c0e ldr r4, [pc, #56] ; (19e44 <__chk_fail+0x3c>)
19e0c: cc0f ldmia r4!, {r0, r1, r2, r3}
19e0e: b08d sub sp, #52 ; 0x34
19e10: 46ec mov ip, sp
19e12: e8ac 000f stmia.w ip!, {r0, r1, r2, r3}
19e16: cc0f ldmia r4!, {r0, r1, r2, r3}
19e18: e8ac 000f stmia.w ip!, {r0, r1, r2, r3}
19e1c: e894 000f ldmia.w r4, {r0, r1, r2, r3}
19e20: e8ac 0007 stmia.w ip!, {r0, r1, r2}
19e24: 4668 mov r0, sp
19e26: f8ac 3000 strh.w r3, [ip]
19e2a: f7fd fb29 bl 17480 <strlen>
19e2e: 4669 mov r1, sp
19e30: 4602 mov r2, r0
19e32: 2002 movs r0, #2
19e34: f002 fac6 bl 1c3c4 <write>
19e38: 2006 movs r0, #6
19e3a: f002 f9b5 bl 1c1a8 <raise>
19e3e: 207f movs r0, #127 ; 0x7f
19e40: f7e6 faa8 bl 394 <_exit>
19e44: 0002c1c4 .word 0x0002c1c4
00019e48 <quorem>:
19e48: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
19e4c: 6903 ldr r3, [r0, #16]
19e4e: 690c ldr r4, [r1, #16]
19e50: 42a3 cmp r3, r4
19e52: b083 sub sp, #12
19e54: f2c0 8088 blt.w 19f68 <quorem+0x120>
19e58: 3c01 subs r4, #1
19e5a: f101 0514 add.w r5, r1, #20
19e5e: 00a3 lsls r3, r4, #2
19e60: f100 0814 add.w r8, r0, #20
19e64: 9300 str r3, [sp, #0]
19e66: f855 3024 ldr.w r3, [r5, r4, lsl #2]
19e6a: f858 2024 ldr.w r2, [r8, r4, lsl #2]
19e6e: 3301 adds r3, #1
19e70: 468a mov sl, r1
19e72: 429a cmp r2, r3
19e74: eb08 0184 add.w r1, r8, r4, lsl #2
19e78: 4681 mov r9, r0
19e7a: eb05 0784 add.w r7, r5, r4, lsl #2
19e7e: 9101 str r1, [sp, #4]
19e80: fbb2 f6f3 udiv r6, r2, r3
19e84: d33a bcc.n 19efc <quorem+0xb4>
19e86: f04f 0c00 mov.w ip, #0
19e8a: 46ae mov lr, r5
19e8c: 4640 mov r0, r8
19e8e: 4662 mov r2, ip
19e90: 4663 mov r3, ip
19e92: f85e bb04 ldr.w fp, [lr], #4
19e96: 6801 ldr r1, [r0, #0]
19e98: fa1f fc8b uxth.w ip, fp
19e9c: fb06 330c mla r3, r6, ip, r3
19ea0: ea4f 4c13 mov.w ip, r3, lsr #16
19ea4: ea4f 4b1b mov.w fp, fp, lsr #16
19ea8: fb06 cc0b mla ip, r6, fp, ip
19eac: b29b uxth r3, r3
19eae: 1ad3 subs r3, r2, r3
19eb0: fa1f f28c uxth.w r2, ip
19eb4: fa13 f381 uxtah r3, r3, r1
19eb8: ebc2 4211 rsb r2, r2, r1, lsr #16
19ebc: eb02 4223 add.w r2, r2, r3, asr #16
19ec0: b29b uxth r3, r3
19ec2: ea43 4302 orr.w r3, r3, r2, lsl #16
19ec6: 4577 cmp r7, lr
19ec8: f840 3b04 str.w r3, [r0], #4
19ecc: ea4f 4222 mov.w r2, r2, asr #16
19ed0: ea4f 431c mov.w r3, ip, lsr #16
19ed4: d2dd bcs.n 19e92 <quorem+0x4a>
19ed6: 9b00 ldr r3, [sp, #0]
19ed8: f858 3003 ldr.w r3, [r8, r3]
19edc: b973 cbnz r3, 19efc <quorem+0xb4>
19ede: 9b01 ldr r3, [sp, #4]
19ee0: 3b04 subs r3, #4
19ee2: 4598 cmp r8, r3
19ee4: d304 bcc.n 19ef0 <quorem+0xa8>
19ee6: e007 b.n 19ef8 <quorem+0xb0>
19ee8: 4598 cmp r8, r3
19eea: f104 34ff add.w r4, r4, #4294967295 ; 0xffffffff
19eee: d203 bcs.n 19ef8 <quorem+0xb0>
19ef0: f853 2904 ldr.w r2, [r3], #-4
19ef4: 2a00 cmp r2, #0
19ef6: d0f7 beq.n 19ee8 <quorem+0xa0>
19ef8: f8c9 4010 str.w r4, [r9, #16]
19efc: 4651 mov r1, sl
19efe: 4648 mov r0, r9
19f00: f002 f816 bl 1bf30 <__mcmp>
19f04: 2800 cmp r0, #0
19f06: db2b blt.n 19f60 <quorem+0x118>
19f08: 3601 adds r6, #1
19f0a: 4641 mov r1, r8
19f0c: 2300 movs r3, #0
19f0e: f855 0b04 ldr.w r0, [r5], #4
19f12: f8d1 c000 ldr.w ip, [r1]
19f16: b282 uxth r2, r0
19f18: 1a9a subs r2, r3, r2
19f1a: 0c03 lsrs r3, r0, #16
19f1c: fa12 f28c uxtah r2, r2, ip
19f20: ebc3 431c rsb r3, r3, ip, lsr #16
19f24: eb03 4322 add.w r3, r3, r2, asr #16
19f28: b292 uxth r2, r2
19f2a: ea42 4203 orr.w r2, r2, r3, lsl #16
19f2e: 42af cmp r7, r5
19f30: f841 2b04 str.w r2, [r1], #4
19f34: ea4f 4323 mov.w r3, r3, asr #16
19f38: d2e9 bcs.n 19f0e <quorem+0xc6>
19f3a: f858 2024 ldr.w r2, [r8, r4, lsl #2]
19f3e: eb08 0384 add.w r3, r8, r4, lsl #2
19f42: b96a cbnz r2, 19f60 <quorem+0x118>
19f44: 3b04 subs r3, #4
19f46: 4598 cmp r8, r3
19f48: d304 bcc.n 19f54 <quorem+0x10c>
19f4a: e007 b.n 19f5c <quorem+0x114>
19f4c: 4598 cmp r8, r3
19f4e: f104 34ff add.w r4, r4, #4294967295 ; 0xffffffff
19f52: d203 bcs.n 19f5c <quorem+0x114>
19f54: f853 2904 ldr.w r2, [r3], #-4
19f58: 2a00 cmp r2, #0
19f5a: d0f7 beq.n 19f4c <quorem+0x104>
19f5c: f8c9 4010 str.w r4, [r9, #16]
19f60: 4630 mov r0, r6
19f62: b003 add sp, #12
19f64: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
19f68: 2000 movs r0, #0
19f6a: b003 add sp, #12
19f6c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
00019f70 <_dtoa_r>:
19f70: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
19f74: 6c01 ldr r1, [r0, #64] ; 0x40
19f76: b09f sub sp, #124 ; 0x7c
19f78: 4616 mov r6, r2
19f7a: 461f mov r7, r3
19f7c: e9cd 6704 strd r6, r7, [sp, #16]
19f80: 9c2b ldr r4, [sp, #172] ; 0xac
19f82: 4682 mov sl, r0
19f84: b149 cbz r1, 19f9a <_dtoa_r+0x2a>
19f86: 6c42 ldr r2, [r0, #68] ; 0x44
19f88: 604a str r2, [r1, #4]
19f8a: 2301 movs r3, #1
19f8c: 4093 lsls r3, r2
19f8e: 608b str r3, [r1, #8]
19f90: f001 fd70 bl 1ba74 <_Bfree>
19f94: 2300 movs r3, #0
19f96: f8ca 3040 str.w r3, [sl, #64] ; 0x40
19f9a: f1b7 0800 subs.w r8, r7, #0
19f9e: bfb4 ite lt
19fa0: 2301 movlt r3, #1
19fa2: 2300 movge r3, #0
19fa4: 6023 str r3, [r4, #0]
19fa6: 4b76 ldr r3, [pc, #472] ; (1a180 <_dtoa_r+0x210>)
19fa8: bfbc itt lt
19faa: f028 4800 biclt.w r8, r8, #2147483648 ; 0x80000000
19fae: f8cd 8014 strlt.w r8, [sp, #20]
19fb2: ea33 0308 bics.w r3, r3, r8
19fb6: f000 80ac beq.w 1a112 <_dtoa_r+0x1a2>
19fba: e9dd 3404 ldrd r3, r4, [sp, #16]
19fbe: 2200 movs r2, #0
19fc0: 4618 mov r0, r3
19fc2: 4621 mov r1, r4
19fc4: 2300 movs r3, #0
19fc6: e9cd 010a strd r0, r1, [sp, #40] ; 0x28
19fca: f003 fe43 bl 1dc54 <__aeabi_dcmpeq>
19fce: 4605 mov r5, r0
19fd0: b178 cbz r0, 19ff2 <_dtoa_r+0x82>
19fd2: 9a2a ldr r2, [sp, #168] ; 0xa8
19fd4: 2301 movs r3, #1
19fd6: 6013 str r3, [r2, #0]
19fd8: 9b2c ldr r3, [sp, #176] ; 0xb0
19fda: 2b00 cmp r3, #0
19fdc: f000 8391 beq.w 1a702 <_dtoa_r+0x792>
19fe0: 4b68 ldr r3, [pc, #416] ; (1a184 <_dtoa_r+0x214>)
19fe2: 9a2c ldr r2, [sp, #176] ; 0xb0
19fe4: 6013 str r3, [r2, #0]
19fe6: 3b01 subs r3, #1
19fe8: 9303 str r3, [sp, #12]
19fea: 9803 ldr r0, [sp, #12]
19fec: b01f add sp, #124 ; 0x7c
19fee: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
19ff2: ab1c add r3, sp, #112 ; 0x70
19ff4: 9301 str r3, [sp, #4]
19ff6: ab1d add r3, sp, #116 ; 0x74
19ff8: 9300 str r3, [sp, #0]
19ffa: 4650 mov r0, sl
19ffc: e9dd 230a ldrd r2, r3, [sp, #40] ; 0x28
1a000: f002 f860 bl 1c0c4 <__d2b>
1a004: ea5f 5418 movs.w r4, r8, lsr #20
1a008: 4683 mov fp, r0
1a00a: f040 8098 bne.w 1a13e <_dtoa_r+0x1ce>
1a00e: e9dd 541c ldrd r5, r4, [sp, #112] ; 0x70
1a012: 442c add r4, r5
1a014: f204 4332 addw r3, r4, #1074 ; 0x432
1a018: 2b20 cmp r3, #32
1a01a: f340 8388 ble.w 1a72e <_dtoa_r+0x7be>
1a01e: f1c3 0340 rsb r3, r3, #64 ; 0x40
1a022: fa08 f803 lsl.w r8, r8, r3
1a026: f204 4312 addw r3, r4, #1042 ; 0x412
1a02a: fa26 f303 lsr.w r3, r6, r3
1a02e: ea48 0003 orr.w r0, r8, r3
1a032: f7fc fa0f bl 16454 <__aeabi_ui2d>
1a036: 2301 movs r3, #1
1a038: 3c01 subs r4, #1
1a03a: f1a1 71f8 sub.w r1, r1, #32505856 ; 0x1f00000
1a03e: 9312 str r3, [sp, #72] ; 0x48
1a040: 4b51 ldr r3, [pc, #324] ; (1a188 <_dtoa_r+0x218>)
1a042: 2200 movs r2, #0
1a044: f7fc f8c8 bl 161d8 <__aeabi_dsub>
1a048: a347 add r3, pc, #284 ; (adr r3, 1a168 <_dtoa_r+0x1f8>)
1a04a: e9d3 2300 ldrd r2, r3, [r3]
1a04e: f7fc fa7b bl 16548 <__aeabi_dmul>
1a052: a347 add r3, pc, #284 ; (adr r3, 1a170 <_dtoa_r+0x200>)
1a054: e9d3 2300 ldrd r2, r3, [r3]
1a058: f7fc f8c0 bl 161dc <__adddf3>
1a05c: 4606 mov r6, r0
1a05e: 4620 mov r0, r4
1a060: 460f mov r7, r1
1a062: f7fc fa07 bl 16474 <__aeabi_i2d>
1a066: a344 add r3, pc, #272 ; (adr r3, 1a178 <_dtoa_r+0x208>)
1a068: e9d3 2300 ldrd r2, r3, [r3]
1a06c: f7fc fa6c bl 16548 <__aeabi_dmul>
1a070: 4602 mov r2, r0
1a072: 460b mov r3, r1
1a074: 4630 mov r0, r6
1a076: 4639 mov r1, r7
1a078: f7fc f8b0 bl 161dc <__adddf3>
1a07c: 4606 mov r6, r0
1a07e: 460f mov r7, r1
1a080: f003 fe30 bl 1dce4 <__aeabi_d2iz>
1a084: 2200 movs r2, #0
1a086: 4680 mov r8, r0
1a088: 9006 str r0, [sp, #24]
1a08a: 2300 movs r3, #0
1a08c: 4630 mov r0, r6
1a08e: 4639 mov r1, r7
1a090: f003 fdea bl 1dc68 <__aeabi_dcmplt>
1a094: 2800 cmp r0, #0
1a096: f040 8326 bne.w 1a6e6 <_dtoa_r+0x776>
1a09a: 1b2d subs r5, r5, r4
1a09c: 9c06 ldr r4, [sp, #24]
1a09e: 1e6b subs r3, r5, #1
1a0a0: 2c16 cmp r4, #22
1a0a2: 9308 str r3, [sp, #32]
1a0a4: f200 8313 bhi.w 1a6ce <_dtoa_r+0x75e>
1a0a8: 4b38 ldr r3, [pc, #224] ; (1a18c <_dtoa_r+0x21c>)
1a0aa: eb03 03c4 add.w r3, r3, r4, lsl #3
1a0ae: e9d3 2300 ldrd r2, r3, [r3]
1a0b2: e9dd 010a ldrd r0, r1, [sp, #40] ; 0x28
1a0b6: f003 fdd7 bl 1dc68 <__aeabi_dcmplt>
1a0ba: 2800 cmp r0, #0
1a0bc: d06c beq.n 1a198 <_dtoa_r+0x228>
1a0be: 1e63 subs r3, r4, #1
1a0c0: 9306 str r3, [sp, #24]
1a0c2: 2300 movs r3, #0
1a0c4: 930f str r3, [sp, #60] ; 0x3c
1a0c6: 1e6b subs r3, r5, #1
1a0c8: 2b00 cmp r3, #0
1a0ca: f2c0 8306 blt.w 1a6da <_dtoa_r+0x76a>
1a0ce: 2300 movs r3, #0
1a0d0: 930c str r3, [sp, #48] ; 0x30
1a0d2: 9b06 ldr r3, [sp, #24]
1a0d4: 2b00 cmp r3, #0
1a0d6: da65 bge.n 1a1a4 <_dtoa_r+0x234>
1a0d8: 9b06 ldr r3, [sp, #24]
1a0da: 9a0c ldr r2, [sp, #48] ; 0x30
1a0dc: 930d str r3, [sp, #52] ; 0x34
1a0de: 1ad2 subs r2, r2, r3
1a0e0: f1c3 0900 rsb r9, r3, #0
1a0e4: 2300 movs r3, #0
1a0e6: 9306 str r3, [sp, #24]
1a0e8: 9b28 ldr r3, [sp, #160] ; 0xa0
1a0ea: 920c str r2, [sp, #48] ; 0x30
1a0ec: 2b09 cmp r3, #9
1a0ee: d863 bhi.n 1a1b8 <_dtoa_r+0x248>
1a0f0: 2b05 cmp r3, #5
1a0f2: f340 831a ble.w 1a72a <_dtoa_r+0x7ba>
1a0f6: 3b04 subs r3, #4
1a0f8: 9328 str r3, [sp, #160] ; 0xa0
1a0fa: 2400 movs r4, #0
1a0fc: 9b28 ldr r3, [sp, #160] ; 0xa0
1a0fe: 3b02 subs r3, #2
1a100: 2b03 cmp r3, #3
1a102: f200 865a bhi.w 1adba <_dtoa_r+0xe4a>
1a106: e8df f013 tbh [pc, r3, lsl #1]
1a10a: 041e .short 0x041e
1a10c: 0412041b .word 0x0412041b
1a110: 03f3 .short 0x03f3
1a112: 9a2a ldr r2, [sp, #168] ; 0xa8
1a114: f3c8 0813 ubfx r8, r8, #0, #20
1a118: f242 730f movw r3, #9999 ; 0x270f
1a11c: ea58 0806 orrs.w r8, r8, r6
1a120: 6013 str r3, [r2, #0]
1a122: d11a bne.n 1a15a <_dtoa_r+0x1ea>
1a124: 9b2c ldr r3, [sp, #176] ; 0xb0
1a126: 2b00 cmp r3, #0
1a128: f000 8657 beq.w 1adda <_dtoa_r+0xe6a>
1a12c: 4b18 ldr r3, [pc, #96] ; (1a190 <_dtoa_r+0x220>)
1a12e: 9303 str r3, [sp, #12]
1a130: 3308 adds r3, #8
1a132: 9a2c ldr r2, [sp, #176] ; 0xb0
1a134: 9803 ldr r0, [sp, #12]
1a136: 6013 str r3, [r2, #0]
1a138: b01f add sp, #124 ; 0x7c
1a13a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1a13e: e9dd 120a ldrd r1, r2, [sp, #40] ; 0x28
1a142: f3c2 0313 ubfx r3, r2, #0, #20
1a146: 4608 mov r0, r1
1a148: f043 517f orr.w r1, r3, #1069547520 ; 0x3fc00000
1a14c: 9512 str r5, [sp, #72] ; 0x48
1a14e: f2a4 34ff subw r4, r4, #1023 ; 0x3ff
1a152: 9d1c ldr r5, [sp, #112] ; 0x70
1a154: f441 1140 orr.w r1, r1, #3145728 ; 0x300000
1a158: e772 b.n 1a040 <_dtoa_r+0xd0>
1a15a: 9b2c ldr r3, [sp, #176] ; 0xb0
1a15c: 2b00 cmp r3, #0
1a15e: f040 83b5 bne.w 1a8cc <_dtoa_r+0x95c>
1a162: 4b0c ldr r3, [pc, #48] ; (1a194 <_dtoa_r+0x224>)
1a164: 9303 str r3, [sp, #12]
1a166: e740 b.n 19fea <_dtoa_r+0x7a>
1a168: 636f4361 .word 0x636f4361
1a16c: 3fd287a7 .word 0x3fd287a7
1a170: 8b60c8b3 .word 0x8b60c8b3
1a174: 3fc68a28 .word 0x3fc68a28
1a178: 509f79fb .word 0x509f79fb
1a17c: 3fd34413 .word 0x3fd34413
1a180: 7ff00000 .word 0x7ff00000
1a184: 0002c181 .word 0x0002c181
1a188: 3ff80000 .word 0x3ff80000
1a18c: 0002c328 .word 0x0002c328
1a190: 0002c1f4 .word 0x0002c1f4
1a194: 0002c200 .word 0x0002c200
1a198: 1e6b subs r3, r5, #1
1a19a: 2b00 cmp r3, #0
1a19c: f2c0 847a blt.w 1aa94 <_dtoa_r+0xb24>
1a1a0: 900f str r0, [sp, #60] ; 0x3c
1a1a2: 900c str r0, [sp, #48] ; 0x30
1a1a4: 9b08 ldr r3, [sp, #32]
1a1a6: 9a06 ldr r2, [sp, #24]
1a1a8: 920d str r2, [sp, #52] ; 0x34
1a1aa: 4413 add r3, r2
1a1ac: 9308 str r3, [sp, #32]
1a1ae: 9b28 ldr r3, [sp, #160] ; 0xa0
1a1b0: 2b09 cmp r3, #9
1a1b2: f04f 0900 mov.w r9, #0
1a1b6: d99b bls.n 1a0f0 <_dtoa_r+0x180>
1a1b8: 2300 movs r3, #0
1a1ba: e9cd 3328 strd r3, r3, [sp, #160] ; 0xa0
1a1be: 2401 movs r4, #1
1a1c0: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
1a1c4: 940e str r4, [sp, #56] ; 0x38
1a1c6: 9309 str r3, [sp, #36] ; 0x24
1a1c8: 9b09 ldr r3, [sp, #36] ; 0x24
1a1ca: 9313 str r3, [sp, #76] ; 0x4c
1a1cc: 2100 movs r1, #0
1a1ce: f8ca 1044 str.w r1, [sl, #68] ; 0x44
1a1d2: 4650 mov r0, sl
1a1d4: f001 fc28 bl 1ba28 <_Balloc>
1a1d8: 9003 str r0, [sp, #12]
1a1da: 2800 cmp r0, #0
1a1dc: f000 85f6 beq.w 1adcc <_dtoa_r+0xe5c>
1a1e0: 9b03 ldr r3, [sp, #12]
1a1e2: f8ca 3040 str.w r3, [sl, #64] ; 0x40
1a1e6: 9b09 ldr r3, [sp, #36] ; 0x24
1a1e8: 2b0e cmp r3, #14
1a1ea: f200 80f9 bhi.w 1a3e0 <_dtoa_r+0x470>
1a1ee: 2c00 cmp r4, #0
1a1f0: f000 80f6 beq.w 1a3e0 <_dtoa_r+0x470>
1a1f4: 990d ldr r1, [sp, #52] ; 0x34
1a1f6: 2900 cmp r1, #0
1a1f8: f340 844e ble.w 1aa98 <_dtoa_r+0xb28>
1a1fc: 4bbb ldr r3, [pc, #748] ; (1a4ec <_dtoa_r+0x57c>)
1a1fe: f001 020f and.w r2, r1, #15
1a202: eb03 03c2 add.w r3, r3, r2, lsl #3
1a206: 05c8 lsls r0, r1, #23
1a208: e9d3 4500 ldrd r4, r5, [r3]
1a20c: ea4f 1621 mov.w r6, r1, asr #4
1a210: f140 83dc bpl.w 1a9cc <_dtoa_r+0xa5c>
1a214: 4bb6 ldr r3, [pc, #728] ; (1a4f0 <_dtoa_r+0x580>)
1a216: e9dd 010a ldrd r0, r1, [sp, #40] ; 0x28
1a21a: e9d3 2308 ldrd r2, r3, [r3, #32]
1a21e: f7fc fabd bl 1679c <__aeabi_ddiv>
1a222: e9cd 0110 strd r0, r1, [sp, #64] ; 0x40
1a226: f006 060f and.w r6, r6, #15
1a22a: f04f 0803 mov.w r8, #3
1a22e: b186 cbz r6, 1a252 <_dtoa_r+0x2e2>
1a230: 4faf ldr r7, [pc, #700] ; (1a4f0 <_dtoa_r+0x580>)
1a232: 07f1 lsls r1, r6, #31
1a234: d509 bpl.n 1a24a <_dtoa_r+0x2da>
1a236: 4620 mov r0, r4
1a238: 4629 mov r1, r5
1a23a: e9d7 2300 ldrd r2, r3, [r7]
1a23e: f7fc f983 bl 16548 <__aeabi_dmul>
1a242: f108 0801 add.w r8, r8, #1
1a246: 4604 mov r4, r0
1a248: 460d mov r5, r1
1a24a: 1076 asrs r6, r6, #1
1a24c: f107 0708 add.w r7, r7, #8
1a250: d1ef bne.n 1a232 <_dtoa_r+0x2c2>
1a252: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40
1a256: 4622 mov r2, r4
1a258: 462b mov r3, r5
1a25a: f7fc fa9f bl 1679c <__aeabi_ddiv>
1a25e: 4606 mov r6, r0
1a260: 460f mov r7, r1
1a262: 9b0f ldr r3, [sp, #60] ; 0x3c
1a264: b143 cbz r3, 1a278 <_dtoa_r+0x308>
1a266: 4ba3 ldr r3, [pc, #652] ; (1a4f4 <_dtoa_r+0x584>)
1a268: 2200 movs r2, #0
1a26a: 4630 mov r0, r6
1a26c: 4639 mov r1, r7
1a26e: f003 fcfb bl 1dc68 <__aeabi_dcmplt>
1a272: 2800 cmp r0, #0
1a274: f040 851d bne.w 1acb2 <_dtoa_r+0xd42>
1a278: 4640 mov r0, r8
1a27a: f7fc f8fb bl 16474 <__aeabi_i2d>
1a27e: 4632 mov r2, r6
1a280: 463b mov r3, r7
1a282: f7fc f961 bl 16548 <__aeabi_dmul>
1a286: 4b9c ldr r3, [pc, #624] ; (1a4f8 <_dtoa_r+0x588>)
1a288: 2200 movs r2, #0
1a28a: f7fb ffa7 bl 161dc <__adddf3>
1a28e: f1a1 7350 sub.w r3, r1, #54525952 ; 0x3400000
1a292: e9cd 0114 strd r0, r1, [sp, #80] ; 0x50
1a296: 9315 str r3, [sp, #84] ; 0x54
1a298: 9b09 ldr r3, [sp, #36] ; 0x24
1a29a: 2b00 cmp r3, #0
1a29c: f000 83db beq.w 1aa56 <_dtoa_r+0xae6>
1a2a0: 9b0d ldr r3, [sp, #52] ; 0x34
1a2a2: 931a str r3, [sp, #104] ; 0x68
1a2a4: 9b09 ldr r3, [sp, #36] ; 0x24
1a2a6: 9310 str r3, [sp, #64] ; 0x40
1a2a8: e9dd 3414 ldrd r3, r4, [sp, #80] ; 0x50
1a2ac: 9903 ldr r1, [sp, #12]
1a2ae: 4630 mov r0, r6
1a2b0: f101 0801 add.w r8, r1, #1
1a2b4: 4639 mov r1, r7
1a2b6: e9cd 3416 strd r3, r4, [sp, #88] ; 0x58
1a2ba: f003 fd13 bl 1dce4 <__aeabi_d2iz>
1a2be: f100 0330 add.w r3, r0, #48 ; 0x30
1a2c2: b2dc uxtb r4, r3
1a2c4: 9d10 ldr r5, [sp, #64] ; 0x40
1a2c6: 4b89 ldr r3, [pc, #548] ; (1a4ec <_dtoa_r+0x57c>)
1a2c8: 9414 str r4, [sp, #80] ; 0x50
1a2ca: eb03 03c5 add.w r3, r3, r5, lsl #3
1a2ce: e953 1202 ldrd r1, r2, [r3, #-8]
1a2d2: e9cd 1218 strd r1, r2, [sp, #96] ; 0x60
1a2d6: f7fc f8cd bl 16474 <__aeabi_i2d>
1a2da: 460b mov r3, r1
1a2dc: 4602 mov r2, r0
1a2de: 4639 mov r1, r7
1a2e0: 4630 mov r0, r6
1a2e2: f7fb ff79 bl 161d8 <__aeabi_dsub>
1a2e6: 9b0e ldr r3, [sp, #56] ; 0x38
1a2e8: 4604 mov r4, r0
1a2ea: 460d mov r5, r1
1a2ec: 2b00 cmp r3, #0
1a2ee: f000 848b beq.w 1ac08 <_dtoa_r+0xc98>
1a2f2: e9dd 2318 ldrd r2, r3, [sp, #96] ; 0x60
1a2f6: 4981 ldr r1, [pc, #516] ; (1a4fc <_dtoa_r+0x58c>)
1a2f8: 2000 movs r0, #0
1a2fa: f7fc fa4f bl 1679c <__aeabi_ddiv>
1a2fe: e9dd 2316 ldrd r2, r3, [sp, #88] ; 0x58
1a302: f7fb ff69 bl 161d8 <__aeabi_dsub>
1a306: 9f03 ldr r7, [sp, #12]
1a308: 9e14 ldr r6, [sp, #80] ; 0x50
1a30a: 703e strb r6, [r7, #0]
1a30c: 4602 mov r2, r0
1a30e: 460b mov r3, r1
1a310: e9cd 2314 strd r2, r3, [sp, #80] ; 0x50
1a314: 4622 mov r2, r4
1a316: 462b mov r3, r5
1a318: f003 fcc4 bl 1dca4 <__aeabi_dcmpgt>
1a31c: 2800 cmp r0, #0
1a31e: f040 84c0 bne.w 1aca2 <_dtoa_r+0xd32>
1a322: 2700 movs r7, #0
1a324: f8cd 906c str.w r9, [sp, #108] ; 0x6c
1a328: f8cd b058 str.w fp, [sp, #88] ; 0x58
1a32c: f8cd a060 str.w sl, [sp, #96] ; 0x60
1a330: 46b9 mov r9, r7
1a332: e9dd ab14 ldrd sl, fp, [sp, #80] ; 0x50
1a336: e02b b.n 1a390 <_dtoa_r+0x420>
1a338: 9b10 ldr r3, [sp, #64] ; 0x40
1a33a: f109 0901 add.w r9, r9, #1
1a33e: 4599 cmp r9, r3
1a340: da48 bge.n 1a3d4 <_dtoa_r+0x464>
1a342: 4b6f ldr r3, [pc, #444] ; (1a500 <_dtoa_r+0x590>)
1a344: 4650 mov r0, sl
1a346: 4659 mov r1, fp
1a348: 2200 movs r2, #0
1a34a: f7fc f8fd bl 16548 <__aeabi_dmul>
1a34e: 4b6c ldr r3, [pc, #432] ; (1a500 <_dtoa_r+0x590>)
1a350: 2200 movs r2, #0
1a352: 4682 mov sl, r0
1a354: 468b mov fp, r1
1a356: 4620 mov r0, r4
1a358: 4629 mov r1, r5
1a35a: f7fc f8f5 bl 16548 <__aeabi_dmul>
1a35e: 460f mov r7, r1
1a360: 4606 mov r6, r0
1a362: f003 fcbf bl 1dce4 <__aeabi_d2iz>
1a366: 4605 mov r5, r0
1a368: f7fc f884 bl 16474 <__aeabi_i2d>
1a36c: 4602 mov r2, r0
1a36e: 460b mov r3, r1
1a370: 4630 mov r0, r6
1a372: 4639 mov r1, r7
1a374: f7fb ff30 bl 161d8 <__aeabi_dsub>
1a378: 3530 adds r5, #48 ; 0x30
1a37a: f808 5b01 strb.w r5, [r8], #1
1a37e: 4652 mov r2, sl
1a380: 465b mov r3, fp
1a382: 4604 mov r4, r0
1a384: 460d mov r5, r1
1a386: f003 fc6f bl 1dc68 <__aeabi_dcmplt>
1a38a: 2800 cmp r0, #0
1a38c: f040 84e9 bne.w 1ad62 <_dtoa_r+0xdf2>
1a390: 4622 mov r2, r4
1a392: 462b mov r3, r5
1a394: 4957 ldr r1, [pc, #348] ; (1a4f4 <_dtoa_r+0x584>)
1a396: 2000 movs r0, #0
1a398: f7fb ff1e bl 161d8 <__aeabi_dsub>
1a39c: 4652 mov r2, sl
1a39e: 465b mov r3, fp
1a3a0: f003 fc62 bl 1dc68 <__aeabi_dcmplt>
1a3a4: 2800 cmp r0, #0
1a3a6: d0c7 beq.n 1a338 <_dtoa_r+0x3c8>
1a3a8: 9c1a ldr r4, [sp, #104] ; 0x68
1a3aa: f8dd b058 ldr.w fp, [sp, #88] ; 0x58
1a3ae: f8dd a060 ldr.w sl, [sp, #96] ; 0x60
1a3b2: 9a03 ldr r2, [sp, #12]
1a3b4: 4646 mov r6, r8
1a3b6: 3401 adds r4, #1
1a3b8: e002 b.n 1a3c0 <_dtoa_r+0x450>
1a3ba: 42b2 cmp r2, r6
1a3bc: f000 84a6 beq.w 1ad0c <_dtoa_r+0xd9c>
1a3c0: 46b0 mov r8, r6
1a3c2: f816 3d01 ldrb.w r3, [r6, #-1]!
1a3c6: 2b39 cmp r3, #57 ; 0x39
1a3c8: d0f7 beq.n 1a3ba <_dtoa_r+0x44a>
1a3ca: 3301 adds r3, #1
1a3cc: b2db uxtb r3, r3
1a3ce: 7033 strb r3, [r6, #0]
1a3d0: 9404 str r4, [sp, #16]
1a3d2: e168 b.n 1a6a6 <_dtoa_r+0x736>
1a3d4: f8dd 906c ldr.w r9, [sp, #108] ; 0x6c
1a3d8: f8dd b058 ldr.w fp, [sp, #88] ; 0x58
1a3dc: f8dd a060 ldr.w sl, [sp, #96] ; 0x60
1a3e0: 9b1d ldr r3, [sp, #116] ; 0x74
1a3e2: 2b00 cmp r3, #0
1a3e4: f2c0 8090 blt.w 1a508 <_dtoa_r+0x598>
1a3e8: 9a0d ldr r2, [sp, #52] ; 0x34
1a3ea: 2a0e cmp r2, #14
1a3ec: f300 808c bgt.w 1a508 <_dtoa_r+0x598>
1a3f0: 4b3e ldr r3, [pc, #248] ; (1a4ec <_dtoa_r+0x57c>)
1a3f2: eb03 03c2 add.w r3, r3, r2, lsl #3
1a3f6: e9d3 8900 ldrd r8, r9, [r3]
1a3fa: 9b29 ldr r3, [sp, #164] ; 0xa4
1a3fc: 2b00 cmp r3, #0
1a3fe: da1b bge.n 1a438 <_dtoa_r+0x4c8>
1a400: 9b09 ldr r3, [sp, #36] ; 0x24
1a402: 2b00 cmp r3, #0
1a404: dc18 bgt.n 1a438 <_dtoa_r+0x4c8>
1a406: f040 8341 bne.w 1aa8c <_dtoa_r+0xb1c>
1a40a: 4b3e ldr r3, [pc, #248] ; (1a504 <_dtoa_r+0x594>)
1a40c: 4649 mov r1, r9
1a40e: 2200 movs r2, #0
1a410: 4640 mov r0, r8
1a412: f7fc f899 bl 16548 <__aeabi_dmul>
1a416: 4602 mov r2, r0
1a418: 460b mov r3, r1
1a41a: e9dd 010a ldrd r0, r1, [sp, #40] ; 0x28
1a41e: f003 fc2d bl 1dc7c <__aeabi_dcmple>
1a422: f8dd 9024 ldr.w r9, [sp, #36] ; 0x24
1a426: 464c mov r4, r9
1a428: 2800 cmp r0, #0
1a42a: f000 82a3 beq.w 1a974 <_dtoa_r+0xa04>
1a42e: 9b29 ldr r3, [sp, #164] ; 0xa4
1a430: f8dd 800c ldr.w r8, [sp, #12]
1a434: 43df mvns r7, r3
1a436: e2a4 b.n 1a982 <_dtoa_r+0xa12>
1a438: e9dd 450a ldrd r4, r5, [sp, #40] ; 0x28
1a43c: 4642 mov r2, r8
1a43e: 464b mov r3, r9
1a440: 4620 mov r0, r4
1a442: 4629 mov r1, r5
1a444: f7fc f9aa bl 1679c <__aeabi_ddiv>
1a448: f003 fc4c bl 1dce4 <__aeabi_d2iz>
1a44c: 4607 mov r7, r0
1a44e: f7fc f811 bl 16474 <__aeabi_i2d>
1a452: 4642 mov r2, r8
1a454: 464b mov r3, r9
1a456: f7fc f877 bl 16548 <__aeabi_dmul>
1a45a: 9e03 ldr r6, [sp, #12]
1a45c: 460b mov r3, r1
1a45e: 4602 mov r2, r0
1a460: 4629 mov r1, r5
1a462: 4620 mov r0, r4
1a464: f7fb feb8 bl 161d8 <__aeabi_dsub>
1a468: f107 0330 add.w r3, r7, #48 ; 0x30
1a46c: f806 3b01 strb.w r3, [r6], #1
1a470: 9b09 ldr r3, [sp, #36] ; 0x24
1a472: 2b01 cmp r3, #1
1a474: f000 837d beq.w 1ab72 <_dtoa_r+0xc02>
1a478: f8cd a018 str.w sl, [sp, #24]
1a47c: 2701 movs r7, #1
1a47e: f8cd b010 str.w fp, [sp, #16]
1a482: 469a mov sl, r3
1a484: e01c b.n 1a4c0 <_dtoa_r+0x550>
1a486: 4642 mov r2, r8
1a488: 464b mov r3, r9
1a48a: 4620 mov r0, r4
1a48c: 4629 mov r1, r5
1a48e: f7fc f985 bl 1679c <__aeabi_ddiv>
1a492: f003 fc27 bl 1dce4 <__aeabi_d2iz>
1a496: 4683 mov fp, r0
1a498: f7fb ffec bl 16474 <__aeabi_i2d>
1a49c: 4642 mov r2, r8
1a49e: 464b mov r3, r9
1a4a0: f7fc f852 bl 16548 <__aeabi_dmul>
1a4a4: 3701 adds r7, #1
1a4a6: 460b mov r3, r1
1a4a8: 4602 mov r2, r0
1a4aa: 4629 mov r1, r5
1a4ac: 4620 mov r0, r4
1a4ae: f7fb fe93 bl 161d8 <__aeabi_dsub>
1a4b2: f10b 0330 add.w r3, fp, #48 ; 0x30
1a4b6: 4557 cmp r7, sl
1a4b8: f806 3b01 strb.w r3, [r6], #1
1a4bc: f000 8354 beq.w 1ab68 <_dtoa_r+0xbf8>
1a4c0: 4b0f ldr r3, [pc, #60] ; (1a500 <_dtoa_r+0x590>)
1a4c2: 2200 movs r2, #0
1a4c4: f7fc f840 bl 16548 <__aeabi_dmul>
1a4c8: 2200 movs r2, #0
1a4ca: 2300 movs r3, #0
1a4cc: 4604 mov r4, r0
1a4ce: 460d mov r5, r1
1a4d0: f003 fbc0 bl 1dc54 <__aeabi_dcmpeq>
1a4d4: 2800 cmp r0, #0
1a4d6: d0d6 beq.n 1a486 <_dtoa_r+0x516>
1a4d8: 9b0d ldr r3, [sp, #52] ; 0x34
1a4da: f8dd b010 ldr.w fp, [sp, #16]
1a4de: f8dd a018 ldr.w sl, [sp, #24]
1a4e2: 3301 adds r3, #1
1a4e4: 9304 str r3, [sp, #16]
1a4e6: 46b0 mov r8, r6
1a4e8: e0dd b.n 1a6a6 <_dtoa_r+0x736>
1a4ea: bf00 nop
1a4ec: 0002c328 .word 0x0002c328
1a4f0: 0002c300 .word 0x0002c300
1a4f4: 3ff00000 .word 0x3ff00000
1a4f8: 401c0000 .word 0x401c0000
1a4fc: 3fe00000 .word 0x3fe00000
1a500: 40240000 .word 0x40240000
1a504: 40140000 .word 0x40140000
1a508: 9a0e ldr r2, [sp, #56] ; 0x38
1a50a: 2a00 cmp r2, #0
1a50c: f000 80ff beq.w 1a70e <_dtoa_r+0x79e>
1a510: 9a28 ldr r2, [sp, #160] ; 0xa0
1a512: 2a01 cmp r2, #1
1a514: f340 8279 ble.w 1aa0a <_dtoa_r+0xa9a>
1a518: 9b09 ldr r3, [sp, #36] ; 0x24
1a51a: 1e5e subs r6, r3, #1
1a51c: 45b1 cmp r9, r6
1a51e: f280 8241 bge.w 1a9a4 <_dtoa_r+0xa34>
1a522: 9a06 ldr r2, [sp, #24]
1a524: eba6 0309 sub.w r3, r6, r9
1a528: 441a add r2, r3
1a52a: 46b1 mov r9, r6
1a52c: 9206 str r2, [sp, #24]
1a52e: 2600 movs r6, #0
1a530: 9b09 ldr r3, [sp, #36] ; 0x24
1a532: 2b00 cmp r3, #0
1a534: f2c0 8352 blt.w 1abdc <_dtoa_r+0xc6c>
1a538: 9a08 ldr r2, [sp, #32]
1a53a: 441a add r2, r3
1a53c: 9208 str r2, [sp, #32]
1a53e: 9a0c ldr r2, [sp, #48] ; 0x30
1a540: 4615 mov r5, r2
1a542: 441a add r2, r3
1a544: 920c str r2, [sp, #48] ; 0x30
1a546: 2101 movs r1, #1
1a548: 4650 mov r0, sl
1a54a: f001 fb3d bl 1bbc8 <__i2b>
1a54e: 4604 mov r4, r0
1a550: b165 cbz r5, 1a56c <_dtoa_r+0x5fc>
1a552: 9908 ldr r1, [sp, #32]
1a554: 2900 cmp r1, #0
1a556: 460b mov r3, r1
1a558: dd08 ble.n 1a56c <_dtoa_r+0x5fc>
1a55a: 9a0c ldr r2, [sp, #48] ; 0x30
1a55c: 42a9 cmp r1, r5
1a55e: bfa8 it ge
1a560: 462b movge r3, r5
1a562: 1ad2 subs r2, r2, r3
1a564: 1aed subs r5, r5, r3
1a566: 1acb subs r3, r1, r3
1a568: 920c str r2, [sp, #48] ; 0x30
1a56a: 9308 str r3, [sp, #32]
1a56c: f1b9 0f00 cmp.w r9, #0
1a570: d00a beq.n 1a588 <_dtoa_r+0x618>
1a572: 9b0e ldr r3, [sp, #56] ; 0x38
1a574: 2b00 cmp r3, #0
1a576: f000 82d3 beq.w 1ab20 <_dtoa_r+0xbb0>
1a57a: 2e00 cmp r6, #0
1a57c: f300 8215 bgt.w 1a9aa <_dtoa_r+0xa3a>
1a580: ebb9 0206 subs.w r2, r9, r6
1a584: f040 833a bne.w 1abfc <_dtoa_r+0xc8c>
1a588: 2101 movs r1, #1
1a58a: 4650 mov r0, sl
1a58c: f001 fb1c bl 1bbc8 <__i2b>
1a590: 9a06 ldr r2, [sp, #24]
1a592: 2a00 cmp r2, #0
1a594: 4681 mov r9, r0
1a596: f300 80cf bgt.w 1a738 <_dtoa_r+0x7c8>
1a59a: 9b28 ldr r3, [sp, #160] ; 0xa0
1a59c: 2b01 cmp r3, #1
1a59e: f340 819b ble.w 1a8d8 <_dtoa_r+0x968>
1a5a2: 2700 movs r7, #0
1a5a4: 9b06 ldr r3, [sp, #24]
1a5a6: 2001 movs r0, #1
1a5a8: 2b00 cmp r3, #0
1a5aa: f040 80cf bne.w 1a74c <_dtoa_r+0x7dc>
1a5ae: 9b08 ldr r3, [sp, #32]
1a5b0: 4418 add r0, r3
1a5b2: f010 001f ands.w r0, r0, #31
1a5b6: f000 818d beq.w 1a8d4 <_dtoa_r+0x964>
1a5ba: f1c0 0320 rsb r3, r0, #32
1a5be: 2b04 cmp r3, #4
1a5c0: f300 80a9 bgt.w 1a716 <_dtoa_r+0x7a6>
1a5c4: f040 8209 bne.w 1a9da <_dtoa_r+0xa6a>
1a5c8: 9b0c ldr r3, [sp, #48] ; 0x30
1a5ca: 2b00 cmp r3, #0
1a5cc: dd05 ble.n 1a5da <_dtoa_r+0x66a>
1a5ce: 4659 mov r1, fp
1a5d0: 461a mov r2, r3
1a5d2: 4650 mov r0, sl
1a5d4: f001 fc34 bl 1be40 <__lshift>
1a5d8: 4683 mov fp, r0
1a5da: 9b08 ldr r3, [sp, #32]
1a5dc: 2b00 cmp r3, #0
1a5de: dd05 ble.n 1a5ec <_dtoa_r+0x67c>
1a5e0: 4649 mov r1, r9
1a5e2: 461a mov r2, r3
1a5e4: 4650 mov r0, sl
1a5e6: f001 fc2b bl 1be40 <__lshift>
1a5ea: 4681 mov r9, r0
1a5ec: 9b0f ldr r3, [sp, #60] ; 0x3c
1a5ee: 2b00 cmp r3, #0
1a5f0: f040 8150 bne.w 1a894 <_dtoa_r+0x924>
1a5f4: 9b09 ldr r3, [sp, #36] ; 0x24
1a5f6: 2b00 cmp r3, #0
1a5f8: f340 8137 ble.w 1a86a <_dtoa_r+0x8fa>
1a5fc: 9b0e ldr r3, [sp, #56] ; 0x38
1a5fe: 2b00 cmp r3, #0
1a600: f040 80bb bne.w 1a77a <_dtoa_r+0x80a>
1a604: 9b0d ldr r3, [sp, #52] ; 0x34
1a606: 3301 adds r3, #1
1a608: 9304 str r3, [sp, #16]
1a60a: 9e03 ldr r6, [sp, #12]
1a60c: 9f09 ldr r7, [sp, #36] ; 0x24
1a60e: 2501 movs r5, #1
1a610: e007 b.n 1a622 <_dtoa_r+0x6b2>
1a612: 4659 mov r1, fp
1a614: 2300 movs r3, #0
1a616: 220a movs r2, #10
1a618: 4650 mov r0, sl
1a61a: f001 fa35 bl 1ba88 <__multadd>
1a61e: 3501 adds r5, #1
1a620: 4683 mov fp, r0
1a622: 4649 mov r1, r9
1a624: 4658 mov r0, fp
1a626: f7ff fc0f bl 19e48 <quorem>
1a62a: 42af cmp r7, r5
1a62c: f100 0330 add.w r3, r0, #48 ; 0x30
1a630: f806 3b01 strb.w r3, [r6], #1
1a634: dced bgt.n 1a612 <_dtoa_r+0x6a2>
1a636: 9a09 ldr r2, [sp, #36] ; 0x24
1a638: 2a00 cmp r2, #0
1a63a: bfc8 it gt
1a63c: 4615 movgt r5, r2
1a63e: 9a03 ldr r2, [sp, #12]
1a640: bfd8 it le
1a642: 2501 movle r5, #1
1a644: 4415 add r5, r2
1a646: 2200 movs r2, #0
1a648: 9206 str r2, [sp, #24]
1a64a: 4659 mov r1, fp
1a64c: 2201 movs r2, #1
1a64e: 4650 mov r0, sl
1a650: 9308 str r3, [sp, #32]
1a652: f001 fbf5 bl 1be40 <__lshift>
1a656: 4649 mov r1, r9
1a658: 4683 mov fp, r0
1a65a: f001 fc69 bl 1bf30 <__mcmp>
1a65e: 2800 cmp r0, #0
1a660: f340 81c8 ble.w 1a9f4 <_dtoa_r+0xa84>
1a664: f815 3c01 ldrb.w r3, [r5, #-1]
1a668: 9a03 ldr r2, [sp, #12]
1a66a: 3d01 subs r5, #1
1a66c: e004 b.n 1a678 <_dtoa_r+0x708>
1a66e: 42aa cmp r2, r5
1a670: f000 81da beq.w 1aa28 <_dtoa_r+0xab8>
1a674: f815 3d01 ldrb.w r3, [r5, #-1]!
1a678: 2b39 cmp r3, #57 ; 0x39
1a67a: f105 0801 add.w r8, r5, #1
1a67e: d0f6 beq.n 1a66e <_dtoa_r+0x6fe>
1a680: 3301 adds r3, #1
1a682: 702b strb r3, [r5, #0]
1a684: 4649 mov r1, r9
1a686: 4650 mov r0, sl
1a688: f001 f9f4 bl 1ba74 <_Bfree>
1a68c: b15c cbz r4, 1a6a6 <_dtoa_r+0x736>
1a68e: 9b06 ldr r3, [sp, #24]
1a690: b12b cbz r3, 1a69e <_dtoa_r+0x72e>
1a692: 42a3 cmp r3, r4
1a694: d003 beq.n 1a69e <_dtoa_r+0x72e>
1a696: 4619 mov r1, r3
1a698: 4650 mov r0, sl
1a69a: f001 f9eb bl 1ba74 <_Bfree>
1a69e: 4621 mov r1, r4
1a6a0: 4650 mov r0, sl
1a6a2: f001 f9e7 bl 1ba74 <_Bfree>
1a6a6: 4659 mov r1, fp
1a6a8: 4650 mov r0, sl
1a6aa: f001 f9e3 bl 1ba74 <_Bfree>
1a6ae: 2300 movs r3, #0
1a6b0: f888 3000 strb.w r3, [r8]
1a6b4: 9b2a ldr r3, [sp, #168] ; 0xa8
1a6b6: 9a04 ldr r2, [sp, #16]
1a6b8: 601a str r2, [r3, #0]
1a6ba: 9b2c ldr r3, [sp, #176] ; 0xb0
1a6bc: 2b00 cmp r3, #0
1a6be: f43f ac94 beq.w 19fea <_dtoa_r+0x7a>
1a6c2: 9803 ldr r0, [sp, #12]
1a6c4: f8c3 8000 str.w r8, [r3]
1a6c8: b01f add sp, #124 ; 0x7c
1a6ca: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1a6ce: 2301 movs r3, #1
1a6d0: 930f str r3, [sp, #60] ; 0x3c
1a6d2: 1e6b subs r3, r5, #1
1a6d4: 2b00 cmp r3, #0
1a6d6: f6bf acfa bge.w 1a0ce <_dtoa_r+0x15e>
1a6da: f1c5 0301 rsb r3, r5, #1
1a6de: 930c str r3, [sp, #48] ; 0x30
1a6e0: 2300 movs r3, #0
1a6e2: 9308 str r3, [sp, #32]
1a6e4: e4f5 b.n 1a0d2 <_dtoa_r+0x162>
1a6e6: 4640 mov r0, r8
1a6e8: f7fb fec4 bl 16474 <__aeabi_i2d>
1a6ec: 4632 mov r2, r6
1a6ee: 463b mov r3, r7
1a6f0: f003 fab0 bl 1dc54 <__aeabi_dcmpeq>
1a6f4: 2800 cmp r0, #0
1a6f6: f47f acd0 bne.w 1a09a <_dtoa_r+0x12a>
1a6fa: f108 33ff add.w r3, r8, #4294967295 ; 0xffffffff
1a6fe: 9306 str r3, [sp, #24]
1a700: e4cb b.n 1a09a <_dtoa_r+0x12a>
1a702: 4bba ldr r3, [pc, #744] ; (1a9ec <_dtoa_r+0xa7c>)
1a704: 9303 str r3, [sp, #12]
1a706: 9803 ldr r0, [sp, #12]
1a708: b01f add sp, #124 ; 0x7c
1a70a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1a70e: 9d0c ldr r5, [sp, #48] ; 0x30
1a710: 9c0e ldr r4, [sp, #56] ; 0x38
1a712: 464e mov r6, r9
1a714: e71c b.n 1a550 <_dtoa_r+0x5e0>
1a716: f1c0 001c rsb r0, r0, #28
1a71a: 9b0c ldr r3, [sp, #48] ; 0x30
1a71c: 4403 add r3, r0
1a71e: 930c str r3, [sp, #48] ; 0x30
1a720: 9b08 ldr r3, [sp, #32]
1a722: 4403 add r3, r0
1a724: 4405 add r5, r0
1a726: 9308 str r3, [sp, #32]
1a728: e74e b.n 1a5c8 <_dtoa_r+0x658>
1a72a: 2401 movs r4, #1
1a72c: e4e6 b.n 1a0fc <_dtoa_r+0x18c>
1a72e: f1c3 0320 rsb r3, r3, #32
1a732: fa06 f003 lsl.w r0, r6, r3
1a736: e47c b.n 1a032 <_dtoa_r+0xc2>
1a738: 4601 mov r1, r0
1a73a: 4650 mov r0, sl
1a73c: f001 fb20 bl 1bd80 <__pow5mult>
1a740: 9b28 ldr r3, [sp, #160] ; 0xa0
1a742: 2b01 cmp r3, #1
1a744: 4681 mov r9, r0
1a746: f340 81d3 ble.w 1aaf0 <_dtoa_r+0xb80>
1a74a: 2700 movs r7, #0
1a74c: f8d9 3010 ldr.w r3, [r9, #16]
1a750: eb09 0383 add.w r3, r9, r3, lsl #2
1a754: 6918 ldr r0, [r3, #16]
1a756: f001 f9e7 bl 1bb28 <__hi0bits>
1a75a: f1c0 0020 rsb r0, r0, #32
1a75e: e726 b.n 1a5ae <_dtoa_r+0x63e>
1a760: 4621 mov r1, r4
1a762: 2300 movs r3, #0
1a764: 220a movs r2, #10
1a766: 4650 mov r0, sl
1a768: f001 f98e bl 1ba88 <__multadd>
1a76c: 9b13 ldr r3, [sp, #76] ; 0x4c
1a76e: 2b00 cmp r3, #0
1a770: 4604 mov r4, r0
1a772: f340 830f ble.w 1ad94 <_dtoa_r+0xe24>
1a776: 960d str r6, [sp, #52] ; 0x34
1a778: 9309 str r3, [sp, #36] ; 0x24
1a77a: 2d00 cmp r5, #0
1a77c: f300 810b bgt.w 1a996 <_dtoa_r+0xa26>
1a780: 2f00 cmp r7, #0
1a782: f040 8214 bne.w 1abae <_dtoa_r+0xc3e>
1a786: 4626 mov r6, r4
1a788: 9b04 ldr r3, [sp, #16]
1a78a: 9f03 ldr r7, [sp, #12]
1a78c: 9909 ldr r1, [sp, #36] ; 0x24
1a78e: f003 0201 and.w r2, r3, #1
1a792: 1e7b subs r3, r7, #1
1a794: 4419 add r1, r3
1a796: 9b28 ldr r3, [sp, #160] ; 0xa0
1a798: 920a str r2, [sp, #40] ; 0x28
1a79a: 4313 orrs r3, r2
1a79c: 9109 str r1, [sp, #36] ; 0x24
1a79e: 930c str r3, [sp, #48] ; 0x30
1a7a0: 4649 mov r1, r9
1a7a2: 4658 mov r0, fp
1a7a4: f7ff fb50 bl 19e48 <quorem>
1a7a8: 4621 mov r1, r4
1a7aa: 9004 str r0, [sp, #16]
1a7ac: 4658 mov r0, fp
1a7ae: f001 fbbf bl 1bf30 <__mcmp>
1a7b2: 4632 mov r2, r6
1a7b4: 4680 mov r8, r0
1a7b6: 4649 mov r1, r9
1a7b8: 4650 mov r0, sl
1a7ba: f001 fbd9 bl 1bf70 <__mdiff>
1a7be: 9b04 ldr r3, [sp, #16]
1a7c0: 68c2 ldr r2, [r0, #12]
1a7c2: 4605 mov r5, r0
1a7c4: 3330 adds r3, #48 ; 0x30
1a7c6: 2a00 cmp r2, #0
1a7c8: d141 bne.n 1a84e <_dtoa_r+0x8de>
1a7ca: 4601 mov r1, r0
1a7cc: 4658 mov r0, fp
1a7ce: 9308 str r3, [sp, #32]
1a7d0: f001 fbae bl 1bf30 <__mcmp>
1a7d4: 4629 mov r1, r5
1a7d6: 9006 str r0, [sp, #24]
1a7d8: 4650 mov r0, sl
1a7da: f001 f94b bl 1ba74 <_Bfree>
1a7de: 9a06 ldr r2, [sp, #24]
1a7e0: 9b08 ldr r3, [sp, #32]
1a7e2: b91a cbnz r2, 1a7ec <_dtoa_r+0x87c>
1a7e4: 990c ldr r1, [sp, #48] ; 0x30
1a7e6: 2900 cmp r1, #0
1a7e8: f000 82c0 beq.w 1ad6c <_dtoa_r+0xdfc>
1a7ec: 1c79 adds r1, r7, #1
1a7ee: f1b8 0f00 cmp.w r8, #0
1a7f2: 460d mov r5, r1
1a7f4: f2c0 819b blt.w 1ab2e <_dtoa_r+0xbbe>
1a7f8: 9828 ldr r0, [sp, #160] ; 0xa0
1a7fa: ea48 0800 orr.w r8, r8, r0
1a7fe: 980a ldr r0, [sp, #40] ; 0x28
1a800: ea50 0808 orrs.w r8, r0, r8
1a804: f000 8193 beq.w 1ab2e <_dtoa_r+0xbbe>
1a808: 2a00 cmp r2, #0
1a80a: f300 81eb bgt.w 1abe4 <_dtoa_r+0xc74>
1a80e: 9a09 ldr r2, [sp, #36] ; 0x24
1a810: 703b strb r3, [r7, #0]
1a812: 4297 cmp r7, r2
1a814: f000 81ec beq.w 1abf0 <_dtoa_r+0xc80>
1a818: 4659 mov r1, fp
1a81a: 2300 movs r3, #0
1a81c: 220a movs r2, #10
1a81e: 4650 mov r0, sl
1a820: f001 f932 bl 1ba88 <__multadd>
1a824: 42b4 cmp r4, r6
1a826: 4683 mov fp, r0
1a828: 4621 mov r1, r4
1a82a: f04f 0300 mov.w r3, #0
1a82e: f04f 020a mov.w r2, #10
1a832: 4650 mov r0, sl
1a834: d013 beq.n 1a85e <_dtoa_r+0x8ee>
1a836: f001 f927 bl 1ba88 <__multadd>
1a83a: 4631 mov r1, r6
1a83c: 4604 mov r4, r0
1a83e: 2300 movs r3, #0
1a840: 220a movs r2, #10
1a842: 4650 mov r0, sl
1a844: f001 f920 bl 1ba88 <__multadd>
1a848: 462f mov r7, r5
1a84a: 4606 mov r6, r0
1a84c: e7a8 b.n 1a7a0 <_dtoa_r+0x830>
1a84e: 4601 mov r1, r0
1a850: 4650 mov r0, sl
1a852: 9306 str r3, [sp, #24]
1a854: f001 f90e bl 1ba74 <_Bfree>
1a858: 9b06 ldr r3, [sp, #24]
1a85a: 2201 movs r2, #1
1a85c: e7c6 b.n 1a7ec <_dtoa_r+0x87c>
1a85e: f001 f913 bl 1ba88 <__multadd>
1a862: 462f mov r7, r5
1a864: 4604 mov r4, r0
1a866: 4606 mov r6, r0
1a868: e79a b.n 1a7a0 <_dtoa_r+0x830>
1a86a: 9b28 ldr r3, [sp, #160] ; 0xa0
1a86c: 2b02 cmp r3, #2
1a86e: dc70 bgt.n 1a952 <_dtoa_r+0x9e2>
1a870: 9b0e ldr r3, [sp, #56] ; 0x38
1a872: 2b00 cmp r3, #0
1a874: d181 bne.n 1a77a <_dtoa_r+0x80a>
1a876: 9b0d ldr r3, [sp, #52] ; 0x34
1a878: 4649 mov r1, r9
1a87a: 3301 adds r3, #1
1a87c: 4658 mov r0, fp
1a87e: 9304 str r3, [sp, #16]
1a880: f7ff fae2 bl 19e48 <quorem>
1a884: 9d03 ldr r5, [sp, #12]
1a886: f100 0330 add.w r3, r0, #48 ; 0x30
1a88a: 2200 movs r2, #0
1a88c: f805 3b01 strb.w r3, [r5], #1
1a890: 9206 str r2, [sp, #24]
1a892: e6da b.n 1a64a <_dtoa_r+0x6da>
1a894: 4649 mov r1, r9
1a896: 4658 mov r0, fp
1a898: f001 fb4a bl 1bf30 <__mcmp>
1a89c: 2800 cmp r0, #0
1a89e: f6bf aea9 bge.w 1a5f4 <_dtoa_r+0x684>
1a8a2: 4659 mov r1, fp
1a8a4: 2300 movs r3, #0
1a8a6: 220a movs r2, #10
1a8a8: 4650 mov r0, sl
1a8aa: f001 f8ed bl 1ba88 <__multadd>
1a8ae: 9b0d ldr r3, [sp, #52] ; 0x34
1a8b0: 1e5e subs r6, r3, #1
1a8b2: 9b0e ldr r3, [sp, #56] ; 0x38
1a8b4: 4683 mov fp, r0
1a8b6: 2b00 cmp r3, #0
1a8b8: f47f af52 bne.w 1a760 <_dtoa_r+0x7f0>
1a8bc: 9b13 ldr r3, [sp, #76] ; 0x4c
1a8be: 2b00 cmp r3, #0
1a8c0: f340 8260 ble.w 1ad84 <_dtoa_r+0xe14>
1a8c4: 9a0d ldr r2, [sp, #52] ; 0x34
1a8c6: 9204 str r2, [sp, #16]
1a8c8: 9309 str r3, [sp, #36] ; 0x24
1a8ca: e69e b.n 1a60a <_dtoa_r+0x69a>
1a8cc: 4b48 ldr r3, [pc, #288] ; (1a9f0 <_dtoa_r+0xa80>)
1a8ce: 9303 str r3, [sp, #12]
1a8d0: 3303 adds r3, #3
1a8d2: e42e b.n 1a132 <_dtoa_r+0x1c2>
1a8d4: 201c movs r0, #28
1a8d6: e720 b.n 1a71a <_dtoa_r+0x7aa>
1a8d8: e9dd 1204 ldrd r1, r2, [sp, #16]
1a8dc: 2900 cmp r1, #0
1a8de: f47f ae60 bne.w 1a5a2 <_dtoa_r+0x632>
1a8e2: f3c2 0313 ubfx r3, r2, #0, #20
1a8e6: 2b00 cmp r3, #0
1a8e8: f000 810d beq.w 1ab06 <_dtoa_r+0xb96>
1a8ec: 9f04 ldr r7, [sp, #16]
1a8ee: e659 b.n 1a5a4 <_dtoa_r+0x634>
1a8f0: 2301 movs r3, #1
1a8f2: 930e str r3, [sp, #56] ; 0x38
1a8f4: 9b29 ldr r3, [sp, #164] ; 0xa4
1a8f6: 9a0d ldr r2, [sp, #52] ; 0x34
1a8f8: 4413 add r3, r2
1a8fa: 9313 str r3, [sp, #76] ; 0x4c
1a8fc: 3301 adds r3, #1
1a8fe: 2b01 cmp r3, #1
1a900: 461d mov r5, r3
1a902: 9309 str r3, [sp, #36] ; 0x24
1a904: bfb8 it lt
1a906: 2501 movlt r5, #1
1a908: 2100 movs r1, #0
1a90a: 2d17 cmp r5, #23
1a90c: f8ca 1044 str.w r1, [sl, #68] ; 0x44
1a910: f77f ac5f ble.w 1a1d2 <_dtoa_r+0x262>
1a914: 2201 movs r2, #1
1a916: 2304 movs r3, #4
1a918: 005b lsls r3, r3, #1
1a91a: f103 0014 add.w r0, r3, #20
1a91e: 42a8 cmp r0, r5
1a920: 4611 mov r1, r2
1a922: f102 0201 add.w r2, r2, #1
1a926: d9f7 bls.n 1a918 <_dtoa_r+0x9a8>
1a928: f8ca 1044 str.w r1, [sl, #68] ; 0x44
1a92c: e451 b.n 1a1d2 <_dtoa_r+0x262>
1a92e: 2301 movs r3, #1
1a930: 930e str r3, [sp, #56] ; 0x38
1a932: 9b29 ldr r3, [sp, #164] ; 0xa4
1a934: 2b00 cmp r3, #0
1a936: dd53 ble.n 1a9e0 <_dtoa_r+0xa70>
1a938: 9313 str r3, [sp, #76] ; 0x4c
1a93a: 9309 str r3, [sp, #36] ; 0x24
1a93c: 461d mov r5, r3
1a93e: e7e3 b.n 1a908 <_dtoa_r+0x998>
1a940: 2300 movs r3, #0
1a942: 930e str r3, [sp, #56] ; 0x38
1a944: e7d6 b.n 1a8f4 <_dtoa_r+0x984>
1a946: 2300 movs r3, #0
1a948: 930e str r3, [sp, #56] ; 0x38
1a94a: e7f2 b.n 1a932 <_dtoa_r+0x9c2>
1a94c: 9b13 ldr r3, [sp, #76] ; 0x4c
1a94e: 9309 str r3, [sp, #36] ; 0x24
1a950: 960d str r6, [sp, #52] ; 0x34
1a952: 9b09 ldr r3, [sp, #36] ; 0x24
1a954: 2b00 cmp r3, #0
1a956: f47f ad6a bne.w 1a42e <_dtoa_r+0x4be>
1a95a: 4649 mov r1, r9
1a95c: 2205 movs r2, #5
1a95e: 4650 mov r0, sl
1a960: f001 f892 bl 1ba88 <__multadd>
1a964: 4601 mov r1, r0
1a966: 4681 mov r9, r0
1a968: 4658 mov r0, fp
1a96a: f001 fae1 bl 1bf30 <__mcmp>
1a96e: 2800 cmp r0, #0
1a970: f77f ad5d ble.w 1a42e <_dtoa_r+0x4be>
1a974: f8dd 800c ldr.w r8, [sp, #12]
1a978: 9f0d ldr r7, [sp, #52] ; 0x34
1a97a: 2331 movs r3, #49 ; 0x31
1a97c: f808 3b01 strb.w r3, [r8], #1
1a980: 3701 adds r7, #1
1a982: 1c7b adds r3, r7, #1
1a984: 4649 mov r1, r9
1a986: 4650 mov r0, sl
1a988: 9304 str r3, [sp, #16]
1a98a: f001 f873 bl 1ba74 <_Bfree>
1a98e: 2c00 cmp r4, #0
1a990: f47f ae85 bne.w 1a69e <_dtoa_r+0x72e>
1a994: e687 b.n 1a6a6 <_dtoa_r+0x736>
1a996: 4621 mov r1, r4
1a998: 462a mov r2, r5
1a99a: 4650 mov r0, sl
1a99c: f001 fa50 bl 1be40 <__lshift>
1a9a0: 4604 mov r4, r0
1a9a2: e6ed b.n 1a780 <_dtoa_r+0x810>
1a9a4: eba9 0606 sub.w r6, r9, r6
1a9a8: e5c2 b.n 1a530 <_dtoa_r+0x5c0>
1a9aa: 4621 mov r1, r4
1a9ac: 4632 mov r2, r6
1a9ae: 4650 mov r0, sl
1a9b0: f001 f9e6 bl 1bd80 <__pow5mult>
1a9b4: 465a mov r2, fp
1a9b6: 4601 mov r1, r0
1a9b8: 4604 mov r4, r0
1a9ba: 4650 mov r0, sl
1a9bc: f001 f932 bl 1bc24 <__multiply>
1a9c0: 4659 mov r1, fp
1a9c2: 4683 mov fp, r0
1a9c4: 4650 mov r0, sl
1a9c6: f001 f855 bl 1ba74 <_Bfree>
1a9ca: e5d9 b.n 1a580 <_dtoa_r+0x610>
1a9cc: e9dd 230a ldrd r2, r3, [sp, #40] ; 0x28
1a9d0: f04f 0802 mov.w r8, #2
1a9d4: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40
1a9d8: e429 b.n 1a22e <_dtoa_r+0x2be>
1a9da: f1c0 003c rsb r0, r0, #60 ; 0x3c
1a9de: e69c b.n 1a71a <_dtoa_r+0x7aa>
1a9e0: 2301 movs r3, #1
1a9e2: 9329 str r3, [sp, #164] ; 0xa4
1a9e4: 9309 str r3, [sp, #36] ; 0x24
1a9e6: f7ff bbef b.w 1a1c8 <_dtoa_r+0x258>
1a9ea: bf00 nop
1a9ec: 0002c180 .word 0x0002c180
1a9f0: 0002c200 .word 0x0002c200
1a9f4: d103 bne.n 1a9fe <_dtoa_r+0xa8e>
1a9f6: 9b08 ldr r3, [sp, #32]
1a9f8: 07db lsls r3, r3, #31
1a9fa: f53f ae33 bmi.w 1a664 <_dtoa_r+0x6f4>
1a9fe: 46a8 mov r8, r5
1aa00: f815 3d01 ldrb.w r3, [r5, #-1]!
1aa04: 2b30 cmp r3, #48 ; 0x30
1aa06: d0fa beq.n 1a9fe <_dtoa_r+0xa8e>
1aa08: e63c b.n 1a684 <_dtoa_r+0x714>
1aa0a: 9a12 ldr r2, [sp, #72] ; 0x48
1aa0c: 2a00 cmp r2, #0
1aa0e: f000 814c beq.w 1acaa <_dtoa_r+0xd3a>
1aa12: f203 4333 addw r3, r3, #1075 ; 0x433
1aa16: 9a08 ldr r2, [sp, #32]
1aa18: 441a add r2, r3
1aa1a: 9208 str r2, [sp, #32]
1aa1c: 9a0c ldr r2, [sp, #48] ; 0x30
1aa1e: 4615 mov r5, r2
1aa20: 441a add r2, r3
1aa22: 920c str r2, [sp, #48] ; 0x30
1aa24: 464e mov r6, r9
1aa26: e58e b.n 1a546 <_dtoa_r+0x5d6>
1aa28: 9b04 ldr r3, [sp, #16]
1aa2a: 9a03 ldr r2, [sp, #12]
1aa2c: 3301 adds r3, #1
1aa2e: 9304 str r3, [sp, #16]
1aa30: 2331 movs r3, #49 ; 0x31
1aa32: 7013 strb r3, [r2, #0]
1aa34: e626 b.n 1a684 <_dtoa_r+0x714>
1aa36: 4640 mov r0, r8
1aa38: f7fb fd1c bl 16474 <__aeabi_i2d>
1aa3c: 4632 mov r2, r6
1aa3e: 463b mov r3, r7
1aa40: f7fb fd82 bl 16548 <__aeabi_dmul>
1aa44: 4bb8 ldr r3, [pc, #736] ; (1ad28 <_dtoa_r+0xdb8>)
1aa46: 2200 movs r2, #0
1aa48: f7fb fbc8 bl 161dc <__adddf3>
1aa4c: f1a1 7350 sub.w r3, r1, #54525952 ; 0x3400000
1aa50: e9cd 0114 strd r0, r1, [sp, #80] ; 0x50
1aa54: 9315 str r3, [sp, #84] ; 0x54
1aa56: 4bb5 ldr r3, [pc, #724] ; (1ad2c <_dtoa_r+0xdbc>)
1aa58: 4639 mov r1, r7
1aa5a: 2200 movs r2, #0
1aa5c: 4630 mov r0, r6
1aa5e: f7fb fbbb bl 161d8 <__aeabi_dsub>
1aa62: e9dd 7814 ldrd r7, r8, [sp, #80] ; 0x50
1aa66: 463a mov r2, r7
1aa68: 4643 mov r3, r8
1aa6a: 4604 mov r4, r0
1aa6c: 460d mov r5, r1
1aa6e: f003 f919 bl 1dca4 <__aeabi_dcmpgt>
1aa72: 2800 cmp r0, #0
1aa74: f040 8166 bne.w 1ad44 <_dtoa_r+0xdd4>
1aa78: 463a mov r2, r7
1aa7a: f108 4300 add.w r3, r8, #2147483648 ; 0x80000000
1aa7e: 4620 mov r0, r4
1aa80: 4629 mov r1, r5
1aa82: f003 f8f1 bl 1dc68 <__aeabi_dcmplt>
1aa86: 2800 cmp r0, #0
1aa88: f43f acaa beq.w 1a3e0 <_dtoa_r+0x470>
1aa8c: f04f 0900 mov.w r9, #0
1aa90: 464c mov r4, r9
1aa92: e4cc b.n 1a42e <_dtoa_r+0x4be>
1aa94: 900f str r0, [sp, #60] ; 0x3c
1aa96: e620 b.n 1a6da <_dtoa_r+0x76a>
1aa98: f000 8132 beq.w 1ad00 <_dtoa_r+0xd90>
1aa9c: 9a0d ldr r2, [sp, #52] ; 0x34
1aa9e: 4ba4 ldr r3, [pc, #656] ; (1ad30 <_dtoa_r+0xdc0>)
1aaa0: 4254 negs r4, r2
1aaa2: f004 020f and.w r2, r4, #15
1aaa6: eb03 03c2 add.w r3, r3, r2, lsl #3
1aaaa: e9d3 2300 ldrd r2, r3, [r3]
1aaae: e9dd 010a ldrd r0, r1, [sp, #40] ; 0x28
1aab2: f7fb fd49 bl 16548 <__aeabi_dmul>
1aab6: 1124 asrs r4, r4, #4
1aab8: 4606 mov r6, r0
1aaba: 460f mov r7, r1
1aabc: f000 8172 beq.w 1ada4 <_dtoa_r+0xe34>
1aac0: 4d9c ldr r5, [pc, #624] ; (1ad34 <_dtoa_r+0xdc4>)
1aac2: 2300 movs r3, #0
1aac4: f04f 0802 mov.w r8, #2
1aac8: 07e2 lsls r2, r4, #31
1aaca: d506 bpl.n 1aada <_dtoa_r+0xb6a>
1aacc: e9d5 2300 ldrd r2, r3, [r5]
1aad0: f7fb fd3a bl 16548 <__aeabi_dmul>
1aad4: f108 0801 add.w r8, r8, #1
1aad8: 2301 movs r3, #1
1aada: 1064 asrs r4, r4, #1
1aadc: f105 0508 add.w r5, r5, #8
1aae0: d1f2 bne.n 1aac8 <_dtoa_r+0xb58>
1aae2: 2b00 cmp r3, #0
1aae4: f43f abbd beq.w 1a262 <_dtoa_r+0x2f2>
1aae8: 4606 mov r6, r0
1aaea: 460f mov r7, r1
1aaec: f7ff bbb9 b.w 1a262 <_dtoa_r+0x2f2>
1aaf0: 9b04 ldr r3, [sp, #16]
1aaf2: 2b00 cmp r3, #0
1aaf4: f47f ae29 bne.w 1a74a <_dtoa_r+0x7da>
1aaf8: e9dd 1204 ldrd r1, r2, [sp, #16]
1aafc: f3c2 0313 ubfx r3, r2, #0, #20
1ab00: 2b00 cmp r3, #0
1ab02: f47f ae22 bne.w 1a74a <_dtoa_r+0x7da>
1ab06: 4f8c ldr r7, [pc, #560] ; (1ad38 <_dtoa_r+0xdc8>)
1ab08: 4017 ands r7, r2
1ab0a: 2f00 cmp r7, #0
1ab0c: f43f ad4a beq.w 1a5a4 <_dtoa_r+0x634>
1ab10: 9b0c ldr r3, [sp, #48] ; 0x30
1ab12: 3301 adds r3, #1
1ab14: 930c str r3, [sp, #48] ; 0x30
1ab16: 9b08 ldr r3, [sp, #32]
1ab18: 3301 adds r3, #1
1ab1a: 9308 str r3, [sp, #32]
1ab1c: 2701 movs r7, #1
1ab1e: e541 b.n 1a5a4 <_dtoa_r+0x634>
1ab20: 4659 mov r1, fp
1ab22: 464a mov r2, r9
1ab24: 4650 mov r0, sl
1ab26: f001 f92b bl 1bd80 <__pow5mult>
1ab2a: 4683 mov fp, r0
1ab2c: e52c b.n 1a588 <_dtoa_r+0x618>
1ab2e: 2a00 cmp r2, #0
1ab30: 4688 mov r8, r1
1ab32: dd12 ble.n 1ab5a <_dtoa_r+0xbea>
1ab34: 4659 mov r1, fp
1ab36: 2201 movs r2, #1
1ab38: 4650 mov r0, sl
1ab3a: 9306 str r3, [sp, #24]
1ab3c: f001 f980 bl 1be40 <__lshift>
1ab40: 4649 mov r1, r9
1ab42: 4683 mov fp, r0
1ab44: f001 f9f4 bl 1bf30 <__mcmp>
1ab48: 2800 cmp r0, #0
1ab4a: 9b06 ldr r3, [sp, #24]
1ab4c: f340 8103 ble.w 1ad56 <_dtoa_r+0xde6>
1ab50: 2b39 cmp r3, #57 ; 0x39
1ab52: f000 80e0 beq.w 1ad16 <_dtoa_r+0xda6>
1ab56: 9b04 ldr r3, [sp, #16]
1ab58: 3331 adds r3, #49 ; 0x31
1ab5a: 703b strb r3, [r7, #0]
1ab5c: 9b0d ldr r3, [sp, #52] ; 0x34
1ab5e: 9406 str r4, [sp, #24]
1ab60: 3301 adds r3, #1
1ab62: 9304 str r3, [sp, #16]
1ab64: 4634 mov r4, r6
1ab66: e58d b.n 1a684 <_dtoa_r+0x714>
1ab68: 465f mov r7, fp
1ab6a: f8dd a018 ldr.w sl, [sp, #24]
1ab6e: f8dd b010 ldr.w fp, [sp, #16]
1ab72: 9b0d ldr r3, [sp, #52] ; 0x34
1ab74: 3301 adds r3, #1
1ab76: 9304 str r3, [sp, #16]
1ab78: 4602 mov r2, r0
1ab7a: 461c mov r4, r3
1ab7c: 460b mov r3, r1
1ab7e: f7fb fb2d bl 161dc <__adddf3>
1ab82: 4602 mov r2, r0
1ab84: 460b mov r3, r1
1ab86: e9cd 2306 strd r2, r3, [sp, #24]
1ab8a: 4642 mov r2, r8
1ab8c: 464b mov r3, r9
1ab8e: f003 f889 bl 1dca4 <__aeabi_dcmpgt>
1ab92: b940 cbnz r0, 1aba6 <_dtoa_r+0xc36>
1ab94: e9dd 0106 ldrd r0, r1, [sp, #24]
1ab98: 4642 mov r2, r8
1ab9a: 464b mov r3, r9
1ab9c: f003 f85a bl 1dc54 <__aeabi_dcmpeq>
1aba0: b118 cbz r0, 1abaa <_dtoa_r+0xc3a>
1aba2: 07f9 lsls r1, r7, #31
1aba4: d501 bpl.n 1abaa <_dtoa_r+0xc3a>
1aba6: 9a03 ldr r2, [sp, #12]
1aba8: e40a b.n 1a3c0 <_dtoa_r+0x450>
1abaa: 46b0 mov r8, r6
1abac: e57b b.n 1a6a6 <_dtoa_r+0x736>
1abae: 6861 ldr r1, [r4, #4]
1abb0: 4650 mov r0, sl
1abb2: f000 ff39 bl 1ba28 <_Balloc>
1abb6: 4605 mov r5, r0
1abb8: 2800 cmp r0, #0
1abba: f000 80f7 beq.w 1adac <_dtoa_r+0xe3c>
1abbe: 6923 ldr r3, [r4, #16]
1abc0: 3302 adds r3, #2
1abc2: 009a lsls r2, r3, #2
1abc4: f104 010c add.w r1, r4, #12
1abc8: 300c adds r0, #12
1abca: f7fc f8ab bl 16d24 <memcpy>
1abce: 4629 mov r1, r5
1abd0: 2201 movs r2, #1
1abd2: 4650 mov r0, sl
1abd4: f001 f934 bl 1be40 <__lshift>
1abd8: 4606 mov r6, r0
1abda: e5d5 b.n 1a788 <_dtoa_r+0x818>
1abdc: 9b0c ldr r3, [sp, #48] ; 0x30
1abde: 9a09 ldr r2, [sp, #36] ; 0x24
1abe0: 1a9d subs r5, r3, r2
1abe2: e4b0 b.n 1a546 <_dtoa_r+0x5d6>
1abe4: 2b39 cmp r3, #57 ; 0x39
1abe6: 4688 mov r8, r1
1abe8: f000 8095 beq.w 1ad16 <_dtoa_r+0xda6>
1abec: 3301 adds r3, #1
1abee: e7b4 b.n 1ab5a <_dtoa_r+0xbea>
1abf0: 9a0d ldr r2, [sp, #52] ; 0x34
1abf2: 9406 str r4, [sp, #24]
1abf4: 3201 adds r2, #1
1abf6: 9204 str r2, [sp, #16]
1abf8: 4634 mov r4, r6
1abfa: e526 b.n 1a64a <_dtoa_r+0x6da>
1abfc: 4659 mov r1, fp
1abfe: 4650 mov r0, sl
1ac00: f001 f8be bl 1bd80 <__pow5mult>
1ac04: 4683 mov fp, r0
1ac06: e4bf b.n 1a588 <_dtoa_r+0x618>
1ac08: e9dd 2318 ldrd r2, r3, [sp, #96] ; 0x60
1ac0c: e9dd 0116 ldrd r0, r1, [sp, #88] ; 0x58
1ac10: f7fb fc9a bl 16548 <__aeabi_dmul>
1ac14: 9a03 ldr r2, [sp, #12]
1ac16: 9b14 ldr r3, [sp, #80] ; 0x50
1ac18: 7013 strb r3, [r2, #0]
1ac1a: 9b10 ldr r3, [sp, #64] ; 0x40
1ac1c: 2b01 cmp r3, #1
1ac1e: e9cd 0114 strd r0, r1, [sp, #80] ; 0x50
1ac22: f000 80b5 beq.w 1ad90 <_dtoa_r+0xe20>
1ac26: 9e10 ldr r6, [sp, #64] ; 0x40
1ac28: 9b03 ldr r3, [sp, #12]
1ac2a: 441e add r6, r3
1ac2c: 4b43 ldr r3, [pc, #268] ; (1ad3c <_dtoa_r+0xdcc>)
1ac2e: 2200 movs r2, #0
1ac30: 4620 mov r0, r4
1ac32: 4629 mov r1, r5
1ac34: f7fb fc88 bl 16548 <__aeabi_dmul>
1ac38: 460d mov r5, r1
1ac3a: 4604 mov r4, r0
1ac3c: f003 f852 bl 1dce4 <__aeabi_d2iz>
1ac40: 4607 mov r7, r0
1ac42: f7fb fc17 bl 16474 <__aeabi_i2d>
1ac46: 3730 adds r7, #48 ; 0x30
1ac48: 4602 mov r2, r0
1ac4a: 460b mov r3, r1
1ac4c: 4620 mov r0, r4
1ac4e: 4629 mov r1, r5
1ac50: f7fb fac2 bl 161d8 <__aeabi_dsub>
1ac54: f808 7b01 strb.w r7, [r8], #1
1ac58: 45b0 cmp r8, r6
1ac5a: 4604 mov r4, r0
1ac5c: 460d mov r5, r1
1ac5e: d1e5 bne.n 1ac2c <_dtoa_r+0xcbc>
1ac60: e9dd 7814 ldrd r7, r8, [sp, #80] ; 0x50
1ac64: 4b36 ldr r3, [pc, #216] ; (1ad40 <_dtoa_r+0xdd0>)
1ac66: 2200 movs r2, #0
1ac68: 4638 mov r0, r7
1ac6a: 4641 mov r1, r8
1ac6c: f7fb fab6 bl 161dc <__adddf3>
1ac70: 4622 mov r2, r4
1ac72: 462b mov r3, r5
1ac74: f002 fff8 bl 1dc68 <__aeabi_dcmplt>
1ac78: 2800 cmp r0, #0
1ac7a: d167 bne.n 1ad4c <_dtoa_r+0xddc>
1ac7c: 463a mov r2, r7
1ac7e: 4643 mov r3, r8
1ac80: 492f ldr r1, [pc, #188] ; (1ad40 <_dtoa_r+0xdd0>)
1ac82: 2000 movs r0, #0
1ac84: f7fb faa8 bl 161d8 <__aeabi_dsub>
1ac88: 4622 mov r2, r4
1ac8a: 462b mov r3, r5
1ac8c: f003 f80a bl 1dca4 <__aeabi_dcmpgt>
1ac90: 2800 cmp r0, #0
1ac92: f43f aba5 beq.w 1a3e0 <_dtoa_r+0x470>
1ac96: 46b0 mov r8, r6
1ac98: 3e01 subs r6, #1
1ac9a: f818 3c01 ldrb.w r3, [r8, #-1]
1ac9e: 2b30 cmp r3, #48 ; 0x30
1aca0: d0f9 beq.n 1ac96 <_dtoa_r+0xd26>
1aca2: 9b1a ldr r3, [sp, #104] ; 0x68
1aca4: 3301 adds r3, #1
1aca6: 9304 str r3, [sp, #16]
1aca8: e4fd b.n 1a6a6 <_dtoa_r+0x736>
1acaa: 9b1c ldr r3, [sp, #112] ; 0x70
1acac: f1c3 0336 rsb r3, r3, #54 ; 0x36
1acb0: e6b1 b.n 1aa16 <_dtoa_r+0xaa6>
1acb2: 9b09 ldr r3, [sp, #36] ; 0x24
1acb4: 2b00 cmp r3, #0
1acb6: f43f aebe beq.w 1aa36 <_dtoa_r+0xac6>
1acba: 9b13 ldr r3, [sp, #76] ; 0x4c
1acbc: 2b00 cmp r3, #0
1acbe: f77f ab8f ble.w 1a3e0 <_dtoa_r+0x470>
1acc2: 9a0d ldr r2, [sp, #52] ; 0x34
1acc4: 9310 str r3, [sp, #64] ; 0x40
1acc6: 3a01 subs r2, #1
1acc8: 4b1c ldr r3, [pc, #112] ; (1ad3c <_dtoa_r+0xdcc>)
1acca: 921a str r2, [sp, #104] ; 0x68
1accc: 4630 mov r0, r6
1acce: 2200 movs r2, #0
1acd0: 4639 mov r1, r7
1acd2: f7fb fc39 bl 16548 <__aeabi_dmul>
1acd6: 4606 mov r6, r0
1acd8: 460f mov r7, r1
1acda: f108 0001 add.w r0, r8, #1
1acde: f7fb fbc9 bl 16474 <__aeabi_i2d>
1ace2: 4632 mov r2, r6
1ace4: 463b mov r3, r7
1ace6: f7fb fc2f bl 16548 <__aeabi_dmul>
1acea: 4b0f ldr r3, [pc, #60] ; (1ad28 <_dtoa_r+0xdb8>)
1acec: 2200 movs r2, #0
1acee: f7fb fa75 bl 161dc <__adddf3>
1acf2: f1a1 7350 sub.w r3, r1, #54525952 ; 0x3400000
1acf6: e9cd 0114 strd r0, r1, [sp, #80] ; 0x50
1acfa: 9315 str r3, [sp, #84] ; 0x54
1acfc: f7ff bad4 b.w 1a2a8 <_dtoa_r+0x338>
1ad00: e9dd 670a ldrd r6, r7, [sp, #40] ; 0x28
1ad04: f04f 0802 mov.w r8, #2
1ad08: f7ff baab b.w 1a262 <_dtoa_r+0x2f2>
1ad0c: 3401 adds r4, #1
1ad0e: 2331 movs r3, #49 ; 0x31
1ad10: f7ff bb5d b.w 1a3ce <_dtoa_r+0x45e>
1ad14: 1c7d adds r5, r7, #1
1ad16: 9b0d ldr r3, [sp, #52] ; 0x34
1ad18: 9406 str r4, [sp, #24]
1ad1a: 3301 adds r3, #1
1ad1c: 9304 str r3, [sp, #16]
1ad1e: 2339 movs r3, #57 ; 0x39
1ad20: 4634 mov r4, r6
1ad22: 703b strb r3, [r7, #0]
1ad24: e4a0 b.n 1a668 <_dtoa_r+0x6f8>
1ad26: bf00 nop
1ad28: 401c0000 .word 0x401c0000
1ad2c: 40140000 .word 0x40140000
1ad30: 0002c328 .word 0x0002c328
1ad34: 0002c300 .word 0x0002c300
1ad38: 7ff00000 .word 0x7ff00000
1ad3c: 40240000 .word 0x40240000
1ad40: 3fe00000 .word 0x3fe00000
1ad44: f04f 0900 mov.w r9, #0
1ad48: 464c mov r4, r9
1ad4a: e613 b.n 1a974 <_dtoa_r+0xa04>
1ad4c: 9c1a ldr r4, [sp, #104] ; 0x68
1ad4e: 9a03 ldr r2, [sp, #12]
1ad50: 3401 adds r4, #1
1ad52: f7ff bb35 b.w 1a3c0 <_dtoa_r+0x450>
1ad56: f47f af00 bne.w 1ab5a <_dtoa_r+0xbea>
1ad5a: 07da lsls r2, r3, #31
1ad5c: f57f aefd bpl.w 1ab5a <_dtoa_r+0xbea>
1ad60: e6f6 b.n 1ab50 <_dtoa_r+0xbe0>
1ad62: f8dd b058 ldr.w fp, [sp, #88] ; 0x58
1ad66: f8dd a060 ldr.w sl, [sp, #96] ; 0x60
1ad6a: e79a b.n 1aca2 <_dtoa_r+0xd32>
1ad6c: 2b39 cmp r3, #57 ; 0x39
1ad6e: 4642 mov r2, r8
1ad70: d0d0 beq.n 1ad14 <_dtoa_r+0xda4>
1ad72: 2a00 cmp r2, #0
1ad74: bfc8 it gt
1ad76: 9b04 ldrgt r3, [sp, #16]
1ad78: 46b8 mov r8, r7
1ad7a: bfc8 it gt
1ad7c: 3331 addgt r3, #49 ; 0x31
1ad7e: f808 3b01 strb.w r3, [r8], #1
1ad82: e6eb b.n 1ab5c <_dtoa_r+0xbec>
1ad84: 9b28 ldr r3, [sp, #160] ; 0xa0
1ad86: 2b02 cmp r3, #2
1ad88: f73f ade0 bgt.w 1a94c <_dtoa_r+0x9dc>
1ad8c: 960d str r6, [sp, #52] ; 0x34
1ad8e: e572 b.n 1a876 <_dtoa_r+0x906>
1ad90: 4646 mov r6, r8
1ad92: e765 b.n 1ac60 <_dtoa_r+0xcf0>
1ad94: 9b28 ldr r3, [sp, #160] ; 0xa0
1ad96: 2b02 cmp r3, #2
1ad98: f73f add8 bgt.w 1a94c <_dtoa_r+0x9dc>
1ad9c: 9b13 ldr r3, [sp, #76] ; 0x4c
1ad9e: 960d str r6, [sp, #52] ; 0x34
1ada0: 9309 str r3, [sp, #36] ; 0x24
1ada2: e4ea b.n 1a77a <_dtoa_r+0x80a>
1ada4: f04f 0802 mov.w r8, #2
1ada8: f7ff ba5b b.w 1a262 <_dtoa_r+0x2f2>
1adac: 4b13 ldr r3, [pc, #76] ; (1adfc <_dtoa_r+0xe8c>)
1adae: 4814 ldr r0, [pc, #80] ; (1ae00 <_dtoa_r+0xe90>)
1adb0: 462a mov r2, r5
1adb2: f240 21ea movw r1, #746 ; 0x2ea
1adb6: f002 f961 bl 1d07c <__assert_func>
1adba: 2400 movs r4, #0
1adbc: f8ca 4044 str.w r4, [sl, #68] ; 0x44
1adc0: 4621 mov r1, r4
1adc2: 4650 mov r0, sl
1adc4: f000 fe30 bl 1ba28 <_Balloc>
1adc8: 9003 str r0, [sp, #12]
1adca: b950 cbnz r0, 1ade2 <_dtoa_r+0xe72>
1adcc: 4b0b ldr r3, [pc, #44] ; (1adfc <_dtoa_r+0xe8c>)
1adce: 480c ldr r0, [pc, #48] ; (1ae00 <_dtoa_r+0xe90>)
1add0: 2200 movs r2, #0
1add2: f44f 71d5 mov.w r1, #426 ; 0x1aa
1add6: f002 f951 bl 1d07c <__assert_func>
1adda: 4b0a ldr r3, [pc, #40] ; (1ae04 <_dtoa_r+0xe94>)
1addc: 9303 str r3, [sp, #12]
1adde: f7ff b904 b.w 19fea <_dtoa_r+0x7a>
1ade2: 9b03 ldr r3, [sp, #12]
1ade4: f8ca 3040 str.w r3, [sl, #64] ; 0x40
1ade8: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
1adec: 9313 str r3, [sp, #76] ; 0x4c
1adee: 9309 str r3, [sp, #36] ; 0x24
1adf0: 2301 movs r3, #1
1adf2: 9429 str r4, [sp, #164] ; 0xa4
1adf4: 930e str r3, [sp, #56] ; 0x38
1adf6: f7ff baf3 b.w 1a3e0 <_dtoa_r+0x470>
1adfa: bf00 nop
1adfc: 0002c204 .word 0x0002c204
1ae00: 0002c218 .word 0x0002c218
1ae04: 0002c1f4 .word 0x0002c1f4
0001ae08 <__sflush_r>:
1ae08: f9b1 200c ldrsh.w r2, [r1, #12]
1ae0c: b5f8 push {r3, r4, r5, r6, r7, lr}
1ae0e: 460c mov r4, r1
1ae10: 0711 lsls r1, r2, #28
1ae12: 4607 mov r7, r0
1ae14: d443 bmi.n 1ae9e <__sflush_r+0x96>
1ae16: 6863 ldr r3, [r4, #4]
1ae18: f442 6200 orr.w r2, r2, #2048 ; 0x800
1ae1c: 2b00 cmp r3, #0
1ae1e: 81a2 strh r2, [r4, #12]
1ae20: dd5a ble.n 1aed8 <__sflush_r+0xd0>
1ae22: 6aa5 ldr r5, [r4, #40] ; 0x28
1ae24: 2d00 cmp r5, #0
1ae26: d055 beq.n 1aed4 <__sflush_r+0xcc>
1ae28: 2300 movs r3, #0
1ae2a: 683e ldr r6, [r7, #0]
1ae2c: 603b str r3, [r7, #0]
1ae2e: b293 uxth r3, r2
1ae30: f412 5280 ands.w r2, r2, #4096 ; 0x1000
1ae34: 69e1 ldr r1, [r4, #28]
1ae36: d153 bne.n 1aee0 <__sflush_r+0xd8>
1ae38: 2301 movs r3, #1
1ae3a: 4638 mov r0, r7
1ae3c: 47a8 blx r5
1ae3e: 1c42 adds r2, r0, #1
1ae40: d064 beq.n 1af0c <__sflush_r+0x104>
1ae42: 89a3 ldrh r3, [r4, #12]
1ae44: 6aa5 ldr r5, [r4, #40] ; 0x28
1ae46: 69e1 ldr r1, [r4, #28]
1ae48: 075b lsls r3, r3, #29
1ae4a: d505 bpl.n 1ae58 <__sflush_r+0x50>
1ae4c: 6863 ldr r3, [r4, #4]
1ae4e: 1ac0 subs r0, r0, r3
1ae50: 6b23 ldr r3, [r4, #48] ; 0x30
1ae52: b10b cbz r3, 1ae58 <__sflush_r+0x50>
1ae54: 6be3 ldr r3, [r4, #60] ; 0x3c
1ae56: 1ac0 subs r0, r0, r3
1ae58: 4602 mov r2, r0
1ae5a: 2300 movs r3, #0
1ae5c: 4638 mov r0, r7
1ae5e: 47a8 blx r5
1ae60: 1c45 adds r5, r0, #1
1ae62: d146 bne.n 1aef2 <__sflush_r+0xea>
1ae64: 683a ldr r2, [r7, #0]
1ae66: f9b4 300c ldrsh.w r3, [r4, #12]
1ae6a: 2a00 cmp r2, #0
1ae6c: d05a beq.n 1af24 <__sflush_r+0x11c>
1ae6e: 2a1d cmp r2, #29
1ae70: d001 beq.n 1ae76 <__sflush_r+0x6e>
1ae72: 2a16 cmp r2, #22
1ae74: d139 bne.n 1aeea <__sflush_r+0xe2>
1ae76: 6922 ldr r2, [r4, #16]
1ae78: 6022 str r2, [r4, #0]
1ae7a: f423 6300 bic.w r3, r3, #2048 ; 0x800
1ae7e: 2100 movs r1, #0
1ae80: 6061 str r1, [r4, #4]
1ae82: 81a3 strh r3, [r4, #12]
1ae84: 6b21 ldr r1, [r4, #48] ; 0x30
1ae86: 603e str r6, [r7, #0]
1ae88: b321 cbz r1, 1aed4 <__sflush_r+0xcc>
1ae8a: f104 0340 add.w r3, r4, #64 ; 0x40
1ae8e: 4299 cmp r1, r3
1ae90: d002 beq.n 1ae98 <__sflush_r+0x90>
1ae92: 4638 mov r0, r7
1ae94: f000 f930 bl 1b0f8 <_free_r>
1ae98: 2000 movs r0, #0
1ae9a: 6320 str r0, [r4, #48] ; 0x30
1ae9c: bdf8 pop {r3, r4, r5, r6, r7, pc}
1ae9e: 6926 ldr r6, [r4, #16]
1aea0: b1c6 cbz r6, 1aed4 <__sflush_r+0xcc>
1aea2: b293 uxth r3, r2
1aea4: 6825 ldr r5, [r4, #0]
1aea6: 6026 str r6, [r4, #0]
1aea8: 0799 lsls r1, r3, #30
1aeaa: bf0c ite eq
1aeac: 6963 ldreq r3, [r4, #20]
1aeae: 2300 movne r3, #0
1aeb0: 1bad subs r5, r5, r6
1aeb2: 60a3 str r3, [r4, #8]
1aeb4: e00c b.n 1aed0 <__sflush_r+0xc8>
1aeb6: f8d4 c024 ldr.w ip, [r4, #36] ; 0x24
1aeba: 69e1 ldr r1, [r4, #28]
1aebc: 462b mov r3, r5
1aebe: 4632 mov r2, r6
1aec0: 4638 mov r0, r7
1aec2: 47e0 blx ip
1aec4: f1b0 0c00 subs.w ip, r0, #0
1aec8: eba5 050c sub.w r5, r5, ip
1aecc: 4466 add r6, ip
1aece: dd09 ble.n 1aee4 <__sflush_r+0xdc>
1aed0: 2d00 cmp r5, #0
1aed2: dcf0 bgt.n 1aeb6 <__sflush_r+0xae>
1aed4: 2000 movs r0, #0
1aed6: bdf8 pop {r3, r4, r5, r6, r7, pc}
1aed8: 6be3 ldr r3, [r4, #60] ; 0x3c
1aeda: 2b00 cmp r3, #0
1aedc: dca1 bgt.n 1ae22 <__sflush_r+0x1a>
1aede: e7f9 b.n 1aed4 <__sflush_r+0xcc>
1aee0: 6d20 ldr r0, [r4, #80] ; 0x50
1aee2: e7b1 b.n 1ae48 <__sflush_r+0x40>
1aee4: 89a3 ldrh r3, [r4, #12]
1aee6: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
1aeea: f043 0340 orr.w r3, r3, #64 ; 0x40
1aeee: 81a3 strh r3, [r4, #12]
1aef0: bdf8 pop {r3, r4, r5, r6, r7, pc}
1aef2: f9b4 300c ldrsh.w r3, [r4, #12]
1aef6: 6922 ldr r2, [r4, #16]
1aef8: 6022 str r2, [r4, #0]
1aefa: f423 6300 bic.w r3, r3, #2048 ; 0x800
1aefe: 2200 movs r2, #0
1af00: 6062 str r2, [r4, #4]
1af02: 04da lsls r2, r3, #19
1af04: 81a3 strh r3, [r4, #12]
1af06: d5bd bpl.n 1ae84 <__sflush_r+0x7c>
1af08: 6520 str r0, [r4, #80] ; 0x50
1af0a: e7bb b.n 1ae84 <__sflush_r+0x7c>
1af0c: 683b ldr r3, [r7, #0]
1af0e: 2b00 cmp r3, #0
1af10: d097 beq.n 1ae42 <__sflush_r+0x3a>
1af12: 2b1d cmp r3, #29
1af14: d00f beq.n 1af36 <__sflush_r+0x12e>
1af16: 2b16 cmp r3, #22
1af18: d00d beq.n 1af36 <__sflush_r+0x12e>
1af1a: 89a3 ldrh r3, [r4, #12]
1af1c: f043 0340 orr.w r3, r3, #64 ; 0x40
1af20: 81a3 strh r3, [r4, #12]
1af22: bdf8 pop {r3, r4, r5, r6, r7, pc}
1af24: f423 6300 bic.w r3, r3, #2048 ; 0x800
1af28: 6062 str r2, [r4, #4]
1af2a: 81a3 strh r3, [r4, #12]
1af2c: 6922 ldr r2, [r4, #16]
1af2e: 6022 str r2, [r4, #0]
1af30: 04db lsls r3, r3, #19
1af32: d5a7 bpl.n 1ae84 <__sflush_r+0x7c>
1af34: e7e8 b.n 1af08 <__sflush_r+0x100>
1af36: 603e str r6, [r7, #0]
1af38: e7cc b.n 1aed4 <__sflush_r+0xcc>
1af3a: bf00 nop
0001af3c <_fflush_r>:
1af3c: b538 push {r3, r4, r5, lr}
1af3e: 460d mov r5, r1
1af40: 4604 mov r4, r0
1af42: b108 cbz r0, 1af48 <_fflush_r+0xc>
1af44: 6b83 ldr r3, [r0, #56] ; 0x38
1af46: b11b cbz r3, 1af50 <_fflush_r+0x14>
1af48: f9b5 000c ldrsh.w r0, [r5, #12]
1af4c: b930 cbnz r0, 1af5c <_fflush_r+0x20>
1af4e: bd38 pop {r3, r4, r5, pc}
1af50: f000 f87c bl 1b04c <__sinit>
1af54: f9b5 000c ldrsh.w r0, [r5, #12]
1af58: 2800 cmp r0, #0
1af5a: d0f8 beq.n 1af4e <_fflush_r+0x12>
1af5c: 4629 mov r1, r5
1af5e: 4620 mov r0, r4
1af60: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr}
1af64: f7ff bf50 b.w 1ae08 <__sflush_r>
0001af68 <_cleanup_r>:
1af68: 4901 ldr r1, [pc, #4] ; (1af70 <_cleanup_r+0x8>)
1af6a: f000 b9c1 b.w 1b2f0 <_fwalk_reent>
1af6e: bf00 nop
1af70: 0001d165 .word 0x0001d165
0001af74 <__sinit.part.0>:
1af74: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
1af78: 4a2d ldr r2, [pc, #180] ; (1b030 <__sinit.part.0+0xbc>)
1af7a: 6846 ldr r6, [r0, #4]
1af7c: 63c2 str r2, [r0, #60] ; 0x3c
1af7e: 2400 movs r4, #0
1af80: 2303 movs r3, #3
1af82: e9c0 43b8 strd r4, r3, [r0, #736] ; 0x2e0
1af86: 4607 mov r7, r0
1af88: f500 723b add.w r2, r0, #748 ; 0x2ec
1af8c: 2304 movs r3, #4
1af8e: f8c0 22e8 str.w r2, [r0, #744] ; 0x2e8
1af92: 4621 mov r1, r4
1af94: e9c6 4302 strd r4, r3, [r6, #8]
1af98: 2208 movs r2, #8
1af9a: e9c6 4400 strd r4, r4, [r6]
1af9e: e9c6 4404 strd r4, r4, [r6, #16]
1afa2: 6634 str r4, [r6, #96] ; 0x60
1afa4: 61b4 str r4, [r6, #24]
1afa6: f106 0058 add.w r0, r6, #88 ; 0x58
1afaa: f7fb ffd1 bl 16f50 <memset>
1afae: f8df b084 ldr.w fp, [pc, #132] ; 1b034 <__sinit.part.0+0xc0>
1afb2: 68bd ldr r5, [r7, #8]
1afb4: f8df a080 ldr.w sl, [pc, #128] ; 1b038 <__sinit.part.0+0xc4>
1afb8: f8df 9080 ldr.w r9, [pc, #128] ; 1b03c <__sinit.part.0+0xc8>
1afbc: f8df 8080 ldr.w r8, [pc, #128] ; 1b040 <__sinit.part.0+0xcc>
1afc0: 4b20 ldr r3, [pc, #128] ; (1b044 <__sinit.part.0+0xd0>)
1afc2: f8c6 a024 str.w sl, [r6, #36] ; 0x24
1afc6: e9c6 6b07 strd r6, fp, [r6, #28]
1afca: f8c6 9028 str.w r9, [r6, #40] ; 0x28
1afce: f8c6 802c str.w r8, [r6, #44] ; 0x2c
1afd2: 2208 movs r2, #8
1afd4: 60eb str r3, [r5, #12]
1afd6: e9c5 4400 strd r4, r4, [r5]
1afda: e9c5 4404 strd r4, r4, [r5, #16]
1afde: 662c str r4, [r5, #96] ; 0x60
1afe0: 60ac str r4, [r5, #8]
1afe2: 61ac str r4, [r5, #24]
1afe4: 4621 mov r1, r4
1afe6: f105 0058 add.w r0, r5, #88 ; 0x58
1afea: f7fb ffb1 bl 16f50 <memset>
1afee: e9c5 5b07 strd r5, fp, [r5, #28]
1aff2: e9c5 a909 strd sl, r9, [r5, #36] ; 0x24
1aff6: f8c5 802c str.w r8, [r5, #44] ; 0x2c
1affa: 68fd ldr r5, [r7, #12]
1affc: 4b12 ldr r3, [pc, #72] ; (1b048 <__sinit.part.0+0xd4>)
1affe: 60eb str r3, [r5, #12]
1b000: e9c5 4400 strd r4, r4, [r5]
1b004: e9c5 4404 strd r4, r4, [r5, #16]
1b008: 662c str r4, [r5, #96] ; 0x60
1b00a: 60ac str r4, [r5, #8]
1b00c: 61ac str r4, [r5, #24]
1b00e: 4621 mov r1, r4
1b010: 2208 movs r2, #8
1b012: f105 0058 add.w r0, r5, #88 ; 0x58
1b016: f7fb ff9b bl 16f50 <memset>
1b01a: 2301 movs r3, #1
1b01c: e9c5 5b07 strd r5, fp, [r5, #28]
1b020: e9c5 980a strd r9, r8, [r5, #40] ; 0x28
1b024: f8c5 a024 str.w sl, [r5, #36] ; 0x24
1b028: 63bb str r3, [r7, #56] ; 0x38
1b02a: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
1b02e: bf00 nop
1b030: 0001af69 .word 0x0001af69
1b034: 0001c235 .word 0x0001c235
1b038: 0001c259 .word 0x0001c259
1b03c: 0001c299 .word 0x0001c299
1b040: 0001c2b9 .word 0x0001c2b9
1b044: 00010009 .word 0x00010009
1b048: 00020012 .word 0x00020012
0001b04c <__sinit>:
1b04c: 6b83 ldr r3, [r0, #56] ; 0x38
1b04e: b103 cbz r3, 1b052 <__sinit+0x6>
1b050: 4770 bx lr
1b052: f7ff bf8f b.w 1af74 <__sinit.part.0>
1b056: bf00 nop
0001b058 <_malloc_trim_r>:
1b058: b5f8 push {r3, r4, r5, r6, r7, lr}
1b05a: 4f24 ldr r7, [pc, #144] ; (1b0ec <_malloc_trim_r+0x94>)
1b05c: 460c mov r4, r1
1b05e: 4606 mov r6, r0
1b060: f000 fcde bl 1ba20 <__malloc_lock>
1b064: 68bb ldr r3, [r7, #8]
1b066: 685d ldr r5, [r3, #4]
1b068: f5c4 617e rsb r1, r4, #4064 ; 0xfe0
1b06c: 310f adds r1, #15
1b06e: f025 0503 bic.w r5, r5, #3
1b072: 194b adds r3, r1, r5
1b074: f423 637f bic.w r3, r3, #4080 ; 0xff0
1b078: f023 030f bic.w r3, r3, #15
1b07c: f5a3 5480 sub.w r4, r3, #4096 ; 0x1000
1b080: f5b4 5f80 cmp.w r4, #4096 ; 0x1000
1b084: db07 blt.n 1b096 <_malloc_trim_r+0x3e>
1b086: 2100 movs r1, #0
1b088: 4630 mov r0, r6
1b08a: f001 f87b bl 1c184 <_sbrk_r>
1b08e: 68bb ldr r3, [r7, #8]
1b090: 442b add r3, r5
1b092: 4298 cmp r0, r3
1b094: d004 beq.n 1b0a0 <_malloc_trim_r+0x48>
1b096: 4630 mov r0, r6
1b098: f000 fcc4 bl 1ba24 <__malloc_unlock>
1b09c: 2000 movs r0, #0
1b09e: bdf8 pop {r3, r4, r5, r6, r7, pc}
1b0a0: 4261 negs r1, r4
1b0a2: 4630 mov r0, r6
1b0a4: f001 f86e bl 1c184 <_sbrk_r>
1b0a8: 3001 adds r0, #1
1b0aa: d00d beq.n 1b0c8 <_malloc_trim_r+0x70>
1b0ac: 4a10 ldr r2, [pc, #64] ; (1b0f0 <_malloc_trim_r+0x98>)
1b0ae: 68bb ldr r3, [r7, #8]
1b0b0: 1b2d subs r5, r5, r4
1b0b2: f045 0501 orr.w r5, r5, #1
1b0b6: 605d str r5, [r3, #4]
1b0b8: 6813 ldr r3, [r2, #0]
1b0ba: 4630 mov r0, r6
1b0bc: 1b1b subs r3, r3, r4
1b0be: 6013 str r3, [r2, #0]
1b0c0: f000 fcb0 bl 1ba24 <__malloc_unlock>
1b0c4: 2001 movs r0, #1
1b0c6: bdf8 pop {r3, r4, r5, r6, r7, pc}
1b0c8: 2100 movs r1, #0
1b0ca: 4630 mov r0, r6
1b0cc: f001 f85a bl 1c184 <_sbrk_r>
1b0d0: 68ba ldr r2, [r7, #8]
1b0d2: 1a83 subs r3, r0, r2
1b0d4: 2b0f cmp r3, #15
1b0d6: ddde ble.n 1b096 <_malloc_trim_r+0x3e>
1b0d8: f043 0301 orr.w r3, r3, #1
1b0dc: 6053 str r3, [r2, #4]
1b0de: 4b05 ldr r3, [pc, #20] ; (1b0f4 <_malloc_trim_r+0x9c>)
1b0e0: 4903 ldr r1, [pc, #12] ; (1b0f0 <_malloc_trim_r+0x98>)
1b0e2: 681b ldr r3, [r3, #0]
1b0e4: 1ac0 subs r0, r0, r3
1b0e6: 6008 str r0, [r1, #0]
1b0e8: e7d5 b.n 1b096 <_malloc_trim_r+0x3e>
1b0ea: bf00 nop
1b0ec: 20000488 .word 0x20000488
1b0f0: 200057d0 .word 0x200057d0
1b0f4: 20000890 .word 0x20000890
0001b0f8 <_free_r>:
1b0f8: 2900 cmp r1, #0
1b0fa: d05f beq.n 1b1bc <_free_r+0xc4>
1b0fc: b5f8 push {r3, r4, r5, r6, r7, lr}
1b0fe: 460c mov r4, r1
1b100: 4606 mov r6, r0
1b102: f000 fc8d bl 1ba20 <__malloc_lock>
1b106: f854 3c04 ldr.w r3, [r4, #-4]
1b10a: 4f76 ldr r7, [pc, #472] ; (1b2e4 <_free_r+0x1ec>)
1b10c: f1a4 0508 sub.w r5, r4, #8
1b110: f023 0101 bic.w r1, r3, #1
1b114: 186a adds r2, r5, r1
1b116: f8d7 c008 ldr.w ip, [r7, #8]
1b11a: 6850 ldr r0, [r2, #4]
1b11c: 4594 cmp ip, r2
1b11e: f020 0003 bic.w r0, r0, #3
1b122: f000 8086 beq.w 1b232 <_free_r+0x13a>
1b126: 07db lsls r3, r3, #31
1b128: 6050 str r0, [r2, #4]
1b12a: eb02 0c00 add.w ip, r2, r0
1b12e: d433 bmi.n 1b198 <_free_r+0xa0>
1b130: f854 4c08 ldr.w r4, [r4, #-8]
1b134: f8dc 3004 ldr.w r3, [ip, #4]
1b138: 1b2d subs r5, r5, r4
1b13a: 4421 add r1, r4
1b13c: 68ac ldr r4, [r5, #8]
1b13e: f107 0c08 add.w ip, r7, #8
1b142: 4564 cmp r4, ip
1b144: f003 0301 and.w r3, r3, #1
1b148: d063 beq.n 1b212 <_free_r+0x11a>
1b14a: f8d5 e00c ldr.w lr, [r5, #12]
1b14e: f8c4 e00c str.w lr, [r4, #12]
1b152: f8ce 4008 str.w r4, [lr, #8]
1b156: 2b00 cmp r3, #0
1b158: f000 808f beq.w 1b27a <_free_r+0x182>
1b15c: f041 0301 orr.w r3, r1, #1
1b160: 606b str r3, [r5, #4]
1b162: 6011 str r1, [r2, #0]
1b164: f5b1 7f00 cmp.w r1, #512 ; 0x200
1b168: d231 bcs.n 1b1ce <_free_r+0xd6>
1b16a: 6878 ldr r0, [r7, #4]
1b16c: 08cb lsrs r3, r1, #3
1b16e: 2201 movs r2, #1
1b170: 0949 lsrs r1, r1, #5
1b172: 3301 adds r3, #1
1b174: 408a lsls r2, r1
1b176: 4302 orrs r2, r0
1b178: f857 1033 ldr.w r1, [r7, r3, lsl #3]
1b17c: 607a str r2, [r7, #4]
1b17e: eb07 02c3 add.w r2, r7, r3, lsl #3
1b182: 3a08 subs r2, #8
1b184: e9c5 1202 strd r1, r2, [r5, #8]
1b188: f847 5033 str.w r5, [r7, r3, lsl #3]
1b18c: 60cd str r5, [r1, #12]
1b18e: 4630 mov r0, r6
1b190: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr}
1b194: f000 bc46 b.w 1ba24 <__malloc_unlock>
1b198: f8dc 3004 ldr.w r3, [ip, #4]
1b19c: 07db lsls r3, r3, #31
1b19e: d40e bmi.n 1b1be <_free_r+0xc6>
1b1a0: 4401 add r1, r0
1b1a2: f107 0c08 add.w ip, r7, #8
1b1a6: 6893 ldr r3, [r2, #8]
1b1a8: 4563 cmp r3, ip
1b1aa: f041 0001 orr.w r0, r1, #1
1b1ae: d06c beq.n 1b28a <_free_r+0x192>
1b1b0: 68d2 ldr r2, [r2, #12]
1b1b2: 60da str r2, [r3, #12]
1b1b4: 6093 str r3, [r2, #8]
1b1b6: 6068 str r0, [r5, #4]
1b1b8: 5069 str r1, [r5, r1]
1b1ba: e7d3 b.n 1b164 <_free_r+0x6c>
1b1bc: 4770 bx lr
1b1be: f041 0301 orr.w r3, r1, #1
1b1c2: f5b1 7f00 cmp.w r1, #512 ; 0x200
1b1c6: f844 3c04 str.w r3, [r4, #-4]
1b1ca: 6011 str r1, [r2, #0]
1b1cc: d3cd bcc.n 1b16a <_free_r+0x72>
1b1ce: f5b1 6f20 cmp.w r1, #2560 ; 0xa00
1b1d2: ea4f 2351 mov.w r3, r1, lsr #9
1b1d6: d245 bcs.n 1b264 <_free_r+0x16c>
1b1d8: 098b lsrs r3, r1, #6
1b1da: f103 0039 add.w r0, r3, #57 ; 0x39
1b1de: f103 0238 add.w r2, r3, #56 ; 0x38
1b1e2: 00c3 lsls r3, r0, #3
1b1e4: 18f8 adds r0, r7, r3
1b1e6: 58fb ldr r3, [r7, r3]
1b1e8: 3808 subs r0, #8
1b1ea: 4298 cmp r0, r3
1b1ec: d054 beq.n 1b298 <_free_r+0x1a0>
1b1ee: 685a ldr r2, [r3, #4]
1b1f0: f022 0203 bic.w r2, r2, #3
1b1f4: 428a cmp r2, r1
1b1f6: d902 bls.n 1b1fe <_free_r+0x106>
1b1f8: 689b ldr r3, [r3, #8]
1b1fa: 4298 cmp r0, r3
1b1fc: d1f7 bne.n 1b1ee <_free_r+0xf6>
1b1fe: 68d8 ldr r0, [r3, #12]
1b200: e9c5 3002 strd r3, r0, [r5, #8]
1b204: 6085 str r5, [r0, #8]
1b206: 60dd str r5, [r3, #12]
1b208: 4630 mov r0, r6
1b20a: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr}
1b20e: f000 bc09 b.w 1ba24 <__malloc_unlock>
1b212: 2b00 cmp r3, #0
1b214: d161 bne.n 1b2da <_free_r+0x1e2>
1b216: e9d2 2302 ldrd r2, r3, [r2, #8]
1b21a: 4408 add r0, r1
1b21c: 60d3 str r3, [r2, #12]
1b21e: 609a str r2, [r3, #8]
1b220: f040 0301 orr.w r3, r0, #1
1b224: 606b str r3, [r5, #4]
1b226: 5028 str r0, [r5, r0]
1b228: 4630 mov r0, r6
1b22a: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr}
1b22e: f000 bbf9 b.w 1ba24 <__malloc_unlock>
1b232: 07da lsls r2, r3, #31
1b234: 4408 add r0, r1
1b236: d407 bmi.n 1b248 <_free_r+0x150>
1b238: f854 3c08 ldr.w r3, [r4, #-8]
1b23c: 1aed subs r5, r5, r3
1b23e: 4418 add r0, r3
1b240: e9d5 2302 ldrd r2, r3, [r5, #8]
1b244: 60d3 str r3, [r2, #12]
1b246: 609a str r2, [r3, #8]
1b248: f040 0301 orr.w r3, r0, #1
1b24c: 606b str r3, [r5, #4]
1b24e: 4b26 ldr r3, [pc, #152] ; (1b2e8 <_free_r+0x1f0>)
1b250: 60bd str r5, [r7, #8]
1b252: 681b ldr r3, [r3, #0]
1b254: 4283 cmp r3, r0
1b256: d89a bhi.n 1b18e <_free_r+0x96>
1b258: 4b24 ldr r3, [pc, #144] ; (1b2ec <_free_r+0x1f4>)
1b25a: 4630 mov r0, r6
1b25c: 6819 ldr r1, [r3, #0]
1b25e: f7ff fefb bl 1b058 <_malloc_trim_r>
1b262: e794 b.n 1b18e <_free_r+0x96>
1b264: 2b14 cmp r3, #20
1b266: d90a bls.n 1b27e <_free_r+0x186>
1b268: 2b54 cmp r3, #84 ; 0x54
1b26a: d81d bhi.n 1b2a8 <_free_r+0x1b0>
1b26c: 0b0b lsrs r3, r1, #12
1b26e: f103 006f add.w r0, r3, #111 ; 0x6f
1b272: f103 026e add.w r2, r3, #110 ; 0x6e
1b276: 00c3 lsls r3, r0, #3
1b278: e7b4 b.n 1b1e4 <_free_r+0xec>
1b27a: 4401 add r1, r0
1b27c: e793 b.n 1b1a6 <_free_r+0xae>
1b27e: f103 005c add.w r0, r3, #92 ; 0x5c
1b282: f103 025b add.w r2, r3, #91 ; 0x5b
1b286: 00c3 lsls r3, r0, #3
1b288: e7ac b.n 1b1e4 <_free_r+0xec>
1b28a: e9c7 5504 strd r5, r5, [r7, #16]
1b28e: e9c5 cc02 strd ip, ip, [r5, #8]
1b292: 6068 str r0, [r5, #4]
1b294: 5069 str r1, [r5, r1]
1b296: e77a b.n 1b18e <_free_r+0x96>
1b298: 6879 ldr r1, [r7, #4]
1b29a: 1092 asrs r2, r2, #2
1b29c: 2401 movs r4, #1
1b29e: fa04 f202 lsl.w r2, r4, r2
1b2a2: 430a orrs r2, r1
1b2a4: 607a str r2, [r7, #4]
1b2a6: e7ab b.n 1b200 <_free_r+0x108>
1b2a8: f5b3 7faa cmp.w r3, #340 ; 0x154
1b2ac: d806 bhi.n 1b2bc <_free_r+0x1c4>
1b2ae: 0bcb lsrs r3, r1, #15
1b2b0: f103 0078 add.w r0, r3, #120 ; 0x78
1b2b4: f103 0277 add.w r2, r3, #119 ; 0x77
1b2b8: 00c3 lsls r3, r0, #3
1b2ba: e793 b.n 1b1e4 <_free_r+0xec>
1b2bc: f240 5254 movw r2, #1364 ; 0x554
1b2c0: 4293 cmp r3, r2
1b2c2: d806 bhi.n 1b2d2 <_free_r+0x1da>
1b2c4: 0c8b lsrs r3, r1, #18
1b2c6: f103 007d add.w r0, r3, #125 ; 0x7d
1b2ca: f103 027c add.w r2, r3, #124 ; 0x7c
1b2ce: 00c3 lsls r3, r0, #3
1b2d0: e788 b.n 1b1e4 <_free_r+0xec>
1b2d2: f44f 737e mov.w r3, #1016 ; 0x3f8
1b2d6: 227e movs r2, #126 ; 0x7e
1b2d8: e784 b.n 1b1e4 <_free_r+0xec>
1b2da: f041 0301 orr.w r3, r1, #1
1b2de: 606b str r3, [r5, #4]
1b2e0: 6011 str r1, [r2, #0]
1b2e2: e754 b.n 1b18e <_free_r+0x96>
1b2e4: 20000488 .word 0x20000488
1b2e8: 20000894 .word 0x20000894
1b2ec: 20005800 .word 0x20005800
0001b2f0 <_fwalk_reent>:
1b2f0: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr}
1b2f4: 4607 mov r7, r0
1b2f6: 4688 mov r8, r1
1b2f8: f500 7638 add.w r6, r0, #736 ; 0x2e0
1b2fc: f04f 0900 mov.w r9, #0
1b300: e9d6 5401 ldrd r5, r4, [r6, #4]
1b304: 3d01 subs r5, #1
1b306: d411 bmi.n 1b32c <_fwalk_reent+0x3c>
1b308: 89a3 ldrh r3, [r4, #12]
1b30a: 2b01 cmp r3, #1
1b30c: f105 35ff add.w r5, r5, #4294967295 ; 0xffffffff
1b310: d908 bls.n 1b324 <_fwalk_reent+0x34>
1b312: f9b4 300e ldrsh.w r3, [r4, #14]
1b316: 3301 adds r3, #1
1b318: 4621 mov r1, r4
1b31a: d003 beq.n 1b324 <_fwalk_reent+0x34>
1b31c: 4638 mov r0, r7
1b31e: 47c0 blx r8
1b320: ea49 0900 orr.w r9, r9, r0
1b324: 1c6b adds r3, r5, #1
1b326: f104 0464 add.w r4, r4, #100 ; 0x64
1b32a: d1ed bne.n 1b308 <_fwalk_reent+0x18>
1b32c: 6836 ldr r6, [r6, #0]
1b32e: 2e00 cmp r6, #0
1b330: d1e6 bne.n 1b300 <_fwalk_reent+0x10>
1b332: 4648 mov r0, r9
1b334: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc}
0001b338 <_localeconv_r>:
1b338: 4800 ldr r0, [pc, #0] ; (1b33c <_localeconv_r+0x4>)
1b33a: 4770 bx lr
1b33c: 20000988 .word 0x20000988
0001b340 <__smakebuf_r>:
1b340: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
1b344: 898b ldrh r3, [r1, #12]
1b346: 460c mov r4, r1
1b348: 0799 lsls r1, r3, #30
1b34a: b096 sub sp, #88 ; 0x58
1b34c: d508 bpl.n 1b360 <__smakebuf_r+0x20>
1b34e: f104 0343 add.w r3, r4, #67 ; 0x43
1b352: 2201 movs r2, #1
1b354: e9c4 3204 strd r3, r2, [r4, #16]
1b358: 6023 str r3, [r4, #0]
1b35a: b016 add sp, #88 ; 0x58
1b35c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
1b360: f9b4 100e ldrsh.w r1, [r4, #14]
1b364: 2900 cmp r1, #0
1b366: 4606 mov r6, r0
1b368: db27 blt.n 1b3ba <__smakebuf_r+0x7a>
1b36a: 466a mov r2, sp
1b36c: f001 ffb4 bl 1d2d8 <_fstat_r>
1b370: 2800 cmp r0, #0
1b372: db21 blt.n 1b3b8 <__smakebuf_r+0x78>
1b374: 9d01 ldr r5, [sp, #4]
1b376: f405 4570 and.w r5, r5, #61440 ; 0xf000
1b37a: f5a5 5500 sub.w r5, r5, #8192 ; 0x2000
1b37e: fab5 f585 clz r5, r5
1b382: f44f 6880 mov.w r8, #1024 ; 0x400
1b386: 096d lsrs r5, r5, #5
1b388: f44f 6700 mov.w r7, #2048 ; 0x800
1b38c: 4641 mov r1, r8
1b38e: 4630 mov r0, r6
1b390: f000 f846 bl 1b420 <_malloc_r>
1b394: f9b4 300c ldrsh.w r3, [r4, #12]
1b398: b1f0 cbz r0, 1b3d8 <__smakebuf_r+0x98>
1b39a: 4a20 ldr r2, [pc, #128] ; (1b41c <__smakebuf_r+0xdc>)
1b39c: 63f2 str r2, [r6, #60] ; 0x3c
1b39e: f043 0380 orr.w r3, r3, #128 ; 0x80
1b3a2: f8c4 8014 str.w r8, [r4, #20]
1b3a6: 81a3 strh r3, [r4, #12]
1b3a8: 6020 str r0, [r4, #0]
1b3aa: 6120 str r0, [r4, #16]
1b3ac: bb35 cbnz r5, 1b3fc <__smakebuf_r+0xbc>
1b3ae: 433b orrs r3, r7
1b3b0: 81a3 strh r3, [r4, #12]
1b3b2: b016 add sp, #88 ; 0x58
1b3b4: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
1b3b8: 89a3 ldrh r3, [r4, #12]
1b3ba: f013 0580 ands.w r5, r3, #128 ; 0x80
1b3be: d019 beq.n 1b3f4 <__smakebuf_r+0xb4>
1b3c0: f04f 0840 mov.w r8, #64 ; 0x40
1b3c4: 4641 mov r1, r8
1b3c6: 4630 mov r0, r6
1b3c8: f000 f82a bl 1b420 <_malloc_r>
1b3cc: 2500 movs r5, #0
1b3ce: f9b4 300c ldrsh.w r3, [r4, #12]
1b3d2: 462f mov r7, r5
1b3d4: 2800 cmp r0, #0
1b3d6: d1e0 bne.n 1b39a <__smakebuf_r+0x5a>
1b3d8: 059a lsls r2, r3, #22
1b3da: d4be bmi.n 1b35a <__smakebuf_r+0x1a>
1b3dc: f023 0303 bic.w r3, r3, #3
1b3e0: f104 0243 add.w r2, r4, #67 ; 0x43
1b3e4: f043 0302 orr.w r3, r3, #2
1b3e8: 2101 movs r1, #1
1b3ea: e9c4 2104 strd r2, r1, [r4, #16]
1b3ee: 81a3 strh r3, [r4, #12]
1b3f0: 6022 str r2, [r4, #0]
1b3f2: e7b2 b.n 1b35a <__smakebuf_r+0x1a>
1b3f4: f44f 6880 mov.w r8, #1024 ; 0x400
1b3f8: 462f mov r7, r5
1b3fa: e7c7 b.n 1b38c <__smakebuf_r+0x4c>
1b3fc: f9b4 100e ldrsh.w r1, [r4, #14]
1b400: 4630 mov r0, r6
1b402: f002 f903 bl 1d60c <_isatty_r>
1b406: b910 cbnz r0, 1b40e <__smakebuf_r+0xce>
1b408: f9b4 300c ldrsh.w r3, [r4, #12]
1b40c: e7cf b.n 1b3ae <__smakebuf_r+0x6e>
1b40e: 89a3 ldrh r3, [r4, #12]
1b410: f023 0303 bic.w r3, r3, #3
1b414: f043 0301 orr.w r3, r3, #1
1b418: b21b sxth r3, r3
1b41a: e7c8 b.n 1b3ae <__smakebuf_r+0x6e>
1b41c: 0001af69 .word 0x0001af69
0001b420 <_malloc_r>:
1b420: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
1b424: f101 060b add.w r6, r1, #11
1b428: 2e16 cmp r6, #22
1b42a: b083 sub sp, #12
1b42c: 4605 mov r5, r0
1b42e: d824 bhi.n 1b47a <_malloc_r+0x5a>
1b430: 2910 cmp r1, #16
1b432: f200 80a3 bhi.w 1b57c <_malloc_r+0x15c>
1b436: f000 faf3 bl 1ba20 <__malloc_lock>
1b43a: 2610 movs r6, #16
1b43c: 2218 movs r2, #24
1b43e: f04f 0c02 mov.w ip, #2
1b442: 4fb0 ldr r7, [pc, #704] ; (1b704 <_malloc_r+0x2e4>)
1b444: 443a add r2, r7
1b446: f1a2 0308 sub.w r3, r2, #8
1b44a: 6854 ldr r4, [r2, #4]
1b44c: 429c cmp r4, r3
1b44e: f000 80a2 beq.w 1b596 <_malloc_r+0x176>
1b452: 6863 ldr r3, [r4, #4]
1b454: 68e2 ldr r2, [r4, #12]
1b456: 68a1 ldr r1, [r4, #8]
1b458: f023 0303 bic.w r3, r3, #3
1b45c: 4423 add r3, r4
1b45e: 60ca str r2, [r1, #12]
1b460: 6091 str r1, [r2, #8]
1b462: 685a ldr r2, [r3, #4]
1b464: f042 0201 orr.w r2, r2, #1
1b468: 4628 mov r0, r5
1b46a: 605a str r2, [r3, #4]
1b46c: 3408 adds r4, #8
1b46e: f000 fad9 bl 1ba24 <__malloc_unlock>
1b472: 4620 mov r0, r4
1b474: b003 add sp, #12
1b476: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1b47a: f036 0607 bics.w r6, r6, #7
1b47e: d47d bmi.n 1b57c <_malloc_r+0x15c>
1b480: 42b1 cmp r1, r6
1b482: d87b bhi.n 1b57c <_malloc_r+0x15c>
1b484: f000 facc bl 1ba20 <__malloc_lock>
1b488: f5b6 7ffc cmp.w r6, #504 ; 0x1f8
1b48c: f0c0 8198 bcc.w 1b7c0 <_malloc_r+0x3a0>
1b490: 0a73 lsrs r3, r6, #9
1b492: d07a beq.n 1b58a <_malloc_r+0x16a>
1b494: 2b04 cmp r3, #4
1b496: f200 8164 bhi.w 1b762 <_malloc_r+0x342>
1b49a: 09b3 lsrs r3, r6, #6
1b49c: f103 0c39 add.w ip, r3, #57 ; 0x39
1b4a0: f103 0438 add.w r4, r3, #56 ; 0x38
1b4a4: ea4f 03cc mov.w r3, ip, lsl #3
1b4a8: 4f96 ldr r7, [pc, #600] ; (1b704 <_malloc_r+0x2e4>)
1b4aa: 443b add r3, r7
1b4ac: f1a3 0008 sub.w r0, r3, #8
1b4b0: 685b ldr r3, [r3, #4]
1b4b2: 4298 cmp r0, r3
1b4b4: d106 bne.n 1b4c4 <_malloc_r+0xa4>
1b4b6: e00c b.n 1b4d2 <_malloc_r+0xb2>
1b4b8: 2900 cmp r1, #0
1b4ba: f280 8114 bge.w 1b6e6 <_malloc_r+0x2c6>
1b4be: 68db ldr r3, [r3, #12]
1b4c0: 4298 cmp r0, r3
1b4c2: d006 beq.n 1b4d2 <_malloc_r+0xb2>
1b4c4: 685a ldr r2, [r3, #4]
1b4c6: f022 0203 bic.w r2, r2, #3
1b4ca: 1b91 subs r1, r2, r6
1b4cc: 290f cmp r1, #15
1b4ce: ddf3 ble.n 1b4b8 <_malloc_r+0x98>
1b4d0: 46a4 mov ip, r4
1b4d2: 693c ldr r4, [r7, #16]
1b4d4: f8df 8230 ldr.w r8, [pc, #560] ; 1b708 <_malloc_r+0x2e8>
1b4d8: 4544 cmp r4, r8
1b4da: d068 beq.n 1b5ae <_malloc_r+0x18e>
1b4dc: 6861 ldr r1, [r4, #4]
1b4de: f021 0103 bic.w r1, r1, #3
1b4e2: 1b8b subs r3, r1, r6
1b4e4: 2b0f cmp r3, #15
1b4e6: f300 817a bgt.w 1b7de <_malloc_r+0x3be>
1b4ea: 2b00 cmp r3, #0
1b4ec: e9c7 8804 strd r8, r8, [r7, #16]
1b4f0: f280 816b bge.w 1b7ca <_malloc_r+0x3aa>
1b4f4: f5b1 7f00 cmp.w r1, #512 ; 0x200
1b4f8: f080 8112 bcs.w 1b720 <_malloc_r+0x300>
1b4fc: 08cb lsrs r3, r1, #3
1b4fe: 6878 ldr r0, [r7, #4]
1b500: 3301 adds r3, #1
1b502: 0949 lsrs r1, r1, #5
1b504: 2201 movs r2, #1
1b506: 408a lsls r2, r1
1b508: 4302 orrs r2, r0
1b50a: eb07 01c3 add.w r1, r7, r3, lsl #3
1b50e: f857 0033 ldr.w r0, [r7, r3, lsl #3]
1b512: 60a0 str r0, [r4, #8]
1b514: 3908 subs r1, #8
1b516: 60e1 str r1, [r4, #12]
1b518: 607a str r2, [r7, #4]
1b51a: f847 4033 str.w r4, [r7, r3, lsl #3]
1b51e: 60c4 str r4, [r0, #12]
1b520: ea4f 03ac mov.w r3, ip, asr #2
1b524: 2001 movs r0, #1
1b526: 4098 lsls r0, r3
1b528: 4290 cmp r0, r2
1b52a: d847 bhi.n 1b5bc <_malloc_r+0x19c>
1b52c: 4210 tst r0, r2
1b52e: d106 bne.n 1b53e <_malloc_r+0x11e>
1b530: f02c 0c03 bic.w ip, ip, #3
1b534: 0040 lsls r0, r0, #1
1b536: 4210 tst r0, r2
1b538: f10c 0c04 add.w ip, ip, #4
1b53c: d0fa beq.n 1b534 <_malloc_r+0x114>
1b53e: eb07 0acc add.w sl, r7, ip, lsl #3
1b542: 4653 mov r3, sl
1b544: 46e1 mov r9, ip
1b546: 68d9 ldr r1, [r3, #12]
1b548: e00e b.n 1b568 <_malloc_r+0x148>
1b54a: 684a ldr r2, [r1, #4]
1b54c: f022 0203 bic.w r2, r2, #3
1b550: eba2 0e06 sub.w lr, r2, r6
1b554: f1be 0f0f cmp.w lr, #15
1b558: 460c mov r4, r1
1b55a: 68c9 ldr r1, [r1, #12]
1b55c: f300 810e bgt.w 1b77c <_malloc_r+0x35c>
1b560: f1be 0f00 cmp.w lr, #0
1b564: f280 811f bge.w 1b7a6 <_malloc_r+0x386>
1b568: 428b cmp r3, r1
1b56a: d1ee bne.n 1b54a <_malloc_r+0x12a>
1b56c: f109 0901 add.w r9, r9, #1
1b570: f019 0f03 tst.w r9, #3
1b574: f103 0308 add.w r3, r3, #8
1b578: d1e5 bne.n 1b546 <_malloc_r+0x126>
1b57a: e165 b.n 1b848 <_malloc_r+0x428>
1b57c: 2400 movs r4, #0
1b57e: 230c movs r3, #12
1b580: 4620 mov r0, r4
1b582: 602b str r3, [r5, #0]
1b584: b003 add sp, #12
1b586: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1b58a: f44f 7300 mov.w r3, #512 ; 0x200
1b58e: f04f 0c40 mov.w ip, #64 ; 0x40
1b592: 243f movs r4, #63 ; 0x3f
1b594: e788 b.n 1b4a8 <_malloc_r+0x88>
1b596: 68d4 ldr r4, [r2, #12]
1b598: 42a2 cmp r2, r4
1b59a: bf08 it eq
1b59c: f10c 0c02 addeq.w ip, ip, #2
1b5a0: f47f af57 bne.w 1b452 <_malloc_r+0x32>
1b5a4: 693c ldr r4, [r7, #16]
1b5a6: f8df 8160 ldr.w r8, [pc, #352] ; 1b708 <_malloc_r+0x2e8>
1b5aa: 4544 cmp r4, r8
1b5ac: d196 bne.n 1b4dc <_malloc_r+0xbc>
1b5ae: 687a ldr r2, [r7, #4]
1b5b0: ea4f 03ac mov.w r3, ip, asr #2
1b5b4: 2001 movs r0, #1
1b5b6: 4098 lsls r0, r3
1b5b8: 4290 cmp r0, r2
1b5ba: d9b7 bls.n 1b52c <_malloc_r+0x10c>
1b5bc: 68bc ldr r4, [r7, #8]
1b5be: 6863 ldr r3, [r4, #4]
1b5c0: f023 0903 bic.w r9, r3, #3
1b5c4: 454e cmp r6, r9
1b5c6: d803 bhi.n 1b5d0 <_malloc_r+0x1b0>
1b5c8: eba9 0306 sub.w r3, r9, r6
1b5cc: 2b0f cmp r3, #15
1b5ce: dc7a bgt.n 1b6c6 <_malloc_r+0x2a6>
1b5d0: f8df b138 ldr.w fp, [pc, #312] ; 1b70c <_malloc_r+0x2ec>
1b5d4: 4b4e ldr r3, [pc, #312] ; (1b710 <_malloc_r+0x2f0>)
1b5d6: f8db 2000 ldr.w r2, [fp]
1b5da: 681b ldr r3, [r3, #0]
1b5dc: 3201 adds r2, #1
1b5de: 4433 add r3, r6
1b5e0: eb04 0a09 add.w sl, r4, r9
1b5e4: f000 8146 beq.w 1b874 <_malloc_r+0x454>
1b5e8: f503 5380 add.w r3, r3, #4096 ; 0x1000
1b5ec: 330f adds r3, #15
1b5ee: f423 687f bic.w r8, r3, #4080 ; 0xff0
1b5f2: f028 080f bic.w r8, r8, #15
1b5f6: 4641 mov r1, r8
1b5f8: 4628 mov r0, r5
1b5fa: f000 fdc3 bl 1c184 <_sbrk_r>
1b5fe: 1c41 adds r1, r0, #1
1b600: 4602 mov r2, r0
1b602: f000 8105 beq.w 1b810 <_malloc_r+0x3f0>
1b606: 4582 cmp sl, r0
1b608: f200 8100 bhi.w 1b80c <_malloc_r+0x3ec>
1b60c: 4b41 ldr r3, [pc, #260] ; (1b714 <_malloc_r+0x2f4>)
1b60e: 6819 ldr r1, [r3, #0]
1b610: 4441 add r1, r8
1b612: 6019 str r1, [r3, #0]
1b614: 4608 mov r0, r1
1b616: f000 8162 beq.w 1b8de <_malloc_r+0x4be>
1b61a: f8db 1000 ldr.w r1, [fp]
1b61e: 9301 str r3, [sp, #4]
1b620: 3101 adds r1, #1
1b622: bf1b ittet ne
1b624: eba2 010a subne.w r1, r2, sl
1b628: 1809 addne r1, r1, r0
1b62a: f8cb 2000 streq.w r2, [fp]
1b62e: 6019 strne r1, [r3, #0]
1b630: f012 0b07 ands.w fp, r2, #7
1b634: f000 812a beq.w 1b88c <_malloc_r+0x46c>
1b638: f1cb 0108 rsb r1, fp, #8
1b63c: 440a add r2, r1
1b63e: f5cb 5180 rsb r1, fp, #4096 ; 0x1000
1b642: 4490 add r8, r2
1b644: 3108 adds r1, #8
1b646: eba1 0108 sub.w r1, r1, r8
1b64a: f3c1 0a0b ubfx sl, r1, #0, #12
1b64e: 4651 mov r1, sl
1b650: 4628 mov r0, r5
1b652: 9200 str r2, [sp, #0]
1b654: f000 fd96 bl 1c184 <_sbrk_r>
1b658: 1c42 adds r2, r0, #1
1b65a: e9dd 2300 ldrd r2, r3, [sp]
1b65e: f000 8164 beq.w 1b92a <_malloc_r+0x50a>
1b662: 1a80 subs r0, r0, r2
1b664: eb00 080a add.w r8, r0, sl
1b668: 6819 ldr r1, [r3, #0]
1b66a: 60ba str r2, [r7, #8]
1b66c: f048 0001 orr.w r0, r8, #1
1b670: 4451 add r1, sl
1b672: 42bc cmp r4, r7
1b674: 6050 str r0, [r2, #4]
1b676: 6019 str r1, [r3, #0]
1b678: f000 813d beq.w 1b8f6 <_malloc_r+0x4d6>
1b67c: f1b9 0f0f cmp.w r9, #15
1b680: f240 813b bls.w 1b8fa <_malloc_r+0x4da>
1b684: 6860 ldr r0, [r4, #4]
1b686: f1a9 0c0c sub.w ip, r9, #12
1b68a: f02c 0c07 bic.w ip, ip, #7
1b68e: f000 0001 and.w r0, r0, #1
1b692: ea40 000c orr.w r0, r0, ip
1b696: 6060 str r0, [r4, #4]
1b698: f04f 0e05 mov.w lr, #5
1b69c: eb04 000c add.w r0, r4, ip
1b6a0: f1bc 0f0f cmp.w ip, #15
1b6a4: e9c0 ee01 strd lr, lr, [r0, #4]
1b6a8: f200 8147 bhi.w 1b93a <_malloc_r+0x51a>
1b6ac: 6850 ldr r0, [r2, #4]
1b6ae: 4614 mov r4, r2
1b6b0: 4b19 ldr r3, [pc, #100] ; (1b718 <_malloc_r+0x2f8>)
1b6b2: 681a ldr r2, [r3, #0]
1b6b4: 428a cmp r2, r1
1b6b6: bf38 it cc
1b6b8: 6019 strcc r1, [r3, #0]
1b6ba: 4b18 ldr r3, [pc, #96] ; (1b71c <_malloc_r+0x2fc>)
1b6bc: 681a ldr r2, [r3, #0]
1b6be: 428a cmp r2, r1
1b6c0: bf38 it cc
1b6c2: 6019 strcc r1, [r3, #0]
1b6c4: e0a6 b.n 1b814 <_malloc_r+0x3f4>
1b6c6: 19a2 adds r2, r4, r6
1b6c8: f043 0301 orr.w r3, r3, #1
1b6cc: f046 0601 orr.w r6, r6, #1
1b6d0: 6066 str r6, [r4, #4]
1b6d2: 4628 mov r0, r5
1b6d4: 60ba str r2, [r7, #8]
1b6d6: 6053 str r3, [r2, #4]
1b6d8: f000 f9a4 bl 1ba24 <__malloc_unlock>
1b6dc: 3408 adds r4, #8
1b6de: 4620 mov r0, r4
1b6e0: b003 add sp, #12
1b6e2: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1b6e6: e9d3 4102 ldrd r4, r1, [r3, #8]
1b6ea: 441a add r2, r3
1b6ec: 60e1 str r1, [r4, #12]
1b6ee: 608c str r4, [r1, #8]
1b6f0: 6851 ldr r1, [r2, #4]
1b6f2: f041 0101 orr.w r1, r1, #1
1b6f6: 4628 mov r0, r5
1b6f8: 6051 str r1, [r2, #4]
1b6fa: f103 0408 add.w r4, r3, #8
1b6fe: f000 f991 bl 1ba24 <__malloc_unlock>
1b702: e6b6 b.n 1b472 <_malloc_r+0x52>
1b704: 20000488 .word 0x20000488
1b708: 20000490 .word 0x20000490
1b70c: 20000890 .word 0x20000890
1b710: 20005800 .word 0x20005800
1b714: 200057d0 .word 0x200057d0
1b718: 200057f8 .word 0x200057f8
1b71c: 200057fc .word 0x200057fc
1b720: f5b1 6f20 cmp.w r1, #2560 ; 0xa00
1b724: ea4f 2251 mov.w r2, r1, lsr #9
1b728: d36a bcc.n 1b800 <_malloc_r+0x3e0>
1b72a: 2a14 cmp r2, #20
1b72c: f200 80bf bhi.w 1b8ae <_malloc_r+0x48e>
1b730: f102 035c add.w r3, r2, #92 ; 0x5c
1b734: 00db lsls r3, r3, #3
1b736: 325b adds r2, #91 ; 0x5b
1b738: 18f8 adds r0, r7, r3
1b73a: 58fb ldr r3, [r7, r3]
1b73c: 3808 subs r0, #8
1b73e: 4298 cmp r0, r3
1b740: f000 809b beq.w 1b87a <_malloc_r+0x45a>
1b744: 685a ldr r2, [r3, #4]
1b746: f022 0203 bic.w r2, r2, #3
1b74a: 428a cmp r2, r1
1b74c: d902 bls.n 1b754 <_malloc_r+0x334>
1b74e: 689b ldr r3, [r3, #8]
1b750: 4298 cmp r0, r3
1b752: d1f7 bne.n 1b744 <_malloc_r+0x324>
1b754: 68d8 ldr r0, [r3, #12]
1b756: 687a ldr r2, [r7, #4]
1b758: e9c4 3002 strd r3, r0, [r4, #8]
1b75c: 6084 str r4, [r0, #8]
1b75e: 60dc str r4, [r3, #12]
1b760: e6de b.n 1b520 <_malloc_r+0x100>
1b762: 2b14 cmp r3, #20
1b764: d964 bls.n 1b830 <_malloc_r+0x410>
1b766: 2b54 cmp r3, #84 ; 0x54
1b768: f200 80a9 bhi.w 1b8be <_malloc_r+0x49e>
1b76c: 0b33 lsrs r3, r6, #12
1b76e: f103 0c6f add.w ip, r3, #111 ; 0x6f
1b772: f103 046e add.w r4, r3, #110 ; 0x6e
1b776: ea4f 03cc mov.w r3, ip, lsl #3
1b77a: e695 b.n 1b4a8 <_malloc_r+0x88>
1b77c: 4628 mov r0, r5
1b77e: 68a5 ldr r5, [r4, #8]
1b780: 19a3 adds r3, r4, r6
1b782: f046 0601 orr.w r6, r6, #1
1b786: 6066 str r6, [r4, #4]
1b788: 60e9 str r1, [r5, #12]
1b78a: 608d str r5, [r1, #8]
1b78c: f04e 0101 orr.w r1, lr, #1
1b790: e9c7 3304 strd r3, r3, [r7, #16]
1b794: e9c3 8802 strd r8, r8, [r3, #8]
1b798: 6059 str r1, [r3, #4]
1b79a: f844 e002 str.w lr, [r4, r2]
1b79e: f000 f941 bl 1ba24 <__malloc_unlock>
1b7a2: 3408 adds r4, #8
1b7a4: e665 b.n 1b472 <_malloc_r+0x52>
1b7a6: 4422 add r2, r4
1b7a8: 4628 mov r0, r5
1b7aa: 6853 ldr r3, [r2, #4]
1b7ac: f043 0301 orr.w r3, r3, #1
1b7b0: 6053 str r3, [r2, #4]
1b7b2: f854 3f08 ldr.w r3, [r4, #8]!
1b7b6: 60d9 str r1, [r3, #12]
1b7b8: 608b str r3, [r1, #8]
1b7ba: f000 f933 bl 1ba24 <__malloc_unlock>
1b7be: e658 b.n 1b472 <_malloc_r+0x52>
1b7c0: ea4f 0cd6 mov.w ip, r6, lsr #3
1b7c4: f106 0208 add.w r2, r6, #8
1b7c8: e63b b.n 1b442 <_malloc_r+0x22>
1b7ca: 4421 add r1, r4
1b7cc: 4628 mov r0, r5
1b7ce: 684b ldr r3, [r1, #4]
1b7d0: f043 0301 orr.w r3, r3, #1
1b7d4: 604b str r3, [r1, #4]
1b7d6: 3408 adds r4, #8
1b7d8: f000 f924 bl 1ba24 <__malloc_unlock>
1b7dc: e649 b.n 1b472 <_malloc_r+0x52>
1b7de: 19a2 adds r2, r4, r6
1b7e0: 4628 mov r0, r5
1b7e2: f046 0601 orr.w r6, r6, #1
1b7e6: f043 0501 orr.w r5, r3, #1
1b7ea: 6066 str r6, [r4, #4]
1b7ec: e9c7 2204 strd r2, r2, [r7, #16]
1b7f0: e9c2 8802 strd r8, r8, [r2, #8]
1b7f4: 6055 str r5, [r2, #4]
1b7f6: 5063 str r3, [r4, r1]
1b7f8: f000 f914 bl 1ba24 <__malloc_unlock>
1b7fc: 3408 adds r4, #8
1b7fe: e638 b.n 1b472 <_malloc_r+0x52>
1b800: 098a lsrs r2, r1, #6
1b802: f102 0339 add.w r3, r2, #57 ; 0x39
1b806: 00db lsls r3, r3, #3
1b808: 3238 adds r2, #56 ; 0x38
1b80a: e795 b.n 1b738 <_malloc_r+0x318>
1b80c: 42bc cmp r4, r7
1b80e: d061 beq.n 1b8d4 <_malloc_r+0x4b4>
1b810: 68bc ldr r4, [r7, #8]
1b812: 6860 ldr r0, [r4, #4]
1b814: f020 0803 bic.w r8, r0, #3
1b818: 4546 cmp r6, r8
1b81a: eba8 0306 sub.w r3, r8, r6
1b81e: d802 bhi.n 1b826 <_malloc_r+0x406>
1b820: 2b0f cmp r3, #15
1b822: f73f af50 bgt.w 1b6c6 <_malloc_r+0x2a6>
1b826: 4628 mov r0, r5
1b828: f000 f8fc bl 1ba24 <__malloc_unlock>
1b82c: 2400 movs r4, #0
1b82e: e620 b.n 1b472 <_malloc_r+0x52>
1b830: f103 0c5c add.w ip, r3, #92 ; 0x5c
1b834: f103 045b add.w r4, r3, #91 ; 0x5b
1b838: ea4f 03cc mov.w r3, ip, lsl #3
1b83c: e634 b.n 1b4a8 <_malloc_r+0x88>
1b83e: f85a 3908 ldr.w r3, [sl], #-8
1b842: 4553 cmp r3, sl
1b844: f040 8098 bne.w 1b978 <_malloc_r+0x558>
1b848: f01c 0f03 tst.w ip, #3
1b84c: f10c 3cff add.w ip, ip, #4294967295 ; 0xffffffff
1b850: d1f5 bne.n 1b83e <_malloc_r+0x41e>
1b852: 687b ldr r3, [r7, #4]
1b854: ea23 0300 bic.w r3, r3, r0
1b858: 607b str r3, [r7, #4]
1b85a: 0040 lsls r0, r0, #1
1b85c: 4298 cmp r0, r3
1b85e: f63f aead bhi.w 1b5bc <_malloc_r+0x19c>
1b862: b918 cbnz r0, 1b86c <_malloc_r+0x44c>
1b864: e6aa b.n 1b5bc <_malloc_r+0x19c>
1b866: 0040 lsls r0, r0, #1
1b868: f109 0904 add.w r9, r9, #4
1b86c: 4218 tst r0, r3
1b86e: d0fa beq.n 1b866 <_malloc_r+0x446>
1b870: 46cc mov ip, r9
1b872: e664 b.n 1b53e <_malloc_r+0x11e>
1b874: f103 0810 add.w r8, r3, #16
1b878: e6bd b.n 1b5f6 <_malloc_r+0x1d6>
1b87a: 6879 ldr r1, [r7, #4]
1b87c: 1092 asrs r2, r2, #2
1b87e: f04f 0e01 mov.w lr, #1
1b882: fa0e f202 lsl.w r2, lr, r2
1b886: 430a orrs r2, r1
1b888: 607a str r2, [r7, #4]
1b88a: e765 b.n 1b758 <_malloc_r+0x338>
1b88c: eb02 0108 add.w r1, r2, r8
1b890: 4249 negs r1, r1
1b892: f3c1 0a0b ubfx sl, r1, #0, #12
1b896: 4651 mov r1, sl
1b898: 4628 mov r0, r5
1b89a: 9200 str r2, [sp, #0]
1b89c: f000 fc72 bl 1c184 <_sbrk_r>
1b8a0: 1c43 adds r3, r0, #1
1b8a2: e9dd 2300 ldrd r2, r3, [sp]
1b8a6: f47f aedc bne.w 1b662 <_malloc_r+0x242>
1b8aa: 46da mov sl, fp
1b8ac: e6dc b.n 1b668 <_malloc_r+0x248>
1b8ae: 2a54 cmp r2, #84 ; 0x54
1b8b0: d826 bhi.n 1b900 <_malloc_r+0x4e0>
1b8b2: 0b0a lsrs r2, r1, #12
1b8b4: f102 036f add.w r3, r2, #111 ; 0x6f
1b8b8: 00db lsls r3, r3, #3
1b8ba: 326e adds r2, #110 ; 0x6e
1b8bc: e73c b.n 1b738 <_malloc_r+0x318>
1b8be: f5b3 7faa cmp.w r3, #340 ; 0x154
1b8c2: d826 bhi.n 1b912 <_malloc_r+0x4f2>
1b8c4: 0bf3 lsrs r3, r6, #15
1b8c6: f103 0c78 add.w ip, r3, #120 ; 0x78
1b8ca: f103 0477 add.w r4, r3, #119 ; 0x77
1b8ce: ea4f 03cc mov.w r3, ip, lsl #3
1b8d2: e5e9 b.n 1b4a8 <_malloc_r+0x88>
1b8d4: 4b29 ldr r3, [pc, #164] ; (1b97c <_malloc_r+0x55c>)
1b8d6: 6818 ldr r0, [r3, #0]
1b8d8: 4440 add r0, r8
1b8da: 6018 str r0, [r3, #0]
1b8dc: e69d b.n 1b61a <_malloc_r+0x1fa>
1b8de: f3ca 0c0b ubfx ip, sl, #0, #12
1b8e2: f1bc 0f00 cmp.w ip, #0
1b8e6: f47f ae98 bne.w 1b61a <_malloc_r+0x1fa>
1b8ea: 68bc ldr r4, [r7, #8]
1b8ec: 44c8 add r8, r9
1b8ee: f048 0001 orr.w r0, r8, #1
1b8f2: 6060 str r0, [r4, #4]
1b8f4: e6dc b.n 1b6b0 <_malloc_r+0x290>
1b8f6: 4614 mov r4, r2
1b8f8: e6da b.n 1b6b0 <_malloc_r+0x290>
1b8fa: 2301 movs r3, #1
1b8fc: 6053 str r3, [r2, #4]
1b8fe: e792 b.n 1b826 <_malloc_r+0x406>
1b900: f5b2 7faa cmp.w r2, #340 ; 0x154
1b904: d824 bhi.n 1b950 <_malloc_r+0x530>
1b906: 0bca lsrs r2, r1, #15
1b908: f102 0378 add.w r3, r2, #120 ; 0x78
1b90c: 00db lsls r3, r3, #3
1b90e: 3277 adds r2, #119 ; 0x77
1b910: e712 b.n 1b738 <_malloc_r+0x318>
1b912: f240 5254 movw r2, #1364 ; 0x554
1b916: 4293 cmp r3, r2
1b918: d824 bhi.n 1b964 <_malloc_r+0x544>
1b91a: 0cb3 lsrs r3, r6, #18
1b91c: f103 0c7d add.w ip, r3, #125 ; 0x7d
1b920: f103 047c add.w r4, r3, #124 ; 0x7c
1b924: ea4f 03cc mov.w r3, ip, lsl #3
1b928: e5be b.n 1b4a8 <_malloc_r+0x88>
1b92a: f1ab 0b08 sub.w fp, fp, #8
1b92e: 44d8 add r8, fp
1b930: eba8 0802 sub.w r8, r8, r2
1b934: f04f 0a00 mov.w sl, #0
1b938: e696 b.n 1b668 <_malloc_r+0x248>
1b93a: f104 0108 add.w r1, r4, #8
1b93e: 4628 mov r0, r5
1b940: 9300 str r3, [sp, #0]
1b942: f7ff fbd9 bl 1b0f8 <_free_r>
1b946: 68bc ldr r4, [r7, #8]
1b948: 9b00 ldr r3, [sp, #0]
1b94a: 6860 ldr r0, [r4, #4]
1b94c: 6819 ldr r1, [r3, #0]
1b94e: e6af b.n 1b6b0 <_malloc_r+0x290>
1b950: f240 5354 movw r3, #1364 ; 0x554
1b954: 429a cmp r2, r3
1b956: d80b bhi.n 1b970 <_malloc_r+0x550>
1b958: 0c8a lsrs r2, r1, #18
1b95a: f102 037d add.w r3, r2, #125 ; 0x7d
1b95e: 00db lsls r3, r3, #3
1b960: 327c adds r2, #124 ; 0x7c
1b962: e6e9 b.n 1b738 <_malloc_r+0x318>
1b964: f44f 737e mov.w r3, #1016 ; 0x3f8
1b968: f04f 0c7f mov.w ip, #127 ; 0x7f
1b96c: 247e movs r4, #126 ; 0x7e
1b96e: e59b b.n 1b4a8 <_malloc_r+0x88>
1b970: f44f 737e mov.w r3, #1016 ; 0x3f8
1b974: 227e movs r2, #126 ; 0x7e
1b976: e6df b.n 1b738 <_malloc_r+0x318>
1b978: 687b ldr r3, [r7, #4]
1b97a: e76e b.n 1b85a <_malloc_r+0x43a>
1b97c: 200057d0 .word 0x200057d0
0001b980 <memchr>:
1b980: f001 01ff and.w r1, r1, #255 ; 0xff
1b984: 2a10 cmp r2, #16
1b986: db2b blt.n 1b9e0 <memchr+0x60>
1b988: f010 0f07 tst.w r0, #7
1b98c: d008 beq.n 1b9a0 <memchr+0x20>
1b98e: f810 3b01 ldrb.w r3, [r0], #1
1b992: 3a01 subs r2, #1
1b994: 428b cmp r3, r1
1b996: d02d beq.n 1b9f4 <memchr+0x74>
1b998: f010 0f07 tst.w r0, #7
1b99c: b342 cbz r2, 1b9f0 <memchr+0x70>
1b99e: d1f6 bne.n 1b98e <memchr+0xe>
1b9a0: b4f0 push {r4, r5, r6, r7}
1b9a2: ea41 2101 orr.w r1, r1, r1, lsl #8
1b9a6: ea41 4101 orr.w r1, r1, r1, lsl #16
1b9aa: f022 0407 bic.w r4, r2, #7
1b9ae: f07f 0700 mvns.w r7, #0
1b9b2: 2300 movs r3, #0
1b9b4: e8f0 5602 ldrd r5, r6, [r0], #8
1b9b8: 3c08 subs r4, #8
1b9ba: ea85 0501 eor.w r5, r5, r1
1b9be: ea86 0601 eor.w r6, r6, r1
1b9c2: fa85 f547 uadd8 r5, r5, r7
1b9c6: faa3 f587 sel r5, r3, r7
1b9ca: fa86 f647 uadd8 r6, r6, r7
1b9ce: faa5 f687 sel r6, r5, r7
1b9d2: b98e cbnz r6, 1b9f8 <memchr+0x78>
1b9d4: d1ee bne.n 1b9b4 <memchr+0x34>
1b9d6: bcf0 pop {r4, r5, r6, r7}
1b9d8: f001 01ff and.w r1, r1, #255 ; 0xff
1b9dc: f002 0207 and.w r2, r2, #7
1b9e0: b132 cbz r2, 1b9f0 <memchr+0x70>
1b9e2: f810 3b01 ldrb.w r3, [r0], #1
1b9e6: 3a01 subs r2, #1
1b9e8: ea83 0301 eor.w r3, r3, r1
1b9ec: b113 cbz r3, 1b9f4 <memchr+0x74>
1b9ee: d1f8 bne.n 1b9e2 <memchr+0x62>
1b9f0: 2000 movs r0, #0
1b9f2: 4770 bx lr
1b9f4: 3801 subs r0, #1
1b9f6: 4770 bx lr
1b9f8: 2d00 cmp r5, #0
1b9fa: bf06 itte eq
1b9fc: 4635 moveq r5, r6
1b9fe: 3803 subeq r0, #3
1ba00: 3807 subne r0, #7
1ba02: f015 0f01 tst.w r5, #1
1ba06: d107 bne.n 1ba18 <memchr+0x98>
1ba08: 3001 adds r0, #1
1ba0a: f415 7f80 tst.w r5, #256 ; 0x100
1ba0e: bf02 ittt eq
1ba10: 3001 addeq r0, #1
1ba12: f415 3fc0 tsteq.w r5, #98304 ; 0x18000
1ba16: 3001 addeq r0, #1
1ba18: bcf0 pop {r4, r5, r6, r7}
1ba1a: 3801 subs r0, #1
1ba1c: 4770 bx lr
1ba1e: bf00 nop
0001ba20 <__malloc_lock>:
1ba20: 4770 bx lr
1ba22: bf00 nop
0001ba24 <__malloc_unlock>:
1ba24: 4770 bx lr
1ba26: bf00 nop
0001ba28 <_Balloc>:
1ba28: 6cc3 ldr r3, [r0, #76] ; 0x4c
1ba2a: b570 push {r4, r5, r6, lr}
1ba2c: 4605 mov r5, r0
1ba2e: 460c mov r4, r1
1ba30: b14b cbz r3, 1ba46 <_Balloc+0x1e>
1ba32: f853 0024 ldr.w r0, [r3, r4, lsl #2]
1ba36: b180 cbz r0, 1ba5a <_Balloc+0x32>
1ba38: 6802 ldr r2, [r0, #0]
1ba3a: f843 2024 str.w r2, [r3, r4, lsl #2]
1ba3e: 2300 movs r3, #0
1ba40: e9c0 3303 strd r3, r3, [r0, #12]
1ba44: bd70 pop {r4, r5, r6, pc}
1ba46: 2221 movs r2, #33 ; 0x21
1ba48: 2104 movs r1, #4
1ba4a: f001 fb37 bl 1d0bc <_calloc_r>
1ba4e: 4603 mov r3, r0
1ba50: 64e8 str r0, [r5, #76] ; 0x4c
1ba52: 2800 cmp r0, #0
1ba54: d1ed bne.n 1ba32 <_Balloc+0xa>
1ba56: 2000 movs r0, #0
1ba58: bd70 pop {r4, r5, r6, pc}
1ba5a: 2101 movs r1, #1
1ba5c: fa01 f604 lsl.w r6, r1, r4
1ba60: 1d72 adds r2, r6, #5
1ba62: 0092 lsls r2, r2, #2
1ba64: 4628 mov r0, r5
1ba66: f001 fb29 bl 1d0bc <_calloc_r>
1ba6a: 2800 cmp r0, #0
1ba6c: d0f3 beq.n 1ba56 <_Balloc+0x2e>
1ba6e: e9c0 4601 strd r4, r6, [r0, #4]
1ba72: e7e4 b.n 1ba3e <_Balloc+0x16>
0001ba74 <_Bfree>:
1ba74: b131 cbz r1, 1ba84 <_Bfree+0x10>
1ba76: 6cc3 ldr r3, [r0, #76] ; 0x4c
1ba78: 684a ldr r2, [r1, #4]
1ba7a: f853 0022 ldr.w r0, [r3, r2, lsl #2]
1ba7e: 6008 str r0, [r1, #0]
1ba80: f843 1022 str.w r1, [r3, r2, lsl #2]
1ba84: 4770 bx lr
1ba86: bf00 nop
0001ba88 <__multadd>:
1ba88: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
1ba8c: 690d ldr r5, [r1, #16]
1ba8e: 4607 mov r7, r0
1ba90: 460e mov r6, r1
1ba92: 461c mov r4, r3
1ba94: f101 0e14 add.w lr, r1, #20
1ba98: 2000 movs r0, #0
1ba9a: f8de 1000 ldr.w r1, [lr]
1ba9e: b28b uxth r3, r1
1baa0: fb02 4303 mla r3, r2, r3, r4
1baa4: ea4f 4c13 mov.w ip, r3, lsr #16
1baa8: 0c09 lsrs r1, r1, #16
1baaa: fb02 cc01 mla ip, r2, r1, ip
1baae: 3001 adds r0, #1
1bab0: b29b uxth r3, r3
1bab2: eb03 430c add.w r3, r3, ip, lsl #16
1bab6: 4285 cmp r5, r0
1bab8: f84e 3b04 str.w r3, [lr], #4
1babc: ea4f 441c mov.w r4, ip, lsr #16
1bac0: dceb bgt.n 1ba9a <__multadd+0x12>
1bac2: b13c cbz r4, 1bad4 <__multadd+0x4c>
1bac4: 68b3 ldr r3, [r6, #8]
1bac6: 42ab cmp r3, r5
1bac8: dd07 ble.n 1bada <__multadd+0x52>
1baca: eb06 0385 add.w r3, r6, r5, lsl #2
1bace: 3501 adds r5, #1
1bad0: 615c str r4, [r3, #20]
1bad2: 6135 str r5, [r6, #16]
1bad4: 4630 mov r0, r6
1bad6: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
1bada: 6871 ldr r1, [r6, #4]
1badc: 4638 mov r0, r7
1bade: 3101 adds r1, #1
1bae0: f7ff ffa2 bl 1ba28 <_Balloc>
1bae4: 4680 mov r8, r0
1bae6: b1a8 cbz r0, 1bb14 <__multadd+0x8c>
1bae8: 6932 ldr r2, [r6, #16]
1baea: 3202 adds r2, #2
1baec: f106 010c add.w r1, r6, #12
1baf0: 0092 lsls r2, r2, #2
1baf2: 300c adds r0, #12
1baf4: f7fb f916 bl 16d24 <memcpy>
1baf8: 6cfb ldr r3, [r7, #76] ; 0x4c
1bafa: 6872 ldr r2, [r6, #4]
1bafc: f853 1022 ldr.w r1, [r3, r2, lsl #2]
1bb00: 6031 str r1, [r6, #0]
1bb02: f843 6022 str.w r6, [r3, r2, lsl #2]
1bb06: 4646 mov r6, r8
1bb08: eb06 0385 add.w r3, r6, r5, lsl #2
1bb0c: 3501 adds r5, #1
1bb0e: 615c str r4, [r3, #20]
1bb10: 6135 str r5, [r6, #16]
1bb12: e7df b.n 1bad4 <__multadd+0x4c>
1bb14: 4b02 ldr r3, [pc, #8] ; (1bb20 <__multadd+0x98>)
1bb16: 4803 ldr r0, [pc, #12] ; (1bb24 <__multadd+0x9c>)
1bb18: 4642 mov r2, r8
1bb1a: 21b5 movs r1, #181 ; 0xb5
1bb1c: f001 faae bl 1d07c <__assert_func>
1bb20: 0002c204 .word 0x0002c204
1bb24: 0002c288 .word 0x0002c288
0001bb28 <__hi0bits>:
1bb28: 0c02 lsrs r2, r0, #16
1bb2a: 0412 lsls r2, r2, #16
1bb2c: 4603 mov r3, r0
1bb2e: b9ca cbnz r2, 1bb64 <__hi0bits+0x3c>
1bb30: 0403 lsls r3, r0, #16
1bb32: 2010 movs r0, #16
1bb34: f013 4f7f tst.w r3, #4278190080 ; 0xff000000
1bb38: bf04 itt eq
1bb3a: 021b lsleq r3, r3, #8
1bb3c: 3008 addeq r0, #8
1bb3e: f013 4f70 tst.w r3, #4026531840 ; 0xf0000000
1bb42: bf04 itt eq
1bb44: 011b lsleq r3, r3, #4
1bb46: 3004 addeq r0, #4
1bb48: f013 4f40 tst.w r3, #3221225472 ; 0xc0000000
1bb4c: bf04 itt eq
1bb4e: 009b lsleq r3, r3, #2
1bb50: 3002 addeq r0, #2
1bb52: 2b00 cmp r3, #0
1bb54: db05 blt.n 1bb62 <__hi0bits+0x3a>
1bb56: f013 4f80 tst.w r3, #1073741824 ; 0x40000000
1bb5a: f100 0001 add.w r0, r0, #1
1bb5e: bf08 it eq
1bb60: 2020 moveq r0, #32
1bb62: 4770 bx lr
1bb64: 2000 movs r0, #0
1bb66: e7e5 b.n 1bb34 <__hi0bits+0xc>
0001bb68 <__lo0bits>:
1bb68: 6803 ldr r3, [r0, #0]
1bb6a: f013 0207 ands.w r2, r3, #7
1bb6e: 4601 mov r1, r0
1bb70: d007 beq.n 1bb82 <__lo0bits+0x1a>
1bb72: 07da lsls r2, r3, #31
1bb74: d41f bmi.n 1bbb6 <__lo0bits+0x4e>
1bb76: 0798 lsls r0, r3, #30
1bb78: d521 bpl.n 1bbbe <__lo0bits+0x56>
1bb7a: 085b lsrs r3, r3, #1
1bb7c: 600b str r3, [r1, #0]
1bb7e: 2001 movs r0, #1
1bb80: 4770 bx lr
1bb82: b298 uxth r0, r3
1bb84: b1a0 cbz r0, 1bbb0 <__lo0bits+0x48>
1bb86: 4610 mov r0, r2
1bb88: b2da uxtb r2, r3
1bb8a: b90a cbnz r2, 1bb90 <__lo0bits+0x28>
1bb8c: 3008 adds r0, #8
1bb8e: 0a1b lsrs r3, r3, #8
1bb90: 071a lsls r2, r3, #28
1bb92: bf04 itt eq
1bb94: 091b lsreq r3, r3, #4
1bb96: 3004 addeq r0, #4
1bb98: 079a lsls r2, r3, #30
1bb9a: bf04 itt eq
1bb9c: 089b lsreq r3, r3, #2
1bb9e: 3002 addeq r0, #2
1bba0: 07da lsls r2, r3, #31
1bba2: d403 bmi.n 1bbac <__lo0bits+0x44>
1bba4: 085b lsrs r3, r3, #1
1bba6: f100 0001 add.w r0, r0, #1
1bbaa: d006 beq.n 1bbba <__lo0bits+0x52>
1bbac: 600b str r3, [r1, #0]
1bbae: 4770 bx lr
1bbb0: 0c1b lsrs r3, r3, #16
1bbb2: 2010 movs r0, #16
1bbb4: e7e8 b.n 1bb88 <__lo0bits+0x20>
1bbb6: 2000 movs r0, #0
1bbb8: 4770 bx lr
1bbba: 2020 movs r0, #32
1bbbc: 4770 bx lr
1bbbe: 089b lsrs r3, r3, #2
1bbc0: 600b str r3, [r1, #0]
1bbc2: 2002 movs r0, #2
1bbc4: 4770 bx lr
1bbc6: bf00 nop
0001bbc8 <__i2b>:
1bbc8: b538 push {r3, r4, r5, lr}
1bbca: 6cc3 ldr r3, [r0, #76] ; 0x4c
1bbcc: 4604 mov r4, r0
1bbce: 460d mov r5, r1
1bbd0: b14b cbz r3, 1bbe6 <__i2b+0x1e>
1bbd2: 6858 ldr r0, [r3, #4]
1bbd4: b1b0 cbz r0, 1bc04 <__i2b+0x3c>
1bbd6: 6802 ldr r2, [r0, #0]
1bbd8: 605a str r2, [r3, #4]
1bbda: 2200 movs r2, #0
1bbdc: 2301 movs r3, #1
1bbde: e9c0 3504 strd r3, r5, [r0, #16]
1bbe2: 60c2 str r2, [r0, #12]
1bbe4: bd38 pop {r3, r4, r5, pc}
1bbe6: 2221 movs r2, #33 ; 0x21
1bbe8: 2104 movs r1, #4
1bbea: f001 fa67 bl 1d0bc <_calloc_r>
1bbee: 4603 mov r3, r0
1bbf0: 64e0 str r0, [r4, #76] ; 0x4c
1bbf2: 2800 cmp r0, #0
1bbf4: d1ed bne.n 1bbd2 <__i2b+0xa>
1bbf6: 4b09 ldr r3, [pc, #36] ; (1bc1c <__i2b+0x54>)
1bbf8: 4809 ldr r0, [pc, #36] ; (1bc20 <__i2b+0x58>)
1bbfa: 2200 movs r2, #0
1bbfc: f44f 71a0 mov.w r1, #320 ; 0x140
1bc00: f001 fa3c bl 1d07c <__assert_func>
1bc04: 221c movs r2, #28
1bc06: 2101 movs r1, #1
1bc08: 4620 mov r0, r4
1bc0a: f001 fa57 bl 1d0bc <_calloc_r>
1bc0e: 2800 cmp r0, #0
1bc10: d0f1 beq.n 1bbf6 <__i2b+0x2e>
1bc12: 2201 movs r2, #1
1bc14: 2302 movs r3, #2
1bc16: e9c0 2301 strd r2, r3, [r0, #4]
1bc1a: e7de b.n 1bbda <__i2b+0x12>
1bc1c: 0002c204 .word 0x0002c204
1bc20: 0002c288 .word 0x0002c288
0001bc24 <__multiply>:
1bc24: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
1bc28: 690e ldr r6, [r1, #16]
1bc2a: 6915 ldr r5, [r2, #16]
1bc2c: 42ae cmp r6, r5
1bc2e: b085 sub sp, #20
1bc30: 4688 mov r8, r1
1bc32: 4614 mov r4, r2
1bc34: db05 blt.n 1bc42 <__multiply+0x1e>
1bc36: 462a mov r2, r5
1bc38: 4623 mov r3, r4
1bc3a: 4635 mov r5, r6
1bc3c: 460c mov r4, r1
1bc3e: 4616 mov r6, r2
1bc40: 4698 mov r8, r3
1bc42: 68a3 ldr r3, [r4, #8]
1bc44: 6861 ldr r1, [r4, #4]
1bc46: 19af adds r7, r5, r6
1bc48: 42bb cmp r3, r7
1bc4a: bfb8 it lt
1bc4c: 3101 addlt r1, #1
1bc4e: f7ff feeb bl 1ba28 <_Balloc>
1bc52: 9001 str r0, [sp, #4]
1bc54: 2800 cmp r0, #0
1bc56: f000 8087 beq.w 1bd68 <__multiply+0x144>
1bc5a: 9b01 ldr r3, [sp, #4]
1bc5c: f103 0914 add.w r9, r3, #20
1bc60: eb09 0a87 add.w sl, r9, r7, lsl #2
1bc64: 45d1 cmp r9, sl
1bc66: d205 bcs.n 1bc74 <__multiply+0x50>
1bc68: 464b mov r3, r9
1bc6a: 2200 movs r2, #0
1bc6c: f843 2b04 str.w r2, [r3], #4
1bc70: 459a cmp sl, r3
1bc72: d8fb bhi.n 1bc6c <__multiply+0x48>
1bc74: f108 0814 add.w r8, r8, #20
1bc78: eb08 0b86 add.w fp, r8, r6, lsl #2
1bc7c: f104 0314 add.w r3, r4, #20
1bc80: 45d8 cmp r8, fp
1bc82: 461a mov r2, r3
1bc84: eb03 0585 add.w r5, r3, r5, lsl #2
1bc88: d25f bcs.n 1bd4a <__multiply+0x126>
1bc8a: 1b2b subs r3, r5, r4
1bc8c: 3b15 subs r3, #21
1bc8e: f023 0303 bic.w r3, r3, #3
1bc92: 3304 adds r3, #4
1bc94: 3415 adds r4, #21
1bc96: 42a5 cmp r5, r4
1bc98: bf38 it cc
1bc9a: 2304 movcc r3, #4
1bc9c: e9cd a702 strd sl, r7, [sp, #8]
1bca0: 46ac mov ip, r5
1bca2: 461f mov r7, r3
1bca4: 4692 mov sl, r2
1bca6: e005 b.n 1bcb4 <__multiply+0x90>
1bca8: 0c09 lsrs r1, r1, #16
1bcaa: d129 bne.n 1bd00 <__multiply+0xdc>
1bcac: 45c3 cmp fp, r8
1bcae: f109 0904 add.w r9, r9, #4
1bcb2: d948 bls.n 1bd46 <__multiply+0x122>
1bcb4: f858 1b04 ldr.w r1, [r8], #4
1bcb8: b28d uxth r5, r1
1bcba: 2d00 cmp r5, #0
1bcbc: d0f4 beq.n 1bca8 <__multiply+0x84>
1bcbe: 4656 mov r6, sl
1bcc0: 464c mov r4, r9
1bcc2: 2300 movs r3, #0
1bcc4: f856 1b04 ldr.w r1, [r6], #4
1bcc8: 6822 ldr r2, [r4, #0]
1bcca: fa1f fe81 uxth.w lr, r1
1bcce: b290 uxth r0, r2
1bcd0: 0c09 lsrs r1, r1, #16
1bcd2: fb05 000e mla r0, r5, lr, r0
1bcd6: 0c12 lsrs r2, r2, #16
1bcd8: 4403 add r3, r0
1bcda: fb05 2201 mla r2, r5, r1, r2
1bcde: eb02 4213 add.w r2, r2, r3, lsr #16
1bce2: b29b uxth r3, r3
1bce4: ea43 4302 orr.w r3, r3, r2, lsl #16
1bce8: 45b4 cmp ip, r6
1bcea: f844 3b04 str.w r3, [r4], #4
1bcee: ea4f 4312 mov.w r3, r2, lsr #16
1bcf2: d8e7 bhi.n 1bcc4 <__multiply+0xa0>
1bcf4: f849 3007 str.w r3, [r9, r7]
1bcf8: f858 1c04 ldr.w r1, [r8, #-4]
1bcfc: 0c09 lsrs r1, r1, #16
1bcfe: d0d5 beq.n 1bcac <__multiply+0x88>
1bd00: f8d9 3000 ldr.w r3, [r9]
1bd04: 4650 mov r0, sl
1bd06: 461a mov r2, r3
1bd08: 464c mov r4, r9
1bd0a: 2600 movs r6, #0
1bd0c: 8805 ldrh r5, [r0, #0]
1bd0e: 0c12 lsrs r2, r2, #16
1bd10: fb01 2205 mla r2, r1, r5, r2
1bd14: 4416 add r6, r2
1bd16: b29b uxth r3, r3
1bd18: ea43 4306 orr.w r3, r3, r6, lsl #16
1bd1c: f844 3b04 str.w r3, [r4], #4
1bd20: f850 5b04 ldr.w r5, [r0], #4
1bd24: 6822 ldr r2, [r4, #0]
1bd26: 0c2d lsrs r5, r5, #16
1bd28: b293 uxth r3, r2
1bd2a: fb01 3305 mla r3, r1, r5, r3
1bd2e: eb03 4316 add.w r3, r3, r6, lsr #16
1bd32: 4584 cmp ip, r0
1bd34: ea4f 4613 mov.w r6, r3, lsr #16
1bd38: d8e8 bhi.n 1bd0c <__multiply+0xe8>
1bd3a: 45c3 cmp fp, r8
1bd3c: f849 3007 str.w r3, [r9, r7]
1bd40: f109 0904 add.w r9, r9, #4
1bd44: d8b6 bhi.n 1bcb4 <__multiply+0x90>
1bd46: e9dd a702 ldrd sl, r7, [sp, #8]
1bd4a: 2f00 cmp r7, #0
1bd4c: dc02 bgt.n 1bd54 <__multiply+0x130>
1bd4e: e005 b.n 1bd5c <__multiply+0x138>
1bd50: 3f01 subs r7, #1
1bd52: d003 beq.n 1bd5c <__multiply+0x138>
1bd54: f85a 3d04 ldr.w r3, [sl, #-4]!
1bd58: 2b00 cmp r3, #0
1bd5a: d0f9 beq.n 1bd50 <__multiply+0x12c>
1bd5c: 9b01 ldr r3, [sp, #4]
1bd5e: 4618 mov r0, r3
1bd60: 611f str r7, [r3, #16]
1bd62: b005 add sp, #20
1bd64: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1bd68: 4b03 ldr r3, [pc, #12] ; (1bd78 <__multiply+0x154>)
1bd6a: 4804 ldr r0, [pc, #16] ; (1bd7c <__multiply+0x158>)
1bd6c: 9a01 ldr r2, [sp, #4]
1bd6e: f240 115d movw r1, #349 ; 0x15d
1bd72: f001 f983 bl 1d07c <__assert_func>
1bd76: bf00 nop
1bd78: 0002c204 .word 0x0002c204
1bd7c: 0002c288 .word 0x0002c288
0001bd80 <__pow5mult>:
1bd80: f012 0303 ands.w r3, r2, #3
1bd84: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
1bd88: 4614 mov r4, r2
1bd8a: 4606 mov r6, r0
1bd8c: d132 bne.n 1bdf4 <__pow5mult+0x74>
1bd8e: 460d mov r5, r1
1bd90: 10a4 asrs r4, r4, #2
1bd92: d020 beq.n 1bdd6 <__pow5mult+0x56>
1bd94: f8d6 8048 ldr.w r8, [r6, #72] ; 0x48
1bd98: f1b8 0f00 cmp.w r8, #0
1bd9c: d033 beq.n 1be06 <__pow5mult+0x86>
1bd9e: 07e3 lsls r3, r4, #31
1bda0: f04f 0700 mov.w r7, #0
1bda4: d407 bmi.n 1bdb6 <__pow5mult+0x36>
1bda6: 1064 asrs r4, r4, #1
1bda8: d015 beq.n 1bdd6 <__pow5mult+0x56>
1bdaa: f8d8 0000 ldr.w r0, [r8]
1bdae: b1a8 cbz r0, 1bddc <__pow5mult+0x5c>
1bdb0: 4680 mov r8, r0
1bdb2: 07e3 lsls r3, r4, #31
1bdb4: d5f7 bpl.n 1bda6 <__pow5mult+0x26>
1bdb6: 4642 mov r2, r8
1bdb8: 4629 mov r1, r5
1bdba: 4630 mov r0, r6
1bdbc: f7ff ff32 bl 1bc24 <__multiply>
1bdc0: b1b5 cbz r5, 1bdf0 <__pow5mult+0x70>
1bdc2: 6869 ldr r1, [r5, #4]
1bdc4: 6cf3 ldr r3, [r6, #76] ; 0x4c
1bdc6: 1064 asrs r4, r4, #1
1bdc8: f853 2021 ldr.w r2, [r3, r1, lsl #2]
1bdcc: 602a str r2, [r5, #0]
1bdce: f843 5021 str.w r5, [r3, r1, lsl #2]
1bdd2: 4605 mov r5, r0
1bdd4: d1e9 bne.n 1bdaa <__pow5mult+0x2a>
1bdd6: 4628 mov r0, r5
1bdd8: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc}
1bddc: 4642 mov r2, r8
1bdde: 4641 mov r1, r8
1bde0: 4630 mov r0, r6
1bde2: f7ff ff1f bl 1bc24 <__multiply>
1bde6: f8c8 0000 str.w r0, [r8]
1bdea: 6007 str r7, [r0, #0]
1bdec: 4680 mov r8, r0
1bdee: e7e0 b.n 1bdb2 <__pow5mult+0x32>
1bdf0: 4605 mov r5, r0
1bdf2: e7d8 b.n 1bda6 <__pow5mult+0x26>
1bdf4: 3b01 subs r3, #1
1bdf6: 4a0f ldr r2, [pc, #60] ; (1be34 <__pow5mult+0xb4>)
1bdf8: f852 2023 ldr.w r2, [r2, r3, lsl #2]
1bdfc: 2300 movs r3, #0
1bdfe: f7ff fe43 bl 1ba88 <__multadd>
1be02: 4605 mov r5, r0
1be04: e7c4 b.n 1bd90 <__pow5mult+0x10>
1be06: 2101 movs r1, #1
1be08: 4630 mov r0, r6
1be0a: f7ff fe0d bl 1ba28 <_Balloc>
1be0e: 4680 mov r8, r0
1be10: b140 cbz r0, 1be24 <__pow5mult+0xa4>
1be12: 2301 movs r3, #1
1be14: f240 2271 movw r2, #625 ; 0x271
1be18: e9c0 3204 strd r3, r2, [r0, #16]
1be1c: 2300 movs r3, #0
1be1e: 64b0 str r0, [r6, #72] ; 0x48
1be20: 6003 str r3, [r0, #0]
1be22: e7bc b.n 1bd9e <__pow5mult+0x1e>
1be24: 4b04 ldr r3, [pc, #16] ; (1be38 <__pow5mult+0xb8>)
1be26: 4805 ldr r0, [pc, #20] ; (1be3c <__pow5mult+0xbc>)
1be28: 4642 mov r2, r8
1be2a: f44f 71a0 mov.w r1, #320 ; 0x140
1be2e: f001 f925 bl 1d07c <__assert_func>
1be32: bf00 nop
1be34: 0002c3f0 .word 0x0002c3f0
1be38: 0002c204 .word 0x0002c204
1be3c: 0002c288 .word 0x0002c288
0001be40 <__lshift>:
1be40: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
1be44: 460c mov r4, r1
1be46: 4690 mov r8, r2
1be48: 6926 ldr r6, [r4, #16]
1be4a: 68a3 ldr r3, [r4, #8]
1be4c: 6849 ldr r1, [r1, #4]
1be4e: eb06 1662 add.w r6, r6, r2, asr #5
1be52: 1c75 adds r5, r6, #1
1be54: 429d cmp r5, r3
1be56: 4607 mov r7, r0
1be58: ea4f 1962 mov.w r9, r2, asr #5
1be5c: dd04 ble.n 1be68 <__lshift+0x28>
1be5e: 005b lsls r3, r3, #1
1be60: 429d cmp r5, r3
1be62: f101 0101 add.w r1, r1, #1
1be66: dcfa bgt.n 1be5e <__lshift+0x1e>
1be68: 4638 mov r0, r7
1be6a: f7ff fddd bl 1ba28 <_Balloc>
1be6e: 4684 mov ip, r0
1be70: 2800 cmp r0, #0
1be72: d051 beq.n 1bf18 <__lshift+0xd8>
1be74: f1b9 0f00 cmp.w r9, #0
1be78: f100 0014 add.w r0, r0, #20
1be7c: dd0e ble.n 1be9c <__lshift+0x5c>
1be7e: f109 0205 add.w r2, r9, #5
1be82: ea4f 0e82 mov.w lr, r2, lsl #2
1be86: 4603 mov r3, r0
1be88: eb0c 0282 add.w r2, ip, r2, lsl #2
1be8c: 2100 movs r1, #0
1be8e: f843 1b04 str.w r1, [r3], #4
1be92: 4293 cmp r3, r2
1be94: d1fb bne.n 1be8e <__lshift+0x4e>
1be96: f1ae 0314 sub.w r3, lr, #20
1be9a: 4418 add r0, r3
1be9c: 6921 ldr r1, [r4, #16]
1be9e: f104 0314 add.w r3, r4, #20
1bea2: f018 081f ands.w r8, r8, #31
1bea6: eb03 0181 add.w r1, r3, r1, lsl #2
1beaa: d02d beq.n 1bf08 <__lshift+0xc8>
1beac: f1c8 0920 rsb r9, r8, #32
1beb0: 4686 mov lr, r0
1beb2: f04f 0a00 mov.w sl, #0
1beb6: 681a ldr r2, [r3, #0]
1beb8: fa02 f208 lsl.w r2, r2, r8
1bebc: ea42 020a orr.w r2, r2, sl
1bec0: f84e 2b04 str.w r2, [lr], #4
1bec4: f853 2b04 ldr.w r2, [r3], #4
1bec8: 4299 cmp r1, r3
1beca: fa22 fa09 lsr.w sl, r2, r9
1bece: d8f2 bhi.n 1beb6 <__lshift+0x76>
1bed0: 1b0b subs r3, r1, r4
1bed2: 3b15 subs r3, #21
1bed4: f023 0303 bic.w r3, r3, #3
1bed8: 3304 adds r3, #4
1beda: f104 0215 add.w r2, r4, #21
1bede: 4291 cmp r1, r2
1bee0: bf38 it cc
1bee2: 2304 movcc r3, #4
1bee4: f1ba 0f00 cmp.w sl, #0
1bee8: bf18 it ne
1beea: 462e movne r6, r5
1beec: f840 a003 str.w sl, [r0, r3]
1bef0: 6cfb ldr r3, [r7, #76] ; 0x4c
1bef2: 6862 ldr r2, [r4, #4]
1bef4: f8cc 6010 str.w r6, [ip, #16]
1bef8: f853 1022 ldr.w r1, [r3, r2, lsl #2]
1befc: 6021 str r1, [r4, #0]
1befe: 4660 mov r0, ip
1bf00: f843 4022 str.w r4, [r3, r2, lsl #2]
1bf04: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
1bf08: 3804 subs r0, #4
1bf0a: f853 2b04 ldr.w r2, [r3], #4
1bf0e: f840 2f04 str.w r2, [r0, #4]!
1bf12: 4299 cmp r1, r3
1bf14: d8f9 bhi.n 1bf0a <__lshift+0xca>
1bf16: e7eb b.n 1bef0 <__lshift+0xb0>
1bf18: 4b03 ldr r3, [pc, #12] ; (1bf28 <__lshift+0xe8>)
1bf1a: 4804 ldr r0, [pc, #16] ; (1bf2c <__lshift+0xec>)
1bf1c: 4662 mov r2, ip
1bf1e: f240 11d9 movw r1, #473 ; 0x1d9
1bf22: f001 f8ab bl 1d07c <__assert_func>
1bf26: bf00 nop
1bf28: 0002c204 .word 0x0002c204
1bf2c: 0002c288 .word 0x0002c288
0001bf30 <__mcmp>:
1bf30: 690b ldr r3, [r1, #16]
1bf32: 4684 mov ip, r0
1bf34: 6900 ldr r0, [r0, #16]
1bf36: 1ac0 subs r0, r0, r3
1bf38: d115 bne.n 1bf66 <__mcmp+0x36>
1bf3a: f10c 0c14 add.w ip, ip, #20
1bf3e: 3114 adds r1, #20
1bf40: eb0c 0283 add.w r2, ip, r3, lsl #2
1bf44: b410 push {r4}
1bf46: eb01 0383 add.w r3, r1, r3, lsl #2
1bf4a: e001 b.n 1bf50 <__mcmp+0x20>
1bf4c: 4594 cmp ip, r2
1bf4e: d208 bcs.n 1bf62 <__mcmp+0x32>
1bf50: f852 4d04 ldr.w r4, [r2, #-4]!
1bf54: f853 1d04 ldr.w r1, [r3, #-4]!
1bf58: 428c cmp r4, r1
1bf5a: d0f7 beq.n 1bf4c <__mcmp+0x1c>
1bf5c: d204 bcs.n 1bf68 <__mcmp+0x38>
1bf5e: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
1bf62: bc10 pop {r4}
1bf64: 4770 bx lr
1bf66: 4770 bx lr
1bf68: 2001 movs r0, #1
1bf6a: bc10 pop {r4}
1bf6c: 4770 bx lr
1bf6e: bf00 nop
0001bf70 <__mdiff>:
1bf70: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
1bf74: 690f ldr r7, [r1, #16]
1bf76: 6913 ldr r3, [r2, #16]
1bf78: 1aff subs r7, r7, r3
1bf7a: 2f00 cmp r7, #0
1bf7c: 460e mov r6, r1
1bf7e: 4690 mov r8, r2
1bf80: d17f bne.n 1c082 <__mdiff+0x112>
1bf82: f101 0514 add.w r5, r1, #20
1bf86: 3214 adds r2, #20
1bf88: eb02 0283 add.w r2, r2, r3, lsl #2
1bf8c: eb05 0383 add.w r3, r5, r3, lsl #2
1bf90: e001 b.n 1bf96 <__mdiff+0x26>
1bf92: 429d cmp r5, r3
1bf94: d278 bcs.n 1c088 <__mdiff+0x118>
1bf96: f853 1d04 ldr.w r1, [r3, #-4]!
1bf9a: f852 4d04 ldr.w r4, [r2, #-4]!
1bf9e: 42a1 cmp r1, r4
1bfa0: d0f7 beq.n 1bf92 <__mdiff+0x22>
1bfa2: d369 bcc.n 1c078 <__mdiff+0x108>
1bfa4: 6871 ldr r1, [r6, #4]
1bfa6: f7ff fd3f bl 1ba28 <_Balloc>
1bfaa: 4681 mov r9, r0
1bfac: 2800 cmp r0, #0
1bfae: d077 beq.n 1c0a0 <__mdiff+0x130>
1bfb0: 6935 ldr r5, [r6, #16]
1bfb2: f8d8 2010 ldr.w r2, [r8, #16]
1bfb6: 60c7 str r7, [r0, #12]
1bfb8: f108 0e14 add.w lr, r8, #20
1bfbc: f106 0014 add.w r0, r6, #20
1bfc0: f109 0a14 add.w sl, r9, #20
1bfc4: f106 0110 add.w r1, r6, #16
1bfc8: eb0e 0282 add.w r2, lr, r2, lsl #2
1bfcc: eb00 0785 add.w r7, r0, r5, lsl #2
1bfd0: 4656 mov r6, sl
1bfd2: f04f 0c00 mov.w ip, #0
1bfd6: f85e 4b04 ldr.w r4, [lr], #4
1bfda: f851 bf04 ldr.w fp, [r1, #4]!
1bfde: b2a3 uxth r3, r4
1bfe0: fa1c fc8b uxtah ip, ip, fp
1bfe4: ebac 0303 sub.w r3, ip, r3
1bfe8: ea4f 4c14 mov.w ip, r4, lsr #16
1bfec: ebcc 4c1b rsb ip, ip, fp, lsr #16
1bff0: eb0c 4c23 add.w ip, ip, r3, asr #16
1bff4: b29b uxth r3, r3
1bff6: ea43 430c orr.w r3, r3, ip, lsl #16
1bffa: 4572 cmp r2, lr
1bffc: f846 3b04 str.w r3, [r6], #4
1c000: ea4f 4c2c mov.w ip, ip, asr #16
1c004: d8e7 bhi.n 1bfd6 <__mdiff+0x66>
1c006: eba2 0108 sub.w r1, r2, r8
1c00a: 3915 subs r1, #21
1c00c: f108 0815 add.w r8, r8, #21
1c010: 4542 cmp r2, r8
1c012: f021 0403 bic.w r4, r1, #3
1c016: f104 0404 add.w r4, r4, #4
1c01a: bf38 it cc
1c01c: 2404 movcc r4, #4
1c01e: 4420 add r0, r4
1c020: f021 0203 bic.w r2, r1, #3
1c024: bf38 it cc
1c026: 2200 movcc r2, #0
1c028: 4287 cmp r7, r0
1c02a: 4452 add r2, sl
1c02c: 4454 add r4, sl
1c02e: d918 bls.n 1c062 <__mdiff+0xf2>
1c030: 4626 mov r6, r4
1c032: 4601 mov r1, r0
1c034: f851 3b04 ldr.w r3, [r1], #4
1c038: fa1c fc83 uxtah ip, ip, r3
1c03c: ea4f 422c mov.w r2, ip, asr #16
1c040: eb02 4213 add.w r2, r2, r3, lsr #16
1c044: fa1f fc8c uxth.w ip, ip
1c048: ea4c 4302 orr.w r3, ip, r2, lsl #16
1c04c: 428f cmp r7, r1
1c04e: f846 3b04 str.w r3, [r6], #4
1c052: ea4f 4c22 mov.w ip, r2, asr #16
1c056: d8ed bhi.n 1c034 <__mdiff+0xc4>
1c058: 3f01 subs r7, #1
1c05a: 1a3f subs r7, r7, r0
1c05c: f027 0703 bic.w r7, r7, #3
1c060: 19e2 adds r2, r4, r7
1c062: b923 cbnz r3, 1c06e <__mdiff+0xfe>
1c064: f852 3d04 ldr.w r3, [r2, #-4]!
1c068: 3d01 subs r5, #1
1c06a: 2b00 cmp r3, #0
1c06c: d0fa beq.n 1c064 <__mdiff+0xf4>
1c06e: f8c9 5010 str.w r5, [r9, #16]
1c072: 4648 mov r0, r9
1c074: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
1c078: 4633 mov r3, r6
1c07a: 2701 movs r7, #1
1c07c: 4646 mov r6, r8
1c07e: 4698 mov r8, r3
1c080: e790 b.n 1bfa4 <__mdiff+0x34>
1c082: dbf9 blt.n 1c078 <__mdiff+0x108>
1c084: 2700 movs r7, #0
1c086: e78d b.n 1bfa4 <__mdiff+0x34>
1c088: 2100 movs r1, #0
1c08a: f7ff fccd bl 1ba28 <_Balloc>
1c08e: 4681 mov r9, r0
1c090: b168 cbz r0, 1c0ae <__mdiff+0x13e>
1c092: 2201 movs r2, #1
1c094: 2300 movs r3, #0
1c096: e9c9 2304 strd r2, r3, [r9, #16]
1c09a: 4648 mov r0, r9
1c09c: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
1c0a0: 4b06 ldr r3, [pc, #24] ; (1c0bc <__mdiff+0x14c>)
1c0a2: 4807 ldr r0, [pc, #28] ; (1c0c0 <__mdiff+0x150>)
1c0a4: 464a mov r2, r9
1c0a6: f44f 7110 mov.w r1, #576 ; 0x240
1c0aa: f000 ffe7 bl 1d07c <__assert_func>
1c0ae: 4b03 ldr r3, [pc, #12] ; (1c0bc <__mdiff+0x14c>)
1c0b0: 4803 ldr r0, [pc, #12] ; (1c0c0 <__mdiff+0x150>)
1c0b2: 464a mov r2, r9
1c0b4: f240 2132 movw r1, #562 ; 0x232
1c0b8: f000 ffe0 bl 1d07c <__assert_func>
1c0bc: 0002c204 .word 0x0002c204
1c0c0: 0002c288 .word 0x0002c288
0001c0c4 <__d2b>:
1c0c4: b570 push {r4, r5, r6, lr}
1c0c6: 2101 movs r1, #1
1c0c8: b082 sub sp, #8
1c0ca: 4616 mov r6, r2
1c0cc: 461d mov r5, r3
1c0ce: f7ff fcab bl 1ba28 <_Balloc>
1c0d2: 4604 mov r4, r0
1c0d4: 2800 cmp r0, #0
1c0d6: d049 beq.n 1c16c <__d2b+0xa8>
1c0d8: 462b mov r3, r5
1c0da: f3c5 550a ubfx r5, r5, #20, #11
1c0de: f3c3 0313 ubfx r3, r3, #0, #20
1c0e2: b10d cbz r5, 1c0e8 <__d2b+0x24>
1c0e4: f443 1380 orr.w r3, r3, #1048576 ; 0x100000
1c0e8: 2e00 cmp r6, #0
1c0ea: 9301 str r3, [sp, #4]
1c0ec: d114 bne.n 1c118 <__d2b+0x54>
1c0ee: a801 add r0, sp, #4
1c0f0: f7ff fd3a bl 1bb68 <__lo0bits>
1c0f4: 9b01 ldr r3, [sp, #4]
1c0f6: 6163 str r3, [r4, #20]
1c0f8: 2101 movs r1, #1
1c0fa: 3020 adds r0, #32
1c0fc: 6121 str r1, [r4, #16]
1c0fe: b315 cbz r5, 1c146 <__d2b+0x82>
1c100: 9b06 ldr r3, [sp, #24]
1c102: f2a5 4533 subw r5, r5, #1075 ; 0x433
1c106: 4405 add r5, r0
1c108: 601d str r5, [r3, #0]
1c10a: 9b07 ldr r3, [sp, #28]
1c10c: f1c0 0035 rsb r0, r0, #53 ; 0x35
1c110: 6018 str r0, [r3, #0]
1c112: 4620 mov r0, r4
1c114: b002 add sp, #8
1c116: bd70 pop {r4, r5, r6, pc}
1c118: 4668 mov r0, sp
1c11a: 9600 str r6, [sp, #0]
1c11c: f7ff fd24 bl 1bb68 <__lo0bits>
1c120: 9b01 ldr r3, [sp, #4]
1c122: b300 cbz r0, 1c166 <__d2b+0xa2>
1c124: 9900 ldr r1, [sp, #0]
1c126: f1c0 0220 rsb r2, r0, #32
1c12a: fa03 f202 lsl.w r2, r3, r2
1c12e: 430a orrs r2, r1
1c130: 40c3 lsrs r3, r0
1c132: 9301 str r3, [sp, #4]
1c134: 6162 str r2, [r4, #20]
1c136: 2b00 cmp r3, #0
1c138: bf14 ite ne
1c13a: 2102 movne r1, #2
1c13c: 2101 moveq r1, #1
1c13e: 61a3 str r3, [r4, #24]
1c140: 6121 str r1, [r4, #16]
1c142: 2d00 cmp r5, #0
1c144: d1dc bne.n 1c100 <__d2b+0x3c>
1c146: eb04 0281 add.w r2, r4, r1, lsl #2
1c14a: f2a0 4332 subw r3, r0, #1074 ; 0x432
1c14e: 6910 ldr r0, [r2, #16]
1c150: 9a06 ldr r2, [sp, #24]
1c152: 6013 str r3, [r2, #0]
1c154: f7ff fce8 bl 1bb28 <__hi0bits>
1c158: 9b07 ldr r3, [sp, #28]
1c15a: ebc0 1041 rsb r0, r0, r1, lsl #5
1c15e: 6018 str r0, [r3, #0]
1c160: 4620 mov r0, r4
1c162: b002 add sp, #8
1c164: bd70 pop {r4, r5, r6, pc}
1c166: 9a00 ldr r2, [sp, #0]
1c168: 6162 str r2, [r4, #20]
1c16a: e7e4 b.n 1c136 <__d2b+0x72>
1c16c: 4b03 ldr r3, [pc, #12] ; (1c17c <__d2b+0xb8>)
1c16e: 4804 ldr r0, [pc, #16] ; (1c180 <__d2b+0xbc>)
1c170: 4622 mov r2, r4
1c172: f240 310a movw r1, #778 ; 0x30a
1c176: f000 ff81 bl 1d07c <__assert_func>
1c17a: bf00 nop
1c17c: 0002c204 .word 0x0002c204
1c180: 0002c288 .word 0x0002c288
0001c184 <_sbrk_r>:
1c184: b538 push {r3, r4, r5, lr}
1c186: 4d07 ldr r5, [pc, #28] ; (1c1a4 <_sbrk_r+0x20>)
1c188: 2200 movs r2, #0
1c18a: 4604 mov r4, r0
1c18c: 4608 mov r0, r1
1c18e: 602a str r2, [r5, #0]
1c190: f7e4 f8e6 bl 360 <_sbrk>
1c194: 1c43 adds r3, r0, #1
1c196: d000 beq.n 1c19a <_sbrk_r+0x16>
1c198: bd38 pop {r3, r4, r5, pc}
1c19a: 682b ldr r3, [r5, #0]
1c19c: 2b00 cmp r3, #0
1c19e: d0fb beq.n 1c198 <_sbrk_r+0x14>
1c1a0: 6023 str r3, [r4, #0]
1c1a2: bd38 pop {r3, r4, r5, pc}
1c1a4: 20005804 .word 0x20005804
0001c1a8 <raise>:
1c1a8: b538 push {r3, r4, r5, lr}
1c1aa: 4b15 ldr r3, [pc, #84] ; (1c200 <raise+0x58>)
1c1ac: 281f cmp r0, #31
1c1ae: 681d ldr r5, [r3, #0]
1c1b0: d820 bhi.n 1c1f4 <raise+0x4c>
1c1b2: f8d5 22dc ldr.w r2, [r5, #732] ; 0x2dc
1c1b6: 4604 mov r4, r0
1c1b8: b162 cbz r2, 1c1d4 <raise+0x2c>
1c1ba: f852 3020 ldr.w r3, [r2, r0, lsl #2]
1c1be: b14b cbz r3, 1c1d4 <raise+0x2c>
1c1c0: 2b01 cmp r3, #1
1c1c2: d015 beq.n 1c1f0 <raise+0x48>
1c1c4: 1c59 adds r1, r3, #1
1c1c6: d00f beq.n 1c1e8 <raise+0x40>
1c1c8: 2500 movs r5, #0
1c1ca: f842 5020 str.w r5, [r2, r0, lsl #2]
1c1ce: 4798 blx r3
1c1d0: 4628 mov r0, r5
1c1d2: bd38 pop {r3, r4, r5, pc}
1c1d4: 4628 mov r0, r5
1c1d6: f000 f82b bl 1c230 <_getpid_r>
1c1da: 4622 mov r2, r4
1c1dc: 4601 mov r1, r0
1c1de: 4628 mov r0, r5
1c1e0: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr}
1c1e4: f000 b80e b.w 1c204 <_kill_r>
1c1e8: 2316 movs r3, #22
1c1ea: 602b str r3, [r5, #0]
1c1ec: 2001 movs r0, #1
1c1ee: bd38 pop {r3, r4, r5, pc}
1c1f0: 2000 movs r0, #0
1c1f2: bd38 pop {r3, r4, r5, pc}
1c1f4: 2316 movs r3, #22
1c1f6: 602b str r3, [r5, #0]
1c1f8: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
1c1fc: bd38 pop {r3, r4, r5, pc}
1c1fe: bf00 nop
1c200: 20000068 .word 0x20000068
0001c204 <_kill_r>:
1c204: b570 push {r4, r5, r6, lr}
1c206: 460c mov r4, r1
1c208: 4d08 ldr r5, [pc, #32] ; (1c22c <_kill_r+0x28>)
1c20a: 4603 mov r3, r0
1c20c: 2600 movs r6, #0
1c20e: 4620 mov r0, r4
1c210: 4611 mov r1, r2
1c212: 461c mov r4, r3
1c214: 602e str r6, [r5, #0]
1c216: f7e4 f8c7 bl 3a8 <_kill>
1c21a: 1c43 adds r3, r0, #1
1c21c: d000 beq.n 1c220 <_kill_r+0x1c>
1c21e: bd70 pop {r4, r5, r6, pc}
1c220: 682b ldr r3, [r5, #0]
1c222: 2b00 cmp r3, #0
1c224: d0fb beq.n 1c21e <_kill_r+0x1a>
1c226: 6023 str r3, [r4, #0]
1c228: bd70 pop {r4, r5, r6, pc}
1c22a: bf00 nop
1c22c: 20005804 .word 0x20005804
0001c230 <_getpid_r>:
1c230: f7e4 b8bb b.w 3aa <_getpid>
0001c234 <__sread>:
1c234: b510 push {r4, lr}
1c236: 460c mov r4, r1
1c238: f9b1 100e ldrsh.w r1, [r1, #14]
1c23c: f001 fa2a bl 1d694 <_read_r>
1c240: 2800 cmp r0, #0
1c242: db03 blt.n 1c24c <__sread+0x18>
1c244: 6d23 ldr r3, [r4, #80] ; 0x50
1c246: 4403 add r3, r0
1c248: 6523 str r3, [r4, #80] ; 0x50
1c24a: bd10 pop {r4, pc}
1c24c: 89a3 ldrh r3, [r4, #12]
1c24e: f423 5380 bic.w r3, r3, #4096 ; 0x1000
1c252: 81a3 strh r3, [r4, #12]
1c254: bd10 pop {r4, pc}
1c256: bf00 nop
0001c258 <__swrite>:
1c258: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr}
1c25c: 460c mov r4, r1
1c25e: f9b1 100c ldrsh.w r1, [r1, #12]
1c262: 461f mov r7, r3
1c264: 05cb lsls r3, r1, #23
1c266: 4605 mov r5, r0
1c268: 4616 mov r6, r2
1c26a: d40b bmi.n 1c284 <__swrite+0x2c>
1c26c: f421 5180 bic.w r1, r1, #4096 ; 0x1000
1c270: 81a1 strh r1, [r4, #12]
1c272: 463b mov r3, r7
1c274: f9b4 100e ldrsh.w r1, [r4, #14]
1c278: 4632 mov r2, r6
1c27a: 4628 mov r0, r5
1c27c: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr}
1c280: f000 bee6 b.w 1d050 <_write_r>
1c284: f9b4 100e ldrsh.w r1, [r4, #14]
1c288: 2302 movs r3, #2
1c28a: 2200 movs r2, #0
1c28c: f001 f9d6 bl 1d63c <_lseek_r>
1c290: f9b4 100c ldrsh.w r1, [r4, #12]
1c294: e7ea b.n 1c26c <__swrite+0x14>
1c296: bf00 nop
0001c298 <__sseek>:
1c298: b510 push {r4, lr}
1c29a: 460c mov r4, r1
1c29c: f9b1 100e ldrsh.w r1, [r1, #14]
1c2a0: f001 f9cc bl 1d63c <_lseek_r>
1c2a4: 89a3 ldrh r3, [r4, #12]
1c2a6: 1c42 adds r2, r0, #1
1c2a8: bf0e itee eq
1c2aa: f423 5380 biceq.w r3, r3, #4096 ; 0x1000
1c2ae: f443 5380 orrne.w r3, r3, #4096 ; 0x1000
1c2b2: 6520 strne r0, [r4, #80] ; 0x50
1c2b4: 81a3 strh r3, [r4, #12]
1c2b6: bd10 pop {r4, pc}
0001c2b8 <__sclose>:
1c2b8: f9b1 100e ldrsh.w r1, [r1, #14]
1c2bc: f000 bf3a b.w 1d134 <_close_r>
0001c2c0 <__ssprint_r>:
1c2c0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
1c2c4: 6893 ldr r3, [r2, #8]
1c2c6: 6816 ldr r6, [r2, #0]
1c2c8: b083 sub sp, #12
1c2ca: 4692 mov sl, r2
1c2cc: 2b00 cmp r3, #0
1c2ce: d071 beq.n 1c3b4 <__ssprint_r+0xf4>
1c2d0: 688b ldr r3, [r1, #8]
1c2d2: 680a ldr r2, [r1, #0]
1c2d4: 4681 mov r9, r0
1c2d6: 460c mov r4, r1
1c2d8: 3608 adds r6, #8
1c2da: e043 b.n 1c364 <__ssprint_r+0xa4>
1c2dc: 89a3 ldrh r3, [r4, #12]
1c2de: f413 6f90 tst.w r3, #1152 ; 0x480
1c2e2: d02d beq.n 1c340 <__ssprint_r+0x80>
1c2e4: e9d4 1004 ldrd r1, r0, [r4, #16]
1c2e8: 1a57 subs r7, r2, r1
1c2ea: eb00 0840 add.w r8, r0, r0, lsl #1
1c2ee: eb08 78d8 add.w r8, r8, r8, lsr #31
1c2f2: 1c78 adds r0, r7, #1
1c2f4: ea4f 0868 mov.w r8, r8, asr #1
1c2f8: 4428 add r0, r5
1c2fa: 4540 cmp r0, r8
1c2fc: 4642 mov r2, r8
1c2fe: bf84 itt hi
1c300: 4680 movhi r8, r0
1c302: 4642 movhi r2, r8
1c304: 055b lsls r3, r3, #21
1c306: d539 bpl.n 1c37c <__ssprint_r+0xbc>
1c308: 4611 mov r1, r2
1c30a: 4648 mov r0, r9
1c30c: f7ff f888 bl 1b420 <_malloc_r>
1c310: 9001 str r0, [sp, #4]
1c312: 2800 cmp r0, #0
1c314: d03c beq.n 1c390 <__ssprint_r+0xd0>
1c316: 463a mov r2, r7
1c318: 6921 ldr r1, [r4, #16]
1c31a: f7fa fd03 bl 16d24 <memcpy>
1c31e: 89a2 ldrh r2, [r4, #12]
1c320: 9b01 ldr r3, [sp, #4]
1c322: f422 6290 bic.w r2, r2, #1152 ; 0x480
1c326: f042 0280 orr.w r2, r2, #128 ; 0x80
1c32a: 81a2 strh r2, [r4, #12]
1c32c: 19d8 adds r0, r3, r7
1c32e: eba8 0707 sub.w r7, r8, r7
1c332: 60a7 str r7, [r4, #8]
1c334: f8c4 8014 str.w r8, [r4, #20]
1c338: 6123 str r3, [r4, #16]
1c33a: 6020 str r0, [r4, #0]
1c33c: 46a8 mov r8, r5
1c33e: 462f mov r7, r5
1c340: 463a mov r2, r7
1c342: 4659 mov r1, fp
1c344: f7fa fd88 bl 16e58 <memmove>
1c348: f8da 1008 ldr.w r1, [sl, #8]
1c34c: 68a3 ldr r3, [r4, #8]
1c34e: 6822 ldr r2, [r4, #0]
1c350: eba3 0308 sub.w r3, r3, r8
1c354: 443a add r2, r7
1c356: 1b49 subs r1, r1, r5
1c358: 60a3 str r3, [r4, #8]
1c35a: 6022 str r2, [r4, #0]
1c35c: f8ca 1008 str.w r1, [sl, #8]
1c360: b341 cbz r1, 1c3b4 <__ssprint_r+0xf4>
1c362: 3608 adds r6, #8
1c364: e956 b502 ldrd fp, r5, [r6, #-8]
1c368: 4698 mov r8, r3
1c36a: 461f mov r7, r3
1c36c: 4610 mov r0, r2
1c36e: 2d00 cmp r5, #0
1c370: d0f7 beq.n 1c362 <__ssprint_r+0xa2>
1c372: 42ab cmp r3, r5
1c374: d9b2 bls.n 1c2dc <__ssprint_r+0x1c>
1c376: 46a8 mov r8, r5
1c378: 462f mov r7, r5
1c37a: e7e1 b.n 1c340 <__ssprint_r+0x80>
1c37c: 4648 mov r0, r9
1c37e: f001 f99f bl 1d6c0 <_realloc_r>
1c382: 4603 mov r3, r0
1c384: 2800 cmp r0, #0
1c386: d1d1 bne.n 1c32c <__ssprint_r+0x6c>
1c388: 6921 ldr r1, [r4, #16]
1c38a: 4648 mov r0, r9
1c38c: f7fe feb4 bl 1b0f8 <_free_r>
1c390: 89a3 ldrh r3, [r4, #12]
1c392: 220c movs r2, #12
1c394: f043 0340 orr.w r3, r3, #64 ; 0x40
1c398: f8c9 2000 str.w r2, [r9]
1c39c: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
1c3a0: 81a3 strh r3, [r4, #12]
1c3a2: 2200 movs r2, #0
1c3a4: 2300 movs r3, #0
1c3a6: f8ca 2008 str.w r2, [sl, #8]
1c3aa: f8ca 3004 str.w r3, [sl, #4]
1c3ae: b003 add sp, #12
1c3b0: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1c3b4: 2000 movs r0, #0
1c3b6: 2300 movs r3, #0
1c3b8: f8ca 3004 str.w r3, [sl, #4]
1c3bc: b003 add sp, #12
1c3be: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1c3c2: bf00 nop
0001c3c4 <write>:
1c3c4: b410 push {r4}
1c3c6: 4c04 ldr r4, [pc, #16] ; (1c3d8 <write+0x14>)
1c3c8: 4684 mov ip, r0
1c3ca: 4613 mov r3, r2
1c3cc: 6820 ldr r0, [r4, #0]
1c3ce: bc10 pop {r4}
1c3d0: 460a mov r2, r1
1c3d2: 4661 mov r1, ip
1c3d4: f000 be3c b.w 1d050 <_write_r>
1c3d8: 20000068 .word 0x20000068
0001c3dc <__sprint_r.part.0>:
1c3dc: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
1c3e0: 6e0b ldr r3, [r1, #96] ; 0x60
1c3e2: 049c lsls r4, r3, #18
1c3e4: 4690 mov r8, r2
1c3e6: d52d bpl.n 1c444 <__sprint_r.part.0+0x68>
1c3e8: 6893 ldr r3, [r2, #8]
1c3ea: 6812 ldr r2, [r2, #0]
1c3ec: b343 cbz r3, 1c440 <__sprint_r.part.0+0x64>
1c3ee: 468b mov fp, r1
1c3f0: 4606 mov r6, r0
1c3f2: f102 0908 add.w r9, r2, #8
1c3f6: e959 5a02 ldrd r5, sl, [r9, #-8]
1c3fa: ea5f 079a movs.w r7, sl, lsr #2
1c3fe: d015 beq.n 1c42c <__sprint_r.part.0+0x50>
1c400: 3d04 subs r5, #4
1c402: 2400 movs r4, #0
1c404: e001 b.n 1c40a <__sprint_r.part.0+0x2e>
1c406: 42a7 cmp r7, r4
1c408: d00e beq.n 1c428 <__sprint_r.part.0+0x4c>
1c40a: f855 1f04 ldr.w r1, [r5, #4]!
1c40e: 465a mov r2, fp
1c410: 4630 mov r0, r6
1c412: f000 ff4f bl 1d2b4 <_fputwc_r>
1c416: 1c43 adds r3, r0, #1
1c418: f104 0401 add.w r4, r4, #1
1c41c: d1f3 bne.n 1c406 <__sprint_r.part.0+0x2a>
1c41e: 2300 movs r3, #0
1c420: e9c8 3301 strd r3, r3, [r8, #4]
1c424: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
1c428: f8d8 3008 ldr.w r3, [r8, #8]
1c42c: f02a 0a03 bic.w sl, sl, #3
1c430: eba3 030a sub.w r3, r3, sl
1c434: f8c8 3008 str.w r3, [r8, #8]
1c438: f109 0908 add.w r9, r9, #8
1c43c: 2b00 cmp r3, #0
1c43e: d1da bne.n 1c3f6 <__sprint_r.part.0+0x1a>
1c440: 2000 movs r0, #0
1c442: e7ec b.n 1c41e <__sprint_r.part.0+0x42>
1c444: f000 ff5e bl 1d304 <__sfvwrite_r>
1c448: 2300 movs r3, #0
1c44a: e9c8 3301 strd r3, r3, [r8, #4]
1c44e: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
1c452: bf00 nop
0001c454 <__sprint_r>:
1c454: b410 push {r4}
1c456: 6894 ldr r4, [r2, #8]
1c458: b114 cbz r4, 1c460 <__sprint_r+0xc>
1c45a: bc10 pop {r4}
1c45c: f7ff bfbe b.w 1c3dc <__sprint_r.part.0>
1c460: 4620 mov r0, r4
1c462: 6054 str r4, [r2, #4]
1c464: bc10 pop {r4}
1c466: 4770 bx lr
0001c468 <_vfiprintf_r>:
1c468: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
1c46c: b0ab sub sp, #172 ; 0xac
1c46e: 461c mov r4, r3
1c470: 4688 mov r8, r1
1c472: 4617 mov r7, r2
1c474: 9306 str r3, [sp, #24]
1c476: 4683 mov fp, r0
1c478: b118 cbz r0, 1c482 <_vfiprintf_r+0x1a>
1c47a: 6b83 ldr r3, [r0, #56] ; 0x38
1c47c: 2b00 cmp r3, #0
1c47e: f000 81c6 beq.w 1c80e <_vfiprintf_r+0x3a6>
1c482: f9b8 100c ldrsh.w r1, [r8, #12]
1c486: 0488 lsls r0, r1, #18
1c488: b28a uxth r2, r1
1c48a: d40a bmi.n 1c4a2 <_vfiprintf_r+0x3a>
1c48c: f8d8 3060 ldr.w r3, [r8, #96] ; 0x60
1c490: f441 5100 orr.w r1, r1, #8192 ; 0x2000
1c494: f423 5300 bic.w r3, r3, #8192 ; 0x2000
1c498: f8a8 100c strh.w r1, [r8, #12]
1c49c: b28a uxth r2, r1
1c49e: f8c8 3060 str.w r3, [r8, #96] ; 0x60
1c4a2: 0711 lsls r1, r2, #28
1c4a4: f140 80a6 bpl.w 1c5f4 <_vfiprintf_r+0x18c>
1c4a8: f8d8 3010 ldr.w r3, [r8, #16]
1c4ac: 2b00 cmp r3, #0
1c4ae: f000 80a1 beq.w 1c5f4 <_vfiprintf_r+0x18c>
1c4b2: f002 021a and.w r2, r2, #26
1c4b6: 2a0a cmp r2, #10
1c4b8: f000 80aa beq.w 1c610 <_vfiprintf_r+0x1a8>
1c4bc: ab1a add r3, sp, #104 ; 0x68
1c4be: 930d str r3, [sp, #52] ; 0x34
1c4c0: 2300 movs r3, #0
1c4c2: e9cd 330e strd r3, r3, [sp, #56] ; 0x38
1c4c6: 9309 str r3, [sp, #36] ; 0x24
1c4c8: f10d 0968 add.w r9, sp, #104 ; 0x68
1c4cc: 9304 str r3, [sp, #16]
1c4ce: 783b ldrb r3, [r7, #0]
1c4d0: 2b00 cmp r3, #0
1c4d2: f000 80c9 beq.w 1c668 <_vfiprintf_r+0x200>
1c4d6: 463c mov r4, r7
1c4d8: e004 b.n 1c4e4 <_vfiprintf_r+0x7c>
1c4da: f814 3f01 ldrb.w r3, [r4, #1]!
1c4de: 2b00 cmp r3, #0
1c4e0: f000 80a4 beq.w 1c62c <_vfiprintf_r+0x1c4>
1c4e4: 2b25 cmp r3, #37 ; 0x25
1c4e6: d1f8 bne.n 1c4da <_vfiprintf_r+0x72>
1c4e8: 1be5 subs r5, r4, r7
1c4ea: f040 80a1 bne.w 1c630 <_vfiprintf_r+0x1c8>
1c4ee: 7823 ldrb r3, [r4, #0]
1c4f0: 2b00 cmp r3, #0
1c4f2: f000 80b9 beq.w 1c668 <_vfiprintf_r+0x200>
1c4f6: 2100 movs r1, #0
1c4f8: 3401 adds r4, #1
1c4fa: f04f 0300 mov.w r3, #0
1c4fe: 4627 mov r7, r4
1c500: f88d 302f strb.w r3, [sp, #47] ; 0x2f
1c504: 4608 mov r0, r1
1c506: f04f 3aff mov.w sl, #4294967295 ; 0xffffffff
1c50a: 460d mov r5, r1
1c50c: 460c mov r4, r1
1c50e: f817 2b01 ldrb.w r2, [r7], #1
1c512: f1a2 0320 sub.w r3, r2, #32
1c516: 2b58 cmp r3, #88 ; 0x58
1c518: f200 80b3 bhi.w 1c682 <_vfiprintf_r+0x21a>
1c51c: e8df f013 tbh [pc, r3, lsl #1]
1c520: 00b10263 .word 0x00b10263
1c524: 026000b1 .word 0x026000b1
1c528: 00b100b1 .word 0x00b100b1
1c52c: 00b100b1 .word 0x00b100b1
1c530: 00b100b1 .word 0x00b100b1
1c534: 048f017a .word 0x048f017a
1c538: 018200b1 .word 0x018200b1
1c53c: 00b10185 .word 0x00b10185
1c540: 00590274 .word 0x00590274
1c544: 00590059 .word 0x00590059
1c548: 00590059 .word 0x00590059
1c54c: 00590059 .word 0x00590059
1c550: 00590059 .word 0x00590059
1c554: 00b100b1 .word 0x00b100b1
1c558: 00b100b1 .word 0x00b100b1
1c55c: 00b100b1 .word 0x00b100b1
1c560: 00b100b1 .word 0x00b100b1
1c564: 00b100b1 .word 0x00b100b1
1c568: 00b10269 .word 0x00b10269
1c56c: 00b100b1 .word 0x00b100b1
1c570: 00b100b1 .word 0x00b100b1
1c574: 00b100b1 .word 0x00b100b1
1c578: 00b100b1 .word 0x00b100b1
1c57c: 022d00b1 .word 0x022d00b1
1c580: 00b100b1 .word 0x00b100b1
1c584: 00b100b1 .word 0x00b100b1
1c588: 022500b1 .word 0x022500b1
1c58c: 00b100b1 .word 0x00b100b1
1c590: 00b1021e .word 0x00b1021e
1c594: 00b100b1 .word 0x00b100b1
1c598: 00b100b1 .word 0x00b100b1
1c59c: 00b100b1 .word 0x00b100b1
1c5a0: 00b100b1 .word 0x00b100b1
1c5a4: 020e00b1 .word 0x020e00b1
1c5a8: 00b1014e .word 0x00b1014e
1c5ac: 00b100b1 .word 0x00b100b1
1c5b0: 014e025d .word 0x014e025d
1c5b4: 00b100b1 .word 0x00b100b1
1c5b8: 00b10067 .word 0x00b10067
1c5bc: 02360248 .word 0x02360248
1c5c0: 006701ff .word 0x006701ff
1c5c4: 01df00b1 .word 0x01df00b1
1c5c8: 01d000b1 .word 0x01d000b1
1c5cc: 00b100b1 .word 0x00b100b1
1c5d0: 019c .short 0x019c
1c5d2: f1a2 0330 sub.w r3, r2, #48 ; 0x30
1c5d6: 2400 movs r4, #0
1c5d8: f817 2b01 ldrb.w r2, [r7], #1
1c5dc: eb04 0484 add.w r4, r4, r4, lsl #2
1c5e0: eb03 0444 add.w r4, r3, r4, lsl #1
1c5e4: f1a2 0330 sub.w r3, r2, #48 ; 0x30
1c5e8: 2b09 cmp r3, #9
1c5ea: d9f5 bls.n 1c5d8 <_vfiprintf_r+0x170>
1c5ec: e791 b.n 1c512 <_vfiprintf_r+0xaa>
1c5ee: f045 0510 orr.w r5, r5, #16
1c5f2: e78c b.n 1c50e <_vfiprintf_r+0xa6>
1c5f4: 4641 mov r1, r8
1c5f6: 4658 mov r0, fp
1c5f8: f7fd fb9c bl 19d34 <__swsetup_r>
1c5fc: 2800 cmp r0, #0
1c5fe: f040 848a bne.w 1cf16 <_vfiprintf_r+0xaae>
1c602: f8b8 200c ldrh.w r2, [r8, #12]
1c606: f002 021a and.w r2, r2, #26
1c60a: 2a0a cmp r2, #10
1c60c: f47f af56 bne.w 1c4bc <_vfiprintf_r+0x54>
1c610: f9b8 300e ldrsh.w r3, [r8, #14]
1c614: 2b00 cmp r3, #0
1c616: f6ff af51 blt.w 1c4bc <_vfiprintf_r+0x54>
1c61a: 4623 mov r3, r4
1c61c: 463a mov r2, r7
1c61e: 4641 mov r1, r8
1c620: 4658 mov r0, fp
1c622: b02b add sp, #172 ; 0xac
1c624: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
1c628: f000 bc88 b.w 1cf3c <__sbprintf>
1c62c: 1be5 subs r5, r4, r7
1c62e: d01b beq.n 1c668 <_vfiprintf_r+0x200>
1c630: 9b0e ldr r3, [sp, #56] ; 0x38
1c632: 9a0f ldr r2, [sp, #60] ; 0x3c
1c634: 3301 adds r3, #1
1c636: 442a add r2, r5
1c638: 2b07 cmp r3, #7
1c63a: e9c9 7500 strd r7, r5, [r9]
1c63e: 920f str r2, [sp, #60] ; 0x3c
1c640: 930e str r3, [sp, #56] ; 0x38
1c642: dc05 bgt.n 1c650 <_vfiprintf_r+0x1e8>
1c644: f109 0908 add.w r9, r9, #8
1c648: 9b04 ldr r3, [sp, #16]
1c64a: 442b add r3, r5
1c64c: 9304 str r3, [sp, #16]
1c64e: e74e b.n 1c4ee <_vfiprintf_r+0x86>
1c650: 2a00 cmp r2, #0
1c652: f000 839e beq.w 1cd92 <_vfiprintf_r+0x92a>
1c656: aa0d add r2, sp, #52 ; 0x34
1c658: 4641 mov r1, r8
1c65a: 4658 mov r0, fp
1c65c: f7ff febe bl 1c3dc <__sprint_r.part.0>
1c660: b930 cbnz r0, 1c670 <_vfiprintf_r+0x208>
1c662: f10d 0968 add.w r9, sp, #104 ; 0x68
1c666: e7ef b.n 1c648 <_vfiprintf_r+0x1e0>
1c668: 9b0f ldr r3, [sp, #60] ; 0x3c
1c66a: 2b00 cmp r3, #0
1c66c: f040 8424 bne.w 1ceb8 <_vfiprintf_r+0xa50>
1c670: f8b8 300c ldrh.w r3, [r8, #12]
1c674: 065b lsls r3, r3, #25
1c676: f100 844e bmi.w 1cf16 <_vfiprintf_r+0xaae>
1c67a: 9804 ldr r0, [sp, #16]
1c67c: b02b add sp, #172 ; 0xac
1c67e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1c682: 9405 str r4, [sp, #20]
1c684: 2900 cmp r1, #0
1c686: f040 8413 bne.w 1ceb0 <_vfiprintf_r+0xa48>
1c68a: 2a00 cmp r2, #0
1c68c: d0ec beq.n 1c668 <_vfiprintf_r+0x200>
1c68e: f04f 0300 mov.w r3, #0
1c692: f88d 302f strb.w r3, [sp, #47] ; 0x2f
1c696: 2301 movs r3, #1
1c698: f88d 2040 strb.w r2, [sp, #64] ; 0x40
1c69c: 9301 str r3, [sp, #4]
1c69e: 9303 str r3, [sp, #12]
1c6a0: ac10 add r4, sp, #64 ; 0x40
1c6a2: 9502 str r5, [sp, #8]
1c6a4: f04f 0a00 mov.w sl, #0
1c6a8: 9b02 ldr r3, [sp, #8]
1c6aa: f013 0302 ands.w r3, r3, #2
1c6ae: 9307 str r3, [sp, #28]
1c6b0: d002 beq.n 1c6b8 <_vfiprintf_r+0x250>
1c6b2: 9b01 ldr r3, [sp, #4]
1c6b4: 3302 adds r3, #2
1c6b6: 9301 str r3, [sp, #4]
1c6b8: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38
1c6bc: 9b02 ldr r3, [sp, #8]
1c6be: 1c50 adds r0, r2, #1
1c6c0: f013 0384 ands.w r3, r3, #132 ; 0x84
1c6c4: 4601 mov r1, r0
1c6c6: 9308 str r3, [sp, #32]
1c6c8: d105 bne.n 1c6d6 <_vfiprintf_r+0x26e>
1c6ca: 9b05 ldr r3, [sp, #20]
1c6cc: 9d01 ldr r5, [sp, #4]
1c6ce: 1b5d subs r5, r3, r5
1c6d0: 2d00 cmp r5, #0
1c6d2: f300 82a7 bgt.w 1cc24 <_vfiprintf_r+0x7bc>
1c6d6: f89d 002f ldrb.w r0, [sp, #47] ; 0x2f
1c6da: b190 cbz r0, 1c702 <_vfiprintf_r+0x29a>
1c6dc: f10d 022f add.w r2, sp, #47 ; 0x2f
1c6e0: f10c 0c01 add.w ip, ip, #1
1c6e4: f8c9 2000 str.w r2, [r9]
1c6e8: 2907 cmp r1, #7
1c6ea: f04f 0201 mov.w r2, #1
1c6ee: e9cd 1c0e strd r1, ip, [sp, #56] ; 0x38
1c6f2: f8c9 2004 str.w r2, [r9, #4]
1c6f6: f300 8276 bgt.w 1cbe6 <_vfiprintf_r+0x77e>
1c6fa: 460a mov r2, r1
1c6fc: f109 0908 add.w r9, r9, #8
1c700: 3101 adds r1, #1
1c702: 9b07 ldr r3, [sp, #28]
1c704: b1eb cbz r3, 1c742 <_vfiprintf_r+0x2da>
1c706: ab0c add r3, sp, #48 ; 0x30
1c708: f10c 0c02 add.w ip, ip, #2
1c70c: f8c9 3000 str.w r3, [r9]
1c710: 2907 cmp r1, #7
1c712: f04f 0302 mov.w r3, #2
1c716: e9cd 1c0e strd r1, ip, [sp, #56] ; 0x38
1c71a: f8c9 3004 str.w r3, [r9, #4]
1c71e: f340 827c ble.w 1cc1a <_vfiprintf_r+0x7b2>
1c722: f1bc 0f00 cmp.w ip, #0
1c726: f000 832f beq.w 1cd88 <_vfiprintf_r+0x920>
1c72a: aa0d add r2, sp, #52 ; 0x34
1c72c: 4641 mov r1, r8
1c72e: 4658 mov r0, fp
1c730: f7ff fe54 bl 1c3dc <__sprint_r.part.0>
1c734: 2800 cmp r0, #0
1c736: d19b bne.n 1c670 <_vfiprintf_r+0x208>
1c738: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38
1c73c: f10d 0968 add.w r9, sp, #104 ; 0x68
1c740: 1c51 adds r1, r2, #1
1c742: 9b08 ldr r3, [sp, #32]
1c744: 2b80 cmp r3, #128 ; 0x80
1c746: f000 81a8 beq.w 1ca9a <_vfiprintf_r+0x632>
1c74a: 9b03 ldr r3, [sp, #12]
1c74c: ebaa 0603 sub.w r6, sl, r3
1c750: 2e00 cmp r6, #0
1c752: f300 81fe bgt.w 1cb52 <_vfiprintf_r+0x6ea>
1c756: 9a03 ldr r2, [sp, #12]
1c758: f8c9 4000 str.w r4, [r9]
1c75c: eb02 030c add.w r3, r2, ip
1c760: 2907 cmp r1, #7
1c762: e9cd 130e strd r1, r3, [sp, #56] ; 0x38
1c766: f8c9 2004 str.w r2, [r9, #4]
1c76a: f340 817f ble.w 1ca6c <_vfiprintf_r+0x604>
1c76e: 2b00 cmp r3, #0
1c770: f000 829e beq.w 1ccb0 <_vfiprintf_r+0x848>
1c774: aa0d add r2, sp, #52 ; 0x34
1c776: 4641 mov r1, r8
1c778: 4658 mov r0, fp
1c77a: f7ff fe2f bl 1c3dc <__sprint_r.part.0>
1c77e: 2800 cmp r0, #0
1c780: f47f af76 bne.w 1c670 <_vfiprintf_r+0x208>
1c784: 9b0f ldr r3, [sp, #60] ; 0x3c
1c786: f10d 0968 add.w r9, sp, #104 ; 0x68
1c78a: 9a02 ldr r2, [sp, #8]
1c78c: 0752 lsls r2, r2, #29
1c78e: d505 bpl.n 1c79c <_vfiprintf_r+0x334>
1c790: 9a05 ldr r2, [sp, #20]
1c792: 9901 ldr r1, [sp, #4]
1c794: 1a54 subs r4, r2, r1
1c796: 2c00 cmp r4, #0
1c798: f300 8295 bgt.w 1ccc6 <_vfiprintf_r+0x85e>
1c79c: e9dd 2104 ldrd r2, r1, [sp, #16]
1c7a0: 9801 ldr r0, [sp, #4]
1c7a2: 4281 cmp r1, r0
1c7a4: bfac ite ge
1c7a6: 1852 addge r2, r2, r1
1c7a8: 1812 addlt r2, r2, r0
1c7aa: 9204 str r2, [sp, #16]
1c7ac: 2b00 cmp r3, #0
1c7ae: f040 820c bne.w 1cbca <_vfiprintf_r+0x762>
1c7b2: 2300 movs r3, #0
1c7b4: 930e str r3, [sp, #56] ; 0x38
1c7b6: f10d 0968 add.w r9, sp, #104 ; 0x68
1c7ba: e688 b.n 1c4ce <_vfiprintf_r+0x66>
1c7bc: 9405 str r4, [sp, #20]
1c7be: 2900 cmp r1, #0
1c7c0: f040 83a0 bne.w 1cf04 <_vfiprintf_r+0xa9c>
1c7c4: 9b06 ldr r3, [sp, #24]
1c7c6: 06ee lsls r6, r5, #27
1c7c8: f853 2b04 ldr.w r2, [r3], #4
1c7cc: 9306 str r3, [sp, #24]
1c7ce: d402 bmi.n 1c7d6 <_vfiprintf_r+0x36e>
1c7d0: 066c lsls r4, r5, #25
1c7d2: f100 8320 bmi.w 1ce16 <_vfiprintf_r+0x9ae>
1c7d6: 4613 mov r3, r2
1c7d8: 2a00 cmp r2, #0
1c7da: f2c0 82e8 blt.w 1cdae <_vfiprintf_r+0x946>
1c7de: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff
1c7e2: f89d 102f ldrb.w r1, [sp, #47] ; 0x2f
1c7e6: d006 beq.n 1c7f6 <_vfiprintf_r+0x38e>
1c7e8: f025 0080 bic.w r0, r5, #128 ; 0x80
1c7ec: 9002 str r0, [sp, #8]
1c7ee: 2a00 cmp r2, #0
1c7f0: f000 82d3 beq.w 1cd9a <_vfiprintf_r+0x932>
1c7f4: 9d02 ldr r5, [sp, #8]
1c7f6: 2b09 cmp r3, #9
1c7f8: f200 82ee bhi.w 1cdd8 <_vfiprintf_r+0x970>
1c7fc: 3330 adds r3, #48 ; 0x30
1c7fe: f88d 3067 strb.w r3, [sp, #103] ; 0x67
1c802: 2301 movs r3, #1
1c804: 9502 str r5, [sp, #8]
1c806: 9303 str r3, [sp, #12]
1c808: f10d 0467 add.w r4, sp, #103 ; 0x67
1c80c: e11b b.n 1ca46 <_vfiprintf_r+0x5de>
1c80e: f7fe fc1d bl 1b04c <__sinit>
1c812: e636 b.n 1c482 <_vfiprintf_r+0x1a>
1c814: 9b06 ldr r3, [sp, #24]
1c816: f853 4b04 ldr.w r4, [r3], #4
1c81a: 2c00 cmp r4, #0
1c81c: f280 82f1 bge.w 1ce02 <_vfiprintf_r+0x99a>
1c820: 4264 negs r4, r4
1c822: 9306 str r3, [sp, #24]
1c824: f045 0504 orr.w r5, r5, #4
1c828: e671 b.n 1c50e <_vfiprintf_r+0xa6>
1c82a: f817 2b01 ldrb.w r2, [r7], #1
1c82e: 2a2a cmp r2, #42 ; 0x2a
1c830: f000 8376 beq.w 1cf20 <_vfiprintf_r+0xab8>
1c834: f1a2 0330 sub.w r3, r2, #48 ; 0x30
1c838: 2b09 cmp r3, #9
1c83a: f04f 0a00 mov.w sl, #0
1c83e: f63f ae68 bhi.w 1c512 <_vfiprintf_r+0xaa>
1c842: f817 2b01 ldrb.w r2, [r7], #1
1c846: eb0a 0a8a add.w sl, sl, sl, lsl #2
1c84a: eb03 0a4a add.w sl, r3, sl, lsl #1
1c84e: f1a2 0330 sub.w r3, r2, #48 ; 0x30
1c852: 2b09 cmp r3, #9
1c854: d9f5 bls.n 1c842 <_vfiprintf_r+0x3da>
1c856: e65c b.n 1c512 <_vfiprintf_r+0xaa>
1c858: 9405 str r4, [sp, #20]
1c85a: 2900 cmp r1, #0
1c85c: f040 8346 bne.w 1ceec <_vfiprintf_r+0xa84>
1c860: 4b94 ldr r3, [pc, #592] ; (1cab4 <_vfiprintf_r+0x64c>)
1c862: 9309 str r3, [sp, #36] ; 0x24
1c864: 9906 ldr r1, [sp, #24]
1c866: 06ec lsls r4, r5, #27
1c868: f851 3b04 ldr.w r3, [r1], #4
1c86c: 9106 str r1, [sp, #24]
1c86e: d402 bmi.n 1c876 <_vfiprintf_r+0x40e>
1c870: 0668 lsls r0, r5, #25
1c872: bf48 it mi
1c874: b29b uxthmi r3, r3
1c876: 07e9 lsls r1, r5, #31
1c878: d502 bpl.n 1c880 <_vfiprintf_r+0x418>
1c87a: 2b00 cmp r3, #0
1c87c: f040 82ce bne.w 1ce1c <_vfiprintf_r+0x9b4>
1c880: 2202 movs r2, #2
1c882: 2100 movs r1, #0
1c884: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff
1c888: f88d 102f strb.w r1, [sp, #47] ; 0x2f
1c88c: f000 80c0 beq.w 1ca10 <_vfiprintf_r+0x5a8>
1c890: f025 0080 bic.w r0, r5, #128 ; 0x80
1c894: 9002 str r0, [sp, #8]
1c896: 2b00 cmp r3, #0
1c898: f040 80b9 bne.w 1ca0e <_vfiprintf_r+0x5a6>
1c89c: f1ba 0f00 cmp.w sl, #0
1c8a0: f040 80e7 bne.w 1ca72 <_vfiprintf_r+0x60a>
1c8a4: 2a00 cmp r2, #0
1c8a6: f040 827c bne.w 1cda2 <_vfiprintf_r+0x93a>
1c8aa: f015 0301 ands.w r3, r5, #1
1c8ae: 9303 str r3, [sp, #12]
1c8b0: f000 82aa beq.w 1ce08 <_vfiprintf_r+0x9a0>
1c8b4: 2330 movs r3, #48 ; 0x30
1c8b6: f88d 3067 strb.w r3, [sp, #103] ; 0x67
1c8ba: f10d 0467 add.w r4, sp, #103 ; 0x67
1c8be: e0c2 b.n 1ca46 <_vfiprintf_r+0x5de>
1c8c0: 9405 str r4, [sp, #20]
1c8c2: 2900 cmp r1, #0
1c8c4: f040 8315 bne.w 1cef2 <_vfiprintf_r+0xa8a>
1c8c8: 9a06 ldr r2, [sp, #24]
1c8ca: f852 3b04 ldr.w r3, [r2], #4
1c8ce: 9206 str r2, [sp, #24]
1c8d0: 06ea lsls r2, r5, #27
1c8d2: d402 bmi.n 1c8da <_vfiprintf_r+0x472>
1c8d4: 066e lsls r6, r5, #25
1c8d6: bf48 it mi
1c8d8: b29b uxthmi r3, r3
1c8da: 2201 movs r2, #1
1c8dc: e7d1 b.n 1c882 <_vfiprintf_r+0x41a>
1c8de: 9e06 ldr r6, [sp, #24]
1c8e0: 9405 str r4, [sp, #20]
1c8e2: f856 4b04 ldr.w r4, [r6], #4
1c8e6: f04f 0300 mov.w r3, #0
1c8ea: f88d 302f strb.w r3, [sp, #47] ; 0x2f
1c8ee: 2c00 cmp r4, #0
1c8f0: f000 82c7 beq.w 1ce82 <_vfiprintf_r+0xa1a>
1c8f4: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff
1c8f8: f000 82ac beq.w 1ce54 <_vfiprintf_r+0x9ec>
1c8fc: 4652 mov r2, sl
1c8fe: 2100 movs r1, #0
1c900: 4620 mov r0, r4
1c902: f7ff f83d bl 1b980 <memchr>
1c906: 2800 cmp r0, #0
1c908: f000 82df beq.w 1ceca <_vfiprintf_r+0xa62>
1c90c: 1b03 subs r3, r0, r4
1c90e: f89d 102f ldrb.w r1, [sp, #47] ; 0x2f
1c912: 9303 str r3, [sp, #12]
1c914: 9606 str r6, [sp, #24]
1c916: 9502 str r5, [sp, #8]
1c918: f04f 0a00 mov.w sl, #0
1c91c: e093 b.n 1ca46 <_vfiprintf_r+0x5de>
1c91e: 9a06 ldr r2, [sp, #24]
1c920: 9405 str r4, [sp, #20]
1c922: f852 3b04 ldr.w r3, [r2], #4
1c926: 9206 str r2, [sp, #24]
1c928: f647 0230 movw r2, #30768 ; 0x7830
1c92c: f8ad 2030 strh.w r2, [sp, #48] ; 0x30
1c930: 4a60 ldr r2, [pc, #384] ; (1cab4 <_vfiprintf_r+0x64c>)
1c932: 9209 str r2, [sp, #36] ; 0x24
1c934: f045 0502 orr.w r5, r5, #2
1c938: 2202 movs r2, #2
1c93a: e7a2 b.n 1c882 <_vfiprintf_r+0x41a>
1c93c: 9b06 ldr r3, [sp, #24]
1c93e: 9405 str r4, [sp, #20]
1c940: f04f 0200 mov.w r2, #0
1c944: f88d 202f strb.w r2, [sp, #47] ; 0x2f
1c948: f853 2b04 ldr.w r2, [r3], #4
1c94c: 9306 str r3, [sp, #24]
1c94e: 2301 movs r3, #1
1c950: f88d 2040 strb.w r2, [sp, #64] ; 0x40
1c954: 9301 str r3, [sp, #4]
1c956: 9303 str r3, [sp, #12]
1c958: ac10 add r4, sp, #64 ; 0x40
1c95a: e6a2 b.n 1c6a2 <_vfiprintf_r+0x23a>
1c95c: 9405 str r4, [sp, #20]
1c95e: 2900 cmp r1, #0
1c960: f040 82ca bne.w 1cef8 <_vfiprintf_r+0xa90>
1c964: 4b54 ldr r3, [pc, #336] ; (1cab8 <_vfiprintf_r+0x650>)
1c966: 9309 str r3, [sp, #36] ; 0x24
1c968: e77c b.n 1c864 <_vfiprintf_r+0x3fc>
1c96a: 9a06 ldr r2, [sp, #24]
1c96c: 9405 str r4, [sp, #20]
1c96e: f852 3b04 ldr.w r3, [r2], #4
1c972: 9206 str r2, [sp, #24]
1c974: f045 0510 orr.w r5, r5, #16
1c978: e7af b.n 1c8da <_vfiprintf_r+0x472>
1c97a: 9a06 ldr r2, [sp, #24]
1c97c: 9405 str r4, [sp, #20]
1c97e: f852 3b04 ldr.w r3, [r2], #4
1c982: 9206 str r2, [sp, #24]
1c984: f045 0510 orr.w r5, r5, #16
1c988: 2200 movs r2, #0
1c98a: e77a b.n 1c882 <_vfiprintf_r+0x41a>
1c98c: 9405 str r4, [sp, #20]
1c98e: 2900 cmp r1, #0
1c990: f040 82a3 bne.w 1ceda <_vfiprintf_r+0xa72>
1c994: 9a06 ldr r2, [sp, #24]
1c996: f015 0110 ands.w r1, r5, #16
1c99a: f852 3b04 ldr.w r3, [r2], #4
1c99e: 9206 str r2, [sp, #24]
1c9a0: d1f2 bne.n 1c988 <_vfiprintf_r+0x520>
1c9a2: f015 0240 ands.w r2, r5, #64 ; 0x40
1c9a6: f43f af6c beq.w 1c882 <_vfiprintf_r+0x41a>
1c9aa: b29b uxth r3, r3
1c9ac: 460a mov r2, r1
1c9ae: e768 b.n 1c882 <_vfiprintf_r+0x41a>
1c9b0: 2900 cmp r1, #0
1c9b2: f040 8295 bne.w 1cee0 <_vfiprintf_r+0xa78>
1c9b6: 9a06 ldr r2, [sp, #24]
1c9b8: 06e8 lsls r0, r5, #27
1c9ba: f102 0304 add.w r3, r2, #4
1c9be: d407 bmi.n 1c9d0 <_vfiprintf_r+0x568>
1c9c0: 0669 lsls r1, r5, #25
1c9c2: 9a06 ldr r2, [sp, #24]
1c9c4: d504 bpl.n 1c9d0 <_vfiprintf_r+0x568>
1c9c6: 6812 ldr r2, [r2, #0]
1c9c8: 9904 ldr r1, [sp, #16]
1c9ca: 8011 strh r1, [r2, #0]
1c9cc: 9306 str r3, [sp, #24]
1c9ce: e57e b.n 1c4ce <_vfiprintf_r+0x66>
1c9d0: 6812 ldr r2, [r2, #0]
1c9d2: 9904 ldr r1, [sp, #16]
1c9d4: 6011 str r1, [r2, #0]
1c9d6: 9306 str r3, [sp, #24]
1c9d8: e579 b.n 1c4ce <_vfiprintf_r+0x66>
1c9da: f045 0540 orr.w r5, r5, #64 ; 0x40
1c9de: e596 b.n 1c50e <_vfiprintf_r+0xa6>
1c9e0: f045 0501 orr.w r5, r5, #1
1c9e4: e593 b.n 1c50e <_vfiprintf_r+0xa6>
1c9e6: 2800 cmp r0, #0
1c9e8: f47f ad91 bne.w 1c50e <_vfiprintf_r+0xa6>
1c9ec: 2101 movs r1, #1
1c9ee: 2020 movs r0, #32
1c9f0: e58d b.n 1c50e <_vfiprintf_r+0xa6>
1c9f2: 9405 str r4, [sp, #20]
1c9f4: 2900 cmp r1, #0
1c9f6: f040 8276 bne.w 1cee6 <_vfiprintf_r+0xa7e>
1c9fa: 9b06 ldr r3, [sp, #24]
1c9fc: f853 2b04 ldr.w r2, [r3], #4
1ca00: 9306 str r3, [sp, #24]
1ca02: f045 0510 orr.w r5, r5, #16
1ca06: e6e6 b.n 1c7d6 <_vfiprintf_r+0x36e>
1ca08: f045 0580 orr.w r5, r5, #128 ; 0x80
1ca0c: e57f b.n 1c50e <_vfiprintf_r+0xa6>
1ca0e: 9d02 ldr r5, [sp, #8]
1ca10: 2a01 cmp r2, #1
1ca12: f43f aef0 beq.w 1c7f6 <_vfiprintf_r+0x38e>
1ca16: 2a02 cmp r2, #2
1ca18: d031 beq.n 1ca7e <_vfiprintf_r+0x616>
1ca1a: ac1a add r4, sp, #104 ; 0x68
1ca1c: f003 0207 and.w r2, r3, #7
1ca20: 3230 adds r2, #48 ; 0x30
1ca22: 08db lsrs r3, r3, #3
1ca24: 4620 mov r0, r4
1ca26: f804 2d01 strb.w r2, [r4, #-1]!
1ca2a: d1f7 bne.n 1ca1c <_vfiprintf_r+0x5b4>
1ca2c: 07ee lsls r6, r5, #31
1ca2e: d52f bpl.n 1ca90 <_vfiprintf_r+0x628>
1ca30: 2a30 cmp r2, #48 ; 0x30
1ca32: d02d beq.n 1ca90 <_vfiprintf_r+0x628>
1ca34: 2330 movs r3, #48 ; 0x30
1ca36: 3802 subs r0, #2
1ca38: f804 3c01 strb.w r3, [r4, #-1]
1ca3c: ab1a add r3, sp, #104 ; 0x68
1ca3e: 1a1b subs r3, r3, r0
1ca40: 9502 str r5, [sp, #8]
1ca42: 9303 str r3, [sp, #12]
1ca44: 4604 mov r4, r0
1ca46: 9b03 ldr r3, [sp, #12]
1ca48: 4553 cmp r3, sl
1ca4a: bfb8 it lt
1ca4c: 4653 movlt r3, sl
1ca4e: 9301 str r3, [sp, #4]
1ca50: 2900 cmp r1, #0
1ca52: f43f ae29 beq.w 1c6a8 <_vfiprintf_r+0x240>
1ca56: 3301 adds r3, #1
1ca58: 9301 str r3, [sp, #4]
1ca5a: e625 b.n 1c6a8 <_vfiprintf_r+0x240>
1ca5c: 9b03 ldr r3, [sp, #12]
1ca5e: 941a str r4, [sp, #104] ; 0x68
1ca60: 2201 movs r2, #1
1ca62: 931b str r3, [sp, #108] ; 0x6c
1ca64: 930f str r3, [sp, #60] ; 0x3c
1ca66: 920e str r2, [sp, #56] ; 0x38
1ca68: f10d 0968 add.w r9, sp, #104 ; 0x68
1ca6c: f109 0908 add.w r9, r9, #8
1ca70: e68b b.n 1c78a <_vfiprintf_r+0x322>
1ca72: 2a01 cmp r2, #1
1ca74: f000 8227 beq.w 1cec6 <_vfiprintf_r+0xa5e>
1ca78: 2a02 cmp r2, #2
1ca7a: 9d02 ldr r5, [sp, #8]
1ca7c: d1cd bne.n 1ca1a <_vfiprintf_r+0x5b2>
1ca7e: 9809 ldr r0, [sp, #36] ; 0x24
1ca80: ac1a add r4, sp, #104 ; 0x68
1ca82: f003 020f and.w r2, r3, #15
1ca86: 091b lsrs r3, r3, #4
1ca88: 5c82 ldrb r2, [r0, r2]
1ca8a: f804 2d01 strb.w r2, [r4, #-1]!
1ca8e: d1f8 bne.n 1ca82 <_vfiprintf_r+0x61a>
1ca90: ab1a add r3, sp, #104 ; 0x68
1ca92: 1b1b subs r3, r3, r4
1ca94: 9502 str r5, [sp, #8]
1ca96: 9303 str r3, [sp, #12]
1ca98: e7d5 b.n 1ca46 <_vfiprintf_r+0x5de>
1ca9a: 9b05 ldr r3, [sp, #20]
1ca9c: 9801 ldr r0, [sp, #4]
1ca9e: 1a1e subs r6, r3, r0
1caa0: 2e00 cmp r6, #0
1caa2: f77f ae52 ble.w 1c74a <_vfiprintf_r+0x2e2>
1caa6: 2e10 cmp r6, #16
1caa8: f340 8232 ble.w 1cf10 <_vfiprintf_r+0xaa8>
1caac: 4d03 ldr r5, [pc, #12] ; (1cabc <_vfiprintf_r+0x654>)
1caae: 4663 mov r3, ip
1cab0: e00d b.n 1cace <_vfiprintf_r+0x666>
1cab2: bf00 nop
1cab4: 0002c164 .word 0x0002c164
1cab8: 0002c150 .word 0x0002c150
1cabc: 0002c40c .word 0x0002c40c
1cac0: 1c91 adds r1, r2, #2
1cac2: f109 0908 add.w r9, r9, #8
1cac6: 4602 mov r2, r0
1cac8: 3e10 subs r6, #16
1caca: 2e10 cmp r6, #16
1cacc: dd1d ble.n 1cb0a <_vfiprintf_r+0x6a2>
1cace: 1c50 adds r0, r2, #1
1cad0: 3310 adds r3, #16
1cad2: 2110 movs r1, #16
1cad4: 2807 cmp r0, #7
1cad6: e9cd 030e strd r0, r3, [sp, #56] ; 0x38
1cada: f8c9 5000 str.w r5, [r9]
1cade: f8c9 1004 str.w r1, [r9, #4]
1cae2: dded ble.n 1cac0 <_vfiprintf_r+0x658>
1cae4: aa0d add r2, sp, #52 ; 0x34
1cae6: 2b00 cmp r3, #0
1cae8: d078 beq.n 1cbdc <_vfiprintf_r+0x774>
1caea: 4641 mov r1, r8
1caec: 4658 mov r0, fp
1caee: f10d 0968 add.w r9, sp, #104 ; 0x68
1caf2: f7ff fc73 bl 1c3dc <__sprint_r.part.0>
1caf6: 2800 cmp r0, #0
1caf8: f47f adba bne.w 1c670 <_vfiprintf_r+0x208>
1cafc: e9dd 230e ldrd r2, r3, [sp, #56] ; 0x38
1cb00: 3e10 subs r6, #16
1cb02: 2e10 cmp r6, #16
1cb04: f102 0101 add.w r1, r2, #1
1cb08: dce1 bgt.n 1cace <_vfiprintf_r+0x666>
1cb0a: 4608 mov r0, r1
1cb0c: 469c mov ip, r3
1cb0e: 44b4 add ip, r6
1cb10: 2807 cmp r0, #7
1cb12: e9cd 0c0e strd r0, ip, [sp, #56] ; 0x38
1cb16: f8c9 5000 str.w r5, [r9]
1cb1a: f8c9 6004 str.w r6, [r9, #4]
1cb1e: f340 8175 ble.w 1ce0c <_vfiprintf_r+0x9a4>
1cb22: f1bc 0f00 cmp.w ip, #0
1cb26: f000 81b5 beq.w 1ce94 <_vfiprintf_r+0xa2c>
1cb2a: aa0d add r2, sp, #52 ; 0x34
1cb2c: 4641 mov r1, r8
1cb2e: 4658 mov r0, fp
1cb30: f7ff fc54 bl 1c3dc <__sprint_r.part.0>
1cb34: 2800 cmp r0, #0
1cb36: f47f ad9b bne.w 1c670 <_vfiprintf_r+0x208>
1cb3a: 9b03 ldr r3, [sp, #12]
1cb3c: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38
1cb40: ebaa 0603 sub.w r6, sl, r3
1cb44: 2e00 cmp r6, #0
1cb46: f102 0101 add.w r1, r2, #1
1cb4a: f10d 0968 add.w r9, sp, #104 ; 0x68
1cb4e: f77f ae02 ble.w 1c756 <_vfiprintf_r+0x2ee>
1cb52: 2e10 cmp r6, #16
1cb54: 4dbc ldr r5, [pc, #752] ; (1ce48 <_vfiprintf_r+0x9e0>)
1cb56: dd25 ble.n 1cba4 <_vfiprintf_r+0x73c>
1cb58: f04f 0a10 mov.w sl, #16
1cb5c: 4663 mov r3, ip
1cb5e: e006 b.n 1cb6e <_vfiprintf_r+0x706>
1cb60: 1c91 adds r1, r2, #2
1cb62: f109 0908 add.w r9, r9, #8
1cb66: 4602 mov r2, r0
1cb68: 3e10 subs r6, #16
1cb6a: 2e10 cmp r6, #16
1cb6c: dd19 ble.n 1cba2 <_vfiprintf_r+0x73a>
1cb6e: 1c50 adds r0, r2, #1
1cb70: 3310 adds r3, #16
1cb72: 2807 cmp r0, #7
1cb74: e9c9 5a00 strd r5, sl, [r9]
1cb78: e9cd 030e strd r0, r3, [sp, #56] ; 0x38
1cb7c: ddf0 ble.n 1cb60 <_vfiprintf_r+0x6f8>
1cb7e: aa0d add r2, sp, #52 ; 0x34
1cb80: 4641 mov r1, r8
1cb82: b1eb cbz r3, 1cbc0 <_vfiprintf_r+0x758>
1cb84: 4658 mov r0, fp
1cb86: f10d 0968 add.w r9, sp, #104 ; 0x68
1cb8a: f7ff fc27 bl 1c3dc <__sprint_r.part.0>
1cb8e: 2800 cmp r0, #0
1cb90: f47f ad6e bne.w 1c670 <_vfiprintf_r+0x208>
1cb94: e9dd 230e ldrd r2, r3, [sp, #56] ; 0x38
1cb98: 3e10 subs r6, #16
1cb9a: 2e10 cmp r6, #16
1cb9c: f102 0101 add.w r1, r2, #1
1cba0: dce5 bgt.n 1cb6e <_vfiprintf_r+0x706>
1cba2: 469c mov ip, r3
1cba4: 44b4 add ip, r6
1cba6: 2907 cmp r1, #7
1cba8: e9cd 1c0e strd r1, ip, [sp, #56] ; 0x38
1cbac: f8c9 5000 str.w r5, [r9]
1cbb0: f8c9 6004 str.w r6, [r9, #4]
1cbb4: f300 80d2 bgt.w 1cd5c <_vfiprintf_r+0x8f4>
1cbb8: f109 0908 add.w r9, r9, #8
1cbbc: 3101 adds r1, #1
1cbbe: e5ca b.n 1c756 <_vfiprintf_r+0x2ee>
1cbc0: 2101 movs r1, #1
1cbc2: 461a mov r2, r3
1cbc4: f10d 0968 add.w r9, sp, #104 ; 0x68
1cbc8: e7ce b.n 1cb68 <_vfiprintf_r+0x700>
1cbca: aa0d add r2, sp, #52 ; 0x34
1cbcc: 4641 mov r1, r8
1cbce: 4658 mov r0, fp
1cbd0: f7ff fc04 bl 1c3dc <__sprint_r.part.0>
1cbd4: 2800 cmp r0, #0
1cbd6: f43f adec beq.w 1c7b2 <_vfiprintf_r+0x34a>
1cbda: e549 b.n 1c670 <_vfiprintf_r+0x208>
1cbdc: 2101 movs r1, #1
1cbde: 461a mov r2, r3
1cbe0: f10d 0968 add.w r9, sp, #104 ; 0x68
1cbe4: e770 b.n 1cac8 <_vfiprintf_r+0x660>
1cbe6: f1bc 0f00 cmp.w ip, #0
1cbea: f000 80ca beq.w 1cd82 <_vfiprintf_r+0x91a>
1cbee: aa0d add r2, sp, #52 ; 0x34
1cbf0: 4641 mov r1, r8
1cbf2: 4658 mov r0, fp
1cbf4: f7ff fbf2 bl 1c3dc <__sprint_r.part.0>
1cbf8: 2800 cmp r0, #0
1cbfa: f47f ad39 bne.w 1c670 <_vfiprintf_r+0x208>
1cbfe: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38
1cc02: f10d 0968 add.w r9, sp, #104 ; 0x68
1cc06: 1c51 adds r1, r2, #1
1cc08: e57b b.n 1c702 <_vfiprintf_r+0x29a>
1cc0a: 2302 movs r3, #2
1cc0c: 931b str r3, [sp, #108] ; 0x6c
1cc0e: 469c mov ip, r3
1cc10: ab0c add r3, sp, #48 ; 0x30
1cc12: 931a str r3, [sp, #104] ; 0x68
1cc14: 2101 movs r1, #1
1cc16: f10d 0968 add.w r9, sp, #104 ; 0x68
1cc1a: 460a mov r2, r1
1cc1c: f109 0908 add.w r9, r9, #8
1cc20: 1c51 adds r1, r2, #1
1cc22: e58e b.n 1c742 <_vfiprintf_r+0x2da>
1cc24: 2d10 cmp r5, #16
1cc26: f340 816a ble.w 1cefe <_vfiprintf_r+0xa96>
1cc2a: 4649 mov r1, r9
1cc2c: 4e87 ldr r6, [pc, #540] ; (1ce4c <_vfiprintf_r+0x9e4>)
1cc2e: 46b9 mov r9, r7
1cc30: 2310 movs r3, #16
1cc32: 4627 mov r7, r4
1cc34: 4664 mov r4, ip
1cc36: e007 b.n 1cc48 <_vfiprintf_r+0x7e0>
1cc38: f102 0e02 add.w lr, r2, #2
1cc3c: 3108 adds r1, #8
1cc3e: 4602 mov r2, r0
1cc40: 3d10 subs r5, #16
1cc42: 2d10 cmp r5, #16
1cc44: dd1a ble.n 1cc7c <_vfiprintf_r+0x814>
1cc46: 1c50 adds r0, r2, #1
1cc48: 3410 adds r4, #16
1cc4a: 2807 cmp r0, #7
1cc4c: e9c1 6300 strd r6, r3, [r1]
1cc50: e9cd 040e strd r0, r4, [sp, #56] ; 0x38
1cc54: ddf0 ble.n 1cc38 <_vfiprintf_r+0x7d0>
1cc56: aa0d add r2, sp, #52 ; 0x34
1cc58: 4641 mov r1, r8
1cc5a: 4658 mov r0, fp
1cc5c: b31c cbz r4, 1cca6 <_vfiprintf_r+0x83e>
1cc5e: f7ff fbbd bl 1c3dc <__sprint_r.part.0>
1cc62: 2800 cmp r0, #0
1cc64: f47f ad04 bne.w 1c670 <_vfiprintf_r+0x208>
1cc68: e9dd 240e ldrd r2, r4, [sp, #56] ; 0x38
1cc6c: 3d10 subs r5, #16
1cc6e: 2d10 cmp r5, #16
1cc70: f102 0e01 add.w lr, r2, #1
1cc74: a91a add r1, sp, #104 ; 0x68
1cc76: f04f 0310 mov.w r3, #16
1cc7a: dce4 bgt.n 1cc46 <_vfiprintf_r+0x7de>
1cc7c: 46a4 mov ip, r4
1cc7e: 463c mov r4, r7
1cc80: 464f mov r7, r9
1cc82: 4689 mov r9, r1
1cc84: 44ac add ip, r5
1cc86: f1be 0f07 cmp.w lr, #7
1cc8a: e9cd ec0e strd lr, ip, [sp, #56] ; 0x38
1cc8e: f8c9 6000 str.w r6, [r9]
1cc92: f8c9 5004 str.w r5, [r9, #4]
1cc96: f300 808e bgt.w 1cdb6 <_vfiprintf_r+0x94e>
1cc9a: f109 0908 add.w r9, r9, #8
1cc9e: f10e 0101 add.w r1, lr, #1
1cca2: 4672 mov r2, lr
1cca4: e517 b.n 1c6d6 <_vfiprintf_r+0x26e>
1cca6: 4622 mov r2, r4
1cca8: f04f 0e01 mov.w lr, #1
1ccac: a91a add r1, sp, #104 ; 0x68
1ccae: e7c7 b.n 1cc40 <_vfiprintf_r+0x7d8>
1ccb0: 9a02 ldr r2, [sp, #8]
1ccb2: 930e str r3, [sp, #56] ; 0x38
1ccb4: 0751 lsls r1, r2, #29
1ccb6: d548 bpl.n 1cd4a <_vfiprintf_r+0x8e2>
1ccb8: 9a05 ldr r2, [sp, #20]
1ccba: 9901 ldr r1, [sp, #4]
1ccbc: 1a54 subs r4, r2, r1
1ccbe: 2c00 cmp r4, #0
1ccc0: dd43 ble.n 1cd4a <_vfiprintf_r+0x8e2>
1ccc2: f10d 0968 add.w r9, sp, #104 ; 0x68
1ccc6: 2c10 cmp r4, #16
1ccc8: 990e ldr r1, [sp, #56] ; 0x38
1ccca: f340 811e ble.w 1cf0a <_vfiprintf_r+0xaa2>
1ccce: 4e5f ldr r6, [pc, #380] ; (1ce4c <_vfiprintf_r+0x9e4>)
1ccd0: 2510 movs r5, #16
1ccd2: 4608 mov r0, r1
1ccd4: e006 b.n 1cce4 <_vfiprintf_r+0x87c>
1ccd6: 1c81 adds r1, r0, #2
1ccd8: f109 0908 add.w r9, r9, #8
1ccdc: 4610 mov r0, r2
1ccde: 3c10 subs r4, #16
1cce0: 2c10 cmp r4, #16
1cce2: dd19 ble.n 1cd18 <_vfiprintf_r+0x8b0>
1cce4: 1c42 adds r2, r0, #1
1cce6: 3310 adds r3, #16
1cce8: 2a07 cmp r2, #7
1ccea: e9c9 6500 strd r6, r5, [r9]
1ccee: e9cd 230e strd r2, r3, [sp, #56] ; 0x38
1ccf2: ddf0 ble.n 1ccd6 <_vfiprintf_r+0x86e>
1ccf4: aa0d add r2, sp, #52 ; 0x34
1ccf6: b31b cbz r3, 1cd40 <_vfiprintf_r+0x8d8>
1ccf8: 4641 mov r1, r8
1ccfa: 4658 mov r0, fp
1ccfc: f7ff fb6e bl 1c3dc <__sprint_r.part.0>
1cd00: 2800 cmp r0, #0
1cd02: f47f acb5 bne.w 1c670 <_vfiprintf_r+0x208>
1cd06: e9dd 030e ldrd r0, r3, [sp, #56] ; 0x38
1cd0a: 3c10 subs r4, #16
1cd0c: 2c10 cmp r4, #16
1cd0e: f100 0101 add.w r1, r0, #1
1cd12: f10d 0968 add.w r9, sp, #104 ; 0x68
1cd16: dce5 bgt.n 1cce4 <_vfiprintf_r+0x87c>
1cd18: 4608 mov r0, r1
1cd1a: 4423 add r3, r4
1cd1c: 2807 cmp r0, #7
1cd1e: e9c9 6400 strd r6, r4, [r9]
1cd22: e9cd 030e strd r0, r3, [sp, #56] ; 0x38
1cd26: f77f ad39 ble.w 1c79c <_vfiprintf_r+0x334>
1cd2a: b173 cbz r3, 1cd4a <_vfiprintf_r+0x8e2>
1cd2c: aa0d add r2, sp, #52 ; 0x34
1cd2e: 4641 mov r1, r8
1cd30: 4658 mov r0, fp
1cd32: f7ff fb53 bl 1c3dc <__sprint_r.part.0>
1cd36: 2800 cmp r0, #0
1cd38: f47f ac9a bne.w 1c670 <_vfiprintf_r+0x208>
1cd3c: 9b0f ldr r3, [sp, #60] ; 0x3c
1cd3e: e52d b.n 1c79c <_vfiprintf_r+0x334>
1cd40: 2101 movs r1, #1
1cd42: 4618 mov r0, r3
1cd44: f10d 0968 add.w r9, sp, #104 ; 0x68
1cd48: e7c9 b.n 1ccde <_vfiprintf_r+0x876>
1cd4a: e9dd 3204 ldrd r3, r2, [sp, #16]
1cd4e: 9901 ldr r1, [sp, #4]
1cd50: 428a cmp r2, r1
1cd52: bfac ite ge
1cd54: 189b addge r3, r3, r2
1cd56: 185b addlt r3, r3, r1
1cd58: 9304 str r3, [sp, #16]
1cd5a: e52a b.n 1c7b2 <_vfiprintf_r+0x34a>
1cd5c: f1bc 0f00 cmp.w ip, #0
1cd60: f43f ae7c beq.w 1ca5c <_vfiprintf_r+0x5f4>
1cd64: aa0d add r2, sp, #52 ; 0x34
1cd66: 4641 mov r1, r8
1cd68: 4658 mov r0, fp
1cd6a: f7ff fb37 bl 1c3dc <__sprint_r.part.0>
1cd6e: 2800 cmp r0, #0
1cd70: f47f ac7e bne.w 1c670 <_vfiprintf_r+0x208>
1cd74: 990e ldr r1, [sp, #56] ; 0x38
1cd76: f8dd c03c ldr.w ip, [sp, #60] ; 0x3c
1cd7a: 3101 adds r1, #1
1cd7c: f10d 0968 add.w r9, sp, #104 ; 0x68
1cd80: e4e9 b.n 1c756 <_vfiprintf_r+0x2ee>
1cd82: 9b07 ldr r3, [sp, #28]
1cd84: 2b00 cmp r3, #0
1cd86: d152 bne.n 1ce2e <_vfiprintf_r+0x9c6>
1cd88: 2101 movs r1, #1
1cd8a: 4662 mov r2, ip
1cd8c: f10d 0968 add.w r9, sp, #104 ; 0x68
1cd90: e4d7 b.n 1c742 <_vfiprintf_r+0x2da>
1cd92: 920e str r2, [sp, #56] ; 0x38
1cd94: f10d 0968 add.w r9, sp, #104 ; 0x68
1cd98: e456 b.n 1c648 <_vfiprintf_r+0x1e0>
1cd9a: f1ba 0f00 cmp.w sl, #0
1cd9e: f040 8092 bne.w 1cec6 <_vfiprintf_r+0xa5e>
1cda2: f04f 0a00 mov.w sl, #0
1cda6: f8cd a00c str.w sl, [sp, #12]
1cdaa: ac1a add r4, sp, #104 ; 0x68
1cdac: e64b b.n 1ca46 <_vfiprintf_r+0x5de>
1cdae: 4253 negs r3, r2
1cdb0: 212d movs r1, #45 ; 0x2d
1cdb2: 2201 movs r2, #1
1cdb4: e566 b.n 1c884 <_vfiprintf_r+0x41c>
1cdb6: f1bc 0f00 cmp.w ip, #0
1cdba: d056 beq.n 1ce6a <_vfiprintf_r+0xa02>
1cdbc: aa0d add r2, sp, #52 ; 0x34
1cdbe: 4641 mov r1, r8
1cdc0: 4658 mov r0, fp
1cdc2: f7ff fb0b bl 1c3dc <__sprint_r.part.0>
1cdc6: 2800 cmp r0, #0
1cdc8: f47f ac52 bne.w 1c670 <_vfiprintf_r+0x208>
1cdcc: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38
1cdd0: f10d 0968 add.w r9, sp, #104 ; 0x68
1cdd4: 1c51 adds r1, r2, #1
1cdd6: e47e b.n 1c6d6 <_vfiprintf_r+0x26e>
1cdd8: 4e1d ldr r6, [pc, #116] ; (1ce50 <_vfiprintf_r+0x9e8>)
1cdda: ac1a add r4, sp, #104 ; 0x68
1cddc: fba6 0203 umull r0, r2, r6, r3
1cde0: 08d2 lsrs r2, r2, #3
1cde2: eb02 0082 add.w r0, r2, r2, lsl #2
1cde6: eba3 0040 sub.w r0, r3, r0, lsl #1
1cdea: 3030 adds r0, #48 ; 0x30
1cdec: f804 0d01 strb.w r0, [r4, #-1]!
1cdf0: 4618 mov r0, r3
1cdf2: 2809 cmp r0, #9
1cdf4: 4613 mov r3, r2
1cdf6: d8f1 bhi.n 1cddc <_vfiprintf_r+0x974>
1cdf8: ab1a add r3, sp, #104 ; 0x68
1cdfa: 1b1b subs r3, r3, r4
1cdfc: 9502 str r5, [sp, #8]
1cdfe: 9303 str r3, [sp, #12]
1ce00: e621 b.n 1ca46 <_vfiprintf_r+0x5de>
1ce02: 9306 str r3, [sp, #24]
1ce04: f7ff bb83 b.w 1c50e <_vfiprintf_r+0xa6>
1ce08: ac1a add r4, sp, #104 ; 0x68
1ce0a: e61c b.n 1ca46 <_vfiprintf_r+0x5de>
1ce0c: f109 0908 add.w r9, r9, #8
1ce10: 1c41 adds r1, r0, #1
1ce12: 4602 mov r2, r0
1ce14: e499 b.n 1c74a <_vfiprintf_r+0x2e2>
1ce16: b212 sxth r2, r2
1ce18: 4613 mov r3, r2
1ce1a: e4dd b.n 1c7d8 <_vfiprintf_r+0x370>
1ce1c: f88d 2031 strb.w r2, [sp, #49] ; 0x31
1ce20: 2230 movs r2, #48 ; 0x30
1ce22: f88d 2030 strb.w r2, [sp, #48] ; 0x30
1ce26: f045 0502 orr.w r5, r5, #2
1ce2a: 2202 movs r2, #2
1ce2c: e529 b.n 1c882 <_vfiprintf_r+0x41a>
1ce2e: 2302 movs r3, #2
1ce30: 931b str r3, [sp, #108] ; 0x6c
1ce32: 469c mov ip, r3
1ce34: ab0c add r3, sp, #48 ; 0x30
1ce36: 931a str r3, [sp, #104] ; 0x68
1ce38: f10d 0968 add.w r9, sp, #104 ; 0x68
1ce3c: e6ee b.n 1cc1c <_vfiprintf_r+0x7b4>
1ce3e: 2101 movs r1, #1
1ce40: 202b movs r0, #43 ; 0x2b
1ce42: f7ff bb64 b.w 1c50e <_vfiprintf_r+0xa6>
1ce46: bf00 nop
1ce48: 0002c40c .word 0x0002c40c
1ce4c: 0002c3fc .word 0x0002c3fc
1ce50: cccccccd .word 0xcccccccd
1ce54: 4620 mov r0, r4
1ce56: 9606 str r6, [sp, #24]
1ce58: 9502 str r5, [sp, #8]
1ce5a: f7fa fb11 bl 17480 <strlen>
1ce5e: f04f 0a00 mov.w sl, #0
1ce62: f89d 102f ldrb.w r1, [sp, #47] ; 0x2f
1ce66: 9003 str r0, [sp, #12]
1ce68: e5ed b.n 1ca46 <_vfiprintf_r+0x5de>
1ce6a: f89d 202f ldrb.w r2, [sp, #47] ; 0x2f
1ce6e: b1b2 cbz r2, 1ce9e <_vfiprintf_r+0xa36>
1ce70: 2101 movs r1, #1
1ce72: f10d 022f add.w r2, sp, #47 ; 0x2f
1ce76: 911b str r1, [sp, #108] ; 0x6c
1ce78: 921a str r2, [sp, #104] ; 0x68
1ce7a: f10d 0968 add.w r9, sp, #104 ; 0x68
1ce7e: 468c mov ip, r1
1ce80: e43b b.n 1c6fa <_vfiprintf_r+0x292>
1ce82: 4653 mov r3, sl
1ce84: 2b06 cmp r3, #6
1ce86: bf28 it cs
1ce88: 2306 movcs r3, #6
1ce8a: 4c29 ldr r4, [pc, #164] ; (1cf30 <_vfiprintf_r+0xac8>)
1ce8c: 9303 str r3, [sp, #12]
1ce8e: 9606 str r6, [sp, #24]
1ce90: 9301 str r3, [sp, #4]
1ce92: e406 b.n 1c6a2 <_vfiprintf_r+0x23a>
1ce94: 2101 movs r1, #1
1ce96: 4662 mov r2, ip
1ce98: f10d 0968 add.w r9, sp, #104 ; 0x68
1ce9c: e455 b.n 1c74a <_vfiprintf_r+0x2e2>
1ce9e: 9b07 ldr r3, [sp, #28]
1cea0: 2b00 cmp r3, #0
1cea2: f47f aeb2 bne.w 1cc0a <_vfiprintf_r+0x7a2>
1cea6: 4662 mov r2, ip
1cea8: 2101 movs r1, #1
1ceaa: f10d 0968 add.w r9, sp, #104 ; 0x68
1ceae: e44c b.n 1c74a <_vfiprintf_r+0x2e2>
1ceb0: f88d 002f strb.w r0, [sp, #47] ; 0x2f
1ceb4: f7ff bbe9 b.w 1c68a <_vfiprintf_r+0x222>
1ceb8: aa0d add r2, sp, #52 ; 0x34
1ceba: 4641 mov r1, r8
1cebc: 4658 mov r0, fp
1cebe: f7ff fa8d bl 1c3dc <__sprint_r.part.0>
1cec2: f7ff bbd5 b.w 1c670 <_vfiprintf_r+0x208>
1cec6: 9d02 ldr r5, [sp, #8]
1cec8: e498 b.n 1c7fc <_vfiprintf_r+0x394>
1ceca: f8cd a00c str.w sl, [sp, #12]
1cece: f89d 102f ldrb.w r1, [sp, #47] ; 0x2f
1ced2: 9606 str r6, [sp, #24]
1ced4: 9502 str r5, [sp, #8]
1ced6: 4682 mov sl, r0
1ced8: e5b5 b.n 1ca46 <_vfiprintf_r+0x5de>
1ceda: f88d 002f strb.w r0, [sp, #47] ; 0x2f
1cede: e559 b.n 1c994 <_vfiprintf_r+0x52c>
1cee0: f88d 002f strb.w r0, [sp, #47] ; 0x2f
1cee4: e567 b.n 1c9b6 <_vfiprintf_r+0x54e>
1cee6: f88d 002f strb.w r0, [sp, #47] ; 0x2f
1ceea: e586 b.n 1c9fa <_vfiprintf_r+0x592>
1ceec: f88d 002f strb.w r0, [sp, #47] ; 0x2f
1cef0: e4b6 b.n 1c860 <_vfiprintf_r+0x3f8>
1cef2: f88d 002f strb.w r0, [sp, #47] ; 0x2f
1cef6: e4e7 b.n 1c8c8 <_vfiprintf_r+0x460>
1cef8: f88d 002f strb.w r0, [sp, #47] ; 0x2f
1cefc: e532 b.n 1c964 <_vfiprintf_r+0x4fc>
1cefe: 4e0d ldr r6, [pc, #52] ; (1cf34 <_vfiprintf_r+0xacc>)
1cf00: 4686 mov lr, r0
1cf02: e6bf b.n 1cc84 <_vfiprintf_r+0x81c>
1cf04: f88d 002f strb.w r0, [sp, #47] ; 0x2f
1cf08: e45c b.n 1c7c4 <_vfiprintf_r+0x35c>
1cf0a: 4e0a ldr r6, [pc, #40] ; (1cf34 <_vfiprintf_r+0xacc>)
1cf0c: 1c48 adds r0, r1, #1
1cf0e: e704 b.n 1cd1a <_vfiprintf_r+0x8b2>
1cf10: 4d09 ldr r5, [pc, #36] ; (1cf38 <_vfiprintf_r+0xad0>)
1cf12: 4608 mov r0, r1
1cf14: e5fb b.n 1cb0e <_vfiprintf_r+0x6a6>
1cf16: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff
1cf1a: 9304 str r3, [sp, #16]
1cf1c: f7ff bbad b.w 1c67a <_vfiprintf_r+0x212>
1cf20: 9b06 ldr r3, [sp, #24]
1cf22: f853 2b04 ldr.w r2, [r3], #4
1cf26: 9306 str r3, [sp, #24]
1cf28: ea42 7ae2 orr.w sl, r2, r2, asr #31
1cf2c: f7ff baef b.w 1c50e <_vfiprintf_r+0xa6>
1cf30: 0002c178 .word 0x0002c178
1cf34: 0002c3fc .word 0x0002c3fc
1cf38: 0002c40c .word 0x0002c40c
0001cf3c <__sbprintf>:
1cf3c: b570 push {r4, r5, r6, lr}
1cf3e: 460c mov r4, r1
1cf40: 8989 ldrh r1, [r1, #12]
1cf42: f5ad 6d8d sub.w sp, sp, #1128 ; 0x468
1cf46: f021 0102 bic.w r1, r1, #2
1cf4a: f8ad 1010 strh.w r1, [sp, #16]
1cf4e: 6e21 ldr r1, [r4, #96] ; 0x60
1cf50: 9119 str r1, [sp, #100] ; 0x64
1cf52: 89e1 ldrh r1, [r4, #14]
1cf54: f8ad 1012 strh.w r1, [sp, #18]
1cf58: 69e1 ldr r1, [r4, #28]
1cf5a: 9108 str r1, [sp, #32]
1cf5c: 6a61 ldr r1, [r4, #36] ; 0x24
1cf5e: 910a str r1, [sp, #40] ; 0x28
1cf60: a91a add r1, sp, #104 ; 0x68
1cf62: 9101 str r1, [sp, #4]
1cf64: 9105 str r1, [sp, #20]
1cf66: f44f 6180 mov.w r1, #1024 ; 0x400
1cf6a: 9103 str r1, [sp, #12]
1cf6c: 9106 str r1, [sp, #24]
1cf6e: 2100 movs r1, #0
1cf70: 9107 str r1, [sp, #28]
1cf72: a901 add r1, sp, #4
1cf74: 4606 mov r6, r0
1cf76: f7ff fa77 bl 1c468 <_vfiprintf_r>
1cf7a: 1e05 subs r5, r0, #0
1cf7c: db07 blt.n 1cf8e <__sbprintf+0x52>
1cf7e: a901 add r1, sp, #4
1cf80: 4630 mov r0, r6
1cf82: f7fd ffdb bl 1af3c <_fflush_r>
1cf86: 2800 cmp r0, #0
1cf88: bf18 it ne
1cf8a: f04f 35ff movne.w r5, #4294967295 ; 0xffffffff
1cf8e: f8bd 3010 ldrh.w r3, [sp, #16]
1cf92: 065b lsls r3, r3, #25
1cf94: d503 bpl.n 1cf9e <__sbprintf+0x62>
1cf96: 89a3 ldrh r3, [r4, #12]
1cf98: f043 0340 orr.w r3, r3, #64 ; 0x40
1cf9c: 81a3 strh r3, [r4, #12]
1cf9e: 4628 mov r0, r5
1cfa0: f50d 6d8d add.w sp, sp, #1128 ; 0x468
1cfa4: bd70 pop {r4, r5, r6, pc}
1cfa6: bf00 nop
0001cfa8 <vsnprintf>:
1cfa8: b510 push {r4, lr}
1cfaa: 4c1a ldr r4, [pc, #104] ; (1d014 <vsnprintf+0x6c>)
1cfac: 2900 cmp r1, #0
1cfae: 6824 ldr r4, [r4, #0]
1cfb0: b09a sub sp, #104 ; 0x68
1cfb2: db2a blt.n 1d00a <vsnprintf+0x62>
1cfb4: 9001 str r0, [sp, #4]
1cfb6: 9005 str r0, [sp, #20]
1cfb8: f44f 7002 mov.w r0, #520 ; 0x208
1cfbc: f8ad 0010 strh.w r0, [sp, #16]
1cfc0: d013 beq.n 1cfea <vsnprintf+0x42>
1cfc2: 3901 subs r1, #1
1cfc4: f64f 70ff movw r0, #65535 ; 0xffff
1cfc8: 9103 str r1, [sp, #12]
1cfca: 9106 str r1, [sp, #24]
1cfcc: f8ad 0012 strh.w r0, [sp, #18]
1cfd0: a901 add r1, sp, #4
1cfd2: 4620 mov r0, r4
1cfd4: f7fa fac2 bl 1755c <_svfprintf_r>
1cfd8: 1c42 adds r2, r0, #1
1cfda: da01 bge.n 1cfe0 <vsnprintf+0x38>
1cfdc: 238b movs r3, #139 ; 0x8b
1cfde: 6023 str r3, [r4, #0]
1cfe0: 9b01 ldr r3, [sp, #4]
1cfe2: 2200 movs r2, #0
1cfe4: 701a strb r2, [r3, #0]
1cfe6: b01a add sp, #104 ; 0x68
1cfe8: bd10 pop {r4, pc}
1cfea: f64f 70ff movw r0, #65535 ; 0xffff
1cfee: 9103 str r1, [sp, #12]
1cff0: 9106 str r1, [sp, #24]
1cff2: f8ad 0012 strh.w r0, [sp, #18]
1cff6: a901 add r1, sp, #4
1cff8: 4620 mov r0, r4
1cffa: f7fa faaf bl 1755c <_svfprintf_r>
1cffe: 1c43 adds r3, r0, #1
1d000: da01 bge.n 1d006 <vsnprintf+0x5e>
1d002: 238b movs r3, #139 ; 0x8b
1d004: 6023 str r3, [r4, #0]
1d006: b01a add sp, #104 ; 0x68
1d008: bd10 pop {r4, pc}
1d00a: 238b movs r3, #139 ; 0x8b
1d00c: 6023 str r3, [r4, #0]
1d00e: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
1d012: e7f8 b.n 1d006 <vsnprintf+0x5e>
1d014: 20000068 .word 0x20000068
0001d018 <vsprintf>:
1d018: b570 push {r4, r5, r6, lr}
1d01a: 4e0b ldr r6, [pc, #44] ; (1d048 <vsprintf+0x30>)
1d01c: b09a sub sp, #104 ; 0x68
1d01e: 4604 mov r4, r0
1d020: f06f 4500 mvn.w r5, #2147483648 ; 0x80000000
1d024: e9cd 4505 strd r4, r5, [sp, #20]
1d028: 4613 mov r3, r2
1d02a: 9401 str r4, [sp, #4]
1d02c: 460a mov r2, r1
1d02e: 6830 ldr r0, [r6, #0]
1d030: 4c06 ldr r4, [pc, #24] ; (1d04c <vsprintf+0x34>)
1d032: 9503 str r5, [sp, #12]
1d034: a901 add r1, sp, #4
1d036: 9404 str r4, [sp, #16]
1d038: f7fa fa90 bl 1755c <_svfprintf_r>
1d03c: 9b01 ldr r3, [sp, #4]
1d03e: 2200 movs r2, #0
1d040: 701a strb r2, [r3, #0]
1d042: b01a add sp, #104 ; 0x68
1d044: bd70 pop {r4, r5, r6, pc}
1d046: bf00 nop
1d048: 20000068 .word 0x20000068
1d04c: ffff0208 .word 0xffff0208
0001d050 <_write_r>:
1d050: b538 push {r3, r4, r5, lr}
1d052: 460c mov r4, r1
1d054: 4d08 ldr r5, [pc, #32] ; (1d078 <_write_r+0x28>)
1d056: 4684 mov ip, r0
1d058: 4611 mov r1, r2
1d05a: 4620 mov r0, r4
1d05c: 461a mov r2, r3
1d05e: 2300 movs r3, #0
1d060: 602b str r3, [r5, #0]
1d062: 4664 mov r4, ip
1d064: f000 fe6e bl 1dd44 <_write>
1d068: 1c43 adds r3, r0, #1
1d06a: d000 beq.n 1d06e <_write_r+0x1e>
1d06c: bd38 pop {r3, r4, r5, pc}
1d06e: 682b ldr r3, [r5, #0]
1d070: 2b00 cmp r3, #0
1d072: d0fb beq.n 1d06c <_write_r+0x1c>
1d074: 6023 str r3, [r4, #0]
1d076: bd38 pop {r3, r4, r5, pc}
1d078: 20005804 .word 0x20005804
0001d07c <__assert_func>:
1d07c: b500 push {lr}
1d07e: 4c0b ldr r4, [pc, #44] ; (1d0ac <__assert_func+0x30>)
1d080: 6825 ldr r5, [r4, #0]
1d082: 4614 mov r4, r2
1d084: 68ee ldr r6, [r5, #12]
1d086: 461a mov r2, r3
1d088: b085 sub sp, #20
1d08a: 4603 mov r3, r0
1d08c: 460d mov r5, r1
1d08e: b14c cbz r4, 1d0a4 <__assert_func+0x28>
1d090: 4907 ldr r1, [pc, #28] ; (1d0b0 <__assert_func+0x34>)
1d092: 9500 str r5, [sp, #0]
1d094: e9cd 1401 strd r1, r4, [sp, #4]
1d098: 4630 mov r0, r6
1d09a: 4906 ldr r1, [pc, #24] ; (1d0b4 <__assert_func+0x38>)
1d09c: f000 f8a2 bl 1d1e4 <fiprintf>
1d0a0: f000 fd7a bl 1db98 <abort>
1d0a4: 4904 ldr r1, [pc, #16] ; (1d0b8 <__assert_func+0x3c>)
1d0a6: 460c mov r4, r1
1d0a8: e7f3 b.n 1d092 <__assert_func+0x16>
1d0aa: bf00 nop
1d0ac: 20000068 .word 0x20000068
1d0b0: 0002c41c .word 0x0002c41c
1d0b4: 0002c42c .word 0x0002c42c
1d0b8: 0002c428 .word 0x0002c428
0001d0bc <_calloc_r>:
1d0bc: b538 push {r3, r4, r5, lr}
1d0be: fba1 1402 umull r1, r4, r1, r2
1d0c2: bb8c cbnz r4, 1d128 <_calloc_r+0x6c>
1d0c4: f7fe f9ac bl 1b420 <_malloc_r>
1d0c8: 4605 mov r5, r0
1d0ca: b1e0 cbz r0, 1d106 <_calloc_r+0x4a>
1d0cc: f850 2c04 ldr.w r2, [r0, #-4]
1d0d0: f022 0203 bic.w r2, r2, #3
1d0d4: 3a04 subs r2, #4
1d0d6: 2a24 cmp r2, #36 ; 0x24
1d0d8: d817 bhi.n 1d10a <_calloc_r+0x4e>
1d0da: 2a13 cmp r2, #19
1d0dc: d91a bls.n 1d114 <_calloc_r+0x58>
1d0de: 2a1b cmp r2, #27
1d0e0: e9c0 4400 strd r4, r4, [r0]
1d0e4: d91d bls.n 1d122 <_calloc_r+0x66>
1d0e6: 2a24 cmp r2, #36 ; 0x24
1d0e8: bf14 ite ne
1d0ea: f100 0210 addne.w r2, r0, #16
1d0ee: f100 0218 addeq.w r2, r0, #24
1d0f2: f04f 0300 mov.w r3, #0
1d0f6: e9c0 4402 strd r4, r4, [r0, #8]
1d0fa: bf04 itt eq
1d0fc: 6104 streq r4, [r0, #16]
1d0fe: 6144 streq r4, [r0, #20]
1d100: e9c2 3300 strd r3, r3, [r2]
1d104: 6093 str r3, [r2, #8]
1d106: 4628 mov r0, r5
1d108: bd38 pop {r3, r4, r5, pc}
1d10a: 4621 mov r1, r4
1d10c: f7f9 ff20 bl 16f50 <memset>
1d110: 4628 mov r0, r5
1d112: bd38 pop {r3, r4, r5, pc}
1d114: 4602 mov r2, r0
1d116: 2300 movs r3, #0
1d118: e9c2 3300 strd r3, r3, [r2]
1d11c: 6093 str r3, [r2, #8]
1d11e: 4628 mov r0, r5
1d120: bd38 pop {r3, r4, r5, pc}
1d122: f100 0208 add.w r2, r0, #8
1d126: e7f6 b.n 1d116 <_calloc_r+0x5a>
1d128: f000 f816 bl 1d158 <__errno>
1d12c: 230c movs r3, #12
1d12e: 2500 movs r5, #0
1d130: 6003 str r3, [r0, #0]
1d132: e7e8 b.n 1d106 <_calloc_r+0x4a>
0001d134 <_close_r>:
1d134: b538 push {r3, r4, r5, lr}
1d136: 4d07 ldr r5, [pc, #28] ; (1d154 <_close_r+0x20>)
1d138: 2200 movs r2, #0
1d13a: 4604 mov r4, r0
1d13c: 4608 mov r0, r1
1d13e: 602a str r2, [r5, #0]
1d140: f7e3 f91c bl 37c <_close>
1d144: 1c43 adds r3, r0, #1
1d146: d000 beq.n 1d14a <_close_r+0x16>
1d148: bd38 pop {r3, r4, r5, pc}
1d14a: 682b ldr r3, [r5, #0]
1d14c: 2b00 cmp r3, #0
1d14e: d0fb beq.n 1d148 <_close_r+0x14>
1d150: 6023 str r3, [r4, #0]
1d152: bd38 pop {r3, r4, r5, pc}
1d154: 20005804 .word 0x20005804
0001d158 <__errno>:
1d158: 4b01 ldr r3, [pc, #4] ; (1d160 <__errno+0x8>)
1d15a: 6818 ldr r0, [r3, #0]
1d15c: 4770 bx lr
1d15e: bf00 nop
1d160: 20000068 .word 0x20000068
0001d164 <_fclose_r>:
1d164: b570 push {r4, r5, r6, lr}
1d166: b139 cbz r1, 1d178 <_fclose_r+0x14>
1d168: 4606 mov r6, r0
1d16a: 460c mov r4, r1
1d16c: b108 cbz r0, 1d172 <_fclose_r+0xe>
1d16e: 6b83 ldr r3, [r0, #56] ; 0x38
1d170: b363 cbz r3, 1d1cc <_fclose_r+0x68>
1d172: f9b4 300c ldrsh.w r3, [r4, #12]
1d176: b913 cbnz r3, 1d17e <_fclose_r+0x1a>
1d178: 2500 movs r5, #0
1d17a: 4628 mov r0, r5
1d17c: bd70 pop {r4, r5, r6, pc}
1d17e: 4621 mov r1, r4
1d180: 4630 mov r0, r6
1d182: f7fd fe41 bl 1ae08 <__sflush_r>
1d186: 6ae3 ldr r3, [r4, #44] ; 0x2c
1d188: 4605 mov r5, r0
1d18a: b133 cbz r3, 1d19a <_fclose_r+0x36>
1d18c: 69e1 ldr r1, [r4, #28]
1d18e: 4630 mov r0, r6
1d190: 4798 blx r3
1d192: 2800 cmp r0, #0
1d194: bfb8 it lt
1d196: f04f 35ff movlt.w r5, #4294967295 ; 0xffffffff
1d19a: 89a3 ldrh r3, [r4, #12]
1d19c: 061b lsls r3, r3, #24
1d19e: d41c bmi.n 1d1da <_fclose_r+0x76>
1d1a0: 6b21 ldr r1, [r4, #48] ; 0x30
1d1a2: b141 cbz r1, 1d1b6 <_fclose_r+0x52>
1d1a4: f104 0340 add.w r3, r4, #64 ; 0x40
1d1a8: 4299 cmp r1, r3
1d1aa: d002 beq.n 1d1b2 <_fclose_r+0x4e>
1d1ac: 4630 mov r0, r6
1d1ae: f7fd ffa3 bl 1b0f8 <_free_r>
1d1b2: 2300 movs r3, #0
1d1b4: 6323 str r3, [r4, #48] ; 0x30
1d1b6: 6c61 ldr r1, [r4, #68] ; 0x44
1d1b8: b121 cbz r1, 1d1c4 <_fclose_r+0x60>
1d1ba: 4630 mov r0, r6
1d1bc: f7fd ff9c bl 1b0f8 <_free_r>
1d1c0: 2300 movs r3, #0
1d1c2: 6463 str r3, [r4, #68] ; 0x44
1d1c4: 2300 movs r3, #0
1d1c6: 81a3 strh r3, [r4, #12]
1d1c8: 4628 mov r0, r5
1d1ca: bd70 pop {r4, r5, r6, pc}
1d1cc: f7fd ff3e bl 1b04c <__sinit>
1d1d0: f9b4 300c ldrsh.w r3, [r4, #12]
1d1d4: 2b00 cmp r3, #0
1d1d6: d0cf beq.n 1d178 <_fclose_r+0x14>
1d1d8: e7d1 b.n 1d17e <_fclose_r+0x1a>
1d1da: 6921 ldr r1, [r4, #16]
1d1dc: 4630 mov r0, r6
1d1de: f7fd ff8b bl 1b0f8 <_free_r>
1d1e2: e7dd b.n 1d1a0 <_fclose_r+0x3c>
0001d1e4 <fiprintf>:
1d1e4: b40e push {r1, r2, r3}
1d1e6: b510 push {r4, lr}
1d1e8: b083 sub sp, #12
1d1ea: ab05 add r3, sp, #20
1d1ec: 4c06 ldr r4, [pc, #24] ; (1d208 <fiprintf+0x24>)
1d1ee: f853 2b04 ldr.w r2, [r3], #4
1d1f2: 9301 str r3, [sp, #4]
1d1f4: 4601 mov r1, r0
1d1f6: 6820 ldr r0, [r4, #0]
1d1f8: f7ff f936 bl 1c468 <_vfiprintf_r>
1d1fc: b003 add sp, #12
1d1fe: e8bd 4010 ldmia.w sp!, {r4, lr}
1d202: b003 add sp, #12
1d204: 4770 bx lr
1d206: bf00 nop
1d208: 20000068 .word 0x20000068
0001d20c <__fputwc>:
1d20c: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr}
1d210: b083 sub sp, #12
1d212: 4607 mov r7, r0
1d214: 4688 mov r8, r1
1d216: 4614 mov r4, r2
1d218: f000 fa0a bl 1d630 <__locale_mb_cur_max>
1d21c: 2801 cmp r0, #1
1d21e: d103 bne.n 1d228 <__fputwc+0x1c>
1d220: f108 33ff add.w r3, r8, #4294967295 ; 0xffffffff
1d224: 2bfe cmp r3, #254 ; 0xfe
1d226: d937 bls.n 1d298 <__fputwc+0x8c>
1d228: 4642 mov r2, r8
1d22a: f104 0358 add.w r3, r4, #88 ; 0x58
1d22e: a901 add r1, sp, #4
1d230: 4638 mov r0, r7
1d232: f000 fc89 bl 1db48 <_wcrtomb_r>
1d236: 1c42 adds r2, r0, #1
1d238: 4606 mov r6, r0
1d23a: d033 beq.n 1d2a4 <__fputwc+0x98>
1d23c: b338 cbz r0, 1d28e <__fputwc+0x82>
1d23e: f89d c004 ldrb.w ip, [sp, #4]
1d242: f10d 0905 add.w r9, sp, #5
1d246: 2500 movs r5, #0
1d248: e009 b.n 1d25e <__fputwc+0x52>
1d24a: 6823 ldr r3, [r4, #0]
1d24c: 1c5a adds r2, r3, #1
1d24e: 6022 str r2, [r4, #0]
1d250: f883 c000 strb.w ip, [r3]
1d254: 3501 adds r5, #1
1d256: 42b5 cmp r5, r6
1d258: d219 bcs.n 1d28e <__fputwc+0x82>
1d25a: f819 cb01 ldrb.w ip, [r9], #1
1d25e: 68a3 ldr r3, [r4, #8]
1d260: 3b01 subs r3, #1
1d262: 2b00 cmp r3, #0
1d264: 60a3 str r3, [r4, #8]
1d266: daf0 bge.n 1d24a <__fputwc+0x3e>
1d268: f8d4 e018 ldr.w lr, [r4, #24]
1d26c: 4573 cmp r3, lr
1d26e: 4661 mov r1, ip
1d270: 4622 mov r2, r4
1d272: 4638 mov r0, r7
1d274: db02 blt.n 1d27c <__fputwc+0x70>
1d276: f1bc 0f0a cmp.w ip, #10
1d27a: d1e6 bne.n 1d24a <__fputwc+0x3e>
1d27c: f000 fc0c bl 1da98 <__swbuf_r>
1d280: 1c43 adds r3, r0, #1
1d282: d1e7 bne.n 1d254 <__fputwc+0x48>
1d284: 4606 mov r6, r0
1d286: 4630 mov r0, r6
1d288: b003 add sp, #12
1d28a: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
1d28e: 4646 mov r6, r8
1d290: 4630 mov r0, r6
1d292: b003 add sp, #12
1d294: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
1d298: fa5f fc88 uxtb.w ip, r8
1d29c: f88d c004 strb.w ip, [sp, #4]
1d2a0: 4606 mov r6, r0
1d2a2: e7ce b.n 1d242 <__fputwc+0x36>
1d2a4: 89a3 ldrh r3, [r4, #12]
1d2a6: 4630 mov r0, r6
1d2a8: f043 0340 orr.w r3, r3, #64 ; 0x40
1d2ac: 81a3 strh r3, [r4, #12]
1d2ae: b003 add sp, #12
1d2b0: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc}
0001d2b4 <_fputwc_r>:
1d2b4: f9b2 300c ldrsh.w r3, [r2, #12]
1d2b8: f413 5f00 tst.w r3, #8192 ; 0x2000
1d2bc: d10a bne.n 1d2d4 <_fputwc_r+0x20>
1d2be: b410 push {r4}
1d2c0: 6e14 ldr r4, [r2, #96] ; 0x60
1d2c2: f443 5300 orr.w r3, r3, #8192 ; 0x2000
1d2c6: f444 5400 orr.w r4, r4, #8192 ; 0x2000
1d2ca: 6614 str r4, [r2, #96] ; 0x60
1d2cc: 8193 strh r3, [r2, #12]
1d2ce: bc10 pop {r4}
1d2d0: f7ff bf9c b.w 1d20c <__fputwc>
1d2d4: f7ff bf9a b.w 1d20c <__fputwc>
0001d2d8 <_fstat_r>:
1d2d8: b570 push {r4, r5, r6, lr}
1d2da: 460c mov r4, r1
1d2dc: 4d08 ldr r5, [pc, #32] ; (1d300 <_fstat_r+0x28>)
1d2de: 4603 mov r3, r0
1d2e0: 2600 movs r6, #0
1d2e2: 4620 mov r0, r4
1d2e4: 4611 mov r1, r2
1d2e6: 461c mov r4, r3
1d2e8: 602e str r6, [r5, #0]
1d2ea: f7e3 f84a bl 382 <_fstat>
1d2ee: 1c43 adds r3, r0, #1
1d2f0: d000 beq.n 1d2f4 <_fstat_r+0x1c>
1d2f2: bd70 pop {r4, r5, r6, pc}
1d2f4: 682b ldr r3, [r5, #0]
1d2f6: 2b00 cmp r3, #0
1d2f8: d0fb beq.n 1d2f2 <_fstat_r+0x1a>
1d2fa: 6023 str r3, [r4, #0]
1d2fc: bd70 pop {r4, r5, r6, pc}
1d2fe: bf00 nop
1d300: 20005804 .word 0x20005804
0001d304 <__sfvwrite_r>:
1d304: 6893 ldr r3, [r2, #8]
1d306: 2b00 cmp r3, #0
1d308: f000 80fc beq.w 1d504 <__sfvwrite_r+0x200>
1d30c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr}
1d310: f9b1 300c ldrsh.w r3, [r1, #12]
1d314: fa1f fc83 uxth.w ip, r3
1d318: 071b lsls r3, r3, #28
1d31a: b083 sub sp, #12
1d31c: 4690 mov r8, r2
1d31e: 4681 mov r9, r0
1d320: 460c mov r4, r1
1d322: d531 bpl.n 1d388 <__sfvwrite_r+0x84>
1d324: 690b ldr r3, [r1, #16]
1d326: b37b cbz r3, 1d388 <__sfvwrite_r+0x84>
1d328: f01c 0702 ands.w r7, ip, #2
1d32c: f8d8 6000 ldr.w r6, [r8]
1d330: d03a beq.n 1d3a8 <__sfvwrite_r+0xa4>
1d332: 2700 movs r7, #0
1d334: f8d4 b024 ldr.w fp, [r4, #36] ; 0x24
1d338: 69e1 ldr r1, [r4, #28]
1d33a: f8df a2cc ldr.w sl, [pc, #716] ; 1d608 <__sfvwrite_r+0x304>
1d33e: 463d mov r5, r7
1d340: 4555 cmp r5, sl
1d342: 462b mov r3, r5
1d344: 463a mov r2, r7
1d346: bf28 it cs
1d348: 4653 movcs r3, sl
1d34a: 4648 mov r0, r9
1d34c: b1c5 cbz r5, 1d380 <__sfvwrite_r+0x7c>
1d34e: 47d8 blx fp
1d350: 2800 cmp r0, #0
1d352: f340 80cd ble.w 1d4f0 <__sfvwrite_r+0x1ec>
1d356: f8d8 3008 ldr.w r3, [r8, #8]
1d35a: 1a1b subs r3, r3, r0
1d35c: 4407 add r7, r0
1d35e: 1a2d subs r5, r5, r0
1d360: f8c8 3008 str.w r3, [r8, #8]
1d364: 2b00 cmp r3, #0
1d366: f000 80b9 beq.w 1d4dc <__sfvwrite_r+0x1d8>
1d36a: 4555 cmp r5, sl
1d36c: 462b mov r3, r5
1d36e: f8d4 b024 ldr.w fp, [r4, #36] ; 0x24
1d372: 69e1 ldr r1, [r4, #28]
1d374: bf28 it cs
1d376: 4653 movcs r3, sl
1d378: 463a mov r2, r7
1d37a: 4648 mov r0, r9
1d37c: 2d00 cmp r5, #0
1d37e: d1e6 bne.n 1d34e <__sfvwrite_r+0x4a>
1d380: e9d6 7500 ldrd r7, r5, [r6]
1d384: 3608 adds r6, #8
1d386: e7db b.n 1d340 <__sfvwrite_r+0x3c>
1d388: 4621 mov r1, r4
1d38a: 4648 mov r0, r9
1d38c: f7fc fcd2 bl 19d34 <__swsetup_r>
1d390: 2800 cmp r0, #0
1d392: f040 8136 bne.w 1d602 <__sfvwrite_r+0x2fe>
1d396: f9b4 300c ldrsh.w r3, [r4, #12]
1d39a: f8d8 6000 ldr.w r6, [r8]
1d39e: fa1f fc83 uxth.w ip, r3
1d3a2: f01c 0702 ands.w r7, ip, #2
1d3a6: d1c4 bne.n 1d332 <__sfvwrite_r+0x2e>
1d3a8: f01c 0a01 ands.w sl, ip, #1
1d3ac: d166 bne.n 1d47c <__sfvwrite_r+0x178>
1d3ae: 6823 ldr r3, [r4, #0]
1d3b0: 68a1 ldr r1, [r4, #8]
1d3b2: 4657 mov r7, sl
1d3b4: 4618 mov r0, r3
1d3b6: 468b mov fp, r1
1d3b8: 2f00 cmp r7, #0
1d3ba: d05b beq.n 1d474 <__sfvwrite_r+0x170>
1d3bc: f41c 7f00 tst.w ip, #512 ; 0x200
1d3c0: f000 80b4 beq.w 1d52c <__sfvwrite_r+0x228>
1d3c4: 42b9 cmp r1, r7
1d3c6: 460a mov r2, r1
1d3c8: f200 80e0 bhi.w 1d58c <__sfvwrite_r+0x288>
1d3cc: f41c 6f90 tst.w ip, #1152 ; 0x480
1d3d0: d030 beq.n 1d434 <__sfvwrite_r+0x130>
1d3d2: 6921 ldr r1, [r4, #16]
1d3d4: 1a5d subs r5, r3, r1
1d3d6: 6963 ldr r3, [r4, #20]
1d3d8: eb03 0b43 add.w fp, r3, r3, lsl #1
1d3dc: eb0b 7bdb add.w fp, fp, fp, lsr #31
1d3e0: 1c6b adds r3, r5, #1
1d3e2: ea4f 0b6b mov.w fp, fp, asr #1
1d3e6: 443b add r3, r7
1d3e8: 455b cmp r3, fp
1d3ea: 465a mov r2, fp
1d3ec: bf84 itt hi
1d3ee: 469b movhi fp, r3
1d3f0: 465a movhi r2, fp
1d3f2: f41c 6f80 tst.w ip, #1024 ; 0x400
1d3f6: f000 80e8 beq.w 1d5ca <__sfvwrite_r+0x2c6>
1d3fa: 4611 mov r1, r2
1d3fc: 4648 mov r0, r9
1d3fe: f7fe f80f bl 1b420 <_malloc_r>
1d402: 2800 cmp r0, #0
1d404: f000 80f7 beq.w 1d5f6 <__sfvwrite_r+0x2f2>
1d408: 462a mov r2, r5
1d40a: 6921 ldr r1, [r4, #16]
1d40c: 9001 str r0, [sp, #4]
1d40e: f7f9 fc89 bl 16d24 <memcpy>
1d412: 89a2 ldrh r2, [r4, #12]
1d414: 9b01 ldr r3, [sp, #4]
1d416: f422 6290 bic.w r2, r2, #1152 ; 0x480
1d41a: f042 0280 orr.w r2, r2, #128 ; 0x80
1d41e: 81a2 strh r2, [r4, #12]
1d420: 1958 adds r0, r3, r5
1d422: ebab 0505 sub.w r5, fp, r5
1d426: f8c4 b014 str.w fp, [r4, #20]
1d42a: 6123 str r3, [r4, #16]
1d42c: 60a5 str r5, [r4, #8]
1d42e: 6020 str r0, [r4, #0]
1d430: 46bb mov fp, r7
1d432: 463a mov r2, r7
1d434: 4651 mov r1, sl
1d436: 9201 str r2, [sp, #4]
1d438: f7f9 fd0e bl 16e58 <memmove>
1d43c: 68a1 ldr r1, [r4, #8]
1d43e: 6823 ldr r3, [r4, #0]
1d440: 9a01 ldr r2, [sp, #4]
1d442: eba1 010b sub.w r1, r1, fp
1d446: 441a add r2, r3
1d448: 463d mov r5, r7
1d44a: 60a1 str r1, [r4, #8]
1d44c: 6022 str r2, [r4, #0]
1d44e: 2700 movs r7, #0
1d450: f8d8 3008 ldr.w r3, [r8, #8]
1d454: 1b5b subs r3, r3, r5
1d456: 44aa add sl, r5
1d458: f8c8 3008 str.w r3, [r8, #8]
1d45c: 2b00 cmp r3, #0
1d45e: d03d beq.n 1d4dc <__sfvwrite_r+0x1d8>
1d460: f9b4 c00c ldrsh.w ip, [r4, #12]
1d464: 6823 ldr r3, [r4, #0]
1d466: 68a1 ldr r1, [r4, #8]
1d468: fa1f fc8c uxth.w ip, ip
1d46c: 4618 mov r0, r3
1d46e: 468b mov fp, r1
1d470: 2f00 cmp r7, #0
1d472: d1a3 bne.n 1d3bc <__sfvwrite_r+0xb8>
1d474: e9d6 a700 ldrd sl, r7, [r6]
1d478: 3608 adds r6, #8
1d47a: e79b b.n 1d3b4 <__sfvwrite_r+0xb0>
1d47c: 4638 mov r0, r7
1d47e: 46bb mov fp, r7
1d480: 463d mov r5, r7
1d482: 2d00 cmp r5, #0
1d484: d040 beq.n 1d508 <__sfvwrite_r+0x204>
1d486: 2800 cmp r0, #0
1d488: d045 beq.n 1d516 <__sfvwrite_r+0x212>
1d48a: 463a mov r2, r7
1d48c: e9d4 c304 ldrd ip, r3, [r4, #16]
1d490: 6820 ldr r0, [r4, #0]
1d492: 68a1 ldr r1, [r4, #8]
1d494: 42aa cmp r2, r5
1d496: bf28 it cs
1d498: 462a movcs r2, r5
1d49a: 4560 cmp r0, ip
1d49c: d904 bls.n 1d4a8 <__sfvwrite_r+0x1a4>
1d49e: eb01 0a03 add.w sl, r1, r3
1d4a2: 4552 cmp r2, sl
1d4a4: f300 8082 bgt.w 1d5ac <__sfvwrite_r+0x2a8>
1d4a8: 4293 cmp r3, r2
1d4aa: dc72 bgt.n 1d592 <__sfvwrite_r+0x28e>
1d4ac: 69e1 ldr r1, [r4, #28]
1d4ae: f8d4 c024 ldr.w ip, [r4, #36] ; 0x24
1d4b2: 465a mov r2, fp
1d4b4: 4648 mov r0, r9
1d4b6: 47e0 blx ip
1d4b8: f1b0 0a00 subs.w sl, r0, #0
1d4bc: dd18 ble.n 1d4f0 <__sfvwrite_r+0x1ec>
1d4be: ebb7 070a subs.w r7, r7, sl
1d4c2: d00f beq.n 1d4e4 <__sfvwrite_r+0x1e0>
1d4c4: 2001 movs r0, #1
1d4c6: f8d8 3008 ldr.w r3, [r8, #8]
1d4ca: eba3 030a sub.w r3, r3, sl
1d4ce: 44d3 add fp, sl
1d4d0: eba5 050a sub.w r5, r5, sl
1d4d4: f8c8 3008 str.w r3, [r8, #8]
1d4d8: 2b00 cmp r3, #0
1d4da: d1d2 bne.n 1d482 <__sfvwrite_r+0x17e>
1d4dc: 2000 movs r0, #0
1d4de: b003 add sp, #12
1d4e0: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1d4e4: 4621 mov r1, r4
1d4e6: 4648 mov r0, r9
1d4e8: f7fd fd28 bl 1af3c <_fflush_r>
1d4ec: 2800 cmp r0, #0
1d4ee: d0ea beq.n 1d4c6 <__sfvwrite_r+0x1c2>
1d4f0: f9b4 300c ldrsh.w r3, [r4, #12]
1d4f4: f043 0340 orr.w r3, r3, #64 ; 0x40
1d4f8: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
1d4fc: 81a3 strh r3, [r4, #12]
1d4fe: b003 add sp, #12
1d500: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc}
1d504: 2000 movs r0, #0
1d506: 4770 bx lr
1d508: 6875 ldr r5, [r6, #4]
1d50a: 4633 mov r3, r6
1d50c: 3608 adds r6, #8
1d50e: 2d00 cmp r5, #0
1d510: d0fa beq.n 1d508 <__sfvwrite_r+0x204>
1d512: f8d3 b000 ldr.w fp, [r3]
1d516: 462a mov r2, r5
1d518: 210a movs r1, #10
1d51a: 4658 mov r0, fp
1d51c: f7fe fa30 bl 1b980 <memchr>
1d520: 2800 cmp r0, #0
1d522: d065 beq.n 1d5f0 <__sfvwrite_r+0x2ec>
1d524: 3001 adds r0, #1
1d526: eba0 070b sub.w r7, r0, fp
1d52a: e7ae b.n 1d48a <__sfvwrite_r+0x186>
1d52c: 6922 ldr r2, [r4, #16]
1d52e: 429a cmp r2, r3
1d530: d314 bcc.n 1d55c <__sfvwrite_r+0x258>
1d532: 6962 ldr r2, [r4, #20]
1d534: 42ba cmp r2, r7
1d536: d811 bhi.n 1d55c <__sfvwrite_r+0x258>
1d538: f06f 4300 mvn.w r3, #2147483648 ; 0x80000000
1d53c: 42bb cmp r3, r7
1d53e: bf28 it cs
1d540: 463b movcs r3, r7
1d542: 6a65 ldr r5, [r4, #36] ; 0x24
1d544: fb93 f3f2 sdiv r3, r3, r2
1d548: 69e1 ldr r1, [r4, #28]
1d54a: fb02 f303 mul.w r3, r2, r3
1d54e: 4648 mov r0, r9
1d550: 4652 mov r2, sl
1d552: 47a8 blx r5
1d554: 1e05 subs r5, r0, #0
1d556: ddcb ble.n 1d4f0 <__sfvwrite_r+0x1ec>
1d558: 1b7f subs r7, r7, r5
1d55a: e779 b.n 1d450 <__sfvwrite_r+0x14c>
1d55c: 42b9 cmp r1, r7
1d55e: bf28 it cs
1d560: 4639 movcs r1, r7
1d562: 460d mov r5, r1
1d564: 4618 mov r0, r3
1d566: 460a mov r2, r1
1d568: 4651 mov r1, sl
1d56a: f7f9 fc75 bl 16e58 <memmove>
1d56e: 68a1 ldr r1, [r4, #8]
1d570: 6823 ldr r3, [r4, #0]
1d572: 1b49 subs r1, r1, r5
1d574: 442b add r3, r5
1d576: 60a1 str r1, [r4, #8]
1d578: 6023 str r3, [r4, #0]
1d57a: 2900 cmp r1, #0
1d57c: d1ec bne.n 1d558 <__sfvwrite_r+0x254>
1d57e: 4621 mov r1, r4
1d580: 4648 mov r0, r9
1d582: f7fd fcdb bl 1af3c <_fflush_r>
1d586: 2800 cmp r0, #0
1d588: d0e6 beq.n 1d558 <__sfvwrite_r+0x254>
1d58a: e7b1 b.n 1d4f0 <__sfvwrite_r+0x1ec>
1d58c: 46bb mov fp, r7
1d58e: 463a mov r2, r7
1d590: e750 b.n 1d434 <__sfvwrite_r+0x130>
1d592: 4659 mov r1, fp
1d594: 9201 str r2, [sp, #4]
1d596: f7f9 fc5f bl 16e58 <memmove>
1d59a: 9a01 ldr r2, [sp, #4]
1d59c: 68a3 ldr r3, [r4, #8]
1d59e: 1a9b subs r3, r3, r2
1d5a0: 60a3 str r3, [r4, #8]
1d5a2: 6823 ldr r3, [r4, #0]
1d5a4: 4413 add r3, r2
1d5a6: 6023 str r3, [r4, #0]
1d5a8: 4692 mov sl, r2
1d5aa: e788 b.n 1d4be <__sfvwrite_r+0x1ba>
1d5ac: 4659 mov r1, fp
1d5ae: 4652 mov r2, sl
1d5b0: f7f9 fc52 bl 16e58 <memmove>
1d5b4: 6823 ldr r3, [r4, #0]
1d5b6: 4453 add r3, sl
1d5b8: 6023 str r3, [r4, #0]
1d5ba: 4621 mov r1, r4
1d5bc: 4648 mov r0, r9
1d5be: f7fd fcbd bl 1af3c <_fflush_r>
1d5c2: 2800 cmp r0, #0
1d5c4: f43f af7b beq.w 1d4be <__sfvwrite_r+0x1ba>
1d5c8: e792 b.n 1d4f0 <__sfvwrite_r+0x1ec>
1d5ca: 4648 mov r0, r9
1d5cc: f000 f878 bl 1d6c0 <_realloc_r>
1d5d0: 4603 mov r3, r0
1d5d2: 2800 cmp r0, #0
1d5d4: f47f af24 bne.w 1d420 <__sfvwrite_r+0x11c>
1d5d8: 6921 ldr r1, [r4, #16]
1d5da: 4648 mov r0, r9
1d5dc: f7fd fd8c bl 1b0f8 <_free_r>
1d5e0: f9b4 300c ldrsh.w r3, [r4, #12]
1d5e4: 220c movs r2, #12
1d5e6: f023 0380 bic.w r3, r3, #128 ; 0x80
1d5ea: f8c9 2000 str.w r2, [r9]
1d5ee: e781 b.n 1d4f4 <__sfvwrite_r+0x1f0>
1d5f0: 1c6a adds r2, r5, #1
1d5f2: 4617 mov r7, r2
1d5f4: e74a b.n 1d48c <__sfvwrite_r+0x188>
1d5f6: 220c movs r2, #12
1d5f8: f9b4 300c ldrsh.w r3, [r4, #12]
1d5fc: f8c9 2000 str.w r2, [r9]
1d600: e778 b.n 1d4f4 <__sfvwrite_r+0x1f0>
1d602: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
1d606: e76a b.n 1d4de <__sfvwrite_r+0x1da>
1d608: 7ffffc00 .word 0x7ffffc00
0001d60c <_isatty_r>:
1d60c: b538 push {r3, r4, r5, lr}
1d60e: 4d07 ldr r5, [pc, #28] ; (1d62c <_isatty_r+0x20>)
1d610: 2200 movs r2, #0
1d612: 4604 mov r4, r0
1d614: 4608 mov r0, r1
1d616: 602a str r2, [r5, #0]
1d618: f7e2 feb8 bl 38c <_isatty>
1d61c: 1c43 adds r3, r0, #1
1d61e: d000 beq.n 1d622 <_isatty_r+0x16>
1d620: bd38 pop {r3, r4, r5, pc}
1d622: 682b ldr r3, [r5, #0]
1d624: 2b00 cmp r3, #0
1d626: d0fb beq.n 1d620 <_isatty_r+0x14>
1d628: 6023 str r3, [r4, #0]
1d62a: bd38 pop {r3, r4, r5, pc}
1d62c: 20005804 .word 0x20005804
0001d630 <__locale_mb_cur_max>:
1d630: 4b01 ldr r3, [pc, #4] ; (1d638 <__locale_mb_cur_max+0x8>)
1d632: f893 0128 ldrb.w r0, [r3, #296] ; 0x128
1d636: 4770 bx lr
1d638: 20000898 .word 0x20000898
0001d63c <_lseek_r>:
1d63c: b538 push {r3, r4, r5, lr}
1d63e: 460c mov r4, r1
1d640: 4d08 ldr r5, [pc, #32] ; (1d664 <_lseek_r+0x28>)
1d642: 4684 mov ip, r0
1d644: 4611 mov r1, r2
1d646: 4620 mov r0, r4
1d648: 461a mov r2, r3
1d64a: 2300 movs r3, #0
1d64c: 602b str r3, [r5, #0]
1d64e: 4664 mov r4, ip
1d650: f7e2 fe9e bl 390 <_lseek>
1d654: 1c43 adds r3, r0, #1
1d656: d000 beq.n 1d65a <_lseek_r+0x1e>
1d658: bd38 pop {r3, r4, r5, pc}
1d65a: 682b ldr r3, [r5, #0]
1d65c: 2b00 cmp r3, #0
1d65e: d0fb beq.n 1d658 <_lseek_r+0x1c>
1d660: 6023 str r3, [r4, #0]
1d662: bd38 pop {r3, r4, r5, pc}
1d664: 20005804 .word 0x20005804
0001d668 <__ascii_mbtowc>:
1d668: b082 sub sp, #8
1d66a: b149 cbz r1, 1d680 <__ascii_mbtowc+0x18>
1d66c: b15a cbz r2, 1d686 <__ascii_mbtowc+0x1e>
1d66e: b16b cbz r3, 1d68c <__ascii_mbtowc+0x24>
1d670: 7813 ldrb r3, [r2, #0]
1d672: 600b str r3, [r1, #0]
1d674: 7812 ldrb r2, [r2, #0]
1d676: 1e10 subs r0, r2, #0
1d678: bf18 it ne
1d67a: 2001 movne r0, #1
1d67c: b002 add sp, #8
1d67e: 4770 bx lr
1d680: a901 add r1, sp, #4
1d682: 2a00 cmp r2, #0
1d684: d1f3 bne.n 1d66e <__ascii_mbtowc+0x6>
1d686: 4610 mov r0, r2
1d688: b002 add sp, #8
1d68a: 4770 bx lr
1d68c: f06f 0001 mvn.w r0, #1
1d690: e7f4 b.n 1d67c <__ascii_mbtowc+0x14>
1d692: bf00 nop
0001d694 <_read_r>:
1d694: b538 push {r3, r4, r5, lr}
1d696: 460c mov r4, r1
1d698: 4d08 ldr r5, [pc, #32] ; (1d6bc <_read_r+0x28>)
1d69a: 4684 mov ip, r0
1d69c: 4611 mov r1, r2
1d69e: 4620 mov r0, r4
1d6a0: 461a mov r2, r3
1d6a2: 2300 movs r3, #0
1d6a4: 602b str r3, [r5, #0]
1d6a6: 4664 mov r4, ip
1d6a8: f000 fb44 bl 1dd34 <_read>
1d6ac: 1c43 adds r3, r0, #1
1d6ae: d000 beq.n 1d6b2 <_read_r+0x1e>
1d6b0: bd38 pop {r3, r4, r5, pc}
1d6b2: 682b ldr r3, [r5, #0]
1d6b4: 2b00 cmp r3, #0
1d6b6: d0fb beq.n 1d6b0 <_read_r+0x1c>
1d6b8: 6023 str r3, [r4, #0]
1d6ba: bd38 pop {r3, r4, r5, pc}
1d6bc: 20005804 .word 0x20005804
0001d6c0 <_realloc_r>:
1d6c0: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
1d6c4: 4616 mov r6, r2
1d6c6: 2900 cmp r1, #0
1d6c8: f000 809c beq.w 1d804 <_realloc_r+0x144>
1d6cc: 460c mov r4, r1
1d6ce: f106 050b add.w r5, r6, #11
1d6d2: 4607 mov r7, r0
1d6d4: f7fe f9a4 bl 1ba20 <__malloc_lock>
1d6d8: 2d16 cmp r5, #22
1d6da: f854 0c04 ldr.w r0, [r4, #-4]
1d6de: d85d bhi.n 1d79c <_realloc_r+0xdc>
1d6e0: 2510 movs r5, #16
1d6e2: 462a mov r2, r5
1d6e4: 42ae cmp r6, r5
1d6e6: d85e bhi.n 1d7a6 <_realloc_r+0xe6>
1d6e8: f020 0803 bic.w r8, r0, #3
1d6ec: 4590 cmp r8, r2
1d6ee: f1a4 0908 sub.w r9, r4, #8
1d6f2: da63 bge.n 1d7bc <_realloc_r+0xfc>
1d6f4: 4bbc ldr r3, [pc, #752] ; (1d9e8 <_realloc_r+0x328>)
1d6f6: f8d3 e008 ldr.w lr, [r3, #8]
1d6fa: eb09 0c08 add.w ip, r9, r8
1d6fe: 45e6 cmp lr, ip
1d700: f8dc 1004 ldr.w r1, [ip, #4]
1d704: f000 8094 beq.w 1d830 <_realloc_r+0x170>
1d708: f021 0301 bic.w r3, r1, #1
1d70c: 4463 add r3, ip
1d70e: 685b ldr r3, [r3, #4]
1d710: 07db lsls r3, r3, #31
1d712: d46c bmi.n 1d7ee <_realloc_r+0x12e>
1d714: f021 0e03 bic.w lr, r1, #3
1d718: eb08 030e add.w r3, r8, lr
1d71c: 4293 cmp r3, r2
1d71e: da48 bge.n 1d7b2 <_realloc_r+0xf2>
1d720: 07c0 lsls r0, r0, #31
1d722: d411 bmi.n 1d748 <_realloc_r+0x88>
1d724: f854 3c08 ldr.w r3, [r4, #-8]
1d728: eba9 0b03 sub.w fp, r9, r3
1d72c: f8db 3004 ldr.w r3, [fp, #4]
1d730: f023 0103 bic.w r1, r3, #3
1d734: 448e add lr, r1
1d736: 44c6 add lr, r8
1d738: 4596 cmp lr, r2
1d73a: f280 810f bge.w 1d95c <_realloc_r+0x29c>
1d73e: eb08 0301 add.w r3, r8, r1
1d742: 4293 cmp r3, r2
1d744: f280 80e4 bge.w 1d910 <_realloc_r+0x250>
1d748: 4631 mov r1, r6
1d74a: 4638 mov r0, r7
1d74c: f7fd fe68 bl 1b420 <_malloc_r>
1d750: 4606 mov r6, r0
1d752: b1e8 cbz r0, 1d790 <_realloc_r+0xd0>
1d754: f854 3c04 ldr.w r3, [r4, #-4]
1d758: f023 0301 bic.w r3, r3, #1
1d75c: 444b add r3, r9
1d75e: f1a0 0208 sub.w r2, r0, #8
1d762: 4293 cmp r3, r2
1d764: f000 80ce beq.w 1d904 <_realloc_r+0x244>
1d768: f1a8 0204 sub.w r2, r8, #4
1d76c: 2a24 cmp r2, #36 ; 0x24
1d76e: f200 80f1 bhi.w 1d954 <_realloc_r+0x294>
1d772: 2a13 cmp r2, #19
1d774: f200 80a8 bhi.w 1d8c8 <_realloc_r+0x208>
1d778: 4603 mov r3, r0
1d77a: 4622 mov r2, r4
1d77c: 6811 ldr r1, [r2, #0]
1d77e: 6019 str r1, [r3, #0]
1d780: 6851 ldr r1, [r2, #4]
1d782: 6059 str r1, [r3, #4]
1d784: 6892 ldr r2, [r2, #8]
1d786: 609a str r2, [r3, #8]
1d788: 4621 mov r1, r4
1d78a: 4638 mov r0, r7
1d78c: f7fd fcb4 bl 1b0f8 <_free_r>
1d790: 4638 mov r0, r7
1d792: f7fe f947 bl 1ba24 <__malloc_unlock>
1d796: 4630 mov r0, r6
1d798: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
1d79c: f025 0507 bic.w r5, r5, #7
1d7a0: 2d00 cmp r5, #0
1d7a2: 462a mov r2, r5
1d7a4: da9e bge.n 1d6e4 <_realloc_r+0x24>
1d7a6: 230c movs r3, #12
1d7a8: 603b str r3, [r7, #0]
1d7aa: 2600 movs r6, #0
1d7ac: 4630 mov r0, r6
1d7ae: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
1d7b2: 4698 mov r8, r3
1d7b4: e9dc 2302 ldrd r2, r3, [ip, #8]
1d7b8: 60d3 str r3, [r2, #12]
1d7ba: 609a str r2, [r3, #8]
1d7bc: f8d9 3004 ldr.w r3, [r9, #4]
1d7c0: eba8 0205 sub.w r2, r8, r5
1d7c4: 2a0f cmp r2, #15
1d7c6: f003 0301 and.w r3, r3, #1
1d7ca: eb09 0008 add.w r0, r9, r8
1d7ce: d81e bhi.n 1d80e <_realloc_r+0x14e>
1d7d0: ea48 0303 orr.w r3, r8, r3
1d7d4: f8c9 3004 str.w r3, [r9, #4]
1d7d8: 6843 ldr r3, [r0, #4]
1d7da: f043 0301 orr.w r3, r3, #1
1d7de: 6043 str r3, [r0, #4]
1d7e0: 4638 mov r0, r7
1d7e2: 4626 mov r6, r4
1d7e4: f7fe f91e bl 1ba24 <__malloc_unlock>
1d7e8: 4630 mov r0, r6
1d7ea: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc}
1d7ee: 07c3 lsls r3, r0, #31
1d7f0: d4aa bmi.n 1d748 <_realloc_r+0x88>
1d7f2: f854 3c08 ldr.w r3, [r4, #-8]
1d7f6: eba9 0b03 sub.w fp, r9, r3
1d7fa: f8db 1004 ldr.w r1, [fp, #4]
1d7fe: f021 0103 bic.w r1, r1, #3
1d802: e79c b.n 1d73e <_realloc_r+0x7e>
1d804: e8bd 4ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr}
1d808: 4611 mov r1, r2
1d80a: f7fd be09 b.w 1b420 <_malloc_r>
1d80e: eb09 0105 add.w r1, r9, r5
1d812: 432b orrs r3, r5
1d814: f042 0201 orr.w r2, r2, #1
1d818: f8c9 3004 str.w r3, [r9, #4]
1d81c: 604a str r2, [r1, #4]
1d81e: 6843 ldr r3, [r0, #4]
1d820: f043 0301 orr.w r3, r3, #1
1d824: 6043 str r3, [r0, #4]
1d826: 3108 adds r1, #8
1d828: 4638 mov r0, r7
1d82a: f7fd fc65 bl 1b0f8 <_free_r>
1d82e: e7d7 b.n 1d7e0 <_realloc_r+0x120>
1d830: f021 0e03 bic.w lr, r1, #3
1d834: eb08 010e add.w r1, r8, lr
1d838: f105 0c10 add.w ip, r5, #16
1d83c: 4561 cmp r1, ip
1d83e: da4e bge.n 1d8de <_realloc_r+0x21e>
1d840: 07c1 lsls r1, r0, #31
1d842: d481 bmi.n 1d748 <_realloc_r+0x88>
1d844: f854 1c08 ldr.w r1, [r4, #-8]
1d848: eba9 0b01 sub.w fp, r9, r1
1d84c: f8db 1004 ldr.w r1, [fp, #4]
1d850: f021 0103 bic.w r1, r1, #3
1d854: 448e add lr, r1
1d856: eb0e 0a08 add.w sl, lr, r8
1d85a: 45d4 cmp ip, sl
1d85c: f73f af6f bgt.w 1d73e <_realloc_r+0x7e>
1d860: 465e mov r6, fp
1d862: f8db 100c ldr.w r1, [fp, #12]
1d866: f856 0f08 ldr.w r0, [r6, #8]!
1d86a: f1a8 0204 sub.w r2, r8, #4
1d86e: 2a24 cmp r2, #36 ; 0x24
1d870: 60c1 str r1, [r0, #12]
1d872: 6088 str r0, [r1, #8]
1d874: f200 80dd bhi.w 1da32 <_realloc_r+0x372>
1d878: 2a13 cmp r2, #19
1d87a: f240 80d8 bls.w 1da2e <_realloc_r+0x36e>
1d87e: 6821 ldr r1, [r4, #0]
1d880: f8cb 1008 str.w r1, [fp, #8]
1d884: 6861 ldr r1, [r4, #4]
1d886: f8cb 100c str.w r1, [fp, #12]
1d88a: 2a1b cmp r2, #27
1d88c: f200 80e1 bhi.w 1da52 <_realloc_r+0x392>
1d890: 3408 adds r4, #8
1d892: f10b 0210 add.w r2, fp, #16
1d896: 6821 ldr r1, [r4, #0]
1d898: 6011 str r1, [r2, #0]
1d89a: 6861 ldr r1, [r4, #4]
1d89c: 6051 str r1, [r2, #4]
1d89e: 68a1 ldr r1, [r4, #8]
1d8a0: 6091 str r1, [r2, #8]
1d8a2: eb0b 0105 add.w r1, fp, r5
1d8a6: ebaa 0205 sub.w r2, sl, r5
1d8aa: f042 0201 orr.w r2, r2, #1
1d8ae: 6099 str r1, [r3, #8]
1d8b0: 604a str r2, [r1, #4]
1d8b2: f8db 3004 ldr.w r3, [fp, #4]
1d8b6: f003 0301 and.w r3, r3, #1
1d8ba: 432b orrs r3, r5
1d8bc: 4638 mov r0, r7
1d8be: f8cb 3004 str.w r3, [fp, #4]
1d8c2: f7fe f8af bl 1ba24 <__malloc_unlock>
1d8c6: e771 b.n 1d7ac <_realloc_r+0xec>
1d8c8: 6823 ldr r3, [r4, #0]
1d8ca: 6003 str r3, [r0, #0]
1d8cc: 6863 ldr r3, [r4, #4]
1d8ce: 6043 str r3, [r0, #4]
1d8d0: 2a1b cmp r2, #27
1d8d2: d869 bhi.n 1d9a8 <_realloc_r+0x2e8>
1d8d4: f104 0208 add.w r2, r4, #8
1d8d8: f100 0308 add.w r3, r0, #8
1d8dc: e74e b.n 1d77c <_realloc_r+0xbc>
1d8de: eb09 0205 add.w r2, r9, r5
1d8e2: 609a str r2, [r3, #8]
1d8e4: 1b4b subs r3, r1, r5
1d8e6: f043 0301 orr.w r3, r3, #1
1d8ea: 6053 str r3, [r2, #4]
1d8ec: f854 3c04 ldr.w r3, [r4, #-4]
1d8f0: f003 0301 and.w r3, r3, #1
1d8f4: 432b orrs r3, r5
1d8f6: 4638 mov r0, r7
1d8f8: f844 3c04 str.w r3, [r4, #-4]
1d8fc: f7fe f892 bl 1ba24 <__malloc_unlock>
1d900: 4626 mov r6, r4
1d902: e753 b.n 1d7ac <_realloc_r+0xec>
1d904: f850 3c04 ldr.w r3, [r0, #-4]
1d908: f023 0303 bic.w r3, r3, #3
1d90c: 4498 add r8, r3
1d90e: e755 b.n 1d7bc <_realloc_r+0xfc>
1d910: 465e mov r6, fp
1d912: f8db 100c ldr.w r1, [fp, #12]
1d916: f856 0f08 ldr.w r0, [r6, #8]!
1d91a: f1a8 0204 sub.w r2, r8, #4
1d91e: 2a24 cmp r2, #36 ; 0x24
1d920: 60c1 str r1, [r0, #12]
1d922: 6088 str r0, [r1, #8]
1d924: d84d bhi.n 1d9c2 <_realloc_r+0x302>
1d926: 2a13 cmp r2, #19
1d928: d949 bls.n 1d9be <_realloc_r+0x2fe>
1d92a: 6821 ldr r1, [r4, #0]
1d92c: f8cb 1008 str.w r1, [fp, #8]
1d930: 6861 ldr r1, [r4, #4]
1d932: f8cb 100c str.w r1, [fp, #12]
1d936: 2a1b cmp r2, #27
1d938: d858 bhi.n 1d9ec <_realloc_r+0x32c>
1d93a: 3408 adds r4, #8
1d93c: f10b 0210 add.w r2, fp, #16
1d940: 4698 mov r8, r3
1d942: 6823 ldr r3, [r4, #0]
1d944: 6013 str r3, [r2, #0]
1d946: 6863 ldr r3, [r4, #4]
1d948: 6053 str r3, [r2, #4]
1d94a: 68a3 ldr r3, [r4, #8]
1d94c: 6093 str r3, [r2, #8]
1d94e: 46d9 mov r9, fp
1d950: 4634 mov r4, r6
1d952: e733 b.n 1d7bc <_realloc_r+0xfc>
1d954: 4621 mov r1, r4
1d956: f7f9 fa7f bl 16e58 <memmove>
1d95a: e715 b.n 1d788 <_realloc_r+0xc8>
1d95c: e9dc 1302 ldrd r1, r3, [ip, #8]
1d960: 465e mov r6, fp
1d962: 60cb str r3, [r1, #12]
1d964: 6099 str r1, [r3, #8]
1d966: f856 1f08 ldr.w r1, [r6, #8]!
1d96a: f8db 300c ldr.w r3, [fp, #12]
1d96e: 60cb str r3, [r1, #12]
1d970: f1a8 0204 sub.w r2, r8, #4
1d974: 2a24 cmp r2, #36 ; 0x24
1d976: 6099 str r1, [r3, #8]
1d978: d82d bhi.n 1d9d6 <_realloc_r+0x316>
1d97a: 2a13 cmp r2, #19
1d97c: d929 bls.n 1d9d2 <_realloc_r+0x312>
1d97e: 6823 ldr r3, [r4, #0]
1d980: f8cb 3008 str.w r3, [fp, #8]
1d984: 6863 ldr r3, [r4, #4]
1d986: f8cb 300c str.w r3, [fp, #12]
1d98a: 2a1b cmp r2, #27
1d98c: d843 bhi.n 1da16 <_realloc_r+0x356>
1d98e: 3408 adds r4, #8
1d990: f10b 0310 add.w r3, fp, #16
1d994: 6822 ldr r2, [r4, #0]
1d996: 601a str r2, [r3, #0]
1d998: 6862 ldr r2, [r4, #4]
1d99a: 605a str r2, [r3, #4]
1d99c: 68a2 ldr r2, [r4, #8]
1d99e: 609a str r2, [r3, #8]
1d9a0: 46f0 mov r8, lr
1d9a2: 46d9 mov r9, fp
1d9a4: 4634 mov r4, r6
1d9a6: e709 b.n 1d7bc <_realloc_r+0xfc>
1d9a8: 68a3 ldr r3, [r4, #8]
1d9aa: 6083 str r3, [r0, #8]
1d9ac: 68e3 ldr r3, [r4, #12]
1d9ae: 60c3 str r3, [r0, #12]
1d9b0: 2a24 cmp r2, #36 ; 0x24
1d9b2: d027 beq.n 1da04 <_realloc_r+0x344>
1d9b4: f104 0210 add.w r2, r4, #16
1d9b8: f100 0310 add.w r3, r0, #16
1d9bc: e6de b.n 1d77c <_realloc_r+0xbc>
1d9be: 4632 mov r2, r6
1d9c0: e7be b.n 1d940 <_realloc_r+0x280>
1d9c2: 4621 mov r1, r4
1d9c4: 4630 mov r0, r6
1d9c6: 4698 mov r8, r3
1d9c8: 46d9 mov r9, fp
1d9ca: f7f9 fa45 bl 16e58 <memmove>
1d9ce: 4634 mov r4, r6
1d9d0: e6f4 b.n 1d7bc <_realloc_r+0xfc>
1d9d2: 4633 mov r3, r6
1d9d4: e7de b.n 1d994 <_realloc_r+0x2d4>
1d9d6: 4621 mov r1, r4
1d9d8: 4630 mov r0, r6
1d9da: 46f0 mov r8, lr
1d9dc: 46d9 mov r9, fp
1d9de: f7f9 fa3b bl 16e58 <memmove>
1d9e2: 4634 mov r4, r6
1d9e4: e6ea b.n 1d7bc <_realloc_r+0xfc>
1d9e6: bf00 nop
1d9e8: 20000488 .word 0x20000488
1d9ec: 68a1 ldr r1, [r4, #8]
1d9ee: f8cb 1010 str.w r1, [fp, #16]
1d9f2: 68e1 ldr r1, [r4, #12]
1d9f4: f8cb 1014 str.w r1, [fp, #20]
1d9f8: 2a24 cmp r2, #36 ; 0x24
1d9fa: d020 beq.n 1da3e <_realloc_r+0x37e>
1d9fc: 3410 adds r4, #16
1d9fe: f10b 0218 add.w r2, fp, #24
1da02: e79d b.n 1d940 <_realloc_r+0x280>
1da04: 6923 ldr r3, [r4, #16]
1da06: 6103 str r3, [r0, #16]
1da08: 6961 ldr r1, [r4, #20]
1da0a: 6141 str r1, [r0, #20]
1da0c: f104 0218 add.w r2, r4, #24
1da10: f100 0318 add.w r3, r0, #24
1da14: e6b2 b.n 1d77c <_realloc_r+0xbc>
1da16: 68a3 ldr r3, [r4, #8]
1da18: f8cb 3010 str.w r3, [fp, #16]
1da1c: 68e3 ldr r3, [r4, #12]
1da1e: f8cb 3014 str.w r3, [fp, #20]
1da22: 2a24 cmp r2, #36 ; 0x24
1da24: d021 beq.n 1da6a <_realloc_r+0x3aa>
1da26: 3410 adds r4, #16
1da28: f10b 0318 add.w r3, fp, #24
1da2c: e7b2 b.n 1d994 <_realloc_r+0x2d4>
1da2e: 4632 mov r2, r6
1da30: e731 b.n 1d896 <_realloc_r+0x1d6>
1da32: 4621 mov r1, r4
1da34: 4630 mov r0, r6
1da36: f7f9 fa0f bl 16e58 <memmove>
1da3a: 4b16 ldr r3, [pc, #88] ; (1da94 <_realloc_r+0x3d4>)
1da3c: e731 b.n 1d8a2 <_realloc_r+0x1e2>
1da3e: 6922 ldr r2, [r4, #16]
1da40: f8cb 2018 str.w r2, [fp, #24]
1da44: 6962 ldr r2, [r4, #20]
1da46: f8cb 201c str.w r2, [fp, #28]
1da4a: 3418 adds r4, #24
1da4c: f10b 0220 add.w r2, fp, #32
1da50: e776 b.n 1d940 <_realloc_r+0x280>
1da52: 68a1 ldr r1, [r4, #8]
1da54: f8cb 1010 str.w r1, [fp, #16]
1da58: 68e1 ldr r1, [r4, #12]
1da5a: f8cb 1014 str.w r1, [fp, #20]
1da5e: 2a24 cmp r2, #36 ; 0x24
1da60: d00d beq.n 1da7e <_realloc_r+0x3be>
1da62: 3410 adds r4, #16
1da64: f10b 0218 add.w r2, fp, #24
1da68: e715 b.n 1d896 <_realloc_r+0x1d6>
1da6a: 6923 ldr r3, [r4, #16]
1da6c: f8cb 3018 str.w r3, [fp, #24]
1da70: 6963 ldr r3, [r4, #20]
1da72: f8cb 301c str.w r3, [fp, #28]
1da76: 3418 adds r4, #24
1da78: f10b 0320 add.w r3, fp, #32
1da7c: e78a b.n 1d994 <_realloc_r+0x2d4>
1da7e: 6922 ldr r2, [r4, #16]
1da80: f8cb 2018 str.w r2, [fp, #24]
1da84: 6962 ldr r2, [r4, #20]
1da86: f8cb 201c str.w r2, [fp, #28]
1da8a: 3418 adds r4, #24
1da8c: f10b 0220 add.w r2, fp, #32
1da90: e701 b.n 1d896 <_realloc_r+0x1d6>
1da92: bf00 nop
1da94: 20000488 .word 0x20000488
0001da98 <__swbuf_r>:
1da98: b5f8 push {r3, r4, r5, r6, r7, lr}
1da9a: 460d mov r5, r1
1da9c: 4614 mov r4, r2
1da9e: 4606 mov r6, r0
1daa0: b110 cbz r0, 1daa8 <__swbuf_r+0x10>
1daa2: 6b83 ldr r3, [r0, #56] ; 0x38
1daa4: 2b00 cmp r3, #0
1daa6: d043 beq.n 1db30 <__swbuf_r+0x98>
1daa8: f9b4 200c ldrsh.w r2, [r4, #12]
1daac: 69a3 ldr r3, [r4, #24]
1daae: 60a3 str r3, [r4, #8]
1dab0: 0717 lsls r7, r2, #28
1dab2: b290 uxth r0, r2
1dab4: d51b bpl.n 1daee <__swbuf_r+0x56>
1dab6: 6923 ldr r3, [r4, #16]
1dab8: b1cb cbz r3, 1daee <__swbuf_r+0x56>
1daba: b2ed uxtb r5, r5
1dabc: 0481 lsls r1, r0, #18
1dabe: 462f mov r7, r5
1dac0: d522 bpl.n 1db08 <__swbuf_r+0x70>
1dac2: 6822 ldr r2, [r4, #0]
1dac4: 6961 ldr r1, [r4, #20]
1dac6: 1ad3 subs r3, r2, r3
1dac8: 4299 cmp r1, r3
1daca: dd29 ble.n 1db20 <__swbuf_r+0x88>
1dacc: 3301 adds r3, #1
1dace: 68a1 ldr r1, [r4, #8]
1dad0: 3901 subs r1, #1
1dad2: 60a1 str r1, [r4, #8]
1dad4: 1c51 adds r1, r2, #1
1dad6: 6021 str r1, [r4, #0]
1dad8: 7015 strb r5, [r2, #0]
1dada: 6962 ldr r2, [r4, #20]
1dadc: 429a cmp r2, r3
1dade: d02a beq.n 1db36 <__swbuf_r+0x9e>
1dae0: 89a3 ldrh r3, [r4, #12]
1dae2: 07db lsls r3, r3, #31
1dae4: d501 bpl.n 1daea <__swbuf_r+0x52>
1dae6: 2d0a cmp r5, #10
1dae8: d025 beq.n 1db36 <__swbuf_r+0x9e>
1daea: 4638 mov r0, r7
1daec: bdf8 pop {r3, r4, r5, r6, r7, pc}
1daee: 4621 mov r1, r4
1daf0: 4630 mov r0, r6
1daf2: f7fc f91f bl 19d34 <__swsetup_r>
1daf6: bb20 cbnz r0, 1db42 <__swbuf_r+0xaa>
1daf8: f9b4 200c ldrsh.w r2, [r4, #12]
1dafc: 6923 ldr r3, [r4, #16]
1dafe: b290 uxth r0, r2
1db00: b2ed uxtb r5, r5
1db02: 0481 lsls r1, r0, #18
1db04: 462f mov r7, r5
1db06: d4dc bmi.n 1dac2 <__swbuf_r+0x2a>
1db08: f442 5200 orr.w r2, r2, #8192 ; 0x2000
1db0c: 81a2 strh r2, [r4, #12]
1db0e: 6e22 ldr r2, [r4, #96] ; 0x60
1db10: 6961 ldr r1, [r4, #20]
1db12: f422 5200 bic.w r2, r2, #8192 ; 0x2000
1db16: 6622 str r2, [r4, #96] ; 0x60
1db18: 6822 ldr r2, [r4, #0]
1db1a: 1ad3 subs r3, r2, r3
1db1c: 4299 cmp r1, r3
1db1e: dcd5 bgt.n 1dacc <__swbuf_r+0x34>
1db20: 4621 mov r1, r4
1db22: 4630 mov r0, r6
1db24: f7fd fa0a bl 1af3c <_fflush_r>
1db28: b958 cbnz r0, 1db42 <__swbuf_r+0xaa>
1db2a: 6822 ldr r2, [r4, #0]
1db2c: 2301 movs r3, #1
1db2e: e7ce b.n 1dace <__swbuf_r+0x36>
1db30: f7fd fa8c bl 1b04c <__sinit>
1db34: e7b8 b.n 1daa8 <__swbuf_r+0x10>
1db36: 4621 mov r1, r4
1db38: 4630 mov r0, r6
1db3a: f7fd f9ff bl 1af3c <_fflush_r>
1db3e: 2800 cmp r0, #0
1db40: d0d3 beq.n 1daea <__swbuf_r+0x52>
1db42: f04f 37ff mov.w r7, #4294967295 ; 0xffffffff
1db46: e7d0 b.n 1daea <__swbuf_r+0x52>
0001db48 <_wcrtomb_r>:
1db48: b570 push {r4, r5, r6, lr}
1db4a: 4d0b ldr r5, [pc, #44] ; (1db78 <_wcrtomb_r+0x30>)
1db4c: b084 sub sp, #16
1db4e: f8d5 50e0 ldr.w r5, [r5, #224] ; 0xe0
1db52: 4604 mov r4, r0
1db54: 461e mov r6, r3
1db56: b121 cbz r1, 1db62 <_wcrtomb_r+0x1a>
1db58: 47a8 blx r5
1db5a: 1c43 adds r3, r0, #1
1db5c: d006 beq.n 1db6c <_wcrtomb_r+0x24>
1db5e: b004 add sp, #16
1db60: bd70 pop {r4, r5, r6, pc}
1db62: 460a mov r2, r1
1db64: a901 add r1, sp, #4
1db66: 47a8 blx r5
1db68: 1c43 adds r3, r0, #1
1db6a: d1f8 bne.n 1db5e <_wcrtomb_r+0x16>
1db6c: 2200 movs r2, #0
1db6e: 238a movs r3, #138 ; 0x8a
1db70: 6032 str r2, [r6, #0]
1db72: 6023 str r3, [r4, #0]
1db74: b004 add sp, #16
1db76: bd70 pop {r4, r5, r6, pc}
1db78: 20000898 .word 0x20000898
0001db7c <__ascii_wctomb>:
1db7c: b149 cbz r1, 1db92 <__ascii_wctomb+0x16>
1db7e: 2aff cmp r2, #255 ; 0xff
1db80: d802 bhi.n 1db88 <__ascii_wctomb+0xc>
1db82: 700a strb r2, [r1, #0]
1db84: 2001 movs r0, #1
1db86: 4770 bx lr
1db88: 238a movs r3, #138 ; 0x8a
1db8a: 6003 str r3, [r0, #0]
1db8c: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
1db90: 4770 bx lr
1db92: 4608 mov r0, r1
1db94: 4770 bx lr
1db96: bf00 nop
0001db98 <abort>:
1db98: b508 push {r3, lr}
1db9a: 2006 movs r0, #6
1db9c: f7fe fb04 bl 1c1a8 <raise>
1dba0: 2001 movs r0, #1
1dba2: f7e2 fbf7 bl 394 <_exit>
1dba6: bf00 nop
0001dba8 <__gedf2>:
1dba8: f04f 3cff mov.w ip, #4294967295 ; 0xffffffff
1dbac: e006 b.n 1dbbc <__cmpdf2+0x4>
1dbae: bf00 nop
0001dbb0 <__ledf2>:
1dbb0: f04f 0c01 mov.w ip, #1
1dbb4: e002 b.n 1dbbc <__cmpdf2+0x4>
1dbb6: bf00 nop
0001dbb8 <__cmpdf2>:
1dbb8: f04f 0c01 mov.w ip, #1
1dbbc: f84d cd04 str.w ip, [sp, #-4]!
1dbc0: ea4f 0c41 mov.w ip, r1, lsl #1
1dbc4: ea7f 5c6c mvns.w ip, ip, asr #21
1dbc8: ea4f 0c43 mov.w ip, r3, lsl #1
1dbcc: bf18 it ne
1dbce: ea7f 5c6c mvnsne.w ip, ip, asr #21
1dbd2: d01b beq.n 1dc0c <__cmpdf2+0x54>
1dbd4: b001 add sp, #4
1dbd6: ea50 0c41 orrs.w ip, r0, r1, lsl #1
1dbda: bf0c ite eq
1dbdc: ea52 0c43 orrseq.w ip, r2, r3, lsl #1
1dbe0: ea91 0f03 teqne r1, r3
1dbe4: bf02 ittt eq
1dbe6: ea90 0f02 teqeq r0, r2
1dbea: 2000 moveq r0, #0
1dbec: 4770 bxeq lr
1dbee: f110 0f00 cmn.w r0, #0
1dbf2: ea91 0f03 teq r1, r3
1dbf6: bf58 it pl
1dbf8: 4299 cmppl r1, r3
1dbfa: bf08 it eq
1dbfc: 4290 cmpeq r0, r2
1dbfe: bf2c ite cs
1dc00: 17d8 asrcs r0, r3, #31
1dc02: ea6f 70e3 mvncc.w r0, r3, asr #31
1dc06: f040 0001 orr.w r0, r0, #1
1dc0a: 4770 bx lr
1dc0c: ea4f 0c41 mov.w ip, r1, lsl #1
1dc10: ea7f 5c6c mvns.w ip, ip, asr #21
1dc14: d102 bne.n 1dc1c <__cmpdf2+0x64>
1dc16: ea50 3c01 orrs.w ip, r0, r1, lsl #12
1dc1a: d107 bne.n 1dc2c <__cmpdf2+0x74>
1dc1c: ea4f 0c43 mov.w ip, r3, lsl #1
1dc20: ea7f 5c6c mvns.w ip, ip, asr #21
1dc24: d1d6 bne.n 1dbd4 <__cmpdf2+0x1c>
1dc26: ea52 3c03 orrs.w ip, r2, r3, lsl #12
1dc2a: d0d3 beq.n 1dbd4 <__cmpdf2+0x1c>
1dc2c: f85d 0b04 ldr.w r0, [sp], #4
1dc30: 4770 bx lr
1dc32: bf00 nop
0001dc34 <__aeabi_cdrcmple>:
1dc34: 4684 mov ip, r0
1dc36: 4610 mov r0, r2
1dc38: 4662 mov r2, ip
1dc3a: 468c mov ip, r1
1dc3c: 4619 mov r1, r3
1dc3e: 4663 mov r3, ip
1dc40: e000 b.n 1dc44 <__aeabi_cdcmpeq>
1dc42: bf00 nop
0001dc44 <__aeabi_cdcmpeq>:
1dc44: b501 push {r0, lr}
1dc46: f7ff ffb7 bl 1dbb8 <__cmpdf2>
1dc4a: 2800 cmp r0, #0
1dc4c: bf48 it mi
1dc4e: f110 0f00 cmnmi.w r0, #0
1dc52: bd01 pop {r0, pc}
0001dc54 <__aeabi_dcmpeq>:
1dc54: f84d ed08 str.w lr, [sp, #-8]!
1dc58: f7ff fff4 bl 1dc44 <__aeabi_cdcmpeq>
1dc5c: bf0c ite eq
1dc5e: 2001 moveq r0, #1
1dc60: 2000 movne r0, #0
1dc62: f85d fb08 ldr.w pc, [sp], #8
1dc66: bf00 nop
0001dc68 <__aeabi_dcmplt>:
1dc68: f84d ed08 str.w lr, [sp, #-8]!
1dc6c: f7ff ffea bl 1dc44 <__aeabi_cdcmpeq>
1dc70: bf34 ite cc
1dc72: 2001 movcc r0, #1
1dc74: 2000 movcs r0, #0
1dc76: f85d fb08 ldr.w pc, [sp], #8
1dc7a: bf00 nop
0001dc7c <__aeabi_dcmple>:
1dc7c: f84d ed08 str.w lr, [sp, #-8]!
1dc80: f7ff ffe0 bl 1dc44 <__aeabi_cdcmpeq>
1dc84: bf94 ite ls
1dc86: 2001 movls r0, #1
1dc88: 2000 movhi r0, #0
1dc8a: f85d fb08 ldr.w pc, [sp], #8
1dc8e: bf00 nop
0001dc90 <__aeabi_dcmpge>:
1dc90: f84d ed08 str.w lr, [sp, #-8]!
1dc94: f7ff ffce bl 1dc34 <__aeabi_cdrcmple>
1dc98: bf94 ite ls
1dc9a: 2001 movls r0, #1
1dc9c: 2000 movhi r0, #0
1dc9e: f85d fb08 ldr.w pc, [sp], #8
1dca2: bf00 nop
0001dca4 <__aeabi_dcmpgt>:
1dca4: f84d ed08 str.w lr, [sp, #-8]!
1dca8: f7ff ffc4 bl 1dc34 <__aeabi_cdrcmple>
1dcac: bf34 ite cc
1dcae: 2001 movcc r0, #1
1dcb0: 2000 movcs r0, #0
1dcb2: f85d fb08 ldr.w pc, [sp], #8
1dcb6: bf00 nop
0001dcb8 <__aeabi_dcmpun>:
1dcb8: ea4f 0c41 mov.w ip, r1, lsl #1
1dcbc: ea7f 5c6c mvns.w ip, ip, asr #21
1dcc0: d102 bne.n 1dcc8 <__aeabi_dcmpun+0x10>
1dcc2: ea50 3c01 orrs.w ip, r0, r1, lsl #12
1dcc6: d10a bne.n 1dcde <__aeabi_dcmpun+0x26>
1dcc8: ea4f 0c43 mov.w ip, r3, lsl #1
1dccc: ea7f 5c6c mvns.w ip, ip, asr #21
1dcd0: d102 bne.n 1dcd8 <__aeabi_dcmpun+0x20>
1dcd2: ea52 3c03 orrs.w ip, r2, r3, lsl #12
1dcd6: d102 bne.n 1dcde <__aeabi_dcmpun+0x26>
1dcd8: f04f 0000 mov.w r0, #0
1dcdc: 4770 bx lr
1dcde: f04f 0001 mov.w r0, #1
1dce2: 4770 bx lr
0001dce4 <__aeabi_d2iz>:
1dce4: ea4f 0241 mov.w r2, r1, lsl #1
1dce8: f512 1200 adds.w r2, r2, #2097152 ; 0x200000
1dcec: d215 bcs.n 1dd1a <__aeabi_d2iz+0x36>
1dcee: d511 bpl.n 1dd14 <__aeabi_d2iz+0x30>
1dcf0: f46f 7378 mvn.w r3, #992 ; 0x3e0
1dcf4: ebb3 5262 subs.w r2, r3, r2, asr #21
1dcf8: d912 bls.n 1dd20 <__aeabi_d2iz+0x3c>
1dcfa: ea4f 23c1 mov.w r3, r1, lsl #11
1dcfe: f043 4300 orr.w r3, r3, #2147483648 ; 0x80000000
1dd02: ea43 5350 orr.w r3, r3, r0, lsr #21
1dd06: f011 4f00 tst.w r1, #2147483648 ; 0x80000000
1dd0a: fa23 f002 lsr.w r0, r3, r2
1dd0e: bf18 it ne
1dd10: 4240 negne r0, r0
1dd12: 4770 bx lr
1dd14: f04f 0000 mov.w r0, #0
1dd18: 4770 bx lr
1dd1a: ea50 3001 orrs.w r0, r0, r1, lsl #12
1dd1e: d105 bne.n 1dd2c <__aeabi_d2iz+0x48>
1dd20: f011 4000 ands.w r0, r1, #2147483648 ; 0x80000000
1dd24: bf08 it eq
1dd26: f06f 4000 mvneq.w r0, #2147483648 ; 0x80000000
1dd2a: 4770 bx lr
1dd2c: f04f 0000 mov.w r0, #0
1dd30: 4770 bx lr
1dd32: bf00 nop
0001dd34 <_read>:
1dd34: 4b02 ldr r3, [pc, #8] ; (1dd40 <_read+0xc>)
1dd36: 2258 movs r2, #88 ; 0x58
1dd38: 601a str r2, [r3, #0]
1dd3a: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
1dd3e: 4770 bx lr
1dd40: 20005804 .word 0x20005804
0001dd44 <_write>:
1dd44: 4b02 ldr r3, [pc, #8] ; (1dd50 <_write+0xc>)
1dd46: 2258 movs r2, #88 ; 0x58
1dd48: 601a str r2, [r3, #0]
1dd4a: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff
1dd4e: 4770 bx lr
1dd50: 20005804 .word 0x20005804
1dd54: 682f2e2e .word 0x682f2e2e
1dd58: 732f6c61 .word 0x732f6c61
1dd5c: 682f6372 .word 0x682f6372
1dd60: 695f6c61 .word 0x695f6c61
1dd64: 00632e6f .word 0x00632e6f
1dd68: 74697845 .word 0x74697845
1dd6c: 20676e69 .word 0x20676e69
1dd70: 68746977 .word 0x68746977
1dd74: 61747320 .word 0x61747320
1dd78: 20737574 .word 0x20737574
1dd7c: 0a2e6425 .word 0x0a2e6425
1dd80: 00 .byte 0x00
1dd81: 2e .byte 0x2e
1dd82: 2f2e .short 0x2f2e
1dd84: 2f6c6168 .word 0x2f6c6168
1dd88: 2f637273 .word 0x2f637273
1dd8c: 5f6c6168 .word 0x5f6c6168
1dd90: 656d6974 .word 0x656d6974
1dd94: 00632e72 .word 0x00632e72
1dd98: 682f2e2e .word 0x682f2e2e
1dd9c: 752f6c61 .word 0x752f6c61
1dda0: 736c6974 .word 0x736c6974
1dda4: 6372732f .word 0x6372732f
1dda8: 6974752f .word 0x6974752f
1ddac: 6c5f736c .word 0x6c5f736c
1ddb0: 2e747369 .word 0x2e747369
1ddb4: 0063 .short 0x0063
1ddb6: 2e2e .short 0x2e2e
1ddb8: 6c70682f .word 0x6c70682f
1ddbc: 7265732f .word 0x7265732f
1ddc0: 2f6d6f63 .word 0x2f6d6f63
1ddc4: 5f6c7068 .word 0x5f6c7068
1ddc8: 63726573 .word 0x63726573
1ddcc: 632e6d6f .word 0x632e6d6f
1ddd0: 00000000 .word 0x00000000
1ddd4: 40003000 .word 0x40003000
1ddd8: 40003400 .word 0x40003400
1dddc: 41012000 .word 0x41012000
1dde0: 41014000 .word 0x41014000
1dde4: 43000000 .word 0x43000000
1dde8: 43000400 .word 0x43000400
1ddec: 43000800 .word 0x43000800
1ddf0: 43000c00 .word 0x43000c00
0001ddf4 <_i2cms>:
1ddf4: 00000003 00200014 00000100 000000ff ...... .........
1de04: 00d70000 07270400 ......'.
0001de0c <sercomspi_regs>:
...
1de1c: 2f2e2e00 2f6c6168 2f637273 5f6c6168 .../hal/src/hal_
1de2c: 72617375 73615f74 2e636e79 2e2e0063 usart_async.c...
1de3c: 6c61682f 6974752f 732f736c 752f6372 /hal/utils/src/u
1de4c: 736c6974 6e69725f 66756267 2e726566 tils_ringbuffer.
1de5c: 2e2e0063 6c70682f 2f63742f 5f6c7068 c.../hpl/tc/hpl_
1de6c: 632e6374 00000000 40003800 40003c00 tc.c.....8.@.<.@
1de7c: 4101a000 4101c000 42001400 42001800 ...A...A...B...B
1de8c: 43001400 43001800 ...C...C
0001de94 <_tcs>:
1de94: 006b0000 00000308 00000000 00003a97 ..k..........:..
1dea4: 00000000 682f2e2e 702f6c70 2f74726f ....../hpl/port/
1deb4: 5f6c7068 6f697067 7361625f 00682e65 hpl_gpio_base.h.
1dec4: 75323025 3230253a 30253a75 253a7532 %02u:%02u:%02u:%
1ded4: 00753330 454e4f4e 41525400 5b004543 03u.NONE.TRACE.[
1dee4: 4c47564c 73255b5d 73255b5d 73255b5d LVGL][%s][%s][%s
1def4: 64255b5d 2d2d205d 0d732509 4e49000a ][%d] --.%s...IN
1df04: 57004f46 004e5241 4f525245 00000052 FO.WARN.ERROR...
0001df14 <CSWTCH.21>:
1df14: 0001df02 0001df07 0001df0c 6c6c6548 ............Hell
1df24: 6f57206f 00646c72 o World.
0001df2c <hornet>:
1df2c: 1662e40a 0000855b 0001df38 ..b.[...8...
0001df38 <hornet_map>:
1df38: ff07060b ffac882c ff871f25 ff895139 ....,...%...9Q..
1df48: ffdcc46d ffc88348 ffc65632 ff46434d m...H...2V..MCF.
1df58: ff480a16 ffbca25c ffc22d38 ff8b6c67 ..H.\...8-..gl..
1df68: ff48272d ff893622 ffc76d41 ffc38576 -'H."6..Am..v...
1df78: ffc6a49a ffa53520 ff692621 ffa95139 .... 5..!&i.9Q..
1df88: ffe8e2a9 ff26242e ffe96e40 ffe98843 .....$&.@n..C...
1df98: ffaea64b ff873848 ffc5c4c9 ffa86e33 K...H8......3n..
1dfa8: ff69646a ffe45640 ff69342e ff280917 jdi.@V...4i...(.
1dfb8: ffa8554e ffe7a996 ff838383 ff67101b NU............g.
1dfc8: ff9e8880 ffc76e60 ffe7a65f ffe99647 ....`n.._...G...
1dfd8: ffe68779 ffa9202e ff694527 ff8a4335 y.... ..'Ei.5C..
1dfe8: ffa76f64 ff493329 ffc0b5af ff89575f do..)3I....._W..
1dff8: ffc75543 ffa9462d ff9f9789 ffab603f CU..-F......?`..
1e008: ff882c1d ffc97948 ff27151b ffc69482 .,..Hy....'.....
1e018: ff69282f ffe6b669 ffdfd484 ff48151b /(i.i.........H.
1e028: ffc89364 ffe66e5b ffc14715 ffe4c4bc d...[n...G......
1e038: ff98371e ffc66343 ffe1e4e8 ff73542a .7..Cc......*Ts.
1e048: ff673a3e ffb7532b ff872b32 ffe68a60 >:g.+S..2+..`...
1e058: ff19141e ffd68448 ff38373f ffea9964 ....H...?78.d...
1e068: ffd69881 ff875f47 ff592621 ff37161a ....G_..!&Y...7.
1e078: ffe65550 ff886e77 ffd8a894 ffa97a73 PU..wn......sz..
1e088: ff571922 ffeba872 fff6f3de ffa3a59e ".W.r...........
1e098: ffe03d49 ff671c24 ffa28c94 ffa86254 I=..$.g.....Tb..
1e0a8: ffecc483 ffd76e48 ffa9473f ffa93a38 ....Hn..?G..8:..
1e0b8: ffd5d4d6 ffa77937 ffe76254 ff595861 ....7y..Tb..aXY.
1e0c8: ff884648 ffd6b4a7 ffb0999a ff9b5036 HF..........6P..
1e0d8: ff782620 ff392328 ffb3b5b4 ffe77a45 &x.(#9.....Ez..
1e0e8: ffe8b596 ff593331 ffd87a46 ffc19aa2 ....13Y.Fz......
1e0f8: ff160c16 ffb1887e ff886263 ff797679 ....~...cb..yvy.
1e108: ff762930 ffc13d43 ff973c30 ff79362d 0)v.C=..0<..-6y.
1e118: ff67474c ff994530 ffbfb560 fff7975f LGg.0E..`..._...
1e128: ffd7624b ffc9875c ff952d18 ffe87959 Kb..\....-..Yy..
1e138: ffc04945 ff94968f ff9c9729 ffebddae EI......).......
1e148: ffc0aa64 ffe99a78 fff3ead1 ffc56232 d...x.......2b..
1e158: ffd8343e ff685a61 ffda9842 fff1643e >4..aZh.B...>d..
1e168: ff928678 ffd8b859 ffc67a62 ffe4dcdd x...Y...bz......
1e178: ff867c7c ff574a54 ffdaa94f ffd58a7b ||..TJW.O...{...
1e188: ffafa9a4 ffd9a57b ffd6cdcd ff766b6f ....{.......okv.
1e198: ffecd27c fff7b894 ffa99931 ff84766c |.......1...lv..
1e1a8: ffe1cb82 ffd85019 fff5b57b ffb96d49 .....P..{...Im..
1e1b8: ffbb7947 ffac2b34 ffd7895e ffa48654 Gy..4+..^...T...
1e1c8: ff972129 ff570c18 ffc3aaaf ffede6bf )!....W.........
1e1d8: ffacac64 ff370815 fff9a55c ff7b4432 d.....7.\...2D{.
1e1e8: ffc1bcbf fff69b7e ff78575a ffb76e5f ....~...ZWx._n..
1e1f8: ff99614b ffb97a64 ff771a22 ff994747 Ka..dz..".w.GG..
1e208: ff986266 fff68745 fff6a996 ff77121c fb..E.........w.
1e218: fff7964c ffd8544a fffbc7b6 ff783a40 L...JT......@:x.
1e228: fffa875f fff5a67a ffae8b97 ff78484a _...z.......JHx.
1e238: fff8d7bb fffbfaf8 fff2c89a ffeeebeb ................
1e248: fffb6e49 ffb7624f fffb6459 ffd97965 In..Ob..Yd..ey..
1e258: ff883930 ff973747 ff483942 ff291825 09..G7..B9H.%.).
1e268: ffe4da9b ff481725 ffd79d99 ff381825 ....%.H.....%.8.
1e278: fff75652 ff995249 ffe5bcb4 ff5a373e RV..IR......>7Z.
1e288: ff98944c ffd99566 fffcd2d4 ffb7584e L...f.......NX..
1e298: ff97595d ffc3343f ffdc494b ff95786b ]Y..?4..KI..kx..
1e2a8: ffb9613b ff982931 fff97a43 ffd03c46 ;a..1)..Cz..F<..
1e2b8: fffb785b ff997b7b ffa63c23 ffc79d8b [x..{{..#<......
1e2c8: ffdadbdf ff885350 ff9f9b96 ffeab97a ....PS......z...
1e2d8: ffb7553a ff572a2f ffd7aba7 ffd9babb :U../*W.........
1e2e8: ff382938 ff8e8b89 ffdbbb69 ffecd7a1 8)8.....i.......
1e2f8: fff8b8ab ff966f68 ffab6c51 ffd86f5d ....ho..Ql..]o..
1e308: fffb6e5b ff997077 ffd56331 ffd14848 [n..wp..1c..HH..
1e318: fffc5a44 ffdccc73 ff4b4b54 ffc38c7a DZ..s...TKK.z...
1e328: ffc6ac9f ff2b2c37 ffcbcbcf ff6b6b6f ....7,+.....okk.
1e338: 70707070 70707070 70707070 70704870 pppppppppppppHpp
1e348: 48487070 36363648 e90c69cb 7744442d ppHHH666.i..-DDw
1e358: 771212e9 133179c8 c8763113 133179c8 ...w.y1..1v..y1.
1e368: e2e23131 407e40e2 40e2e2e2 25c531e2 11...@~@...@.1.%
1e378: 30c785a2 0d76b35e 46464646 404040dd ...0^.v.FFFF.@@@
1e388: d1135e5f 5f762bb3 c876765f 9ca240c8 _^...+v__vv..@..
1e398: e714c156 bd0439bd 9c263ae7 140404a7 V....9...:&.....
1e3a8: 7be0bce7 8047efef f3bc3d80 569c4733 ...{..G..=..3G.V
1e3b8: 5c56c1c1 9ce79cee 56ef39f9 9c86f93a ..V\.....9.V:...
1e3c8: 0e0ec785 9ccc55c7 c156e74b 9f35a2c2 .....U..K.V...5.
1e3d8: 9f9f9f9f 339f9f9f 67672033 20677979 .......33 ggyyg
1e3e8: dc132020 1e126717 7070704e 70707070 ...g..Nppppppp
1e3f8: 70707070 70487070 48487070 36364848 ppppppHpppHHHH66
1e408: 694e0c36 2b2b2d69 744e1e2b 3179c877 6.Nii-+++.Ntw.y1
1e418: 7631315e 3179c8c8 e2313113 3440e2e2 ^11v..y1.11...@4
1e428: e2313140 9f9fd731 c72825c5 76b35e30 @11.1....%(.0^.v
1e438: 4634340d 40407e46 13b37640 2b2bb3d1 .44FF~@@@v....++
1e448: 40765f5f 6e407676 86c1869c f9e73904 __v@vv@n.....9..
1e458: 559c3955 ee9c869c f4bc5c14 4783ef7b U9.U.....\..{..G
1e468: bc625e80 044720f3 c1c1c186 c28304f9 .^b.. G.........
1e478: 9c39f9e7 a7f9ccc1 35354b9c a75cd535 ..9......K555.\.
1e488: 565c55ef 3cd5efc1 7d7d7d7d 05050505 .U\V...<}}}}....
1e498: c59f9fa0 33333333 dc333333 77136e17 ....3333333..n.w
1e4a8: 7070740d 70707070 70707070 36487070 .tppppppppppppH6
1e4b8: 48707048 cb364848 4e4ecb36 bb1e1e0c HppHHH6.6.NN....
1e4c8: 4ec82bb3 2bc87777 79797979 79c8c876 .+.Nww.+yyyyv..y
1e4d8: 31131331 40e2e231 1331e240 13c5af33 1..11..@@.1.3...
1e4e8: 28f3e831 b35ee8f3 34340d76 7e7e4646 1..(..^.v.44FF~~
1e4f8: b3764040 2bb3d113 76315f2b 40767640 @@v....++_1v@vv@
1e508: 86a79c6e e7393a56 f955553a 9c86e726 n...V:9.:UU.&...
1e518: b59c83ee 83efbce0 7cb35e4b 6e13f3e0 ........K^.|...n
1e528: c1c186e7 a73a3ac1 550455e7 0483c19c .....::..U.U....
1e538: 67a2e73a 5c55a2a0 5c9e14a7 2683c156 :..g..U\...\V..&
1e548: 3c3c3cd5 7d7d3c3c 9f350505 9fdcdc9f .<<<<<}}..5.....
1e558: 3113c5c5 33336e0e 700d0d34 70707070 ...1.n334..ppppp
1e568: 70707070 48707070 70704836 36484848 pppppppH6HppHHH6
1e578: 1e6936cb bb790c0c c82bbbbb c877744e .6i...y...+.Ntw.
1e588: 2b2bc8c8 76c8c8c8 13133179 31313131 ..++...vy1..1111
1e598: c53176e2 7613c5af 25e83176 b3e841f3 .v1....vv1.%.A..
1e5a8: 340d76b3 34343434 5f114040 b3d1d1b3 .v.44444@@._....
1e5b8: 3131762b 76767676 c2e7f340 04a7c1c0 +v11vvvv@.......
1e5c8: 55553a04 86e72604 9ccc8d3a c2bce0b8 .:UU.&..:.......
1e5d8: b35e4bcc d13de07c c1a7396e 8383c1c1 .K^.|.=.n9......
1e5e8: 042639a7 14c19c55 9f4b9ee7 99853564 .9&.U.....K.d5..
1e5f8: 9e14a75c 83c186e7 7d3cd526 7d3c3c3c \.......&.<}<<<}
1e608: a005057d 33dc9f9f 13dcc5dc 0d794579 }......3....yEy.
1e618: 0d74680d 70707070 70707070 70707070 .ht.pppppppppppp
1e628: 70704836 36484870 cfcbcbcb 2b1e6912 6HpppHH6.....i.+
1e638: 2b6dbbbb 7774122b 762b2bc8 c8c8c876 ..m++.tw.++vv...
1e648: 13317976 13313113 9f133131 407933af vy1..11.11...3y@
1e658: 790d7676 5ee8e8e8 0d76b3b3 34343434 vv.y...^..v.4444
1e668: 11407e34 1313b35f 31767967 76767631 4~@._...gyv11vvv
1e678: 390e7676 c1c156ef 39cc043a 39260426 vv.9.V..:..9&.&9
1e688: cc8def86 bce0b89c 5e4bcc5c 3dbc7c64 ........\.K^d|.=
1e698: a7550ed1 a7c1c1c1 26e7a7cc 569c55ee ..U........&.U.V
1e6a8: 35475583 2149f1b0 14143a9c c186e79e .UG5..I!.:......
1e6b8: 3cd52683 7d7d7d7d 3505057d dc9fa035 .&.<}}}}}..55...
1e6c8: 13133333 0d767979 12743379 70707068 33..yyv.y3t.hppp
1e6d8: 70707070 70707070 70704848 36484870 ppppppppHHpppHH6
1e6e8: cbcbcb36 c80c3636 d344bb2b 7412bb79 6...66..+.D.y..t
1e6f8: 792bc877 76797979 3179c8c8 13131313 w.+yyyyv..y1....
1e708: af9f1331 763113dc e6344040 3131e22c 1.....1v@@4.,.11
1e718: 7679b35e 34340d0d 40403434 13b35f11 ^.yv..4444@@._..
1e728: 76b31313 7679315f 417676c8 c1c11439 ...v_1yv.vvA9...
1e738: 1404ccc1 26ee4be7 8d83a755 f4b89c3a .....K.&U...:...
1e748: 4bcce7bc bc7cb35e 260e133d c1c1c183 ...K^.|.=..&....
1e758: e7a79c83 e755e726 0e4befa7 a2f2f5dc ....&.U...K.....
1e768: 143acc5c ef55e714 d52683c1 a27d7d3c \.:...U...&.<}}.
1e778: 05057d7d 9f356e35 311333dc 40767979 }}..5n5..3.1yyv@
1e788: c87d3334 70701268 70707070 70704870 43}.h.pppppppHpp
1e798: 70707070 48487070 cbcbcb36 773636cb ppppppHH6....66w
1e7a8: 44bb2b76 1ee91ebb 2bc87774 31317979 v+.D....tw.+yy11
1e7b8: 79c8c879 e8e81331 c5b19fe8 31313131 y..y1.......1111
1e7c8: 647e0d40 5e406fc1 b35e5e5e 34340d76 @.~d.o@^^^^.v.44
1e7d8: 40343434 b35f4040 5e131313 31313176 444@@@_....^v111
1e7e8: 76767631 56ef3941 f914c1c1 397b5ca7 1vvvA9.V.....\{9
1e7f8: 83a72626 273a9c8d 3a39e0f4 b9b3804b &&....:'..9:K...
1e808: c5133dbc c1c18355 869c83c1 55e7269c .=..U........&.U
1e818: c75c3ae7 33e633dc 3a145cd5 bde714cc .:\..3.3.\.:....
1e828: 26ef865c 7d7d3c3c 05057d7d 35491735 \..&<<}}}}..5.I5
1e838: 1333dc9f 0d0d7979 c513680d 7074680d ..3.yy...h...htp
1e848: 48487070 70364870 70483670 48707070 ppHHpH6pp6HppppH
1e858: cbcbcb48 cbcbcbcb bb2b7677 771e6d44 H.......wv+.Dm.w
1e868: 77771277 3179792b c8c87931 e8131379 w.ww+yy11y..y...
1e878: d78e8ec5 31e2e231 024040e2 40a6c1be ....1..1.@@....@
1e888: 5e5e5e5e 340d76b3 0d346834 5f404040 ^^^^.v.44h4.@@@_
1e898: 1313135e 31315e5e 795e3131 5c264176 ^...^^1111^yvA&\
1e8a8: a7c1c186 7b9ca7f9 83264b55 3a048da7 .......{UK&....:
1e8b8: bdf4f44b 5e807b3a 5b3de030 c18699af K...:{.^0.=[....
1e8c8: 9c14c1c1 554b9c86 4be75555 662ce89f ......KUUU.K..,f
1e8d8: 145c4b33 e714cc3a efcc9ebd 7d3c7d85 3K\.:........}<}
1e8e8: 057d7d7d 6e176e05 33dc9f35 0d767913 }}}..n.n5..3.yv.
1e8f8: 79680d0d 74687413 70707070 48367070 ..hy.thtpppppp6H
1e908: 36367070 48707048 cbcb3648 69cbcbcb pp66HppHH6.....i
1e918: bb1e6936 bb44d344 777777c8 792b2b77 6i..D.D..wwww++y
1e928: c8c87979 e8137979 e8257d8e 40403113 yy..yy...}%..1@@
1e938: 4040e2e2 60c1fe68 5e5e3176 0d76b35e ..@@h..`v1^^^.v.
1e948: bb72680d 11e27eb2 13135e5f 315ee813 .hr..~.._^....^1
1e958: 5ee85e31 aa877931 c1c1869e 3aa7f9a7 1^.^1y.........:
1e968: 4b4b267b ee26a783 f4f44b3a 307b9cad {&KK..&.:K....{0
1e978: 17e0e85e 83c210b1 a7c1c156 4b9c869c ^.......V......K
1e988: 477b5555 6613dc0e 5c4bdc24 cc3a9ccc UU{G...f$.K\..:.
1e998: 5cbdade7 7d7dd55c 7d7d7d7d 49173505 ...\\.}}}}}}.5.I
1e9a8: dc9f9f35 76797913 340d0d0d 68687468 5....yyv...4hthh
1e9b8: 70707068 70707070 48703670 70484836 hpppppppp6pH6HHp
1e9c8: cbcb4848 cbcbcbcb 69cbcbcb 2b44d32d HH.........i-.D+
1e9d8: 770dc8ab 2b2b7777 c8c8792b 9f137979 ...www+++y..yy..
1e9e8: d7418e8e 344031e8 40e2e27e 5642e534 ..A..1@4~..@4.BV
1e9f8: 5e5fd156 76b35e5e 2eb20d0d 7e7766c1 V._^^^.v.....fw~
1ea08: 135e31e2 5ee81313 13133131 6e311313 .1^....^11....1n
1ea18: c156e7aa 863a86c1 4b4b7bcc 39a7cc4b ..V...:..{KKK..9
1ea28: e04bf939 7be77bc6 27dc5e30 5510fc85 9.K..{.{0^.'...U
1ea38: c1c1569c 9c86f9a7 bcad4b4b 67dce80e .V......KK.....g
1ea48: d50eb4ac 9c9c3a5c 85ade7cc 7dd59e9e ....\:.........}
1ea58: 7d7d7d7d 4935057d dc9f3535 79791333 }}}}}.5I55..3.yy
1ea68: 0d0d4076 6868340d 70707474 70707070 v@...4hhttpppppp
1ea78: 70487070 4836cf48 cb484870 cb15cbcb ppHpH.6HpHH.....
1ea88: 0ccbcbcb 44d32d0c 7979ab2b 2b77c840 .....-.D+.yy@.w+
1ea98: 7931792b 8edc7979 4141258e 7e1131d7 +y1yyy...%AA.1.~
1eaa8: 11117e34 c3e10240 4053c1c3 b35e5e5e 4~..@.....S@^^^.
1eab8: 340d0d76 42c142bb 5e3134f1 13131313 v..4.B.B.41^....
1eac8: 13135e5e dcc535e8 569c4b27 3a86c1c1 ^^...5..'K.V...:
1ead8: 7b7bcca7 a73a4b4b 4bee2639 e7bcc6e0 ..{{KK:.9&.K....
1eae8: 8ac5b97b 5b715255 c156ee47 86f9a7c1 {...URq[G.V.....
1eaf8: bc7b4b3a 1313e85d 0ed11ab4 9c3ae7d5 :K{.].........:.
1eb08: ad5ccc9c a2555585 7d7d7d7d 05057d7d ..\..UU.}}}}}}..
1eb18: 9f9f3505 793113dc 76767979 76767676 .5....1yyyvvvvvv
1eb28: 70120d0d 48707070 70707070 36cfcf70 ...ppppHppppp..6
1eb38: 36487036 69cbcbcb e9cb6969 6d4477c8 6pH6...iii...wDm
1eb48: 132bd344 c80d795e dc13792b 8eaf1313 D.+.^y..+y......
1eb58: 2541c525 11e2e841 117e347e 94684011 %.A%A...~4~..@h.
1eb68: 10c1c3c3 5e5e5e40 460d76b3 c172b240 ....@^^^.v.F@.r.
1eb78: c894c1c1 131313e2 135e5e5e dc3939e8 ........^^^..99.
1eb88: 9c47dcdc 56c1c156 27cca7f9 9c277bb8 ..G.V..V...'.{'.
1eb98: 394b39a7 bcc6e07b d5f37b55 20b13755 .9K9{...U{..U7.
1eba8: 86396ed1 f9a7c1c1 bc27efa7 e813e87f .n9.......'.....
1ebb8: 13ac6679 f9e7856e 5c3a5c5c d5d585bd yf..n...\\:\....
1ebc8: 7d7d7dd5 05050505 35350505 1313dc35 .}}}......555...
1ebd8: 79797979 79797979 c8797979 70707070 yyyyyyyyyyy.pppp
1ebe8: 70707048 cbcf3600 48483636 cbcbcb36 Hppp.6..66HH6...
1ebf8: cb696969 bb77c877 ababb3bb 0d763113 iii.w.w......1v.
1ec08: 13792bc8 9fb19fc5 41d7e813 e245e841 .+y........AA.E.
1ec18: 7e347e11 68401111 c1c3c32e 5e31c896 .~4~..@h......1^
1ec28: 0d76b35e 5940460d c1c1c194 2079d160 ^.v..F@Y....`.y
1ec38: 5eb3b3d1 9f9895e8 47313113 c1c1869c ...^.....11G....
1ec48: cca73a56 17b8bc27 b839a79c d0f4b8aa V:..'.....9.....
1ec58: 21b69ebc 205bb195 395dd1d1 a7c1c1a7 ...!..[ ..]9....
1ec68: 273aa7f9 1313dc3d be1a79e8 e7ad47e8 ..:'=....y...G..
1ec78: 3a5ce79c a285bd5c 7da24bd5 a005057d ..\:\....K.}}...
1ec88: 350505a0 13130e6e 79767979 31797979 ...5n...yyvyyyy1
1ec98: 5e5e315e 70707079 70704848 36004870 ^1^^ypppHHpppH.6
1eca8: 48cb36cf cbcbcb48 69696915 c8c869cb .6.HH....iii.i..
1ecb8: b3b32b1e 4076b32b 79797940 138e8e13 .+..+.v@@yyy....
1ecc8: 31317979 31314531 3440e2e2 40e2117e yy111E11..@4~..@
1ecd8: c3c360c8 31d1c3c1 7679b313 46460d0d .`.....1..yv..FF
1ece8: c1e47734 53c3c1c1 b3b31379 9fd59f5e 4w.....Sy...^...
1ecf8: 31311313 c1a70447 a73a56c1 b8e04bcc ..11G....V:..K..
1ed08: 55a7e7b5 e0b5bce0 babaadf4 b320c54c ...U........L. .
1ed18: 5db3d1b3 c1c18326 cc830486 13134127 ...]&.......'A..
1ed28: e4d81313 adad5db4 e7e79c9e 85bd5c3a .....]......:\..
1ed38: a285d5a2 a0057d7d a0a0a0a0 13339f9f ....}}........3.
1ed48: 0d2b7913 31797976 795e3131 70707979 .y+.vyy111^yyypp
1ed58: 70483648 480ce969 cb363670 cbcb4836 H6Hpi..Hp66.6H..
1ed68: 696915cb 794ecb69 abab6d77 40312b67 ..iii.Nywm..g+1@
1ed78: 13131376 13af8e33 79797979 e2317979 v...3...yyyyyy1.
1ed88: 4011e2e2 e2117e34 8f42e57e 53c1c342 ...@4~..~.B.B..S
1ed98: b37913e2 460d0d76 72a44034 c1c156c1 ..y.v..F4@.r.V..
1eda8: b37971c1 13d75eb3 795e135e a7046e76 .qy..^..^.^yvn..
1edb8: f956c1c1 e04b1414 14e7b8b5 bce06226 ..V...K.....&b..
1edc8: babaadbc 5e807cad b3d1b364 c1cc265d .....|.^d...]&..
1edd8: cc0486c1 31e8273a 24791331 ad47d860 ....:'.11.y$`.G.
1ede8: e79c9e85 bd5c9ce7 85d5a285 7d7d7da2 ......\......}}}
1edf8: a0a0057d 9f9fa0a0 79133333 760d0d0d }.......33.y...v
1ee08: 5e793179 7079795e 36364870 0c0c7000 y1y^^yyppH66.p..
1ee18: 367070cb cb484836 6969cbcb 4ecb6969 .pp66HH...iiii.N
1ee28: bb1ee9c8 79b32b64 c5d71376 13c57d8e ....d+.yv....}..
1ee38: 76767679 76797979 11e2e240 117e347e yvvvyyyv@...~4~.
1ee48: c3e57ee2 c1c3e4e4 79137610 0d0d7679 .~.......v.yyv..
1ee58: 5f403434 c3c16602 37c1c1c1 5e5eb3c8 44@_.f.....7..^^
1ee68: 315e5e5e ee6e7676 56c1c114 4b14ccf9 ^^^1vvn....V...K
1ee78: 39b5b5e0 bc414b3a adf0babd 80dabcbd ...9:KA.........
1ee88: 20b3645e 3a2641b3 0486c156 13179c9c ^d. .A&:V.......
1ee98: c8135e79 adc56aac 9c398585 5c9ce7e7 y^...j....9....\
1eea8: 4bd585bd 3c7dd5ad 7d7d3c3c a0a07d7d ...K..}<<<}}}}..
1eeb8: 3333339f 0d2b6733 79790d0d b3b35e79 .3333g+...yyy^..
1eec8: 36367070 36000070 7048360c 48487070 pp66p..6.6HpppHH
1eed8: 69cbcbcb cb696969 abe9cbcb 1364642b ...iiii.....+dd.
1eee8: c5133179 13c57d0f 76767913 79797976 y1...}...yvvvyyy
1eef8: 11404076 7e347e40 f17ee211 c36060c1 v@@.@~4~..~..``.
1ef08: 137696c1 0d767979 11403446 6077e211 ..v.yyv.F4@...w`
1ef18: 565642c3 5e0d6fc1 5e795e5e 5d40765e .BVV.o.^^^y^^v@]
1ef28: c1c1cc39 14ccf956 b5bce026 8ed59c26 9...V...&...&...
1ef38: e0f0d699 dae07be0 b3645e80 2741b320 .....{...^d. .A'
1ef48: 86c186f9 49040404 31137913 f35ae4e5 .......I.y.1..Z.
1ef58: 558555bd 9c9ee75c d5bdbd9c 9595b685 .U.U\...........
1ef68: 216c2121 52525252 b13ce395 13339fa0 !!l!RRRR..<...3.
1ef78: 0d34c879 b3797676 700036b3 70487048 y.4.vvy..6.pHpHp
1ef88: 36363670 48707070 15cbcb48 69696969 p666pppHH...iiii
1ef98: e90c69cb 206413bb c5137920 d7c58e0f .i....d y......
1efa8: 76311313 79797676 11404079 347e4011 ..1vvvyyy@@..@~4
1efb8: 02e21134 fe60c15a d856c1c3 76797931 4...Z.`...V.1yyv
1efc8: 40340d0d 11315f11 8fe4c12f 66c156c3 ..4@._1./....V.f
1efd8: 765e5e0d 0d765e5e 56cc3941 3af956c1 .^^v^^v.A9.V.V.:
1efe8: e0f426cc 219ebdb5 bc9eba65 e0bcc6c6 .&.....!e.......
1eff8: 195e75da d7b32064 c1860427 ee048d86 .u^.d ..'.......
1f008: 1379136e f542e179 85555547 9e9ee755 n.y.y.B.GUU.U...
1f018: 99993a3a d2baf06c 3c4c9521 7d7d3c3c ::..l...!.L<<<}}
1f028: 4c3c7d7d fbce5252 c879139f 0d34340d }}<LRR....y..44.
1f038: 48697976 44480000 3648000c 70704836 vyiH..HD..H66Hpp
1f048: cbcb4848 69696969 4e126915 d1642be9 HH..iiii.i.N.+d.
1f058: af132041 41d7c50f 3113e8c5 79767679 A .....A...1yvvy
1f068: e2767979 7e1111e2 e2113434 96c16602 yyv....~44...f..
1f078: c1c1c31a 79137671 340d0d76 315f5f40 ....qv.yv..4@__1
1f088: 562e3480 568f6060 5e406fc1 76767676 .4.V``.V.o@^vvvv
1f098: 3a55410d f956c186 e026ccf9 ba997bbc .AU:..V...&..{..
1f0a8: 7bbc0f65 bcc6c6e0 5e75dae0 b3206419 e..{......u^.d .
1f0b8: a70427d7 8d8d86c1 79670e26 6094c813 .'......&.gy...`
1f0c8: 55394b5b e75c554b c0a78399 2121f0ba [K9UKU\.......!!
1f0d8: 7d7d3cd5 a0a0a005 339f9fa0 4c7df233 .<}}.......33.}L
1f0e8: 337d5252 74c8c876 70c87468 48007048 RR}3v..tht.pHp.H
1f0f8: 7048e91e 70483636 cb484870 6969cbcb ..Hp66HppHH...ii
1f108: 69690c69 b31ee969 b1c5c5c5 d713c593 i.iii...........
1f118: e8c54141 76763113 e2797979 11e2e2e2 AA...1vvyyy.....
1f128: 1134347e c19434e2 c1421afe 1376acc1 ~44..4....B...v.
1f138: 0dc87979 31114034 64e25e31 60968f42 yy..4@.11^.dB..`
1f148: 71c1c1c3 76767634 55e80d76 56c1a73a ...q4vvvv..U:..V
1f158: 55cc04f9 babaadbc e020afb6 c6c6deb8 ...U...... .....
1f168: 7550f4bc 2064195f 8d17e8b3 8da75683 ..Pu_.d .....V..
1f178: 130e4b92 60643167 39bdc56a c29e5555 .K..g1d`j..9UU..
1f188: a7a7c0ba a285b6c2 35057da2 9f9f9f35 .........}.55...
1f198: dcc59f9f 33333333 523cb19f c82bf2e3 ....3333..<R..+.
1f1a8: 74597477 00000070 3669cb00 70364870 wtYtp.....i6pH6p
1f1b8: 48487070 e91e69cb 690c6969 791e0c69 ppHH.i..ii.ii..y
1f1c8: 9325c5d7 e8d7c58e c541c5d7 3131e8d7 ..%.......A...11
1f1d8: 79797979 e2e2e276 34347e11 2e34e240 yyyyv....~44@.4.
1f1e8: 601afe56 d1c3c1c1 c8797979 e240340d V..`....yyy..4@.
1f1f8: 5e5e3131 96c1e140 c1c36060 763471c1 11^^@...``...q4v
1f208: e8c8c876 c1a7f926 cc04f956 b6baf0c2 v...&...V.......
1f218: 5e207f7b c6deb8f4 d0f4bcc6 64195f80 {. ^........._.d
1f228: 1713b3b3 a756cc8d 7d4b278d f5761333 ......V..'K}3.v.
1f238: bd41e642 c0f0e739 9899c2c0 d5ad5c14 B.A.9........\..
1f248: 3505a2a2 dc9fa035 9fa0359f 791313dc ...55....5.....y
1f258: c5331367 b15237a0 74770d2b 70700012 g.3..7R.+.wt..pp
1f268: 36700c70 00004836 48707070 e9776948 p.p66H..pppHHiw.
1f278: 690c0c0c 77e90c69 4c252013 c5d7138e ...ii..w. %L....
1f288: c5c5d7e8 41e8e8dc 79797913 e2407679 .......A.yyyyv@.
1f298: 347ee2e2 68e24034 1afec3ac c1c156fe ..~44@.h.....V..
1f2a8: 79797953 400d0dc8 e83131e2 ac0d315e Syyy...@.11.^1..
1f2b8: 606096c3 53c1c1c3 c8c87646 14f94b5e ..``...SFv..^K..
1f2c8: 9c3a5656 bcb6c0a7 b362e0bc b5b562b3 VV:.......b..b..
1f2d8: f4bcc6f4 195ff7d0 13b3b319 863a926b ......_.....k.:.
1f2e8: 26278da7 c81367a0 f3e1e494 bac0ef9e ..'&.g..........
1f2f8: 559e5c99 859c149c 05a2a2a2 9f9fa035 .\.U........5...
1f308: 8e359f9f 13dc9fa0 79767979 fbaf3313 ..5.....yyvy.3..
1f318: 462b0f52 70364677 48364844 70703670 R.+FwF6pDH6Hp6pp
1f328: 70707000 69776970 69e91e69 e94ee90c .ppppiwii..i..N.
1f338: 4caf672b 1313c58e d7d7d7e8 0edce8dc +g.L............
1f348: 797979dc 40767979 40e2e2e2 e2407e0d .yyyyyv@...@.~@.
1f358: fec3ac68 c1421a1a b37665c1 0d0dc879 h.....B..ev.y...
1f368: 3131e240 e2315e5e 6060c3e5 c1566060 @.11^^1...````V.
1f378: 2b46b4c1 044b31c8 a75656cc e0e7ccc0 ..F+.1K..VV.....
1f388: 62e0def4 b862b3b3 e0c6f4b5 5ff7d0f4 ...b..b........_
1f398: 64641919 f99216b3 278da786 5e67c54b ..dd.......'K.g^
1f3a8: f1fefe64 5cc0c0bd 55e75555 9c140455 d......\UU.UU...
1f3b8: 85d5a24b 9f9f3549 a09f9f9f c5a08e35 K...I5......5...
1f3c8: 79797913 3367c840 b1520faf e976462b .yyy@.g3..R.+Fv.
1f3d8: 0036cb48 70707036 36707070 e9e97036 H.6.6pppppp66p..
1f3e8: 2dbb6d15 4e0ce92d 93af79c8 31c5c525 .m.--..N.y..%..1
1f3f8: 13131379 dce8d7d7 797931e8 76797979 y........1yyyyyv
1f408: e2e2e2e2 e27e7e40 c31a34e2 601a1afe ....@~~..4.....`
1f418: d1c3c1c1 0d0d7979 31e2400d 315e5e31 ....yy...@.11^^1
1f428: c35a0d5e e4606096 6442c156 4b5ec80d ^.Z..``.V.Bd..^K
1f438: c156149c 2604e783 e0def4f4 6bb3b3b9 ..V....&.......k
1f448: c6c6de7b f7d0f4e0 b31919c9 925db364 {...........d.].
1f458: 8d8686f9 67136b27 6ae4f576 e799ba71 ....'k.gv..jq...
1f468: 39554b55 14e75555 85a2853a 0e35a2ad UKU9UU..:.....5.
1f478: dc9f9f35 358e9f9f 7913c59f 0d0d7931 5......5...y1y..
1f488: fbb1c579 2b2bafea 3600cbcb 70703670 y.....++...6p6pp
1f498: 70707070 69483648 6d1e0ccb 77e9e90c ppppH6Hi...m...w
1f4a8: 935bc82b 13d733c5 13137976 e8d7d713 +.[..3..vy......
1f4b8: 79793113 79797979 e2e2e276 31794031 .1yyyyyyv...1@y1
1f4c8: fe77e2e2 1a1afec3 c1c1c31a 407940be ..w..........@y@
1f4d8: e240340d 5e803131 bb5e315e 60968f60 .4@.11.^^1^.`..`
1f4e8: c156e460 130d7760 568683bd 8d269c56 `.V.`w.....VV.&.
1f4f8: c4f4f427 20b3b9e0 c6deb517 c6f4e0f8 '...... ........
1f508: 64bb19f7 f6b3b3b3 86a70427 311617ee ...d....'......1
1f518: 606679b3 4badb166 554b3939 e75555e7 .yf`f..K99KU.UU.
1f528: 4b55cc14 35a2ad85 dca00535 8e35dcdc ..UK...55.....5.
1f538: dc9f358e 76131313 c5793434 5b524cb1 .5.....v44y..LR[
1f548: 703600c8 70703636 70707070 48707048 ..6p66ppppppHppH
1f558: 6de9cb48 c8771e2d 0ff279b3 132067d1 H..m-.w..y...g .
1f568: 5e76c879 13131313 79793113 79137979 y.v^.....1yyyy.y
1f578: 31e27979 6edc3131 0de2e245 1afec3fe yy.111.nE.......
1f588: c1e41a1a 31798fc1 7e340d76 5e313111 ......y1v.4~.11^
1f598: 13315e5e 96c35179 8f606060 772ec1c1 ^^1.yQ..```....w
1f5a8: ccefba37 27f95686 f4f42692 b3b9e0c4 7....V.'.&......
1f5b8: dec43020 f4e0d0c6 bb19dac6 b3b313b3 0..............
1f5c8: 86042741 62170486 acb4f213 bc415afe A'.....b.....ZA.
1f5d8: 4b39394b 5555e755 55cccc39 47ad5555 K99KU.UU9..UUU.G
1f5e8: 8e7d8e35 35dcdc9f 35358e8e 203131c5 5.}....5..55.11
1f5f8: 68347613 ea0fc579 6970b3fb 70700036 .v4hy.....pi6.pp
1f608: 70707070 707036cf 0c693648 77771e0c pppp.6ppH6i...ww
1f618: 0faf792b 79677967 0dc82b79 79797976 +y..gygyy+..vyyy
1f628: 79797979 13dc1379 e2797931 b80e3131 yyyyy...1yy.11..
1f638: e2e24041 fec3fe0d fe1a1a1a 53c1c1c1 A@.............S
1f648: 34407640 31e24034 31315e5e acbbe85e @v@44@.1^^11^...
1f658: 6060968f c1c14260 39852ce6 f956a73a ..```B...,.9:.V.
1f668: e0272627 62e0c4f4 50b3b3b3 f4d0c6f4 '&'....b...P....
1f678: 1950f4f4 d7d7b3bb 041730d1 170486a7 ..P......0......
1f688: 24e30f3d 41f51a60 26264bbc 55394b4b =..$`..A.K&&KK9U
1f698: 14cc3955 85559e39 7d053547 dcdc3505 U9..9.U.G5.}.5..
1f6a8: 8e35359f 7979c535 7613c513 afb37468 .55.5.yy...vht..
1f6b8: 70f2ea37 70003636 70707070 70cbcf48 7..p66.pppppH..p
1f6c8: cb694870 771e1e0c 0ff2c82b 79792b67 pHi....w+...g+yy
1f6d8: c8791313 c80d0d77 79797979 e8dc6779 ..y.w...yyyyyg..
1f6e8: 79313113 b8353131 e2407687 c3ac68e2 .11y115..v@..h..
1f6f8: fe1a1afe c1c1421a 40764096 e240340d .....B...@v@.4@.
1f708: 31315e31 b3135e31 6096c30b c3e4e460 1^111^.....``...
1f718: 5daec1c1 56a7f939 272727f9 e0def4e0 ...]9..V.'''....
1f728: 1919b362 50c6f480 d0c6f4f4 6e1319c9 b......P.......n
1f738: 17e8d10e f986a704 5b52b6aa d8ac6066 ..........R[f`..
1f748: 264b475d 554b4b26 cc395555 e70404a7 ]GK&&KKUUU9.....
1f758: 0505a285 dc35057d 8e8e9fdc 79139f8e ....}.5........y
1f768: c5c51376 c8687613 fb52b120 70700070 v....vh. .R.p.pp
1f778: 70007070 70483836 e9484870 7777e90c pp.p68HppHH...ww
1f788: fb5bab2b 2b2bc803 79202079 0d0d77c8 +.[...++y y.w..
1f798: 31317976 13677979 31313131 6ee8e279 vy11yyg.1111y..n
1f7a8: 40403145 2e34e2e2 fe1afec3 c1fe1afe E1@@..4.........
1f7b8: 7e2cc1c1 34340d40 315ee240 135e3131 ..,~@.44@.^111^.
1f7c8: 8f2e2b13 e4606096 42c1c360 a7f926d8 .+...``.`..B.&..
1f7d8: 2717f956 bce0e027 19b3c6bc c6d07619 V..''........v..
1f7e8: c6f4f450 5db35ec6 13d1e817 86a78d6b P....^.]....k...
1f7f8: dc85ba83 6afefe2b 4b4b6e67 4b4b2626 ....+..jgnKK&&KK
1f808: 39555555 f99ca7cc 05a28504 35057d7d UUU9........}}.5
1f818: 8e9fdcdc 13dca08e d779c879 0d13c5c5 ........y.y.....
1f828: 375b2b74 000000e3 cf480070 690c3636 t+[7....p.H.66.i
1f838: 36367070 77e9e90c 37b02b2b 77c8c8d1 pp66...w++.7...w
1f848: 201379c8 0d77c879 1331790d 79797931 .y. y.w..y1.1yyy
1f858: 31131379 31e27931 40313131 34e2e240 y..11y.1111@@..4
1f868: 1afec32e 1afe1afe 96c1c142 3440400d ........B....@@4
1f878: 31114034 5e313131 72132013 60609642 4@.1111^. .rB.``
1f888: 56e4e460 9861fec1 173a56a7 b8de2717 `..V..a..V:..'..
1f898: 5ec6e0b8 7519bbbb f4c6f7d0 41f7c6c6 ...^...u.......A
1f8a8: d1d77c6b a7ee4920 164b1456 1ae4b4e2 k|.. I..V.K.....
1f8b8: 4b6e3166 4b26264b 5555554b 3a863a39 f1nKK&&KKUUU9:.:
1f8c8: 054b04f9 057d7d7d c5e8dc0e 9fc5a09f ..K.}}}.........
1f8d8: 76c86705 d7c5c513 79777479 0000102c .g.v....ytwy,...
1f8e8: 00707000 36361e0c cb707070 e90ccb0c .pp...66ppp.....
1f8f8: 37d82b79 0d2b2b5b 13792b77 0dc87913 y+.7[++.w+y..y..
1f908: 79790d0d 79793131 1313e831 e2793131 ..yy11yy1...11y.
1f918: 454531e2 e2117e76 fec36a34 1a1a1a1a .1EEv~..4j......
1f928: c156fe1a 40342cc1 117e3434 315fe25f ..V..,4@44~._._1
1f938: 4cafc513 fee42eb4 60e46060 57c1c1e4 ...L....``.`...W
1f948: 3a868609 b8271727 c6e0deaa bbbbbbb3 ...:'.'.........
1f958: 628075c9 f8c6c6f4 d7b9c4de 9c92f220 .u.b........ ...
1f968: 173a5686 60be768b 6e31e11a 26264b4b .V:..v.`..1nKK&&
1f978: 55554b26 863a3955 d5e7f93a 7d7d7d05 &KUUU9:.:....}}}
1f988: e8e89f05 c5c5dce8 c8793c8d 5e1331c8 .........<y..1.^
1f998: 74747679 00e3d119 cf007000 1e6d70e9 yvtt.....p...pm.
1f9a8: 70707070 0c69e936 37d8642b 0d2b2b5b pppp6.i.+d.7[++.
1f9b8: 79c8c8c8 c87913b3 c80d0d0d 79797979 ...y..y.....yyyy
1f9c8: 130e0e13 79313131 e831e2e2 11404031 ....111y..1.1@@.
1f9d8: c39434e2 1a1a1afe 8f1afe1a 46e4c1c1 .4.............F
1f9e8: 34344040 5e315f40 4c37afe8 c372130f @@44@_1^..7L..r.
1f9f8: 6060601a c14260e4 56cc81c1 b8b5273a .```.`B....V:'..
1fa08: e0f4e0aa bbbb5ec6 5ec97474 c6c6c6b9 .....^..tt.^....
1fa18: 50b527c4 9c845bd7 f956a79c ac768b27 .'.P.[....V.'.v.
1fa28: 45b4acfe 4b4b4b5d 554b2626 9c555555 ...E]KKK&&KUUUU.
1fa38: 55e73aa7 7da27d49 e89f357d 131333dc .:.UI}.}}5...3..
1fa48: 79338d05 76760dc8 4674740d 6f644674 ..3y..vv.ttFtFdo
1fa58: 00707070 cf1e6900 4870700c 69e93670 ppp..i...ppHp6.i
1fa68: 37d1b3ab 772b2bb1 79c8760d 79202079 ...7.++w.v.yy y
1fa78: 0d0d0dc8 797979c8 13359f79 79313131 .....yyyy.5.111y
1fa88: 31e2e276 7e7e4031 94345f11 1a1afec3 v..11@~~._4.....
1fa98: fefefe1a c1c1c3fe 34400224 e8314034 ........$.@44@1.
1faa8: 0f4c4caf 775e13c5 60fe60fe 60e4e460 .LL...^w.`.``..`
1fab8: 5742c1c3 b5273a56 f4f4b5b8 bb5ec6f4 ..BWV:'.......^.
1fac8: 743874bb c6f83019 b592dec6 043cd7b9 .t8t.0........<.
1fad8: 56149295 b41d27f9 d12eace4 4b4b5ddc ...V.'.......]KK
1fae8: 4b26264b 55555555 559ca79c 7d7d05a2 K&&KUUUU...U..}}
1faf8: dc8e7d7d 6733dce8 79f2a067 400dc879 }}....3gg..yy..@
1fb08: 68680d76 d8467474 00707010 48003648 v.hhttF..pp.H6.H
1fb18: 707036e9 cf360c48 37d12b0c 77b31393 .6ppH.6..+.7...w
1fb28: c80d7777 c5d71379 0d0d0d31 3179760d ww..y...1....vy1
1fb38: 13dc1379 79793179 e2407679 0d40e2e2 y...y1yyyv@...@.
1fb48: 34e2117e 1afec3e6 1a1a1a1a c1601afe ~..4..........`.
1fb58: 7ebbc3c1 c5314040 c58e4c93 b3132033 ...~@@1..L..3 ..
1fb68: acc3e10d e4606060 c1c1e4e4 171494fe ....```.........
1fb78: c6de17de 5ec6c4c6 387474bb f880bb38 .......^.tt88...
1fb88: 8ddec6c6 65fb7c27 148a4171 b927f956 ....'|.eqA..V.'.
1fb98: 94ace4be 4b5d4131 26264b4b 55554b4b ....1A]KKK&&KKUU
1fba8: 9ccc0455 7d49494b 0e05057d 13dc13e8 U...KII}}.......
1fbb8: 79676767 c8c87979 76131331 7459b246 gggyyy..1..vF.Yt
1fbc8: 7070fcb4 44bb3600 70367070 69e97070 ..pp.6.Dpp6ppp.i
1fbd8: 0f64ab0c 2b205b4c 77777777 411379c8 ..d.L[ +wwww.y.A
1fbe8: 0d76130e 31790d0d 79797931 79797979 ..v...y11yyyyyyy
1fbf8: 40767931 40e2e2e2 5f117e7e 60c35a02 1yv@...@~~._.Z.`
1fc08: 1a1a1aac 1afefe1a 94c1c142 0f3331b2 ........B....13.
1fc18: 13e8b137 13131313 e4ab76b3 6060fe1a 7........v....``
1fc28: 4260e460 7ae6c1c1 de17de27 f4c4c6c6 `.`B...z'.......
1fc38: 7474bb80 5ebb3838 dec6c6d0 5221268d ..tt88.^.....&!R
1fc48: 8ae8d1af 273a56cc ac60ac30 5ddc31be .....V:'0.`..1.]
1fc58: 264b4b4b 554b4b26 f9e75555 49a2d5e7 KKK&&KKUUU.....I
1fc68: 8e35057d 131313dc 67677913 c8797967 }.5......ygggyy.
1fc78: afafc579 596876d7 70fcb474 70007070 y....vhYt..ppp.p
1fc88: 703638e9 36704870 af2b1e69 b320c5ce .86ppHp6i.+... .
1fc98: 777777c8 1379c877 7613c50e 79400d0d .wwww.y....v..@y
1fca8: 79793131 79767979 76793179 e2e2e240 11yyyyvyy1yv@...
1fcb8: 117e7e40 c3e17ee2 1a1aac60 1a1a1a1a @~~..~..`.......
1fcc8: c156fe1a 37c572c1 313113af 13135e31 ..V..r.7..111^..
1fcd8: 465eb35e 60ace494 e4e46060 c1c1c360 ^.^F...```..`...
1fce8: 17de178c c4c6c6de 7419b9f4 74383874 ...........tt88t
1fcf8: c6c61d5e b6c2eede 5eb35e41 3a86cc49 ^.......A^.^I..:
1fd08: ace4c527 dc452c1a 4b4b4b5d 4b4b2626 '....,E.]KKK&&KK
1fd18: e755554b 49a255e7 35350549 1313dc35 KUU..U.II.555...
1fd28: 79797913 79797979 7d255ec8 4613af8e .yyyyyyy.^%}...F
1fd38: fcd85959 36000070 cf3669bb e9367070 YY..p..6.i6.pp6.
1fd48: d1abe936 b320afce 77777777 7976c877 6..... .wwwww.vy
1fd58: 13d7d713 400d0d76 79793179 76c87976 ....v..@y1yyvy.v
1fd68: 79797979 e2e24076 7e7e40e2 727ee240 yyyyv@...@~~@.~r
1fd78: 1aac6042 1a1a1a1a e41a1a1a e542c1c1 B`............B.
1fd88: 11e25f31 135e5f11 b3b35e13 2e42b440 1_..._^..^..@.B.
1fd98: 606060fe c16060e4 deb060c1 c6c6de17 .```.``..`......
1fda8: 1950f4c4 38387474 c6f7b374 9ec2adf4 ..P.tt88t.......
1fdb8: b35e8016 863a495e 42be053a e8d8ac6a ..^.^I:.:..Bj...
1fdc8: 4b4b5d41 4b26264b 554b4b4b a24b5555 A]KKK&&KKKKUUUK.
1fdd8: 35350549 13e89f8e 79793113 79797979 I.55.....1yyyyyy
1fde8: a233c82b 138e8e7d d8595946 707070a6 +.3.}...FYY..ppp
1fdf8: 361e6900 70707070 ab1e0ccd 1320b137 .i.6pppp....7. .
1fe08: 77c877c8 b3b3c877 13137979 0d0dc831 .w.ww...yy..1...
1fe18: 7979790d 76767979 79797976 e2407979 .yyyyyvvvyyyyy@.
1fe28: 7e40e2e2 7ee2117e 1ae442e5 1a1a1aac ..@~~..~.B......
1fe38: fe1a1a1a c1c1e41a 4011342e 5e5f1111 .........4.@.._^
1fe48: 79b3135e 60193179 6060ac1a 60e46060 ^..yy1.`..````.`
1fe58: 32c1c142 c6deb506 50f4c6c6 38747476 B..2.......Pvtt8
1fe68: 80b37438 9e99adc6 5ef78b27 f96e5eb3 8t......'..^.^n.
1fe78: a6a03aa7 132e6ae4 4b5d0edc 26264b4b .:...j....]KKK&&
1fe88: 4b4b4b4b 47855555 35350549 139f3535 KKKKUU.GI.5555..
1fe98: 76791313 79797976 05797679 af8e8ed5 ..yvvyyyyvy.....
1fea8: 7454685e e970a6b4 703644bb cf707036 ^hTt..p..D6p6pp.
1feb8: bb6d4836 d164fb53 c8ab772b b379c8c8 6Hm.S.d.+w....y.
1fec8: 5e792b79 77c8795e 2b760d0d 79797979 y+y^^y.w..v+yyyy
1fed8: 79767679 40797979 40e2e2e2 e2117e7e yvvyyyy@...@~~..
1fee8: e460ab11 acacac1a 1a1a1a1a e41a1a1a ..`.............
1fef8: 025ac1c1 5f11115f b313b331 465e7679 ..Z._.._1...yv^F
1ff08: fe2ee466 60606060 c1566060 b5b54dc1 f...``````V..M..
1ff18: f4c6c6c6 74bb5ec6 64bb3838 7b99add7 .....^.t88.d...{
1ff28: f78b2626 5d5eb35e a3f9a704 666a1a60 &&..^.^]....`.jf
1ff38: 0e0e4131 264b4b47 4b4b4b26 4b55554b 1A..GKK&&KKKKUUK
1ff48: 353549a2 dc35350e 79311313 79797676 .I55.55...1yvvyy
1ff58: 33767979 258e8ed5 59597413 0065f574 yyv3...%.tYYt.e.
1ff68: bbbb0c48 707070cf 2a0c0ccf ab4d104d H....ppp...*M.M.
1ff78: c8ab77ab 7979c8c8 2bc8c879 c82b7979 .w....yyy..+yy+.
1ff88: c80d7777 79792bc8 76767979 76797979 ww...+yyyyvvyyyv
1ff98: e2e24040 117e7e40 ac77115f acacfe42 @@..@~~._.w.B...
1ffa8: acacacac 1a1a1a1a c1c142fe 5fe2a4f5 .........B....._
1ffb8: 135e315f 797679b3 6ae47240 6060601a _1^..yvy@r.j.```
1ffc8: 60fe6060 33acc1c1 c6c6c6b5 bb80f4f4 ``.`...3........
1ffd8: 77383874 bcbde3d8 8b2627c4 5eb35e80 t88w.....'&..^.^
1ffe8: 8da7ee5d 1a6a4271 0e414553 4b4b470e ]...qBj.SEA..GKK
1fff8: 4b4b2626 85554b4b 35354947 0e0e0e0e &&KKKKU.GI55....
20008: 793113dc 2b797676 2b2b2b2b 8e9fc520 ..1yvvy+++++ ...
20018: 74590dc5 65f53859 70000048 7036e969 ..YtY8.eH..pi.6p
20028: d3367070 ab5337ab 2bab77ab c8c82b79 pp6..7S..w.+y+..
20038: 77770dc8 c82b792b 0d770dc8 7979c8c8 ..ww+y+...w...yy
20048: 76797979 79797979 40404076 7e7e40e2 yyyvyyyyv@@@.@~~
20058: 34e25f11 acfe4294 acacacac 1aacacac ._.4.B..........
20068: 42fe1a1a 7ee5c1c1 5e315f5f 7679b35e ...B...~__1^^.yv
20078: febb5f76 60962eac 60606060 c1c142fe v_.....`````.B..
20088: c6f4168c b9c4f4c6 38387419 6b26e3e5 .........t88..&k
20098: 2727c4c4 b35e808b 148df65e 9442a609 ..''..^.^.....B.
200a8: 0ee85b1a 4b47350e 2626264b 554b4b4b .[...5GKK&&&KKKU
200b8: 35354785 9f0e0e0e 31e8dc9f 79797679 .G55.......1yvyy
200c8: c8c8c879 13c8c8c8 747479dc f538a959 y........yttY.8.
200d8: 0c44446f 48700070 0c693670 03e32cab oDD.p.pHp6i..,..
200e8: 2b7777ab c82b3333 7777770d 79792bab .ww+33+..www.+yy
200f8: 0d0dc82b 7976c80d 79797976 79797976 +.....vyvyyyvyyy
20108: 40407679 7e40e240 11e2117e fe42e134 yv@@@.@~~...4.B.
20118: acacacac acacacac 1a1a1a1a 42c1c3fe ...............B
20128: 5e311164 79b35e5e 465e7676 1a941a57 d.1^^^.yvv^FW...
20138: 60606060 c160fe60 f43342c1 c4f4c6c6 `````.`..B3.....
20148: 3874c98b 35d5102f 27c4c61d b35e8b27 ..t8/..5...''.^.
20158: 92f65eb3 fefe71cc 8713ac57 49350e0e .^...q..W.....5I
20168: 26264b4b 554b4b26 0e4b5555 dcdc410e KK&&&KKUUUK..A..
20178: 33dcdcdc 79767613 c82b7913 7777c8c8 ...3.vvy.y+...ww
20188: 1274c80d bb3b5459 0c36bebe 7036e944 ..t.YT;...6.D.6p
20198: 69707070 2cced144 2b1e77ab c86705a0 pppiD..,.w.+..g.
201a8: 1e1277c8 792bab77 0dc82b79 79c80d0d .w..w.+yy+.....y
201b8: 79767979 79767676 40767979 40e24040 yyvyvvvyyyv@@@.@
201c8: e2117e7e 427240e2 acacac60 acacacac ~~...@rB`.......
201d8: 1aacacac c3feac1a 11b38fc1 b35e5e5e ............^^^.
201e8: 5e767679 941ae146 6060feac fefefefe yvv^F.....``....
201f8: 5ac1c142 c6c6c6b9 745ec4c4 c553a6b4 B..Z......^t..S.
20208: c4c68013 5e8b2717 f65eb3b3 42bef992 .....'.^..^....B
20218: 13a694ac 35350e41 264b476e 4b4b2626 ....A.55nGK&&&KK
20228: 4b55554b 45e8e80e 13131345 76763113 KUUK...EE....1vv
20238: 2b791379 77c8c8c8 54597474 543b0854 y.y+...wttYTT.;T
20248: 00b46f64 36367000 70707070 cefbbf69 do...p66ppppi...
20258: 771eabd1 ab670533 127777ab 2b77771e ...w3.g..ww..ww+
20268: c8797979 760d0d0d 79797979 76767676 yyy....vyyyyvvvv
20278: 76797979 e2e24040 e27e7e40 72d73131 yyyv@@..@~~.11.r
20288: acace460 acacacac acacacac ac1a1aac `...............
20298: 8fc1c3fe 5e5ee2b3 767679b3 fe2f405e ......^^.yvv^@/.
202a8: fe1a6a94 fefefefe c1c1fefe c6c65ee4 .j...........^..
202b8: 80dedec6 bbb4a6b4 c65e1964 8b2717c4 ........d.^...'.
202c8: 5eb3b35e a6842630 66ac9442 350e0e45 ^..^0&..B..fE..5
202d8: 4b476e35 4b262626 5555554b 45e86e4b 5nGK&&&KKUUUKn.E
202e8: 13311345 76791313 31137976 77c82b79 E.1...yvvy.1y+.w
202f8: 74597474 12595974 646fb459 00007036 ttYttYY.Y.od6p..
20308: 70707000 d2bf4469 1e1e64b1 ab2b67ab .pppiD...d...g+.
20318: 777777ab c8771e12 7979792b 0d0d4076 .www..w.+yyyv@..
20328: 79797976 76767679 79797676 e2404076 vyyyyvvvvvyyv@@.
20338: 407e4011 4c8ec531 ace46a4d acacac2e .@~@1..LMj......
20348: acacacac acacacac c3feacac 5fb38fc1 ..............._
20358: 7679b313 bf765e5f ac94941a fefe1afe ..yv_^v.........
20368: 421afefe 50e1c1c1 b5dec6c6 38b4a647 ...B...P....G..8
20378: c9191938 2717c650 5eb35e16 a326305e 8...P..'.^.^^0&.
20388: 1ae660fe 350e8753 a2493535 2626264b .`..S..555I.K&&&
20398: 55554b4b dc0e4b55 313145e8 79317979 KKUUUK...E11yy1y
203a8: 13797676 2b791313 c8127777 74591279 vvy...y+ww..y.Yt
203b8: bebe7412 cbe9e9bb 70707070 53d36970 .t......pppppi.S
203c8: 1eabd1ea 7777771e 7777abab 77771277 .....www..www.ww
203d8: 13792bc8 40763113 7979c80d 76797979 .+y..1v@..yyyyyv
203e8: 797676c8 40407679 76e2e211 8e4c7d13 .vvyyv@@...v.}L.
203f8: 42e60de8 2e2e2eac acacac2e acacacac ...B............
20408: acacacac 42c1c3fe 795e76d8 5f5e5f76 .......B.v^yv_^_
20418: 94942ebb fe1a1aac fefefefe fec156fe .............V..
20428: dec6c65e 745bba9e 19193838 17c6f719 ^.....[t88......
20438: b35e1627 17305e5e e6ace471 0e0eaf1a '.^.^^0.q.......
20448: 49053535 264b4749 854b4b26 35475555 55.IIGK&&KK.UUG5
20458: 45dc0e0e 79793113 76c8c879 13137979 ...E.1yyy..vyy..
20468: 7474c879 54747479 10193ba9 697038f5 y.ttyttT.;...8pi
20478: 367036cd 44e90ce9 1eab2c10 77777712 .6p6...D.,...www
20488: 77777777 771e7777 792bc877 31e8d713 wwwwww.ww.+y...1
20498: 79c84076 79797979 7676c876 40767679 v@.yyyyyv.vvyvv@
204a8: d71331e2 dc8e3c8e 0b7ee231 2e2e1a42 .1...<..1.~.B...
204b8: 2e2e2e2e acac2e2e acacacac c31aacac ................
204c8: 762cc3c1 5e5f76b3 9494745f 1a1a6a57 ..,v.v_^_t..Wj..
204d8: 1a1a1a1a c1e41afe c4d053c1 5e7bc0ad .........S....{^
204e8: 19383874 f85f1919 5e1627b5 415e5e5e t88..._..'.^^^^A
204f8: 9442945d 6e0e9457 0535350e 4b474949 ].B.W..n.55.IIGK
20508: 4b4b2626 a24b554b 0e35356e 1313dc0e &&KKKUK.n55.....
20518: 0dc87979 1379c80d 74c83113 12747474 yy....y..1.tttt.
20528: b4385454 00546410 00707000 d30ce969 TT8..dT..pp.i...
20538: 44bf10f5 7777771e c8777777 7777c82b ...D.wwwwww.+.ww
20548: 2bc87777 d7c51379 7676795e 79797979 ww.+y...^yvvyyyy
20558: 76c87679 79767676 0fdc3131 3113b14c yv.vvvvy11..L..1
20568: 7e404031 2efefebf 2e2e2e2e 2e2e2e2e 1@@~............
20578: acacacac acacacac c1c1e4ac 5e790d53 ............S.y^
20588: 6a465f5e 1a6a576a 1a1a1a1a 1a1a1a1a ^_FjjWj.........
20598: 80fec1c1 2755baad 38387480 c9191919 ......U'.t88....
205a8: 1627deda 5e805e5e 60fe4141 5d6694e6 ..'.^^.^AA.`..f]
205b8: 35350e6e 49494905 4b26264b a24b4b4b n.55.IIIK&&KKKK.
205c8: 3535356e dc0e0e35 767913e8 c8c8c80d n5555.....yv....
205d8: c879792b 74122bc8 64767454 a974be66 +yy..+.tTtvdf.t.
205e8: 70000000 6d360070 44e110bf c8771ee9 ...pp.6m...D..w.
205f8: c8c8c8c8 c8b31379 c8777777 d7137979 ....y...www.yy..
20608: 767913c5 79797976 76767979 31797976 ..yvvyyyyyvvvyy1
20618: 4c8e3313 40e2330f 4040e240 606a7440 .3.L.3.@@.@@@tj`
20628: 2e2e2e2e 2e2e2e2e 2e6a6a2e acac6aac .........jj..j..
20638: 96ac2eac 0d37c1c3 46315e31 6a576a94 ......7.1^1F.jWj
20648: 1a1a1a1a 1a1a1a1a c1c1e4ac 27bcb671 ............q..'
20658: 3846b926 19194638 27c45f46 808080c4 &.F88F..F_.'....
20668: e4b106e8 716a321a 35350e6b 49494905 .....2jqk.55.III
20678: 4b4ba26e 4947474b 0e0e0e0e 0e0e0e0e n.KKKGGI........
20688: 13e89f0e c80dc879 c8c8c877 74c87974 ....y...w...ty.t
20698: b3c85959 54b4a6b4 700069a9 cf703636 YY.....T.i.p66p.
206a8: bf6fe144 2b774ed3 b379b3b3 13d713b3 D.o..Nw+..y.....
206b8: 0d7777c8 b3b379c8 79e8c5e8 79797640 .ww..y.....y@vyy
206c8: 76797979 13797676 7d4c8e33 7ee231c5 yyyvvvy.3.L}.1.~
206d8: 40e2407e ed344040 a6942ee4 2e2e2e2e ~@.@@@4.........
206e8: 6a6a6a2e 6a6a6a6a 2e2e2e6a c18fac2e .jjjjjjjj.......
206f8: 5f11b365 57941a19 1aacac94 1a1a1a1a e.._...W........
20708: c11a1a1a c4411ac1 c916928a c9463838 ......A.....88F.
20718: 1dc94619 8030c4de 6645e830 ac322e42 .F....0.0.EfB.2.
20728: 350e17b1 49050535 496e3549 0e6e4949 ...55..II5nIIIn.
20738: 4545e841 e8e84545 dc0edcdc c87913e8 A.EEEE........y.
20748: 77c8c8c8 77677777 c874592b bb6fbed1 ...wwwgw+Yt...o.
20758: 700c4f08 70cb0ccb e16f780c 2b1e2dd3 .O.p...p.xo..-.+
20768: d1b3b3b3 d720d1d1 0d77c813 135e76c8 ...... ...w..v^.
20778: e8d71313 79764079 79767979 13797676 ....y@vyyyvyvvy.
20788: c5fb37af 40e23113 e2400d0d 7e404040 .7...1.@..@.@@@~
20798: 94ac6072 a6a69494 6a6a2e2e 6a6a6a6a r`........jjjjjj
207a8: 6a6a6a6a 2e2e2e2e 538fc196 326a5146 jjjj.......SFQj2
207b8: acac9457 acacacac 6a1a1aac 20c3c142 W..........jB..
207c8: 6b9227c4 467474c9 191919c9 7cc41d5f .'.k.ttF...._..|
207d8: 13303030 6694e41a 0e1735a6 05050535 000....f.5..5...
207e8: 35354949 0e353535 45e8dc41 31313131 II55555.A..E1111
207f8: e8133131 3113e8e8 c82b7679 2b7477c8 11.....1yv+..wt+
20808: 7459c8c8 b4eb7119 364fa954 6de96970 ..Yt.q..T.O6pi.m
20818: a6ae0c36 770c2dae d1b3b32b d7201320 6....-.w+... . .
20828: 77c813d7 13c8c8c8 e813e8d7 764076e8 ...w.........v@v
20838: 76797979 33797979 13b137fb 4040e231 yyyvyyy3.7..1.@@
20848: 400d0d40 404040e2 1a1aab40 94949494 @..@.@@@@.......
20858: 949494a6 6a949494 946a6a6a 2e2e2e6a .......jjjj.j...
20868: e4ac2e2e 94fefec3 6a6a9457 acacacac ........W.jj....
20878: acacacac c1c11a6a 8d271d5a 74745f17 ....j...Z.'.._tt
20888: 46c9c946 b95f7619 30b9b962 32fee45b F..F.v_.b..0[..2
20898: 496e9494 0505350e 35494905 0e0e0e35 ..nI.5...II55...
208a8: dcdc410e 313145e8 31793131 13133131 .A...E1111y111..
208b8: 13133131 74c87979 54591238 10ead174 11..yy.t8.YTt...
208c8: a94fa9bb 0ccf7070 240c69e9 69e92feb ..O.pp...i.$./.i
208d8: b32bc81e 201313d1 7713c520 c82b7977 ..+.... ..wwy+.
208e8: d7c5d7b3 4076e8d7 76797976 b1136779 ......v@vyyvyg..
208f8: 13330f4c e2404079 7e0d40e2 4040e240 L.3.y@@..@.~@.@@
20908: e6344040 94949460 94949494 94949494 @@4.`...........
20918: 94949494 a6949494 a62e2e2e 6060ac6a ............j.``
20928: acfe6060 6a6a6a6a 6a6a6a6a 426a6a6a ``..jjjjjjjjjjjB
20938: b5e8fec1 745e1792 c9c94674 76761946 ......^ttF..F.vv
20948: 7c7c7c80 ace4be06 17716a5a 05350e6e .|||....Zjq.n.5.
20958: 49050505 0e0e0e35 0edc0e0e e8dc410e ...I5........A..
20968: 76313145 79797979 dc133179 2b870edc E11vyyyyy1.....+
20978: 5974c874 eb2c5954 3ba9cdb4 3670703b t.tYTY,....;;pp6
20988: d3cb0ccf 6db4d210 c81e0ccf 13d1b32b .......m....+...
20998: 13d72020 797977c8 c513792b 79e84141 ...wyy+y..AA.y
209a8: 79797640 37af1379 3113c5fb 40767679 @vyyy..7...1yvv@
209b8: 7e40e2e2 40e2407e 7e404040 942e600b ..@~~@.@@@@~.`..
209c8: 94949494 94949494 94949494 94949494 ................
209d8: a6a6a694 949494a6 2eacac6a 6a6a6a6a ........j...jjjj
209e8: 6a6a6a6a 946a6a6a 5bc1c31a 7517926b jjjjjjj....[k..u
209f8: c9467446 761919c9 41305e76 602ee87c FtF....vv^0A|..`
20a08: b1ac2494 35353517 35050505 0e0e3505 .$...555...5.5..
20a18: dc87870e 41410e0e e8e84141 76793131 ......AAAA..11yv
20a28: 13767676 dcb56edc 74797779 a6bb5459 vvv..n..ywytYT..
20a38: 3ba9386f 70703b3b 69cbcf36 2f6fa678 o8.;;;pp6..ix.o/
20a48: e90c69e9 b32bc877 2020d1d1 7977c813 .i..w.+... ..wy
20a58: 137979b3 d74141d7 31764031 4cfb3313 .yy..AA.1@v1.3.L
20a68: 797913b1 40767979 40e24040 e2e2407e ..yyyyv@@@.@~@..
20a78: 40404040 ac1aab40 94949494 94949494 @@@@@...........
20a88: 94949494 94949494 94949494 94949494 ................
20a98: 94949494 6a6a6a94 6a6a6a6a 6a6a6a6a .....jjjjjjjjjjj
20aa8: c1e46a94 17264166 46461980 c9c9c9c9 .j..fA&...FF....
20ab8: 5e5e7676 96c57c06 2e3266fe 0e0e178e vv^^.|...f2.....
20ac8: 35050535 0e353535 dcdc870e 0e0e0edc 5..5555.........
20ad8: 350e4141 dc9f0e35 76767913 6eb5e879 AA.55....yvvy..n
20ae8: c8777933 71385412 543b2feb 0c3b3bcd 3yw..T8q./;T.;;.
20af8: 0070cb0c 51a6892d 0c690cd3 2bc81ee9 ..p.-..Q..i....+
20b08: 13b3b32b 0d792020 7979b3c8 41d7e8b3 +... y...yy...A
20b18: 67795e30 0f4cb133 76791333 76797979 0^yg3.L.3.yvyyyv
20b28: e2404040 e2404040 4040e2e2 e634e240 @@@.@@@...@@@.4.
20b38: 949494fe 94949494 57575757 94575757 ........WWWWWWW.
20b48: 94949494 94949494 94949494 94949494 ................
20b58: 94949494 6a6a6a6a fe576a6a 263396c1 ....jjjjjjW...3&
20b68: c9c9f727 c9c9c946 31767676 7180e831 '...F...vvv11..q
20b78: 5732ace4 0e6e0ea6 0505350e 35353535 ..2W..n..5..5555
20b88: dcdc870e 0e0edcdc 6b5d4141 a2a2a26e ........AA]kn...
20b98: 13dc35a2 6b5d7979 742b7913 b4595438 .5..yy]k.y+t8TY.
20ba8: 3bb3e3eb 3b3bcd54 48700c44 a60bec48 ...;T.;;D.pHH...
20bb8: cf36ecae 771e0c69 2b2b2bc8 b32013b3 ..6.i..w.+++.. .
20bc8: 79790d0d e8137979 20c54130 af3737af ..yyyy..0A. .77.
20bd8: 76767913 79797676 40e24076 e21140e2 .yvvvvyyv@.@.@..
20be8: 40e23131 40404040 9494600b 94949494 11.@@@@@.`......
20bf8: 57575757 57575757 94945757 94949494 WWWWWWWWWW......
20c08: 94949494 94949494 94579494 94949494 ..........W.....
20c18: 57949494 f1c3c3ac 5fb92727 c9c9c95f ...W....''.__...
20c28: 317676c9 31e8e85e 2494e4a6 0e0e6f6a .vv1^..1...$jo..
20c38: 35350e0e 35353535 dcdc0e0e 0edcdcdc ..555555........
20c48: de0e410e d5a2496b a2d58585 5de8e835 .A..kI......5..]
20c58: c8c82b79 bb597474 79f26510 08080854 y+..ttY..e.yT...
20c68: 70706908 e12d7036 0cd3aea6 1e69cbcf .ipp6p-.......i.
20c78: c8c87777 13b3b3c8 c877c8b3 79797979 ww........w.yyyy
20c88: 8e25c513 20b14c93 76797967 79767676 ..%..L. gyyvvvvy
20c98: 40407679 e240e240 e23131e2 e2404040 yv@@@.@..11.@@@.
20ca8: ac1a64e2 57949457 57575757 57575757 .d..W..WWWWWWWWW
20cb8: 57575757 94949494 94949494 57575757 WWWW........WWWW
20cc8: 57575757 57575757 94949457 c1e49457 WWWWWWWWW...W...
20cd8: b94b355a 5f5f7575 5e76c95f 31dc35dc Z5K.uu___.v^.5.1
20ce8: 5796965b 0e712e24 350e0e0e 35353535 [..W$.q....55555
20cf8: dc0e3535 dcdcdcdc 6b410e0e a2490e6b 55........Akk.I.
20d08: 858585d5 dc35a2d5 c8767913 77c8c877 ......5..yv.w..w
20d18: b371eb53 0808a946 36cb0808 2d707048 S.q.F......6Hpp-
20d28: d872a651 69cb0c64 bb771ee9 b32bc8c8 Q.r.d..i..w...+.
20d38: 77c879b3 7979c877 93c51379 13c585b6 .y.ww.yyy.......
20d48: 79797979 76404076 40767979 e2404040 yyyyv@@vyyv@@@@.
20d58: 3131e2e2 e2404040 e64031e2 575757fe ..11@@@..1@..WWW
20d68: 57575757 575757e6 57575757 57575757 WWWW.WWWWWWWWWWW
20d78: 57575757 57575757 57575757 57575757 WWWWWWWWWWWWWWWW
20d88: 57575757 96575757 4b1bacc1 80b975b9 WWWWWWW....K.u..
20d98: 5e5f5e5e e87dd533 1ae47131 afac3232 ^^_^3.}.1q..22..
20da8: 0e0e0e35 3535350e 0e353535 dcdcdcdc 5....555555.....
20db8: 414141dc 490e0e5d 8585d5a2 9f8e7dd5 .AAA]..I.....}..
20dc8: 5e13c5dc 7720c879 d1e365e5 54125976 ...^y. w.e..vY.T
20dd8: 693b0808 48480069 ae659069 69e9d1e5 ..;ii.HHi.e....i
20de8: 1e1e0c69 c8c8bb77 c8c82b2b 2bc87777 i...w...++..ww.+
20df8: 933320b3 13258521 79797979 40407679 . 3.!.%.yyyyyv@@
20e08: 76797976 40404040 31e2e2e2 40404031 vyyv@@@@...11@@@
20e18: e23131e2 5794fed8 57e65757 e6e6e6e6 .11....WWW.W....
20e28: e6e6e6e6 57e6e6e6 57e6e6e6 57575757 .......W...WWWWW
20e38: 57575757 57575757 57575757 57575757 WWWWWWWWWWWWWWWW
20e48: b08fc31a 62757c4b 5e5e8062 dc923c13 ....K|ubb.^^.<..
20e58: e4a631e8 a666242e 0e0e35c5 35350e0e .1...$f..5....55
20e68: 35353535 dcdcdc0e 4141e8e8 0e0e4187 5555......AA.A..
20e78: d5d5a249 dc25a2d5 9f9fdcd7 13c85e33 I.....%.....3^..
20e88: b4eb6f64 795477b3 3b080819 690c6969 do...wTy...;ii.i
20e98: fcf56948 0c440cae 0c0c6969 bb77771e Hi....D.ii...ww.
20ea8: c82bc8ab c8777777 4cafd1b3 41f32537 ..+.www....L7%.A
20eb8: 7679795e 40767676 79797676 40404076 ^yyvvvv@vvyyv@@@
20ec8: 4040e240 4040e2e2 3131e240 ac2ec831 @.@@..@@@.111...
20ed8: e6e657e6 e6e6e6e6 e6e6e6e6 e6e6e6e6 .W..............
20ee8: e6e6e6e6 e6e6e6e6 e6e6e6e6 575757e6 .............WWW
20ef8: 57575757 57575757 c1426ae6 753d4924 WWWWWWWW.jB.$I=u
20f08: 5e7ce062 dc05dc31 fed13113 94249496 b.|^1....1....$.
20f18: 0e35dc66 350e0e0e 35353535 dcdc0e35 f.5....555555...
20f28: 41e8e8dc 41dcdcdc a2a2490e dc8ea2a2 ...A...A.I......
20f38: 9fdc1313 c813c59f 53eb7120 3838b377 ........ q.Sw.88
20f48: 0808c8b3 6944cb3b 4d693648 692d7152 ....;.DiH6iMRq-i
20f58: 44e96969 771ee96d c8ab7777 c87777c8 ii.Dm..www...ww.
20f68: 4cb1d179 301320b1 7979e841 76767679 y..L. .0A.yyyvvv
20f78: 79767640 e2e27679 40404040 40e2e240 @vvyyv..@@@@@..@
20f88: 31e24040 e1403131 e6e657fe e6e6e6e6 @@.111@..W......
20f98: e6e6e6e6 3281e6e6 e6323232 e6e6e6e6 .......2222.....
20fa8: e6e6e6e6 e6e6e6e6 e6e6e6e6 57575757 ............WWWW
20fb8: e457e657 3d3510c1 7f7f6280 3113e830 W.W...5=.b..0..1
20fc8: 53313131 2432fee4 0e877194 0e0e0e0e 111S..2$.q......
20fd8: 35353535 dc0e3535 e8e8e8dc e8e8dcdc 555555..........
20fe8: a2490e41 9f35a2a2 dc1313e8 13c59f9f A.I...5.........
20ff8: 10ebb1c8 547459bb 0838b377 6969a554 .....YtTw.8.T.ii
21008: 0ccb69cb ca66521b e9690c0c 6d6dbfbf .i...Rf...i...mm
21018: 7777bb77 c877c877 4cfb5b2b 767967af w.www.w.+[.L.gyv
21028: 31307ce8 76767979 76764076 40767979 .|01yyvvv@vvyyv@
21038: 4040e2e2 e2e24040 e24040e2 e23131e2 ..@@@@...@@..11.
21048: 322eac2b e6e6e6e6 e6e6e6e6 578181e6 +..2...........W
21058: e6575757 32323232 e6e6e632 e6e6e6e6 WWW.22222.......
21068: e6e6e6e6 57e6e6e6 e6e65757 35acc196 .......WWW.....5
21078: 7f62807f 31e86e6b e2313131 32ac6094 ..b.kn.1111..`.2
21088: 0eb16a24 0e0e0e0e 3535350e 0e353535 $j.......555555.
21098: 45e8dcdc e8dcdce8 490edce8 9f35a2a2 ...E.......I..5.
210a8: 131333dc 209f9fdc 6565d179 a554775b .3..... y.ee[wT.
210b8: 59797754 0054a508 cb36e90c a6711b43 TwyY..T...6.C.q.
210c8: 690c0c78 44e5440c 77bb77e9 2b777777 x..i.D.D.w.wwww+
210d8: 0fe32c64 c879d15b 41415e0d 76797913 d,..[.y..^AA.yyv
210e8: 76407676 76797979 e2e2e240 40407e40 vv@vyyyv@...@~@@
210f8: 404040e2 31314040 fee17e31 323232e6 .@@@@@111~...222
21108: 81323232 e6e68181 9778781c 81e6e68c 222......xx.....
21118: 81818181 81818181 81818181 e6e6e681 ................
21128: 575757e6 96c31ae6 7c807f9f 4517276b .WWW.......|k'.E
21138: 31313131 94fefeb3 c52e3224 0e870e0e 1111....$2......
21148: 350e0e0e 0e353535 e8dcdc0e e8dce845 ...5555.....E...
21158: 0edce845 0e7da249 1313e8dc c59fdc13 E...I.}.........
21168: ebe3d1b3 5474772c 54547438 3ba53b54 ....,wtT8tTTT;.;
21178: 69704870 ae0c2a6d 0c44e165 bfe969cb pHpim*..e.D..i..
21188: bb1ee944 2b7777bb 53e3b103 797967d1 D....ww+...S.gyy
21198: 30790dc8 76791341 40767676 79797676 ..y0A.yvvvv@vvyy
211a8: 76407679 7e7e40e2 40e2e240 e2404011 yv@v.@~~@..@.@@.
211b8: 64e23131 32322eac 81818132 e6818181 11.d..222.......
211c8: a91f0091 9078543b 818181e6 81818181 ....;Tx.........
211d8: 81818181 81818181 e6e6e681 c32ee6e6 ................
211e8: 807fafe4 6e27177c 31313145 1ae4f1e2 ....|.'nE111....
211f8: 94662466 870e0ee8 0e0e0e0e 35353535 f$f.........5555
21208: e8dc0e0e dce84545 dce845e8 35a2350e ....EE...E...5.5
21218: 1333e8dc 9f331313 3f3713c5 54597453 ..3...3...7?StYT
21228: 3820d174 543b5408 36000054 48cb6d44 t. 8.T;TT..6Dm.H
21238: 2fa6102d 0c69690c 1ee94444 64ab1e1e -../.ii.DD.....d
21248: 5be3fbd1 79797967 400dc879 791341e8 ...[gyyyy..@.A.y
21258: 76797676 79767676 40767979 7e40e276 vvyvvvvyyyv@v.@~
21268: e2e2407e 40404040 31e231e2 e6fe2440 ~@..@@@@.1.1@$..
21278: 81813232 81818181 367036ed a93bcd4f 22.......6p6O.;.
21288: e681784f 81818181 81818181 81818181 Ox..............
21298: e6818181 94e6e6e6 6bb14242 17b85d30 ........BB.k0]..
212a8: 3131805d 60667e31 942432ac 0e0ee871 ].111~f`.2$.q...
212b8: 0e0e8787 0e350e0e dc0e0e0e 454545e8 ......5......EEE
212c8: 4545e8e8 35350edc 13dcdc35 33133113 ..EE..555....1.3
212d8: 3ffbc59f 7459bb37 b3d12b77 3b543854 ...?7.Ytw+..T8T;
212e8: 70703808 69367070 eb0b6936 69690cbe .8pppp6i6i....ii
212f8: 0c0c6d0c 64441e1e d1fb37b0 792b2b2b .m....Dd.7..+++y
21308: 0dc82b79 13d75e0d 79767679 76767676 y+...^..yvvyvvvv
21318: 40767979 40e27640 e2e24040 404040e2 yyv@@v.@@@...@@@
21328: e2e2e240 ac03e231 81328194 81818181 @...1.....2.....
21338: 70362281 4f4f361f ec1f4f4f 81ed81ed ."6p.6OOOO......
21348: edededed 81818181 81818181 e6e6e681 ................
21358: 71c3e457 1717416e 31807f17 1a793131 W..qnA.....111y.
21368: 24246afe 0edc2c94 41410e0e 0e0e0e0e .j$$.,....AA....
21378: 410e0e0e 454545dc 4545e845 0e41e845 ...A.EEEE.EEE.A.
21388: dc9f0e0e 13131313 3ffb9f33 38382be3 ........3..?.+88
21398: 202b2b5b 54191212 7077083b 6dcb0070 [++ ...T;.wpp..m
213a8: 69cb360c cf723f24 690c0c69 d864e90c .6.i$?r.i..i..d.
213b8: 03b1e32c 2bc8c82b c82b7979 13790d0d ,...+..+yy+...y.
213c8: 76767931 76767676 76767976 e2e24076 1yvvvvvvvyvvv@..
213d8: e24040e2 40e23131 e2e24040 7e31e2e2 .@@.11.@@@....1~
213e8: 81e61a8c 81818181 709081ed 361f7070 ...........ppp.6
213f8: 36363636 81ed6970 edededed edededed 6666pi..........
21408: 818181ed e6818181 c36057e6 6e5d5d37 .........W`.7]]n
21418: 067f476e b4e23131 24661a60 87339432 nG..11..`.f$2.3.
21428: 41870e0e 0e0e0e41 0e0e0e0e e845e8dc ...AA.........E.
21438: 45e84545 41e84531 dc0e0e0e 131313dc EE.E1E.A........
21448: 3ffb3313 747403fc 2b77d1b3 74775474 .3.?..tt..w+tTwt
21458: 773b3b54 0c007070 3636366d 2e6f2d70 T;;wpp..m666p-o.
21468: 690ccd78 d8d30c69 032ce30f c8c877c8 x..ii.....,..w..
21478: 2b797979 0d0d0dc8 76797979 76767676 yyy+....yyyvvvvv
21488: 79797676 31e27676 e2e23131 e2456e45 vvyyvv.111..EnE.
21498: e24040e2 31e23131 946aabe2 eded81ed .@@.11.1..j.....
214a8: 7381eded 1f707070 1f1f1f1f ec007070 ...sppp.....pp..
214b8: ededed81 edededed edededed 81818181 ................
214c8: 96e632e6 5d0e10c3 6e475d06 7e313106 .2.....].]Gn.11~
214d8: 24ace4be e866328c 87410e0e 0e414187 ...$.2f...A..AA.
214e8: 0e0e0e0e e8dcdc0e e8e845e8 e8453145 .........E..E1E.
214f8: 0e0e0e41 1313dc5d 3fb11313 7477b065 A...]......?e.wt
21508: 2bd1f22b 38593877 cd543b12 70707038 +..+w8Y8.;T.8ppp
21518: 70704870 d3693670 6978a6a6 bfd30c69 pHppp6i...xii...
21528: 64d8e3fb c8c877c8 797979c8 0dc8c82b ...d.w...yyy+...
21538: 79760d0d 76767976 79767676 31317931 ..vyvyvvvvvy1y11
21548: 31313131 456b2745 e2e23131 31313131 1111E'kE11..1111
21558: 90343131 eded811a edededed 70007073 114.........sp.p
21568: 701f7070 70707070 ed819100 edededed pp.ppppp........
21578: edededed 8181eded e6e68181 87fcc360 ............`...
21588: 475d3130 3131806e 6afeac76 be578c24 01]Gn.11v..j$.W.
21598: 410e0e45 41418787 0e0e0e0e 410e0e0e E..A..AA.......A
215a8: 454545e8 31311345 5d0edce8 13135dde .EEEE.11...].]..
215b8: ebf27913 192b2cd2 d15b2b74 74d17777 .y...,+.t+[.ww.t
215c8: 54545454 707054cd 70000070 44697070 TTTT.Tppp..pppiD
215d8: a6a6d3e9 bfd36978 bfe566be 77771ebb ....xi...f....ww
215e8: 79792bc8 0dc87979 760d0d0d 79797679 .+yyyy.....vyvyy
215f8: 76404076 31313179 45453131 06271745 v@@vy11111EEE.'.
21608: 31313145 313131e2 e2e23131 ed6a5777 E111.11111..wWj.
21618: edededed 004822ed 70707070 70707070 ....."H.pppppppp
21628: 97707070 222222ed eded2222 81ededed ppp.."""""......
21638: 97e68181 a6c372e9 30314531 3180416e .....r..1E10nA.1
21648: 1a60d8e2 94242457 0e0ee853 41414141 ..`.W$$.S...AAAA
21658: 0e0e0e41 0e0e0e0e 1345e8dc 31134513 A.........E..E.1
21668: 41e84531 13dcde6b ea337931 2bb30fd2 1E.Ak...1y3....+
21678: b37477c8 2b77bb2b 54545474 704ecdcd .wt.+.w+tTTT..Np
21688: 70697070 69487070 2d0ce92d aee12e5a ppipppHi-..-Z...
21698: 78bf24be 1e1e1ebb 7979c877 c8797979 .$.x....w.yyyyy.
216a8: 0d0d0dc8 76767676 76407676 31317976 ....vvvvvv@vvy11
216b8: 87414531 87174145 31314545 31313131 1EA.EA..EE111111
216c8: e2313131 1aae40e2 ededed32 cbededed 111..@..2.......
216d8: 70707000 70707070 00707070 9090edec .pppppppppp.....
216e8: 22222290 ededed22 ca8181ed 6059081f ."""".........Y`
216f8: 3131402e 31068745 60be4031 24e1321a .@11E..11@.`.2.$
21708: 41875b94 8787410e 0e0e4187 0e0e410e .[.A.A...A...A..
21718: 1345dc0e 31131313 45453131 e85dde41 ..E....111EEA.].
21728: 52333113 b3330fd2 7477192b 382bbb38 .13R..3.+.wt8.+8
21738: 54543838 1e543bcd 0c007048 36366944 88TT.;T.Hp..Di66
21748: 69cbcf36 a6e1e9cf 44ae6feb 1e1ebbe9 6..i.....o.D....
21758: 2bc8771e 7979b379 0d0d0dc8 7679760d .w.+y.yy.....vyv
21768: 40767676 13133176 6e17e813 450645e8 vvv@v1.....n.E.E
21778: 3145e845 31e23131 e2e2e231 b330e2e2 E.E111.11.....0.
21788: ededaced edededed 7070004a 70707070 ........J.pppppp
21798: 70700000 22ff7070 90909090 22222290 ..pppp."....."""
217a8: 9181eded 5954a900 31402e96 31313131 ......TY..@11111
217b8: ac763131 e124acfe 87135732 87414141 11v...$.2W..AAA.
217c8: 0e418787 4141410e 45e8410e 13131313 ..A..AAA.A.E....
217d8: 31313131 dc0e4145 e33313dc 33330fd2 1111EA....3...33
217e8: 772b2bb3 b3777777 541212bb 54cdcd54 .++wwww....TT..T
217f8: 707048cd 0c446900 3636cb69 72446936 .Hpp.iD.i.666iDr
21808: a6106610 bf72f5be c8772bbb 7979792b .f....r..+w.+yyy
21818: 0d0dc8c8 13790d0d 20136713 afaf9f5b ......y..g. [...
21828: aa17dc9f 31454587 3106f631 e2e2e231 .....EE11..11...
21838: e2e231e2 e8e2e2e2 5757e5f3 22eded22 .1........WW".."
21848: 700063ed 00000000 00000000 07007000 .c.p.........p..
21858: 73737322 22909073 73ed2222 3ba97070 "ssss..""".spp.;
21868: 40a69659 31313131 d8e24531 e1941afe Y..@11111E......
21878: 45be32e1 41414141 41878787 41410e41 .2.EAAAA...AA.AA
21888: e8dc4141 13131313 31313113 dce83131 AA.......11111..
21898: 52c5e8dc 3313b1d2 2b2bb333 c8c87777 ...R...33.++ww..
218a8: 12e87974 cdcd5454 0069e9cd 36007070 ty..TT....i.pp.6
218b8: cb6d0cd3 aed36936 e5ae53a6 a6102472 ..m.6i...S..r$..
218c8: 0fe3e310 afb1b1b1 5bf2f2af 0faff2f2 ...........[....
218d8: 0f0f0f93 c5afb10f aa6ee833 3145450e ........3.n..EE1
218e8: 3106f645 40403131 e2e2e240 e2e2e2e2 E..111@@@.......
218f8: ae413031 ed2281ac 48902222 00000000 10A..."."".H....
21908: 00000000 00707070 73737315 90737373 ....ppp..ssssss.
21918: ed222290 1f7000ec 6660593b 31313140 .""...p.;Y`f@111
21928: 11454531 321afe24 535724e1 41418745 1EE.$..2.$WSE.AA
21938: 87878741 87414141 dc414141 134545e8 A...AAA.AAA..EE.
21948: 31131313 13313131 529fdce8 b3790fd2 ...1111....R..y.
21958: 2bb33333 2b7777c8 796bc82b cdcd5454 33.+.ww++.kyTT..
21968: 36e94ecd 70707000 2d2d3600 aed3cb2d .N.6.ppp.6---...
21978: e5ae24a6 44e9e9ab 715372bf cecee337 .$.....D.rSq7...
21988: 37e3cece 0ffbfb37 9f8e930f 79796733 ...77.......3gyy
21998: 27e87979 1313135d e2314531 40403131 yy.']...1E1.11@@
219a8: e2e24040 e2e2e2e2 5de24040 8c2e222c @@......@@.],"..
219b8: ed902222 000000ca 00000000 00000000 ""..............
219c8: 731c7000 73737373 ed907373 70700089 .p.sssssss....pp
219d8: e4123b1f 31314071 45313131 acfe6a40 .;..q@11111E@j..
219e8: 9424e124 4187455b 06874141 dc878787 $.$.[E.AAA......
219f8: dcdc87e8 4545e8dc 87454545 31313145 ......EEEEE.E111
21a08: 52c51331 79130fd2 b32020b3 7777bb2b 1..R...y. .+.ww
21a18: dcdcb3b3 cd544e12 cfe9cdcd 70707048 .....NT.....Hppp
21a28: cb007070 782d2d69 bf782466 6dd3bbe5 pp..i--xf$x....m
21a38: 1ee92de9 d12b1e1e d1202020 79797967 .-....+. .gyyy
21a48: e8c51379 40767679 e8797976 313113e8 y...yvv@vyy...11
21a58: 40403131 40e231e2 e2404040 e2e2e231 11@@.1.@@@@.1...
21a68: 9fe240e2 e6bf854c 90909094 00707390 .@..L........sp.
...
21a80: 63000000 73739773 73737373 7000eced ...cs.ssssss...p
21a90: bb081f70 31e22c42 45313131 1a1ad131 p...B,.1111E1...
21aa0: 24e1e194 e8061357 87414187 e8870606 ...$W....AA.....
21ab0: dcdce8e8 4545dc41 5d454545 76314516 ....A.EEEEE].E1v
21ac0: e3137676 79130fd2 1313b379 7777bb79 vv.....yy...y.ww
21ad0: 7979b3bb 544e4e1e cd0ccdcd 48487069 ..yy.NNT....ipHH
21ae0: 48707070 782d3648 d3786671 bb444444 pppHH6-xqfx.DDD.
21af0: 6d6d2d44 bb1ee9e9 79b379c8 0d0dc879 D-mm.....y.yy...
21b00: dc13760d 79793113 79797976 31313179 .v...1yyvyyyy111
21b10: 40403131 e2e24040 e2e2e240 40e23131 11@@@@..@...11.@
21b20: 3cdc31e2 870e354c 73e69478 fa907390 .1.<L5..x..s.s..
...
21b3c: 97977307 73737397 70707390 081f7070 .s...sss.spppp..
21b4c: 3167420b 31313131 fee1e245 e1dbe61a .Bg11111E.......
21b5c: 06315a32 8787dce8 06060606 e8e8e8e8 2Z1.............
21b6c: e8dc4141 f6454545 7631f6de e3797676 AA..EEE...1vvvy.
21b7c: 7979b1eb b3b37979 7777c8b3 772b7777 ..yyyy....wwww+w
21b8c: 77384e1e cfcdcd54 48700c69 70707048 .N8wT...i.pHHppp
21b9c: d3cb692d d3aee3db 6444440c d36dd364 -i.......DDdd.m.
21bac: 77e9e96d b32b2b2b 0dc82b79 e8790dc8 m..w+++.y+....y.
21bbc: 79e8e8d7 76767676 79797979 40e27679 ...yvvvvyyyyyv.@
21bcc: e2404040 314531e2 40e23131 953c3340 @@@..1E111.@@3<.
21bdc: 0e87dc7d 6a897e45 737373ed 0000ec73 }...E~.j.ssss...
...
21bf4: ff974a00 73979797 00639073 1f707070 .J.....ss.c.ppp.
21c04: 401a9408 31313131 94764531 e124ac1a ...@11111Ev...$.
21c14: 31e157e1 87e8e806 e8e806dc e8e8e830 .W.1........0...
21c24: 4141dce8 41e845e8 7945dede e3794076 ..AA.E.A..Eyv@y.
21c34: 7679b1eb 792b2b76 7477c82b 77777777 ..yvv++y+.wtwwww
21c44: 1ee93877 cfcfe964 700c0ccf 48704848 w8..d......pHHpH
21c54: ec6d0c70 780b1089 bf446969 bb6d44bf p.m....xiiD..Dm.
21c64: e9e96dab 2b2b64bb c82b7979 790dc8c8 .m...d++yy+....y
21c74: 138741e8 76767979 76767676 76767679 .A..yyvvvvvvyvvv
21c84: 407e7e40 874531e2 e2e2e231 4c527d13 @~~@.1E.1....}RL
21c94: 0e87139f 6811e213 73226aff 15737373 .......h.j"ssss.
...
21cac: 97ec0000 9797ff1c 4a907373 70707000 ........ss.J.ppp
21cbc: 53e44e1f 313113e2 d1311331 8c6a1a6a .N.S..111.1.j.j.
21ccc: b49424e1 e8e8e831 e80687dc e8e8e8e8 .$..1...........
21cdc: dce84545 4545e8dc 3141de16 e3790d79 EE....EE..A1y.y.
21cec: 76762ceb 7777c8c8 74777777 77777774 .,vv..wwwwwttwww
21cfc: e91ebb74 cf0c64e9 690ccfcf 48483648 t....d.....iH6HH
21d0c: 0c364848 782424ca d369692d 44e9d3bf HH6..$$x-ii....D
21d1c: e91e64d1 2b2b77e9 2b2bb32b 0d0dc8c8 .d...w+++.++....
21d2c: 13414131 76767979 76764076 79797676 1AA.yyvvv@vvvvyy
21d3c: 7e7e4079 4545e240 1331e231 3595527d y@~~@.EE1.1.}R.5
21d4c: 8745e213 4040e231 94736811 97739773 ..E.1.@@.hs.s.s.
21d5c: 00001597 00000000 ec000000 971c1c97 ................
21d6c: 73739797 707000cb e4e17070 31313176 ..ss..pppp..v111
21d7c: e2453131 e6ac1af5 9424e1db e8453ed1 11E.......$..>E.
21d8c: e887dce8 06e845e8 4545e8e8 45e8dce8 .....E....EE...E
21d9c: 13f6de87 37797679 0d0db0fc 7774740d ....yvy7.....ttw
21dac: 74777777 77777474 bbbb77bb 69e90c38 wwwtttww.w..8..i
21dbc: 0ccfcfcf 483648cf cbcb48cb 89579169 .....H6H.H..i.W.
21dcc: 69690c2d e944bf44 1ebb6444 771e1e1e -.iiD.D.Dd.....w
21ddc: 79792b77 0dc8c82b 4141e876 76797913 w+yy+...v.AA.yyv
21dec: 76404040 79797676 40763131 e2e24040 @@@vvvyy11v@@@..
21dfc: 7d333140 13a09552 31e23131 404040e2 @13}R...11.1.@@@
21e0c: 12114011 ff735722 4a979797 00000000 .@.."Ws....J....
21e1c: 00000000 1c1c97ec 739797ff 70704897 ...........s.Hpp
21e2c: 60cf7070 31134066 45313131 acace640 pp.`f@.1111E@...
21e3c: 32e1db24 4545e2e6 87dce8e8 4545e806 $..2..EE......EE
21e4c: 45e8e8e8 e8e8e845 13e80645 e3677631 ...EE...E...1vg.
21e5c: 7774b0fc 74747477 77777777 38747474 ..twwtttwwwwttt8
21e6c: bb772b77 cde9bbab cfcfcf69 366969cf w+w.....i....ii6
21e7c: 6d69cbcb e61c6969 6969ec91 d1e5780c ..imii....ii.x..
21e8c: 1e6d6dab 1e1e6464 792b771e c8c82b2b .mm.dd...w+y++..
21e9c: 5d30790d 76791341 40404076 79767676 .y0]A.yvv@@@vvvy
21eac: 79313179 31404040 523c9f13 e2319f4c y11y@@@1..<RL.1.
21ebc: 40313131 e2404040 40401131 57221211 111@@@@.1.@@.."W
21ecc: 1cff1c73 00156397 70000000 1c1c4a00 s....c.....p.J..
21edc: 97ff1c1c 70489773 90007070 31312b42 ....s.Hppp..B+11
21eec: 31313131 ac6ab331 e1dbe16a 45112457 11111.j.j...W$.E
21efc: dce84545 45e80687 e8e84545 e8e81345 EE.....EEE..E...
21f0c: 313113e8 e367765e c80d5bfc 770dc8c8 ..11^vg..[.....w
21f1c: 77777777 77747777 bb2b7777 1ebb6477 wwwwwwtwww+.wd..
21f2c: cfcfcd0c cb69cfcf 43ec6948 97eccb2a ......i.Hi.C*...
21f3c: 69d378ed e5bf6969 e9bbc55b 1e64d1bb .x.iii..[.....d.
21f4c: 2b771ee9 c8797979 415ec80d 761341f3 ..w+yyy...^A.A.v
21f5c: 40404076 79764040 79793131 c5794040 v@@@@@vy11yy@@y.
21f6c: 7d95957d 404079dc 313131e2 e2404040 }..}.y@@.111@@@.
21f7c: 40114545 12114040 1c975773 1c1c1c1c EE.@@@..sW......
21f8c: 0048ec91 1c910000 1c1c1c89 701c971c ..H............p
21f9c: 91007070 317e5a42 31313131 1af5e231 pp..BZ~111111...
21fac: dbdb57ac e2f1948c e8454531 e88741e8 .W......1EE..A..
21fbc: 45453145 133145e8 31311313 e3207631 E1EE.E1...111v .
21fcc: c846b0fc c8c8c8c8 77c8c8c8 38777777 ..F........wwww8
21fdc: 77bb2b77 bbbb7477 cf69e913 d3694fcf w+.wwt....i..Oi.
21fec: 430c0c48 eccb694d 0c2d9097 d32d780c H..CMi....-..x-.
21ffc: 2025d8e5 abd1bb1e 77e94ee9 79797979 ..% .....N.wyyyy
2200c: 5e760dc8 1341f37c 40407676 76404040 ..v^|.A.vv@@@@@v
2201c: 79767979 950f3313 878e4c52 407e7e45 yyvy.3..RL..E~~@
2202c: 31e24040 407e40e2 404031e2 40404040 @@.1.@~@.1@@@@@@
2203c: e6ff12e2 891c1c73 631c1c89 89074afa ....s......c.J..
2204c: 1c898989 1c971c1c 07700070 31741a1a ........p.p...t1
2205c: 31313131 66403131 db24acac d16a24db 111111@f..$..$j.
2206c: 45313131 e8d7e8e8 314545e8 3145e831 111E.....EE11.E1
2207c: 795e5e5e fc5b7676 7446d852 c8c84674 ^^^yvv[.R.FttF..
2208c: c8c8c8c8 77777777 772bbb74 77747777 ....wwwwt.+wwwtw
2209c: cf1edcdc 694fcfcf 2d690cd3 cbcb2d4d ......Oi..i-M-..
220ac: d3e197ec bfae0c69 af2f642d bb1e6425 ....i...-d/.%d..
220bc: 1ee9e91e 13797977 760d7913 7cf37c5e ....wyy..y.v^|.|
220cc: 40767913 400d0d0d 5b137640 ce6c520f .yv@...@@v.[.Rl.
220dc: 871333b1 7e7ee287 76404040 7e4040e2 .3....~~@@@v.@@~
220ec: 7e404040 40404040 68e24040 89738191 @@@~@@@@@@.h..s.
220fc: 63891c1c 63636363 1c898963 1c1c1c1c ...cccccc.......
2210c: 89cbcb97 117860e6 31313131 b3313131 .....`x.1111111.
2211c: 8c6a6a6a 9432dbdb 31313179 d7e8e845 jjj...2.y111E...
2212c: 454545e8 5e313131 5e5e5e31 655b7679 .EEE111^1^^^yv[e
2213c: 46c820e3 77747474 77c8c8c8 bb747477 . .Ftttw...wwtt.
2214c: bb7774bb 74771e77 64bb0e79 36cfcf0c .tw.w.wty..d...6
2215c: 36486969 48cbd32a 241c6948 786d6978 iiH6*..HHi.$ximx
2216c: e5bf0cd3 6dd8255b e90ce9e9 dc79771e ....[%.m.....wy.
2217c: 0d79e85d 3d415ec8 4076e85d 400d0d40 ].y..^A=].v@@..@
2218c: 52fbf279 5b935265 e8407e79 40403187 y..ReR.[y~@..1@@
2219c: 4040407e 7e404040 40407e7e 4040407e ~@@@@@@~~~@@~@@@
221ac: 40404040 73d33411 07fa6373 2d2dcaca @@@@.4.ssc....--
221bc: ca2d2d2d 6363faca 739773ff 3497fe22 ---...cc.s.s"..4
221cc: 31313131 e2313131 946aacb4 57dbdbdb 1111111...j....W
221dc: 313111e6 e8453131 45e8e8e8 31313145 ..1111E....EE111
221ec: 5e313131 65f27979 7676b337 747474c8 111^yy.e7.vv.ttt
221fc: 74747474 38383838 7438bbbb c8c87477 tttt8888..8twt..
2220c: 0c1e2b77 cfcfbb44 480c0c36 48cb0c69 w+..D...6..Hi..H
2221c: 89cb4848 0c6991e6 440c6978 c55b5be5 HH....i.xi.D.[[.
2222c: e90c0cbb 33ab1ee9 7979416b 7ce87679 .......3kAyyyv.|
2223c: 79e8f33d af337979 ce52cefb 76315b0f =..yyy3...R..[1v
2224c: e27e7e40 4040e213 407e7e40 40404040 @~~...@@@~~@@@@@
2225c: 407e7e7e 7e7e7e7e 40404040 597e11e2 ~~~@~~~~@@@@..~Y
2226c: 7438d369 68684646 02020202 744646dd i.8tFFhh.....FFt
2227c: fffacae9 68901a22 3131e2e2 45313131 ...."..h..11111E
2228c: acac5a40 e1dbf132 3111e194 45313131 @Z..2......1111E
2229c: e8e8e8e8 3131315e 5e313131 65b179b3 ....^111111^.y.e
222ac: c8c87671 7446c8c8 38747474 77773838 qv....Ftttt888ww
222bc: 38777738 87c8771e 0ce91e2b 0c44690c 8ww8.w..+....iD.
222cc: 2d69cbcb 6948480c 70704848 ae5a5aca ..i-.HHiHHpp.ZZ.
222dc: 0c69780c 5b5be544 1e6dd1c5 1377771e .xi.D.[[..m..ww.
222ec: 79135d6b 41e83179 93287f3d e3e3fb0f k].yy1.A=.(.....
222fc: 13f2fbe3 40407679 347e4076 7e40407e ....yv@@v@~4~@@~
2230c: 7e7e7e7e 407e4040 7e7e7e40 7e7e7e40 ~~~~@@~@@~~~@~~~
2231c: 40407e7e 12120de2 1246dd46 cfcdcd54 ~~@@....F.F.T...
2232c: 4f4fcfcf 5954cd4f c95fdd46 341c8938 ..OOO.TYF._.8..4
2233c: 31e240e2 31313131 6a6a7631 dbf1246a .@.111111vjjj$..
2234c: e2b46a8c 31313131 e8e8e8e8 3131315e .j..1111....^111
2235c: 79313131 65fb1379 c8c8c82c 46c8c8c8 111yy..e,......F
2236c: 74774646 77383874 381e381e 0e771e38 FFwtt88w.8.88.w.
2237c: 0ce91e0e 6969690c cbcbcb69 480c69bb .....iiii....i.H
2238c: 70700ccb edca6970 69ca9065 d1d1440c ..pppi..e..i.D..
2239c: bbc525d8 13b32bbb 67131616 28252067 .%...+.....gg %(
223ac: f0f0b6ad af7d4c21 0d0d79d1 7979760d ....!L}..y...vyy
223bc: 0d407676 40400d34 7e7e7e7e 4040407e vv@.4.@@~~~~~@@@
223cc: 7e404040 7e7e7e7e 407e7e7e dd7468e2 @@@~~~~~~~~@.ht.
223dc: cf4e74dd cfcfcfcf 3636cfcf a9a9a936 .tN.......666...
223ec: 544fa9a9 745fc974 e2e23412 31313131 ..OTt._t.4..1111
223fc: acd8e231 f1db946a b39424db 31313131 1...j....$..1111
2240c: e8e83131 31315ee8 79313131 fc371376 11...^11111yv.7.
2241c: c8c876f2 77c8c8c8 77467774 38383874 .v.....wtwFwt888
2242c: 38383838 13383838 e96d2bb5 69690c0c 8888888..+m...ii
2243c: cbcbcbcf 69cb44cb 701ebbe9 36697070 .....D.i...pppi6
2244c: 5a5af16d b0a02ce1 28c7b4e5 5bb4e55b m.ZZ.,.....([..[
2245c: 8e8e6b6e 214c4c93 28adb6b6 1341f37f nk...LL!...(..A.
2246c: 0d0d0d40 76760d0d 40767679 400d340d @.....vvyvv@.4.@
2247c: 7e7e7e40 4040407e 40404040 7e7e4040 @~~~~@@@@@@@@@~~
2248c: 7e7e7e7e 744e117e 5454cd12 cfcfcdcd ~~~~~.Nt..TT....
2249c: 4f4f4fcf a9a9a91f 3b3ba9a9 12543b3b .OOO......;;;;T.
224ac: 34195e76 3131e2e2 5a403131 f1e66a6a v^.4..1111@Zjj..
224bc: 6632dbdb 5f313176 5e313131 31315ee8 ..2fv11_111^.^11
224cc: 76765f31 10e32076 c8c8765b 77c8c8c8 1_vvv ..[v.....w
224dc: 74747474 12387474 4e38384e 7738384e tttttt8.N88NN88w
224ec: 441e336e 440c0ce9 cbcbcbe9 48e936cb n3.D...D.....6.H
224fc: 44e96948 36707070 cbd3d348 4c3c5378 Hi.Dppp6H...xS<L
2250c: f0e3be71 713721f0 8e8e6e8e c7930f0f q....!7q.n......
2251c: 7c7c4125 41f3f37c 0d0d7613 400d0d0d %A|||..A.v.....@
2252c: 76767976 0d347e40 7e7e4040 407e7e7e vyvv@~4.@@~~~~~@
2253c: 40404040 40404040 7e7e7e7e 40407e7e @@@@@@@@~~~~~~@@
2254c: 54cdcf4f cdcdcd4e 4f4fcfcf a9a9a9a9 O..TN.....OO....
2255c: 08a9a9a9 54543b08 5e461259 31317e76 .....;TTY.F^v~11
2256c: 76313131 246a6a6a 94dbdbf1 5f311124 111vjjj$....$.1_
2257c: 31315f5f 5e5e135e 76765f31 37105b76 __11^.^^1_vvv[.7
2258c: c82b76d1 c8c8c8c8 38747477 38387438 .v+.....wtt88t88
2259c: 54545412 38384e54 bbe9132b d30c0c6d .TTTTN88+...m...
225ac: cbcf6d44 0c36cbcb cb697070 70704838 Dm....6.ppi.8Hpp
225bc: 36367070 03abcb48 5bbfaebf afafaf8e pp66H......[....
225cc: ab2b2bd1 41d720b3 5e315ed7 f37c41e8 .++.. .A.^1^.A|.
225dc: 4031d741 0d0d0d0d 76767640 340d4076 A.1@....@vvvv@.4
225ec: 7e404034 7e7e4040 40404040 e2404040 4@@~@@~~@@@@@@@.
225fc: 7e7e7e40 407e7e7e cd4f0d40 cd541254 @~~~~~~@@.O.T.T.
2260c: 4fcfcfcd a9a9a9a9 a9a9a9a9 543b0808 ...O..........;T
2261c: 74685954 314074c9 e2313131 6a94acd8 TYht.t@1111....j
2262c: e1dbf1db 3111b46a 5f5f5f5f 5e135e31 ....j..1____1^.^
2263c: 76767631 0ffcaf76 c8767679 19c8c8c8 1vvvv...yvv.....
2264c: 74747477 38747474 54545412 38545454 wtttttt8.TTTTTT8
2265c: 0ce91e1e 69690c6d cb690c0c 36cbcbcb ....m.ii..i....6
2266c: 4870700c 00cbe9cb 69697070 2d0c6948 .ppH....ppiiHi.-
2267c: 1ebf6d2d bb1e64b3 77c86464 205ec877 -m...d..dd.ww.^
2268c: 0dc8b313 d731760d e8417c7c 0d0d4076 .....v1.||A.v@..
2269c: 7640400d 0d407676 40403434 7e404040 .@@vvv@.44@@@@@~
226ac: 7e40407e 407e7e7e 7e404040 7e7e7e7e ~@@~~~~@@@@~~~~~
226bc: 34117e40 1e4e4ecf cfcdcd4e a9a9a94f @~.4.NN.N...O...
226cc: a9a9a9a9 080808a9 68595454 e26838dd ........TTYh.8h.
226dc: 313131e2 6a6ae140 dbf1f157 5fb36a24 .111@.jjW...$j._
226ec: 5f5f5f31 5e5e315f 7676315e b1fcb176 1____1^^^1vvv...
226fc: 76797679 464619c8 38747474 38747438 yvyv..FFttt88tt8
2270c: 54545412 54545454 0c0ce94e 6969690c .TTTTTTTN....iii
2271c: cf0c6969 cbcbcbcb 70704436 360c7070 ii......6Dpppp.6
2272c: 2d707000 0cd3cb0c 780ccb69 6d6dd1bb .pp-....i..x..mm
2273c: c8771e44 2bc8c8c8 7477c82b 760d3468 D.w....++.wth4.v
2274c: 417c4131 0d7631d7 400d0d0d 40404040 1A|A.1v....@@@@@
2275c: 4034340d 40407e40 40407e7e 7e7e7e7e .44@@~@@~~@@~~~~
2276c: 40404040 7e7e7e7e e240407e 674e0d31 @@@@~~~~~@@.1.Ng
2277c: cdcd3867 a9a94fcf a9a9a9a9 0808a9a9 g8...O..........
2278c: 68545408 e2685446 313131e2 94944031 .TThFTh..1111@..
2279c: f1f1246a 769432db 5f5f5f5f 5e315f5f j$...2.v______1^
227ac: 765e5e5e 5b10fb5e 795e7976 7446c879 ^^^v^..[vy^yy.Ft
227bc: 74747474 38381238 54545412 5454cd54 tttt8.88.TTTT.TT
227cc: 0c0c4e4e 690c6969 440c6969 cbcb360c NN..ii.iii.D.6..
227dc: 00bbcbcb 0c000000 70707036 d3cb0c2d ........6ppp-...
227ec: 0c69692d 4441bb0c 1e1e6de9 77c82b1e -ii...AD.m...+.w
227fc: 12772bc8 34681212 41e8760d 31e84141 .+w...h4.v.AAA.1
2280c: 0d0d0d76 40404040 34343440 7e7e7e7e v...@@@@@444~~~~
2281c: 7e7e7e7e 7e7e7e7e 40407e7e 7e347e7e ~~~~~~~~~~@@~~4~
2282c: 31407e34 dc314545 544e2b17 a94fcdcd 4~@1EE1..+NT..O.
2283c: a9a9a9a9 08a9a9a9 b2540808 e23454b2 ..........T..T4.
2284c: 31e2e2e2 6ad1e231 f1db6a57 5a32dbf1 ...11..jWj....2Z
2285c: 5f5f5fdd 5f5f5f5f 5f5e5e31 20e3e313 ._______1^^_...
2286c: 79797676 c8c87679 74747446 12123838 vvyyyv..Fttt88..
2287c: 12545459 cdcdcd54 0c4e54cd 0ce96969 YTT.T....TN.ii..
2288c: cb696969 cbcbcbcb 446936cb 00000070 iii......6iDp...
2289c: 4870360c 360c2d70 6969e96d f3200c69 .6pHp-.6m.iii. .
228ac: e90ce9d1 64bb1e1e c8b3771e 12121212 .......d.w......
228bc: 310d0d34 d7414141 0d407913 400d0d0d 4..1AAA..y@....@
228cc: 34340d40 347e7e34 34347e34 407e7e7e @.444~~44~44~~~@
228dc: 34347e7e 3434347e e27e347e 87e84145 ~~44~444~4~.EA..
228ec: 12e933b5 4fcdcd54 a9a9a9a9 a9a9a9a9 .3..T..O........
228fc: 23540808 11111254 e2e21111 e1403131 ..T#T.......11@.
2290c: f157946a 94dbdbf1 5f317ef5 5f5f5f5f j.W......~1_____
2291c: 315e315f 5e37fcc5 76767676 19c87676 _1^1..7^vvvvvv..
2292c: 747477c8 59383838 38545959 cdcdcd54 .wtt888YYYT8T...
2293c: cd54cdcd 0c696969 69696969 690c6969 ..T.iii.iiiiii.i
2294c: 0c48cbcb 00704844 48360c00 cbcb4848 ..H.DHp...6HHH..
2295c: 696dd3cb 44693669 e964c520 1ee91ee9 ..mii6iD .d.....
2296c: 2babab2b 121274b3 0d776812 4141e879 +..+.t...hw.y.AA
2297c: 7631e8d7 0d0d0d40 340d400d 0d0d3434 ..1v@....@.444..
2298c: 34343434 7e0d7e34 347e407e 34343434 44444~.~~@~44444
2299c: 407e7e34 0e5d06e2 4ee25db5 cdcd5454 4~~@..]..].NTT..
229ac: a9a94f4f a9a9a9a9 a5a50808 11e2676d OO..........mg..
229bc: 11111111 4031e2e2 246a5757 dbdbf10b ......1@WWj$....
229cc: 5f11d86a 765f5f5f 315f5f76 790feab1 j..____vv__1...y
229dc: 76767676 19c81976 74747419 59123838 vvvvv....ttt88.Y
229ec: 54545959 cdcdcd54 cdcdcdcd cf6969cd YYTTT........ii.
229fc: 696969cf 0c696969 48cb3669 4870440c .iiiiii.i6.H.DpH
22a0c: 48cb7070 48cbcb48 4444cb70 6d36690c pp.HH..Hp.DD.i6m
22a1c: d7d16d2d e91e6dbb 2bdc671e 1277c8bb -m...m...g.+..w.
22a2c: 74121212 e879760d 13e8d7d7 40404079 ...t.vy.....y@@@
22a3c: 7e407e7e 407e3434 3434347e 407e7e34 ~~@~44~@~4444~~@
22a4c: 1268347e 347e3468 407e3434 5d41e831 ~4h.h4~444~@1.A]
22a5c: e2316bb5 cd54cd34 4f4f4fcd a9a9a9a9 .k1.4.T..OOO....
22a6c: 080808a9 13051843 11111111 e2e21111 ....C...........
22a7c: 94e66a64 dbf10bdb 5f19948c 765f5f5f dj.........____v
22a8c: 31767676 76af65fb 76767676 1919c876 vvv1.e.vvvvvv...
22a9c: 74741919 12383838 54545454 cdcdcdcd ..tt888.TTTT....
22aac: cdcdcdcd 0c0c0ccd 690c69cb 69cbcbcf .........i.i...i
22abc: cbcb0c0c 00d30c48 48484870 cb6d69cb ....H...pHHH.im.
22acc: 6dcb4848 cbcb690c 4469d36d 1e1ed120 HH.m.i..m.iD ...
22adc: 336e2be9 1e777777 12121212 0d0d0d68 .+n3www.....h...
22aec: e8e81379 0d7931e8 12541268 54545459 y....1y.h.T.YTTT
22afc: 7e343468 4040347e dd466812 68546846 h44~~4@@.hF.FhTh
22b0c: 4034347e 5df34131 e2e86b6b cdcd4040 ~44@1A.]kk..@@..
22b1c: 4f4fcdcd a9a94f3b 08080808 9a187a6d ..OO;O......mz..
22b2c: 111131a0 e2111111 e66af57e f10b0b57 .1......~.j.W...
22b3c: 346624db 5f5f5f5f 5e407676 7633fce3 .$f4____vv@^..3v
22b4c: 76767676 c80dc876 7419c876 12383838 vvvvv...v..t888.
22b5c: cd545454 cd3b3b3b cdcdcdcd e90ccdcd TTT.;;;.........
22b6c: cbcbcb0c 0c69cbcb 36692d2d 2d0c4836 ......i.--i66H.-
22b7c: 48487070 2ab02dcb 703636cb 36363648 ppHH.-.*.66pH666
22b8c: 690c0c69 bbd1ab0c 33dc1ee9 1e771e77 i..i.......3w.w.
22b9c: 124e4e12 0d341212 13790d0d 68c813e8 .NN...4...y....h
22bac: a1a1dd46 a1d9d9d9 6802dda1 407e6812 F..........h.h~@
22bbc: 75a15959 d95858df 7e7e1259 f3f306e2 YY.u.XX.Y.~~....
22bcc: 31e85d5d 547e4040 4fcdcdcd 4f3b3b4f ]].1@@~T...OO;;O
22bdc: 3b08a53b 7ad43b54 e2dc9a18 11111111 ;..;T;.z........
22bec: 94e67ee2 72723257 e1e60bf1 765f5fa4 .~..W2rr.....__v
22bfc: 20407676 7613e310 0d0d7676 0d0d7676 vv@ ...vvv..vv..
22c0c: 77c87676 12121274 cd545454 4f4f3bcd vv.wt...TTT..;OO
22c1c: cdcdcd3b e9cdcd0c cfcb2d6d cbcb6969 ;.......m-..ii..
22c2c: 6969cbcb 69483636 48484869 011b6936 ..ii66HiiHHH6i..
22c3c: 3636cb2d 36487048 0c69cb36 646d0c0c -.66HpH66.i...md
22c4c: 2b774e77 1e1e1eab 4e4e121e 68121212 wNw+......NN...h
22c5c: 400d0d0d a168120d df5858df dfdfdfdf ...@..h..XX.....
22c6c: 58585858 5902d958 2323a5a9 df75a1a4 XXXXX..Y..##..u.
22c7c: 6868d9df f3f34511 3131e841 12407e40 ..hh.E..A.11@~@.
22c8c: cdcd5459 3b543b4f 54a53b3b 43a5543b YT..O;T;;;.T;T.C
22c9c: 619a187a 1111e231 6a2b1111 72db5732 z..a1.....+j2W.r
22cac: 940bf172 765fddd8 af407676 76760f65 r....._vvv@.e.vv
22cbc: 0d767676 0d464646 46c8760d 59123874 vvv.FFF..v.Ft8.Y
22ccc: 54545454 4f4f3bcd cd4f4f4f cdcd0ccd TTTT.;OOOOO.....
22cdc: cf6d0c0c cbcb0c0c 696969cb 483636cb ..m......iii.66H
22cec: 48486936 8a43cb48 36cb6943 69707048 6iHHH.C.Ci.6Hppi
22cfc: d3690c0c e90c44d3 4e4e77bb 1e1e2b1e ..i..D...wNN.+..
22d0c: 12121e1e 12124e4e 0d343474 f7a15412 ....NN..t44..T..
22d1c: dfdff7da d9757575 a1a1a1d9 58dfd90a ....uuu........X
22d2c: a90802d9 a102b723 a1d9dfdf 6e413159 ....#.......Y1An
22d3c: 40e23141 68407e40 cd546859 54544fcd A1.@@~@hYhT..OTT
22d4c: 54cdcdcd 59cdcd54 187ad459 11e2dc01 ...TT..YY.z.....
22d5c: 727e1111 7257326a dbf1722f 7611c86a ..~rj2Wr/r..j..v
22d6c: 0f764076 7640f265 76767676 4646460d v@v.e.@vvvvv.FFF
22d7c: 0d190d46 12387474 54545454 4f4fcdcd F...tt8.TTTT..OO
22d8c: cf4f4fa9 cd0ccdcd 69cbcfcd cbcb69cb .OO........i.i..
22d9c: cbcb6969 48483669 48cbcb48 050ccb48 ii..i6HHH..HH...
22dac: cbcb6961 cb704848 0c0ce9d3 0c446dd3 ai..HHp......mD.
22dbc: 4e771ee9 1e64bb0c 381e1e1e 12544e12 ..wN..d....8.NT.
22dcc: 0d777774 dadf744e 5f7575df a1a1a1a1 tww.Nt...uu_....
22ddc: 0202a4a1 29a40202 df58d9a1 b2a5a9b2 .......)..X.....
22dec: d9dfa102 3d13b2a1 4040310e 0d407e7e .......=.1@@~~@.
22dfc: 54590254 59a9cdcd cdcd5459 cd545954 T.YT...YYT..TYT.
22e0c: a877b254 e21b8218 02111111 323294ed T.w...........22
22e1c: 0b722fe5 11469424 e35edd40 76dd1310 ./r.$.F.@.^....v
22e2c: 76767640 46464676 0d464646 12387446 @vvvvFFFFFF.Ft8.
22e3c: 54545454 4fcdcdcd 4f4fa9a9 cfcdcdcf TTTT...O..OO....
22e4c: cbcfcfcf 6969cb36 cbcbcbcb cb696969 ....6.ii....iii.
22e5c: 48cb4848 43cb4848 cbcb6da0 70484836 HH.HHH.C.m..6HHp
22e6c: e9e9d369 446d0c69 77e90c0c ab2b4e4e i...i.mD...wNN+.
22e7c: 77771e1e 54121e1e c8771212 d9da46cd ..ww...T..w..F..
22e8c: 59b246dd a5a5a559 a5a5a5a5 23a5a5a5 .F.YY..........#
22e9c: a1a4b723 a5a1dfd9 a1a4b208 79b2a1d9 #..............y
22eac: 7e40455d 0d403434 54b20254 a94fcd54 ]E@~44@.T..TT.O.
22ebc: cd5459b2 54595454 025954cd 1b82a8e5 .YT.TTYT.TY.....
22ecc: 1111e231 32325777 0b2fe5db a45a320b 1...wW22../..2Z.
22edc: 655b4040 40dd7637 7676760d 46460d76 @@[e7v.@.vvvv.FF
22eec: 74747474 38747474 54545459 4fcdcdcd ttttttt8YTTT...O
22efc: 4f1fa94f 4fcfcf4f cbcb4f4f 69cbcb36 O..OO..OOO..6..i
22f0c: cbcbcbcb 0c0c0c69 48367036 69484870 ....i...6p6HpHHi
22f1c: cb366d43 70484848 1e697070 e90c69e9 Cm6.HHHpppi..i..
22f2c: e90c0ce9 2b1e4e77 ab7777bb 121e1e77 ....wN.+.ww.w...
22f3c: 7712124e ddf7464e 545959b2 a9a90808 N..wNF...YYT....
22f4c: a9a9a9a9 a50808a9 23a5a5a5 d92902b7 ...........#..).
22f5c: 23a546df 02a1d929 7e403112 68407e34 .F.#)....1@~4~@h
22f6c: 2302dd3b 1fcd5454 5459b254 59545454 ;..#TT..T.YTTTTY
22f7c: 59545459 824dddb2 e2e2311b ed6aae7e YTTY..M..1..~.j.
22f8c: 2fe57232 b494720b 650f7602 dddd40af 2r./.r...v.e.@..
22f9c: 0dc9c946 b2684646 687474b2 12126868 F...FFh..tthhh..
22fac: 54545412 cfcdcdcd 1f1fa94f cfcf4f4f .TTT....O...OO..
22fbc: 36cbcf1f 69cb3636 696969cb 696969cb ...666.i.iii.iii
22fcc: 48484836 70004848 4848cb36 70484848 6HHHHH.p6.HHHHHp
22fdc: cf707070 e90c0c44 0ccd0cd3 1e387738 ppp.D.......8w8.
22fec: 771e1e77 77777764 744e1212 4675121e w..wdwww..Nt..uF
22ffc: a9085459 59a508a9 020202b2 08a559b2 YT.....Y.....Y..
2300c: 08a9a9a9 23a5a5a5 d9d929b7 a10259b2 .......#.)...Y..
2301c: 7e68b2a4 4f683434 2302a13b 3b5454a5 ..h~44hO;..#.TT;
2302c: 59b2b21f 54545454 5454b259 a102b754 ...YTTTTY.TTT...
2303c: 11316143 572268e2 e5e58ced 94727272 Ca1..h"W....rrr.
2304c: fcea25d1 dd407e13 464646dd 80d7e876 .%...~@..FFFv...
2305c: b2685f5e 59595968 54545459 cfcdcdcd ^_h.hYYYYTTT....
2306c: 1fa94f4f cf4f1f1f cbcf1fcf 36363636 OO....O.....6666
2307c: 6969cb36 3636cbcb 48484848 00484848 6.ii..66HHHHHHH.
2308c: 48707000 70704848 1f1f7070 0ccf0c36 .ppHHHpppp..6...
2309c: cde9bf6d 381e4e0c 1e4e4e4e ab772b2b m....N.8NNN.++w.
230ac: 54121277 465f4e68 081fa954 58dfa1b2 w..ThN_FT......X
230bc: 58585858 58585858 02a1d958 a5a9a9a5 XXXXXXXXX.......
230cc: 02232323 b2a1d9a4 a9235459 1fa95454 ###.....YT#.TT..
230dc: 2302d959 54a5a5a5 59b23ba9 543b5454 Y..#...T.;.YTT;T
230ec: 59b25954 b723543b 79775fdd 571e11e2 TY.Y;T#.._wy...W
230fc: bf51eded 517272e5 f0d6afe6 40dd3425 ..Q..rrQ....%4.@
2310c: 5e466846 e0e0e062 b9c6c6f4 59595968 FhF^b.......hYYY
2311c: 54545459 cfcdcdcd 4f4f4fcf 4f1f1f1f YTTT.....OOO...O
2312c: cb1fcbcf cbcb3636 69cbcb36 36cbcb69 ....66..6..ii..6
2313c: 48484848 48484848 00000000 70707000 HHHHHHHH.....ppp
2314c: 1f707070 cf363636 cd44d30c 4e4e0ccd ppp.666...D...NN
2315c: 4e544e12 bbbbab1e 121e742b 68545454 .NTN....+t..TTTh
2316c: dd54a9a9 dff7f775 a1a1d975 a1a1a1a1 ..T.u...u.......
2317c: 88d90a0a 02d95858 a508a908 a4b72323 ....XX......##..
2318c: 02a429a1 b25423b2 23b2d9d9 a5a5a5a5 .)...#T....#....
2319c: b2b21f54 0854a559 5959a5a5 a5a554b2 T...Y.T...YY.T..
231ac: 75ddb7b7 787e3446 2f8c8c57 4d72e5bf ...uF4~xW../..rM
231bc: 216f5a8c 345e3d7c 625e0234 3d3df4f4 .Zo!|=^44.^b..==
231cc: 5062623d 5959da50 54545459 4fcdcdcd =bbPP.YYYTTT...O
231dc: cf4f4f4f 1f1f364f 7036cf1f cb363648 OOO.O6....6pH66.
231ec: cb36cbcb 36cb6969 48483636 70707048 ..6.ii.666HHHppp
231fc: 00007048 70000000 70707070 cf361f1f Hp.....ppppp..6.
2320c: 0c6d0c0c cd5454cd 544e4e54 77777712 ..m..TT.TNNT.www
2321c: 771277c8 3b545974 df5f54a9 a1d975df .w.wtYT;.T_..u..
2322c: 29a1a1a1 a1a12929 2929a1a1 d9a1a129 ...)))....)))...
2323c: b2dddf58 a5a5a523 a5080808 a1ddb259 X...#.......Y...
2324c: a523a4d9 a5a5a5a5 02a5a9a5 54a523b2 ..#..........#.T
2325c: 23a5a508 08b2b7b2 b7b723a5 08ddf7dd ...#.....#......
2326c: 908c3273 72bfbfbf 20e132e5 465e80d7 s2.....r.2. ..^F
2327c: f4625fb7 3d3d62c6 50626262 c950da50 ._b..b==bbbPP.P.
2328c: 54545454 cfcdcdcd cf4f4f4f 1f364fcf TTTT....OOO..O6.
2329c: 701f1f1f 36363670 363636cb cbcbcbcb ...pp666.666....
232ac: 48363636 48704848 7070fafd 00000000 666HHHpH..pp....
232bc: 70707000 4f1f1f1f cdcd0c0c 4e5454cd .ppp...O.....TTN
232cc: 5454cd54 2b2b7454 74127777 12741277 T.TTTt++ww.tw.t.
232dc: 75df46a9 dda1a1d9 02dda1dd 02020202 .F.u............
232ec: a402b702 a12929a4 d90aa1a1 a1d9d9d9 .....)).........
232fc: dddddda1 a1a1a1a1 a5a52302 a5a5a5a5 .........#......
2330c: 02a9a5a5 a5a52302 a5540823 b259b2a5 .....#..#.T...Y.
2331c: 23230859 daddb7b7 908c2274 bfbfab0b Y.##....t"......
2332c: e5e6ae2f 23027640 f4f43002 62626262 /...@v.#.0..bbbb
2333c: 50b95062 dff75050 545454a1 4fcdcdcd bP.PPP...TTT...O
2334c: 4f4f4f4f 3636364f 1f1f1f1f 36cb1f70 OOOOO666....p..6
2335c: 36363636 36cbcb36 36cbcb36 48484848 66666..66..6HHHH
2336c: 0063fafd 00000070 70700000 1f1f1f70 ..c.p.....ppp...
2337c: cdcdcf4f 5454cdcd 3b545454 2b12543b O.....TTTTT;;T.+
2338c: 74c8b3b3 74121277 7575a174 a1a1a15f ...tw..tt.uu_...
2339c: 23b202dd 080808a5 a5a50808 b7b723a5 ...#.........#..
233ac: a402b7b7 a1a1dda4 a1a1a1a1 b7b7a429 ............)...
233bc: a5a5a523 a5a5a5a5 021fa5a5 a52323a4 #............##.
233cc: a50823a5 b223a5a5 a9b2a423 b7b72323 .#....#.#...##..
233dc: 9081d3a4 bfbbae9b e6aeaebf 0223b274 ............t.#.
233ec: 62f46280 b9505062 6262b9b9 a175f750 .b.bbPP...bbP.u.
233fc: 543bb2dd 3bcdcdcd 364f4f4f 36363636 ..;T...;OOO66666
2340c: 1f1f1f36 36367070 69364848 36363669 6...pp66HH6ii666
2341c: cbcb3636 48484836 fdfa0715 70707000 66..6HHH.....ppp
2342c: 70000070 1f1f7070 cdcdcfa9 54cd4ee9 p..ppp.......N.T
2343c: cd545454 123b3b3b b3d1c877 1274c879 TTT.;;;.w...y.t.
2344c: 5f75d946 a15fdda1 0808a5b2 08080808 F.u_.._.........
2345c: a5080808 a5a5a5a5 232323a5 b7b72323 .........#####..
2346c: 23b7b7b7 a5a5a523 a5a5a5a5 a5a5a5a5 ...##...........
2347c: b2a9a5a5 2323b2a1 0823a5a5 a5a5a5a5 ......##..#.....
2348c: a123b2b2 23230868 ed63a5b7 bbbf9797 ..#.h.##..c.....
2349c: 72bfbfbf 305f6832 b97c6262 f7f7b9b9 ...r2h_0bb|.....
234ac: b950b9f7 02dd5f80 3b23b2b2 cdcd3b3b ..P.._....#;;;..
234bc: 4f4f4f4f 36363636 1f701f36 4870701f OOOO66666.p..ppH
234cc: 48483648 36483636 cbcb3636 cbcbcbcb H6HH66H666......
234dc: fd630715 70700015 00007000 1f707070 ..c...pp.p..ppp.
234ec: 4fcfa91f cdcde9cd 54544e54 54545454 ...O....TNTTTTTT
234fc: 2b771e54 771379b3 a15f7546 dda1dda1 T.w+.y.wFu_.....
2350c: 08080823 08080808 08080808 08080808 #...............
2351c: 08080808 a5a5a508 a5a5a5a5 a5a5a5a5 ................
2352c: a5a5a5a5 a5a5a5a5 02a9a5a5 232302d9 ..............##
2353c: 59a508a5 a5a5a5a9 b2b223a5 a5a1a123 ...Y.....#..#...
2354c: 733b23a5 44979773 78bfbf44 f4f79090 .#;ss..DD..x....
2355c: f7b9b962 daf7f7f7 75f7dada b2b234c9 b..........u.4..
2356c: a5b2b2b2 3b3b3b08 4f4f4f4f 3636364f .....;;;OOOOO666
2357c: 701f3636 70483670 48487070 48484848 66.pp6HpppHHHHHH
2358c: cbcbcb36 1e0ccbcb 4a63faec 00000048 6.........cJH...
2359c: 70000070 70707000 4f4f4fcf cde94e4f p..p.ppp.OOOON..
235ac: 4e4e5454 54545454 12125454 2b2bbb77 TTNNTTTTTT..w.++
235bc: a1d97546 a1a1a1a1 0808a5b2 08a9a908 Fu..............
235cc: 0808a908 08080808 08080808 a508a508 ................
235dc: a5a5a5a5 a5a5a5a5 a5a5a5a5 a5a5a5a5 ................
235ec: dd08a9a5 2323a4df 23a5a523 a5a508b2 ......###..#....
235fc: b7a5a5a5 a1b7b702 2da502d9 891c9722 ...........-"...
2360c: 7844441e f772ed44 f7f7f7b9 dadab9f7 .DDxD.r.........
2361c: a4a1d9df 59686868 23235959 3b3b3b08 ....hhhYYY##.;;;
2362c: 4f4f4f3b 36363636 70363636 70367070 ;OOO6666666ppp6p
2363c: 70707070 48484870 69cb3648 3e0c6969 pppppHHHH6.iii.>
2364c: 4a6391ab 00000048 00000000 70700000 ..cJH.........pp
2365c: cf4fcfcf cd4ecd4f 545454cd cd54544e ..O.O.N..TTTNTT.
2366c: 4e54543b 12771212 46a1df68 cd545459 ;TTN..w.h..FYTT.
2367c: 232354cd a9a9a9a5 a9a9a9a9 080808a9 .T##............
2368c: 08080808 08080808 a5a5a508 a5a5a5a5 ................
2369c: a5a5a5a5 08a5a5a5 d9b2a9a9 2323a4df ..............##
236ac: a5a52323 a5a90223 a5a5a5a5 b202b7a5 ##..#...........
236bc: a4d9ddb7 89897391 4444e978 44ed4444 .....s..x.DDDD.D
236cc: f7f7b975 5f75dff7 b702a4a1 59b2b2b7 u.....u_.......Y
236dc: 54a55459 3b3ba93b 4f4fcdcd 1f4f3636 YT.T;.;;..OO66O.
236ec: 1f363636 701f1f70 48707070 70707070 666.p..ppppHpppp
236fc: cb364848 79690c69 ec89aef6 00000048 HH6.i.iy....H...
2370c: 00000000 70000000 cd1fcd1f 4ecdcdcd .......p.......N
2371c: 5454cdcd 54545454 54543b54 12124e54 ..TTTTTTT;TTTN..
2372c: a968d959 1f1f1f1f 701f1f1f a9a5a5a9 Y.h........p....
2373c: a9a9a9a9 a9a9a9a9 0808a908 08080808 ................
2374c: a5080808 a5a5a5a5 a9a908a5 08a9a9a9 ................
2375c: dfd90254 2323a4d9 a5a52323 08a423a5 T.....####...#..
2376c: a5a5a508 b7a5a5a5 02b7b2b2 89971c59 ............Y...
2377c: 6de96d89 2278d344 dd02dd74 a1a1a1a1 .m.mD.x"t.......
2378c: a4a4dda1 b2020202 54a55459 3ba90854 ........YT.TT..;
2379c: 4f3bcd3b 36361f4f 3636361f 361f1f70 ;.;OO.66.666p..6
237ac: 70707036 70707070 36cb3670 770c69cb 6pppppppp6.6.i.w
237bc: ec91338b 00000048 00007000 70000000 .3..H....p.....p
237cc: 364fcf70 4e4fcdcd 54cd3b38 544e4e54 p.O6..ON8;.TTNNT
237dc: 54545454 12545454 1f3bdd54 1f1f1f1f TTTTTTT.T.;.....
237ec: 1f1f1f1f 0870701f a9a9a9a5 a9a9a9a9 .....pp.........
237fc: a9a9a9a9 08080808 08080808 08a50808 ................
2380c: b2a5a9a9 d9a1a1dd d95858d9 2323a4a1 .........XX...##
2381c: a5232323 a4a5a5a5 a5a5a959 a5a5a5a5 ###.....Y.......
2382c: b2b223a5 89970cb7 e9e97889 89e9d36d .#.......x..m...
2383c: dfda021c 2323b2a1 23b7b7b7 54232323 ......##...####T
2384c: 3b545454 3ba93b3b 4f3b3b3b 1f1f1f4f TTT;;;.;;;;OO...
2385c: 361f1f36 3670701f 48707036 70707070 6..6.pp66ppHpppp
2386c: cb707048 6d69cf69 6944f606 00007036 Hpp.i.im..Di6p..
2387c: 00700000 00000000 36cd7000 cdcdcd1f ..p......p.6....
2388c: 4ecd4ee9 545454cd 54545454 54545454 .N.N.TTTTTTTTTTT
2389c: 1f3b5954 1f1f1fa9 1f1f1f1f 1f1f1f1f TY;.............
238ac: a9a5a970 a9a9a9a9 a9a9a9a9 0808a9a9 p...............
238bc: 08080808 a9080808 d9a10208 58585858 ............XXXX
238cc: d9d9dfdf 2323a4a1 a5232323 a508a5a5 ......#####.....
238dc: a51f0202 a5a5a5a5 23a5a5a5 97fae546 ...........#F...
238ec: e9788989 e96de9e9 2308911c a1d9a102 ..x...m....#....
238fc: a523b2a4 080808a5 cd54543b a93b3b3b ..#.....;TT.;;;.
2390c: 1f4f3b3b 4fa91f1f 1f70704f 70707070 ;;O....OOpp.pppp
2391c: 70707036 70707070 70363670 d30c6936 6pppppppp66p6i..
2392c: 69798b67 007048cb 00000000 00000000 g.yi.Hp.........
2393c: 4f700000 cdcd4f1f 543bcd1e 545438e9 ..pO.O....;T.8TT
2394c: 5454544e 54545454 a9545459 1f1f1fa9 NTTTTTTTYTT.....
2395c: 1f1f1f1f 1f1f1f1f a9701f1f a9a9a9a5 ..........p.....
2396c: a9a9a9a9 a9a9a9a9 0808a9a9 08a90808 ................
2397c: d9d9d9dd d9dfdfdf a1d9d9d9 23b702a1 ...............#
2398c: a5232323 08a5a5a5 a9a10223 a5a5a508 ###.....#.......
2399c: a5a5a5a5 6389e644 2d898989 6de90c0c ....D..c...-...m
239ac: 0a1effe9 b7b2dda1 020202b2 02a4a402 ................
239bc: 3ba559b2 3ba9a908 543ba9a9 d9a1ddb2 .Y.;...;..;T....
239cc: 4f298888 70701f70 48707070 70707070 ..)Op.pppppHpppp
239dc: cb487070 78693636 0c3e06e5 7048cb69 ppH.66ix..>.i.Hp
...
239f4: 70700000 4f4f7070 cdcd1e4e bbbb4e4e ..ppppOON...NN..
23a04: 54544e54 54545454 08545454 1f1f1fa9 TNTTTTTTTTT.....
23a14: 1f1f1f1f 1f1f1f1f 1f1f1f1f a908a91f ................
23a24: a9a9a9a9 a9a9a9a9 a9a9a9a9 591f08a9 ...............Y
23a34: d9a1a1d9 dfdfdfdf a1d9d9d9 23b70229 ............)..#
23a44: a5232323 a5a5a5a5 a1b22308 08a5a9b2 ###......#......
23a54: 54a5a5a5 69bfe651 918991ff 2d0c0c0c ...TQ..i.......-
23a64: 741c6d2d 58585888 0a0a8858 b202dda1 -m.t.XXXX.......
23a74: 88d9ddb2 d90ad9d9 88d9d9d9 88888888 ................
23a84: 88888888 701f7029 70707070 70707070 ....)p.ppppppppp
23a94: 70487070 892d6936 0ce2c889 4848cb69 ppHp6i-.....i.HH
23aa4: 00000070 00000000 70000000 36707070 p..........pppp6
23ab4: 3b381ecd 381eab1e 54543864 54545454 ..8;...8d8TTTTTT
23ac4: cd545454 1f1fa9a9 1f1f1f1f 1f1f1f1f TTT.............
23ad4: 1f1f1f1f 081f1f1f a9a91f08 a9a9a9a9 ................
23ae4: a9a9a9a9 591f08a9 dfd9d958 d9d9df58 .......YX...X...
23af4: a1a1d9d9 232302a4 a5232323 a5a5a5a5 ......#####.....
23b04: b22308a5 08a9a1dd 44a508a5 08388ced ..#........D..8.
23b14: 89911cca 0c0c0c91 63d30c2d d9a12923 ........-..c#)..
23b24: 888888d9 58585858 59b229d9 d9d9a102 ....XXXX.).Y....
23b34: 880a0ad9 0a0a0ad9 0a0a0a0a 704f0a0a ..............Op
23b44: 70707070 70707070 48707070 89cacb48 pppppppppppHH...
23b54: 4e0d2d91 4836cbcb 00007070 00000000 .-.N..6Hpp......
23b64: 00000000 36707000 cd38cd1f bb1e7977 .....pp6..8.wy..
23b74: 54abbb1e 54545454 3b545454 a9a9083b ...TTTTTTTT;;...
23b84: 1f1f1f1f a9a91f1f 1f1f1f1f 1f1f1f1f ................
23b94: a9a90800 a9a9a9a9 a9a9a9a9 08a9a9a9 ................
23ba4: 0854dd88 d9465908 a1a1a1d9 b723b7a4 ..T..YF.......#.
23bb4: a5232323 a5a5a5a5 2308a5a5 b2d902b2 ###........#....
23bc4: 5154081f a508bfed 918963a9 0ccdca63 ..TQ.....c..c...
23bd4: 910c2d0c a4a4b791 0a0aa1a1 dfd9d90a .-..............
23be4: 5858dfdf 6859ddd9 a1a1a129 0a0a0a0a ..XX..Yh).......
23bf4: a1a10a0a cfdda1a1 70703670 70707070 ........p6pppppp
23c04: 70707070 6391ec48 cdcd69ca 4836cbcb ppppH..c.i....6H
23c14: 00007048 00000000 00000000 70700000 Hp............pp
23c24: 4f4fcd4f 54c80e4e 641e1e1e 54545438 O.OON..T...d8TTT
23c34: 54545454 a9083b3b 1f1f1fa9 1f1f1f1f TTTT;;..........
23c44: 1f1fa9a9 1f1f1f1f 08a9cd1f a9a9a9a9 ................
23c54: a9a9a9a9 1fa9a9a9 1f00a502 1f1f1f1f ................
23c64: a1d9dda9 2323b702 a5a5a523 a5a5a5a5 ......###.......
23c74: 08a5a5a5 a1b2b223 e6d3540a 08084e90 ....#....T...N..
23c84: 91ffcb08 690c6391 0c2d0c0c a4b72d63 .....c.i..-.c-..
23c94: a1a12929 a1a1a1a1 88d9d9d9 d958dfd9 ))............X.
23ca4: a42959b2 a1a129a4 dda1a1a1 6846dddd .Y)..)........Fh
23cb4: 7036703b 70707070 70707070 07910769 ;p6pppppppppi...
23cc4: 36484815 48483648 00707048 00000000 .HH6H6HHHpp.....
23cd4: 00000000 70007000 cdcd7070 12dc33cd .....p.ppp...3..
23ce4: 4e4e4e12 5454bbab 54545454 08543b54 .NNN..TTTTTTT;T.
23cf4: 1f1fa9a9 1f1f1f1f 1fa91fa9 1f1f1f1f ................
23d04: 12131e1f a9a9a9a9 a9a9a9a9 1fa9a9a9 ................
23d14: a9000808 a9a9a9a9 021f1fa9 2323b2a1 ..............##
23d24: a5a5a523 a5a5a5a5 08a5a5a5 b2b22308 #............#..
23d34: e69380a4 08080878 1c4a0808 69916391 ....x.....J..c.i
23d44: 0c0c0c69 a5cf632d a40223a5 29a12929 i...-c...#..)).)
23d54: a1a1a1a1 d9df88d9 cd0258df 54545968 .........X..hYTT
23d64: 59595454 59595959 1f70cd54 70707070 TTYYYYYYT.p.pppp
23d74: cb707070 ec91fa4a 48707048 48484848 ppp.J...HppHHHHH
23d84: 70704848 00000000 00000000 00000000 HHpp............
23d94: 36367000 77791e4f 54e94e77 54ab1e54 .p66O.ywwN.TT..T
23da4: 54545454 54545454 1fa9a908 1f1f1f1f TTTTTTTT........
23db4: a9a9a91f 1f1f1f1f 67331e1f a9084f79 ..........3gyO..
23dc4: 1fa9a9a9 a9a9a9a9 1f1fa91f 1f1f1f1f ................
23dd4: a9a9a91f 23dddd1f a5a52323 08a508a5 .......###......
23de4: a5a5a5a5 b2230808 ceea5bb2 08a9a95e ......#..[..^...
23df4: 63a90808 ca639163 0c0c6969 a963ca0c ...cc.c.ii....c.
23e04: a5a508a5 a4a4b2a5 dda1dddd dfd9a1dd ................
23e14: dfd9d9df b212cd68 595959b2 cdcd5454 ....h....YYYTT..
23e24: 70cfcdcd 70707070 4acb7070 cbec0707 ...ppppppp.J....
23e34: 70707048 48484870 48484848 00000070 HppppHHHHHHHp...
23e44: 00000000 001f0000 4f700000 541ecd4f ..........pOO..T
23e54: 4e4e774e 3838544e 54545454 54595454 NwNNNT88TTTTTTYT
23e64: a9a90854 1f1f1f1f a9a91f1f 1f1f1fa9 T...............
23e74: 1379121f a9123113 a9a9a9a9 a9a91f1f ..y..1..........
23e84: 1fa91fa9 1f1f1f1f a91f1f1f a1a91fa9 ................
23e94: a5a5a5b2 08080808 08080808 23080808 ...............#
23ea4: 5ba66619 08290aa1 3608a91f 639191ff .f.[..)....6...c
23eb4: 0cec690c fa91ec2d a5a5a508 a5080808 .i..-...........
23ec4: 020202b2 4646dddd d9dfd9a1 cf54d9d9 ......FF......T.
23ed4: 595454cd 59595959 cd545959 70707070 .TTYYYYYYYT.pppp
23ee4: ca154870 70cb4a07 70700000 48487070 pH...J.p..ppppHH
23ef4: 48484848 00007070 00000000 70000000 HHHHpp.........p
23f04: 70000070 4ecf3b36 381e543b 1e544e4e p..p6;.N;T.8NNT.
23f14: 54545454 59545454 08a53b59 a91f1fa9 TTTTTTTYY;......
23f24: a9a91f1f 1fa9a9a9 0d34121f 79131379 ..........4.y..y
23f34: a9a908a9 1f1f1fa9 a91fa9a9 1f1f1f1f ................
23f44: 1f1f1f1f 1fa91f1f a5a5a454 08080808 ........T.......
23f54: 08080808 cd08a508 7453a6f1 0aa12902 ..........St.)..
23f64: 1f1f23a1 6391ff4a ec696991 63ec2d0c .#..J..c.ii..-.c
23f74: a5a508ca 3ba5a5a5 b2543b3b dd466802 .......;;;T..hF.
23f84: d9dd5968 a1d9d9df cdcfcfcf cdcdcdcd hY..............
23f94: 545454cd 7070704f 07ca1548 7070154a .TTTOpppH...J.pp
23fa4: 70700070 70707070 48484848 00707070 p.ppppppHHHHppp.
...
23fc0: 4f1f7000 38cd3b4e 544e5438 544e5454 .p.ON;.88TNTTTNT
23fd0: 54545454 a9595959 1fa9a908 a91f1f1f TTTTYYY.........
23fe0: 1fa9a9a9 686868a9 13790d34 08081279 .....hhh4.y.y...
23ff0: 1fa9a9a9 1f1f1f1f 1f1f1fa9 1f1f1f1f ................
24000: 1f1f1f1f b7b21fa9 080808a5 08080808 ................
24010: 44080808 596466e6 a1a40223 a4290a0a ...D.fdY#.....).
24020: 63fffaa9 69690763 0c0cecec 08086963 ...cc.ii....ci..
24030: 08080808 3b3b3b3b 6868593b 5468dd68 ....;;;;;Yhhh.hT
24040: a1d9d946 cdcb68d9 cdcdcdcd cdcdcd54 F....h......T...
24050: 36704f54 4a07caec 70704815 70007070 TOp6...J.Hpppp.p
24060: 70707070 70704848 70707070 00000000 ppppHHpppppp....
24070: 70000000 0000701f 70707000 cd3b544f ...p.p...pppOT;.
24080: 4e4e3838 4e4e5454 54545459 12595959 88NNTTNNYTTTYYY.
24090: 1f1fa959 a9a91f1f a91f1f1f 68686854 Y...........Thhh
240a0: 76343468 08797979 a9a9a908 1f1f1f1f h44vyyy.........
240b0: 1f1fa91f 1f1f1f1f 1f1f1f1f 3b1fa91f ...............;
240c0: 0808a502 08080808 5154083b 23597294 ........;.TQ.rY#
240d0: 02b223b2 a1a1a1a4 ffec0229 69ec631c .#......)....c.i
240e0: ececec69 a5a963ca 3b3b3b08 3b3b3b3b i....c...;;;;;;;
240f0: 54cdcd3b 46686868 d9745468 cfa1a1a1 ;..ThhhFhTt.....
24100: cdcdcdcf cdcdcdcd 1536cdcd cbec4aca ..........6..J..
24110: 70707070 70707070 70707000 70707070 pppppppp.ppppppp
24120: 70704870 00000070 00000000 001f7000 pHppp........p..
24130: a9700000 1f1f7070 381e38cd 3854544e ..p.pp...8.8NTT8
24140: 5454541e 12595959 3b591212 1f1f1fa9 .TTTYYY...Y;....
24150: 593ba91f 68b26868 34346868 310d0d0d ..;Yhh.hhh44...1
24160: a9a9a912 1f1fa9a9 1f081f1f 1f1f1f1f ................
24170: 1f1f1f1f a9a91f1f 0823021f 3b080808 ..........#....;
24180: e6783b3b a508e9ed 2323b259 a1a102b2 ;;x.....Y.##....
24190: a5292929 699163ec ececec69 1ffa07ec )))..c.ii.......
241a0: 3b3b0808 3b3b3b4f cdcd3b3b 686854cd ..;;O;;;;;...Thh
241b0: cd6868b2 d9a1a168 cfcfcf54 cdcdcdcd .hh.h...T.......
241c0: 36cdcdcd 704815ec 70707070 70707070 ...6..Hppppppppp
241d0: 70707070 70707070 70484870 00000070 pppppppppHHpp...
241e0: 00000000 00707000 00000000 1f70701f .....pp......pp.
241f0: 1e38cd1f 5454381e 5412bb12 59595959 ..8..8TT...TYYYY
24200: 59121259 59595959 0d741259 6868680d Y..YYYYYY.t..hhh
24210: 34346868 0d343434 a9a97931 1fa9a9a9 hh44444.1y......
24220: a91f1f1f 1f1f1fa9 1f1f1f1f a9a91f1f ................
24230: b259364f 08080808 94e1e908 3b083bae O6Y..........;.;
24240: 23b223a5 a4b259a5 29292929 ca697002 .#.#.Y..)))).pi.
24250: ecec6969 4a91ecec 08a94fa9 4f4f3b3b ii.....J.O..;;OO
24260: 3bcf4f4f 54cdcdcd 6868b2b2 a1ddcd54 OO.;...T..hhT...
24270: cfcb46d9 cfcdcfcf cfcdcfcf 70707070 .F..........pppp
24280: 70707070 70364848 70707070 70707070 ppppHH6ppppppppp
24290: 70484870 00007070 00000000 00000000 pHHppp..........
242a0: 00000000 70707070 383b1f1f 544e3838 ....pppp..;888NT
242b0: 12771254 59595959 59681259 b2595959 T.w.YYYYY.hYYYY.
242c0: 683468b2 0dc82bc8 34686868 34343434 .h4h.+..hhh44444
242d0: 3b131340 a9a9a9a9 1f1f1f1f 1f1f081f @..;............
242e0: 1f1f1f1f a91f1f1f 0d1e4f4f 083b3bb2 ........OO...;;.
242f0: 90e6ae08 083b08e9 59a5a53b b723a523 ......;.;..Y#.#.
24300: 2929a4b2 cba92929 ec6969cf 63ececec ..))))...ii....c
24310: a94fa9ec 4f4f4f4f cf4f4f4f cdcdcfcf ..O.OOOOOOO.....
24320: 59b259cd 546868b2 cfa14654 cfcfcfcf .Y.Y.hhTTF......
24330: cdcfcfcf 7070001f 70707070 36363636 ......pppppp6666
24340: 00707048 70700070 70487070 00007070 Hpp.p.ppppHppp..
...
2435c: 701f7000 a91f7070 5454543b 38121254 .p.ppp..;TTTT..8
2436c: 12125959 68126812 34685959 0d0d6868 YY...h.hYYh4hh..
2437c: c8c87468 68340dc8 34343434 e8314034 ht....4h44444@1.
2438c: a9a9a912 1f1f1fa9 1f08701f 1f1f1f1f .........p......
2439c: 4fa9a91f 161e4f4f 0854b245 78e6ed6d ...OOO..E.T.m..x
243ac: 083b3b3b a5a53ba9 a5082359 2902b723 ;;;..;..Y#..#..)
243bc: 1fa5b729 151569cb ecececec a9a936fa )....i.......6..
243cc: 4f4f4fa9 4f4f4f4f cfcfcfcf 54cdcd4f .OOOOOOO....O..T
243dc: 36540259 54484848 cfcfcfcd cfcfcfcf Y.T6HHHT........
243ec: 707070cf 48707070 4e4f3636 0070704f .ppppppH66ONOpp.
243fc: 00000000 70707000 00000000 00000000 .....ppp........
2440c: 00000000 00007070 00000000 3b707070 ....pp......ppp;
2441c: 543ba9a9 59545454 59591259 68686868 ..;TTTTYY.YYhhhh
2442c: 0db2b268 c8683476 6868680d 34c80d0d h...v4h..hhh...4
2443c: 34340234 31403434 a9a9c813 1f1fa91f 4.4444@1........
2444c: a91f1f1f 1f1f1fa9 a9a9a9a9 06774fa9 .............Ow.
2445c: 4e23e8b5 0c51e697 3b3bcd08 a53ba93b ..#N..Q...;;;.;.
2446c: a52323a5 b702b2a5 00000008 15360000 .##...........6.
2447c: ecec1569 4f1ffafa a9a9a9a9 4f4f4f4f i......O....OOOO
2448c: cfcf4f4f cf4fcfcf 483659cd 48cbcb36 OO....O..Y6H6..H
2449c: cfcb4f36 cfcfcfcf 700036cf 36707070 6O.......6.pppp6
244ac: 404f3636 70703640 00000000 70000000 66O@@6pp.......p
244bc: 00000070 00000000 00000000 00000000 p...............
244cc: 70000000 70700070 3b08a9a9 59125454 ...pp.pp...;TT.Y
244dc: 77123812 68746812 b2b26868 3476130d .8.w.hthhh....v4
244ec: b268c876 0d346868 34023434 40343434 v.h.hh4.44.4444@
244fc: 3b797979 1f1f1fa9 701f1f1f a91fa9a9 yyy;.......p....
2450c: 1fa9a9a9 31c8cd1f bf79f687 a9d3edbe .......1..y.....
2451c: 3bcdcd3b 3ba9083b 23a5a5a5 08022308 ;..;;..;...#.#..
...
24534: 70700000 1f15cb70 a9a9a9a9 4fa9a9a9 ..ppp..........O
24544: 4f4f4f4f cfcfcf4f 481f59cf 48483636 OOOOO....Y.H66HH
24554: cf4f3648 4f4fcfcf 7070cf4f 70707070 H6O...OOO.pppppp
24564: 344f4f36 7036129d 00000070 00000000 6OO4..6pp.......
24574: 00000070 70007070 00007070 70700000 p...pp.ppp....pp
24584: 00000000 70007070 4f1f1f70 3838593b ....pp.pp..O;Y88
24594: 12771212 74127477 68686868 340d68b2 ..w.wt.thhhh.h.4
245a4: 68767634 0d68b2b2 3434340d 34343434 4vvh..h..4444444
245b4: af79400d 1f1f08b4 1f1f1f1f 1fa91f1f .@y.............
245c4: 701fa9a9 79311e4f e35b7976 a94fbf5a ...pO.1yvy[.Z.O.
245d4: cdcd3b3b 4f3b3bcd a508a53b 0023b2a5 ;;...;;O;.....#.
...
245ec: 70000000 701fa91f a94f1f4f a9a9a9a9 ...p...pO.O.....
245fc: 4f4f4f4f cb364f4f 481f594f 48483636 OOOOOO6.OY.H66HH
2460c: 363b4848 364fcfcf 0048cb36 70707070 HH;6..O66.H.pppp
2461c: 124fcf36 364fe29d 00000070 70000000 6.O...O6p......p
2462c: 00000000 48707000 70707048 00000070 .....ppHHpppp...
...
24644: 1f1f7070 383854a9 77123838 59747412 pp...T8888.w.ttY
24654: 68681268 59b26868 3468b2b2 68686834 h.hhhh.Y..h44hhh
24664: 340dc8c8 34020234 fc37f279 a9543765 ...44..4y.7.e7T.
24674: 1f1fa91f a91f1fa9 4f1f1fa9 7913791e ...........O.y.y
24684: 65fbd176 3b081e0f cd3b4fa9 4f4fcdcd v..e...;.O;...OO
24694: a53b3b4f 00a559a5 00000000 00000000 O;;..Y..........
246a4: 00000000 4f1f1f1f 1f361f1f 3636361f .......O..6..666
246b4: 4f4f3636 364f3636 48a95436 48484836 66OO66O66T.H6HHH
246c4: 1fcf4848 36364f36 0036cb36 70707070 HH..6O666.6.pppp
246d4: 4ecf3670 36129d3e 70007036 00000000 p6.N>..66p.p....
246e4: 70000070 48487070 48484848 00004848 p..pppHHHHHHHH..
...
246fc: 1f707000 7454a91f 12383874 74741274 .pp...Ttt88.t.tt
2470c: 68b25959 68686868 b2686868 686868b2 YY.hhhhhhhh..hhh
2471c: c8790d68 2c2b3434 fbfc2ee3 c831795b h.y.44+,....[y1.
2472c: a91f1fa9 a91f1fa9 1e4f1f1f 79314513 ..........O..E1y
2473c: e3657167 4f740dd1 3b4fa908 4fcfcdcd gqe...tO..O;...O
2474c: 3b4f4f4f 00a9233b 00000000 00000000 OOO;;#..........
2475c: 00000000 701f1f70 3670a91f 361f1f1f ....p..p..p6...6
2476c: 36363636 364f4f36 70083b36 48484848 66666OO66;.pHHHH
2477c: 1f364848 36364f36 00363636 70707070 HH6.6O66666.pppp
2478c: 3b4f361f cde29d40 00004836 70007000 .6O;@...6H...p.p
2479c: 70707000 48484848 15484848 00fd1515 .pppHHHHHHH.....
247ac: 00007070 70000000 70707070 54a9361f pp.....ppppp.6.T
247bc: 74747412 68121212 68595974 68686868 .ttt...htYYhhhhh
247cc: 68686868 68b26868 0d343468 fce32c79 hhhhhh.hh44.y,..
247dc: 76d153e3 79764040 1fa97745 1f1f1f1f .S.v@@vyEw......
247ec: 13c84ea9 133113e8 f2fcfcaf 0d0d0dc8 .N....1.........
247fc: a9a9a93b cfcdcd4f a9a94f4f 00a9543b ;...O...OO..;T..
...
24814: 48151500 1f007070 1fa9701f 36361f1f ...Hpp...p....66
24824: 36361f1f 36363636 703b3b36 48484848 ..6666666;;pHHHH
24834: a9364848 36364f1f 70363636 70707000 HH6..O66666p.ppp
24844: 4f363670 123e3e12 00703636 00000000 p66O.>>.66p.....
24854: 48487070 15484848 fd151515 07074a4a ppHHHHH.....JJ..
...
2486c: 1f700000 4f361f1f 7412543b 12681274 ..p...6O;T.tt.h.
2487c: 5959340d 740d6868 68687434 b2686868 .4YYhh.t4thhhhh.
2488c: c8346868 71fcfc53 34340dd1 76767676 hh4.S..q..44vvvv
2489c: 31453131 4e541277 e8e86777 af313113 11E1w.TNwg...11.
248ac: 79716510 0d0d0d0d a9a94e0d cfcf4fa9 .eqy.....N...O..
248bc: a94f4fcf 001fa5a9 00000000 00000000 .OO.............
248cc: cb150000 70707048 1f1f7000 1f1f70a9 ....Hppp.p...p..
248dc: 1f36361f 36363636 703b4f36 48484870 .66.66666O;ppHHH
248ec: 1f364848 36363648 70483636 70707070 HH6.H66666Hppppp
248fc: 36367070 343e403b 7048364f 00000000 pp66;@>4O6Hp....
2490c: 48484870 15151548 07074afd 4a4a0707 pHHHH....J....JJ
2491c: 000000fd 00000000 70700000 361f1f1f ..........pp...6
2492c: 12543b4f 68127474 b268130d 0d68b2b2 O;T.tt.h..h...h.
2493c: 34346874 68686868 712b6868 79b46ffc th44hhhhhh+q.o.y
2494c: 340d0d0d 76797634 31313176 13e8e813 ...44vyvv111....
2495c: 1313e845 37333113 76d13765 0d0dc876 E....137e7.vv...
2496c: 4f74770d cf4fa9a9 a94fcfcf 007008a9 .wtO..O...O...p.
...
24984: 15480000 70707015 70007070 1f70a91f ..H..ppppp.p..p.
24994: 361f1f1f 36363636 703b3636 70007070 ...6666666;ppp.p
249a4: 36484848 48484870 00704836 70707070 HHH6pHHH6Hp.pppp
249b4: 36707070 e23e1236 704836cd 48707070 ppp66.>..6HppppH
249c4: 48484848 4afd1515 4a070707 1515fd4a HHHH...J...JJ...
249d4: 00004848 00000000 00000000 1f363670 HH..........p66.
249e4: 543b4f36 12747459 68c80d74 68b25959 6O;TYtt.t..hYY.h
249f4: 68686868 68686834 fc53c8b2 68345b10 hhhh4hhh..S..[4h
24a04: 0dc8c834 79763434 31313176 13131331 4...44vyv1111...
24a14: 13131313 650f1331 76795b10 c80dc876 ....1..e.[yvv...
24a24: 7474770d 4f3b1f4e 4f4fcfcf 0070a93b .wttN.;O..OO;.p.
...
24a3c: 15000000 700015cb 70707070 a91f0070 .......pppppp...
24a4c: 36363670 36363636 704f3648 70701f70 p6666666H6Opp.pp
24a5c: 48487070 36364870 70707048 70707070 ppHHpH66Hppppppp
24a6c: 36707070 e240cf36 483636cd 48484870 ppp66.@..66HpHHH
24a7c: 15484848 07074afd 15fd4a4a 48481515 HHH..J..JJ....HH
24a8c: 00484848 00000000 00000000 1f700000 HHH...........p.
24a9c: cd363670 59595454 74127459 68685912 p66.TTYYYt.t.Yhh
24aac: 68686868 b2683468 711053c8 34767664 hhhhh4h..S.qdvv4
24abc: 0d0d3468 0d34340d 13137676 13133131 h4...44.vv..11..
24acc: 31131313 eafcaf13 797979b1 c8c8c876 ...1.....yyyv...
24adc: 74770dc8 1fcf7474 3bcdcd3b 00001f3b ..wttt..;..;;...
...
24af8: 00481515 70707070 00707070 36701f1f ..H.ppppppp...p6
24b08: 48363636 70a94f36 70701f70 70707070 666H6O.pp.pppppp
24b18: 48707070 70007070 70707070 70707070 pppHpp.ppppppppp
24b28: 34cd3636 483636cd 48484848 4afd1548 66.4.66HHHHHH..J
24b38: fd4a074a 48151515 48484848 00707048 J.J....HHHHHHpp.
24b48: 00000000 70000000 70000000 4f367070 .......p...ppp6O
24b58: 5454cdcd 12125959 68685974 0d686868 ..TTYY..tYhhhhh.
24b68: 77b26868 2b241053 0d346868 34683434 hh.wS.$+hh4.44h4
24b78: 34343434 31404034 31313113 13131313 44444@@1.111....
24b88: 0f65e35b 79797967 c8c8c82b 777777c8 [.e.gyyy+....www
24b98: 74383874 4f4f7070 0000701f 00000000 t88tppOO.p......
...
24bb0: 48151548 70707000 70707070 00707070 H..H.pppppppppp.
24bc0: 361f7070 701fa936 70707070 70707070 pp.66..ppppppppp
24bd0: 70707070 70707070 70707070 70707070 pppppppppppppppp
24be0: cf364870 48cbcbcf 15484848 074afd15 pH6....HHHH...J.
24bf0: 1515fd4a 48484815 70484848 00000070 J....HHHHHHpp...
...
24c08: 70000070 4f487070 121254cf 12125959 p..pppHO.T..YY..
24c18: 68595974 68343434 f1746868 b2c85310 tYYh444hhht..S..
24c28: 68686868 34343468 34686868 400d3434 hhhhh444hhh444.@
24c38: 31311331 33313131 33e365fb 76797979 1.111113.e.3yyyv
24c48: c8c8c876 797977c8 38387477 00000038 v....wyywt888...
...
24c68: 15154800 70700000 70707070 70707070 .H....pppppppppp
24c78: 70000070 70707070 70707070 70707070 p..ppppppppppppp
24c88: 70707070 70707070 70707070 70707070 pppppppppppppppp
24c98: 36487070 cbcbcb36 fd151515 fd4a074a ppH66.......J.J.
24ca8: 48481515 48484848 00707048 00000000 ..HHHHHHHpp.....
...
24cc0: 70000000 36707070 0d12cdcd 59595968 ...pppp6....hYYY
24cd0: 59595959 34686868 66e56868 34682bbe YYYYhhh4hh.f.+h4
24ce0: 68686868 34686868 34686834 34343434 hhhhhhh44hh44444
24cf0: 31317634 b1133131 79f210fc 76767979 4v1111.....yyyvv
24d00: c8c8c8c8 45c877c8 381e74c8 00006938 .....w.E.t.88i..
24d10: 00707070 00000000 00000000 00000000 ppp.............
24d20: 15150000 70000015 70707070 70707070 .......ppppppppp
24d30: 70707070 70707070 70707070 70707070 pppppppppppppppp
24d40: 70707070 70707070 70707070 70707070 pppppppppppppppp
24d50: 48487070 cbcbcbcb 074aec15 15fd4a07 ppHH......J..J..
24d60: 48484848 00704848 00000000 00000000 HHHHHHp.........
...
24d7c: 70707070 4554cd4f 59595976 59595959 ppppO.TEvYYYYYYY
24d8c: 68685959 66be2b68 0d6868e5 68683434 YYhhh+.f.hh.44hh
24d9c: 68686868 34686868 34460d34 76763434 hhhhhhh44.F444vv
24dac: e3f27940 7967b1fc c8767679 c8c8c8c8 @y....gyyvv.....
24dbc: 77777777 381e1e77 00483838 70707000 wwwww..888H..ppp
...
24dd8: 15700000 00004815 70707070 70707070 ..p..H..pppppppp
24de8: 70707070 701f7070 70707070 70707070 pppppp.ppppppppp
24df8: 70707070 70707070 70707070 70707070 pppppppppppppppp
24e08: 48484848 15cb4848 ca91074a 4815694a HHHHHH..J...Ji.H
24e18: 70484848 00000000 00000000 00000000 HHHp............
...
24e34: 70700000 ab4f3636 59126887 59595959 ..pp66O..h.YYYYY
24e44: 68685959 dba6f174 6868b274 68340d0d YYhht...t.hh..4h
24e54: 68686868 34686868 0d0d3434 40343446 hhhhhhh444..F44@
24e64: e3372c79 764067b1 c8c8c876 77c8c8c8 y,7..g@vv......w
24e74: 77777777 1e1e1e1e 000c3838 70000000 wwww....88.....p
...
24e90: 48000000 00701515 70707000 70707070 ...H..p..ppppppp
24ea0: 70707070 70707070 70707070 70707070 pppppppppppppppp
24eb0: 70707070 70707070 70707070 70707070 pppppppppppppppp
24ec0: 48484848 ca15cbcb eccafa91 4815e969 HHHH........i..H
24ed0: 00004848 00000000 00000000 00000000 HH..............
...
24ee8: 70000000 70007070 0c363636 121277dc ...ppp.p666..w..
24ef8: 59595959 68595959 646666d1 68686868 YYYYYYYh.ffdhhhh
24f08: 68680d68 68686868 34686868 46346834 h.hhhhhhhhh44h4F
24f18: 2b34460d f27171f1 76767679 c8c8c876 .F4+.qq.yvvvv...
24f28: 7777c8c8 77777777 381e1e1e cb384e38 ..wwwwww...88N8.
24f38: 00000000 00000070 00000000 00000000 ....p...........
24f48: 00000000 00151515 70700000 70707070 ..........pppppp
24f58: 70707070 70707070 70707070 70707070 pppppppppppppppp
24f68: 70707070 70707070 4f367070 48707070 pppppppppp6OpppH
24f78: 48cb4848 6307fd48 15154a91 48e9e9cb HH.HH..c.J.....H
24f88: 00007048 00000000 00000000 00000000 Hp..............
...
24fa0: 00007000 70707070 36cfcf1f 4e6979ab .p..pppp...6.yiN
24fb0: 54545454 12595959 74f16553 68686868 TTTTYYY.Se.thhhh
24fc0: 68686868 68686868 34686868 6868340d hhhhhhhhhhh4.4hh
24fd0: b02b4634 0d67f153 4076400d c80d0d0d 4F+.S.g..@v@....
24fe0: 7777c8c8 1e1e7777 381e1e1e e94ee938 ..wwww.....88.N.
24ff0: 00000048 00007000 00000000 00000000 H....p..........
25000: 00000000 1548fd00 70000000 70707070 ......H....ppppp
25010: 70707070 70707070 70707070 70707070 pppppppppppppppp
25020: 70707070 70707070 594f7070 4848703b ppppppppppOY;pHH
25030: 48cbcb48 9163faec 15cb154a 691e69cb H..H..c.J....i.i
25040: 00007048 00000000 00000000 00000000 Hp..............
...
25058: 00707000 70700000 4f367070 cf691e0c .pp...pppp6O..i.
25068: 54cdcdcf bb545954 682b5a66 68686868 ...TTYT.fZ+hhhhh
25078: 68686834 34686868 68686834 340d0d68 4hhhhhh44hhhh..4
25088: b0640d68 34462bb0 0d0d0d34 0d0d0d0d h.d..+F44.......
25098: 7777c8c8 1e1e1e77 381e1e1e 4ee9e9e9 ..www......8...N
250a8: 0000000c 00700000 00000000 00000000 ......p.........
250b8: 00000000 15fd4800 70000048 70707070 .....H..H..ppppp
250c8: 70707070 70707070 70707070 70707070 pppppppppppppppp
250d8: 70707070 70707070 59367070 48483659 pppppppppp6YY6HH
250e8: ec4848cb 4a631c63 cbcb1515 124ecbcb .HH.c.cJ......N.
250f8: 00007036 00000000 00000000 00000000 6p..............
...
25110: 70700000 70707070 36367070 cfcfcf36 ..pppppppp666...
25120: 59cdcfcf 2f545459 59597294 68686812 ...YYTT/.rYY.hhh
25130: 68346868 34686868 6874460d 0d466868 hh4hhhh4.FthhhF.
25140: 2b2bc80d 46464646 0d343446 0d0d0d0d ..++FFFFF44.....
25150: 7777c80d 1e1e7777 e91e3838 4ee9e9e9 ..wwww..88.....N
25160: 0000cb4e 70000000 00000000 00000000 N......p........
25170: 00000000 15150000 00007015 70707070 .........p..pppp
25180: 70707070 70707070 70707070 70707070 pppppppppppppppp
25190: 48707070 70707048 cf487070 cb483654 pppHHpppppH.T6H.
251a0: 631548cb 154a6397 484815cb 12693648 .H.c.cJ...HHH6i.
251b0: 0070703b 00000000 00000000 00000000 ;pp.............
...
251c8: 70700000 70707070 4f707070 3636364f ..pppppppppOO666
251d8: 544fcf4f 0b545968 59a5bf94 74681259 O.OThYT....YY.ht
251e8: 34686868 6868400d 74460d68 74686868 hhh4.@hhh.Fthhht
251f8: 74460d0d 46746868 46746874 0d0d3434 ..FthhtFthtF44..
25208: c80dc80d 1e1e7779 e9e9381e 4ee9e9e9 ....yw...8.....N
25218: 00480c0c 00000000 00000070 00000000 ..H.....p.......
25228: 00000000 fd000000 00001548 70707000 ........H....ppp
25238: 70707070 70707070 70707070 70707070 pppppppppppppppp
25248: 361f7070 70363636 36707070 15cb36cf pp.6666pppp6.6..
25258: 73071548 48154a1c 48484848 4e484848 H..s.J.HHHHHHHHN
25268: 00703612 00000000 00000000 00000000 .6p.............
...
25280: 70700000 70707070 70707070 36364f4f ..ppppppppppOO66
25290: cfcf3636 24387454 54541e94 12595959 66..Tt8$..TTYYY.
252a0: 68687474 6831f640 68686868 74686874 tthh@.1hhhhhthht
252b0: 68747474 68687468 74686868 0d464646 ttthhthhhhhtFFF.
252c0: 79c80d0d 387731f6 e9e9e938 0c0ce9e9 ...y.1w88.......
252d0: 0069cdcd 00000000 00007000 00000000 ..i......p......
...
252e8: 001548fd 70700000 70707070 70707070 .H....pppppppppp
252f8: 70707070 70707070 36367070 4f543636 pppppppppp6666TO
25308: 48707070 15cb3636 73ff4acb 48481507 pppH66...J.s..HH
25318: 48484848 cb484848 70704f12 00000000 HHHHHHH..Opp....
...
25338: 70000000 70707070 701f1f70 36361f70 ...pppppp..pp.66
25348: cf363636 5a4ecdcf cd3b38e6 5959593b 666...NZ.8;.;YYY
25358: 68747412 3487f634 68686834 74747468 .tth4..44hhhhttt
25368: 74747474 68687474 74746868 46467468 tttttthhhhtthtFF
25378: 31c8c80d 1ec8f616 e9e9e91e cd0ce9e9 ...1............
25388: cbcdcdcd 00000000 00000000 00000000 ................
25398: 70700000 00000070 4848fd48 48000000 ..ppp...H.HH...H
253a8: 70707070 70707070 70707070 70707070 pppppppppppppppp
253b8: 36367070 59684f36 48484836 cb15cb36 pp666OhY6HHH6...
253c8: 63736315 48154815 48484848 48484848 .csc.H.HHHHHHHHH
253d8: 7070cdcd 00000000 00000000 00000000 ..pp............
...
253f4: 361f1f70 36361f1f 1f1f1f1f cf363636 p..6..66....666.
25404: 32e9cfcf cd54e932 59543b3b 74746859 ...22.T.;;TYYhtt
25414: 34877968 68686868 74746868 68686868 hy.4hhhhhhtthhhh
25424: 68686874 74746868 74747468 79c80d74 thhhhhtthtttt..y
25434: 7479165d e9e9e91e cd0c0c0c cdcdcdcd ].yt............
25444: 00000048 00000000 70000000 36363636 H..........p6666
25454: 00363636 48151500 00000000 70707048 666....H....Hppp
25464: 70707070 70707070 70707070 36484870 pppppppppppppHH6
25474: 34684f36 4848484f 15151548 4aff73ca 6Oh4OHHHH....s.J
25484: 48481548 70704848 48487070 0048cd36 H.HHHHppppHH6.H.
...
254ac: 361f1f00 36363636 36363636 36363636 ...6666666666666
254bc: e66dcfcb 59544e5a 543b3b54 74125959 ..m.ZNTYT;;TYY.t
254cc: 34406874 68686868 68686868 68686868 th@4hhhhhhhhhhhh
254dc: 68121268 74741212 74686874 c80d7474 h..h..ttthhttt..
254ec: 77e816f6 0ce9e91e cd0c0c0c cfcdcdcd ...w............
254fc: 00007069 00000000 cb000000 36cbcfcf ip.............6
2550c: 48703636 48fd0070 00000015 70704800 66pHp..H.....Hpp
2551c: 70707070 70707070 70707070 36487070 ppppppppppppppH6
2552c: 7e593636 48363654 fdcb1548 15fa901c 66Y~T66HH.......
2553c: 48481515 70704848 70707070 00363648 ..HHHHppppppH66.
...
25564: 1f1f0000 3636361f 36363636 36363636 .....66666666666
25574: 576d4f36 54cf4e24 3b3b5974 12595954 6OmW$N.TtY;;TYY.
25584: 68747474 68686868 12686812 12747474 ttthhhhh.hh.ttt.
25594: 12121274 74121212 12127474 c8747412 t......ttt...tt.
255a4: c8871606 0ce9381e cdcdcd0c cfcfcfcd .....8..........
255b4: 0000cbcf 00000000 36000000 36cbcfcf ...........6...6
255c4: 48363636 fd707048 00004848 70700000 666HHpp.HH....pp
255d4: 70707070 70487070 48707070 48487048 ppppppHppppHHpHH
255e4: 7e543636 cb36cf68 071515cb 484aff73 66T~h.6.....s.JH
255f4: 48484815 70707048 70707070 70707070 .HHHHppppppppppp
...
2561c: 1f000000 361f1f1f 36363636 36363636 .......666666666
2562c: 57e93636 cfcd548c cd5454cf 59543b4f 66.W.T...TT.O;TY
2563c: 74747459 12686868 12686812 38743812 Yttthhh..hh..8t8
2564c: 12121212 12121212 12383812 74741212 .........88...tt
2565c: c8f61613 0ce9381e cfcdcdcd cfcfcfcf .....8..........
2566c: 0048cfcf 00000000 70000000 cbcbcfcf ..H........p....
2567c: 483636cb 48704848 007048fd 70000000 .66HHHpH.Hp....p
2568c: 70707070 70707070 70707070 48484870 pppppppppppppHHH
2569c: 343b3636 cbcbcd68 1cfd4815 1515fa22 66;4h....H.."...
256ac: 48484815 70707048 70707070 00707070 .HHHHpppppppppp.
...
256d8: 1f36361f 3636361f 36363636 e60c3636 .66..666666666..
256e8: cdcfcded cfcfcfcf 3b4f4fcf 38121254 .........OO;T..8
256f8: 12121238 12686812 12121212 12121212 8....hh.........
25708: 12121212 12125959 12121212 c8f6f60d ....YY..........
25718: 0ce93838 cfcfcdcd cfcfcfcf 70cfcfcf 88.............p
...
25730: cbcbcfcb 363636cb 70484848 004815fd .....666HHHp..H.
25740: 00000000 70707070 70707070 70707070 ....pppppppppppp
25750: 48487070 68cf3648 cbcb5402 7307cbcb ppHHH6.h.T.....s
25760: 1548fdff 70484848 70707070 70707070 ..H.HHHppppppppp
25770: 00707070 00000000 00000000 00000000 ppp.............
...
25790: 36363600 1f36361f 36361f1f edcd3636 .666.66...6666..
257a0: cf4f0c32 cfcfcfcf 3b4f54cf 12593b3b 2.O......TO;;;Y.
257b0: 12121212 12681212 12121259 12123838 ......h.Y...88..
257c0: 59121212 59595912 59595959 77310d12 ...Y.YYYYYYY..1w
257d0: 0ce94e12 cfcfcfcd cfcfcfcf 36cfcfcf .N.............6
...
257e8: cbcfcf70 36363636 48484848 4848fd70 p...6666HHHHp.HH
257f8: 00000000 70707000 48707070 70707070 .....ppppppHpppp
25808: 48707070 59364848 69695402 226315cb pppHHH6Y.Tii..c"
25818: 151515fa 70484848 70707070 70707070 ....HHHppppppppp
25828: 70707070 00000000 00000000 00000000 pppp............
...
25848: 1f1f0000 1f361f1f 1f1f1f36 9bcf3636 ......6.6...66..
25858: cf366d57 cfcfcfcf 3636cfcf 593b4f36 Wm6.......666O;Y
25868: 59121212 59125959 12121212 12121212 ...YYY.Y........
25878: 59121212 54595959 54545454 4e125454 ...YYYYTTTTTTT.N
25888: cd0c4e4e cfcfcfcf cfcfcfcf cb3636cb NN...........66.
25898: 00000048 00000000 cbcfcb00 483636cb H............66H
258a8: 48484848 48fd4870 00000048 70700000 HHHHpH.HH.....pp
258b8: 70707070 70707048 70707070 cd484848 ppppHpppppppHHH.
258c8: 69695968 7397eccb 4815484a 70704848 hYii...sJH.HHHpp
258d8: 70707070 70707070 70707070 00000070 ppppppppppppp...
...
25900: 1f000000 1f1f1f1f 361f1f1f 891f361f ...........6.6..
25910: cb1f7857 cdcfcbcf 54cfcfcf 3b3b4fcd Wx.........T.O;;
25920: 59121259 59595959 59126812 59595959 Y..YYYYY.h.YYYYY
25930: 54595959 54545454 54545454 54545454 YYYTTTTTTTTTTTTT
25940: cdcdcd54 cfcfcfcf cbcbcbcf 363636cb T............666
25950: 00007036 00000000 cbcf7000 703636cb 6p.......p...66p
25960: 48487070 15157048 00007048 70000000 ppHHHp..Hp.....p
25970: 70707070 70707070 70707070 36484870 pppppppppppppHH6
25980: 15695454 6373cacb 48484815 70484848 TTi...sc.HHHHHHp
25990: 70707070 70707070 00000070 00000000 ppppppppp.......
...
259bc: 70707070 1f707070 2d1f361f 364f9781 ppppppp..6.-..O6
259cc: cd4f3636 cf69cfcd 4f4f4fcd 125959cd 66O...i..OOO.YY.
259dc: 59595959 59121259 54545959 54545454 YYYYY..YYYTTTTTT
259ec: 54545454 54545454 cdcd5454 cfcdcdcd TTTTTTTTTT......
259fc: 4f4fcfcf 36363636 36363636 00003636 ..OO6666666666..
25a0c: 00000000 cb360000 483636cb 48707048 ......6..66HHppH
25a1c: fd704848 00004848 00000000 70707070 HHp.HH......pppp
25a2c: 70707070 70707070 48487070 cbcbcf36 ppppppppppHH6...
25a3c: ca736315 48481548 70707048 70707070 .cs.H.HHHppppppp
25a4c: 70707070 00000070 00000000 00000000 ppppp...........
...
25a74: 70707000 70707070 cf1f1f70 1f692273 .pppppppp...s"i.
25a84: 36363636 cd69cf4f 36cf4e0c 5954cf36 6666O.i..N.66.TY
25a94: 54595959 54545459 54545454 54544e54 YYYTYTTTTTTTTNTT
25aa4: 54545454 54545454 3bcdcd3b 4f4f3b3b TTTTTTTT;..;;;OO
25ab4: 364f4f4f 36363636 36363636 00703636 OOO66666666666p.
25ac4: 00000000 36000000 483636cb 48484848 .......6.66HHHHH
25ad4: 48484848 0048484a 00000000 70707000 HHHHJHH......ppp
25ae4: 70707070 70707070 48707070 cbcbcb48 pppppppppppHH...
25af4: fd1c1cec 48481548 70707070 70707070 ....H.HHpppppppp
25b04: 00707070 00000070 00000000 00000000 ppp.p...........
...
25b2c: 70700000 70707070 1f707070 7091ed91 ..ppppppppp....p
25b3c: 36361f70 0ccdcf36 cd2b2b0c cdcf4fcf p.666....++..O..
25b4c: 54545454 54545454 54545454 54545454 TTTTTTTTTTTTTTTT
25b5c: 54545454 3b54cd54 4fa9a9a9 1f1fa91f TTTTT.T;...O....
25b6c: 1f1f701f 361f1f1f 36361f1f 00701f36 .p.....6..666.p.
25b7c: 00000000 70000000 48363636 48704848 .......p666HHHpH
25b8c: 70484848 4848fd48 00000000 70480000 HHHpH.HH......Hp
25b9c: 70707048 70707070 48707070 cbcb4848 HppppppppppHHH..
25bac: 15631c4a 48484848 70707070 70707070 J.c.HHHHpppppppp
25bbc: 00000000 70007000 00000000 00000000 .....p.p........
...
25be4: 70000000 70707070 70707070 361cff69 ...pppppppppi..6
25bf4: 36707070 cdcd3636 1e6eab0c 4f3636cf ppp666....n..66O
25c04: 545454cf 54545454 54545454 54545454 .TTTTTTTTTTTTTTT
25c14: 3b3b3b3b a93b3b3b 701f1f1f 70707070 ;;;;;;;....ppppp
25c24: 70707070 701f1f70 70707070 70707070 ppppp..ppppppppp
...
25c3c: 36367070 48484870 48487070 4815fd70 pp66pHHHppHHp..H
25c4c: 00000070 70000000 70707070 70707070 p......ppppppppp
25c5c: 48707070 48cb4848 48071c4a 70484848 pppHHH.HJ..HHHHp
25c6c: 00000070 00007000 00000000 00007000 p....p.......p..
...
25ca0: 70707070 70707070 4affca70 70707070 ppppppppp..Jpppp
25cb0: cf363636 0e6ee9cd 3636cf0c 54544f36 666...n...666OTT
25cc0: 3bcdcd54 cdcdcdcd 3b54cd3b 3b3b3b3b T..;....;.T;;;;;
25cd0: 1f3b3b3b 7070701f 70707070 00007000 ;;;..ppppppp.p..
25ce0: 70700000 70707070 00707070 00000000 ..ppppppppp.....
25cf0: 00000000 48707000 70484848 48484848 .....ppHHHHpHHHH
25d00: 48fd0048 00000048 70000000 70707070 H..HH......ppppp
25d10: 70700070 48707070 48484848 484a634a p.pppppHHHHHJcJH
25d20: 70704848 00000070 00007070 00000070 HHppp...pp..p...
25d30: 00707000 00000000 00000000 00000000 .pp.............
...
25d58: 70707000 70707070 91633670 70707036 .pppppppp6c.6ppp
25d68: 36367070 b5670ccf 36cdcdab 3b4f3636 pp66..g....666O;
25d78: 3b3b3bcd 3b3b3b3b 4f3b3b3b 1f1fa94f .;;;;;;;;;;OO...
25d88: 701fa9a9 70707070 00707070 00000000 ...pppppppp.....
25d98: 00000000 00707000 00700000 00000000 .....pp...p.....
25da8: 00000000 70700000 70704870 70487070 ......pppHppppHp
25db8: 4a707048 00004848 00000000 00707000 HppJHH.......pp.
25dc8: 00000000 70707000 48484848 48fd634a .....pppHHHHJc.H
25dd8: 70704848 00007070 00000000 00000000 HHpppp..........
25de8: 70700000 00000070 00000000 00000000 ..ppp...........
...
25e10: 70700000 70707070 63ec7000 707070ec ..pppppp.p.c.ppp
25e20: 36707070 6e4e4f36 cf690c87 4f1f7036 ppp66ONn..i.6p.O
25e30: 3b3b3b3b a9080808 70a9a91f 1f707070 ;;;;.......pppp.
25e40: 7070701f 00707070 00000070 00000000 .pppppp.p.......
...
25e64: 70000000 70707070 70707070 48007070 ...ppppppppppp.H
25e74: 007070fd 00000000 00700000 00000000 .pp.......p.....
25e84: 70700000 48484848 4815fa4a 00704848 ..ppHHHHJ..HHHp.
25e94: 00007000 00000000 00000000 70700000 .p............pp
25ea4: 00007036 00000000 00000000 00000000 6p..............
...
25ec8: 70000000 00707070 4a700000 000036fa ...pppp...pJ.6..
25ed8: 70700000 2a363670 4f4f1e6e 70707036 ..ppp66*n.OO6ppp
25ee8: 1f4f4f1f 1f1fa91f 70700070 70707070 .OO.....p.pppppp
25ef8: 70707070 00707070 00000000 00000000 ppppppp.........
25f08: 00000000 00007000 00000000 00000000 .....p..........
...
25f20: 70707000 70707070 00707070 00701515 .pppppppppp...p.
...
25f3c: 70700000 48484848 48154a4a 00704848 ..ppHHHHJJ.HHHp.
...
25f58: 70700000 00704f36 00000000 00000000 ..pp6Op.........
...
25f84: 00007070 70000000 00704a4a 70000000 pp.....pJJp....p
25f94: 36367070 4f4fab67 70703636 1f1f7070 pp66g.OO66pppp..
25fa4: 00707070 70707000 70707070 70707070 ppp..ppppppppppp
25fb4: 70707070 00000000 00000000 00000000 pppp............
25fc4: 00700000 00000000 00000000 00000000 ..p.............
25fd4: 00000000 70000000 00007070 00000000 .......ppp......
25fe4: 70481500 00000000 00000000 00000000 ..Hp............
25ff4: 70000000 48484848 48484afd 00007048 ...pHHHH.JHHHp..
...
26010: 70000000 00363b70 00000000 00000000 ...pp;6.........
...
2603c: 00707000 00000000 70154a70 00000000 .pp.....pJ.p....
2604c: 70707000 36364e4f 70703636 70707070 .pppON6666pppppp
2605c: 70707070 00000070 70707000 70707070 ppppp....ppppppp
2606c: 00707070 00000000 00000000 00000000 ppp.............
...
2609c: 00150000 00000000 00000000 00000000 ................
260ac: 70000000 48484870 4848fdfd 00007048 ...ppHHH..HHHp..
...
260c8: 70000000 703b4f70 00000000 00000000 ...ppO;p........
...
260fc: cb4a4800 00000000 70700000 36707070 .HJ.......ppppp6
2610c: 7070701f 70707070 70707070 00007070 .ppppppppppppp..
2611c: 00000000 70000000 00000000 00000000 .......p........
...
26154: 48700000 00000000 00000000 00000000 ..pH............
26164: 00000000 48484870 4848fdfd 00007048 ....pHHH..HHHp..
...
26184: 364f1f70 00000070 00000000 00000000 p.O6p...........
...
261b4: fd480000 00000048 00000000 70707070 ..H.H.......pppp
261c4: 70707070 70000070 70707070 00707070 ppppp..pppppppp.
...
26220: 48487070 48481515 00000070 00000000 ppHH..HHp.......
...
2623c: 4f4f7000 00000070 00000000 00000000 .pOOp...........
...
2626c: 48000000 00004848 00000000 70000000 ...HHH.........p
2627c: 70707070 00000070 70707000 00000070 ppppp....pppp...
...
262d8: 48487000 48481515 00000070 00000000 .pHH..HHp.......
...
262f4: 4f1f0000 0000001f 00000000 00000000 ...O............
...
26324: 70000000 70484848 00000000 00000000 ...pHHHp........
26334: 70000000 00000000 70000000 00000070 ...p.......pp...
...
26390: 48700000 48481515 00000070 00000000 ..pH..HHp.......
...
263ac: 36700000 00007036 00000000 00000000 ..p66p..........
...
263e0: 48484870 00000000 00000000 00000000 pHHH............
...
26448: 70000000 70481548 00000070 00000000 ...pH.Hpp.......
...
26464: 70000000 00007036 00000000 00000000 ...p6p..........
...
26490: 2e000000 68732f2e 64657261 6968742f ...../shared/thi
264a0: 61706472 2f797472 6c67766c 6372732f rdparty/lvgl/src
264b0: 5f766c2f 65726f63 5f766c2f 75626564 /lv_core/lv_debu
264c0: 00632e67 645f766c 67756265 6568635f g.c.lv_debug_che
264d0: 735f6b63 203a7274 6f6e2061 53412d6e ck_str: a non-AS
264e0: 20494943 72616863 73616820 70657220 CII char has rep
264f0: 65746165 6f6d2064 74206572 206e6168 eated more than
26500: 445f564c 47554245 5254535f 58414d5f LV_DEBUG_STR_MAX
26510: 5045525f 20544145 656d6974 6c002973 _REPEAT times).l
26520: 65645f76 5f677562 63656863 74735f6b v_debug_check_st
26530: 69203a72 6c61766e 63206469 20726168 r: invalid char
26540: 74206e69 73206568 6e697274 3c282067 in the string (<
26550: 20303120 756c6176 6c002965 65645f76 10 value).lv_de
26560: 5f677562 63656863 74735f6b 73203a72 bug_check_str: s
26570: 6e697274 73692067 6e6f6c20 20726567 tring is longer
26580: 6e616874 5f564c20 55424544 54535f47 than LV_DEBUG_ST
26590: 414d5f52 454c5f58 4854474e R_MAX_LENGTH.
0002659d <__func__.2>:
2659d: 645f766c 67756265 6568635f 735f6b63 lv_debug_check_s
265ad: tr.
000265b0 <hex.1>:
265b0: 33323130 37363534 42413938 46454443 0123456789ABCDEF
...
000265c1 <__func__.0>:
265c1: 645f766c 67756265 676f6c5f 7272655f lv_debug_log_err
265d1: 2e00726f 68732f2e 64657261 6968742f or.../shared/thi
265e1: 61706472 2f797472 6c67766c 6372732f rdparty/lvgl/src
265f1: 5f766c2f 65726f63 5f766c2f 70736964 /lv_core/lv_disp
26601: 6c00632e 63735f76 63615f72 6e203a74 .c.lv_scr_act: n
26611: 6964206f 616c7073 65722079 74736967 o display regist
26621: 64657265 206f7420 20746567 20737469 ered to get its
26631: 2e746361 72637320 006e6565 6c5f766c act. screen.lv_l
26641: 72657961 706f745f 6f6e203a 73696420 ayer_top: no dis
26651: 79616c70 67657220 65747369 20646572 play registered
26661: 67206f74 69207465 74207374 6c20706f to get its top l
26671: 72657961 5f766c00 6579616c 79735f72 ayer.lv_layer_sy
26681: 6e203a73 6964206f 616c7073 65722079 s: no display re
26691: 74736967 64657265 206f7420 20746567 gistered to get
266a1: 20737469 2e737973 79616c20 6c007265 its sys. layer.l
266b1: 69645f76 615f7073 67697373 63735f6e v_disp_assign_sc
266c1: 6e656572 7274203a 6f742079 73736120 reen: try to ass
266d1: 206e6769 6f6e2061 63732d6e 6e656572 ign a non-screen
266e1: 6a626f20 00746365 645f766c 5f707369 object.lv_disp_
266f1: 5f746567 63616e69 65766974 6d69745f get_inactive_tim
26701: 6e203a65 6964206f 616c7073 65722079 e: no display re
26711: 74736967 64657265 5f766c00 70736964 gistered.lv_disp
26721: 6972745f 63615f67 69766974 203a7974 _trig_activity:
26731: 64206f6e 6c707369 72207961 73696765 no display regis
26741: 65726574 766c0064 7369645f 65675f70 tered.lv_disp_ge
26751: 65725f74 745f7266 3a6b7361 206f6e20 t_refr_task: no
26761: 70736964 2079616c 69676572 72657473 display register
26771: ed.
00026774 <__func__.6>:
26774: 645f766c 5f707369 5f746567 5f726373 lv_disp_get_scr_
26784: 00746361 act.
00026788 <__func__.5>:
26788: 645f766c 5f707369 5f746567 6579616c lv_disp_get_laye
26798: 6f745f72 r_top.
0002679e <__func__.4>:
2679e: 645f766c 5f707369 5f746567 6579616c lv_disp_get_laye
267ae: 79735f72 r_sys.
000267b4 <__func__.3>:
267b4: 645f766c 5f707369 69737361 735f6e67 lv_disp_assign_s
267c4: 65657263 creen.
000267ca <__func__.2>:
267ca: 645f766c 5f707369 5f746567 63616e69 lv_disp_get_inac
267da: 65766974 6d69745f tive_time.
000267e4 <__func__.1>:
267e4: 645f766c 5f707369 67697274 7463615f lv_disp_trig_act
267f4: 74697669 ivity.
000267fa <__func__.0>:
267fa: 5f766c5f 70736964 7465675f 6665725f _lv_disp_get_ref
2680a: 61745f72 2e006b73 68732f2e 64657261 r_task.../shared
2681a: 6968742f 61706472 2f797472 6c67766c /thirdparty/lvgl
2682a: 6372732f 5f766c2f 65726f63 5f766c2f /src/lv_core/lv_
2683a: 756f7267 00632e70 2074754f 6d20666f group.c.Out of m
2684a: 726f6d65 766c0079 6f72675f 615f7075 emory.lv_group_a
2685a: 6f5f6464 203a6a62 20656874 656a626f dd_obj: the obje
2686a: 69207463 6c612073 64616572 64612079 ct is already ad
2687a: 20646564 74206f74 20736968 756f7267 ded to this grou
2688a: 766c0070 6f72675f 615f7075 6f5f6464 p.lv_group_add_o
2689a: 203a6a62 69737361 6f206e67 63656a62 bj: assign objec
268aa: 6f742074 206e6120 6568746f 72672072 t to an other gr
268ba: 0070756f oup.
000268be <__func__.1>:
268be: 675f766c 70756f72 6572635f 00657461 lv_group_create.
000268ce <__func__.0>:
268ce: 675f766c 70756f72 6464615f 6a626f5f lv_group_add_obj
268de: 2f2e2e00 72616873 742f6465 64726968 .../shared/third
268ee: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
268fe: 6f635f76 6c2f6572 626f5f76 00632e6a v_core/lv_obj.c.
2690e: 695f766c 3a74696e 726c6120 79646165 lv_init: already
2691e: 696e6920 00646574 695f766c 2074696e inited.lv_init
2692e: 64616572 766c0079 6965645f 2074696e ready.lv_deinit
2693e: 656e6f64 4c554e00 6f70204c 65746e69 done.NULL pointe
2694e: 766c0072 7263735f 7465675f 7369645f r.lv_scr_get_dis
2695e: 73203a70 65657263 6f6e206e 6f662074 p: screen not fo
2696e: 00646e75 6f5f766c 735f6a62 625f7465 und.lv_obj_set_b
2697e: 5f657361 3a726964 766e6920 64696c61 ase_dir: invalid
2698e: 73616220 69642065 766c0072 6a626f5f base dir.lv_obj
2699e: 656c635f 735f6e61 656c7974 73696c5f _clean_style_lis
269ae: 63203a74 74276e61 6e696620 74732064 t: can't find st
269be: 20656c79 68746977 61706020 00607472 yle with `part`.
269ce: 6f5f766c 735f6a62 705f7465 203a736f lv_obj_set_pos:
269de: 20746f6e 6e616863 676e6967 736f7020 not changing pos
269ee: 6f697469 666f206e 72637320 206e6565 ition of screen
269fe: 656a626f 6c007463 626f5f76 64615f6a object.lv_obj_ad
26a0e: 74735f64 3a656c79 6e616320 66207427 d_style: can't f
26a1e: 20646e69 6c797473 69772065 60206874 ind style with `
26a2e: 65707974 766c0060 6a626f5f 6572635f type`.lv_obj_cre
26a3e: 3a657461 746f6e20 73696420 79616c70 ate: not display
26a4e: 65726320 64657461 206f7420 66206f73 created to so f
26a5e: 202e7261 70206f4e 6563616c 206f7420 ar. No place to
26a6e: 69737361 74206e67 6e206568 73207765 assign the new s
26a7e: 65657263 624f006e 7463656a 65726320 creen.Object cre
26a8e: 20657461 64616572 61430079 2074276e ate ready.Can't
26a9e: 20746573 20656874 65726170 6f20746e set the parent o
26aae: 20612066 65726373 43006e65 74276e61 f a screen.Can't
26abe: 74657320 72617020 20746e65 4e203d3d set parent == N
26ace: 204c4c55 61206f74 626f206e 7463656a ULL to an object
26ade: 5f766c00 006a626f .lv_obj.
00026ae6 <__func__.90>:
26ae6: 695f766c 0074696e lv_init.
00026aee <__func__.89>:
26aee: 645f766c 696e6965 lv_deinit.
00026af8 <__func__.86>:
26af8: 6f5f766c 645f6a62 615f6c65 636e7973 lv_obj_del_async
...
00026b09 <__func__.69>:
26b09: 6f5f766c 735f6a62 615f7465 5f6f7475 lv_obj_set_auto_
26b19: 6c616572 006e6769 realign.
00026b21 <__func__.68>:
26b21: 6f5f766c 735f6a62 655f7465 635f7478 lv_obj_set_ext_c
26b31: 6b63696c 6572615f lick_area.
00026b3b <__func__.62>:
26b3b: 6f5f766c 735f6a62 615f7465 685f7664 lv_obj_set_adv_h
26b4b: 65747469 ittest.
00026b52 <__func__.61>:
26b52: 6f5f766c 735f6a62 635f7465 6b63696c lv_obj_set_click
...
00026b63 <__func__.60>:
26b63: 6f5f766c 735f6a62 745f7465 lv_obj_set_top.
00026b72 <__func__.59>:
26b72: 6f5f766c 735f6a62 645f7465 00676172 lv_obj_set_drag.
00026b82 <__func__.58>:
26b82: 6f5f766c 735f6a62 645f7465 5f676172 lv_obj_set_drag_
26b92: 00726964 dir.
00026b96 <__func__.57>:
26b96: 6f5f766c 735f6a62 645f7465 5f676172 lv_obj_set_drag_
26ba6: 6f726874 throw.
00026bac <__func__.56>:
26bac: 6f5f766c 735f6a62 645f7465 5f676172 lv_obj_set_drag_
26bbc: 65726170 parent.
00026bc3 <__func__.55>:
26bc3: 6f5f766c 735f6a62 705f7465 6e657261 lv_obj_set_paren
26bd3: 76655f74 00746e65 t_event.
00026bdb <__func__.53>:
26bdb: 6f5f766c 615f6a62 705f6464 65746f72 lv_obj_add_prote
26beb: ct.
00026bee <__func__.52>:
26bee: 6f5f766c 635f6a62 7261656c 6f72705f lv_obj_clear_pro
26bfe: 74636574 tect.
00026c03 <__func__.47>:
26c03: 6f5f766c 735f6a62 655f7465 746e6576 lv_obj_set_event
26c13: 0062635f _cb.
00026c17 <__func__.45>:
26c17: 655f766c 746e6576 6e65735f 75665f64 lv_event_send_fu
26c27: nc.
00026c2a <__func__.46>:
26c2a: 655f766c 746e6576 6e65735f lv_event_send.
00026c38 <__func__.44>:
26c38: 6f5f766c 735f6a62 735f7465 616e6769 lv_obj_set_signa
26c48: 62635f6c l_cb.
00026c4d <__func__.43>:
26c4d: 6f5f766c 735f6a62 645f7465 67697365 lv_obj_set_desig
26c5d: 62635f6e n_cb.
00026c62 <__func__.42>:
26c62: 6f5f766c 615f6a62 636f6c6c 5f657461 lv_obj_allocate_
26c72: 5f747865 72747461 ext_attr.
00026c7b <__func__.41>:
26c7b: 6f5f766c 725f6a62 65726665 655f6873 lv_obj_refresh_e
26c8b: 645f7478 5f776172 00646170 xt_draw_pad.
00026c97 <__func__.38>:
26c97: 6f5f766c 675f6a62 705f7465 6e657261 lv_obj_get_paren
26ca7: t.
00026ca9 <__func__.40>:
26ca9: 6f5f766c 675f6a62 735f7465 65657263 lv_obj_get_scree
26cb9: n.
00026cbb <__func__.39>:
26cbb: 6f5f766c 675f6a62 645f7465 00707369 lv_obj_get_disp.
00026ccb <__func__.37>:
26ccb: 6f5f766c 675f6a62 635f7465 646c6968 lv_obj_get_child
...
00026cdc <__func__.54>:
26cdc: 6f5f766c 735f6a62 625f7465 5f657361 lv_obj_set_base_
26cec: 00726964 dir.
00026cf0 <__func__.36>:
26cf0: 6f5f766c 675f6a62 635f7465 646c6968 lv_obj_get_child
26d00: 6361625f _back.
00026d06 <__func__.35>:
26d06: 6f5f766c 635f6a62 746e756f 6968635f lv_obj_count_chi
26d16: 6572646c ldren.
00026d1c <__func__.34>:
26d1c: 6f5f766c 635f6a62 746e756f 6968635f lv_obj_count_chi
26d2c: 6572646c 65725f6e 73727563 00657669 ldren_recursive.
00026d3c <__func__.33>:
26d3c: 6f5f766c 675f6a62 635f7465 64726f6f lv_obj_get_coord
26d4c: s.
00026d4e <__func__.31>:
26d4e: 6f5f766c 675f6a62 785f7465 lv_obj_get_x.
00026d5b <__func__.30>:
26d5b: 6f5f766c 675f6a62 795f7465 lv_obj_get_y.
00026d68 <__func__.29>:
26d68: 6f5f766c 675f6a62 775f7465 68746469 lv_obj_get_width
...
00026d79 <__func__.28>:
26d79: 6f5f766c 675f6a62 685f7465 68676965 lv_obj_get_heigh
26d89: t.
00026d8b <__func__.25>:
26d8b: 6f5f766c 675f6a62 615f7465 5f6f7475 lv_obj_get_auto_
26d9b: 6c616572 006e6769 realign.
00026da3 <__func__.24>:
26da3: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c
26db3: 6b63696c 6461705f 66656c5f lick_pad_left.
00026dc1 <__func__.23>:
26dc1: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c
26dd1: 6b63696c 6461705f 6769725f lick_pad_right.
00026de0 <__func__.22>:
26de0: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c
26df0: 6b63696c 6461705f 706f745f lick_pad_top.
00026dfd <__func__.21>:
26dfd: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c
26e0d: 6b63696c 6461705f 746f625f 006d6f74 lick_pad_bottom.
00026e1d <__func__.20>:
26e1d: 6f5f766c 675f6a62 655f7465 645f7478 lv_obj_get_ext_d
26e2d: 5f776172 00646170 raw_pad.
00026e35 <__func__.66>:
26e35: 6f5f766c 635f6a62 6e61656c 7974735f lv_obj_clean_sty
26e45: 6c5f656c 00747369 le_list.
00026e4d <__func__.19>:
26e4d: 6f5f766c 675f6a62 6c5f7465 6c61636f lv_obj_get_local
26e5d: 7974735f _style.
00026e64 <__func__.65>:
26e64: 6f5f766c 725f6a62 766f6d65 74735f65 lv_obj_remove_st
26e74: 5f656c79 61636f6c 72705f6c yle_local_prop.
00026e83 <__func__.18>:
26e83: 6f5f766c 675f6a62 685f7465 65646469 lv_obj_get_hidde
26e93: n.
00026e95 <__func__.83>:
26e95: 6f5f766c 695f6a62 6c61766e 74616469 lv_obj_invalidat
26ea5: 72615f65 e_area.
00026eac <__func__.82>:
26eac: 6f5f766c 695f6a62 6c61766e 74616469 lv_obj_invalidat
26ebc: e.
00026ebe <__func__.80>:
26ebe: 6f5f766c 6d5f6a62 5f65766f 65726f66 lv_obj_move_fore
26ece: 756f7267 ground.
00026ed5 <__func__.79>:
26ed5: 6f5f766c 6d5f6a62 5f65766f 6b636162 lv_obj_move_back
26ee5: 756f7267 ground.
00026eec <__func__.78>:
26eec: 6f5f766c 735f6a62 705f7465 lv_obj_set_pos.
00026efb <__func__.77>:
26efb: 6f5f766c 735f6a62 785f7465 lv_obj_set_x.
00026f08 <__func__.76>:
26f08: 6f5f766c 735f6a62 795f7465 lv_obj_set_y.
00026f15 <__func__.72>:
26f15: 6f5f766c 615f6a62 6e67696c lv_obj_align.
00026f22 <__func__.71>:
26f22: 6f5f766c 615f6a62 6e67696c 69726f5f lv_obj_align_ori
26f32: go.
00026f35 <__func__.70>:
26f35: 6f5f766c 725f6a62 696c6165 lv_obj_realign.
00026f44 <__func__.64>:
26f44: 6f5f766c 725f6a62 65726665 735f6873 lv_obj_refresh_s
26f54: 656c7974 tyle.
00026f59 <__func__.67>:
26f59: 6f5f766c 615f6a62 735f6464 656c7974 lv_obj_add_style
...
00026f6a <__func__.63>:
26f6a: 6f5f766c 735f6a62 685f7465 65646469 lv_obj_set_hidde
26f7a: n.
00026f7c <__func__.17>:
26f7c: 6f5f766c 675f6a62 615f7465 685f7664 lv_obj_get_adv_h
26f8c: 65747469 ittest.
00026f93 <__func__.16>:
26f93: 6f5f766c 675f6a62 635f7465 6b63696c lv_obj_get_click
...
00026fa4 <__func__.15>:
26fa4: 6f5f766c 675f6a62 745f7465 lv_obj_get_top.
00026fb3 <__func__.14>:
26fb3: 6f5f766c 675f6a62 645f7465 00676172 lv_obj_get_drag.
00026fc3 <__func__.13>:
26fc3: 6f5f766c 675f6a62 645f7465 5f676172 lv_obj_get_drag_
26fd3: 00726964 dir.
00026fd7 <__func__.12>:
26fd7: 6f5f766c 675f6a62 645f7465 5f676172 lv_obj_get_drag_
26fe7: 6f726874 throw.
00026fed <__func__.11>:
26fed: 6f5f766c 675f6a62 705f7465 6e657261 lv_obj_get_paren
26ffd: 76655f74 00746e65 t_event.
00027005 <__func__.10>:
27005: 6f5f766c 675f6a62 625f7465 5f657361 lv_obj_get_base_
27015: 00726964 dir.
00027019 <__func__.88>:
27019: 6f5f766c 635f6a62 74616572 lv_obj_create.
00027027 <__func__.81>:
27027: 6f5f766c 735f6a62 705f7465 6e657261 lv_obj_set_paren
27037: t.
00027039 <__func__.75>:
27039: 6f5f766c 735f6a62 735f7465 00657a69 lv_obj_set_size.
00027049 <__func__.74>:
27049: 6f5f766c 735f6a62 775f7465 68746469 lv_obj_set_width
...
0002705a <__func__.73>:
2705a: 6f5f766c 735f6a62 685f7465 68676965 lv_obj_set_heigh
2706a: t.
0002706c <__func__.9>:
2706c: 6f5f766c 675f6a62 705f7465 65746f72 lv_obj_get_prote
2707c: ct.
0002707f <__func__.8>:
2707f: 6f5f766c 695f6a62 72705f73 6365746f lv_obj_is_protec
2708f: 00646574 ted.
00027093 <__func__.7>:
27093: 6f5f766c 675f6a62 735f7465 65746174 lv_obj_get_state
...
000270a4 <__func__.27>:
270a4: 6f5f766c 675f6a62 775f7465 68746469 lv_obj_get_width
270b4: 7469665f _fit.
000270b9 <__func__.26>:
270b9: 6f5f766c 675f6a62 685f7465 68676965 lv_obj_get_heigh
270c9: 69665f74 t_fit.
000270cf <__func__.32>:
270cf: 6f5f766c 675f6a62 695f7465 72656e6e lv_obj_get_inner
270df: 6f6f635f 00736472 _coords....
000270ea <__func__.51>:
270ea: 6f5f766c 735f6a62 735f7465 65746174 lv_obj_set_state
...
000270fb <__func__.50>:
270fb: 6e617274 72635f73 65746165 trans_create.
00027108 <__func__.49>:
27108: 6f5f766c 615f6a62 735f6464 65746174 lv_obj_add_state
...
00027119 <__func__.48>:
27119: 6f5f766c 635f6a62 7261656c 6174735f lv_obj_clear_sta
27129: te.
0002712c <__func__.6>:
2712c: 6f5f766c 675f6a62 735f7465 616e6769 lv_obj_get_signa
2713c: 62635f6c l_cb.
00027141 <__func__.5>:
27141: 6f5f766c 675f6a62 645f7465 67697365 lv_obj_get_desig
27151: 62635f6e n_cb.
00027156 <__func__.4>:
27156: 6f5f766c 675f6a62 655f7465 746e6576 lv_obj_get_event
27166: 0062635f _cb.
0002716a <__func__.3>:
2716a: 6f5f766c 675f6a62 655f7465 615f7478 lv_obj_get_ext_a
2717a: 00727474 ttr.
0002717e <__func__.2>:
2717e: 6f5f766c 675f6a62 745f7465 00657079 lv_obj_get_type.
0002718e <__func__.1>:
2718e: 6f5f766c 675f6a62 675f7465 70756f72 lv_obj_get_group
...
0002719f <__func__.87>:
2719f: 6f5f766c 645f6a62 lv_obj_del.
000271aa <__func__.85>:
271aa: 6f5f766c 645f6a62 615f6c65 636e7973 lv_obj_del_async
271ba: 0062635f _cb.
000271be <__func__.84>:
271be: 6f5f766c 635f6a62 6e61656c lv_obj_clean.
000271cb <__func__.0>:
271cb: 6f5f766c 695f6a62 6f665f73 65737563 lv_obj_is_focuse
271db: 2e2e0064 6168732f 2f646572 72696874 d.../shared/thir
271eb: 72617064 6c2f7974 2f6c6776 2f637273 dparty/lvgl/src/
271fb: 635f766c 2f65726f 725f766c 2e726665 lv_core/lv_refr.
2720b: 61430063 2074276e 20746573 20424456 c.Can't set VDB
2721b: 67696568 75207468 676e6973 65687420 height using the
2722b: 756f7220 6620646e 74636e75 2e6e6f69 round function.
2723b: 72572820 20676e6f 6e756f72 62635f64 (Wrong round_cb
2724b: 20726f20 73206f74 6c6c616d 42445620 or to small VDB
2725b: ).
0002725d <__func__.0>:
2725d: 725f766c 5f726665 61657261 2f2e2e00 lv_refr_area.../
2726d: 72616873 742f6465 64726968 74726170 shared/thirdpart
2727d: 766c2f79 732f6c67 6c2f6372 6f635f76 y/lvgl/src/lv_co
2728d: 6c2f6572 74735f76 2e656c79 766c0063 re/lv_style.c.lv
2729d: 7974735f 6c5f656c 5f747369 6f6d6572 _style_list_remo
272ad: 735f6576 656c7974 6f63203a 6e646c75 ve_style: couldn
272bd: 72207427 6c6c6165 7461636f 6c632065 't reallocate cl
272cd: 20737361 7473696c 5f766c00 6c797473 ass list.lv_styl
272dd: 696c5f65 615f7473 735f6464 656c7974 e_list_add_style
272ed: 6f63203a 6e646c75 61207427 74206464 : couldn't add t
272fd: 63206568 7373616c 74656700 636f6c5f he class.get_loc
2730d: 735f6c61 656c7974 6f63203a 6e646c75 al_style: couldn
2731d: 63207427 74616572 6f6c2065 206c6163 't create local
2732d: 6c797473 766c0065 7974735f 6c5f656c style.lv_style_l
2733d: 5f747369 5f646461 6e617274 74735f73 ist_add_trans_st
2734d: 3a656c79 756f6320 276e646c 72632074 yle: couldn't cr
2735d: 65746165 61727420 7469736e 206e6f69 eate transition
2736d: 6c797473 style.
00027373 <__func__.5>:
27373: 5f766c5f 6c797473 696c5f65 725f7473 _lv_style_list_r
27383: 766f6d65 74735f65 00656c79 emove_style.
0002738f <__func__.6>:
2738f: 5f766c5f 6c797473 696c5f65 615f7473 _lv_style_list_a
2739f: 735f6464 656c7974 dd_style.
000273a8 <__func__.7>:
273a8: 5f746567 6f6c6c61 6f6c5f63 5f6c6163 get_alloc_local_
273b8: 6c797473 style.
000273be <__func__.4>:
273be: 5f766c5f 6c797473 65735f65 6e695f74 _lv_style_set_in
273ce: t.
000273d0 <__func__.3>:
273d0: 5f766c5f 6c797473 65735f65 6f635f74 _lv_style_set_co
273e0: 00726f6c lor.
000273e4 <__func__.2>:
273e4: 5f766c5f 6c797473 65735f65 706f5f74 _lv_style_set_op
273f4: a.
000273f6 <__func__.1>:
273f6: 5f766c5f 6c797473 65735f65 74705f74 _lv_style_set_pt
27406: r.
00027408 <__func__.0>:
27408: 5f766c5f 6c797473 696c5f65 615f7473 _lv_style_list_a
27418: 745f6464 736e6172 7974735f 2e00656c dd_trans_style..
27428: 68732f2e 64657261 6968742f 61706472 ./shared/thirdpa
27438: 2f797472 6c67766c 6372732f 5f766c2f rty/lvgl/src/lv_
27448: 77617264 5f766c2f 77617264 656c625f draw/lv_draw_ble
27458: 632e646e 6c696600 6c625f6c 65646e65 nd.c.fill_blende
27468: 75203a64 7075736e 74726f70 62206465 d: unsupported b
27478: 646e656c 646f6d20 lend mode.
00027482 <__func__.1>:
27482: 6c6c6966 656c625f 6465646e fill_blended.
0002748f <__func__.0>:
2748f: 5f70616d 6e656c62 00646564 732f2e2e map_blended.../s
2749f: 65726168 68742f64 70647269 79747261 hared/thirdparty
274af: 67766c2f 72732f6c 766c2f63 6172645f /lvgl/src/lv_dra
274bf: 766c2f77 6172645f 6d695f77 00632e67 w/lv_draw_img.c.
274cf: 67616d49 72642065 203a7761 20637273 Image draw: src
274df: 4e207369 004c4c55 640a6f4e 00617461 is NULL.No.data.
274ef: 67616d49 72642065 65207761 726f7272 Image draw error
274ff: 616d4900 64206567 20776172 276e6163 .Image draw can'
2750f: 65722074 74206461 6c206568 00656e69 t read the line.
2751f: ...
00027522 <CSWTCH.21>:
27522: 01101810 01080402 ...........
0002752d <__func__.2>:
2752d: 645f766c 5f776172 00676d69 lv_draw_img.
00027539 <__func__.1>:
27539: 695f766c 645f676d 5f776172 65726f63 lv_img_draw_core
27549: 2f2e2e00 72616873 742f6465 64726968 .../shared/third
27559: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
27569: 72645f76 6c2f7761 72645f76 6c5f7761 v_draw/lv_draw_l
27579: 6c656261 6c00632e 72645f76 6c5f7761 abel.c.lv_draw_l
27589: 65747465 67203a72 6870796c 63736420 etter: glyph dsc
27599: 6f6e202e 6f662074 00646e75 645f766c . not found.lv_d
275a9: 5f776172 7474656c 203a7265 72616863 raw_letter: char
275b9: 65746361 20732772 6d746962 6e207061 acter's bitmap n
275c9: 6620746f 646e756f 5f766c00 77617264 ot found.lv_draw
275d9: 74656c5f 3a726574 766e6920 64696c61 _letter: invalid
275e9: 70706220 746f6e20 756f6620 6c00646e bpp not found.l
275f9: 72645f76 6c5f7761 65747465 69203a72 v_draw_letter: i
27609: 6c61766e 62206469 nvalid bpp.
00027614 <_lv_bpp1_opa_table>:
27614: ..
00027616 <_lv_bpp2_opa_table>:
27616: ffaa5500 .U..
0002761a <_lv_bpp4_opa_table>:
2761a: 33221100 77665544 bbaa9988 ffeeddcc .."3DUfw........
0002762a <_lv_bpp8_opa_table>:
2762a: 03020100 07060504 0b0a0908 0f0e0d0c ................
2763a: 13121110 17161514 1b1a1918 1f1e1d1c ................
2764a: 23222120 27262524 2b2a2928 2f2e2d2c !"#$%&'()*+,-./
2765a: 33323130 37363534 3b3a3938 3f3e3d3c 0123456789:;<=>?
2766a: 43424140 47464544 4b4a4948 4f4e4d4c @ABCDEFGHIJKLMNO
2767a: 53525150 57565554 5b5a5958 5f5e5d5c PQRSTUVWXYZ[\]^_
2768a: 63626160 67666564 6b6a6968 6f6e6d6c `abcdefghijklmno
2769a: 73727170 77767574 7b7a7978 7f7e7d7c pqrstuvwxyz{|}~.
276aa: 83828180 87868584 8b8a8988 8f8e8d8c ................
276ba: 93929190 97969594 9b9a9998 9f9e9d9c ................
276ca: a3a2a1a0 a7a6a5a4 abaaa9a8 afaeadac ................
276da: b3b2b1b0 b7b6b5b4 bbbab9b8 bfbebdbc ................
276ea: c3c2c1c0 c7c6c5c4 cbcac9c8 cfcecdcc ................
276fa: d3d2d1d0 d7d6d5d4 dbdad9d8 dfdedddc ................
2770a: e3e2e1e0 e7e6e5e4 ebeae9e8 efeeedec ................
2771a: f3f2f1f0 f7f6f5f4 fbfaf9f8 fffefdfc ................
0002772a <__func__.5>:
2772a: 645f766c 5f776172 7474656c lv_draw_letter.
00027739 <__func__.4>:
27739: 77617264 74656c5f 5f726574 70627573 draw_letter_subp
27749: x.
0002774b <__func__.3>:
2774b: 77617264 74656c5f 5f726574 6d726f6e draw_letter_norm
2775b: al.
0002775e <_lv_bpp3_opa_table>:
2775e: 6d492400 ffdbb692 .$Im....
00027766 <wcorr.0>:
27766: 81808080 83828281 87868584 8d8c8a89 ................
27776: 9593918f 9e9b9997 a7a5a2a0 b2afadaa ................
27786: 2f2e2eb5 72616873 742f6465 64726968 .../shared/third
27796: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
277a6: 72645f76 6c2f7761 72645f76 6d5f7761 v_draw/lv_draw_m
277b6: 2e6b7361 766c0063 73616d5f 64615f6b ask.c.lv_mask_ad
277c6: 6e203a64 6c70206f 20656361 61206f74 d: no place to a
277d6: 74206464 6d206568 006b7361 dd the mask.
000277e2 <__func__.1>:
277e2: 645f766c 5f776172 6b73616d 6464615f lv_draw_mask_add
277f2: 2f2e2e00 72616873 742f6465 64726968 .../shared/third
27802: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l
27812: 72645f76 6c2f7761 72645f76 725f7761 v_draw/lv_draw_r
27822: 2e746365 72640063 695f7761 203a676d ect.c.draw_img:
27832: 276e6163 65672074 6d692074 20656761 can't get image
27842: 6f666e69 5f766c00 5f676d69 69736564 info.lv_img_desi
27852: 203a6e67 67616d69 6f732065 65637275 gn: image source
27862: 70797420 73692065 6b6e7520 6e776f6e type is unknown
27872: ffff0000 ....
00027876 <__func__.0>:
27876: 77617264 7461705f 6e726574 22110000 draw_pattern..."
27886: 66554433 aa998877 eeddccbb 3DUfw........
00027893 <__func__.0>:
27893: 695f766c 625f676d 735f6675 705f7465 lv_img_buf_set_p
278a3: 74656c61 2e006574 68732f2e 64657261 alette.../shared
278b3: 6968742f 61706472 2f797472 6c67766c /thirdparty/lvgl
278c3: 6372732f 5f766c2f 77617264 5f766c2f /src/lv_draw/lv_
278d3: 5f676d69 68636163 00632e65 695f766c img_cache.c.lv_i
278e3: 635f676d 65686361 65706f5f 74203a6e mg_cache_open: t
278f3: 63206568 65686361 7a697320 73692065 he cache size is
27903: 69003020 6567616d 61726420 63203a77 0.image draw: c
27913: 65686361 73696d20 63202c73 65736f6c ache miss, close
27923: 646e6120 75657220 61206573 6e65206e and reuse an en
27933: 00797274 67616d69 72642065 203a7761 try.image draw:
27943: 68636163 696d2065 202c7373 68636163 cache miss, cach
27953: 74206465 6e61206f 706d6520 65207974 ed to an empty e
27963: 7972746e 616d4900 64206567 20776172 ntry.Image draw
27973: 6e6e6163 6f20746f 206e6570 20656874 cannot open the
27983: 67616d69 65722065 72756f73 image resource.
00027992 <__func__.1>:
27992: 5f766c5f 5f676d69 68636163 706f5f65 _lv_img_cache_op
279a2: en.
000279a5 <__func__.0>:
279a5: 695f766c 635f676d 65686361 7465735f lv_img_cache_set
279b5: 7a69735f 2e2e0065 6168732f 2f646572 _size.../shared/
279c5: 72696874 72617064 6c2f7974 2f6c6776 thirdparty/lvgl/
279d5: 2f637273 645f766c 2f776172 695f766c src/lv_draw/lv_i
279e5: 645f676d 646f6365 632e7265 616d4900 mg_decoder.c.Ima
279f5: 67206567 69207465 206f666e 20746567 ge get info get
27a05: 64616572 6c696620 65682065 72656461 read file header
27a15: 616d4900 67206567 69207465 206f666e .Image get info
27a25: 6e756f66 6e752064 776f6e6b 7273206e found unknown sr
27a35: 79742063 42006570 746c6975 206e692d c type.Built-in
27a45: 67616d69 65642065 65646f63 65732072 image decoder se
27a55: 66206b65 656c6961 75420064 2d746c69 ek failed.Built-
27a65: 69206e69 6567616d 63656420 7265646f in image decoder
27a75: 61657220 61662064 64656c69 69754200 read failed.Bui
27a85: 692d746c 6d69206e 20656761 6f636564 lt-in image deco
27a95: 20726564 64616572 746f6e20 70757320 der read not sup
27aa5: 74726f70 68742073 6f632065 20726f6c ports the color
27ab5: 6d726f66 62007461 42006e69 746c6975 format.bin.Built
27ac5: 206e692d 67616d69 65642065 65646f63 -in image decode
27ad5: 61632072 2074276e 6e65706f 65687420 r can't open the
27ae5: 6c696620 6d690065 65645f67 65646f63 file.img_decode
27af5: 75625f72 5f746c69 6f5f6e69 3a6e6570 r_built_in_open:
27b05: 74756f20 20666f20 6f6d656d 49007972 out of memory.I
27b15: 6567616d 63656420 7265646f 65706f20 mage decoder ope
27b25: 75203a6e 6f6e6b6e 63206e77 726f6c6f n: unknown color
27b35: 726f6620 0074616d 695f766c 645f676d format.lv_img_d
27b45: 646f6365 695f7265 3a74696e 74756f20 ecoder_init: out
27b55: 20666f20 6f6d656d of memory.
00027b60 <__func__.3>:
27b60: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b
27b70: 746c6975 5f6e695f 6f666e69 uilt_in_info.
00027b7d <__func__.0>:
27b7d: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b
27b8d: 746c6975 5f6e695f 656e696c 7572745f uilt_in_line_tru
27b9d: 6f635f65 00726f6c 33221100 77665544 e_color..."3DUfw
27bad: bbaa9988 ffeeddcc ........
00027bb5 <__func__.1>:
27bb5: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b
27bc5: 746c6975 5f6e695f 64616572 6e696c5f uilt_in_read_lin
27bd5: e.
00027bd7 <__func__.2>:
27bd7: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b
27be7: 746c6975 5f6e695f 6e65706f uilt_in_open.
00027bf4 <__func__.4>:
27bf4: 695f766c 645f676d 646f6365 635f7265 lv_img_decoder_c
27c04: 74616572 reate.
00027c0a <__func__.5>:
27c0a: 5f766c5f 5f676d69 6f636564 5f726564 _lv_img_decoder_
27c1a: 74696e69 2f2e2e00 72616873 742f6465 init.../shared/t
27c2a: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s
27c3a: 6c2f6372 6f665f76 6c2f746e 6f665f76 rc/lv_font/lv_fo
27c4a: 665f746e 745f746d 632e7478 nt_fmt_txt.c.
00027c57 <CSWTCH.66>:
27c57: 06040200 0f0d0b09 ........
00027c5f <__func__.0>:
27c5f: 665f766c 5f746e6f 5f746567 6d746962 lv_font_get_bitm
27c6f: 665f7061 745f746d 00007478 ap_fmt_txt...
00027c7c <kern_classes>:
27c7c: 00027c8c 000288d4 00028839 0000313d .|......9...=1..
00027c8c <kern_class_values>:
27c8c: 00000100 00000000 00000100 00000003 ................
27c9c: 00000200 00000000 00000000 00000000 ................
27cac: 00010000 00000000 00000000 00000000 ................
27cbc: 000c0100 0000fa07 f1f20000 04060c02 ................
27ccc: 010d02f6 0008030b 00000000 00000000 ................
27cdc: 020f0000 000000fe 00000000 00000000 ................
27cec: f8000500 00000000 0504fb00 00fd0000 ................
27cfc: fd0003fe fbfffd00 00000000 fd0000fd ................
27d0c: fd0000fc 0000fb00 00000000 fd000000 ................
27d1c: 00fc00fd 00e100f9 0500fb00 fb000008 ................
27d2c: 05080303 000005fc 000000f1 00000000 ................
27d3c: 00000000 000000f7 00000000 00000000 ................
27d4c: f9000000 f600f3fd 000000fe 000a0100 ................
27d5c: 01fffef8 0000fc00 0000edfe 00000000 ................
27d6c: 00000000 0afeec00 00000000 00000000 ................
27d7c: 00000000 000000f6 00000000 08000000 ................
27d8c: 00000300 000000fb 00000000 00000000 ................
27d9c: 00000000 020a0000 00000001 00000000 ................
...
27dcc: 000000f7 00000000 00000000 00000000 ................
27ddc: 00000000 02000000 fd080305 fd050000 ................
27dec: 0702ddf8 00fd0105 00080009 00e80008 ................
27dfc: 080008fd 000305fd 00fd0100 0014fc00 ................
27e0c: 00080014 0804030b f7000000 00000000 ................
27e1c: 0200fe01 02fbfdfb 0000fd00 0000f600 ................
...
27e34: 0000ef00 00000000 00000000 00000000 ................
27e44: 00f20100 000000f0 1900fe00 0303fdfd ................
27e54: 03fd00fe 00f20000 00000000 00000000 ................
27e64: 00e70000 00000003 00000000 00000000 ................
27e74: 0f00f000 00f70000 e7ef0008 0008fbef ................
27e84: 0300ef00 00fc00fa 00000000 00000000 ................
27e94: 07000000 0000e108 00000000 00000000 ................
27ea4: 000c0000 00000002 02020000 ff00fbfd ................
27eb4: 0000fdff 000000fe 00fe00fb fa00fbfa ................
27ec4: 00fbf8f8 00fb00fb fe000000 00030000 ................
27ed4: 0100fd02 03000000 000000fe ff0303fe ................
27ee4: fb000000 0000ff00 01000000 00fe0300 ................
27ef4: 00fc00fd 0800fe00 00fd0000 00000000 ................
27f04: fefe01ff 00fd0000 000000fd 00000000 ................
27f14: ffff0000 00fdfd00 00000000 fe000001 ................
27f24: fdfdfd00 00000000 00000000 0000fe00 ................
27f34: fdfe0000 f800fc00 0005f8fe 0503fb00 ................
27f44: fffa0007 f4ff00fd f202fe03 01000003 ................
27f54: fef200f3 f300feea 00070500 00000003 ................
27f64: fb000100 00f800fd 00fd0000 00fd0000 ................
27f74: 00000000 ff00ffff 000000fd 00000000 ................
27f84: fe00fdfd 0000fefd 000000fd 00000000 ................
27f94: 00000000 fd00fefe fb00fe00 fd000003 ................
27fa4: 00030301 00000000 0000fe00 02000000 ................
27fb4: 00fd0000 00fdfefd 00000000 00020000 ................
27fc4: 000000fe 00fcfd00 fe0800fb 0000f801 ................
27fd4: f5f3f307 fe0003fb fb00fbef fb04fb00 ................
27fe4: 00f900f0 02ff0100 000300fe f300f6f8 ................
27ff4: f8fafbfa fbfff9fd 010002f9 0000fd00 ................
28004: 03000200 00000000 00000000 fd000000 ................
28014: ff00ff00 fafc00fd f800fffa 00000000 ................
28024: 00fe0000 01000000 000000fe 00000003 ................
28034: 00000000 00000c00 00000000 00000002 ................
28044: 000000fd 00000000 00000000 000300fb ................
...
28060: 000000fe 000000fb 00f8f300 f3fc0000 ................
28070: 03fd0000 0000f900 00000000 00000000 ................
28080: fb0000fc 00000000 00000000 00000000 ................
28090: 00fb0003 03000000 fbfb0200 fdfdfd00 ................
280a0: 00000000 00f80000 fdfc00fd f8fafa00 ................
280b0: 00fb00fe 000000f8 00001400 fd000001 ................
280c0: f5000300 00000000 08fbe800 00f5fe08 ................
280d0: f300fc03 ee03fdff 040003fd f8f7fcf7 ................
280e0: f10000f5 00000f00 000000ff f9fdffff ................
280f0: 00e8fff8 00000000 00000000 00000001 ................
...
2810c: ff00fd00 0000fcfd 00fd00fb 00000000 ................
...
28124: 00ff0000 050000fb fa0003ff f9fffe03 ................
28134: fdfd00fd fcfc00fe fffe0000 00fdfcfe ................
28144: 0300fd00 00fa00fe 00fb0000 fcfc00fc ................
28154: 00000003 00000000 0003fb00 fdfe00fc ................
28164: fefefef8 fffdfeff 00000000 fefefd00 ................
28174: 00000000 fe00fe03 fe000000 fdfefefd ................
28184: 0a0200fe 00f900ff fd0005fe 0004fdf5 ................
28194: 03fcf400 fe0002fc fc00f8fe fc000001 ................
281a4: 03000000 00fbfb03 fdfcfdfc 01fc00fd ................
281b4: 0008fcfb 00000000 00000000 00000003 ................
...
281d8: 000000fc 00000000 00000000 00000000 ................
...
28204: 000000fe 00000000 00000000 00000000 ................
...
28220: fdfe0000 00000000 00000000 00000000 ................
28230: fd0000fc fdfd0000 00000000 000000fd ................
28240: 0000ff00 fe000000 00000000 00fb00fc ................
28250: 00f80000 0105fa02 0000f4fe f600fdfa ................
28260: 0000f9fa f6f6fdf5 00f900f4 00fd1102 ................
28270: fdfffdfa f7fbf9fc 00fdfaf6 0100fe00 ................
28280: feee0000 f7fa0608 00f80100 05fdfef3 ................
28290: 0001fde8 f3fdef00 0000edfd 010f00ee ................
282a0: 0000fe00 feff0000 ef00fef6 00000000 ................
282b0: 00fe00f8 00f4f9ff f8fcff00 00fe00fd ................
282c0: f4000000 fef8f8fd fcfdfafc f8fefb00 ................
282d0: fbfd00fc 0100fbfd 00f8fe00 00fb0005 ................
282e0: 03000000 0afb0200 fdfdfd00 00000000 ................
282f0: 00f80000 fdfc00fd f8fafa00 02fb00fe ................
28300: 0000000a 00001400 fd000001 00000300 ................
28310: 00000000 00ff0000 00000000 0000fbfe ................
28320: ff000000 fd000000 fb0000fd fb0000fd ................
28330: 00ff0400 00000000 00000100 05040000 ................
28340: f800fe02 f80800fc 0afbfbf8 feea0305 ................
28350: fd00fd05 00f7fd03 fefd03fd 0000fef8 ................
28360: f9000508 07fdf200 fd01f6fd 0afdf8f8 ................
28370: 00fc0003 080200f9 faf6f7fa ed010008 ................
28380: fefc03fe f7fa00fa 00fefcfc fdfbfa00 ................
28390: fd060800 fcf200f2 fff1f700 f9f8fcf8 ................
283a0: fd000007 00fefb00 0400fbfd 000003f8 ................
283b0: fafd00f2 faf8fefc f800faf8 f8fbfafd ................
283c0: 010000fd f800fc0c fbfd00fd f6f9f9fa ................
283d0: 0005fbfd fdf300fc f7f80502 fd08f8fb ................
283e0: 05fbe801 00f7fcfa fdfdf5f8 f8fbfdfe ................
283f0: 080000ff 00effe07 f606faf1 f5f7fbef ................
28400: 0005f8f3 fd000000 fd030000 05fb0205 ................
28410: fff80000 0100ff00 0000fe01 00000000 ................
28420: 000000fd 01080200 0000fd00 fefe0000 ................
28430: 000000fd 00000201 00020000 000a00fe ................
28440: fd010105 00000500 00000200 00000000 ................
28450: 00000000 07000800 00000000 00000000 ................
28460: 00000000 00f10000 080004fd 03190000 ................
28470: 0303fbfb 00f301fe 00f10c00 00000000 ................
28480: 00000000 0aef0000 00000024 00000000 ........$.......
28490: 00000000 0000f100 00000000 00000000 ................
...
284b0: fb0000fc 000000fe 00000000 00000000 ................
...
284c8: 00f900fe 00000100 fefb2103 03f90708 .........!......
284d8: 03030000 000000fd 00000000 00000000 ................
284e8: 000007df 00000000 00000000 00000000 ................
284f8: f9000000 f9000000 00000000 0000fffa ................
28508: fd00fa00 0000f400 00000000 00000000 ................
28518: 0000ef00 00010000 00000000 0000fd00 ................
28528: 00fc00fb 000000f9 00fd03fc fafdf900 ................
28538: 00f90000 00f400fd eb0000fd f7fdf6fb ................
28548: 00ef0000 0000fff9 00000000 fbfc0000 ................
28558: 0000fcfe 00fa0000 05fd03fa fefafe00 ................
28568: fd00fbfc f902feff 000000ff 00fcfee9 ................
28578: f4fe00fa fe0000fe 000000fe fe000200 ................
28588: 0004fefc 00000000 00000000 00000000 ................
...
285b4: 00030000 00000000 fe00fa00 fb000000 ................
285c4: 00000003 00fbfdf9 fd00f900 0000f400 ................
285d4: 00e70000 00f3f7fb fe00ef00 000000fc ................
285e4: 00000000 fffcfd00 000001fc 0800fd04 ................
285f4: f8fdfd0d 06040d03 030b03f9 00070607 ................
...
2860c: 0c100000 fe00fdfb 00140b14 00030000 ................
2861c: 00000900 000000fc 00000000 00fe0000 ................
2862c: 00000000 04000000 00000000 f6fefdea ................
2863c: ef0000f3 00000000 00000000 00000000 ................
2864c: 00000000 0000fc00 00000000 fe000000 ................
...
28664: 00000004 fefdea00 0000f3f6 000000f6 ................
...
28684: 000000fe fd0003fa f8030502 03feff00 ................
28694: 00000200 00fa0000 00fbfefe 1000f6fe ................
286a4: fefa00fd 00fcfe00 fdfbf9fd fc000000 ................
...
286bc: 0000fe00 00000000 00040000 ea000000 ................
286cc: f3f6fefd 00ef0000 00000000 00000d00 ................
...
286e4: fdf800fc fdfe08fe 01fe01f6 0601f9fe ................
286f4: 02010201 00fdf6fa f5f9fbf6 fbfc00f6 ................
28704: fefefdfd fe00fefd 040004ff 000800fe ................
...
2871c: fe000000 0000fdfd 00ff00f9 000000fc ................
...
28734: 000000f1 00000000 00000000 fd00fdfd ................
28744: 00000000 fc0000fe fc0003fd f900fefb ................
28754: fdfefafe 0000fc00 00000000 00000000 ................
28764: 0800ef00 00fb0000 fd000000 0000fd00 ................
28774: fe0000ff 0000fa00 f8f8fd0b ff030302 ................
28784: 020402f9 fe080208 f60000f9 f9f80000 ................
28794: 00fb0000 fc00fcfd fe00fc00 f8fe0004 ................
287a4: 000009fd 00fb00fe 00fa0300 0002fd03 ................
287b4: fe00f800 03fd00ff 000000fe 00fafdf6 ................
287c4: f40000f8 00fd0900 000200fb f8fd00fd ................
287d4: 0003fd00 fe000000 fd030000 fd000001 ................
287e4: 00fd00fe 00000000 00000000 00000000 ................
287f4: 00000000 000600f0 0000fe00 00010000 ................
28804: 0000fdfd 06000500 00000000 01f1f000 ................
28814: f604080b 09000b02 00000500 00000000 ................
28824: 00000000 00000e00 00000000 00000000 ................
28834: 00000000 .....
00028839 <kern_right_class_mapping>:
28839: 02010000 05040300 08070602 0a090a09 ................
28849: 0e0d0c0b 0c11100f 15141312 00000015 ................
28859: 19181716 19191917 1a191917 19191919 ................
28869: 19171917 1d1c1b03 201f1e1d 00232221 ........... !"#.
28879: 26250024 00272727 29282627 2a2a2626 $.%&'''.'&()&&**
28889: 2a272a27 2e2d2c2b 302e2f2e 09230000 '*'*+,-../.0..#.
28899: 00000931 00000000 00000000 00000000 1...............
...
000288d4 <kern_left_class_mapping>:
288d4: 02010000 05040300 08070602 0a090a09 ................
288e4: 0d000c0b 11100f0e 140c1312 00000014 ................
288f4: 18171615 1b1a1619 1e1d1d1c 1d1d201f ............. ..
28904: 23222116 251e2403 28272625 002b2a29 .!"#.$.%%&'()*+.
28914: 2e2d002c 3231302f 34342d33 2d2d3035 ,.-./0123-4450--
28924: 37362e2e 3a333938 3c3a3b3a 09000029 ..67893::;:<)...
28934: 0000093d 00000000 00000000 00000000 =...............
...
00028970 <cmaps>:
28970: 00000020 0001005f 00000000 00000000 ..._...........
28980: 00000000 000000b0 0060f7f3 00028998 ..........`.....
28990: 00000000 0002003b ....;...
00028998 <unicode_list_1>:
28998: 1f720000 ef58ef51 ef5cef5b ef61ef5d ..r.Q.X.[.\.].a.
289a8: ef65ef63 ef6cef69 ef76ef71 ef78ef77 c.e.i.l.q.v.w.x.
289b8: ef98ef8e ef9cef9b efa1ef9d efa3efa2 ................
289c8: efb7efa4 efbeefb8 efc1efc0 efc7efc4 ................
289d8: efc9efc8 efe3efcb f014efe5 f017f015 ................
289e8: f03af037 f06cf043 f0abf074 f190f13b 7.:.C.l.t...;...
289f8: f192f191 f194f193 f1e3f1d7 f254f23d ............=.T.
28a08: f712f4aa 0000f7f2 ........
00028a10 <glyph_dsc>:
...
28a18: 04500000 00000000 04500000 00010c03 ..P.......P.....
28a28: 06400012 07010505 0b40001f 00000c0b ..@.......@.....
28a38: 09f00061 fe00100a 0d8000b1 00000c0d a...............
28a48: 0b0000ff ff000d0b 03600147 07010502 ........G.`.....
28a58: 0560014c fd010f04 0570016a fd000f04 L.`.....j.p.....
28a68: 06600188 05000707 095001a1 02010808 ..`.......P.....
28a78: 03a001c1 fe000503 062001c9 03000306 .......... .....
28a88: 03a001d2 00000303 05a001d7 feff1008 ................
28a98: 0ab00217 00000c0a 05f00253 00000c05 ........S.......
28aa8: 09300271 00000c09 092002a7 00000c09 q.0....... .....
28ab8: 0ab002dd 00000c0b 0930031f 00000c09 ..........0.....
28ac8: 09e00355 00000c0a 09900391 00000c09 U...............
28ad8: 0a5003c7 00000c0a 09e00403 00000c0a ..P.............
28ae8: 03a0043f 00000903 03a0044d fd000c03 ?.......M.......
28af8: 0950045f 02010808 0950047f 03010608 _.P.......P.....
28b08: 09500497 02010808 093004b7 00000c09 ..P.......0.....
28b18: 109004ed fd000f10 0bb00565 00ff0c0d ........e.......
28b28: 0c2005b3 00010c0b 0b9005f5 00000c0b .. .............
28b38: 0d300637 00010c0c 0ac0067f 00010c09 7.0.............
28b48: 0a3006b5 00010c09 0c6006eb 00000c0c ..0.......`.....
28b58: 0d000733 00010c0b 04f00775 00010c03 3.......u.......
28b68: 08300787 00ff0c08 0b8007b7 00010c0b ..0.............
28b78: 098007f9 00010c09 0f40082f 00010c0d ......../.@.....
28b88: 0d00087d 00010c0b 0d7008bf 00000c0d }.........p.....
28b98: 0b90090d 00010c0a 0d700949 fd000f0e ........I.p.....
28ba8: 0ba009b2 00010c0a 09f009ee 00000c0a ................
28bb8: 09600a2a 00000c0a 0ca00a66 00010c0b *.`.....f.......
28bc8: 0b600aa8 00ff0c0d 12000af6 00000c12 ..`.............
28bd8: 0ac00b62 00000c0b 0a600ba4 00ff0c0c b.........`.....
28be8: 0a800bec 00000c0b 05500c2e fd010f05 ..........P.....
28bf8: 05a00c54 feff1008 05500c94 fd000f04 T.........P.....
28c08: 09500cb2 02010708 08000cce fe000208 ..P.............
28c18: 09a00cd6 0a010205 09900cdb 00000909 ................
28c28: 0af00d04 00010c0a 09200d40 00000909 ........@. .....
28c38: 0af00d69 00000c0a 09d00da5 0000090a i...............
28c48: 05a00dd2 00000c07 0b100dfc fd000c0a ................
28c58: 0ae00e38 00010c09 04700e6e 00010c03 8.......n.p.....
28c68: 04900e80 fdfe0f06 09e00ead 00010c09 ................
28c78: 04700ee3 00010c02 10f00eef 0001090f ..p.............
28c88: 0ae00f33 00010909 0a300f5c 0000090a 3.......\.0.....
28c98: 0af00f89 fd010c0a 0af00fc5 fd000c0a ................
28ca8: 06901001 00010906 0800101c 00000908 ................
28cb8: 06a01040 00000b07 0ad01067 00010909 @.......g.......
28cc8: 08f01090 00ff090a 0e6010bd 0000090f ..........`.....
28cd8: 08d01101 00000909 08f0112a fdff0c0a ........*.......
28ce8: 08501166 00000908 05a0118a fd000f06 f.P.............
28cf8: 04d011b7 fd010f03 05a011ce fd000f05 ................
28d08: 095011f4 04000509 06b0120b 06000606 ..P.............
28d18: 0500121d 03010403 10001223 fe001110 ........#.......
28d28: 100012ab 00000c10 1000130b ff000e10 ................
28d38: 1000137b 00000c10 0b0013db 00000c0b {...............
28d48: 1000141d fe001010 1000149d fe001010 ................
28d58: 1200151d ff000e12 1000159b fe001010 ................
28d68: 1200161b 00000c12 10001687 fe001010 ................
28d78: 08001707 ff000e08 0c00173f ff000e0c ........?.......
28d88: 12001793 fe001012 10001823 00000c10 ........#.......
28d98: 0e001883 fe02100a 0e0018d3 fd00120e ................
28da8: 0e001951 ff000f0e 0e0019ba ff000e0e Q...............
28db8: 0e001a1c fe02100a 0e001a6c ffff0e10 ........l.......
28dc8: 0a001adc ff000e0a 0a001b22 ff000e0a ........".......
28dd8: 0e001b68 ff000e0e 0e001bca 0400040e h...............
28de8: 12001be6 00000c12 14001c52 fe001014 ........R.......
28df8: 12001cf2 feff1014 10001d92 fe001010 ................
28e08: 0e001e12 01000a0e 0e001e58 01000a0e ........X.......
28e18: 14001e9e ff000e14 10001f2a 00000c10 ........*.......
28e28: 10001f8a fe001010 1000200a feff1111 ......... ......
28e38: 0e00209b ff000e0f 0e002104 fe00100e . .......!......
28e48: 0e002174 ff000e0e 0a0021d6 feff100c t!.......!......
28e58: 0e002236 fe00100e 0e0022a6 fe00100e 6"......."......
28e68: 12002316 00000c12 10002382 fdff1212 .#.......#......
28e78: 0c002424 fe00100c 14002484 ff000f14 $$.......$......
28e88: 1400251a 01000a14 1400257e 01000a14 .%......~%......
28e98: 140025e2 01000a14 14002646 01000a14 .%......F&......
28ea8: 140026aa 01000a14 1400270e ff000e15 .&.......'......
28eb8: 0e0027a1 fe01100c 0e002801 fe00100e .'.......(......
28ec8: 10002871 fdff1111 14002902 00000c14 q(.......)......
28ed8: 0c00297a fe00100c 102029da 01000b11 z).......) .....
00028ee8 <gylph_bitmap>:
28ee8: aff00bbf 089ee00a c0078cd0 bf100000 ................
28ef8: 1ff5e01a e4f3513f f2403e0f 00100872 ....?Q...>@.r...
28f08: e003c005 007a0000 0900005c 01a00780 ......z.\.......
28f18: ffffffff 733e03fd 0030833c 00c500f2 ......>s<.0.....
28f28: 0e100f00 f0020030 9f00f200 ffffffff ....0...........
28f38: 36c33841 890030e3 00005c00 a007700a A8.6.0...\...p..
28f48: 79000000 00000000 00000079 20e9ff5c ...y....y...\..
28f58: 9ebcfc06 79b00e90 800f1000 0d000079 .......y....y...
28f68: 000079f5 50fdef03 cf060000 000040fe .y.....P.....@..
28f78: 00f15e79 f3057900 07790007 bce92ff1 y^...y....y../..
28f88: ae03a0af 0000d7ff 00007900 00790000 .........y....y.
28f98: 80de0300 00d00500 01500ce4 004c00e3 ..........P...L.
28fa8: 00a9005a c004a006 4c00004e 500d5a00 Z.......N..L.Z.P
28fb8: 1ce40000 0000a058 e173ce03 0000e93c ....X.....s.<...
28fc8: 400ed600 7c0000a8 d003c003 3c202e00 ...@...|...... <
28fd8: 0b003d00 09e20070 00d00680 00a0dd04 .=..p...........
28fe8: 00b1ef09 3ce40900 d90000a0 00007d00 .......<.....}..
28ff8: a01cc00c ae3f0000 010000c1 0000c0df ......?.........
29008: 708feb03 00db0018 3ff0657f ea8f0040 ...p.....e.?@...
29018: 0000f703 f90b70cf 40bfcf66 30eadf08 .....p..f..@...0
29028: 000000a5 f5000000 72e4e4f5 f205da00 ...........r....
29038: 700fc00b 205f403f 007f106f 205f106f ...p?@_ o...o._
29048: 700f403f f205c00b 303fda00 f106b00c ?@.p......?0....
29058: e900f601 ad00bc00 ad00ae00 e900bc00 ................
29068: f106f601 303fb00c 06004a00 2ba0a474 ......?0.J..t..+
29078: 7f00e5ff 6b7b20fb a004008d 00130000 ..... {k........
29088: 10050000 500f0000 500f0000 511f0100 .......P...P...Q
29098: ffffef10 744f34f3 500f0040 500f0000 .....4Ot@..P...P
290a8: fd520900 0fc5a00b 10110100 04f3ff1f ..R.............
290b8: 12034044 00901efc 00f10500 00b00a00 D@..............
290c8: 00600f00 00105f00 0000ab00 0000f600 ..`.._..........
290d8: 0000f105 0000b00a 0000600f 0000104f .........`..O...
290e8: 000000ac 040000f6 0a0000f1 0e0000c0 ................
290f8: 4f000060 00000010 00c5ef08 cfa8cf00 `..O............
29108: 00f50770 c00df20a 1ff80100 dc000080 p...............
29118: 0000603f 00603fbd 801fbd00 0ddc0000 ?`...?`.........
29128: f80100c0 0a00f507 a8cf00f2 080070cf .............p..
29138: ef00c5ef f37a36ff 05305f00 305f00f3 .....6z.._0..._0
29148: 5f00f305 00f30530 f305305f 05305f00 ..._0..._0..._0.
29158: fdbe04f3 98fd0770 002890cf 0000bf00 ....p.....(.....
29168: 00f20700 00af0000 804f0000 c03f0000 ..........O...?.
29178: c13e0000 c12e0000 d12e0000 f82e0000 ..>.............
29188: ff467777 6ffaffff 02ffffff b09f7777 wwF....o....ww..
29198: e10c0000 f3090000 f6050000 df000000 ................
291a8: 040010e9 0000fd59 00f40600 643f0000 ....Y.........?d
291b8: f3080040 fb8cc9bf d7ff7c00 01000000 @........|......
291c8: 000000eb 0010be00 506f0000 2f000000 ..........oP.../
291d8: 00000090 0000d00c 01f30800 f80300d5 ................
291e8: 00602f00 f72322ed ffff6f21 5581ffff ./`.."#.!o.....U
291f8: 52f95655 2f000000 00000060 0500f602 UV.R.../`.......
29208: 00ffffff 7077777f 0000e008 0000ad00 .....wwp........
29218: 10c20b00 ffdf0000 550430fb 0020ff68 .........0.Uh. .
29228: 00f80400 920f0000 f6050050 fd8ad98f ........P.......
29238: e9ef5b10 ce050010 9f0060fc 05708bc8 .[.......`....p.
29248: 000000f8 0000d00c 00801f00 682f0000 ............../h
29258: 3f10faef d08f64ee 0600f12f 00c00ef4 ...?.d../.......
29268: f109f602 01f30600 b09f86de d8ef1900 ................
29278: ffff8f00 77f7e8ff 008ffc77 90554f00 .......ww....OU.
29288: 00e00b00 00f80200 109f0000 b00f0000 ................
29298: f4060000 dd000000 3f000000 0a000070 ...........?p...
292a8: 010000f1 000000f9 00d7ff5c af76fc06 ........\.....v.
292b8: 00d00ca0 c00df109 07f20700 c05e11f7 ..............^.
292c8: feffbf00 54f90910 802fd07e 4ff60400 .......T~./....O
292d8: f8000050 0500a01f 76fb09f6 6c00d0af P..........v...l
292e8: 0010d8ff 0080fd8e fc68f80c 00505f00 ..........h.._P.
292f8: 008f703f 7fc00e00 f01f0030 cf13d41f ?p......0.......
29308: ffef04f1 0200f0a9 00f00a31 a00e0000 ........1.......
29318: 9f000000 8da70930 df0700f7 1e0040eb ....0........@..
29328: 1003fc92 00000000 1efc1203 fc921e90 ................
29338: 00001003 01000000 a8d01fe9 00a0300e .............0..
29348: 00420000 03f37d01 bf10e89f ee0000b5 ..B..}..........
29358: 17000081 0000b4df 00d2af04 ef820100 ................
29368: 45f3ffff 00515555 01000000 ef101111 ...EUUQ.........
29378: 34f3ffff 50404444 ef000000 06000092 ...4DD@P........
29388: 0000b5cf 00e29f03 02f36c00 bf20e99e .........l.... .
29398: 930000c6 04000000 0770fdbe a0bf77fc ..........p..w..
293a8: cf000027 09000000 010000f0 010000ea '...............
293b8: 000010dd 000010ce 0000603f 00003001 ........?`...0..
293c8: 00000100 00f50600 405f0000 17000000 .........._@....
293d8: 00b5fdce fb050000 c27d2353 406e0000 ........S#}...n@
293e8: 8e000000 01f40210 493ffaae 1e900ab0 ..........?I....
293f8: 40ef5be6 8f300fe3 40af0010 d9001f98 .[.@..0....@....
29408: 403f0000 e8003f6a 401f0000 d9001f5c ..?@j?.....@\...
29418: 403f0000 8f300f6a 40af0010 1e900a98 ..?@j.0....@....
29428: a6de5ad6 01f303f2 ee16faaf 406e0050 .Z..........P.n@
29438: 00000000 fb060000 00752353 17000000 ........S#u.....
29448: 00a3fdce 02000000 000000fd f49f0000 ................
29458: 00000000 00b09e0f f2060000 0000207f ............. ..
29468: f801dc00 4f000000 00e00b60 00f00b00 .......O`.......
29478: 0100604f ed1111fa ff8f0000 00f3ffff O`..............
29488: 4444c40e f406a04f af000000 0000cd10 ..DDO...........
29498: 5ff80200 40ebffff 5755f805 405f40df ..._...@..UW.@_@
294a8: 05fa0100 0f0000f4 11515fa0 ff05f43a ........._Q.:...
294b8: 00faffff 5944745f 00f405fa 5ff20800 ...._tDY......._
294c8: 5f000040 0000f445 855ff209 05fb6a55 @.._E....._.Uj..
294d8: d7ffffff 8d020000 0400b4fe f99db8ff ................
294e8: 0020fd02 20bf5008 0f000000 000000a0 .. ..P. ........
294f8: 0000f602 602f0000 00000000 000000fa ....../`........
29508: 00f20b00 2f000000 850000d2 89fb5f00 ......./....._..
29518: 290080df 5f40ebdf 30eaffff 77975f00 ...)..@_...0._.w
29528: 5f00f89e af000040 00405f60 5fe00d00 ..._@...`_@...._
29538: 06000040 00405ff4 5ff60300 03000040 @...._@...._@...
29548: 00405ff6 5ff40600 0d000040 00405fe0 ._@...._@...._@.
29558: 5f60af00 f89e7797 ffff5f00 5f0030ea ..`_.w..._...0._
29568: 95ffffff 747777f9 0000405f 0000f405 .....wwt_@......
29578: 11515f00 ffff0511 745fe0ff f4054444 ._Q......._tDD..
29588: 5f000000 05000040 000000f4 7777975f ..._@......._.ww
29598: ffffff65 ffff5ffd 77f995ff 405f7477 e...._.....wwt_@
295a8: f4050000 5f000000 05000040 102222f5 ......._@...."".
295b8: feffff5f 5555f805 00405f40 00f40500 _.....UU@_@.....
295c8: 405f0000 f4050000 00000000 b5fe8d01 .._@............
295d8: fb4f0000 02b0df89 060020fd 00f20b60 ..O...... ..`...
295e8: 0f000000 000000a0 00602f00 2f000000 ........./`..../
295f8: 09000060 00a00ff0 0bf00900 090000f2 `...............
29608: 20fd02f0 00f00a00 df89fb4f 8d0200c0 ... ....O.......
29618: 5f00c6fe 4f000040 0000f455 405ff504 ..._@..OU....._@
29628: 554f0000 040000f4 22525ff5 ff555f22 ..OU....._R""_U.
29638: f5ffffff 5555855f 00f4558f 5ff50400 ...._.UU.U....._
29648: 4f000040 0000f455 405ff504 554f0000 @..OU....._@..OU
29658: 040000f4 f4455ff5 5ff4455f 455ff445 ....._E._E._E._E
29668: f4455ff4 00f4455f 00faffff 00fa7777 ._E._E......ww..
29678: 00fa0000 00fa0000 00fa0000 00fa0000 ................
29688: 00fa0000 00fa0000 07f90000 0df60320 ............ ...
29698: 01f18ee9 5f30fbae eb020040 0100f405 ......0_@.......
296a8: 405f00ec 0510de01 20ce00f4 bf405f00 .._@....... ._@.
296b8: f4050030 0000909f 40efcf5f 91ff0500 0......._..@....
296c8: 5f0010ee 00fc03a0 0600f405 405f00f8 ..._.........._@
296d8: 05f50900 0c0000f4 00405ff2 00f40500 ........._@.....
296e8: 405f0000 f4050000 5f000000 05000040 .._@......._@...
296f8: 000000f4 0000405f 0000f405 00405f00 ...._@......._@.
29708: 00f40500 975f0000 ff257777 5ff5ffff ......_.ww%...._
29718: 00000040 00fc951e f9080000 0000f55f @..........._...
29728: fd95ff02 ae0000e0 705f5ff9 955f3f00 .........__p.?_.
29738: 0b108ff3 315ff9c0 0ff304e9 f207f395 ......_1........
29748: 5ff900db 20ef0d30 00f3950f f900905f ..._0.. ...._...
29758: 7100305f f3950f00 00000000 00505ff9 _0.q........._P.
29768: ff554f00 f5040020 0000fd5f f9fa554f .OU. ..._...OU..
29778: 5ff50400 4f00f54a f20df455 405ff504 ..._J..OU....._@
29788: 554fd02f 946f00f4 00405ff5 f455afaf /.OU..o.._@...U.
29798: f5df0000 0200405f 00f455ff 00f50600 ...._@...U......
297a8: b5fe8d01 ff040000 00fa9eb8 0020fd02 .............. .
297b8: bf00f908 0a000020 00a00ff2 723f0000 .... .........?r
297c8: 000000f6 602ff900 0f000000 0000fa90 ....../`........
297d8: 0bf70300 000000f2 d22f20af 908f0000 ......... /.....
297e8: 89fb4f00 0000a0ef 50ebdf28 ffff5f00 .O......(..P._..
297f8: 975f00d7 5fc0bf78 f6070040 0000405f .._.x.._@..._@..
29808: 00405ffa 405ffa00 5ff80300 f16e2362 ._@..._@..._b#n.
29818: fdffff5f 54855f30 405f0020 5f000000 _...0_.T ._@..._
29828: 00000040 0000405f 8d010000 0000b5fe @..._@..........
29838: 89fb4e00 0200a0ef 080020fd f20a00f9 .N....... ......
29848: af000000 00a00f20 703f0000 0000602f .... .....?p/`..
29858: 2f900f00 00000060 901f900f 2f000000 .../`........../
29868: 00f10b70 20af0000 0010fc03 0000f907 p...... ........
29878: df78fa6f 030000b0 00c5ffae 00000000 o.x.............
29888: b015d43e 02000000 0080ffbf 01000000 >...............
29898: ff5f0031 5f00d7ff c0bf7897 0700405f 1._...._.x.._@..
298a8: 00405ff6 405ffa00 5ffa0000 f8030040 ._@..._@..._@...
298b8: 6e23525f ffff5fe1 855f30fc 5f00f955 _R#n._...0_.U.._
298c8: 407f0040 0c00405f 00405fe0 5c00f902 @..@_@..._@....\
298d8: 0720d9ef 90af87fc 0100c00e 00800f10 .. .............
298e8: f50d0000 03000000 0050eaef feae0500 ..........P.....
298f8: 00000040 0000f14e 08f30500 f2080000 @...N...........
29908: bf77fa2f ff9d02a0 ffff00c7 67f5ffff /.w............g
29918: 7277fb78 00f70100 f7010000 01000000 x.wr............
29928: 000000f7 0000f701 00f70100 f7010000 ................
29938: 01000000 000000f7 0000f701 00f70100 ................
29948: f7010000 306f0000 168f0000 080000f3 ......o0........
29958: 00306ff1 f3168f00 f1080000 0000306f .o0.........o0..
29968: 00f3168f 6ff10800 8f000030 0000f405 .......o0.......
29978: 703ff009 00cd0000 5f0020de a8ff0480 ..?p..... ._....
29988: 0300d0bf 0081fdbe 0000e00c 6f306f00 .............o0o
29998: 0c000050 00fb00c0 00f60300 0000f209 P...............
299a8: 2f0000ae 901f0080 00ce0000 0000f207 .../............
299b8: db00f605 0e000000 00504fc0 3b8f0000 .........OP....;
299c8: 000000e0 00f8fb02 0b000000 000010ff ................
299d8: b04f0000 405f0000 00df0000 0ff50200 ..O..._@........
299e8: ff020090 f0070040 0700e00b 0c0090fe ....@...........
299f8: 00f306b0 00e0aa0c f801601f f3541f00 .........`....T.
29a08: 00106f00 107f00cd 00cc00f8 cb207f00 .o............ .
29a18: f701ad00 712f0000 265f00f6 0d0000f2 ....../q.._&....
29a28: 0f00f1c6 0000d07b 00c0fd08 0080df0b ....{...........
29a38: 70ff0300 30ff0600 ef000000 fe010020 ...p...0.... ...
29a48: 903f0000 00cd0000 7f00408f 10de0030 ..?......@..0...
29a58: 0300802f 00d00cfa f3fb0700 0c000000 /...............
29a68: 000000f8 00c0ef01 7fbf0000 6f000070 ............p..o
29a78: 0020af60 ed01b02f 00f10c00 f607f804 `. ./...........
29a88: f3090000 0000e00c f703f207 901f0000 ................
29a98: 0010af00 1f00109e 00f602a0 0bf30800 ................
29aa8: 000000d0 00404fec fb5f0000 00000000 .....O@..._.....
29ab8: 0000f20c f0090000 00000000 0000f009 ................
29ac8: f0090000 00000000 0000f009 ffffff3f ............?...
29ad8: 777701fd 0090bf77 c01e0000 0c000000 ..www...........
29ae8: 000000f2 0000f508 00f90400 ec010000 ................
29af8: 00000000 000020cf 00508f00 904f0000 ..... ....P...O.
29b08: 1e000000 777777f8 ffffff05 ff5ff0ff .....www......_.
29b18: 5f50f705 00f30530 f305305f 05305f00 ..P_0..._0..._0.
29b28: 305f00f3 5f00f305 00f30530 f705305f .._0..._0..._0..
29b38: 00ff5f50 0000007e 0000401f 0000900c P_..~....@......
29b48: 0000e007 0000f402 0000c900 00007e00 .............~..
29b58: 00402f00 00900c00 00e00700 00f30200 ./@.............
29b68: 00d90000 007e0000 302f0000 900d0000 ......~.../0....
29b78: e0070000 ea35fabf ea00ea00 ea00ea00 ......5.........
29b88: ea00ea00 ea00ea00 ea00ea00 ea35ea00 ..............5.
29b98: 2f00fabf 9d000080 f30000e0 d00600d5 .../............
29ba8: 600c007b 103f201f 009a800b ffffe004 {..`. ?.........
29bb8: 1111ffff f6071111 01e70300 0080fd9e ................
29bc8: 90af87ce af000002 06000000 ffbe02f2 ................
29bd8: 42ec20ff 502ff227 ec207f00 02f27f42 . .B'./P.. .B...
29be8: 206ffbbf 0000008f 00008f00 008f0000 ..o ............
29bf8: 8f000000 00b3fe2b ef78ec8f 00a08f30 ....+.....x.0...
29c08: 208fc01e 8ff10700 f3050000 0700208f ... ......... ..
29c18: 00a08ff1 ec8fd01e 8e30ef78 00b3fe2b ........x.0.+...
29c28: c4ef3a00 7cd84f00 00d00df4 00f61307 .:...O.|........
29c38: 304f0000 f6030000 0d000000 100600d0 ..O0............
29c48: f47cd74f c4ef3a00 00000000 0000f701 O.|..:..........
29c58: 00f70100 f7010000 a3ff3b00 87fd04f7 .........;......
29c68: d00ef7ce 3ff70b00 f7030060 0100304f .......?`...O0..
29c78: 00503ff7 c00ef703 04f70a00 f7be65fc .?P..........e..
29c88: b2ff3b00 fe3b00f7 fc0400a2 0e20ee67 .;....;.....g. .
29c98: a01e00c0 0700503f ffff4ff0 723ff1ff ....?P...O....?r
29ca8: 0e202222 000200c0 af87fd04 ef3a0050 "" .........P.:.
29cb8: 5d0000d6 b52f00fc 00f30470 a0ffff0c ...]../.p.......
29cc8: 0053f748 0500305f 5f0000f3 f3050030 H.S._0....._0...
29cd8: 305f0000 00f30500 00305f00 b2ff3b00 .._0....._0..;..
29ce8: 87fe04e9 d10ef9cf 3ff90a00 f9010060 ...........?`...
29cf8: 0000404f 00603ff9 d00ef901 04f90900 O@...?`.........
29d08: f8cf87fd b3ff3b00 000000f7 e909f405 .....;..........
29d18: 01b0af77 00d8ff7c 0000008f 0000f008 w...|...........
29d28: 00008f00 bff20800 fb8f10ea f808fd89 ................
29d38: 8ff40600 781f0010 f80000f0 0f00008f .......x........
29d48: 0000f088 00008ff8 00f0880f 1a9ef800 ................
29d58: f00800f2 8ff0088f 088ff008 f0088ff0 ................
29d68: 00e20700 0000f309 f1070000 00f10700 ................
29d78: 0700f107 f10700f1 00f10700 0700f107 ................
29d88: f10700f1 18f00800 fc3ec06e 00008f20 ........n.>. ...
29d98: 00f00800 008f0000 f0080000 8fd11d00 ................
29da8: 08e21d00 00e21df0 00f32d8f 70fffe08 .........-.....p
29db8: bfe28f00 01f20830 008f10ee f008fb03 ....0...........
29dc8: 8ff70700 8f8f8f8f 8f8f8f8f 8e8f8f8f ................
29dd8: 3b91fe3c ff08a2fe c6cf9f96 708fd08f <..;...........p
29de8: 00c09f00 00f1585f 0100f605 00008ff7 ...._X..........
29df8: 0f00404f 0400f088 f80000f4 4f00008f O@.............O
29e08: 880f0040 f40400f0 8ff80000 404f0000 @.............O@
29e18: 8e800f00 08a1fe3b d08fa6ff 6f00808f ....;..........o
29e28: 0100f148 00008ff7 00f0880f 008ff800 H...............
29e38: f0880f00 8ff80000 800f0000 c4ef3b00 .............;..
29e48: 87fd0400 d00e60cf 3ff10b00 f5030060 .....`.....?`...
29e58: 0100304f 00603ff7 d00ef503 04f10b00 O0...?`.........
29e68: 60cf77fd c4ef3b00 fe3b8e00 fb8f00b3 .w.`.;....;.....
29e78: 8f30df57 c00d0090 0700108f 00008ff1 W.0.............
29e88: 208ff305 8ff10700 d01e00a0 ef78ec8f ... ..........x.
29e98: fe2b8f30 008f00b3 8f000000 00000000 0.+.............
29ea8: 0000008f ff3b0000 fd04f7a2 0ef7de87 ......;.........
29eb8: f70b00d0 0300603f 00304ff7 603ff701 ....?`...O0...?`
29ec8: 0ef70300 f70b00d0 ce77fd04 ff3b00f7 ..........w...;.
29ed8: 0000f7a3 00f70100 f7010000 01000000 ................
29ee8: f02b8ef7 8f90ed8f 208f00a0 00008f00 ..+........ ....
29ef8: 8f00008f 008f0000 00008f00 91fdae02 ................
29f08: d069d71e 0000304f 0010b42f 60fdef06 ..i.O0../......`
29f18: f55b0100 f7000001 f36ba75f 40ecdf19 ..[....._.k....@
29f28: 0000f305 cf00305f 8f04faff f3053075 ...._0......u0..
29f38: 305f0000 00f30500 00305f00 0000f404 .._0....._0.....
29f48: 0080c61f ae10fc5d 5a2f0000 f50200e0 ....]...../Z....
29f58: 2f0000ae 0200e05a 0000aef5 00f0592f .../Z......./Y..
29f68: 306ff504 ee51af00 02f5bf76 503ffbbe ..o0..Q.v.....?P
29f78: 0000c00d 00f206cb f900f502 00e00900 ................
29f88: 800f009e 6f602f00 c00c0010 050000cb ...../`o........
29f98: 0000f4f6 00d0ef00 708f0000 0000bb00 ...........p....
29fa8: 4f00109f 0e00f116 c00900f6 fc05600f ...O.........`..
29fb8: 00f600b0 5fab00ac 05105f10 f7500ff1 ......._._....P.
29fc8: 0f00b00a c009f076 ac0000f5 8f4f00ba ....v.........O.
29fd8: ff040000 a0ef0040 e00e0000 00f40800 ....@...........
29fe8: 00704f00 308f209f cd00505f 0200902e .Op.. .0_P......
29ff8: 0000d0ff 0000f60a 00e1fd04 c00deb01 ................
2a008: 3f10be00 00406f80 c00d407f 06cb0000 ...?.o@..@......
2a018: f40200f3 0900ea00 108f00d0 1f00701f .............p..
2a028: 00107f70 00d9e00a f2f90300 cf000000 p...............
2a038: 000000b0 0000406f 0000ad00 00f5791c ....o@.......y..
2a048: 70ee1a00 ff4f0000 5515f9ff 0000f45b ...p..O....U[...
2a058: 0100804f 0b0000ec 8f0000e1 f7040040 O...........@...
2a068: e51e0000 ff5f5355 2c00fcff 61af00f5 ....US_....,...a
2a078: 0000cc00 db0000db 00db0000 1f00ea02 ................
2a088: fa0500f4 00db0000 0000db00 cc0000db ................
2a098: 61af0000 5ff52c00 155ff115 f1155ff1 ...a.,._.._.._..
2a0a8: 5ff1155f 155ff115 f1155ff1 80be105f _.._.._.._.._...
2a0b8: 0140af03 701f00f6 1f00f701 00f90070 ..@....p....p...
2a0c8: fb00fb0a 01701f20 701f00f7 af03f601 .... .p....p....
2a0d8: 0090be40 00000000 00e43d00 f5860cb5 @........=......
2a0e8: 03f0201e 000290ef 02001000 400d90ce . .............@
2a0f8: 0e003b89 0d0e003b ce028940 f8080090 .;..;...@.......
2a108: 00f7e7ef 00000000 00000000 00000000 ................
2a118: 00dc4900 16000000 00ffffbf ff8d0300 .I..............
2a128: 00ffffff ffffcf00 00ffffff ffffff00 ................
2a138: 00ffc7ff eaffff00 00ff0051 0083ff00 ........Q.......
2a148: 00ff0000 0000ff00 00ff0000 0000ff00 ................
2a158: 00ff0000 0000ff00 00ff0000 0000ff00 ................
2a168: 00ffff2b 0000ff00 2bffffdf 0000ffff +..........+....
2a178: dffdffdf 0000ffff dfb2ff2b 0000fdff ........+.......
2a188: 2b000000 0000b2ff d0000000 ffffff0f ...+............
2a198: ff0df0ff 8888c8ff f0ffff8c 0000800f ................
2a1a8: f00ff008 0000800f ff0ff008 000080ff ................
2a1b8: f0ffff08 ccccec0f f00ff0ce ccccec0f ................
2a1c8: ff0ff0ce 000080ff f0ffff08 0000800f ................
2a1d8: f00ff008 0000800f ff0ff008 8888c8ff ................
2a1e8: d0ffff8c ffffff0f df0df0ff ffff73ff .............s..
2a1f8: fffdffff ffffa5ff ffffffff ffffa5ff ................
2a208: dfffffff ffff73ff 00fdffff 00000000 .....s..........
2a218: df000000 ffff73ff fffdffff ffffa5ff .....s..........
2a228: ffffffff ffffa5ff dfffffff ffff73ff .............s..
2a238: 00fdffff 00000000 df000000 ffff73ff .............s..
2a248: fffdffff ffffa5ff ffffffff ffffa5ff ................
2a258: dfffffff ffff73ff 00fdffff 00000000 .....s..........
2a268: 00b10a00 00000000 00fcbf00 00000000 ................
2a278: 00fbff0b 00000000 1bc0ffbf 0b0000a0 ................
2a288: cf00fcff bf0000fb bf00c0ff ff0bb0ff ................
2a298: 0c0000fc ffbffbff 000000c0 fbffffcf ................
2a2a8: 00000000 b0ffff0c 00000000 00fbbf00 ................
2a2b8: 00000000 00b00b00 03000000 03000000 ................
2a2c8: 0010fc08 fcfff81c f5ff1c10 ff2cfcff ..............,.
2a2d8: ffff05f5 0500f5ff 00f5ffff fdff1d00 ................
2a2e8: ff1c0010 1c10fcff fcfff9ff 05f5ff1c ................
2a2f8: f5dffcff d1ff0500 040000a4 000000a1 ................
2a308: 0000e04f 10020000 1003f16f d05f0000 O.......o....._.
2a318: d13ff16f f1ff0300 fd5ff16f 40ff0d00 o.?.....o._....@
2a328: ff09f16f 00f74f70 cf00f16f 00f09fe0 o...pO..o.......
2a338: 5f00f16f 00c0bff3 2f00f16f 00c0bff5 o.._....o../....
2a348: 1f00e04f 00e0aff6 4f000000 00f46ff4 O..........O.o..
2a358: af000000 10fe0ff0 ff050000 d3ff06a0 ................
2a368: ff7f0000 ff9f0020 f4ffbeda ff060000 .... ...........
2a378: 30fdffff 17000000 0050cabd 00000000 ...0......P.....
2a388: 0000b88b 00000000 0000ffff 06300000 ..............0.
2a398: 0360ffff dffd0400 effdffff ffff0d40 ..`.........@...
2a3a8: ffffffff ffff4fd0 ffff9ff9 ffff08f4 .....O..........
2a3b8: ffff0220 f9ff0080 ff9f0000 f9ff0000 ...............
2a3c8: ff9f0000 ffff0800 ffff0220 ffff4f80 ........ ....O..
2a3d8: ffff9ff9 ffff0df4 ffffffff dffe04d0 ................
2a3e8: dffdffff 06300040 0360ffff 00000000 ....@.0...`.....
2a3f8: 0000ffff 00000000 0000b88b 00000000 ................
2a408: 3f30dd03 000000f3 f5ff6f00 0000f44f ..0?.....o..O...
2a418: 99ff0900 00f4bfff f6bf0100 f4ff6f22 ............"o..
2a428: fe2d0000 ef53ff35 ff0400f4 f8ff8fc1 ..-.5.S.........
2a438: 7f40fe2d ffff1afa f7afa1ff ffdf82cf -.@.............
2a448: 28fdffff ff0e14fc ffffffff 0f0041e0 ...(.........A..
2a458: ffffffff 0000f0ff 00f9ff0f 00f0ff8f ................
2a468: f8ff0f00 f0ff8f00 ff0f0000 ff8f00f8 ................
2a478: 0e0000f0 6f00f6ff 0000e0ff fddf0000 .......o........
2a488: 00000000 ffff0000 00000000 ffff0000 ................
2a498: 00000000 ffff0000 00000000 ffff0000 ................
2a4a8: 00000000 ffff0000 00000000 ffffff4f ............O...
2a4b8: 0000f4ff ffffff0b 0000b0ff ffffbf00 ................
2a4c8: 000000fb ffff0b00 000000b0 fbbf0000 ................
2a4d8: df000000 b11bfcff fffdffcf 2cc2ffff ...............,
2a4e8: ffffffff ffffffff ffffffff ffffffff ................
2a4f8: dfffe0f0 ffffffff 00fdffff ffffef04 ................
2a508: 0040feff ffff1e00 e1ffffff b0af0000 ..@.............
2a518: 0b000000 ff0500fa 00000010 1e50ff01 ..............P.
2a528: 000000f6 e16f0000 0000b0af 0b000000 ......o.........
2a538: fffffffa ff080080 ffffffff 1f00f1ff ................
2a548: ffffffff ffffffff ffffffff ffffffff ................
2a558: ffffffff ffffffff ffffffff ff8fffff ................
2a568: ffffffff 00f8ffff dabd0600 00ff0250 ............P...
2a578: ffffef05 00ff42fe 7ba7ff7f 05fff9ff .....B.....{....
2a588: 0000c1ff 0effff2c 020000fc 5fffdf22 ....,.......".._
2a598: 0f0000f2 8fffffff 0f0000b0 00ffffff ................
...
2a5b4: ff000000 00f0ffff fff80b00 00f0ffff ................
2a5c4: fff42f00 002022fd ffe0cf00 0000c2ff ./..." .........
2a5d4: ff40ff2c 6ab7ff9f ff00f7ff ffffdf24 ,.@....j....$...
2a5e4: ff0050fe dbac0520 00000060 00000000 .P.. ...`.......
2a5f4: 008d0000 00ff0800 dfff8f00 ffffffff ................
2a604: ffffffff ffffffff ffffffff dfffffff ................
2a614: 00ffffff 00ff8f00 00ff0800 008d0000 ................
...
2a630: 0000008d 00ff0800 8f000000 cf0000ff ................
2a640: 01ffffff ffffff50 fff706ff 00ffffff ....P...........
2a650: ffffffbe ffae00ff 05ffffff ffffdff8 ................
2a660: 006002ff 00ff9f00 09000000 000000ff ..`.............
2a670: 009e0000 00000000 00000000 00000000 ................
2a680: 00100600 00000000 d21f0000 00000000 ................
2a690: 0300008d 000010ee 0a00ff08 00b02fb1 ............./..
2a6a0: 00ff8f00 f407fc05 ffffffdf 605f5002 .............P_`
2a6b0: fffffff9 0df706ff ffffbdc0 ae00ffff ................
2a6c0: ff9ff009 00ffffff 8ff009ae ffffffff ................
2a6d0: c00df706 ffffdfad 5f5002ff 0000e960 ..........P_`...
2a6e0: 0500ff8f 00f406fc 00ff0800 b02fb10a ............../.
2a6f0: 8d000000 ee020000 00000010 1f000000 ................
2a700: 000000d2 00000000 8f001006 ffffffff ................
2a710: fff8ffff fffffffc ffffffff ffff2f20 ............ /..
2a720: fcffffff ffff0c00 ffffffee feff2f20 ............ /..
2a730: ffffef22 e2fffffc ffff2e00 20fe4efe "............N.
2a740: ffff0200 00c202e2 ffff0000 00000020 ............ ...
2a750: ffff0000 00000000 ffff0000 ffffffff ................
2a760: 8fffffff ffffffff 00f8ffff 00000000 ................
2a770: 010030ff 0040ffcc 40ffff2d ffffef03 .0....@.-..@....
2a780: ffff3f40 ffff44ff ff9fffff ffffffff @?...D..........
2a790: ffffffff ffffffff ffffafff ff45ffff ..............E.
2a7a0: 40ffffff ffffff4f ffef0340 2e0040ff ...@O...@....@..
2a7b0: 0030ffff 0000cc01 00000000 00000000 ..0.............
2a7c0: 918f0000 00000000 70ffff00 00000000 ...........p....
2a7d0: 40fdffff ff000000 10faffff ffff0000 ...@............
2a7e0: 00f7ffff ffffff00 00d5ffff ffffffff ................
2a7f0: ffb2ffff ffffffff fffffdff ffffffff ................
2a800: fffffffd b2ffffff ffffffff ff00d5ff ................
2a810: f7ffffff ffff0000 0010faff fdffff00 ................
2a820: 00000040 0070ffff 8e000000 000000a1 @.....p.........
...
2a840: 00f8ff8f fff8ff8f ff00ffff ffffffff ................
2a850: ffff00ff ffffffff ffffff00 00ffffff ................
2a860: ffffffff ff00ffff ffffffff ffff00ff ................
2a870: ffffffff ffffff00 00ffffff ffffffff ................
2a880: ff00ffff ffffffff ffff00ff ffffffff ................
2a890: ffffff00 00ffffff 7fffffff 7f00f7ff ................
2a8a0: ff8ff7ff ffffffff fffffff8 ffffffff ................
2a8b0: ffffffff ffffffff ffffffff ffffffff ................
2a8c0: ffffffff ffffffff ffffffff ffffffff ................
2a8d0: ffffffff ffffffff ffffffff ffffffff ................
2a8e0: ffffffff ffffffff ffffffff ffffffff ................
2a8f0: ffffffff ffffffff ffffffff ffff8fff ................
2a900: f8ffffff 00000000 0010cc00 d2ffff03 ................
2a910: ffff0400 ff0430fe 04f4ffff ffffffff .....0..........
2a920: ffffff54 fffff9ff ffffffff ffffffff T...............
2a930: ffffffff fffffff9 ffff44ff ff04f3ff .........D......
2a940: 0430feff 00d2ffff 10ccff04 00ff0300 ..0.............
2a950: 00000000 2d000000 000000d2 ef010000 .......-........
2a960: 000010fe ff1d0000 0000d1ff ffcf0000 ................
2a970: 0000fcff ffff0b00 00b0ffff ffffaf00 ................
2a980: 00faffff ffffff09 90ffffff ffffff0f ................
2a990: f0ffffff ffffff08 80ffffff 00000000 ................
2a9a0: 00000000 ffffff0c c0ffffff ffffff0f ................
2a9b0: f0ffffff ffffff0f f0ffffff ffffff0c ................
2a9c0: c0ffffff 1a000000 01000040 0000f0df ........@.......
2a9d0: 00a0ff1d 00fadf01 a0ff1d00 fadf0100 ................
2a9e0: ff0c0000 0d0000a0 000080ff 00f8df01 ................
2a9f0: ff1d0000 01000080 0000f8df 80ff1d00 ................
2aa00: df010000 000000f0 a104501b 0f000000 .........P......
2aa10: 000010fd 00d1ff0a fdaf0000 0a000010 ................
2aa20: 0000d1ff 10fdaf00 ff0a0000 080000c0 ................
2aa30: 0000d0ff 0010fd8f 00d1ff08 10fd8f00 ................
2aa40: d1ff0800 fd0f0000 05000010 000000b1 ................
2aa50: ff040000 00000040 80ff0800 00000000 ....@...........
2aa60: 0080ff08 08000000 000080ff ff080000 ................
2aa70: 48000080 c8ff8c88 ffff8488 ffffffff ...H............
2aa80: ffffffff ffffffff ff8c8848 008488c8 ........H.......
2aa90: 80ff0800 00000000 0080ff08 08000000 ................
2aaa0: 000080ff ff080000 00000080 40ff0400 ...............@
2aab0: 44140000 44444444 ffffef41 feffffff ...DDDDDA.......
2aac0: ffffffff 7bffffff bbbbbbbb 0000b7bb .......{........
2aad0: daffad05 00000050 88fcdf04 0040fdcf ....P.........@.
2aae0: 40fe7f00 f7ef0400 f4ff0700 4f809e00 ...@...........O
2aaf0: ff4f70ff f8af00c0 dff4ff0c ff9a80ff .pO.............
2ab00: fdff08fe ef80ffdf ff08feff c0ff4ffd .............O..
2ab10: 0cf8ff8f ff07f4ff 80ee08f4 0070ff4f ............O.p.
2ab20: 0040fe7f 00f8ef04 fcdf0400 40fdcf88 ..@............@
2ab30: 05000000 50daffad 208c0000 00000000 .......P... ....
2ab40: 00000000 0000e4df 00000000 ff1b0000 ................
2ab50: fddf4980 000000a5 ffff7f00 d4ff8cd8 .I..............
2ab60: 04000000 0000f8ef 0070ff4e ff1c0000 ........N.p.....
2ab70: ff04e869 e30400f7 fffe9f00 40ffcf80 i..............@
2ab80: 0570ff0d 8fe0ffff ff0dd0ff ff2d00f7 ..p...........-.
2ab90: d0ff8fe0 00fcff04 cff8af00 7f0030ff .............0..
2aba0: 060040ff 00f7ffff f4ff0800 ff3e0000 .@............>.
2abb0: 000000a0 82c8ff4d 00f7bf01 5a000000 ....M..........Z
2abc0: 0810fcdf 0000a0ff 00000000 fd4e0000 ..............N.
...
2abd8: 0000c802 d22d0000 00000000 00000000 ......-.........
2abe8: 0000fbbf 00000000 ffff0500 00000050 ............P...
2abf8: 0d000000 00d0ffff 00000000 ffff7f00 ................
2ac08: 000000f7 ff010000 10ff8dd8 00000000 ................
2ac18: 0aa0ff0a 0000a0ff ff3f0000 f3ff0bb0 ..........?.....
2ac28: 00000000 0cc0ffcf 0000fcff ffff0500 ................
2ac38: ffff0dd0 0e000050 9ff9ffff 00e0ffff ....P...........
2ac48: ffff8f00 ffff2ee2 ff0200f8 0990ffff ................
2ac58: 10ffffff ffffff0a ffff3ee3 ff0fa0ff .........>......
2ac68: ffffffff f0ffffff ffffff08 ffffffff ................
2ac78: 000080ff 00000000 00000000 00000000 ................
2ac88: 000000d8 00000000 ffff80ff ff070070 ............p...
2ac98: fffff8ff ff6f00f6 8e78fdff e8ff15ff ......o...x.....
2aca8: 0200e2ff 20fe4fe5 000020fe 00f3ff13 .....O. . ......
2acb8: 00000052 0031ff3f 02000052 205ef4ef R...?.1.R.....^
2acc8: 8e7820fe e8ff51ff ffffe2ff ff6f00f6 . x..Q........o.
2acd8: fffffdff ff070070 0000f8ff 00000000 ....p...........
2ace8: 000080ff 00000000 000000d8 00000000 ................
...
2ad00: 01000000 000010dd ff1d0000 000000d1 ................
2ad10: fdffdf01 1d000010 d1ff99ff f9df0100 ................
2ad20: 10fd9f00 0090ff1d bfd1ff09 000000f9 ................
2ad30: 905ffb9f 09000000 000000f5 00000000 .._.............
2ad40: 00000000 5f000000 00000090 f9bff509 ......._........
2ad50: 9f000000 90ff1dfb d1ff0900 00f9df01 ................
2ad60: 0010fd9f ff99ff1d 010000d1 10fdffdf ................
2ad70: 1d000000 0000d1ff dd010000 00000010 ................
...
2ad90: 00d11d00 00000000 df010000 ffef10fd ................
2ada0: 00d0ffff d1ffff1d ffffffaf cfcf00f0 ................
2adb0: 0000fcfc 00f00f00 b6f11f6b 0f000000 ........k.......
2adc0: 0f0000f0 000000f0 00f00f00 00f00f00 ................
2add0: 0f000000 0f0000f0 000000f0 b6f11f6b ............k...
2ade0: 00f00f00 cfcf0000 0f00fcfc faffffff ................
2adf0: d1ffff1d ffff0d00 df01feff 000010fd ................
2ae00: 00000000 00d11d00 00000000 00000000 ................
2ae10: ff8f0000 0000e2ff ffff0000 0020feff .............. .
2ae20: ffff0000 ffffffff fffff8ff ffffffff ................
2ae30: ffffffff ffffffff ffffffff ffffffff ................
2ae40: ffffffff ffffffff ffffffff ffffffff ................
2ae50: ffffffff ffffffff ffffffff ffffffff ................
2ae60: ffffffff ffffffff ff8fffff ffffffff ................
2ae70: 0000f8ff 00b00b00 00000000 00fbbf00 ................
2ae80: 00000000 b0ffff0b 00000000 fbffffbf ................
2ae90: 0b000000 ffffffff 4f0000b0 ffffffff ...........O....
2aea0: 000000f4 00ffff00 00000000 00ffff00 ................
2aeb0: 00000000 00ffff00 00000000 00ffff00 ................
2aec0: 00000000 00ffff00 ffdf0000 0ffddff0 ................
2aed0: fffffdff 9f0000f9 ffffffff ffffffff ................
2aee0: ffffffff f0ffffff ffdfffe0 ffffffff ................
2aef0: 0000fdff 00000000 00000000 00000000 ................
2af00: 0062ea0a 00000000 f0ffff02 00000000 ..b.............
2af10: ffff9f00 00000000 ffff0f00 000000d0 ................
2af20: ffff0200 000000fb ef030000 000070ff .............p..
2af30: 04000000 0000f2ff 00000000 0000fbbf ................
2af40: 00000000 0030ff6f 00000200 0090ff4f ....o.0.....O...
2af50: 00f38f02 00d0ff6f e4ffff0a 00d1ffbf ....o...........
2af60: ffffef00 00d1ffff ffff0a00 0090ffff ................
2af70: ff6f0000 0030fbff ff020000 000072db ..o...0......r..
2af80: 08000000 000080ee ff086106 2d0080ff .........a.....-
2af90: 33efd0ff ff2e00fe 3ff30ef3 f3ff2ee0 ...3.......?....
2afa0: ffff8f00 00f3ff6e ffff8e00 0000f3ff ....n...........
2afb0: ffef0200 000000f3 ffff2e00 08000030 ............0...
2afc0: ffffffef ff080030 ffeff6ff 33ef0030 ....0.......0..3
2afd0: ffef02fe 3ff30e30 ffef02e0 f8ff8f30 ....0..?....0...
2afe0: fddf0200 00e88e00 10660000 ffdf0000 ..........f.....
2aff0: 00200dff ffffff00 0000e20f 0fffffff .. .............
2b000: fff0dffd 0020ffff fffff0ff ffffffff ...... .........
2b010: fffffff0 f0ffffff ffffffff fff0ffff ................
2b020: ffffffff fffff0ff ffffffff fffffff0 ................
2b030: f0ffffff ffffffff fff0ffff ffffffff ................
2b040: ffdff0ff fffdffff 000000f9 ffff0000 ................
2b050: 00ffffff ffffdf00 0000fdff ffffff8f ................
2b060: ff00c2ff ffffffff 00ff20fe ff010000 ......... ......
2b070: 0000ffe2 fcff0000 000000ff ffffff00 ................
2b080: 00000000 ffffffff ffffffff ffffffff ................
2b090: ffffffff 11fbffff ffffffbf 1f00f1ff ................
2b0a0: ffffffff ff1f00f1 fbffffff ffffbf11 ................
2b0b0: ffffffff 8fffffff ffffffff df00f8ff ................
2b0c0: 0000fdff fcffff01 ff030000 0000f7ff ................
2b0d0: f2ffff06 ff080000 0000d0ff ffffff0a ................
2b0e0: ff0cd0ff a0ffffff ffffff0e ff0d20ff ............. ..
2b0f0: 00f8ffff ff0a0000 000000e0 0050ff0e ..............P.
2b100: fc2f0000 00000000 0000f35f a09f0000 ../....._.......
2b110: 00000000 000010df 00d70000 04000000 ................
2b120: 000040ee 99ffdf00 0000fdff ff99ffff .@..............
2b130: ff0000ff ffffffff ffff0000 00000090 ................
2b140: 0dffff00 200dffff ff0fffff ffe20fff ....... ........
2b150: ffff0fff fffffd0f 20ffff0f 0fffff00 ........... ....
2b160: ffffffff ff0fffff ffffffff ffff0fff ................
2b170: ffdfffff ffffff0f 0f0000ff ffffffff ................
2b180: ff0f0000 00ffffff ffff0d00 0000fdff ................
2b190: 0000cc00 02000000 000030ff ffbf0100 .........0......
2b1a0: 000020fc ffffff1e 9f0000e1 f8ffffff . ..............
2b1b0: ffef0000 00fdffff ffffff00 0100ffff ................
2b1c0: ffffffff ff0300ff ffffffff ffff0830 ............0...
2b1d0: 80ffffff ffffff1e cfe1ffff ffffffff ................
2b1e0: ffcffcff ffffffff 000000fc 00000000 ................
2b1f0: ff0e0000 000000e0 40ee0400 ff8f0000 ...........@....
2b200: ffffffff fff8ffff ffffffff ffffffff ................
2b210: 0ff000ff 000ff000 f000ffff 0ff0000f ................
2b220: ffffff00 ffffffff ffffffff 888008f8 ................
2b230: ff8f8008 8008f8ff 8f800888 ffffffff ................
2b240: ffffffff 00ffffff 000000f0 ffff000f ................
2b250: 0000f000 ff000f00 ffffffff ffffffff ................
2b260: ffff8fff ffffffff 0000f8ff 00000000 ................
...
2b278: 70af0300 00000000 ffcf0400 000000f0 ...p............
2b288: ffdf0600 0000a0ff ffef1700 0030ffff ..............0.
2b298: ffff1800 00fcffff ffff2a00 f4ffffff .........*......
2b2a8: ffff0800 ffffffff ff0f00d0 ffffffff ................
2b2b8: 080060ff ffffffff 0000feff 00000000 .`..............
2b2c8: 00f7ffff 00000000 f1ffff00 00000000 ................
2b2d8: ffff0000 00000080 ff000000 000010ff ................
2b2e8: 00000000 0000faff 00000000 00f2ff00 ................
2b2f8: 00000000 808f0000 00000000 00000000 ................
2b308: 00000000 f0ffffdf ffff00d2 20fef0ff ...............
2b318: f0ffffff ffffe2ff fdfff0ff f2ffffff ................
2b328: ffff0000 ffffffff ffffffff ffffffff ................
2b338: ffffffff ffffffff ffffffff ffffffff ................
2b348: ffffffff ffffffff ffffffff ffffffff ................
2b358: ffffffff ffffffff ffffffff ffdfffff ................
2b368: fdffffff 00000000 00000000 00000000 ................
2b378: feef9c04 000040c9 ffef0700 feffffff .....@..........
2b388: df040070 8aa8fcff 40fdffcf 00d5ff6f p..........@o...
2b398: 5d000000 f6cff6ff 00000000 fc6f0000 ...]..........o.
2b3a8: 5a00301a 00a5fddf 0000a103 ffffff4d .0.Z........M...
2b3b8: 0000d4ff feff0500 ffef8aa8 01000050 ............P...
2b3c8: 000070df 0010fd07 00120000 21000000 .p.............!
2b3d8: 00000000 e44e0000 00000000 00000000 ......N.........
2b3e8: 0000feef 00000000 feef0000 00000000 ................
2b3f8: 00000000 0000e44e ff8f0000 ffffffff ....N...........
2b408: 80ffffff ffffffff ffffffff 00fff0ff ................
2b418: 00000000 fd0f0000 ffff0fff ffffffff ................
2b428: 0fffff0f ffffffff ff00ffff ffff0fff ................
2b438: ffffffff 0fffff00 ffffffff ff0fffff ................
2b448: 000000ff 00000000 fffffd0f ffffffff ................
2b458: f0ffffff ffffff8f ffffffff ff8f80ff ................
2b468: ffffffff 80ffffff ffffffff ffffffff ................
2b478: 00fff0ff 00000000 fd0f0000 ffff0fff ................
2b488: 00f0ffff 0fffff0f ffffffff ff0000f0 ................
2b498: ffff0fff 00f0ffff 0fffff00 ffffffff ................
2b4a8: ff0f00f0 000000ff 00000000 fffffd0f ................
2b4b8: ffffffff f0ffffff ffffff8f ffffffff ................
2b4c8: ff8f80ff ffffffff 80ffffff ffffffff ................
2b4d8: ffffffff 00fff0ff 00000000 fd0f0000 ................
2b4e8: ffff0fff 000000ff 0fffff0f 00ffffff ................
2b4f8: ff000000 ffff0fff 000000ff 0fffff00 ................
2b508: 00ffffff ff0f0000 000000ff 00000000 ................
2b518: fffffd0f ffffffff f0ffffff ffffff8f ................
2b528: ffffffff ff8f80ff ffffffff 80ffffff ................
2b538: ffffffff ffffffff 00fff0ff 00000000 ................
2b548: fd0f0000 f0ff0fff 00000000 0fffff0f ................
2b558: 0000f0ff ff000000 f0ff0fff 00000000 ................
2b568: 0fffff00 0000f0ff ff0f0000 000000ff ................
2b578: 00000000 fffffd0f ffffffff f0ffffff ................
2b588: ffffff8f ffffffff ff8f80ff ffffffff ................
2b598: 80ffffff ffffffff ffffffff 00fff0ff ................
2b5a8: 00000000 fd0f0000 000000ff 00000000 ................
2b5b8: 00ffff0f 00000000 ff000000 000000ff ................
2b5c8: 00000000 00ffff00 00000000 ff0f0000 ................
2b5d8: 000000ff 00000000 fffffd0f ffffffff ................
2b5e8: f0ffffff ffffff8f ffffffff 000080ff ................
2b5f8: 01000000 00000000 00000000 10fd0700 ................
2b608: 00000000 cf010000 0000f5ff 00000000 ................
2b618: fe29b900 00000010 3f000000 00000210 ..)........?....
2b628: df030000 00900a80 70030000 77ffdf00 ...........p...w
2b638: 555555f7 0fd38f55 dfccfdff cdccccdc .UUUU...........
2b648: fe8fb0ff 00aa0010 404d0000 00104600 ..........M@.F..
2b658: 3302f201 00000010 09000000 00f9cfb1 ...3............
2b668: 00000000 ff0a0000 000090ff 00000000 ................
2b678: f9bf0000 00000000 00000000 00002201 ............."..
2b688: df180000 020092fd ffeffbef faff0d30 ............0...
2b698: 4fe0ff2e ff03faff fafa9ff5 cffa4f35 ...O........5O..
2b6a8: 0b3d8ac0 03fbeffd fffe8f12 ff06b0ff ..=.............
2b6b8: d1ffffff efffff08 9f1011fd 59d1dfff ...............Y
2b6c8: affd0b3b 1d38fad7 faff5ffb 0df7df01 ;.....8.._......
2b6d8: ff1dfaff fcef03f1 0050ffdf a3fedf18 ..........P.....
2b6e8: 7f000000 0000f7ff ffffffef effeffff ................
2b6f8: ffffffff 0000feff 00000000 ffff0f00 ................
2b708: f0ffffff ffffff0f 0ff0ffff f9999ff9 ................
2b718: f80ff09f 8ff8888f 8ff80ff0 f08ff888 ................
2b728: 888ff80f 0ff08ff8 f8888ff8 f80ff08f ................
2b738: 8ff8888f 8ff80ff0 f08ff888 999ff90f ................
2b748: 0ff09ff9 ffffffff ff08f0ff ffffffff ................
2b758: 00000080 7f000000 000000a0 8f000000 ................
2b768: 0000b0ff 0d000000 00a0ffff 8a000000 ................
2b778: 00ffff1d 8f000000 70ff1dfa 8f000000 ...........p....
2b788: 801dfaff 8f000000 00faffff 8f000000 ................
2b798: 80ffffff 8f000000 80ffffff 8f000000 ................
2b7a8: 80ffffff 8f000000 80ffffff 6f000000 ...............o
2b7b8: 80ffffff 0b000000 80ffffff 00000000 ................
2b7c8: 80ffffdf 00000000 80ffff0e 00000000 ................
2b7d8: 60dbde00 00000000 00000000 00000000 ...`............
2b7e8: 00000000 ffffff1b e4ffffff ffdf0100 ................
2b7f8: ffffffff 1d00feff effaffff ffffaffe ................
2b808: ffffdf01 0ae22ea0 ff1dffff 02e2ffff ................
2b818: ffff2e20 ffffffcf ef0220fe ffcfffff ........ ......
2b828: 20feffff ffffef02 ffffff1d 2e2002e2 ... .......... .
2b838: df01ffff 2ea0ffff ffff0ae2 ffff1d00 ................
2b848: affeeffa 0100ffff ffffffdf feffffff ................
2b858: ff1b0000 ffffffff 0800e4ff e4ffffff ................
2b868: ffff8f00 f808feff ff400b0f 0b0ff88f ..........@.....
2b878: f8ffff40 ff400b0f ffffffff ffffffff @.....@.........
2b888: ffffffff ffffffff ffffffff ffffffff ................
2b898: ffffffff ffffffff ffffffff ffffffff ................
2b8a8: ffffffff ffffffff ffffffff ffefffff ................
2b8b8: feffffff ffffff4e 0000e4ff 00000000 ....N...........
2b8c8: 00000100 00000000 00e00300 00001000 ................
2b8d8: 10ef0200 0000bf00 f17f0000 00f1cf00 ................
2b8e8: ff070000 77ffcf11 bf777777 ffffcff1 .......wwww.....
2b8f8: ffffffff ffff17ff ffffffff ff07e0ff ................
2b908: 000000f1 06000000 000010ff 00000000 ................
2b918: 0000a005 00000000 732f2e2e 65726168 ........../share
2b928: 68742f64 70647269 79747261 67766c2f d/thirdparty/lvg
2b938: 72732f6c 766c2f63 6c61685f 5f766c2f l/src/lv_hal/lv_
2b948: 5f6c6168 70736964 hal_disp.c.
0002b953 <__func__.0>:
2b953: 645f766c 5f707369 5f767264 69676572 lv_disp_drv_regi
2b963: 72657473 2f2e2e00 72616873 742f6465 ster.../shared/t
2b973: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s
2b983: 6c2f6372 696d5f76 6c2f6373 6e615f76 rc/lv_misc/lv_an
2b993: 632e6d69 im.c.
0002b998 <__func__.0>:
2b998: 615f766c 5f6d696e 72617473 00000074 lv_anim_start...
0002b9a8 <lv_anim_path_def>:
2b9a8: 0000dcf1 00000000 732f2e2e 65726168 ........../share
2b9b8: 68742f64 70647269 79747261 67766c2f d/thirdparty/lvg
2b9c8: 72732f6c 766c2f63 73696d5f 766c2f63 l/src/lv_misc/lv
2b9d8: 2e73665f _fs.c.
0002b9de <__func__.0>:
2b9de: 665f766c 72645f73 65725f76 74736967 lv_fs_drv_regist
2b9ee: er.
0002b9f1 <__func__.2>:
2b9f1: 665f766c 706f5f73 lv_fs_open.
0002b9fc <__func__.1>:
2b9fc: 665f766c 69645f73 706f5f72 00006e65 lv_fs_dir_open..
0002ba0c <sin0_90_table>:
2ba0c: 023c0000 06b30478 0b2808ee 0f990d61 ..<.x.....(.a...
2ba1c: 140611d0 186c163a 1ccb1a9d 21211ef7 ....:.l.......!!
2ba2c: 256c2348 29ac278e 2ddf2bc7 32032ff3 H#l%.'.).+.-./.2
2ba3c: 36183410 3a1c381c 3e0e3c17 41ec3fff .4.6.8.:.<.>.?.A
2ba4c: 45b643d4 496a4793 4d084b3c 508d4ecd .C.E.GjI<K.M.N.P
2ba5c: 53f95246 574b55a5 5a8258ea 5d9c5c13 FR.S.UKW.X.Z.\.]
2ba6c: 609a5f1f 6379620d 663964dd 68d9678d ._.`.byc.d9f.g.h
2ba7c: 6b596a1d 6db76c8c 6ff36ed9 720c7104 .jYk.l.m.n.o.q.r
2ba8c: 7401730b 75d274ee 777f76ad 79067847 .s.t.t.u.v.wGx.y
2ba9c: 7a6779bb 7ba27b0a 7cb77c32 7da57d33 .ygz.{.{2|.|3}.}
2baac: 7e6c7e0d 7f0b7ec0 7f827f4b 7fd27faf .~l~.~..K.......
2babc: 7ffa7feb 2e2e7fff 6168732f 2f646572 ......../shared/
2bacc: 72696874 72617064 6c2f7974 2f6c6776 thirdparty/lvgl/
2badc: 2f637273 6d5f766c 2f637369 6d5f766c src/lv_misc/lv_m
2baec: 632e6d65 756f4300 276e646c 6c612074 em.c.Couldn't al
2bafc: 61636f6c 6d206574 726f6d65 766c0079 locate memory.lv
2bb0c: 6d656d5f 6675625f 6c65725f 65736165 _mem_buf_release
2bb1c: 2070203a 6e207369 6120746f 6f6e6b20 : p is not a kno
2bb2c: 62206e77 65666675 766c0072 6d656d5f wn buffer.lv_mem
2bb3c: 6675625f 7465675f 754f203a 666f2074 _buf_get: Out of
2bb4c: 6d656d20 2c79726f 6e616320 61207427 memory, can't a
2bb5c: 636f6c6c 20657461 656e2061 62202077 llocate a new b
2bb6c: 65666675 69282072 6572636e 20657361 uffer (increase
2bb7c: 72756f79 5f564c20 5f4d454d 455a4953 your LV_MEM_SIZE
2bb8c: 6165682f 69732070 0029657a 6d5f766c /heap size).lv_m
2bb9c: 625f6d65 675f6675 203a7465 66206f6e em_buf_get: no f
2bbac: 20656572 66667562 202e7265 72636e49 ree buffer. Incr
2bbbc: 65736165 5f564c20 57415244 4655425f ease LV_DRAW_BUF
2bbcc: 58414d5f 4d554e5f _MAX_NUM..
0002bbd6 <__func__.4>:
2bbd6: 6d5f766c 615f6d65 636f6c6c lv_mem_alloc.
0002bbe3 <__func__.0>:
2bbe3: 5f766c5f 5f6d656d 5f667562 656c6572 _lv_mem_buf_rele
2bbf3: 00657361 ase.
0002bbf7 <__func__.2>:
2bbf7: 6d5f766c 725f6d65 6c6c6165 lv_mem_realloc.
0002bc06 <__func__.1>:
2bc06: 5f766c5f 5f6d656d 5f667562 00746567 _lv_mem_buf_get.
2bc16: 732f2e2e 65726168 68742f64 70647269 ../shared/thirdp
2bc26: 79747261 67766c2f 72732f6c 766c2f63 arty/lvgl/src/lv
2bc36: 73696d5f 766c2f63 7361745f 00632e6b _misc/lv_task.c.
0002bc46 <__func__.1>:
2bc46: 745f766c 5f6b7361 61657263 625f6574 lv_task_create_b
2bc56: 63697361 asic.
0002bc5b <__func__.0>:
2bc5b: 745f766c 5f6b7361 61657263 20006574 lv_task_create.
2bc6b: 3a3b2e2c 2e005f2d 68732f2e 64657261 ,.;:-_.../shared
2bc7b: 6968742f 61706472 2f797472 6c67766c /thirdparty/lvgl
2bc8b: 6372732f 5f766c2f 6373696d 5f766c2f /src/lv_misc/lv_
2bc9b: 2e747874 766c0063 7478745f 7465675f txt.c.lv_txt_get
2bcab: 7a69735f 69203a65 6765746e 6f207265 _size: integer o
2bcbb: 66726576 20776f6c 6c696877 61632065 verflow while ca
2bccb: 6c75636c 6e697461 65742067 68207478 lculating text h
2bcdb: 68676965 eight.
0002bce1 <__func__.0>:
2bce1: 5f766c5f 5f747874 5f746567 657a6973 _lv_txt_get_size
2bcf1: 8c80ef00 10ffff00 2ec61884 68732f2e ............./sh
2bd01: 64657261 6968742f 61706472 2f797472 ared/thirdparty/
2bd11: 6c67766c 6372732f 5f766c2f 67646977 lvgl/src/lv_widg
2bd21: 2f737465 695f766c 632e676d 5f766c00 ets/lv_img.c.lv_
2bd31: 5f676d69 5f746573 3a637273 6b6e7520 img_set_src: unk
2bd41: 6e776f6e 70797420 766c0065 676d695f nown type.lv_img
2bd51: 7465735f 6372735f 6e75203a 776f6e6b _set_src: unknow
2bd61: 6d69206e 20656761 65707974 5f766c00 n image type.lv_
2bd71: 5f676d69 5f746573 3a637273 4c602020 img_set_src: `L
2bd81: 4d495f56 52535f47 41565f43 42414952 V_IMG_SRC_VARIAB
2bd91: 2060454c 65707974 756f6620 6900646e LE` type found.i
2bda1: 6567616d 65726320 64657461 5f766c00 mage created.lv_
2bdb1: 00676d69 img.
0002bdb5 <__func__.13>:
2bdb5: 695f766c 645f676d 67697365 lv_img_design.
0002bdc3 <__func__.11>:
2bdc3: 695f766c 735f676d 615f7465 5f6f7475 lv_img_set_auto_
2bdd3: 657a6973 size.
0002bdd8 <__func__.10>:
2bdd8: 695f766c 735f676d 6f5f7465 65736666 lv_img_set_offse
2bde8: 00785f74 t_x.
0002bdec <__func__.9>:
2bdec: 695f766c 735f676d 6f5f7465 65736666 lv_img_set_offse
2bdfc: 00795f74 t_y.
0002be00 <__func__.8>:
2be00: 695f766c 675f676d 735f7465 lv_img_get_src.
0002be0f <__func__.7>:
2be0f: 695f766c 675f676d 665f7465 5f656c69 lv_img_get_file_
2be1f: 656d616e name.
0002be24 <__func__.6>:
2be24: 695f766c 675f676d 615f7465 5f6f7475 lv_img_get_auto_
2be34: 657a6973 size.
0002be39 <__func__.12>:
2be39: 695f766c 735f676d 735f7465 lv_img_set_src.
0002be48 <__func__.14>:
2be48: 695f766c 635f676d 74616572 lv_img_create.
0002be56 <__func__.5>:
2be56: 695f766c 675f676d 6f5f7465 65736666 lv_img_get_offse
2be66: 00785f74 t_x.
0002be6a <__func__.4>:
2be6a: 695f766c 675f676d 6f5f7465 65736666 lv_img_get_offse
2be7a: 00795f74 t_y.
0002be7e <__func__.3>:
2be7e: 695f766c 675f676d 705f7465 746f7669 lv_img_get_pivot
...
0002be8f <__func__.2>:
2be8f: 695f766c 675f676d 615f7465 656c676e lv_img_get_angle
...
0002bea0 <__func__.1>:
2bea0: 695f766c 675f676d 7a5f7465 006d6f6f lv_img_get_zoom.
0002beb0 <__func__.0>:
2beb0: 695f766c 675f676d 615f7465 6169746e lv_img_get_antia
2bec0: 7361696c 2f2e2e00 72616873 742f6465 lias.../shared/t
2bed0: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s
2bee0: 6c2f6372 69775f76 74656764 766c2f73 rc/lv_widgets/lv
2bef0: 62616c5f 632e6c65 69614600 2064656c _label.c.Failed
2bf00: 61206f74 636f6c6c 20657461 6f6d656d to allocate memo
2bf10: 66207972 6420726f 745f746f 705f706d ry for dot_tmp_p
2bf20: 54007274 00747865 6562616c 7263206c tr.Text.label cr
2bf30: 65746165 766c0064 62616c5f eated.lv_label.
0002bf3f <__func__.21>:
2bf3f: 6c5f766c 6c656261 7465735f 746f645f lv_label_set_dot
2bf4f: 706d745f _tmp.
0002bf54 <__func__.16>:
2bf54: 6c5f766c 6c656261 7465735f 696c615f lv_label_set_ali
2bf64: gn.
0002bf67 <__func__.13>:
2bf67: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex
2bf77: 65735f74 74735f6c 00747261 t_sel_start.
0002bf83 <__func__.12>:
2bf83: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex
2bf93: 65735f74 6e655f6c t_sel_end.
0002bf9d <__func__.11>:
2bf9d: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex
2bfad: t.
0002bfaf <__func__.10>:
2bfaf: 6c5f766c 6c656261 7465675f 6e6f6c5f lv_label_get_lon
2bfbf: 6f6d5f67 g_mode.
0002bfc6 <__func__.9>:
2bfc6: 6c5f766c 6c656261 7465675f 696c615f lv_label_get_ali
2bfd6: gn.
0002bfd9 <__func__.8>:
2bfd9: 6c5f766c 6c656261 7465675f 6365725f lv_label_get_rec
2bfe9: 726f6c6f olor.
0002bfee <__func__.7>:
2bfee: 6c5f766c 6c656261 7465675f 696e615f lv_label_get_ani
2bffe: 70735f6d 00646565 m_speed.
0002c006 <__func__.6>:
2c006: 6c5f766c 6c656261 7465675f 74656c5f lv_label_get_let
2c016: 5f726574 00736f70 ter_pos.
0002c01e <__func__.5>:
2c01e: 6c5f766c 6c656261 7465675f 74656c5f lv_label_get_let
2c02e: 5f726574 ter_on.
0002c035 <__func__.20>:
2c035: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex
2c045: t.
0002c047 <__func__.19>:
2c047: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex
2c057: 6d665f74 t_fmt.
0002c05d <__func__.18>:
2c05d: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex
2c06d: 74735f74 63697461 t_static.
0002c076 <__func__.17>:
2c076: 6c5f766c 6c656261 7465735f 6e6f6c5f lv_label_set_lon
2c086: 6f6d5f67 g_mode.
0002c08d <__func__.15>:
2c08d: 6c5f766c 6c656261 7465735f 6365725f lv_label_set_rec
2c09d: 726f6c6f olor.
0002c0a2 <__func__.22>:
2c0a2: 6c5f766c 6c656261 6572635f 00657461 lv_label_create.
0002c0b2 <__func__.14>:
2c0b2: 6c5f766c 6c656261 7465735f 696e615f lv_label_set_ani
2c0c2: 70735f6d 00646565 m_speed.
0002c0ca <__func__.4>:
2c0ca: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex
2c0da: 65735f74 74735f6c 00747261 t_sel_start.
0002c0e6 <__func__.3>:
2c0e6: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex
2c0f6: 65735f74 6e655f6c t_sel_end.
0002c100 <__func__.2>:
2c100: 6c5f766c 6c656261 5f73695f 72616863 lv_label_is_char
2c110: 646e755f 705f7265 _under_pos.
0002c11b <__func__.1>:
2c11b: 6c5f766c 6c656261 736e695f 7865745f lv_label_ins_tex
2c12b: t.
0002c12d <__func__.0>:
2c12d: 6c5f766c 6c656261 7475635f 7865745f lv_label_cut_tex
2c13d: 49000074 6900464e 4e00666e 6e004e41 t..INF.inf.NAN.n
2c14d: 30006e61 34333231 38373635 43424139 an.0123456789ABC
2c15d: 00464544 30000000 34333231 38373635 DEF....012345678
2c16d: 63626139 00666564 28000000 6c6c756e 9abcdef....(null
2c17d: 30000029 )..0...
0002c184 <blanks.1>:
2c184: 20202020 20202020 20202020 20202020
0002c194 <zeroes.0>:
2c194: 30303030 30303030 30303030 30303030 0000000000000000
0002c1a4 <blanks.1>:
2c1a4: 20202020 20202020 20202020 20202020
0002c1b4 <zeroes.0>:
2c1b4: 30303030 30303030 30303030 30303030 0000000000000000
2c1c4: 202a2a2a 66667562 6f207265 66726576 *** buffer overf
2c1d4: 20776f6c 65746564 64657463 2a2a2a20 low detected ***
2c1e4: 6574203a 6e696d72 64657461 0000000a : terminated....
2c1f4: 69666e49 7974696e 00000000 004e614e Infinity....NaN.
2c204: 6c6c6142 7320636f 65636375 64656465 Balloc succeeded
2c214: 00000000 7261762f 706d742f 726f702f ..../var/tmp/por
2c224: 65676174 6f72632f 612d7373 6e2d6d72 tage/cross-arm-n
2c234: 2d656e6f 69626165 77656e2f 2d62696c one-eabi/newlib-
2c244: 2e322e34 30322e30 32313132 772f3133 4.2.0.20211231/w
2c254: 2f6b726f 6c77656e 342d6269 302e322e ork/newlib-4.2.0
2c264: 3230322e 33323131 656e2f31 62696c77 .20211231/newlib
2c274: 62696c2f 74732f63 62696c64 6f74642f /libc/stdlib/dto
2c284: 00632e61 7261762f 706d742f 726f702f a.c./var/tmp/por
2c294: 65676174 6f72632f 612d7373 6e2d6d72 tage/cross-arm-n
2c2a4: 2d656e6f 69626165 77656e2f 2d62696c one-eabi/newlib-
2c2b4: 2e322e34 30322e30 32313132 772f3133 4.2.0.20211231/w
2c2c4: 2f6b726f 6c77656e 342d6269 302e322e ork/newlib-4.2.0
2c2d4: 3230322e 33323131 656e2f31 62696c77 .20211231/newlib
2c2e4: 62696c2f 74732f63 62696c64 72706d2f /libc/stdlib/mpr
2c2f4: 632e6365 00000000 00000000 ec.c........
0002c300 <__mprec_bigtens>:
2c300: 37e08000 4341c379 b5056e17 4693b8b5 ...7y.AC.n.....F
2c310: e93ff9f5 4d384f03 f9301d32 5a827748 ..?..O8M2.0.Hw.Z
2c320: 7f73bf3c 75154fdd <.s..O.u
0002c328 <__mprec_tens>:
2c328: 00000000 3ff00000 00000000 40240000 .......?......$@
2c338: 00000000 40590000 00000000 408f4000 ......Y@.....@.@
2c348: 00000000 40c38800 00000000 40f86a00 .......@.....j.@
2c358: 00000000 412e8480 00000000 416312d0 .......A......cA
2c368: 00000000 4197d784 00000000 41cdcd65 .......A....e..A
2c378: 20000000 4202a05f e8000000 42374876 ... _..B....vH7B
2c388: a2000000 426d1a94 e5400000 42a2309c ......mB..@..0.B
2c398: 1e900000 42d6bcc4 26340000 430c6bf5 .......B..4&.k.C
2c3a8: 37e08000 4341c379 85d8a000 43763457 ...7y.AC....W4vC
2c3b8: 674ec800 43abc16d 60913d00 43e158e4 ..Ngm..C.=.`.X.C
2c3c8: 78b58c40 4415af1d d6e2ef50 444b1ae4 @..x...DP.....KD
2c3d8: 064dd592 4480f0cf c7e14af6 44b52d02 ..M....D.J...-.D
2c3e8: 79d99db4 44ea7843 ...yCx.D
0002c3f0 <p05.0>:
2c3f0: 00000005 00000019 0000007d ........}...
0002c3fc <blanks.1>:
2c3fc: 20202020 20202020 20202020 20202020
0002c40c <zeroes.0>:
2c40c: 30303030 30303030 30303030 30303030 0000000000000000
2c41c: 7566202c 6974636e 203a6e6f 00000000 , function: ....
2c42c: 65737361 6f697472 2522206e 66202273 assertion "%s" f
2c43c: 656c6961 66203a64 20656c69 22732522 ailed: file "%s"
2c44c: 696c202c 2520656e 25732564 00000a73 , line %d%s%s...
2c45c: 00000043 49534f50 00000058 0000002e C...POSIX.......
0002c46c <_ctype_>:
2c46c: 20202000 20202020 28282020 20282828 . (((((
2c47c: 20202020 20202020 20202020 20202020
2c48c: 10108820 10101010 10101010 10101010 ...............
2c49c: 04040410 04040404 10040404 10101010 ................
2c4ac: 41411010 41414141 01010101 01010101 ..AAAAAA........
2c4bc: 01010101 01010101 01010101 10101010 ................
2c4cc: 42421010 42424242 02020202 02020202 ..BBBBBB........
2c4dc: 02020202 02020202 02020202 10101010 ................
2c4ec: 00000020 00000000 00000000 00000000 ...............
...
0002c570 <_init>:
2c570: b5f8 push {r3, r4, r5, r6, r7, lr}
2c572: bf00 nop
2c574: bcf8 pop {r3, r4, r5, r6, r7}
2c576: bc08 pop {r3}
2c578: 469e mov lr, r3
2c57a: 4770 bx lr
0002c57c <__frame_dummy_init_array_entry>:
2c57c: 02cd 0000 ....
0002c580 <_fini>:
2c580: b5f8 push {r3, r4, r5, r6, r7, lr}
2c582: bf00 nop
2c584: bcf8 pop {r3, r4, r5, r6, r7}
2c586: bc08 pop {r3}
2c588: 469e mov lr, r3
2c58a: 4770 bx lr
0002c58c <__do_global_dtors_aux_fini_array_entry>:
2c58c: 02a5 0000 ....