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

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

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

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

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

         b8a:	bf1d      	ittte	ne

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

         b90:	ea94 0f0c 	teqne	r4, ip

         b94:	ea95 0f0c 	teqne	r5, ip

         b98:	f000 f8de 	bleq	d58 <__aeabi_dmul+0x1dc>

         b9c:	442c      	add	r4, r5

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

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

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

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

         bae:	bf18      	it	ne

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

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

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

         bbc:	d038      	beq.n	c30 <__aeabi_dmul+0xb4>

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

         bc2:	f04f 0500 	mov.w	r5, #0

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

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

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

         bd2:	f04f 0600 	mov.w	r6, #0

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

         bda:	f09c 0f00 	teq	ip, #0

         bde:	bf18      	it	ne

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

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

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

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

         bf0:	d204      	bcs.n	bfc <__aeabi_dmul+0x80>

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

         bf6:	416d      	adcs	r5, r5

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

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

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

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

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

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

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

         c14:	bf88      	it	hi

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

         c1a:	d81e      	bhi.n	c5a <__aeabi_dmul+0xde>

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

         c20:	bf08      	it	eq

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

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

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

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

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

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

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

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

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

         c44:	bfc2      	ittt	gt

         c46:	ebd4 050c 	rsbsgt	r5, r4, ip

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

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

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

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

         c58:	3c01      	subs	r4, #1

         c5a:	f300 80ab 	bgt.w	db4 <__aeabi_dmul+0x238>

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

         c62:	bfde      	ittt	le

         c64:	2000      	movle	r0, #0

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

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

         c6c:	f1c4 0400 	rsb	r4, r4, #0

         c70:	3c20      	subs	r4, #32

         c72:	da35      	bge.n	ce0 <__aeabi_dmul+0x164>

         c74:	340c      	adds	r4, #12

         c76:	dc1b      	bgt.n	cb0 <__aeabi_dmul+0x134>

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

         c7c:	f1c4 0520 	rsb	r5, r4, #32

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

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

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

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

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

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

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

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

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

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

         ca8:	bf08      	it	eq

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

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

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

         cb4:	f1c4 0520 	rsb	r5, r4, #32

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

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

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

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

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

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

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

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

         cd8:	bf08      	it	eq

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

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

         ce0:	f1c4 0520 	rsb	r5, r4, #32

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

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

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

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

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

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

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

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

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

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

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

         d10:	bf08      	it	eq

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

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

         d18:	f094 0f00 	teq	r4, #0

         d1c:	d10f      	bne.n	d3e <__aeabi_dmul+0x1c2>

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

         d22:	0040      	lsls	r0, r0, #1

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

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

         d2c:	bf08      	it	eq

         d2e:	3c01      	subeq	r4, #1

         d30:	d0f7      	beq.n	d22 <__aeabi_dmul+0x1a6>

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

         d36:	f095 0f00 	teq	r5, #0

         d3a:	bf18      	it	ne

         d3c:	4770      	bxne	lr

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

         d42:	0052      	lsls	r2, r2, #1

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

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

         d4c:	bf08      	it	eq

         d4e:	3d01      	subeq	r5, #1

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

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

         d56:	4770      	bx	lr

         d58:	ea94 0f0c 	teq	r4, ip

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

         d60:	bf18      	it	ne

         d62:	ea95 0f0c 	teqne	r5, ip

         d66:	d00c      	beq.n	d82 <__aeabi_dmul+0x206>

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

         d6c:	bf18      	it	ne

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

         d72:	d1d1      	bne.n	d18 <__aeabi_dmul+0x19c>

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

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

         d7c:	f04f 0000 	mov.w	r0, #0

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

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

         d86:	bf06      	itte	eq

         d88:	4610      	moveq	r0, r2

         d8a:	4619      	moveq	r1, r3

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

         d90:	d019      	beq.n	dc6 <__aeabi_dmul+0x24a>

         d92:	ea94 0f0c 	teq	r4, ip

         d96:	d102      	bne.n	d9e <__aeabi_dmul+0x222>

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

         d9c:	d113      	bne.n	dc6 <__aeabi_dmul+0x24a>

         d9e:	ea95 0f0c 	teq	r5, ip

         da2:	d105      	bne.n	db0 <__aeabi_dmul+0x234>

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

         da8:	bf1c      	itt	ne

         daa:	4610      	movne	r0, r2

         dac:	4619      	movne	r1, r3

         dae:	d10a      	bne.n	dc6 <__aeabi_dmul+0x24a>

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

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

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

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

         dc0:	f04f 0000 	mov.w	r0, #0

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

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

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

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