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

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

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

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

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

         c2a:	bf1d      	ittte	ne

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

         c30:	ea94 0f0c 	teqne	r4, ip

         c34:	ea95 0f0c 	teqne	r5, ip

         c38:	f000 f8de 	bleq	df8 <__aeabi_dmul+0x1dc>

         c3c:	442c      	add	r4, r5

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

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

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

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

         c4e:	bf18      	it	ne

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

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

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

         c5c:	d038      	beq.n	cd0 <__aeabi_dmul+0xb4>

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

         c62:	f04f 0500 	mov.w	r5, #0

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

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

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

         c72:	f04f 0600 	mov.w	r6, #0

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

         c7a:	f09c 0f00 	teq	ip, #0

         c7e:	bf18      	it	ne

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

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

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

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

         c90:	d204      	bcs.n	c9c <__aeabi_dmul+0x80>

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

         c96:	416d      	adcs	r5, r5

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

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

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

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

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

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

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

         cb4:	bf88      	it	hi

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

         cba:	d81e      	bhi.n	cfa <__aeabi_dmul+0xde>

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

         cc0:	bf08      	it	eq

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

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

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

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

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

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

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

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

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

         ce4:	bfc2      	ittt	gt

         ce6:	ebd4 050c 	rsbsgt	r5, r4, ip

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

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

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

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

         cf8:	3c01      	subs	r4, #1

         cfa:	f300 80ab 	bgt.w	e54 <__aeabi_dmul+0x238>

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

         d02:	bfde      	ittt	le

         d04:	2000      	movle	r0, #0

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

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

         d0c:	f1c4 0400 	rsb	r4, r4, #0

         d10:	3c20      	subs	r4, #32

         d12:	da35      	bge.n	d80 <__aeabi_dmul+0x164>

         d14:	340c      	adds	r4, #12

         d16:	dc1b      	bgt.n	d50 <__aeabi_dmul+0x134>

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

         d1c:	f1c4 0520 	rsb	r5, r4, #32

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

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

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

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

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

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

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

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

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

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

         d48:	bf08      	it	eq

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

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

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

         d54:	f1c4 0520 	rsb	r5, r4, #32

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

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

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

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

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

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

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

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

         d78:	bf08      	it	eq

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

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

         d80:	f1c4 0520 	rsb	r5, r4, #32

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

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

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

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

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

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

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

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

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

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

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

         db0:	bf08      	it	eq

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

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

         db8:	f094 0f00 	teq	r4, #0

         dbc:	d10f      	bne.n	dde <__aeabi_dmul+0x1c2>

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

         dc2:	0040      	lsls	r0, r0, #1

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

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

         dcc:	bf08      	it	eq

         dce:	3c01      	subeq	r4, #1

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

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

         dd6:	f095 0f00 	teq	r5, #0

         dda:	bf18      	it	ne

         ddc:	4770      	bxne	lr

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

         de2:	0052      	lsls	r2, r2, #1

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

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

         dec:	bf08      	it	eq

         dee:	3d01      	subeq	r5, #1

         df0:	d0f7      	beq.n	de2 <__aeabi_dmul+0x1c6>

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

         df6:	4770      	bx	lr

         df8:	ea94 0f0c 	teq	r4, ip

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

         e00:	bf18      	it	ne

         e02:	ea95 0f0c 	teqne	r5, ip

         e06:	d00c      	beq.n	e22 <__aeabi_dmul+0x206>

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

         e0c:	bf18      	it	ne

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

         e12:	d1d1      	bne.n	db8 <__aeabi_dmul+0x19c>

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

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

         e1c:	f04f 0000 	mov.w	r0, #0

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

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

         e26:	bf06      	itte	eq

         e28:	4610      	moveq	r0, r2

         e2a:	4619      	moveq	r1, r3

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

         e30:	d019      	beq.n	e66 <__aeabi_dmul+0x24a>

         e32:	ea94 0f0c 	teq	r4, ip

         e36:	d102      	bne.n	e3e <__aeabi_dmul+0x222>

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

         e3c:	d113      	bne.n	e66 <__aeabi_dmul+0x24a>

         e3e:	ea95 0f0c 	teq	r5, ip

         e42:	d105      	bne.n	e50 <__aeabi_dmul+0x234>

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

         e48:	bf1c      	itt	ne

         e4a:	4610      	movne	r0, r2

         e4c:	4619      	movne	r1, r3

         e4e:	d10a      	bne.n	e66 <__aeabi_dmul+0x24a>

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

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

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

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

         e60:	f04f 0000 	mov.w	r0, #0

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

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

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

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