LINUX.ORG.RU

История изменений

Исправление wandrien, (текущая версия) :

Далее что тут можно сделать это поместить часть данных в регистры, чтобы получилось такое:

        mov     ESI,  dword [EBP-8]
        mov     EDI,  dword [EBP-4]
        mov     EBX,  100000

        align   32
@10499: 
        cmp     ESI,  EBX
        jae     @10500

        imul    EAX,  ESI, 92
        mov     EDX,  dword [@@DATA+EAX+777192]
        cmp     EDX,  EDI
        je      @10503

        mov     ESI,  dword [@@DATA+EAX+777204]
        jmp     @10499

Компилятор пока такое не умеет.

Но скорее всего, это ничего не даст, так как далее мы упираемся в пропускную способность памяти при сканировании списка.

Исходная версия wandrien, :

Далее что тут можно сделать это поместить часть данных в регистры, чтобы получилось такое:

        mov     ESI,  dword [EBP-8]
        mov     EDI,  dword [EBP-4]
        mov     EBX,  100000

        align   32
@10499: 
        cmp     ESI,  EBX
        jae     @10500

        imul    EAX,  ESI, 92
        mov     EDX,  dword [@@DATA+EAX+777192]
        cmp     EDX,  EDI
        je      @10503

        mov     ESI,  dword [@@DATA+EAX+777204]
        jmp     @10499

Компилятор пока такое не умеет.