On Wed, 11 Feb 2004 13:09:16 +0000 (GMT), Bart Oldeman wrote:

at this place entry.obj for your Borland compilation *must* have
                ror eax,16
                push ax
                ror eax,16

Indeed, it DOES have it!


However from the makefiles I conclude this code should be present.

Yes, it is.


It will also be helpful if you can provide the assembly output of what
Borland C generates (*how* does it exactly use eax) for those functions
that you changed.

Here it is. Original functions are to the left of the vertical line, my functions are to the right. Mostly fmemcpy is improved. Hope this helps.

Lucho

INIT_MEMSET:                           |INIT_MEMSET:
                push    BP             |                push    BP
                mov     BP,SP          |                mov     BP,SP
                push    SI             |                push    SI
                mov     DX,4[BP]       |                mov     SI,8[BP]
                mov     SI,8[BP]       |                mov     DX,4[BP]
                jmp short       L12    |                jmp short       L12
LC:             mov     AL,6[BP]       |LC:             mov     AL,6[BP]
                mov     [SI],AL        |                mov     [SI],AL
                inc     SI             |                inc     SI
L12:            mov     AX,DX          |L12:            mov     AX,DX
                dec     DX             |                dec     DX
                or      AX,AX          |                or      AX,AX
                jne     LC             |                jne     LC
                pop     SI             |                pop     SI
                pop     BP             |                pop     BP
                ret     6              |                ret     6
INIT_FMEMSET:                          |INIT_FMEMSET:
                enter   4,0            |                push    BP
                mov     DX,4[BP]       |                mov     BP,SP
                mov     EAX,8[BP]      |                mov     DX,4[BP]
                mov     -4[BP],EAX     |                jmp short       L32
                jmp short       L3B    |L26:            les     BX,8[BP]
L2F:            les     BX,-4[BP]      |                mov     AL,6[BP]
                mov     AL,6[BP]       |                mov     ES:[BX],AL
                mov     ES:[BX],AL     |                inc     word ptr 8[BP]
                inc     word ptr -4[BP]|L32:            mov     AX,DX
L3B:            mov     AX,DX          |                dec     DX
                dec     DX             |                or      AX,AX
                or      AX,AX          |                jne     L26
                jne     L2F            |                pop     BP
                leave                  |                ret     8
                ret     8              |
INIT_STRCPY:                           |INIT_STRCPY:
                push    BP             |                push    BP
                mov     BP,SP          |                mov     BP,SP
                push    SI             |                push    SI
                push    DI             |                push    DI
                mov     SI,6[BP]       |                mov     SI,6[BP]
                mov     DI,4[BP]       |                mov     DI,4[BP]
                jmp short       L59    |L48:            mov     BX,DI
L53:            mov     AL,[DI]        |                inc     DI
                mov     [SI],AL        |                mov     AL,[BX]
                inc     DI             |                mov     BX,SI
                inc     SI             |                inc     SI
L59:            cmp     [DI],0         |                mov     [BX],AL
                jne     L53            |                or      AL,AL
                mov     [SI],0         |                jne     L48
                pop     DI             |                pop     DI
                pop     SI             |                pop     SI
                pop     BP             |                pop     BP
                ret     4              |                ret     4
INIT_FMEMCPY:                          |INIT_FMEMCPY:
                enter   8,0            |                push    BP
                mov     DX,4[BP]       |                mov     BP,SP
                mov     EAX,0Ah[BP]    |                mov     DX,4[BP]
                mov     -4[BP],EAX     |                jmp short       L76
                mov     EAX,6[BP]      |L64:            les     BX,6[BP]
                mov     -8[BP],EAX     |                mov     AL,ES:[BX]
                jmp short       L92    |                les     BX,0Ah[BP]
L80:            les     BX,-8[BP]      |                mov     ES:[BX],AL
                mov     AL,ES:[BX]     |                inc     word ptr 6[BP]
                les     BX,-4[BP]      |                inc     word ptr 0Ah[BP]
                mov     ES:[BX],AL     |L76:            mov     AX,DX
                inc     word ptr -8[BP]|                dec     DX
                inc     word ptr -4[BP]|                or      AX,AX
L92:            mov     AX,DX          |                jne     L64
                dec     DX             |                pop     BP
                or      AX,AX          |                ret     0Ah
                jne     L80            |
                leave                  |
                ret     0Ah            |


------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ Freedos-kernel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to