ORIGINAL -O2 COMPILED C++ CODE FROM VS2008 SP1: ; 179 : BX_CPU_CALL_METHOD(i->execute, (i)); 000d8 8b cb mov ecx, ebx 000da ff 53 04 call DWORD PTR [ebx+4] THE PGO "OPTIMIZED" CODE FOR THAT EXACT SAME LINE OF CODE: ; 179 : BX_CPU_CALL_METHOD(i->execute, (i)); // might iterate repeat instruction 00188 8b 43 04 mov eax, DWORD PTR [ebx+4] 0018b 89 7d 6c mov DWORD PTR _length$76618[ebp], edi 0018e 3d 00 00 00 00 cmp eax, OFFSET ?MOV_GdEdR@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::MOV_GdEdR 00193 0f 84 24 09 00 00 je $LN2734@cpu_loop ; taken 4824605(10%), not-taken 41608210(89%) 00199 3d 00 00 00 00 cmp eax, OFFSET ?MOV_GdEdM@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::MOV_GdEdM 0019e 0f 84 34 09 00 00 je $LN2735@cpu_loop ; taken 4629862(11%), not-taken 36978348(88%) 001a4 3d 00 00 00 00 cmp eax, OFFSET ?PUSH_ERX@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::PUSH_ERX 001a9 0f 84 9d 0a 00 00 je $LN2744@cpu_loop ; taken 3615466(9%), not-taken 33362882(90%) 001af 3d 00 00 00 00 cmp eax, OFFSET ?MOVZX_GdEwM@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::MOVZX_GdEwM 001b4 0f 84 04 0e 00 00 je $LN2752@cpu_loop ; taken 2273749(6%), not-taken 31089133(93%) 001ba 3d 00 00 00 00 cmp eax, OFFSET ?ADD_EdIdR@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::ADD_EdIdR 001bf 0f 84 a8 0e 00 00 je $LN2760@cpu_loop ; taken 2248809(7%), not-taken 28840324(92%) 001c5 3d 00 00 00 00 cmp eax, OFFSET ?INC_ERX@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::INC_ERX 001ca 0f 84 0a 11 00 00 je $LN2761@cpu_loop ; taken 1930295(6%), not-taken 26910029(93%) 001d0 3d 00 00 00 00 cmp eax, OFFSET ?CMP_EdGdM@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::CMP_EdGdM 001d5 0f 84 6c 11 00 00 je $LN2768@cpu_loop ; taken 1883165(6%), not-taken 25026864(93%) 001db 3d 00 00 00 00 cmp eax, OFFSET ?CMP_EbIbM@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::CMP_EbIbM 001e0 0f 84 3b 12 00 00 je $LN2776@cpu_loop ; taken 1771195(7%), not-taken 23255669(92%) 001e6 3d 00 00 00 00 cmp eax, OFFSET ?CALL_Jd@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::CALL_Jd 001eb 0f 84 07 14 00 00 je $LN2783@cpu_loop ; taken 1618924(6%), not-taken 21636745(93%) 001f1 3d 00 00 00 00 cmp eax, OFFSET ?SHR_EdR@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::SHR_EdR 001f6 0f 84 c7 14 00 00 je $LN2792@cpu_loop ; taken 1576166(7%), not-taken 20060579(92%) 001fc 3d 00 00 00 00 cmp eax, OFFSET ?POP_ERX@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::POP_ERX 00201 0f 84 04 16 00 00 je $LN2795@cpu_loop ; taken 1536502(7%), not-taken 18524077(92%) 00207 3d 00 00 00 00 cmp eax, OFFSET ?JNZ_Jd@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::JNZ_Jd 0020c 0f 84 8a 16 00 00 je $LN2803@cpu_loop ; taken 1497385(8%), not-taken 17026692(91%) 00212 3d 00 00 00 00 cmp eax, OFFSET ?AND_EdIdR@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::AND_EdIdR 00217 0f 84 40 19 00 00 je $LN2806@cpu_loop ; taken 1323539(7%), not-taken 15703153(92%) 0021d 3d 00 00 00 00 cmp eax, OFFSET ?TEST_EdGdR@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::TEST_EdGdR 00222 0f 84 6e 1d 00 00 je $LN2807@cpu_loop ; taken 1020949(6%), not-taken 14682204(93%) 00228 3d 00 00 00 00 cmp eax, OFFSET ?MOV_EdGdM@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::MOV_EdGdM 0022d 0f 84 86 1f 00 00 je $LN2808@cpu_loop ; taken 950976(6%), not-taken 13731228(93%) 00233 3d 00 00 00 00 cmp eax, OFFSET ?ADD_GdEdR@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::ADD_GdEdR 00238 0f 84 11 22 00 00 je $LN2817@cpu_loop ; taken 817664(5%), not-taken 12913564(94%) 0023e 3d 00 00 00 00 cmp eax, OFFSET ?ADD_EdGdM@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::ADD_EdGdM 00243 0f 84 f8 22 00 00 je $LN2818@cpu_loop ; taken 786388(6%), not-taken 12127176(93%) 00249 3d 00 00 00 00 cmp eax, OFFSET ?DEC_ERX@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::DEC_ERX 0024e 0f 84 02 25 00 00 je $LN2829@cpu_loop ; taken 677653(5%), not-taken 11449523(94%) 00254 3d 00 00 00 00 cmp eax, OFFSET ?CMP_EdIdM@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::CMP_EdIdM 00259 0f 84 38 25 00 00 je $LN2836@cpu_loop ; taken 673256(5%), not-taken 10776267(94%) 0025f 3d 00 00 00 00 cmp eax, OFFSET ?JZ_Jd@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::JZ_Jd 00264 0f 84 d9 25 00 00 je $LN2844@cpu_loop ; taken 634479(5%), not-taken 10141788(94%) 0026a 3d 00 00 00 00 cmp eax, OFFSET ?XOR_GdEdR@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::XOR_GdEdR 0026f 0f 84 21 26 00 00 je $LN2846@cpu_loop ; taken 611381(6%), not-taken 9530407(93%) 00275 3d 00 00 00 00 cmp eax, OFFSET ?RETnear32_Iw@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::RETnear32_Iw 0027a 0f 84 02 27 00 00 je $LN2847@cpu_loop ; taken 577563(6%), not-taken 8952844(93%) 00280 3d 00 00 00 00 cmp eax, OFFSET ?NOT_EdR@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::NOT_EdR 00285 0f 84 48 29 00 00 je $LN2848@cpu_loop ; taken 531300(5%), not-taken 8421544(94%) 0028b 3d 00 00 00 00 cmp eax, OFFSET ?MOV_GbEbM@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::MOV_GbEbM 00290 0f 84 53 2a 00 00 je $LN2849@cpu_loop ; taken 493837(5%), not-taken 7927707(94%) 00296 3d 00 00 00 00 cmp eax, OFFSET ?CMP_EdIdR@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::CMP_EdIdR 0029b 0f 84 6c 2c 00 00 je $LN2850@cpu_loop ; taken 453512(5%), not-taken 7474195(94%) 002a1 3d 00 00 00 00 cmp eax, OFFSET ?AND_EAXId@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::AND_EAXId 002a6 0f 84 ba 2d 00 00 je $LN2851@cpu_loop ; taken 379393(5%), not-taken 7094802(94%) 002ac 3d 00 00 00 00 cmp eax, OFFSET ?PUSH_Id@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::PUSH_Id 002b1 0f 84 12 2f 00 00 je $LN2852@cpu_loop ; taken 342855(4%), not-taken 6751947(95%) 002b7 3d 00 00 00 00 cmp eax, OFFSET ?PUSH_EdM@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::PUSH_EdM 002bc 0f 84 b6 2f 00 00 je $LN2860@cpu_loop ; taken 332005(4%), not-taken 6419942(95%) 002c2 3d 00 00 00 00 cmp eax, OFFSET ?IMUL_GdEdId@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::IMUL_GdEdId 002c7 0f 84 88 30 00 00 je $LN2869@cpu_loop ; taken 320226(4%), not-taken 6099716(95%) 002cd 3d 00 00 00 00 cmp eax, OFFSET ?SHL_EdR@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::SHL_EdR 002d2 0f 84 89 30 00 00 je $LN2870@cpu_loop ; taken 319021(5%), not-taken 5780695(94%) 002d8 3d 00 00 00 00 cmp eax, OFFSET ?PUSH_RX@bx_cpu_c@@SIXPAVbxInstruction_c@@@Z ; bx_cpu_c::PUSH_RX 002dd 0f 84 ae 30 00 00 je $LN2871@cpu_loop ; taken 300169(5%), not-taken 5480526(94%) 002e3 8b cb mov ecx, ebx 002e5 ff d0 call eax