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"