This is an old revision of the document!
Analytical Modeling of System Temperature
Results
Nops test
nops test
This is a while loop with a single nop
inside it.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 10 sub $0x10,%esp 80483a5: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%ebp) 80483ac: 90 nop 80483ad: eb fd jmp 80483ac <main+0x18> 80483af: 90 nop
Integer Operations
int add test
This is a while loop with a single x++
in it.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 10 sub $0x10,%esp 80483a5: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%ebp) 80483ac: 83 45 f8 01 addl $0x1,-0x8(%ebp) 80483b0: eb f3 jmp 80483a5 <main+0x11> 80483b2: 90 nop 80483b3: 90 nop 80483b4: 90 nop 80483b5: 90 nop 80483b6: 90 nop 80483b7: 90 nop 80483b8: 90 nop 80483b9: 90 nop 80483ba: 90 nop 80483bb: 90 nop 80483bc: 90 nop 80483bd: 90 nop 80483be: 90 nop 80483bf: 90 nop
int sub test
A while loop with a single x–
in it.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 10 sub $0x10,%esp 80483a5: c7 45 f8 02 00 00 00 movl $0x2,-0x8(%ebp) 80483ac: 83 6d f8 01 subl $0x1,-0x8(%ebp) 80483b0: eb f3 jmp 80483a5 <main+0x11> 80483b2: 90 nop 80483b3: 90 nop 80483b4: 90 nop 80483b5: 90 nop 80483b6: 90 nop 80483b7: 90 nop 80483b8: 90 nop 80483b9: 90 nop 80483ba: 90 nop 80483bb: 90 nop 80483bc: 90 nop 80483bd: 90 nop 80483be: 90 nop 80483bf: 90 nop
int mul test
A while loop which takes two integers (x=54;y=82;
) and multiplies them (z=x*y
).
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 10 sub $0x10,%esp 80483a5: c7 45 f8 36 00 00 00 movl $0x36,-0x8(%ebp) 80483ac: c7 45 f4 52 00 00 00 movl $0x52,-0xc(%ebp) 80483b3: 8b 45 f8 mov -0x8(%ebp),%eax 80483b6: 0f af 45 f4 imul -0xc(%ebp),%eax 80483ba: 89 45 f0 mov %eax,-0x10(%ebp) 80483bd: eb e6 jmp 80483a5 <main+0x11> 80483bf: 90 nop
int div test
A while loop which takes two integers (x=54;y=82;
) and divides them (z=y/x
).
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 18 sub $0x18,%esp 80483a5: c7 45 f8 36 00 00 00 movl $0x36,-0x8(%ebp) 80483ac: c7 45 f4 52 00 00 00 movl $0x52,-0xc(%ebp) 80483b3: 8b 45 f4 mov -0xc(%ebp),%eax 80483b6: 89 45 e4 mov %eax,-0x1c(%ebp) 80483b9: 8b 55 e4 mov -0x1c(%ebp),%edx 80483bc: 89 d0 mov %edx,%eax 80483be: c1 fa 1f sar $0x1f,%edx 80483c1: f7 7d f8 idivl -0x8(%ebp) 80483c4: 89 45 f0 mov %eax,-0x10(%ebp) 80483c7: eb dc jmp 80483a5 <main+0x11> 80483c9: 90 nop 80483ca: 90 nop 80483cb: 90 nop 80483cc: 90 nop 80483cd: 90 nop 80483ce: 90 nop 80483cf: 90 nop
FP Operations
fp add test
This is a while loop which takes two doubles and adds them just like in the int add test.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 24 sub $0x24,%esp 80483a5: dd 05 90 84 04 08 fldl 0x8048490 80483ab: dd 5d f0 fstpl -0x10(%ebp) 80483ae: dd 05 98 84 04 08 fldl 0x8048498 80483b4: dd 5d e8 fstpl -0x18(%ebp) 80483b7: dd 45 f0 fldl -0x10(%ebp) 80483ba: dc 45 e8 faddl -0x18(%ebp) 80483bd: dd 5d e0 fstpl -0x20(%ebp) 80483c0: eb e3 jmp 80483a5 <main+0x11> 80483c2: 90 nop 80483c3: 90 nop 80483c4: 90 nop 80483c5: 90 nop 80483c6: 90 nop 80483c7: 90 nop 80483c8: 90 nop 80483c9: 90 nop 80483ca: 90 nop 80483cb: 90 nop 80483cc: 90 nop 80483cd: 90 nop 80483ce: 90 nop 80483cf: 90 nop
fp sub test
A while loop which takes two doubles and subtracts them.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 24 sub $0x24,%esp 80483a5: dd 05 90 84 04 08 fldl 0x8048490 80483ab: dd 5d f0 fstpl -0x10(%ebp) 80483ae: dd 05 98 84 04 08 fldl 0x8048498 80483b4: dd 5d e8 fstpl -0x18(%ebp) 80483b7: dd 45 e8 fldl -0x18(%ebp) 80483ba: dc 65 f0 fsubl -0x10(%ebp) 80483bd: dd 5d e0 fstpl -0x20(%ebp) 80483c0: eb e3 jmp 80483a5 <main+0x11> 80483c2: 90 nop 80483c3: 90 nop 80483c4: 90 nop 80483c5: 90 nop 80483c6: 90 nop 80483c7: 90 nop 80483c8: 90 nop 80483c9: 90 nop 80483ca: 90 nop 80483cb: 90 nop 80483cc: 90 nop 80483cd: 90 nop 80483ce: 90 nop 80483cf: 90 nop
fp mul test
A while loop which takes two doubles and multiplies them. Within the loop, we take two doubles, so we are multiplying the same numbers again and again. This should avoid overflow.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 24 sub $0x24,%esp 80483a5: dd 05 90 84 04 08 fldl 0x8048490 80483ab: dd 5d f0 fstpl -0x10(%ebp) 80483ae: dd 05 98 84 04 08 fldl 0x8048498 80483b4: dd 5d e8 fstpl -0x18(%ebp) 80483b7: dd 45 f0 fldl -0x10(%ebp) 80483ba: dc 4d e8 fmull -0x18(%ebp) 80483bd: dd 5d e0 fstpl -0x20(%ebp) 80483c0: eb e3 jmp 80483a5 <main+0x11> 80483c2: 90 nop 80483c3: 90 nop 80483c4: 90 nop 80483c5: 90 nop 80483c6: 90 nop 80483c7: 90 nop 80483c8: 90 nop 80483c9: 90 nop 80483ca: 90 nop 80483cb: 90 nop 80483cc: 90 nop 80483cd: 90 nop 80483ce: 90 nop 80483cf: 90 nop
fp div test
A while loop which takes two doubles and divides them. The lower peak temperature w.r.t. fp mul test is due to lack of pipelining in the fp div FU.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 24 sub $0x24,%esp 80483a5: dd 05 90 84 04 08 fldl 0x8048490 80483ab: dd 5d f0 fstpl -0x10(%ebp) 80483ae: dd 05 98 84 04 08 fldl 0x8048498 80483b4: dd 5d e8 fstpl -0x18(%ebp) 80483b7: dd 45 e8 fldl -0x18(%ebp) 80483ba: dc 75 f0 fdivl -0x10(%ebp) 80483bd: dd 5d e0 fstpl -0x20(%ebp) 80483c0: eb e3 jmp 80483a5 <main+0x11> 80483c2: 90 nop 80483c3: 90 nop 80483c4: 90 nop 80483c5: 90 nop 80483c6: 90 nop 80483c7: 90 nop 80483c8: 90 nop 80483c9: 90 nop 80483ca: 90 nop 80483cb: 90 nop 80483cc: 90 nop 80483cd: 90 nop 80483ce: 90 nop 80483cf: 90 nop
Unrolled Integer Operations
unrolled int add test
This is a while loop with multiple x++
s in it.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 10 sub $0x10,%esp 80483a5: c7 45 f8 00 00 00 00 movl $0x0,-0x8(%ebp) 80483ac: 83 45 f8 01 addl $0x1,-0x8(%ebp) 80483b0: 83 45 f8 01 addl $0x1,-0x8(%ebp) 80483b4: 83 45 f8 01 addl $0x1,-0x8(%ebp) 80483b8: 83 45 f8 01 addl $0x1,-0x8(%ebp) 80483bc: 83 45 f8 01 addl $0x1,-0x8(%ebp) 80483c0: 83 45 f8 01 addl $0x1,-0x8(%ebp) 80483c4: 83 45 f8 01 addl $0x1,-0x8(%ebp) 80483c8: 83 45 f8 01 addl $0x1,-0x8(%ebp) 80483cc: 83 45 f8 01 addl $0x1,-0x8(%ebp) 80483d0: 83 45 f8 01 addl $0x1,-0x8(%ebp) 80483d4: eb cf jmp 80483a5 <main+0x11> 80483d6: 90 nop 80483d7: 90 nop 80483d8: 90 nop 80483d9: 90 nop 80483da: 90 nop 80483db: 90 nop 80483dc: 90 nop 80483dd: 90 nop 80483de: 90 nop 80483df: 90 nop
unrolled int sub test
A while loop with multiple x–
s in it.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 10 sub $0x10,%esp 80483a5: c7 45 f8 14 00 00 00 movl $0x14,-0x8(%ebp) 80483ac: 83 6d f8 01 subl $0x1,-0x8(%ebp) 80483b0: 83 6d f8 01 subl $0x1,-0x8(%ebp) 80483b4: 83 6d f8 01 subl $0x1,-0x8(%ebp) 80483b8: 83 6d f8 01 subl $0x1,-0x8(%ebp) 80483bc: 83 6d f8 01 subl $0x1,-0x8(%ebp) 80483c0: 83 6d f8 01 subl $0x1,-0x8(%ebp) 80483c4: 83 6d f8 01 subl $0x1,-0x8(%ebp) 80483c8: 83 6d f8 01 subl $0x1,-0x8(%ebp) 80483cc: 83 6d f8 01 subl $0x1,-0x8(%ebp) 80483d0: 83 6d f8 01 subl $0x1,-0x8(%ebp) 80483d4: eb cf jmp 80483a5 <main+0x11> 80483d6: 90 nop 80483d7: 90 nop 80483d8: 90 nop 80483d9: 90 nop 80483da: 90 nop 80483db: 90 nop 80483dc: 90 nop 80483dd: 90 nop 80483de: 90 nop 80483df: 90 nop
unrolled int mul test
A while loop which takes two integers and multiplies them multiple times within the same loop.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 10 sub $0x10,%esp 80483a5: c7 45 f8 36 00 00 00 movl $0x36,-0x8(%ebp) 80483ac: c7 45 f4 52 00 00 00 movl $0x52,-0xc(%ebp) 80483b3: 8b 45 f8 mov -0x8(%ebp),%eax 80483b6: 0f af 45 f4 imul -0xc(%ebp),%eax 80483ba: 89 45 f0 mov %eax,-0x10(%ebp) 80483bd: 8b 45 f8 mov -0x8(%ebp),%eax 80483c0: 0f af 45 f4 imul -0xc(%ebp),%eax 80483c4: 89 45 f0 mov %eax,-0x10(%ebp) 80483c7: 8b 45 f8 mov -0x8(%ebp),%eax 80483ca: 0f af 45 f4 imul -0xc(%ebp),%eax 80483ce: 89 45 f0 mov %eax,-0x10(%ebp) 80483d1: 8b 45 f8 mov -0x8(%ebp),%eax 80483d4: 0f af 45 f4 imul -0xc(%ebp),%eax 80483d8: 89 45 f0 mov %eax,-0x10(%ebp) 80483db: 8b 45 f8 mov -0x8(%ebp),%eax 80483de: 0f af 45 f4 imul -0xc(%ebp),%eax 80483e2: 89 45 f0 mov %eax,-0x10(%ebp) 80483e5: 8b 45 f8 mov -0x8(%ebp),%eax 80483e8: 0f af 45 f4 imul -0xc(%ebp),%eax 80483ec: 89 45 f0 mov %eax,-0x10(%ebp) 80483ef: 8b 45 f8 mov -0x8(%ebp),%eax 80483f2: 0f af 45 f4 imul -0xc(%ebp),%eax 80483f6: 89 45 f0 mov %eax,-0x10(%ebp) 80483f9: 8b 45 f8 mov -0x8(%ebp),%eax 80483fc: 0f af 45 f4 imul -0xc(%ebp),%eax 8048400: 89 45 f0 mov %eax,-0x10(%ebp) 8048403: 8b 45 f8 mov -0x8(%ebp),%eax 8048406: 0f af 45 f4 imul -0xc(%ebp),%eax 804840a: 89 45 f0 mov %eax,-0x10(%ebp) 804840d: 8b 45 f8 mov -0x8(%ebp),%eax 8048410: 0f af 45 f4 imul -0xc(%ebp),%eax 8048414: 89 45 f0 mov %eax,-0x10(%ebp) 8048417: eb 8c jmp 80483a5 <main+0x11> 8048419: 90 nop 804841a: 90 nop 804841b: 90 nop 804841c: 90 nop 804841d: 90 nop 804841e: 90 nop 804841f: 90 nop
unrolled int div test
A while loop which takes two integers and divides them multiple times in the same loop.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 3c sub $0x3c,%esp 80483a5: c7 45 f8 36 00 00 00 movl $0x36,-0x8(%ebp) 80483ac: c7 45 f4 52 00 00 00 movl $0x52,-0xc(%ebp) 80483b3: 8b 45 f4 mov -0xc(%ebp),%eax 80483b6: 89 45 c0 mov %eax,-0x40(%ebp) 80483b9: 8b 55 c0 mov -0x40(%ebp),%edx 80483bc: 89 d0 mov %edx,%eax 80483be: c1 fa 1f sar $0x1f,%edx 80483c1: f7 7d f8 idivl -0x8(%ebp) 80483c4: 89 45 f0 mov %eax,-0x10(%ebp) 80483c7: 8b 45 f4 mov -0xc(%ebp),%eax 80483ca: 89 45 c0 mov %eax,-0x40(%ebp) 80483cd: 8b 55 c0 mov -0x40(%ebp),%edx 80483d0: 89 d0 mov %edx,%eax 80483d2: c1 fa 1f sar $0x1f,%edx 80483d5: f7 7d f8 idivl -0x8(%ebp) 80483d8: 89 45 f0 mov %eax,-0x10(%ebp) 80483db: 8b 45 f4 mov -0xc(%ebp),%eax 80483de: 89 45 c0 mov %eax,-0x40(%ebp) 80483e1: 8b 55 c0 mov -0x40(%ebp),%edx 80483e4: 89 d0 mov %edx,%eax 80483e6: c1 fa 1f sar $0x1f,%edx 80483e9: f7 7d f8 idivl -0x8(%ebp) 80483ec: 89 45 f0 mov %eax,-0x10(%ebp) 80483ef: 8b 45 f4 mov -0xc(%ebp),%eax 80483f2: 89 45 c0 mov %eax,-0x40(%ebp) 80483f5: 8b 55 c0 mov -0x40(%ebp),%edx 80483f8: 89 d0 mov %edx,%eax 80483fa: c1 fa 1f sar $0x1f,%edx 80483fd: f7 7d f8 idivl -0x8(%ebp) 8048400: 89 45 f0 mov %eax,-0x10(%ebp) 8048403: 8b 45 f4 mov -0xc(%ebp),%eax 8048406: 89 45 c0 mov %eax,-0x40(%ebp) 8048409: 8b 55 c0 mov -0x40(%ebp),%edx 804840c: 89 d0 mov %edx,%eax 804840e: c1 fa 1f sar $0x1f,%edx 8048411: f7 7d f8 idivl -0x8(%ebp) 8048414: 89 45 f0 mov %eax,-0x10(%ebp) 8048417: 8b 45 f4 mov -0xc(%ebp),%eax 804841a: 89 45 c0 mov %eax,-0x40(%ebp) 804841d: 8b 55 c0 mov -0x40(%ebp),%edx 8048420: 89 d0 mov %edx,%eax 8048422: c1 fa 1f sar $0x1f,%edx 8048425: f7 7d f8 idivl -0x8(%ebp) 8048428: 89 45 f0 mov %eax,-0x10(%ebp) 804842b: 8b 45 f4 mov -0xc(%ebp),%eax 804842e: 89 45 c0 mov %eax,-0x40(%ebp) 8048431: 8b 55 c0 mov -0x40(%ebp),%edx 8048434: 89 d0 mov %edx,%eax 8048436: c1 fa 1f sar $0x1f,%edx 8048439: f7 7d f8 idivl -0x8(%ebp) 804843c: 89 45 f0 mov %eax,-0x10(%ebp) 804843f: 8b 45 f4 mov -0xc(%ebp),%eax 8048442: 89 45 c0 mov %eax,-0x40(%ebp) 8048445: 8b 55 c0 mov -0x40(%ebp),%edx 8048448: 89 d0 mov %edx,%eax 804844a: c1 fa 1f sar $0x1f,%edx 804844d: f7 7d f8 idivl -0x8(%ebp) 8048450: 89 45 f0 mov %eax,-0x10(%ebp) 8048453: 8b 45 f4 mov -0xc(%ebp),%eax 8048456: 89 45 c0 mov %eax,-0x40(%ebp) 8048459: 8b 55 c0 mov -0x40(%ebp),%edx 804845c: 89 d0 mov %edx,%eax 804845e: c1 fa 1f sar $0x1f,%edx 8048461: f7 7d f8 idivl -0x8(%ebp) 8048464: 89 45 f0 mov %eax,-0x10(%ebp) 8048467: 8b 45 f4 mov -0xc(%ebp),%eax 804846a: 89 45 c0 mov %eax,-0x40(%ebp) 804846d: 8b 55 c0 mov -0x40(%ebp),%edx 8048470: 89 d0 mov %edx,%eax 8048472: c1 fa 1f sar $0x1f,%edx 8048475: f7 7d f8 idivl -0x8(%ebp) 8048478: 89 45 f0 mov %eax,-0x10(%ebp) 804847b: e9 25 ff ff ff jmp 80483a5 <main+0x11>
Unrolled FP Operations
unrolled fp add test
This is a while loop which takes two doubles and adds them multiple times in the same loop just like in the unrolled int add test.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 24 sub $0x24,%esp 80483a5: dd 05 e0 84 04 08 fldl 0x80484e0 80483ab: dd 5d f0 fstpl -0x10(%ebp) 80483ae: dd 05 e8 84 04 08 fldl 0x80484e8 80483b4: dd 5d e8 fstpl -0x18(%ebp) 80483b7: dd 45 e8 fldl -0x18(%ebp) 80483ba: dc 45 f0 faddl -0x10(%ebp) 80483bd: dd 5d e0 fstpl -0x20(%ebp) 80483c0: dd 45 e8 fldl -0x18(%ebp) 80483c3: dc 45 f0 faddl -0x10(%ebp) 80483c6: dd 5d e0 fstpl -0x20(%ebp) 80483c9: dd 45 e8 fldl -0x18(%ebp) 80483cc: dc 45 f0 faddl -0x10(%ebp) 80483cf: dd 5d e0 fstpl -0x20(%ebp) 80483d2: dd 45 e8 fldl -0x18(%ebp) 80483d5: dc 45 f0 faddl -0x10(%ebp) 80483d8: dd 5d e0 fstpl -0x20(%ebp) 80483db: dd 45 e8 fldl -0x18(%ebp) 80483de: dc 45 f0 faddl -0x10(%ebp) 80483e1: dd 5d e0 fstpl -0x20(%ebp) 80483e4: dd 45 e8 fldl -0x18(%ebp) 80483e7: dc 45 f0 faddl -0x10(%ebp) 80483ea: dd 5d e0 fstpl -0x20(%ebp) 80483ed: dd 45 e8 fldl -0x18(%ebp) 80483f0: dc 45 f0 faddl -0x10(%ebp) 80483f3: dd 5d e0 fstpl -0x20(%ebp) 80483f6: dd 45 e8 fldl -0x18(%ebp) 80483f9: dc 45 f0 faddl -0x10(%ebp) 80483fc: dd 5d e0 fstpl -0x20(%ebp) 80483ff: dd 45 e8 fldl -0x18(%ebp) 8048402: dc 45 f0 faddl -0x10(%ebp) 8048405: dd 5d e0 fstpl -0x20(%ebp) 8048408: dd 45 e8 fldl -0x18(%ebp) 804840b: dc 45 f0 faddl -0x10(%ebp) 804840e: dd 5d e0 fstpl -0x20(%ebp) 8048411: eb 92 jmp 80483a5 <main+0x11> 8048413: 90 nop 8048414: 90 nop 8048415: 90 nop 8048416: 90 nop 8048417: 90 nop 8048418: 90 nop 8048419: 90 nop 804841a: 90 nop 804841b: 90 nop 804841c: 90 nop 804841d: 90 nop 804841e: 90 nop 804841f: 90 nop
unrolled fp sub test
A while loop which takes two doubles and subtracts them multiple times in the same loop.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 24 sub $0x24,%esp 80483a5: dd 05 e0 84 04 08 fldl 0x80484e0 80483ab: dd 5d f0 fstpl -0x10(%ebp) 80483ae: dd 05 e8 84 04 08 fldl 0x80484e8 80483b4: dd 5d e8 fstpl -0x18(%ebp) 80483b7: dd 45 e8 fldl -0x18(%ebp) 80483ba: dc 65 f0 fsubl -0x10(%ebp) 80483bd: dd 5d e0 fstpl -0x20(%ebp) 80483c0: dd 45 e8 fldl -0x18(%ebp) 80483c3: dc 65 f0 fsubl -0x10(%ebp) 80483c6: dd 5d e0 fstpl -0x20(%ebp) 80483c9: dd 45 e8 fldl -0x18(%ebp) 80483cc: dc 65 f0 fsubl -0x10(%ebp) 80483cf: dd 5d e0 fstpl -0x20(%ebp) 80483d2: dd 45 e8 fldl -0x18(%ebp) 80483d5: dc 65 f0 fsubl -0x10(%ebp) 80483d8: dd 5d e0 fstpl -0x20(%ebp) 80483db: dd 45 e8 fldl -0x18(%ebp) 80483de: dc 65 f0 fsubl -0x10(%ebp) 80483e1: dd 5d e0 fstpl -0x20(%ebp) 80483e4: dd 45 e8 fldl -0x18(%ebp) 80483e7: dc 65 f0 fsubl -0x10(%ebp) 80483ea: dd 5d e0 fstpl -0x20(%ebp) 80483ed: dd 45 e8 fldl -0x18(%ebp) 80483f0: dc 65 f0 fsubl -0x10(%ebp) 80483f3: dd 5d e0 fstpl -0x20(%ebp) 80483f6: dd 45 e8 fldl -0x18(%ebp) 80483f9: dc 65 f0 fsubl -0x10(%ebp) 80483fc: dd 5d e0 fstpl -0x20(%ebp) 80483ff: dd 45 e8 fldl -0x18(%ebp) 8048402: dc 65 f0 fsubl -0x10(%ebp) 8048405: dd 5d e0 fstpl -0x20(%ebp) 8048408: dd 45 e8 fldl -0x18(%ebp) 804840b: dc 65 f0 fsubl -0x10(%ebp) 804840e: dd 5d e0 fstpl -0x20(%ebp) 8048411: eb 92 jmp 80483a5 <main+0x11> 8048413: 90 nop 8048414: 90 nop 8048415: 90 nop 8048416: 90 nop 8048417: 90 nop 8048418: 90 nop 8048419: 90 nop 804841a: 90 nop 804841b: 90 nop 804841c: 90 nop 804841d: 90 nop 804841e: 90 nop 804841f: 90 nop
unrolled fp mul test
A while loop which takes two doubles and multiplies them multiple times in the same loop. As in the case of fp mul test, we avoid overflow.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 24 sub $0x24,%esp 80483a5: dd 05 e0 84 04 08 fldl 0x80484e0 80483ab: dd 5d f0 fstpl -0x10(%ebp) 80483ae: dd 05 e8 84 04 08 fldl 0x80484e8 80483b4: dd 5d e8 fstpl -0x18(%ebp) 80483b7: dd 45 f0 fldl -0x10(%ebp) 80483ba: dc 4d e8 fmull -0x18(%ebp) 80483bd: dd 5d e0 fstpl -0x20(%ebp) 80483c0: dd 45 f0 fldl -0x10(%ebp) 80483c3: dc 4d e8 fmull -0x18(%ebp) 80483c6: dd 5d e0 fstpl -0x20(%ebp) 80483c9: dd 45 f0 fldl -0x10(%ebp) 80483cc: dc 4d e8 fmull -0x18(%ebp) 80483cf: dd 5d e0 fstpl -0x20(%ebp) 80483d2: dd 45 f0 fldl -0x10(%ebp) 80483d5: dc 4d e8 fmull -0x18(%ebp) 80483d8: dd 5d e0 fstpl -0x20(%ebp) 80483db: dd 45 f0 fldl -0x10(%ebp) 80483de: dc 4d e8 fmull -0x18(%ebp) 80483e1: dd 5d e0 fstpl -0x20(%ebp) 80483e4: dd 45 f0 fldl -0x10(%ebp) 80483e7: dc 4d e8 fmull -0x18(%ebp) 80483ea: dd 5d e0 fstpl -0x20(%ebp) 80483ed: dd 45 f0 fldl -0x10(%ebp) 80483f0: dc 4d e8 fmull -0x18(%ebp) 80483f3: dd 5d e0 fstpl -0x20(%ebp) 80483f6: dd 45 f0 fldl -0x10(%ebp) 80483f9: dc 4d e8 fmull -0x18(%ebp) 80483fc: dd 5d e0 fstpl -0x20(%ebp) 80483ff: dd 45 f0 fldl -0x10(%ebp) 8048402: dc 4d e8 fmull -0x18(%ebp) 8048405: dd 5d e0 fstpl -0x20(%ebp) 8048408: dd 45 f0 fldl -0x10(%ebp) 804840b: dc 4d e8 fmull -0x18(%ebp) 804840e: dd 5d e0 fstpl -0x20(%ebp) 8048411: eb 92 jmp 80483a5 <main+0x11> 8048413: 90 nop 8048414: 90 nop 8048415: 90 nop 8048416: 90 nop 8048417: 90 nop 8048418: 90 nop 8048419: 90 nop 804841a: 90 nop 804841b: 90 nop 804841c: 90 nop 804841d: 90 nop 804841e: 90 nop 804841f: 90 nop
unrolled fp div test
A while loop which takes two doubles and divides them multiple times in the same loop.
08048394 <main>: 8048394: 8d 4c 24 04 lea 0x4(%esp),%ecx 8048398: 83 e4 f0 and $0xfffffff0,%esp 804839b: ff 71 fc pushl -0x4(%ecx) 804839e: 55 push %ebp 804839f: 89 e5 mov %esp,%ebp 80483a1: 51 push %ecx 80483a2: 83 ec 24 sub $0x24,%esp 80483a5: dd 05 e0 84 04 08 fldl 0x80484e0 80483ab: dd 5d f0 fstpl -0x10(%ebp) 80483ae: dd 05 e8 84 04 08 fldl 0x80484e8 80483b4: dd 5d e8 fstpl -0x18(%ebp) 80483b7: dd 45 e8 fldl -0x18(%ebp) 80483ba: dc 75 f0 fdivl -0x10(%ebp) 80483bd: dd 5d e0 fstpl -0x20(%ebp) 80483c0: dd 45 e8 fldl -0x18(%ebp) 80483c3: dc 75 f0 fdivl -0x10(%ebp) 80483c6: dd 5d e0 fstpl -0x20(%ebp) 80483c9: dd 45 e8 fldl -0x18(%ebp) 80483cc: dc 75 f0 fdivl -0x10(%ebp) 80483cf: dd 5d e0 fstpl -0x20(%ebp) 80483d2: dd 45 e8 fldl -0x18(%ebp) 80483d5: dc 75 f0 fdivl -0x10(%ebp) 80483d8: dd 5d e0 fstpl -0x20(%ebp) 80483db: dd 45 e8 fldl -0x18(%ebp) 80483de: dc 75 f0 fdivl -0x10(%ebp) 80483e1: dd 5d e0 fstpl -0x20(%ebp) 80483e4: dd 45 e8 fldl -0x18(%ebp) 80483e7: dc 75 f0 fdivl -0x10(%ebp) 80483ea: dd 5d e0 fstpl -0x20(%ebp) 80483ed: dd 45 e8 fldl -0x18(%ebp) 80483f0: dc 75 f0 fdivl -0x10(%ebp) 80483f3: dd 5d e0 fstpl -0x20(%ebp) 80483f6: dd 45 e8 fldl -0x18(%ebp) 80483f9: dc 75 f0 fdivl -0x10(%ebp) 80483fc: dd 5d e0 fstpl -0x20(%ebp) 80483ff: dd 45 e8 fldl -0x18(%ebp) 8048402: dc 75 f0 fdivl -0x10(%ebp) 8048405: dd 5d e0 fstpl -0x20(%ebp) 8048408: dd 45 e8 fldl -0x18(%ebp) 804840b: dc 75 f0 fdivl -0x10(%ebp) 804840e: dd 5d e0 fstpl -0x20(%ebp) 8048411: eb 92 jmp 80483a5 <main+0x11> 8048413: 90 nop 8048414: 90 nop 8048415: 90 nop 8048416: 90 nop 8048417: 90 nop 8048418: 90 nop 8048419: 90 nop 804841a: 90 nop 804841b: 90 nop 804841c: 90 nop 804841d: 90 nop 804841e: 90 nop 804841f: 90 nop