Masm32 SDK description, downloads and other helpful links
Message to All Guests
NB: Posting URL's See here: Posted URL Change
==== TEST #1 CALLER ==============================================================
invoke: 50.18710 call: 50.59600 jmp: 40.59940 jmp_pushing: 50.62870
invoke: 50.36980 call: 50.26210 jmp: 39.60170 jmp_pushing: 49.22990
invoke: 50.34560 call: 50.01550 jmp: 39.10610 jmp_pushing: 49.39480
invoke: 49.55790 call: 49.84430 jmp: 41.38590 jmp_pushing: 49.39870
invoke: 49.82790 call: 51.69810 jmp: 39.37860 jmp_pushing: 49.14690
invoke: 49.76570 call: 49.43420 jmp: 39.39750 jmp_pushing: 49.25080
invoke: 49.87010 call: 49.50440 jmp: 39.13950 jmp_pushing: 48.83730
invoke: 49.24640 call: 49.22680 jmp: 39.10530 jmp_pushing: 48.79410
invoke: 48.96040 call: 48.65530 jmp: 38.93640 jmp_pushing: 48.89900
invoke: 49.18770 call: 49.16870 jmp: 40.31570 jmp_pushing: 49.47520
==== TEST #2 CALLER ==============================================================
invoke: 88.14260 call: 88.40850 jmp: 77.93630 jmp_pushing: 87.63130
invoke: 88.23860 call: 87.75230 jmp: 79.09840 jmp_pushing: 88.29500
invoke: 89.12850 call: 88.88320 jmp: 78.66140 jmp_pushing: 88.91490
invoke: 89.20640 call: 88.00590 jmp: 78.43220 jmp_pushing: 87.98450
invoke: 88.84460 call: 87.63700 jmp: 78.01040 jmp_pushing: 87.42030
invoke: 89.14900 call: 88.49750 jmp: 79.75330 jmp_pushing: 91.29620
invoke: 88.59650 call: 87.67670 jmp: 77.98670 jmp_pushing: 87.53560
invoke: 88.27750 call: 87.89240 jmp: 78.03880 jmp_pushing: 87.50800
invoke: 88.72370 call: 88.03770 jmp: 79.74930 jmp_pushing: 87.95070
invoke: 88.95910 call: 87.57560 jmp: 77.82160 jmp_pushing: 87.86520
Press any key to continue ...
Quote from: NoCforMe on June 24, 2025, 09:00:25 PMSo it's better not to align a proc???I thought it should be like that with Align vs unaligned proc start,because innerloop some opcodes later ends up aligned
AMD Athlon(tm) II X2 220 Processor (SSE3)
494 cycles for 100 * proc aligned 16
392 cycles for 100 * proc aligned 16+3
494 cycles for 100 * proc aligned 16
394 cycles for 100 * proc aligned 16+3
494 cycles for 100 * proc aligned 16
392 cycles for 100 * proc aligned 16+3
494 cycles for 100 * proc aligned 16
393 cycles for 100 * proc aligned 16+3
493 cycles for 100 * proc aligned 16
393 cycles for 100 * proc aligned 16+3
15 bytes for proc aligned 16
19 bytes for proc aligned 16+3
2 = eax proc aligned 16
2 = eax proc aligned 16+3
--- ok ---
Quote from: jj2007 on June 24, 2025, 07:56:40 PMMight be different on an Intel, though. Exe attached.
==== TEST #1 CALLER ==============================================================
invoke: 39.03400 call: 37.10070 jmp: 29.29720 jmp_pushing: 37.63750
invoke: 36.59330 call: 36.42400 jmp: 29.06740 jmp_pushing: 36.25850
invoke: 36.49720 call: 36.12820 jmp: 28.76850 jmp_pushing: 36.21280
invoke: 36.30200 call: 36.06980 jmp: 28.80440 jmp_pushing: 36.03530
invoke: 36.19410 call: 36.03210 jmp: 28.80230 jmp_pushing: 35.98700
invoke: 36.39530 call: 36.04040 jmp: 28.82840 jmp_pushing: 35.99410
invoke: 36.33010 call: 36.09230 jmp: 28.82980 jmp_pushing: 35.96370
invoke: 36.26420 call: 36.16860 jmp: 28.73160 jmp_pushing: 36.29470
invoke: 36.38940 call: 36.33560 jmp: 29.03850 jmp_pushing: 36.83340
invoke: 37.37830 call: 36.75130 jmp: 29.04050 jmp_pushing: 36.26370
==== TEST #2 CALLER ==============================================================
invoke: 65.15510 call: 64.81390 jmp: 57.61800 jmp_pushing: 64.72920
invoke: 65.33520 call: 64.86460 jmp: 57.55920 jmp_pushing: 64.76620
invoke: 65.04840 call: 64.66490 jmp: 57.49290 jmp_pushing: 64.65700
invoke: 65.22070 call: 64.89620 jmp: 57.78490 jmp_pushing: 64.81490
invoke: 66.02900 call: 64.80590 jmp: 57.54240 jmp_pushing: 64.87450
invoke: 65.22210 call: 64.78520 jmp: 57.59590 jmp_pushing: 64.71000
invoke: 65.49250 call: 65.40180 jmp: 57.58870 jmp_pushing: 64.74750
invoke: 65.26520 call: 64.90300 jmp: 57.77930 jmp_pushing: 64.73560
invoke: 65.22540 call: 64.87050 jmp: 57.56690 jmp_pushing: 65.37160
invoke: 65.36270 call: 64.86590 jmp: 57.45520 jmp_pushing: 64.72840
Press any key to continue ...
Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz (SSE4)
377 cycles for 100 * proc aligned 16
290 cycles for 100 * proc aligned 16+3
377 cycles for 100 * proc aligned 16
269 cycles for 100 * proc aligned 16+3
373 cycles for 100 * proc aligned 16
294 cycles for 100 * proc aligned 16+3
375 cycles for 100 * proc aligned 16
288 cycles for 100 * proc aligned 16+3
362 cycles for 100 * proc aligned 16
265 cycles for 100 * proc aligned 16+3
15 bytes for proc aligned 16
19 bytes for proc aligned 16+3
2 = eax proc aligned 16
2 = eax proc aligned 16+3
--- ok ---
==== TEST #1 CALLER ==============================================================
invoke: 33.84450 call: 33.37450 jmp: 26.55270 jmp_pushing: 33.06370
invoke: 33.45990 call: 33.31720 jmp: 26.50350 jmp_pushing: 33.07700
invoke: 33.25490 call: 33.28840 jmp: 26.54130 jmp_pushing: 33.15580
invoke: 33.10430 call: 33.11740 jmp: 26.47120 jmp_pushing: 32.96570
invoke: 33.10170 call: 33.15360 jmp: 26.49780 jmp_pushing: 33.04690
invoke: 33.12710 call: 33.10910 jmp: 26.46390 jmp_pushing: 33.08420
invoke: 33.08330 call: 33.10080 jmp: 26.48590 jmp_pushing: 32.87880
invoke: 33.12980 call: 33.17760 jmp: 26.49480 jmp_pushing: 32.99880
invoke: 33.12840 call: 33.12720 jmp: 26.48530 jmp_pushing: 33.06950
invoke: 33.18710 call: 33.09230 jmp: 26.50570 jmp_pushing: 32.88170
==== TEST #2 CALLER ==============================================================
invoke: 59.59570 call: 59.60400 jmp: 47.12650 jmp_pushing: 42.29450
invoke: 59.57080 call: 59.60340 jmp: 45.90970 jmp_pushing: 43.78430
invoke: 59.60710 call: 59.63960 jmp: 43.21370 jmp_pushing: 41.32330
invoke: 59.64870 call: 59.58620 jmp: 44.30890 jmp_pushing: 43.92940
invoke: 59.61300 call: 59.61520 jmp: 46.55210 jmp_pushing: 42.90500
invoke: 59.73040 call: 59.57440 jmp: 47.17210 jmp_pushing: 43.60190
invoke: 59.57470 call: 59.62530 jmp: 46.62040 jmp_pushing: 41.76730
invoke: 59.59960 call: 59.58450 jmp: 46.19870 jmp_pushing: 43.31890
invoke: 59.60240 call: 59.57950 jmp: 46.96230 jmp_pushing: 40.04710
invoke: 59.60350 call: 59.60040 jmp: 47.15910 jmp_pushing: 43.01760
231 cycles for 100 * proc aligned 16
194 cycles for 100 * proc aligned 16+3
227 cycles for 100 * proc aligned 16
181 cycles for 100 * proc aligned 16+3
224 cycles for 100 * proc aligned 16
195 cycles for 100 * proc aligned 16+3
229 cycles for 100 * proc aligned 16
184 cycles for 100 * proc aligned 16+3
221 cycles for 100 * proc aligned 16
185 cycles for 100 * proc aligned 16+3
15 bytes for proc aligned 16
19 bytes for proc aligned 16+3
2 = eax proc aligned 16
2 = eax proc aligned 16+3