Function __aeabi_dmul
Address Remarks Stack Code Static
0x00000bc8 x-module 596
Callers (27) __ieee754_pow (3172) , void etl::private_variant::do_visit_single<void, etl::private_format::format_visitor<etl::private_print::print_iterator>&, etl::variant<etl::monostate, bool, char, int, unsigned int, long long, unsigned long long, float, double, long double, char const*, etl::basic_string_view<char, etl::char_traits<char> >, void const*>&, 8u>(etl::private_format::format_visitor<etl::private_print::print_iterator>&, etl::variant<etl::monostate, bool, char, int, unsigned int, long long, unsigned long long, float, double, long double, char const*, etl::basic_string_view<char, etl::char_traits<char> >, void const*>&) (1336) , etl::format_context<etl::private_print::print_iterator, char>::iterator etl::private_format::format_aligned_floating<etl::private_print::print_iterator, float>(float, etl::format_context<etl::private_print::print_iterator, char>&) (1308) , void etl::private_variant::do_visit_single<void, etl::private_format::format_visitor<etl::private_print::print_iterator>&, etl::variant<etl::monostate, bool, char, int, unsigned int, long long, unsigned long long, float, double, long double, char const*, etl::basic_string_view<char, etl::char_traits<char> >, void const*>&, 9u>(etl::private_format::format_visitor<etl::private_print::print_iterator>&, etl::variant<etl::monostate, bool, char, int, unsigned int, long long, unsigned long long, float, double, long double, char const*, etl::basic_string_view<char, etl::char_traits<char> >, void const*>&) (1304) , void etl::private_format::format_floating_a<etl::private_format::counter_iterator, float>(etl::private_format::counter_iterator&, float, etl::private_format::format_spec_t const&) (616) , void etl::private_format::format_floating_a<etl::private_format::counter_iterator, double>(etl::private_format::counter_iterator&, double, etl::private_format::format_spec_t const&) (608) , void etl::private_format::format_floating_a<etl::private_format::counter_iterator, long double>(etl::private_format::counter_iterator&, long double, etl::private_format::format_spec_t const&) (572) , void etl::private_format::format_floating_e<etl::private_print::print_iterator, long double>(etl::private_print::print_iterator&, long double, etl::private_format::format_spec_t const&) (536) , void etl::private_format::format_floating_e<etl::private_print::print_iterator, double>(etl::private_print::print_iterator&, double, etl::private_format::format_spec_t const&) (528) , void etl::private_format::format_floating_e<etl::private_print::print_iterator, float>(etl::private_print::print_iterator&, float, etl::private_format::format_spec_t const&) (520) , void etl::private_format::format_floating_e<etl::private_format::counter_iterator, float>(etl::private_format::counter_iterator&, float, etl::private_format::format_spec_t const&) (512) , void etl::private_format::format_floating_e<etl::private_format::counter_iterator, double>(etl::private_format::counter_iterator&, double, etl::private_format::format_spec_t const&) (512) , void etl::private_format::format_floating_e<etl::private_format::counter_iterator, long double>(etl::private_format::counter_iterator&, long double, etl::private_format::format_spec_t const&) (512) , __ieee754_sqrt (496) , void etl::private_format::format_floating_f<etl::private_format::counter_iterator, float>(etl::private_format::counter_iterator&, float, etl::private_format::format_spec_t const&) (280) , void etl::private_format::format_floating_default<etl::private_format::counter_iterator, float>(etl::private_format::counter_iterator&, float, etl::private_format::format_spec_t const&) (280) , scalbn (276) , void etl::private_format::format_floating_f<etl::private_print::print_iterator, float>(etl::private_print::print_iterator&, float, etl::private_format::format_spec_t const&) (272) , void etl::private_format::format_floating_f<etl::private_print::print_iterator, double>(etl::private_print::print_iterator&, double, etl::private_format::format_spec_t const&) (256) , void etl::private_format::format_floating_f<etl::private_format::counter_iterator, long double>(etl::private_format::counter_iterator&, long double, etl::private_format::format_spec_t const&) (256) , void etl::private_format::format_floating_default<etl::private_format::counter_iterator, long double>(etl::private_format::counter_iterator&, long double, etl::private_format::format_spec_t const&) (256) , void etl::private_format::format_floating_f<etl::private_print::print_iterator, long double>(etl::private_print::print_iterator&, long double, etl::private_format::format_spec_t const&) (248) , void etl::private_format::format_floating_f<etl::private_format::counter_iterator, double>(etl::private_format::counter_iterator&, double, etl::private_format::format_spec_t const&) (248) , void etl::private_format::format_floating_default<etl::private_format::counter_iterator, double>(etl::private_format::counter_iterator&, double, etl::private_format::format_spec_t const&) (248) , __aeabi_f2ulz (64) , __aeabi_d2ulz (60) , xflow (56)
No Callees
__aeabi_l2d (92)

    __aeabi_dmul():

         bc8:	b570      	push	{r4, r5, r6, lr}

         bca:	f04f 0cff 	mov.w	ip, #255	@ 0xff

         bce:	f44c 6ce0 	orr.w	ip, ip, #1792	@ 0x700

         bd2:	ea1c 5411 	ands.w	r4, ip, r1, lsr #20

         bd6:	bf1d      	ittte	ne

         bd8:	ea1c 5513 	andsne.w	r5, ip, r3, lsr #20

         bdc:	ea94 0f0c 	teqne	r4, ip

         be0:	ea95 0f0c 	teqne	r5, ip

         be4:	f000 f8de 	bleq	da4 <__aeabi_dmul+0x1dc>

         be8:	442c      	add	r4, r5

         bea:	ea81 0603 	eor.w	r6, r1, r3

         bee:	ea21 514c 	bic.w	r1, r1, ip, lsl #21

         bf2:	ea23 534c 	bic.w	r3, r3, ip, lsl #21

         bf6:	ea50 3501 	orrs.w	r5, r0, r1, lsl #12

         bfa:	bf18      	it	ne

         bfc:	ea52 3503 	orrsne.w	r5, r2, r3, lsl #12

         c00:	f441 1180 	orr.w	r1, r1, #1048576	@ 0x100000

         c04:	f443 1380 	orr.w	r3, r3, #1048576	@ 0x100000

         c08:	d038      	beq.n	c7c <__aeabi_dmul+0xb4>

         c0a:	fba0 ce02 	umull	ip, lr, r0, r2

         c0e:	f04f 0500 	mov.w	r5, #0

         c12:	fbe1 e502 	umlal	lr, r5, r1, r2

         c16:	f006 4200 	and.w	r2, r6, #2147483648	@ 0x80000000

         c1a:	fbe0 e503 	umlal	lr, r5, r0, r3

         c1e:	f04f 0600 	mov.w	r6, #0

         c22:	fbe1 5603 	umlal	r5, r6, r1, r3

         c26:	f09c 0f00 	teq	ip, #0

         c2a:	bf18      	it	ne

         c2c:	f04e 0e01 	orrne.w	lr, lr, #1

         c30:	f1a4 04ff 	sub.w	r4, r4, #255	@ 0xff

         c34:	f5b6 7f00 	cmp.w	r6, #512	@ 0x200

         c38:	f564 7440 	sbc.w	r4, r4, #768	@ 0x300

         c3c:	d204      	bcs.n	c48 <__aeabi_dmul+0x80>

         c3e:	ea5f 0e4e 	movs.w	lr, lr, lsl #1

         c42:	416d      	adcs	r5, r5

         c44:	eb46 0606 	adc.w	r6, r6, r6

         c48:	ea42 21c6 	orr.w	r1, r2, r6, lsl #11

         c4c:	ea41 5155 	orr.w	r1, r1, r5, lsr #21

         c50:	ea4f 20c5 	mov.w	r0, r5, lsl #11

         c54:	ea40 505e 	orr.w	r0, r0, lr, lsr #21

         c58:	ea4f 2ece 	mov.w	lr, lr, lsl #11

         c5c:	f1b4 0cfd 	subs.w	ip, r4, #253	@ 0xfd

         c60:	bf88      	it	hi

         c62:	f5bc 6fe0 	cmphi.w	ip, #1792	@ 0x700

         c66:	d81e      	bhi.n	ca6 <__aeabi_dmul+0xde>

         c68:	f1be 4f00 	cmp.w	lr, #2147483648	@ 0x80000000

         c6c:	bf08      	it	eq

         c6e:	ea5f 0e50 	movseq.w	lr, r0, lsr #1

         c72:	f150 0000 	adcs.w	r0, r0, #0

         c76:	eb41 5104 	adc.w	r1, r1, r4, lsl #20

         c7a:	bd70      	pop	{r4, r5, r6, pc}

         c7c:	f006 4600 	and.w	r6, r6, #2147483648	@ 0x80000000

         c80:	ea46 0101 	orr.w	r1, r6, r1

         c84:	ea40 0002 	orr.w	r0, r0, r2

         c88:	ea81 0103 	eor.w	r1, r1, r3

         c8c:	ebb4 045c 	subs.w	r4, r4, ip, lsr #1

         c90:	bfc2      	ittt	gt

         c92:	ebd4 050c 	rsbsgt	r5, r4, ip

         c96:	ea41 5104 	orrgt.w	r1, r1, r4, lsl #20

         c9a:	bd70      	popgt	{r4, r5, r6, pc}

         c9c:	f441 1180 	orr.w	r1, r1, #1048576	@ 0x100000

         ca0:	f04f 0e00 	mov.w	lr, #0

         ca4:	3c01      	subs	r4, #1

         ca6:	f300 80ab 	bgt.w	e00 <__aeabi_dmul+0x238>

         caa:	f114 0f36 	cmn.w	r4, #54	@ 0x36

         cae:	bfde      	ittt	le

         cb0:	2000      	movle	r0, #0

         cb2:	f001 4100 	andle.w	r1, r1, #2147483648	@ 0x80000000

         cb6:	bd70      	pople	{r4, r5, r6, pc}

         cb8:	f1c4 0400 	rsb	r4, r4, #0

         cbc:	3c20      	subs	r4, #32

         cbe:	da35      	bge.n	d2c <__aeabi_dmul+0x164>

         cc0:	340c      	adds	r4, #12

         cc2:	dc1b      	bgt.n	cfc <__aeabi_dmul+0x134>

         cc4:	f104 0414 	add.w	r4, r4, #20

         cc8:	f1c4 0520 	rsb	r5, r4, #32

         ccc:	fa00 f305 	lsl.w	r3, r0, r5

         cd0:	fa20 f004 	lsr.w	r0, r0, r4

         cd4:	fa01 f205 	lsl.w	r2, r1, r5

         cd8:	ea40 0002 	orr.w	r0, r0, r2

         cdc:	f001 4200 	and.w	r2, r1, #2147483648	@ 0x80000000

         ce0:	f021 4100 	bic.w	r1, r1, #2147483648	@ 0x80000000

         ce4:	eb10 70d3 	adds.w	r0, r0, r3, lsr #31

         ce8:	fa21 f604 	lsr.w	r6, r1, r4

         cec:	eb42 0106 	adc.w	r1, r2, r6

         cf0:	ea5e 0e43 	orrs.w	lr, lr, r3, lsl #1

         cf4:	bf08      	it	eq

         cf6:	ea20 70d3 	biceq.w	r0, r0, r3, lsr #31

         cfa:	bd70      	pop	{r4, r5, r6, pc}

         cfc:	f1c4 040c 	rsb	r4, r4, #12

         d00:	f1c4 0520 	rsb	r5, r4, #32

         d04:	fa00 f304 	lsl.w	r3, r0, r4

         d08:	fa20 f005 	lsr.w	r0, r0, r5

         d0c:	fa01 f204 	lsl.w	r2, r1, r4

         d10:	ea40 0002 	orr.w	r0, r0, r2

         d14:	f001 4100 	and.w	r1, r1, #2147483648	@ 0x80000000

         d18:	eb10 70d3 	adds.w	r0, r0, r3, lsr #31

         d1c:	f141 0100 	adc.w	r1, r1, #0

         d20:	ea5e 0e43 	orrs.w	lr, lr, r3, lsl #1

         d24:	bf08      	it	eq

         d26:	ea20 70d3 	biceq.w	r0, r0, r3, lsr #31

         d2a:	bd70      	pop	{r4, r5, r6, pc}

         d2c:	f1c4 0520 	rsb	r5, r4, #32

         d30:	fa00 f205 	lsl.w	r2, r0, r5

         d34:	ea4e 0e02 	orr.w	lr, lr, r2

         d38:	fa20 f304 	lsr.w	r3, r0, r4

         d3c:	fa01 f205 	lsl.w	r2, r1, r5

         d40:	ea43 0302 	orr.w	r3, r3, r2

         d44:	fa21 f004 	lsr.w	r0, r1, r4

         d48:	f001 4100 	and.w	r1, r1, #2147483648	@ 0x80000000

         d4c:	fa21 f204 	lsr.w	r2, r1, r4

         d50:	ea20 0002 	bic.w	r0, r0, r2

         d54:	eb00 70d3 	add.w	r0, r0, r3, lsr #31

         d58:	ea5e 0e43 	orrs.w	lr, lr, r3, lsl #1

         d5c:	bf08      	it	eq

         d5e:	ea20 70d3 	biceq.w	r0, r0, r3, lsr #31

         d62:	bd70      	pop	{r4, r5, r6, pc}

         d64:	f094 0f00 	teq	r4, #0

         d68:	d10f      	bne.n	d8a <__aeabi_dmul+0x1c2>

         d6a:	f001 4600 	and.w	r6, r1, #2147483648	@ 0x80000000

         d6e:	0040      	lsls	r0, r0, #1

         d70:	eb41 0101 	adc.w	r1, r1, r1

         d74:	f411 1f80 	tst.w	r1, #1048576	@ 0x100000

         d78:	bf08      	it	eq

         d7a:	3c01      	subeq	r4, #1

         d7c:	d0f7      	beq.n	d6e <__aeabi_dmul+0x1a6>

         d7e:	ea41 0106 	orr.w	r1, r1, r6

         d82:	f095 0f00 	teq	r5, #0

         d86:	bf18      	it	ne

         d88:	4770      	bxne	lr

         d8a:	f003 4600 	and.w	r6, r3, #2147483648	@ 0x80000000

         d8e:	0052      	lsls	r2, r2, #1

         d90:	eb43 0303 	adc.w	r3, r3, r3

         d94:	f413 1f80 	tst.w	r3, #1048576	@ 0x100000

         d98:	bf08      	it	eq

         d9a:	3d01      	subeq	r5, #1

         d9c:	d0f7      	beq.n	d8e <__aeabi_dmul+0x1c6>

         d9e:	ea43 0306 	orr.w	r3, r3, r6

         da2:	4770      	bx	lr

         da4:	ea94 0f0c 	teq	r4, ip

         da8:	ea0c 5513 	and.w	r5, ip, r3, lsr #20

         dac:	bf18      	it	ne

         dae:	ea95 0f0c 	teqne	r5, ip

         db2:	d00c      	beq.n	dce <__aeabi_dmul+0x206>

         db4:	ea50 0641 	orrs.w	r6, r0, r1, lsl #1

         db8:	bf18      	it	ne

         dba:	ea52 0643 	orrsne.w	r6, r2, r3, lsl #1

         dbe:	d1d1      	bne.n	d64 <__aeabi_dmul+0x19c>

         dc0:	ea81 0103 	eor.w	r1, r1, r3

         dc4:	f001 4100 	and.w	r1, r1, #2147483648	@ 0x80000000

         dc8:	f04f 0000 	mov.w	r0, #0

         dcc:	bd70      	pop	{r4, r5, r6, pc}

         dce:	ea50 0641 	orrs.w	r6, r0, r1, lsl #1

         dd2:	bf06      	itte	eq

         dd4:	4610      	moveq	r0, r2

         dd6:	4619      	moveq	r1, r3

         dd8:	ea52 0643 	orrsne.w	r6, r2, r3, lsl #1

         ddc:	d019      	beq.n	e12 <__aeabi_dmul+0x24a>

         dde:	ea94 0f0c 	teq	r4, ip

         de2:	d102      	bne.n	dea <__aeabi_dmul+0x222>

         de4:	ea50 3601 	orrs.w	r6, r0, r1, lsl #12

         de8:	d113      	bne.n	e12 <__aeabi_dmul+0x24a>

         dea:	ea95 0f0c 	teq	r5, ip

         dee:	d105      	bne.n	dfc <__aeabi_dmul+0x234>

         df0:	ea52 3603 	orrs.w	r6, r2, r3, lsl #12

         df4:	bf1c      	itt	ne

         df6:	4610      	movne	r0, r2

         df8:	4619      	movne	r1, r3

         dfa:	d10a      	bne.n	e12 <__aeabi_dmul+0x24a>

         dfc:	ea81 0103 	eor.w	r1, r1, r3

         e00:	f001 4100 	and.w	r1, r1, #2147483648	@ 0x80000000

         e04:	f041 41fe 	orr.w	r1, r1, #2130706432	@ 0x7f000000

         e08:	f441 0170 	orr.w	r1, r1, #15728640	@ 0xf00000

         e0c:	f04f 0000 	mov.w	r0, #0

         e10:	bd70      	pop	{r4, r5, r6, pc}

         e12:	f041 41fe 	orr.w	r1, r1, #2130706432	@ 0x7f000000

         e16:	f441 0178 	orr.w	r1, r1, #16252928	@ 0xf80000

         e1a:	bd70      	pop	{r4, r5, r6, pc}

    
__aeabi_ddiv (464)

Stack Worst-Case Scenarios

No callees for this function.

# Stack Code Name
∑ = 160 ∑= 5,836
1 5,836 596 __aeabi_dmul
2 5,240 3,172 __ieee754_pow
3 2,068 240 pow
4 160 80 1,828 520 void etl::private_format::format_floating_e<etl::private_print::print_iterator, float>(etl::private_print::print_iterator&, float, etl::private_format::format_spec_t const&)
5 80 1,308 etl::format_context<etl::private_print::print_iterator, char>::iterator etl::private_format::format_aligned_floating<etl::private_print::print_iterator, float>(float, etl::format_context<etl::private_print::print_iterator, char>&)