Function __aeabi_dmul
Address Remarks Stack Code Static
0x00000b9c 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():

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

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

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

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

         baa:	bf1d      	ittte	ne

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

         bb0:	ea94 0f0c 	teqne	r4, ip

         bb4:	ea95 0f0c 	teqne	r5, ip

         bb8:	f000 f8de 	bleq	d78 <__aeabi_dmul+0x1dc>

         bbc:	442c      	add	r4, r5

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

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

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

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

         bce:	bf18      	it	ne

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

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

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

         bdc:	d038      	beq.n	c50 <__aeabi_dmul+0xb4>

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

         be2:	f04f 0500 	mov.w	r5, #0

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

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

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

         bf2:	f04f 0600 	mov.w	r6, #0

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

         bfa:	f09c 0f00 	teq	ip, #0

         bfe:	bf18      	it	ne

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

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

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

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

         c10:	d204      	bcs.n	c1c <__aeabi_dmul+0x80>

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

         c16:	416d      	adcs	r5, r5

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

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

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

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

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

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

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

         c34:	bf88      	it	hi

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

         c3a:	d81e      	bhi.n	c7a <__aeabi_dmul+0xde>

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

         c40:	bf08      	it	eq

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

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

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

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

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

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

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

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

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

         c64:	bfc2      	ittt	gt

         c66:	ebd4 050c 	rsbsgt	r5, r4, ip

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

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

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

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

         c78:	3c01      	subs	r4, #1

         c7a:	f300 80ab 	bgt.w	dd4 <__aeabi_dmul+0x238>

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

         c82:	bfde      	ittt	le

         c84:	2000      	movle	r0, #0

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

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

         c8c:	f1c4 0400 	rsb	r4, r4, #0

         c90:	3c20      	subs	r4, #32

         c92:	da35      	bge.n	d00 <__aeabi_dmul+0x164>

         c94:	340c      	adds	r4, #12

         c96:	dc1b      	bgt.n	cd0 <__aeabi_dmul+0x134>

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

         c9c:	f1c4 0520 	rsb	r5, r4, #32

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

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

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

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

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

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

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

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

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

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

         cc8:	bf08      	it	eq

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

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

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

         cd4:	f1c4 0520 	rsb	r5, r4, #32

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

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

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

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

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

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

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

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

         cf8:	bf08      	it	eq

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

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

         d00:	f1c4 0520 	rsb	r5, r4, #32

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

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

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

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

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

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

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

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

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

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

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

         d30:	bf08      	it	eq

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

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

         d38:	f094 0f00 	teq	r4, #0

         d3c:	d10f      	bne.n	d5e <__aeabi_dmul+0x1c2>

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

         d42:	0040      	lsls	r0, r0, #1

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

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

         d4c:	bf08      	it	eq

         d4e:	3c01      	subeq	r4, #1

         d50:	d0f7      	beq.n	d42 <__aeabi_dmul+0x1a6>

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

         d56:	f095 0f00 	teq	r5, #0

         d5a:	bf18      	it	ne

         d5c:	4770      	bxne	lr

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

         d62:	0052      	lsls	r2, r2, #1

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

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

         d6c:	bf08      	it	eq

         d6e:	3d01      	subeq	r5, #1

         d70:	d0f7      	beq.n	d62 <__aeabi_dmul+0x1c6>

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

         d76:	4770      	bx	lr

         d78:	ea94 0f0c 	teq	r4, ip

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

         d80:	bf18      	it	ne

         d82:	ea95 0f0c 	teqne	r5, ip

         d86:	d00c      	beq.n	da2 <__aeabi_dmul+0x206>

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

         d8c:	bf18      	it	ne

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

         d92:	d1d1      	bne.n	d38 <__aeabi_dmul+0x19c>

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

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

         d9c:	f04f 0000 	mov.w	r0, #0

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

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

         da6:	bf06      	itte	eq

         da8:	4610      	moveq	r0, r2

         daa:	4619      	moveq	r1, r3

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

         db0:	d019      	beq.n	de6 <__aeabi_dmul+0x24a>

         db2:	ea94 0f0c 	teq	r4, ip

         db6:	d102      	bne.n	dbe <__aeabi_dmul+0x222>

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

         dbc:	d113      	bne.n	de6 <__aeabi_dmul+0x24a>

         dbe:	ea95 0f0c 	teq	r5, ip

         dc2:	d105      	bne.n	dd0 <__aeabi_dmul+0x234>

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

         dc8:	bf1c      	itt	ne

         dca:	4610      	movne	r0, r2

         dcc:	4619      	movne	r1, r3

         dce:	d10a      	bne.n	de6 <__aeabi_dmul+0x24a>

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

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

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

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

         de0:	f04f 0000 	mov.w	r0, #0

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

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

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

         dee:	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>&)