*************************** Statistics grabbing functions ************************** Function Statistics Reference 8.948 s = 211 ns / Call Function AsmDummy_NoLoop Empty 598.2 ms = 14 ns / Call ********************************* Pascal functions ********************************* Function SysPosByCall Verified 2.993 s (100.0 %) = 71 ns / Call Run 2 Verified 2.994 s (100.0 %) = 71 ns / Call Run 3 Verified 2.982 s (100.0 %) = 70 ns / Call Run 4 Verified 2.985 s (100.0 %) = 70 ns / Call Function SysPosClone_NoAlign Verified 4.619 s (154.7 %) = 109 ns / Call Run 2 Verified 4.646 s (155.6 %) = 110 ns / Call Run 3 Verified 4.619 s (154.7 %) = 109 ns / Call Run 4 Verified 4.638 s (155.4 %) = 109 ns / Call Function SysPosClone_ProcAlign Verified 5.366 s (179.7 %) = 127 ns / Call Run 2 Verified 4.987 s (167.1 %) = 118 ns / Call Run 3 Verified 4.941 s (165.5 %) = 117 ns / Call Run 4 Verified 5.013 s (167.9 %) = 118 ns / Call Function SysPosClone_ProcLoopAlign Verified 4.616 s (154.6 %) = 109 ns / Call Run 2 Verified 4.644 s (155.6 %) = 110 ns / Call Run 3 Verified 6.645 s (222.6 %) = 157 ns / Call Run 4 Verified 4.703 s (157.5 %) = 111 ns / Call Function OwnPascal_NoAlign Verified 6.623 s (221.9 %) = 156 ns / Call Run 2 Verified 6.668 s (223.4 %) = 157 ns / Call Run 3 Verified 6.597 s (221.0 %) = 156 ns / Call Run 4 Verified 6.585 s (220.6 %) = 155 ns / Call Function OwnPascal_ProcAlign Verified 6.592 s (220.8 %) = 156 ns / Call Run 2 Verified 6.590 s (220.8 %) = 155 ns / Call Run 3 Verified 6.592 s (220.8 %) = 156 ns / Call Run 4 Verified 6.594 s (220.9 %) = 156 ns / Call Function OwnPascal_ProcLoopAlign Verified 5.885 s (197.1 %) = 139 ns / Call Run 2 Verified 5.893 s (197.4 %) = 139 ns / Call Run 3 Verified 5.891 s (197.3 %) = 139 ns / Call Run 4 Verified 5.905 s (197.8 %) = 139 ns / Call ***************************** Asm functions Version 1: ***************************** Char comparison first, unconditional loop jump, countdown with 4 byte subw: ***************************************************************** * .balign 16 * * >> n bytes NOP << * * .LLoop: cmpb (%esi), %dl // 2 Byte Code 3a16 * * je .LResult // 2 Byte Code 74xx * * subw $1, %ax // 4 Byte Code 662d0100 * * jz .LExit // 2 Byte Code 74xx * * inc %esi // 1 Byte Code 46 * * jmp .LLoop // 2 Byte Code ebxx * ***************************************************************** Function CharPos_Asm1_LoopStart_0 Verified 4.280 s (143.4 %) = 101 ns / Call = 87 ns Loop time / Call Run 2 Verified 4.266 s (142.9 %) = 101 ns / Call = 87 ns Loop time / Call Run 3 Verified 4.290 s (143.7 %) = 101 ns / Call = 87 ns Loop time / Call Run 4 Verified 4.273 s (143.1 %) = 101 ns / Call = 87 ns Loop time / Call Function CharPos_Asm1_LoopStart_1 Verified 4.265 s (142.9 %) = 101 ns / Call = 87 ns Loop time / Call Run 2 Verified 4.271 s (143.1 %) = 101 ns / Call = 87 ns Loop time / Call Run 3 Verified 4.267 s (142.9 %) = 101 ns / Call = 87 ns Loop time / Call Run 4 Verified 4.271 s (143.1 %) = 101 ns / Call = 87 ns Loop time / Call Function CharPos_Asm1_LoopStart_2 Verified 5.191 s (173.9 %) = 122 ns / Call = 108 ns Loop time / Call Run 2 Verified 5.369 s (179.8 %) = 127 ns / Call = 113 ns Loop time / Call Run 3 Verified 4.383 s (146.8 %) = 103 ns / Call = 89 ns Loop time / Call Run 4 Verified 4.273 s (143.1 %) = 101 ns / Call = 87 ns Loop time / Call Function CharPos_Asm1_LoopStart_3 Verified 4.417 s (148.0 %) = 104 ns / Call = 90 ns Loop time / Call Run 2 Verified 4.283 s (143.5 %) = 101 ns / Call = 87 ns Loop time / Call Run 3 Verified 4.281 s (143.4 %) = 101 ns / Call = 87 ns Loop time / Call Run 4 Verified 4.276 s (143.2 %) = 101 ns / Call = 87 ns Loop time / Call Function CharPos_Asm1_LoopStart_4 Verified 4.518 s (151.3 %) = 107 ns / Call = 92 ns Loop time / Call Run 2 Verified 4.589 s (153.7 %) = 108 ns / Call = 94 ns Loop time / Call Run 3 Verified 4.624 s (154.9 %) = 109 ns / Call = 95 ns Loop time / Call Run 4 Verified 4.552 s (152.5 %) = 107 ns / Call = 93 ns Loop time / Call Function CharPos_Asm1_LoopStart_5 Verified 4.573 s (153.2 %) = 108 ns / Call = 94 ns Loop time / Call Run 2 Verified 4.599 s (154.0 %) = 108 ns / Call = 94 ns Loop time / Call Run 3 Verified 4.509 s (151.0 %) = 106 ns / Call = 92 ns Loop time / Call Run 4 Verified 4.555 s (152.6 %) = 107 ns / Call = 93 ns Loop time / Call Function CharPos_Asm1_LoopStart_6 Verified 4.514 s (151.2 %) = 106 ns / Call = 92 ns Loop time / Call Run 2 Verified 4.569 s (153.0 %) = 108 ns / Call = 94 ns Loop time / Call Run 3 Verified 4.598 s (154.0 %) = 108 ns / Call = 94 ns Loop time / Call Run 4 Verified 4.701 s (157.5 %) = 111 ns / Call = 97 ns Loop time / Call Function CharPos_Asm1_LoopStart_7 Verified 4.531 s (151.8 %) = 107 ns / Call = 93 ns Loop time / Call Run 2 Verified 4.527 s (151.6 %) = 107 ns / Call = 93 ns Loop time / Call Run 3 Verified 4.502 s (150.8 %) = 106 ns / Call = 92 ns Loop time / Call Run 4 Verified 4.497 s (150.6 %) = 106 ns / Call = 92 ns Loop time / Call Function CharPos_Asm1_LoopStart_8 Verified 4.520 s (151.4 %) = 107 ns / Call = 93 ns Loop time / Call Run 2 Verified 4.511 s (151.1 %) = 106 ns / Call = 92 ns Loop time / Call Run 3 Verified 4.511 s (151.1 %) = 106 ns / Call = 92 ns Loop time / Call Run 4 Verified 4.516 s (151.3 %) = 107 ns / Call = 92 ns Loop time / Call Function CharPos_Asm1_LoopStart_9 Verified 6.497 s (217.6 %) = 153 ns / Call = 139 ns Loop time / Call Run 2 Verified 4.502 s (150.8 %) = 106 ns / Call = 92 ns Loop time / Call Run 3 Verified 4.622 s (154.8 %) = 109 ns / Call = 95 ns Loop time / Call Run 4 Verified 4.548 s (152.3 %) = 107 ns / Call = 93 ns Loop time / Call Function CharPos_Asm1_LoopStart_A Verified 4.629 s (155.1 %) = 109 ns / Call = 95 ns Loop time / Call Run 2 Verified 4.535 s (151.9 %) = 107 ns / Call = 93 ns Loop time / Call Run 3 Verified 4.509 s (151.0 %) = 106 ns / Call = 92 ns Loop time / Call Run 4 Verified 4.520 s (151.4 %) = 107 ns / Call = 93 ns Loop time / Call Function CharPos_Asm1_LoopStart_B Verified 4.445 s (148.9 %) = 105 ns / Call = 91 ns Loop time / Call Run 2 Verified 4.437 s (148.6 %) = 105 ns / Call = 91 ns Loop time / Call Run 3 Verified 4.438 s (148.7 %) = 105 ns / Call = 91 ns Loop time / Call Run 4 Verified 4.446 s (148.9 %) = 105 ns / Call = 91 ns Loop time / Call Function CharPos_Asm1_LoopStart_C Verified 4.450 s (149.1 %) = 105 ns / Call = 91 ns Loop time / Call Run 2 Verified 4.456 s (149.3 %) = 105 ns / Call = 91 ns Loop time / Call Run 3 Verified 4.453 s (149.1 %) = 105 ns / Call = 91 ns Loop time / Call Run 4 Verified 4.707 s (157.7 %) = 111 ns / Call = 97 ns Loop time / Call Function CharPos_Asm1_LoopStart_D Verified 4.454 s (149.2 %) = 105 ns / Call = 91 ns Loop time / Call Run 2 Verified 4.551 s (152.5 %) = 107 ns / Call = 93 ns Loop time / Call Run 3 Verified 4.539 s (152.1 %) = 107 ns / Call = 93 ns Loop time / Call Run 4 Verified 4.476 s (149.9 %) = 106 ns / Call = 91 ns Loop time / Call Function CharPos_Asm1_LoopStart_E Verified 4.565 s (152.9 %) = 108 ns / Call = 94 ns Loop time / Call Run 2 Verified 4.443 s (148.8 %) = 105 ns / Call = 91 ns Loop time / Call Run 3 Verified 4.450 s (149.1 %) = 105 ns / Call = 91 ns Loop time / Call Run 4 Verified 4.461 s (149.4 %) = 105 ns / Call = 91 ns Loop time / Call Function CharPos_Asm1_LoopStart_F Verified 4.459 s (149.4 %) = 105 ns / Call = 91 ns Loop time / Call Run 2 Verified 4.472 s (149.8 %) = 106 ns / Call = 91 ns Loop time / Call Run 3 Verified 4.465 s (149.6 %) = 105 ns / Call = 91 ns Loop time / Call Run 4 Verified 6.269 s (210.0 %) = 148 ns / Call = 134 ns Loop time / Call Function CharPos_Asm1_LoopStart_32 Verified 4.682 s (156.8 %) = 110 ns / Call = 96 ns Loop time / Call Run 2 Verified 4.360 s (146.0 %) = 103 ns / Call = 89 ns Loop time / Call Run 3 Verified 4.379 s (146.7 %) = 103 ns / Call = 89 ns Loop time / Call Run 4 Verified 4.296 s (143.9 %) = 101 ns / Call = 87 ns Loop time / Call Function CharPos_Asm1_LoopStart_64 Verified 4.499 s (150.7 %) = 106 ns / Call = 92 ns Loop time / Call Run 2 Verified 4.500 s (150.7 %) = 106 ns / Call = 92 ns Loop time / Call Run 3 Verified 4.508 s (151.0 %) = 106 ns / Call = 92 ns Loop time / Call Run 4 Verified 4.523 s (151.5 %) = 107 ns / Call = 93 ns Loop time / Call ***************************** Asm functions Version 2: ***************************** Char comparison last, unconditional loop jump, countdown with 4 byte subw: ***************************************************************** * .balign 16 * * >> n bytes NOP << * * .LLoop: subw $1, %ax // 4 Byte Code 662d0100 * * jz .LExit // 2 Byte Code 74xx * * inc %esi // 1 Byte Code 46 * * cmpb (%esi), %dl // 2 Byte Code 3a16 * * je .LResult // 2 Byte Code 74xx * * jmp .LLoop // 2 Byte Code ebxx * ***************************************************************** Function CharPos_Asm2_LoopStart_0 Verified 4.296 s (143.9 %) = 101 ns / Call = 87 ns Loop time / Call Run 2 Verified 4.299 s (144.0 %) = 101 ns / Call = 87 ns Loop time / Call Run 3 Verified 4.297 s (143.9 %) = 101 ns / Call = 87 ns Loop time / Call Run 4 Verified 4.304 s (144.2 %) = 102 ns / Call = 87 ns Loop time / Call Function CharPos_Asm2_LoopStart_1 Verified 4.294 s (143.8 %) = 101 ns / Call = 87 ns Loop time / Call Run 2 Verified 4.294 s (143.8 %) = 101 ns / Call = 87 ns Loop time / Call Run 3 Verified 4.298 s (144.0 %) = 101 ns / Call = 87 ns Loop time / Call Run 4 Verified 4.307 s (144.3 %) = 102 ns / Call = 88 ns Loop time / Call Function CharPos_Asm2_LoopStart_2 Verified 4.302 s (144.1 %) = 102 ns / Call = 87 ns Loop time / Call Run 2 Verified 4.318 s (144.6 %) = 102 ns / Call = 88 ns Loop time / Call Run 3 Verified 4.291 s (143.7 %) = 101 ns / Call = 87 ns Loop time / Call Run 4 Verified 4.297 s (143.9 %) = 101 ns / Call = 87 ns Loop time / Call Function CharPos_Asm2_LoopStart_3 Verified 4.293 s (143.8 %) = 101 ns / Call = 87 ns Loop time / Call Run 2 Verified 4.300 s (144.0 %) = 101 ns / Call = 87 ns Loop time / Call Run 3 Verified 4.294 s (143.8 %) = 101 ns / Call = 87 ns Loop time / Call Run 4 Verified 4.302 s (144.1 %) = 101 ns / Call = 87 ns Loop time / Call Function CharPos_Asm2_LoopStart_4 Verified 4.525 s (151.6 %) = 107 ns / Call = 93 ns Loop time / Call Run 2 Verified 4.542 s (152.1 %) = 107 ns / Call = 93 ns Loop time / Call Run 3 Verified 4.523 s (151.5 %) = 107 ns / Call = 93 ns Loop time / Call Run 4 Verified 5.212 s (174.6 %) = 123 ns / Call = 109 ns Loop time / Call Function CharPos_Asm2_LoopStart_5 Verified 5.715 s (191.4 %) = 135 ns / Call = 121 ns Loop time / Call Run 2 Verified 4.613 s (154.5 %) = 109 ns / Call = 95 ns Loop time / Call Run 3 Verified 4.534 s (151.9 %) = 107 ns / Call = 93 ns Loop time / Call Run 4 Verified 4.630 s (155.1 %) = 109 ns / Call = 95 ns Loop time / Call Function CharPos_Asm2_LoopStart_6 Verified 4.537 s (152.0 %) = 107 ns / Call = 93 ns Loop time / Call Run 2 Verified 4.542 s (152.1 %) = 107 ns / Call = 93 ns Loop time / Call Run 3 Verified 4.548 s (152.3 %) = 107 ns / Call = 93 ns Loop time / Call Run 4 Verified 4.554 s (152.5 %) = 107 ns / Call = 93 ns Loop time / Call Function CharPos_Asm2_LoopStart_7 Verified 4.530 s (151.7 %) = 107 ns / Call = 93 ns Loop time / Call Run 2 Verified 4.518 s (151.3 %) = 107 ns / Call = 92 ns Loop time / Call Run 3 Verified 4.526 s (151.6 %) = 107 ns / Call = 93 ns Loop time / Call Run 4 Verified 4.520 s (151.4 %) = 107 ns / Call = 93 ns Loop time / Call Function CharPos_Asm2_LoopStart_8 Verified 4.524 s (151.5 %) = 107 ns / Call = 93 ns Loop time / Call Run 2 Verified 4.526 s (151.6 %) = 107 ns / Call = 93 ns Loop time / Call Run 3 Verified 4.537 s (152.0 %) = 107 ns / Call = 93 ns Loop time / Call Run 4 Verified 4.525 s (151.6 %) = 107 ns / Call = 93 ns Loop time / Call Function CharPos_Asm2_LoopStart_9 Verified 4.520 s (151.4 %) = 107 ns / Call = 93 ns Loop time / Call Run 2 Verified 4.511 s (151.1 %) = 106 ns / Call = 92 ns Loop time / Call Run 3 Verified 4.499 s (150.7 %) = 106 ns / Call = 92 ns Loop time / Call Run 4 Verified 4.508 s (151.0 %) = 106 ns / Call = 92 ns Loop time / Call Function CharPos_Asm2_LoopStart_A Verified 4.523 s (151.5 %) = 107 ns / Call = 93 ns Loop time / Call Run 2 Verified 4.521 s (151.4 %) = 107 ns / Call = 93 ns Loop time / Call Run 3 Verified 4.517 s (151.3 %) = 107 ns / Call = 92 ns Loop time / Call Run 4 Verified 4.522 s (151.5 %) = 107 ns / Call = 93 ns Loop time / Call Function CharPos_Asm2_LoopStart_B Verified 4.512 s (151.1 %) = 106 ns / Call = 92 ns Loop time / Call Run 2 Verified 4.516 s (151.3 %) = 107 ns / Call = 92 ns Loop time / Call Run 3 Verified 4.525 s (151.6 %) = 107 ns / Call = 93 ns Loop time / Call Run 4 Verified 6.562 s (219.8 %) = 155 ns / Call = 141 ns Loop time / Call Function CharPos_Asm2_LoopStart_C Verified 4.621 s (154.8 %) = 109 ns / Call = 95 ns Loop time / Call Run 2 Verified 4.579 s (153.4 %) = 108 ns / Call = 94 ns Loop time / Call Run 3 Verified 4.648 s (155.7 %) = 110 ns / Call = 96 ns Loop time / Call Run 4 Verified 4.536 s (151.9 %) = 107 ns / Call = 93 ns Loop time / Call Function CharPos_Asm2_LoopStart_D Verified 4.528 s (151.7 %) = 107 ns / Call = 93 ns Loop time / Call Run 2 Verified 4.520 s (151.4 %) = 107 ns / Call = 93 ns Loop time / Call Run 3 Verified 4.530 s (151.7 %) = 107 ns / Call = 93 ns Loop time / Call Run 4 Verified 4.530 s (151.7 %) = 107 ns / Call = 93 ns Loop time / Call Function CharPos_Asm2_LoopStart_E Verified 4.539 s (152.0 %) = 107 ns / Call = 93 ns Loop time / Call Run 2 Verified 4.550 s (152.4 %) = 107 ns / Call = 93 ns Loop time / Call Run 3 Verified 4.550 s (152.4 %) = 107 ns / Call = 93 ns Loop time / Call Run 4 Verified 4.550 s (152.4 %) = 107 ns / Call = 93 ns Loop time / Call Function CharPos_Asm2_LoopStart_F Verified 4.500 s (150.7 %) = 106 ns / Call = 92 ns Loop time / Call Run 2 Verified 4.477 s (150.0 %) = 106 ns / Call = 92 ns Loop time / Call Run 3 Verified 4.507 s (151.0 %) = 106 ns / Call = 92 ns Loop time / Call Run 4 Verified 4.485 s (150.2 %) = 106 ns / Call = 92 ns Loop time / Call Function CharPos_Asm2_LoopStart_32 Verified 4.295 s (143.9 %) = 101 ns / Call = 87 ns Loop time / Call Run 2 Verified 4.325 s (144.9 %) = 102 ns / Call = 88 ns Loop time / Call Run 3 Verified 4.313 s (144.5 %) = 102 ns / Call = 88 ns Loop time / Call Run 4 Verified 4.296 s (143.9 %) = 101 ns / Call = 87 ns Loop time / Call Function CharPos_Asm2_LoopStart_64 Verified 4.510 s (151.1 %) = 106 ns / Call = 92 ns Loop time / Call Run 2 Verified 4.518 s (151.3 %) = 107 ns / Call = 92 ns Loop time / Call Run 3 Verified 4.650 s (155.8 %) = 110 ns / Call = 96 ns Loop time / Call Run 4 Verified 4.501 s (150.8 %) = 106 ns / Call = 92 ns Loop time / Call ***************************** Asm functions Version 3a: **************************** Char comparison last, conditional loop jump, countdown with 4 byte subw: ***************************************************************** * .balign 16 * * >> n bytes NOP << * * .LLoop: subw $1, %ax // 4 Byte Code 662d0100 * * jz .LExit // 2 Byte Code 74xx * * inc %esi // 1 Byte Code 46 * * cmpb (%esi), %dl // 2 Byte Code 3a16 * * jne .LLoop // 2 Byte Code 75xx * * jmp .LResult // 2 Byte Code ebxx * ***************************************************************** Function CharPos_Asm3a_LoopStart_0 Verified 4.252 s (142.4 %) = 100 ns / Call = 86 ns Loop time / Call Run 2 Verified 4.130 s (138.3 %) = 97 ns / Call = 83 ns Loop time / Call Run 3 Verified 5.122 s (171.6 %) = 121 ns / Call = 107 ns Loop time / Call Run 4 Verified 5.176 s (173.4 %) = 122 ns / Call = 108 ns Loop time / Call Function CharPos_Asm3a_LoopStart_1 Verified 4.185 s (140.2 %) = 99 ns / Call = 85 ns Loop time / Call Run 2 Verified 4.234 s (141.8 %) = 100 ns / Call = 86 ns Loop time / Call Run 3 Verified 4.380 s (146.7 %) = 103 ns / Call = 89 ns Loop time / Call Run 4 Verified 4.118 s (137.9 %) = 97 ns / Call = 83 ns Loop time / Call Function CharPos_Asm3a_LoopStart_2 Verified 4.227 s (141.6 %) = 100 ns / Call = 86 ns Loop time / Call Run 2 Verified 4.119 s (138.0 %) = 97 ns / Call = 83 ns Loop time / Call Run 3 Verified 4.116 s (137.9 %) = 97 ns / Call = 83 ns Loop time / Call Run 4 Verified 4.130 s (138.3 %) = 97 ns / Call = 83 ns Loop time / Call Function CharPos_Asm3a_LoopStart_3 Verified 4.172 s (139.7 %) = 98 ns / Call = 84 ns Loop time / Call Run 2 Verified 4.116 s (137.9 %) = 97 ns / Call = 83 ns Loop time / Call Run 3 Verified 4.250 s (142.4 %) = 100 ns / Call = 86 ns Loop time / Call Run 4 Verified 4.127 s (138.2 %) = 97 ns / Call = 83 ns Loop time / Call Function CharPos_Asm3a_LoopStart_4 Verified 4.224 s (141.5 %) = 100 ns / Call = 86 ns Loop time / Call Run 2 Verified 4.278 s (143.3 %) = 101 ns / Call = 87 ns Loop time / Call Run 3 Verified 4.177 s (139.9 %) = 99 ns / Call = 84 ns Loop time / Call Run 4 Verified 4.192 s (140.4 %) = 99 ns / Call = 85 ns Loop time / Call Function CharPos_Asm3a_LoopStart_5 Verified 4.114 s (137.8 %) = 97 ns / Call = 83 ns Loop time / Call Run 2 Verified 4.101 s (137.4 %) = 97 ns / Call = 83 ns Loop time / Call Run 3 Verified 4.100 s (137.3 %) = 97 ns / Call = 83 ns Loop time / Call Run 4 Verified 4.111 s (137.7 %) = 97 ns / Call = 83 ns Loop time / Call Function CharPos_Asm3a_LoopStart_6 Verified 4.429 s (148.3 %) = 104 ns / Call = 90 ns Loop time / Call Run 2 Verified 4.442 s (148.8 %) = 105 ns / Call = 91 ns Loop time / Call Run 3 Verified 4.432 s (148.5 %) = 105 ns / Call = 90 ns Loop time / Call Run 4 Verified 4.436 s (148.6 %) = 105 ns / Call = 91 ns Loop time / Call Function CharPos_Asm3a_LoopStart_7 Verified 4.427 s (148.3 %) = 104 ns / Call = 90 ns Loop time / Call Run 2 Verified 4.421 s (148.1 %) = 104 ns / Call = 90 ns Loop time / Call Run 3 Verified 4.422 s (148.1 %) = 104 ns / Call = 90 ns Loop time / Call Run 4 Verified 4.582 s (153.5 %) = 108 ns / Call = 94 ns Loop time / Call Function CharPos_Asm3a_LoopStart_8 Verified 6.153 s (206.1 %) = 145 ns / Call = 131 ns Loop time / Call Run 2 Verified 4.458 s (149.3 %) = 105 ns / Call = 91 ns Loop time / Call Run 3 Verified 4.527 s (151.6 %) = 107 ns / Call = 93 ns Loop time / Call Run 4 Verified 4.545 s (152.3 %) = 107 ns / Call = 93 ns Loop time / Call Function CharPos_Asm3a_LoopStart_9 Verified 4.416 s (147.9 %) = 104 ns / Call = 90 ns Loop time / Call Run 2 Verified 4.408 s (147.7 %) = 104 ns / Call = 90 ns Loop time / Call Run 3 Verified 4.405 s (147.5 %) = 104 ns / Call = 90 ns Loop time / Call Run 4 Verified 4.413 s (147.8 %) = 104 ns / Call = 90 ns Loop time / Call Function CharPos_Asm3a_LoopStart_A Verified 4.424 s (148.2 %) = 104 ns / Call = 90 ns Loop time / Call Run 2 Verified 4.758 s (159.4 %) = 112 ns / Call = 98 ns Loop time / Call Run 3 Verified 4.483 s (150.2 %) = 106 ns / Call = 92 ns Loop time / Call Run 4 Verified 4.636 s (155.3 %) = 109 ns / Call = 95 ns Loop time / Call Function CharPos_Asm3a_LoopStart_B Verified 4.559 s (152.7 %) = 108 ns / Call = 93 ns Loop time / Call Run 2 Verified 4.518 s (151.3 %) = 107 ns / Call = 92 ns Loop time / Call Run 3 Verified 4.420 s (148.0 %) = 104 ns / Call = 90 ns Loop time / Call Run 4 Verified 4.429 s (148.3 %) = 104 ns / Call = 90 ns Loop time / Call Function CharPos_Asm3a_LoopStart_C Verified 4.431 s (148.4 %) = 105 ns / Call = 90 ns Loop time / Call Run 2 Verified 4.427 s (148.3 %) = 104 ns / Call = 90 ns Loop time / Call Run 3 Verified 4.427 s (148.3 %) = 104 ns / Call = 90 ns Loop time / Call Run 4 Verified 4.429 s (148.4 %) = 105 ns / Call = 90 ns Loop time / Call Function CharPos_Asm3a_LoopStart_D Verified 4.423 s (148.1 %) = 104 ns / Call = 90 ns Loop time / Call Run 2 Verified 4.424 s (148.2 %) = 104 ns / Call = 90 ns Loop time / Call Run 3 Verified 4.432 s (148.4 %) = 105 ns / Call = 90 ns Loop time / Call Run 4 Verified 4.421 s (148.1 %) = 104 ns / Call = 90 ns Loop time / Call Function CharPos_Asm3a_LoopStart_E Verified 4.433 s (148.5 %) = 105 ns / Call = 90 ns Loop time / Call Run 2 Verified 4.432 s (148.4 %) = 105 ns / Call = 90 ns Loop time / Call Run 3 Verified 4.433 s (148.5 %) = 105 ns / Call = 90 ns Loop time / Call Run 4 Verified 6.168 s (206.6 %) = 146 ns / Call = 131 ns Loop time / Call Function CharPos_Asm3a_LoopStart_F Verified 4.644 s (155.5 %) = 110 ns / Call = 95 ns Loop time / Call Run 2 Verified 4.494 s (150.5 %) = 106 ns / Call = 92 ns Loop time / Call Run 3 Verified 4.379 s (146.7 %) = 103 ns / Call = 89 ns Loop time / Call Run 4 Verified 4.448 s (149.0 %) = 105 ns / Call = 91 ns Loop time / Call Function CharPos_Asm3a_LoopStart_32 Verified 4.223 s (141.5 %) = 100 ns / Call = 86 ns Loop time / Call Run 2 Verified 4.121 s (138.0 %) = 97 ns / Call = 83 ns Loop time / Call Run 3 Verified 4.122 s (138.1 %) = 97 ns / Call = 83 ns Loop time / Call Run 4 Verified 4.115 s (137.8 %) = 97 ns / Call = 83 ns Loop time / Call Function CharPos_Asm3a_LoopStart_64 Verified 4.116 s (137.9 %) = 97 ns / Call = 83 ns Loop time / Call Run 2 Verified 4.120 s (138.0 %) = 97 ns / Call = 83 ns Loop time / Call Run 3 Verified 4.119 s (138.0 %) = 97 ns / Call = 83 ns Loop time / Call Run 4 Verified 4.145 s (138.9 %) = 98 ns / Call = 84 ns Loop time / Call ***************************** Asm functions Version 3b: **************************** Same as Version 3a, countdown with 3 byte decw: ***************************************************************** * .balign 16 * * >> n bytes NOP << * * .LLoop: decw %ax // 2 Byte Code 6648 * * jz .LExit // 2 Byte Code 74xx * * inc %esi // 1 Byte Code 46 * * cmpb (%esi), %dl // 2 Byte Code 3a16 * * jne .LLoop // 2 Byte Code 75xx * * jmp .LResult // 2 Byte Code ebxx * ***************************************************************** Function CharPos_Asm3b_LoopStart_0 Verified 2.442 s ( 81.8 %) = 58 ns / Call = 44 ns Loop time / Call Run 2 Verified 2.449 s ( 82.0 %) = 58 ns / Call = 44 ns Loop time / Call Run 3 Verified 2.446 s ( 81.9 %) = 58 ns / Call = 44 ns Loop time / Call Run 4 Verified 2.448 s ( 82.0 %) = 58 ns / Call = 44 ns Loop time / Call Function CharPos_Asm3b_LoopStart_1 Verified 2.442 s ( 81.8 %) = 58 ns / Call = 43 ns Loop time / Call Run 2 Verified 2.447 s ( 82.0 %) = 58 ns / Call = 44 ns Loop time / Call Run 3 Verified 2.493 s ( 83.5 %) = 59 ns / Call = 45 ns Loop time / Call Run 4 Verified 2.456 s ( 82.3 %) = 58 ns / Call = 44 ns Loop time / Call Function CharPos_Asm3b_LoopStart_2 Verified 2.441 s ( 81.8 %) = 58 ns / Call = 43 ns Loop time / Call Run 2 Verified 2.447 s ( 82.0 %) = 58 ns / Call = 44 ns Loop time / Call Run 3 Verified 2.449 s ( 82.0 %) = 58 ns / Call = 44 ns Loop time / Call Run 4 Verified 2.443 s ( 81.8 %) = 58 ns / Call = 44 ns Loop time / Call Function CharPos_Asm3b_LoopStart_3 Verified 2.448 s ( 82.0 %) = 58 ns / Call = 44 ns Loop time / Call Run 2 Verified 2.468 s ( 82.7 %) = 58 ns / Call = 44 ns Loop time / Call Run 3 Verified 2.442 s ( 81.8 %) = 58 ns / Call = 43 ns Loop time / Call Run 4 Verified 2.444 s ( 81.9 %) = 58 ns / Call = 44 ns Loop time / Call Function CharPos_Asm3b_LoopStart_4 Verified 2.445 s ( 81.9 %) = 58 ns / Call = 44 ns Loop time / Call Run 2 Verified 2.450 s ( 82.1 %) = 58 ns / Call = 44 ns Loop time / Call Run 3 Verified 2.452 s ( 82.1 %) = 58 ns / Call = 44 ns Loop time / Call Run 4 Verified 2.456 s ( 82.3 %) = 58 ns / Call = 44 ns Loop time / Call Function CharPos_Asm3b_LoopStart_5 Verified 2.440 s ( 81.7 %) = 58 ns / Call = 43 ns Loop time / Call Run 2 Verified 2.554 s ( 85.6 %) = 60 ns / Call = 46 ns Loop time / Call Run 3 Verified 2.440 s ( 81.7 %) = 58 ns / Call = 43 ns Loop time / Call Run 4 Verified 2.442 s ( 81.8 %) = 58 ns / Call = 44 ns Loop time / Call Function CharPos_Asm3b_LoopStart_6 Verified 2.449 s ( 82.0 %) = 58 ns / Call = 44 ns Loop time / Call Run 2 Verified 2.447 s ( 82.0 %) = 58 ns / Call = 44 ns Loop time / Call Run 3 Verified 2.449 s ( 82.0 %) = 58 ns / Call = 44 ns Loop time / Call Run 4 Verified 2.446 s ( 81.9 %) = 58 ns / Call = 44 ns Loop time / Call Function CharPos_Asm3b_LoopStart_7 Verified 3.330 s (111.6 %) = 79 ns / Call = 64 ns Loop time / Call Run 2 Verified 3.688 s (123.5 %) = 87 ns / Call = 73 ns Loop time / Call Run 3 Verified 2.523 s ( 84.5 %) = 60 ns / Call = 45 ns Loop time / Call Run 4 Verified 2.453 s ( 82.2 %) = 58 ns / Call = 44 ns Loop time / Call Function CharPos_Asm3b_LoopStart_8 Verified 2.691 s ( 90.1 %) = 63 ns / Call = 49 ns Loop time / Call Run 2 Verified 2.743 s ( 91.9 %) = 65 ns / Call = 51 ns Loop time / Call Run 3 Verified 2.688 s ( 90.0 %) = 63 ns / Call = 49 ns Loop time / Call Run 4 Verified 2.686 s ( 90.0 %) = 63 ns / Call = 49 ns Loop time / Call Function CharPos_Asm3b_LoopStart_9 Verified 2.447 s ( 82.0 %) = 58 ns / Call = 44 ns Loop time / Call Run 2 Verified 2.575 s ( 86.2 %) = 61 ns / Call = 47 ns Loop time / Call Run 3 Verified 2.457 s ( 82.3 %) = 58 ns / Call = 44 ns Loop time / Call Run 4 Verified 2.443 s ( 81.8 %) = 58 ns / Call = 44 ns Loop time / Call Function CharPos_Asm3b_LoopStart_A Verified 2.646 s ( 88.6 %) = 62 ns / Call = 48 ns Loop time / Call Run 2 Verified 2.645 s ( 88.6 %) = 62 ns / Call = 48 ns Loop time / Call Run 3 Verified 2.653 s ( 88.9 %) = 63 ns / Call = 48 ns Loop time / Call Run 4 Verified 2.642 s ( 88.5 %) = 62 ns / Call = 48 ns Loop time / Call Function CharPos_Asm3b_LoopStart_B Verified 2.445 s ( 81.9 %) = 58 ns / Call = 44 ns Loop time / Call Run 2 Verified 2.439 s ( 81.7 %) = 58 ns / Call = 43 ns Loop time / Call Run 3 Verified 2.457 s ( 82.3 %) = 58 ns / Call = 44 ns Loop time / Call Run 4 Verified 2.444 s ( 81.9 %) = 58 ns / Call = 44 ns Loop time / Call Function CharPos_Asm3b_LoopStart_C Verified 2.660 s ( 89.1 %) = 63 ns / Call = 49 ns Loop time / Call Run 2 Verified 2.661 s ( 89.1 %) = 63 ns / Call = 49 ns Loop time / Call Run 3 Verified 2.656 s ( 89.0 %) = 63 ns / Call = 49 ns Loop time / Call Run 4 Verified 2.665 s ( 89.3 %) = 63 ns / Call = 49 ns Loop time / Call Function CharPos_Asm3b_LoopStart_D Verified 2.443 s ( 81.8 %) = 58 ns / Call = 44 ns Loop time / Call Run 2 Verified 2.442 s ( 81.8 %) = 58 ns / Call = 43 ns Loop time / Call Run 3 Verified 2.444 s ( 81.9 %) = 58 ns / Call = 44 ns Loop time / Call Run 4 Verified 2.443 s ( 81.8 %) = 58 ns / Call = 44 ns Loop time / Call Function CharPos_Asm3b_LoopStart_E Verified 2.666 s ( 89.3 %) = 63 ns / Call = 49 ns Loop time / Call Run 2 Verified 2.672 s ( 89.5 %) = 63 ns / Call = 49 ns Loop time / Call Run 3 Verified 2.672 s ( 89.5 %) = 63 ns / Call = 49 ns Loop time / Call Run 4 Verified 2.666 s ( 89.3 %) = 63 ns / Call = 49 ns Loop time / Call Function CharPos_Asm3b_LoopStart_F Verified 2.445 s ( 81.9 %) = 58 ns / Call = 44 ns Loop time / Call Run 2 Verified 2.442 s ( 81.8 %) = 58 ns / Call = 44 ns Loop time / Call Run 3 Verified 2.442 s ( 81.8 %) = 58 ns / Call = 43 ns Loop time / Call Run 4 Verified 2.451 s ( 82.1 %) = 58 ns / Call = 44 ns Loop time / Call Function CharPos_Asm3b_LoopStart_32 Verified 2.445 s ( 81.9 %) = 58 ns / Call = 44 ns Loop time / Call Run 2 Verified 2.448 s ( 82.0 %) = 58 ns / Call = 44 ns Loop time / Call Run 3 Verified 2.453 s ( 82.2 %) = 58 ns / Call = 44 ns Loop time / Call Run 4 Verified 2.447 s ( 82.0 %) = 58 ns / Call = 44 ns Loop time / Call Function CharPos_Asm3b_LoopStart_64 Verified 2.450 s ( 82.1 %) = 58 ns / Call = 44 ns Loop time / Call Run 2 Verified 2.446 s ( 81.9 %) = 58 ns / Call = 44 ns Loop time / Call Run 3 Verified 2.454 s ( 82.2 %) = 58 ns / Call = 44 ns Loop time / Call Run 4 Verified 2.457 s ( 82.3 %) = 58 ns / Call = 44 ns Loop time / Call ***************************** Asm functions Version 3c: **************************** Same as Version 3a, loop start aligned to 16, internal (runthrough) NOPs: ***************************************************************** * .balign 16 * * .LLoop: subw $1, %ax // 4 Byte Code 662d0100 * * jz .LExit // 2 Byte Code 74xx * * >> n bytes NOP << * * inc %esi // 1 Byte Code 46 * * cmpb (%esi), %dl // 2 Byte Code 3a16 * * jne .LLoop // 2 Byte Code 75xx * * jmp .LResult // 2 Byte Code ebxx * ***************************************************************** Function CharPos_Asm3c_InsideLoop_0 Verified 4.119 s (138.0 %) = 97 ns / Call = 83 ns Loop time / Call Run 2 Verified 4.104 s (137.5 %) = 97 ns / Call = 83 ns Loop time / Call Run 3 Verified 4.118 s (137.9 %) = 97 ns / Call = 83 ns Loop time / Call Run 4 Verified 6.195 s (207.5 %) = 146 ns / Call = 132 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_1 Verified 4.137 s (138.6 %) = 98 ns / Call = 83 ns Loop time / Call Run 2 Verified 4.228 s (141.6 %) = 100 ns / Call = 86 ns Loop time / Call Run 3 Verified 4.161 s (139.4 %) = 98 ns / Call = 84 ns Loop time / Call Run 4 Verified 4.188 s (140.3 %) = 99 ns / Call = 85 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_2 Verified 4.109 s (137.6 %) = 97 ns / Call = 83 ns Loop time / Call Run 2 Verified 4.182 s (140.1 %) = 99 ns / Call = 85 ns Loop time / Call Run 3 Verified 4.132 s (138.4 %) = 97 ns / Call = 83 ns Loop time / Call Run 4 Verified 4.110 s (137.7 %) = 97 ns / Call = 83 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_3 Verified 4.101 s (137.4 %) = 97 ns / Call = 83 ns Loop time / Call Run 2 Verified 4.121 s (138.0 %) = 97 ns / Call = 83 ns Loop time / Call Run 3 Verified 4.098 s (137.3 %) = 97 ns / Call = 83 ns Loop time / Call Run 4 Verified 4.107 s (137.6 %) = 97 ns / Call = 83 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_4 Verified 4.097 s (137.3 %) = 97 ns / Call = 83 ns Loop time / Call Run 2 Verified 4.115 s (137.8 %) = 97 ns / Call = 83 ns Loop time / Call Run 3 Verified 4.099 s (137.3 %) = 97 ns / Call = 83 ns Loop time / Call Run 4 Verified 4.099 s (137.3 %) = 97 ns / Call = 83 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_5 Verified 4.117 s (137.9 %) = 97 ns / Call = 83 ns Loop time / Call Run 2 Verified 4.116 s (137.9 %) = 97 ns / Call = 83 ns Loop time / Call Run 3 Verified 4.120 s (138.0 %) = 97 ns / Call = 83 ns Loop time / Call Run 4 Verified 4.126 s (138.2 %) = 97 ns / Call = 83 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_6 Verified 4.403 s (147.5 %) = 104 ns / Call = 90 ns Loop time / Call Run 2 Verified 4.412 s (147.8 %) = 104 ns / Call = 90 ns Loop time / Call Run 3 Verified 4.416 s (147.9 %) = 104 ns / Call = 90 ns Loop time / Call Run 4 Verified 4.407 s (147.6 %) = 104 ns / Call = 90 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_7 Verified 4.415 s (147.9 %) = 104 ns / Call = 90 ns Loop time / Call Run 2 Verified 4.435 s (148.5 %) = 105 ns / Call = 91 ns Loop time / Call Run 3 Verified 4.590 s (153.7 %) = 108 ns / Call = 94 ns Loop time / Call Run 4 Verified 4.417 s (148.0 %) = 104 ns / Call = 90 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_8 Verified 6.384 s (213.8 %) = 151 ns / Call = 136 ns Loop time / Call Run 2 Verified 4.828 s (161.7 %) = 114 ns / Call = 100 ns Loop time / Call Run 3 Verified 4.409 s (147.7 %) = 104 ns / Call = 90 ns Loop time / Call Run 4 Verified 4.579 s (153.4 %) = 108 ns / Call = 94 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_9 Verified 4.418 s (148.0 %) = 104 ns / Call = 90 ns Loop time / Call Run 2 Verified 4.439 s (148.7 %) = 105 ns / Call = 91 ns Loop time / Call Run 3 Verified 4.430 s (148.4 %) = 105 ns / Call = 90 ns Loop time / Call Run 4 Verified 4.473 s (149.8 %) = 106 ns / Call = 91 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_A Verified 4.506 s (150.9 %) = 106 ns / Call = 92 ns Loop time / Call Run 2 Verified 4.530 s (151.7 %) = 107 ns / Call = 93 ns Loop time / Call Run 3 Verified 4.434 s (148.5 %) = 105 ns / Call = 91 ns Loop time / Call Run 4 Verified 4.438 s (148.7 %) = 105 ns / Call = 91 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_B Verified 4.553 s (152.5 %) = 107 ns / Call = 93 ns Loop time / Call Run 2 Verified 4.438 s (148.7 %) = 105 ns / Call = 91 ns Loop time / Call Run 3 Verified 4.441 s (148.8 %) = 105 ns / Call = 91 ns Loop time / Call Run 4 Verified 4.451 s (149.1 %) = 105 ns / Call = 91 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_C Verified 4.442 s (148.8 %) = 105 ns / Call = 91 ns Loop time / Call Run 2 Verified 4.451 s (149.1 %) = 105 ns / Call = 91 ns Loop time / Call Run 3 Verified 4.454 s (149.2 %) = 105 ns / Call = 91 ns Loop time / Call Run 4 Verified 4.458 s (149.3 %) = 105 ns / Call = 91 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_D Verified 4.796 s (160.6 %) = 113 ns / Call = 99 ns Loop time / Call Run 2 Verified 4.804 s (160.9 %) = 113 ns / Call = 99 ns Loop time / Call Run 3 Verified 4.797 s (160.7 %) = 113 ns / Call = 99 ns Loop time / Call Run 4 Verified 4.807 s (161.0 %) = 113 ns / Call = 99 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_E Verified 4.784 s (160.2 %) = 113 ns / Call = 99 ns Loop time / Call Run 2 Verified 4.779 s (160.1 %) = 113 ns / Call = 99 ns Loop time / Call Run 3 Verified 4.782 s (160.2 %) = 113 ns / Call = 99 ns Loop time / Call Run 4 Verified 6.558 s (219.7 %) = 155 ns / Call = 141 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_F Verified 5.150 s (172.5 %) = 122 ns / Call = 107 ns Loop time / Call Run 2 Verified 4.898 s (164.1 %) = 116 ns / Call = 101 ns Loop time / Call Run 3 Verified 4.877 s (163.4 %) = 115 ns / Call = 101 ns Loop time / Call Run 4 Verified 5.207 s (174.4 %) = 123 ns / Call = 109 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_32 Verified 5.870 s (196.6 %) = 138 ns / Call = 124 ns Loop time / Call Run 2 Verified 5.912 s (198.0 %) = 139 ns / Call = 125 ns Loop time / Call Run 3 Verified 5.784 s (193.8 %) = 136 ns / Call = 122 ns Loop time / Call Run 4 Verified 5.798 s (194.2 %) = 137 ns / Call = 123 ns Loop time / Call Function CharPos_Asm3c_InsideLoop_64 Verified 4.133 s (138.4 %) = 98 ns / Call = 83 ns Loop time / Call Run 2 Verified 4.123 s (138.1 %) = 97 ns / Call = 83 ns Loop time / Call Run 3 Verified 4.117 s (137.9 %) = 97 ns / Call = 83 ns Loop time / Call Run 4 Verified 4.110 s (137.7 %) = 97 ns / Call = 83 ns Loop time / Call ******************************* Asm functions Version 4a: **************************** Dummy doing nothing else but jumping to NOPed Exit (RET): *************************************** * asm * * jmp .LExit * * .balign 16 * * >> n bytes NOP << * * .LExit: * * end; * *************************************** Function CharPos_Asm4a_NoLoop_ExitStart_0 Empty 451.6 ms ( 15.1 %) = 11 ns / Call Run 2 Empty 453.9 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 454.8 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 454.1 ms ( 15.2 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_1 Empty 454.1 ms ( 15.2 %) = 11 ns / Call Run 2 Empty 453.8 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 450.7 ms ( 15.1 %) = 11 ns / Call Run 4 Empty 454.4 ms ( 15.2 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_2 Empty 453.4 ms ( 15.2 %) = 11 ns / Call Run 2 Empty 451.7 ms ( 15.1 %) = 11 ns / Call Run 3 Empty 452.7 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 452.2 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_3 Empty 452.1 ms ( 15.1 %) = 11 ns / Call Run 2 Empty 453.9 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 453.5 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 451.0 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_4 Empty 456.7 ms ( 15.3 %) = 11 ns / Call Run 2 Empty 451.0 ms ( 15.1 %) = 11 ns / Call Run 3 Empty 451.8 ms ( 15.1 %) = 11 ns / Call Run 4 Empty 451.6 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_5 Empty 455.2 ms ( 15.2 %) = 11 ns / Call Run 2 Empty 453.0 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 453.4 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 454.8 ms ( 15.2 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_6 Empty 512.5 ms ( 17.2 %) = 12 ns / Call Run 2 Empty 453.7 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 451.3 ms ( 15.1 %) = 11 ns / Call Run 4 Empty 455.1 ms ( 15.2 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_7 Empty 449.7 ms ( 15.1 %) = 11 ns / Call Run 2 Empty 454.8 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 452.3 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 454.4 ms ( 15.2 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_8 Empty 449.8 ms ( 15.1 %) = 11 ns / Call Run 2 Empty 453.2 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 452.5 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 455.4 ms ( 15.3 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_9 Empty 455.2 ms ( 15.2 %) = 11 ns / Call Run 2 Empty 451.2 ms ( 15.1 %) = 11 ns / Call Run 3 Empty 462.8 ms ( 15.5 %) = 11 ns / Call Run 4 Empty 452.2 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_A Empty 454.7 ms ( 15.2 %) = 11 ns / Call Run 2 Empty 451.1 ms ( 15.1 %) = 11 ns / Call Run 3 Empty 455.6 ms ( 15.3 %) = 11 ns / Call Run 4 Empty 451.2 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_B Empty 452.4 ms ( 15.2 %) = 11 ns / Call Run 2 Empty 452.7 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 456.0 ms ( 15.3 %) = 11 ns / Call Run 4 Empty 453.3 ms ( 15.2 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_C Empty 451.8 ms ( 15.1 %) = 11 ns / Call Run 2 Empty 457.6 ms ( 15.3 %) = 11 ns / Call Run 3 Empty 451.3 ms ( 15.1 %) = 11 ns / Call Run 4 Empty 456.5 ms ( 15.3 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_D Empty 450.7 ms ( 15.1 %) = 11 ns / Call Run 2 Empty 455.7 ms ( 15.3 %) = 11 ns / Call Run 3 Empty 450.8 ms ( 15.1 %) = 11 ns / Call Run 4 Empty 455.7 ms ( 15.3 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_E Empty 453.0 ms ( 15.2 %) = 11 ns / Call Run 2 Empty 452.3 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 452.3 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 450.5 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_F Empty 461.3 ms ( 15.5 %) = 11 ns / Call Run 2 Empty 450.6 ms ( 15.1 %) = 11 ns / Call Run 3 Empty 453.9 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 451.4 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_32 Empty 458.9 ms ( 15.4 %) = 11 ns / Call Run 2 Empty 451.5 ms ( 15.1 %) = 11 ns / Call Run 3 Empty 458.7 ms ( 15.4 %) = 11 ns / Call Run 4 Empty 451.4 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4a_NoLoop_ExitStart_64 Empty 451.1 ms ( 15.1 %) = 11 ns / Call Run 2 Empty 454.2 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 451.3 ms ( 15.1 %) = 11 ns / Call Run 4 Empty 454.3 ms ( 15.2 %) = 11 ns / Call ******************************* Asm functions Version 4b: ***************************** Same as Version 4a, but with PUSH / NOPed Exit (POP RET): *************************************** * asm * * pushl %esi * * jmp .LExit * * .balign 16 * * >> n bytes NOP << * * .LExit: popl %esi * * end; * *************************************** Function CharPos_Asm4b_NoLoop_ExitStart_0 Empty 452.9 ms ( 15.2 %) = 11 ns / Call Run 2 Empty 455.1 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 451.5 ms ( 15.1 %) = 11 ns / Call Run 4 Empty 454.7 ms ( 15.2 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_1 Empty 450.9 ms ( 15.1 %) = 11 ns / Call Run 2 Empty 459.2 ms ( 15.4 %) = 11 ns / Call Run 3 Empty 452.9 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 451.7 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_2 Empty 451.0 ms ( 15.1 %) = 11 ns / Call Run 2 Empty 453.5 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 454.1 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 450.4 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_3 Empty 456.6 ms ( 15.3 %) = 11 ns / Call Run 2 Empty 451.1 ms ( 15.1 %) = 11 ns / Call Run 3 Empty 453.4 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 450.4 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_4 Empty 457.8 ms ( 15.3 %) = 11 ns / Call Run 2 Empty 450.6 ms ( 15.1 %) = 11 ns / Call Run 3 Empty 453.3 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 456.0 ms ( 15.3 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_5 Empty 451.6 ms ( 15.1 %) = 11 ns / Call Run 2 Empty 452.3 ms ( 15.1 %) = 11 ns / Call Run 3 Empty 463.1 ms ( 15.5 %) = 11 ns / Call Run 4 Empty 458.2 ms ( 15.3 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_6 Empty 451.6 ms ( 15.1 %) = 11 ns / Call Run 2 Empty 454.7 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 451.3 ms ( 15.1 %) = 11 ns / Call Run 4 Empty 456.7 ms ( 15.3 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_7 Empty 452.2 ms ( 15.1 %) = 11 ns / Call Run 2 Empty 464.8 ms ( 15.6 %) = 11 ns / Call Run 3 Empty 452.1 ms ( 15.1 %) = 11 ns / Call Run 4 Empty 454.4 ms ( 15.2 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_8 Empty 454.0 ms ( 15.2 %) = 11 ns / Call Run 2 Empty 456.5 ms ( 15.3 %) = 11 ns / Call Run 3 Empty 451.8 ms ( 15.1 %) = 11 ns / Call Run 4 Empty 451.8 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_9 Empty 457.7 ms ( 15.3 %) = 11 ns / Call Run 2 Empty 450.6 ms ( 15.1 %) = 11 ns / Call Run 3 Empty 453.5 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 451.8 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_A Empty 455.9 ms ( 15.3 %) = 11 ns / Call Run 2 Empty 452.6 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 456.8 ms ( 15.3 %) = 11 ns / Call Run 4 Empty 453.9 ms ( 15.2 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_B Empty 453.1 ms ( 15.2 %) = 11 ns / Call Run 2 Empty 451.9 ms ( 15.1 %) = 11 ns / Call Run 3 Empty 451.8 ms ( 15.1 %) = 11 ns / Call Run 4 Empty 454.8 ms ( 15.2 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_C Empty 451.0 ms ( 15.1 %) = 11 ns / Call Run 2 Empty 458.4 ms ( 15.4 %) = 11 ns / Call Run 3 Empty 452.6 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 459.8 ms ( 15.4 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_D Empty 454.8 ms ( 15.2 %) = 11 ns / Call Run 2 Empty 455.9 ms ( 15.3 %) = 11 ns / Call Run 3 Empty 453.6 ms ( 15.2 %) = 11 ns / Call Run 4 Empty 452.1 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_E Empty 455.5 ms ( 15.3 %) = 11 ns / Call Run 2 Empty 453.1 ms ( 15.2 %) = 11 ns / Call Run 3 Empty 464.8 ms ( 15.6 %) = 11 ns / Call Run 4 Empty 450.4 ms ( 15.1 %) = 11 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_F Empty 473.0 ms ( 15.8 %) = 11 ns / Call Run 2 Empty 470.0 ms ( 15.7 %) = 11 ns / Call Run 3 Empty 502.6 ms ( 16.8 %) = 12 ns / Call Run 4 Empty 943.5 ms ( 31.6 %) = 22 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_32 Empty 1.016 s ( 34.0 %) = 24 ns / Call Run 2 Empty 1.159 s ( 38.8 %) = 27 ns / Call Run 3 Empty 517.4 ms ( 17.3 %) = 12 ns / Call Run 4 Empty 507.1 ms ( 17.0 %) = 12 ns / Call Function CharPos_Asm4b_NoLoop_ExitStart_64 Empty 624.6 ms ( 20.9 %) = 15 ns / Call Run 2 Empty 535.2 ms ( 17.9 %) = 13 ns / Call Run 3 Empty 468.4 ms ( 15.7 %) = 11 ns / Call Run 4 Empty 480.2 ms ( 16.1 %) = 11 ns / Call Total time elapsed: 00:28:27 ************************************* All Done! ****************************************** ** ** ** The scope of this test program is to learn more about how to write fast and ** ** efficient Free Pascal code for modern processors. One of the most interesting ** ** questions in this context is: What have different CPUs in common in terms of ** ** micro-runtime behaviour (e.g. related to code alignment) and what are their ** ** differences? If we optimize some code on our own working machine, would this code ** ** also work better on other computers? So the more result log files of different ** ** processors could be evaluated, the more reliable the findings would be. ** ** ** ** Thus I would like to ask you to run this test (which will take about 12 minutes) ** ** and to submit your result file(s): ==> mailto: rue.walter@web.de ** ** ** ************************ Thank you very much for your patience! **************************