Function __aeabi_dmul
Address Remarks Stack Code Static
0x00000bfc x-module 596
Callers (22) __ieee754_pow (3172) , void etl::private_format::format_floating<etl::private_print::print_iterator, long double>(etl::private_print::print_iterator&, long double, etl::private_format::format_spec_t const&) (1484) , void etl::private_format::format_floating<etl::private_print::print_iterator, double>(etl::private_print::print_iterator&, double, etl::private_format::format_spec_t const&) (1472) , __ieee754_log (944) , 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&) (684) , 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&) (668) , 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&) (520) , 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&) (508) , __ieee754_sqrt (496) , 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&) (492) , 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&) (488) , 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&) (468) , 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&) (468) , 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&) (328) , 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&) (328) , 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&) (328) , 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&) (324) , __ieee754_log10 (312) , scalbn (276) , __aeabi_f2ulz (64) , __aeabi_d2ulz (60) , xflow (56)
No Callees
__aeabi_l2d (92)

    __aeabi_dmul():

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

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

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

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

         c0a:	bf1d      	ittte	ne

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

         c10:	ea94 0f0c 	teqne	r4, ip

         c14:	ea95 0f0c 	teqne	r5, ip

         c18:	f000 f8de 	bleq	dd8 <__aeabi_dmul+0x1dc>

         c1c:	442c      	add	r4, r5

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

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

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

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

         c2e:	bf18      	it	ne

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

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

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

         c3c:	d038      	beq.n	cb0 <__aeabi_dmul+0xb4>

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

         c42:	f04f 0500 	mov.w	r5, #0

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

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

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

         c52:	f04f 0600 	mov.w	r6, #0

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

         c5a:	f09c 0f00 	teq	ip, #0

         c5e:	bf18      	it	ne

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

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

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

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

         c70:	d204      	bcs.n	c7c <__aeabi_dmul+0x80>

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

         c76:	416d      	adcs	r5, r5

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

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

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

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

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

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

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

         c94:	bf88      	it	hi

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

         c9a:	d81e      	bhi.n	cda <__aeabi_dmul+0xde>

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

         ca0:	bf08      	it	eq

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

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

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

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

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

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

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

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

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

         cc4:	bfc2      	ittt	gt

         cc6:	ebd4 050c 	rsbsgt	r5, r4, ip

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

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

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

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

         cd8:	3c01      	subs	r4, #1

         cda:	f300 80ab 	bgt.w	e34 <__aeabi_dmul+0x238>

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

         ce2:	bfde      	ittt	le

         ce4:	2000      	movle	r0, #0

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

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

         cec:	f1c4 0400 	rsb	r4, r4, #0

         cf0:	3c20      	subs	r4, #32

         cf2:	da35      	bge.n	d60 <__aeabi_dmul+0x164>

         cf4:	340c      	adds	r4, #12

         cf6:	dc1b      	bgt.n	d30 <__aeabi_dmul+0x134>

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

         cfc:	f1c4 0520 	rsb	r5, r4, #32

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

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

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

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

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

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

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

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

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

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

         d28:	bf08      	it	eq

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

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

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

         d34:	f1c4 0520 	rsb	r5, r4, #32

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

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

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

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

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

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

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

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

         d58:	bf08      	it	eq

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

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

         d60:	f1c4 0520 	rsb	r5, r4, #32

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

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

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

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

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

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

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

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

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

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

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

         d90:	bf08      	it	eq

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

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

         d98:	f094 0f00 	teq	r4, #0

         d9c:	d10f      	bne.n	dbe <__aeabi_dmul+0x1c2>

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

         da2:	0040      	lsls	r0, r0, #1

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

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

         dac:	bf08      	it	eq

         dae:	3c01      	subeq	r4, #1

         db0:	d0f7      	beq.n	da2 <__aeabi_dmul+0x1a6>

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

         db6:	f095 0f00 	teq	r5, #0

         dba:	bf18      	it	ne

         dbc:	4770      	bxne	lr

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

         dc2:	0052      	lsls	r2, r2, #1

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

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

         dcc:	bf08      	it	eq

         dce:	3d01      	subeq	r5, #1

         dd0:	d0f7      	beq.n	dc2 <__aeabi_dmul+0x1c6>

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

         dd6:	4770      	bx	lr

         dd8:	ea94 0f0c 	teq	r4, ip

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

         de0:	bf18      	it	ne

         de2:	ea95 0f0c 	teqne	r5, ip

         de6:	d00c      	beq.n	e02 <__aeabi_dmul+0x206>

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

         dec:	bf18      	it	ne

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

         df2:	d1d1      	bne.n	d98 <__aeabi_dmul+0x19c>

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

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

         dfc:	f04f 0000 	mov.w	r0, #0

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

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

         e06:	bf06      	itte	eq

         e08:	4610      	moveq	r0, r2

         e0a:	4619      	moveq	r1, r3

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

         e10:	d019      	beq.n	e46 <__aeabi_dmul+0x24a>

         e12:	ea94 0f0c 	teq	r4, ip

         e16:	d102      	bne.n	e1e <__aeabi_dmul+0x222>

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

         e1c:	d113      	bne.n	e46 <__aeabi_dmul+0x24a>

         e1e:	ea95 0f0c 	teq	r5, ip

         e22:	d105      	bne.n	e30 <__aeabi_dmul+0x234>

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

         e28:	bf1c      	itt	ne

         e2a:	4610      	movne	r0, r2

         e2c:	4619      	movne	r1, r3

         e2e:	d10a      	bne.n	e46 <__aeabi_dmul+0x24a>

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

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

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

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

         e40:	f04f 0000 	mov.w	r0, #0

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

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

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

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

    
__aeabi_ddiv (464)

Stack Worst-Case Scenarios

No callees for this function.

# Stack Code Name
∑ = 192 ∑= 5,852
1 5,852 596 __aeabi_dmul
2 5,256 3,172 __ieee754_pow
3 2,084 240 pow
4 1,844 4 powl
5 1,840 468 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&)
6 192 104 1,372 520 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&)
7 852 404 void etl::private_format::format_floating<etl::private_format::counter_iterator, long double>(etl::private_format::counter_iterator&, long double, etl::private_format::format_spec_t const&)
8 88 448 etl::format_context<etl::private_print::print_iterator, char>::iterator etl::private_format::format_aligned_floating<etl::private_print::print_iterator, long double>(long double, etl::format_context<etl::private_print::print_iterator, char>&)