Is it possible to optimize this further?

From: Atle Smelvær (atle_at_datagrafikk.no)
Date: 06/28/04


Date: Mon, 28 Jun 2004 10:20:33 +0200


      asm

        push ebx
        mov edx, con
        mov ebx, cval
        jmp @startloop

      @insertdata:

        mov eax, lcon // lcon is a pointer
        push edx // edx points to a TSomeRec structure
        mov [edx].TSomeRec.last, eax
        mov [edx].TSomeRec.indexvalue, ecx
        mov eax, bheap

        call TSomeObject.Insert
        pop edx

        mov edx, [edx].TSomeRec.local_next

      @startloop:

        test edx, edx
        jz @finished

      @loop:

        mov ecx, [edx].TSomeRec.indextime
        add ecx, ebx
        cmp ecx, [edx].TSomeRec.indexvalue
        jl @insertdata

        mov edx, [edx].TSomeRec.local_next
        test edx, edx
        jz @finished

        mov ecx, [edx].TSomeRec.indextime
        add ecx, ebx
        cmp ecx, [edx].TSomeRec.indexvalue
        jl @insertdata

        mov edx, [edx].TSomeRec.local_next // Next structure
        test edx, edx
        jz @finished

        mov ecx, [edx].TSomeRec.indextime
        add ecx, ebx
        cmp ecx, [edx].TSomeRec.indexvalue
        jl @insertdata

        mov edx, [edx].TSomeRec.local_next
        test edx, edx
        jz @finished

        mov ecx, [edx].TSomeRec.indextime
        add ecx, ebx
        cmp ecx, [edx].TSomeRec.indexvalue
        jl @insertdata

        mov edx, [edx].TSomeRec.local_next
        test edx, edx
        jnz @loop

      @finished:

        pop ebx

      end;