Frank Heckenbach a écrit:
Maurice Lombardi wrote:
- Five errors with gc-3.2.2 and dwarf debugging (no EXTRA_TEST_PFLAGS)
OK, that's all the same issue (most likely).
TEST	windtest.pas:	c:\djgpp\tmp/ccO4SFg9.s: Assembler messages:
c:\djgpp\tmp/ccO4SFg9.s:176: Error: symbol `LFE0' is already defined
c:\djgpp\tmp/ccO4SFg9.s:326: Error: symbol `LFE0' is already defined
c:\djgpp\tmp/ccO4SFg9.s:422: Error: symbol `LFE0' is already defined
c:\djgpp\tmp/ccO4SFg9.s:639: Error: symbol `LFE0' is already defined
c:\djgpp\tmp/ccO4SFg9.s:715: Error: symbol `LFE0' is already defined
c:\djgpp\tmp/ccO4SFg9.s:788: Error: symbol `LFE0' is already defined
c:\djgpp\tmp/ccO4SFg9.s:861: Error: symbol `LFE0' is already defined
c:\djgpp\tmp/ccO4SFg9.s:934: Error: symbol `LFE0' is already defined
c:\djgpp\tmp/ccO4SFg9.s:996: Error: symbol `LFE0' is already defined
gpc1.exe: c:/djgpp/b/gnu/build.gcc/gcc/xgpc.exe exited with status 1
failed
I don't get this error when cross-compiling from Linux to DJGPP with
i386-pc-msdosdjgpp-gpc --automake -O3 -gdwarf-2 windtest.pas
(I haven't cross-built a DJGPP hosted compiler yet, so I can't
easily run the test suite directly).
Can you try to find out which unit (and which declaration in it)
causes the error? Then perhaps send the assembler output. Do any
options (e.g., inlining) have any influence?
Compiling with -v option I see that it is when assembling windos.pas.
The listing assembly is attached, produced with
gpc -c -S -O3 -gdwarf-2 c:\djgpp\lib\gcc-lib\djgpp\3.22\units\windos.pas
LFEO: is indeed present at many places
Maurice
-- 
        Maurice Lombardi
Laboratoire de  Spectrometrie Physique,
Universite Joseph Fourier de Grenoble, BP87
38402 Saint Martin d'Heres Cedex     FRANCE
Tel: 33 (0)4 76 51 47 51
Fax: 33 (0)4 76 63 54 95
mailto:Maurice.Lombardi@ujf-grenoble.fr
    .file	"windos.pas"
    .file 1 "c:\djgpp\lib\gcc-lib\djgpp\3.22\units\windos.pas"
    .section	.debug_abbrev,""
Ldebug_abbrev0:
    .section	.debug_info,""
Ldebug_info0:
    .section	.debug_line,""
Ldebug_line0:
    .section .text
Ltext0:
    .p2align 4,,15
_Convertsearchrec:
    pushl	%ebp
    movl	%esp, %ebp
    pushl	%edi
    pushl	%esi
    pushl	%ebx
    subl	$12, %esp
    movl	8(%ebp), %esi
    movb	2113(%esi), %cl
    movl	2116(%esi), %eax
    movb	%cl, 21(%esi)
    movl	2120(%esi), %edi
    movl	2136(%esi), %ecx
    movl	2128(%esi), %ebx
    addl	$1, %ecx
    movl	%eax, 24(%esi)
    movl	2124(%esi), %eax
    movl	%edi, 28(%esi)
    leal	24(%ecx), %edx
    movl	%eax, 32(%esi)
    andl	$-16, %edx
    movl	%ebx, 36(%esi)
    subl	%edx, %esp
    leal	2140(%esi), %eax
    movl	%esp, %edi
    movl	%ecx, (%esp)
    leal	8(%esp), %edx
    pushl	%ecx
    movl	2136(%esi), %ecx
    pushl	%ecx
    pushl	%eax
    pushl	%edx
    call	_memcpy
    addl	$16, %esp
    movl	2136(%esi), %eax
    addl	%edi, %eax
    movb	$0, 8(%eax)
    movl	2136(%esi), %eax
    incl	%eax
    movl	%eax, 4(%edi)
    movl	%eax, %ebx
    cmpl	$2049, %eax
    jle	L2
    movl	$2049, %ebx
L2:
    leal	8(%edi), %eax
    pushl	%ecx
    leal	40(%esi), %edx
    pushl	%ebx
    pushl	%eax
    pushl	%edx
    call	_memcpy
    leal	40(%ebx,%esi), %edx
    addl	$12, %esp
    movl	$2049, %eax
    subl	%ebx, %eax
    pushl	%eax
    pushl	$32
    pushl	%edx
    call	_memset
    addl	$16, %esp
    leal	-12(%ebp), %esp
    popl	%ebx
    popl	%esi
    popl	%edi
    popl	%ebp
    ret
LFE0:
    .p2align 4,,15
.globl __p_WFindFirst
__p_WFindFirst:
    pushl	%ebp
    movl	%esp, %ebp
    pushl	%edi
    pushl	%esi
    pushl	%ebx
    subl	$12, %esp
    movl	%esp, -16(%ebp)
    movl	4(%ebp), %eax
    subl	$12, %esp
    pushl	%eax
    call	__p_SetReturnAddress
    movl	8(%ebp), %eax
    addl	$16, %esp
    testl	%eax, %eax
    je	L4
    subl	$12, %esp
    movl	8(%ebp), %eax
    pushl	%eax
    call	_strlen
    addl	$16, %esp
    movl	%eax, %ecx
L5:
    leal	9(%ecx), %edi
    movl	%edi, %esi
    movl	%edi, %ebx
    shrl	$2, %esi
    andl	$3, %ebx
    setne	%dl
    andl	$255, %edx
    movl	%ebx, -20(%ebp)
    addl	%edx, %esi
    leal	24(%ecx), %edx
    andl	$-16, %edx
    leal	15(,%esi,4), %ebx
    andl	$-16, %ebx
    subl	%ebx, %esp
    movl	%esp, %ebx
    movl	%ecx, (%esp)
    subl	%edx, %esp
    movl	%esp, %esi
    movl	%ecx, (%esp)
    pushl	%eax
    pushl	%eax
    pushl	%esi
    movl	8(%ebp), %eax
    pushl	%eax
    call	__p_CopyCString
    movl	-20(%ebp), %eax
    movl	%edi, %edx
    addl	$12, %esp
    shrl	$2, %edx
    movl	%ebx, %edi
    testl	%eax, %eax
    setne	%cl
    andl	$255, %ecx
    addl	%ecx, %edx
    cld
    leal	0(,%edx,4), %ecx
    shrl	$2, %ecx
    rep
    movsl
    movl	16(%ebp), %eax
    addl	$2092, %eax
    pushl	%eax
    movl	12(%ebp), %eax
    pushl	%eax
    pushl	%ebx
    call	__p_FindFirst
    call	__p_RestoreReturnAddress
    movl	__p_DosError, %eax
    addl	$16, %esp
    testl	%eax, %eax
    je	L9
L8:
    movl	-16(%ebp), %esp
    leal	-12(%ebp), %esp
    popl	%ebx
    popl	%esi
    popl	%edi
    popl	%ebp
    ret
    .p2align 4,,7
L9:
    subl	$12, %esp
    movl	16(%ebp), %edi
    pushl	%edi
    call	_Convertsearchrec
    addl	$16, %esp
    jmp	L8
    .p2align 4,,7
L4:
    xorl	%ecx, %ecx
    jmp	L5
LFE0:
    .p2align 4,,15
.globl __p_WFileSearch
__p_WFileSearch:
    pushl	%ebp
    movl	%esp, %ebp
    pushl	%edi
    pushl	%esi
    pushl	%ebx
    subl	$4188, %esp
    movl	12(%ebp), %eax
    movl	%esp, -4156(%ebp)
    testl	%eax, %eax
    je	L14
    subl	$12, %esp
    movl	12(%ebp), %eax
    pushl	%eax
    call	_strlen
    addl	$16, %esp
    movl	%eax, %ecx
L15:
    leal	9(%ecx), %edi
    movl	%edi, %ebx
    movl	%edi, %esi
    shrl	$2, %ebx
    andl	$3, %esi
    setne	%dl
    andl	$255, %edx
    movl	%esi, -4160(%ebp)
    addl	%edx, %ebx
    leal	24(%ecx), %esi
    andl	$-16, %esi
    leal	15(,%ebx,4), %eax
    movl	%edi, %ebx
    shrl	$2, %ebx
    andl	$-16, %eax
    subl	%eax, %esp
    movl	%esp, -4164(%ebp)
    movl	%ecx, (%esp)
    subl	%esi, %esp
    movl	%esp, %esi
    movl	%ecx, (%esp)
    pushl	%edx
    pushl	%edx
    pushl	%esi
    movl	12(%ebp), %eax
    pushl	%eax
    call	__p_CopyCString
    movl	-4164(%ebp), %edi
    movl	-4160(%ebp), %eax
    addl	$16, %esp
    testl	%eax, %eax
    setne	%dl
    andl	$255, %edx
    addl	%edx, %ebx
    cld
    leal	0(,%ebx,4), %ecx
    shrl	$2, %ecx
    rep
    movsl
    movl	16(%ebp), %eax
    testl	%eax, %eax
    je	L18
    subl	$12, %esp
    movl	16(%ebp), %eax
    pushl	%eax
    call	_strlen
    addl	$16, %esp
    movl	%eax, %ecx
L19:
    leal	9(%ecx), %ebx
    movl	%ebx, %edx
    movl	%ebx, %edi
    shrl	$2, %edx
    andl	$3, %edi
    setne	%al
    andl	$255, %eax
    addl	%eax, %edx
    leal	15(,%edx,4), %esi
    leal	24(%ecx), %edx
    andl	$-16, %esi
    andl	$-16, %edx
    subl	%esi, %esp
    movl	%esp, -4188(%ebp)
    movl	%ecx, (%esp)
    subl	%edx, %esp
    movl	%esp, %esi
    movl	%ecx, (%esp)
    pushl	%eax
    pushl	%eax
    pushl	%esi
    movl	16(%ebp), %eax
    pushl	%eax
    call	__p_CopyCString
    addl	$12, %esp
    movl	%ebx, %edx
    shrl	$2, %edx
    testl	%edi, %edi
    setne	%bl
    andl	$255, %ebx
    movl	-4188(%ebp), %edi
    addl	%ebx, %edx
    leal	-2088(%ebp), %ebx
    cld
    leal	0(,%edx,4), %ecx
    shrl	$2, %ecx
    rep
    movsl
    movl	-4188(%ebp), %eax
    leal	-4152(%ebp), %edi
    movl	$2048, -2088(%ebp)
    pushl	%eax
    movl	%ebx, %esi
    movl	-4164(%ebp), %ecx
    pushl	%ecx
    pushl	%ebx
    call	__p_FSearch
    movl	$515, %ecx
    cld
    rep
    movsl
    movl	-2084(%ebp), %eax
    addl	$12, %esp
    cmpb	$0, 8(%eax,%ebx)
    je	L23
    movb	$0, 8(%eax,%ebx)
L23:
    leal	-2080(%ebp), %ebx
    pushl	%ecx
    pushl	$79
    pushl	%ebx
    movl	8(%ebp), %edi
    pushl	%edi
    call	__p_CStringLCopy
    addl	$16, %esp
    movl	-4156(%ebp), %esp
    leal	-12(%ebp), %esp
    popl	%ebx
    popl	%esi
    popl	%edi
    popl	%ebp
    ret
    .p2align 4,,7
L18:
    xorl	%ecx, %ecx
    jmp	L19
    .p2align 4,,7
L14:
    xorl	%ecx, %ecx
    jmp	L15
LFE0:
    .p2align 4,,15
.globl __p_WFileExpand
__p_WFileExpand:
    pushl	%ebp
    movl	%esp, %ebp
    pushl	%edi
    pushl	%esi
    pushl	%ebx
    subl	$4156, %esp
    movl	12(%ebp), %eax
    movl	%esp, -4156(%ebp)
    testl	%eax, %eax
    je	L25
    subl	$12, %esp
    movl	12(%ebp), %eax
    pushl	%eax
    call	_strlen
    addl	$16, %esp
    movl	%eax, %ecx
L26:
    leal	9(%ecx), %ebx
    movl	%ebx, %edi
    movl	%ebx, %esi
    shrl	$2, %edi
    andl	$3, %esi
    setne	%dl
    andl	$255, %edx
    movl	%esi, -4160(%ebp)
    addl	%edx, %edi
    leal	24(%ecx), %esi
    andl	$-16, %esi
    leal	15(,%edi,4), %eax
    movl	%ebx, %edi
    shrl	$2, %edi
    andl	$-16, %eax
    subl	%eax, %esp
    leal	-2088(%ebp), %ebx
    movl	%esp, -4164(%ebp)
    movl	%ecx, (%esp)
    subl	%esi, %esp
    movl	%esp, %esi
    movl	%ecx, (%esp)
    pushl	%eax
    pushl	%eax
    pushl	%esi
    movl	12(%ebp), %eax
    pushl	%eax
    call	__p_CopyCString
    movl	-4160(%ebp), %eax
    addl	$12, %esp
    testl	%eax, %eax
    setne	%dl
    andl	$255, %edx
    addl	%edx, %edi
    cld
    leal	0(,%edi,4), %ecx
    movl	-4164(%ebp), %edi
    shrl	$2, %ecx
    rep
    movsl
    pushl	$79
    movl	%ebx, %esi
    movl	-4164(%ebp), %eax
    movl	$2048, -2088(%ebp)
    pushl	%eax
    pushl	%ebx
    call	__p_FExpand
    movl	$515, %ecx
    cld
    popl	%edi
    leal	-4152(%ebp), %edi
    rep
    movsl
    movl	-2084(%ebp), %eax
    cmpb	$0, 8(%eax,%ebx)
    je	L30
    movb	$0, 8(%eax,%ebx)
L30:
    leal	-2080(%ebp), %ebx
    pushl	%ebx
    movl	8(%ebp), %ecx
    pushl	%ecx
    call	__p_CStringLCopy
    addl	$16, %esp
    movl	-4156(%ebp), %esp
    leal	-12(%ebp), %esp
    popl	%ebx
    popl	%esi
    popl	%edi
    popl	%ebp
    ret
    .p2align 4,,7
L25:
    xorl	%ecx, %ecx
    jmp	L26
LFE0:
    .p2align 4,,15
.globl __p_WFileSplit
__p_WFileSplit:
    pushl	%ebp
    movl	%esp, %ebp
    pushl	%edi
    pushl	%esi
    pushl	%ebx
    subl	$172, %esp
    movl	8(%ebp), %eax
    movl	%esp, -160(%ebp)
    movl	$4, -152(%ebp)
    movl	$8, -136(%ebp)
    movl	$67, -104(%ebp)
    testl	%eax, %eax
    je	L32
    subl	$12, %esp
    movl	8(%ebp), %eax
    pushl	%eax
    call	_strlen
    addl	$16, %esp
    movl	%eax, %ecx
L33:
    leal	9(%ecx), %edi
    movl	%edi, %esi
    movl	%edi, %ebx
    shrl	$2, %esi
    andl	$3, %ebx
    setne	%dl
    andl	$255, %edx
    addl	%edx, %esi
    leal	15(,%esi,4), %eax
    leal	24(%ecx), %esi
    andl	$-16, %eax
    andl	$-16, %esi
    subl	%eax, %esp
    movl	%esp, -164(%ebp)
    movl	%ecx, (%esp)
    subl	%esi, %esp
    movl	%esp, %esi
    movl	%ecx, (%esp)
    pushl	%eax
    pushl	%eax
    pushl	%esi
    movl	8(%ebp), %eax
    pushl	%eax
    call	__p_CopyCString
    addl	$16, %esp
    movl	%edi, %edx
    movl	-164(%ebp), %edi
    shrl	$2, %edx
    testl	%ebx, %ebx
    setne	%cl
    andl	$255, %ecx
    leal	-104(%ebp), %ebx
    addl	%ecx, %edx
    cld
    leal	0(,%edx,4), %ecx
    leal	-152(%ebp), %edx
    shrl	$2, %ecx
    rep
    movsl
    pushl	%edx
    leal	-136(%ebp), %esi
    pushl	%esi
    pushl	%ebx
    movl	-164(%ebp), %eax
    pushl	%eax
    call	__p_FSplit
    movl	12(%ebp), %eax
    addl	$16, %esp
    testl	%eax, %eax
    je	L36
    movl	-100(%ebp), %eax
    cmpb	$0, 8(%eax,%ebx)
    je	L38
    movb	$0, 8(%eax,%ebx)
L38:
    leal	-96(%ebp), %ebx
    pushl	%edx
    pushl	%edx
    pushl	%ebx
    movl	12(%ebp), %eax
    pushl	%eax
    call	__p_CStringCopy
    addl	$16, %esp
L36:
    movl	16(%ebp), %eax
    testl	%eax, %eax
    je	L39
    movl	-132(%ebp), %eax
    cmpb	$0, 8(%eax,%esi)
    je	L41
    movb	$0, 8(%eax,%esi)
L41:
    leal	-128(%ebp), %edi
    pushl	%eax
    pushl	%eax
    pushl	%edi
    movl	16(%ebp), %eax
    pushl	%eax
    call	__p_CStringCopy
    addl	$16, %esp
L39:
    movl	20(%ebp), %eax
    testl	%eax, %eax
    je	L42
    movl	-148(%ebp), %eax
    cmpb	$0, -144(%eax,%ebp)
    je	L44
    movb	$0, -144(%eax,%ebp)
L44:
    pushl	%eax
    pushl	%eax
    leal	-144(%ebp), %eax
    pushl	%eax
    movl	20(%ebp), %ecx
    pushl	%ecx
    call	__p_CStringCopy
    addl	$16, %esp
L42:
    movl	-100(%ebp), %edx
    movl	$0, -156(%ebp)
    testl	%edx, %edx
    je	L45
    movl	$4, -156(%ebp)
L45:
    movl	-132(%ebp), %edx
    testl	%edx, %edx
    je	L46
    movl	-156(%ebp), %esi
    addl	$2, %esi
    movl	%esi, -156(%ebp)
L46:
    movl	-148(%ebp), %eax
    testl	%eax, %eax
    je	L47
    movl	-156(%ebp), %ebx
    incl	%ebx
    movl	%ebx, -156(%ebp)
L47:
    leal	(%eax,%edx), %ebx
    leal	-128(%ebp), %ecx
    leal	24(%ebx), %esi
    leal	9(%ebx), %edi
    andl	$-16, %esi
    subl	%esi, %esp
    movl	%esp, %esi
    movl	%ebx, (%esp)
    leal	8(%esp), %eax
    pushl	%edx
    movl	-132(%ebp), %edx
    pushl	%edx
    pushl	%ecx
    pushl	%eax
    call	_memcpy
    movl	-148(%ebp), %edx
    addl	$12, %esp
    movl	-132(%ebp), %eax
    pushl	%edx
    leal	8(%eax,%esi), %ecx
    leal	-144(%ebp), %edx
    pushl	%edx
    pushl	%ecx
    call	_memcpy
    movl	%edi, %ecx
    movl	-132(%ebp), %edx
    movl	-148(%ebp), %eax
    addl	%edx, %eax
    addl	$16, %esp
    movl	%edi, %edx
    movl	%eax, 4(%esi)
    shrl	$2, %edx
    andl	$3, %ecx
    setne	%al
    andl	$255, %eax
    addl	%eax, %edx
    cld
    leal	15(,%edx,4), %eax
    andl	$-16, %eax
    subl	%eax, %esp
    movl	%esp, %edx
    movl	%ebx, (%esp)
    movl	%edi, %ebx
    shrl	$2, %ebx
    movl	%esp, %edi
    testl	%ecx, %ecx
    setne	%cl
    andl	$255, %ecx
    subl	$12, %esp
    addl	%ecx, %ebx
    leal	0(,%ebx,4), %ecx
    shrl	$2, %ecx
    rep
    movsl
    pushl	%edx
    call	__p_HasWildCards
    addl	$16, %esp
    testb	%al, %al
    je	L50
    movl	-156(%ebp), %edi
    addl	$8, %edi
    movl	%edi, -156(%ebp)
L50:
    movl	-156(%ebp), %eax
    movl	-160(%ebp), %esp
    leal	-12(%ebp), %esp
    popl	%ebx
    popl	%esi
    popl	%edi
    popl	%ebp
    ret
    .p2align 4,,7
L32:
    xorl	%ecx, %ecx
    jmp	L33
LFE0:
LC0:
    .ascii ".\0"
    .p2align 4,,15
.globl __p_WGetCurDir
__p_WGetCurDir:
    pushl	%ebp
    movl	%esp, %ebp
    pushl	%edi
    pushl	%esi
    pushl	%ebx
    subl	$4156, %esp
    movb	12(%ebp), %cl
    movl	$2, -40(%ebp)
    testb	%cl, %cl
    jne	L54
    leal	-32(%ebp), %edx
    pushl	%ebx
    pushl	$1
    pushl	$LC0
    pushl	%edx
    call	_memcpy
    movl	$1, -36(%ebp)
L60:
    addl	$12, %esp
    leal	-40(%ebp), %ecx
    leal	-2104(%ebp), %ebx
    leal	-4168(%ebp), %edi
    pushl	$67
    movl	%ebx, %esi
    pushl	%ecx
    pushl	%ebx
    movl	$2048, -2104(%ebp)
    call	__p_FExpand
    movl	$515, %ecx
    cld
    rep
    movsl
    popl	%eax
    movl	-2100(%ebp), %eax
    cmpb	$0, 8(%eax,%ebx)
    je	L59
    movb	$0, 8(%eax,%ebx)
L59:
    leal	-2096(%ebp), %esi
    movl	8(%ebp), %eax
    pushl	%esi
    pushl	%eax
    call	__p_CStringLCopy
    addl	$16, %esp
    leal	-12(%ebp), %esp
    popl	%ebx
    popl	%esi
    popl	%edi
    popl	%ebp
    ret
    .p2align 4,,7
L54:
    xorl	%ebx, %ebx
    subl	$16, %esp
    movb	%cl, %bl
    addl	$-1, %ebx
    movl	$2, (%esp)
    addl	$97, %ebx
    leal	8(%esp), %edx
    movb	%bl, 8(%esp)
    leal	-32(%ebp), %ebx
    movb	$58, 9(%esp)
    movl	$2, 4(%esp)
    pushl	%ecx
    pushl	$2
    pushl	%edx
    pushl	%ebx
    call	_memcpy
    movl	$2, -36(%ebp)
    jmp	L60
LFE0:
    .p2align 4,,15
.globl __p_WSetCurDir
__p_WSetCurDir:
    pushl	%ebp
    movl	%esp, %ebp
    pushl	%edi
    pushl	%esi
    pushl	%ebx
    subl	$12, %esp
    movl	8(%ebp), %eax
    movl	%esp, -16(%ebp)
    testl	%eax, %eax
    je	L62
    subl	$12, %esp
    movl	8(%ebp), %eax
    pushl	%eax
    call	_strlen
    addl	$16, %esp
    movl	%eax, %ecx
L63:
    leal	9(%ecx), %edi
    movl	%edi, %esi
    movl	%edi, %ebx
    shrl	$2, %esi
    andl	$3, %ebx
    setne	%dl
    andl	$255, %edx
    movl	%ebx, -20(%ebp)
    addl	%edx, %esi
    leal	24(%ecx), %edx
    andl	$-16, %edx
    leal	15(,%esi,4), %ebx
    andl	$-16, %ebx
    subl	%ebx, %esp
    movl	%esp, %ebx
    movl	%ecx, (%esp)
    subl	%edx, %esp
    movl	%esp, %esi
    movl	%ecx, (%esp)
    pushl	%eax
    pushl	%eax
    pushl	%esi
    movl	8(%ebp), %eax
    pushl	%eax
    call	__p_CopyCString
    movl	-20(%ebp), %eax
    movl	%edi, %edx
    movl	%ebx, %edi
    shrl	$2, %edx
    testl	%eax, %eax
    setne	%cl
    andl	$255, %ecx
    addl	%ecx, %edx
    cld
    leal	0(,%edx,4), %ecx
    shrl	$2, %ecx
    rep
    movsl
    movl	%ebx, (%esp)
    call	__p_ChDir
    addl	$16, %esp
    movl	-16(%ebp), %esp
    leal	-12(%ebp), %esp
    popl	%ebx
    popl	%esi
    popl	%edi
    popl	%ebp
    ret
    .p2align 4,,7
L62:
    xorl	%ecx, %ecx
    jmp	L63
LFE0:
    .p2align 4,,15
.globl __p_WCreateDir
__p_WCreateDir:
    pushl	%ebp
    movl	%esp, %ebp
    pushl	%edi
    pushl	%esi
    pushl	%ebx
    subl	$12, %esp
    movl	8(%ebp), %eax
    movl	%esp, -16(%ebp)
    testl	%eax, %eax
    je	L67
    subl	$12, %esp
    movl	8(%ebp), %eax
    pushl	%eax
    call	_strlen
    addl	$16, %esp
    movl	%eax, %ecx
L68:
    leal	9(%ecx), %edi
    movl	%edi, %esi
    movl	%edi, %ebx
    shrl	$2, %esi
    andl	$3, %ebx
    setne	%dl
    andl	$255, %edx
    movl	%ebx, -20(%ebp)
    addl	%edx, %esi
    leal	24(%ecx), %edx
    andl	$-16, %edx
    leal	15(,%esi,4), %ebx
    andl	$-16, %ebx
    subl	%ebx, %esp
    movl	%esp, %ebx
    movl	%ecx, (%esp)
    subl	%edx, %esp
    movl	%esp, %esi
    movl	%ecx, (%esp)
    pushl	%edx
    pushl	%edx
    pushl	%esi
    movl	8(%ebp), %eax
    pushl	%eax
    call	__p_CopyCString
    movl	-20(%ebp), %eax
    movl	%edi, %edx
    movl	%ebx, %edi
    shrl	$2, %edx
    testl	%eax, %eax
    setne	%cl
    andl	$255, %ecx
    addl	%ecx, %edx
    cld
    leal	0(,%edx,4), %ecx
    shrl	$2, %ecx
    rep
    movsl
    movl	%ebx, (%esp)
    call	__p_MkDir
    addl	$16, %esp
    movl	-16(%ebp), %esp
    leal	-12(%ebp), %esp
    popl	%ebx
    popl	%esi
    popl	%edi
    popl	%ebp
    ret
    .p2align 4,,7
L67:
    xorl	%ecx, %ecx
    jmp	L68
LFE0:
    .p2align 4,,15
.globl __p_WRemoveDir
__p_WRemoveDir:
    pushl	%ebp
    movl	%esp, %ebp
    pushl	%edi
    pushl	%esi
    pushl	%ebx
    subl	$12, %esp
    movl	8(%ebp), %eax
    movl	%esp, -16(%ebp)
    testl	%eax, %eax
    je	L72
    subl	$12, %esp
    movl	8(%ebp), %eax
    pushl	%eax
    call	_strlen
    addl	$16, %esp
    movl	%eax, %ecx
L73:
    leal	9(%ecx), %edi
    movl	%edi, %esi
    movl	%edi, %ebx
    shrl	$2, %esi
    andl	$3, %ebx
    setne	%dl
    andl	$255, %edx
    movl	%ebx, -20(%ebp)
    addl	%edx, %esi
    leal	24(%ecx), %edx
    andl	$-16, %edx
    leal	15(,%esi,4), %ebx
    andl	$-16, %ebx
    subl	%ebx, %esp
    movl	%esp, %ebx
    movl	%ecx, (%esp)
    subl	%edx, %esp
    movl	%esp, %esi
    movl	%ecx, (%esp)
    pushl	%eax
    pushl	%eax
    pushl	%esi
    movl	8(%ebp), %eax
    pushl	%eax
    call	__p_CopyCString
    movl	-20(%ebp), %eax
    movl	%edi, %edx
    movl	%ebx, %edi
    shrl	$2, %edx
    testl	%eax, %eax
    setne	%cl
    andl	$255, %ecx
    addl	%ecx, %edx
    cld
    leal	0(,%edx,4), %ecx
    shrl	$2, %ecx
    rep
    movsl
    movl	%ebx, (%esp)
    call	__p_RmDir
    addl	$16, %esp
    movl	-16(%ebp), %esp
    leal	-12(%ebp), %esp
    popl	%ebx
    popl	%esi
    popl	%edi
    popl	%ebp
    ret
    .p2align 4,,7
L72:
    xorl	%ecx, %ecx
    jmp	L73
LFE0:
    .p2align 4,,15
.globl __p_WGetArgStr
__p_WGetArgStr:
    pushl	%ebp
    movl	%esp, %ebp
    pushl	%esi
    pushl	%ebx
    movl	12(%ebp), %edx
    testl	%edx, %edx
    js	L80
    cmpl	__p_CParamCount, %edx
    jge	L80
    movl	__p_CParameters, %eax
    movl	(%eax,%edx,4), %esi
L81:
    testl	%esi, %esi
    jne	L84
    xorl	%edx, %edx
L79:
    leal	24(%edx), %ecx
    andl	$-16, %ecx
    subl	%ecx, %esp
    movl	%esp, %ebx
    movl	%edx, (%esp)
    pushl	%eax
    pushl	%eax
    pushl	%ebx
    pushl	%esi
    call	__p_CopyCString
    movl	4(%ebx), %eax
    addl	$16, %esp
    cmpb	$0, 8(%eax,%ebx)
    je	L83
    movb	$0, 8(%eax,%ebx)
L83:
    movl	16(%ebp), %eax
    pushl	%ecx
    leal	8(%ebx), %esi
    pushl	%eax
    movl	8(%ebp), %eax
    pushl	%esi
    pushl	%eax
    call	__p_CStringLCopy
    addl	$16, %esp
    leal	-8(%ebp), %esp
    popl	%ebx
    popl	%esi
    popl	%ebp
    ret
    .p2align 4,,7
L84:
    subl	$12, %esp
    pushl	%esi
    call	_strlen
    addl	$16, %esp
    movl	%eax, %edx
    jmp	L79
    .p2align 4,,7
L80:
    xorl	%esi, %esi
    jmp	L81
LFE0:
    .section .data
___ctor_run_condition_24__.0:
    .byte	1
    .section .text
    .p2align 4,,15
.globl _fini_Windos
_fini_Windos:
    pushl	%ebp
    movl	%esp, %ebp
    popl	%ebp
    ret
    .p2align 4,,15
.globl _init_Windos
_init_Windos:
    pushl	%ebp
    movl	%esp, %ebp
    pushl	%eax
    pushl	%eax
    cmpb	$0, ___ctor_run_condition_24__.0
    jne	L88
L85:
    movl	%ebp, %esp
    popl	%ebp
    ret
    .p2align 4,,7
L88:
    movb	$0, ___ctor_run_condition_24__.0
    call	_init_Gpc
    call	_init_System
    call	_init_Dos
    subl	$12, %esp
    pushl	$_fini_Windos
    call	__p_AtExit
    addl	$16, %esp
    jmp	L85
    .p2align 4,,15
.globl __p_WGetArgCount
__p_WGetArgCount:
    pushl	%ebp
    movl	__p_CParamCount, %eax
    decl	%eax
    movl	%esp, %ebp
    popl	%ebp
    ret
    .p2align 4,,15
.globl __p_WFindClose
__p_WFindClose:
    pushl	%ebp
    movl	%esp, %ebp
    movl	8(%ebp), %eax
    addl	$2092, %eax
    movl	%eax, 8(%ebp)
    popl	%ebp
    jmp	__p_FindClose
    .p2align 4,,15
.globl __p_WFindNext
__p_WFindNext:
    pushl	%ebp
    movl	%esp, %ebp
    pushl	%ebx
    subl	$16, %esp
    movl	4(%ebp), %eax
    movl	8(%ebp), %ebx
    pushl	%eax
    call	__p_SetReturnAddress
    leal	2092(%ebx), %edx
    movl	%edx, (%esp)
    call	__p_FindNext
    call	__p_RestoreReturnAddress
    movl	__p_DosError, %eax
    addl	$16, %esp
    testl	%eax, %eax
    je	L89
    movl	-4(%ebp), %ebx
    movl	%ebp, %esp
    popl	%ebp
    ret
    .p2align 4,,7
L89:
    movl	%ebx, 8(%ebp)
    movl	-4(%ebp), %ebx
    movl	%ebp, %esp
    popl	%ebp
    jmp	_Convertsearchrec
Letext0:
    .section	.debug_info,""
    .long	0x1e9
    .word	0x2
    .long	Ldebug_abbrev0
    .byte	0x4
    .uleb128 0x1
    .long	Letext0
    .long	Ltext0
    .ascii "c:\djgpp\lib\gcc-lib\djgpp\3.22\units\windos.pas\0"
    .ascii "c:/lombardi/temp/gpctest\0"
    .ascii "GNU Pascal 3.2.2\0"
    .byte	0x9
    .uleb128 0x2
    .ascii "ConvertSearchRec\0"
    .byte	0x1
    .byte	0xc1
    .long	LFB0
    .long	LFE0
    .byte	0x1
    .byte	0x54
    .uleb128 0x3
    .byte	0x1
    .ascii "FindFirst\0"
    .byte	0x1
    .byte	0xc9
    .ascii "_p_WFindFirst\0"
    .long	LFB0
    .long	LFE0
    .byte	0x1
    .byte	0x54
    .uleb128 0x3
    .byte	0x1
    .ascii "FileSearch\0"
    .byte	0x1
    .byte	0xde
    .ascii "_p_WFileSearch\0"
    .long	LFB0
    .long	LFE0
    .byte	0x1
    .byte	0x54
    .uleb128 0x3
    .byte	0x1
    .ascii "FileExpand\0"
    .byte	0x1
    .byte	0xe3
    .ascii "_p_WFileExpand\0"
    .long	LFB0
    .long	LFE0
    .byte	0x1
    .byte	0x54
    .uleb128 0x3
    .byte	0x1
    .ascii "FileSplit\0"
    .byte	0x1
    .byte	0xe8
    .ascii "_p_WFileSplit\0"
    .long	LFB0
    .long	LFE0
    .byte	0x1
    .byte	0x54
    .uleb128 0x3
    .byte	0x1
    .ascii "GetCurDir\0"
    .byte	0x1
    .byte	0xfa
    .ascii "_p_WGetCurDir\0"
    .long	LFB0
    .long	LFE0
    .byte	0x1
    .byte	0x54
    .uleb128 0x4
    .byte	0x1
    .ascii "SetCurDir\0"
    .byte	0x1
    .word	0x104
    .ascii "_p_WSetCurDir\0"
    .long	LFB0
    .long	LFE0
    .byte	0x1
    .byte	0x54
    .uleb128 0x4
    .byte	0x1
    .ascii "CreateDir\0"
    .byte	0x1
    .word	0x109
    .ascii "_p_WCreateDir\0"
    .long	LFB0
    .long	LFE0
    .byte	0x1
    .byte	0x54
    .uleb128 0x4
    .byte	0x1
    .ascii "RemoveDir\0"
    .byte	0x1
    .word	0x10e
    .ascii "_p_WRemoveDir\0"
    .long	LFB0
    .long	LFE0
    .byte	0x1
    .byte	0x54
    .uleb128 0x4
    .byte	0x1
    .ascii "GetArgStr\0"
    .byte	0x1
    .word	0x118
    .ascii "_p_WGetArgStr\0"
    .long	LFB0
    .long	LFE0
    .byte	0x1
    .byte	0x54
    .byte	0x0
    .section	.debug_abbrev,""
    .uleb128 0x1
    .uleb128 0x11
    .byte	0x1
    .uleb128 0x12
    .uleb128 0x1
    .uleb128 0x11
    .uleb128 0x1
    .uleb128 0x3
    .uleb128 0x8
    .uleb128 0x1b
    .uleb128 0x8
    .uleb128 0x25
    .uleb128 0x8
    .uleb128 0x13
    .uleb128 0xb
    .byte	0x0
    .byte	0x0
    .uleb128 0x2
    .uleb128 0x2e
    .byte	0x0
    .uleb128 0x3
    .uleb128 0x8
    .uleb128 0x3a
    .uleb128 0xb
    .uleb128 0x3b
    .uleb128 0xb
    .uleb128 0x11
    .uleb128 0x1
    .uleb128 0x12
    .uleb128 0x1
    .uleb128 0x40
    .uleb128 0xa
    .byte	0x0
    .byte	0x0
    .uleb128 0x3
    .uleb128 0x2e
    .byte	0x0
    .uleb128 0x3f
    .uleb128 0xc
    .uleb128 0x3
    .uleb128 0x8
    .uleb128 0x3a
    .uleb128 0xb
    .uleb128 0x3b
    .uleb128 0xb
    .uleb128 0x2007
    .uleb128 0x8
    .uleb128 0x11
    .uleb128 0x1
    .uleb128 0x12
    .uleb128 0x1
    .uleb128 0x40
    .uleb128 0xa
    .byte	0x0
    .byte	0x0
    .uleb128 0x4
    .uleb128 0x2e
    .byte	0x0
    .uleb128 0x3f
    .uleb128 0xc
    .uleb128 0x3
    .uleb128 0x8
    .uleb128 0x3a
    .uleb128 0xb
    .uleb128 0x3b
    .uleb128 0x5
    .uleb128 0x2007
    .uleb128 0x8
    .uleb128 0x11
    .uleb128 0x1
    .uleb128 0x12
    .uleb128 0x1
    .uleb128 0x40
    .uleb128 0xa
    .byte	0x0
    .byte	0x0
    .byte	0x0
    .section	.debug_pubnames,""
    .long	0x8e
    .word	0x2
    .long	Ldebug_info0
    .long	0x1ed
    .long	0x8e
    .ascii "FindFirst\0"
    .long	0xb4
    .ascii "FileSearch\0"
    .long	0xdc
    .ascii "FileExpand\0"
    .long	0x104
    .ascii "FileSplit\0"
    .long	0x12a
    .ascii "GetCurDir\0"
    .long	0x150
    .ascii "SetCurDir\0"
    .long	0x177
    .ascii "CreateDir\0"
    .long	0x19e
    .ascii "RemoveDir\0"
    .long	0x1c5
    .ascii "GetArgStr\0"
    .long	0x0
    .ident	"GCC: (GNU) 3.2.2"