* Moved lcc and q3asm into code/tools
This commit is contained in:
parent
b1cef6352e
commit
ad118b9baf
452 changed files with 0 additions and 0 deletions
437
code/tools/lcc/x86/linux/tst/wf1.sbk
Normal file
437
code/tools/lcc/x86/linux/tst/wf1.sbk
Normal file
|
@ -0,0 +1,437 @@
|
|||
.globl main
|
||||
.text
|
||||
.align 16
|
||||
.type main,@function
|
||||
main:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl %esp,%ebp
|
||||
subl $24,%esp
|
||||
movl $0,-24(%ebp)
|
||||
movl $0,next
|
||||
jmp .LC3
|
||||
.LC2:
|
||||
leal -24(%ebp),%edi
|
||||
pushl %edi
|
||||
leal -20(%ebp),%edi
|
||||
pushl %edi
|
||||
call lookup
|
||||
addl $8,%esp
|
||||
incl (,%eax)
|
||||
.LC3:
|
||||
leal -20(%ebp),%edi
|
||||
pushl %edi
|
||||
call getword
|
||||
addl $4,%esp
|
||||
cmpl $0,%eax
|
||||
jne .LC2
|
||||
pushl -24(%ebp)
|
||||
call tprint
|
||||
addl $4,%esp
|
||||
movl $0,%eax
|
||||
.LC1:
|
||||
movl %ebp,%esp
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.Lf5:
|
||||
.size main,.Lf5-main
|
||||
.globl err
|
||||
.align 16
|
||||
.type err,@function
|
||||
err:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl %esp,%ebp
|
||||
pushl 20(%ebp)
|
||||
pushl $.LC7
|
||||
call printf
|
||||
addl $8,%esp
|
||||
pushl $1
|
||||
call exit
|
||||
addl $4,%esp
|
||||
movl $0,%eax
|
||||
.LC6:
|
||||
movl %ebp,%esp
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.Lf8:
|
||||
.size err,.Lf8-err
|
||||
.globl getword
|
||||
.align 16
|
||||
.type getword,@function
|
||||
getword:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl %esp,%ebp
|
||||
subl $8,%esp
|
||||
.LC10:
|
||||
.LC11:
|
||||
call getchar
|
||||
movl %eax,%edi
|
||||
movl %edi,-4(%ebp)
|
||||
cmpl $-1,%edi
|
||||
je .LC13
|
||||
pushl -4(%ebp)
|
||||
call isletter
|
||||
addl $4,%esp
|
||||
cmpl $0,%eax
|
||||
je .LC10
|
||||
.LC13:
|
||||
movl 20(%ebp),%edi
|
||||
movl %edi,-8(%ebp)
|
||||
jmp .LC17
|
||||
.LC14:
|
||||
movl -8(%ebp),%edi
|
||||
leal 1(%edi),%esi
|
||||
movl %esi,-8(%ebp)
|
||||
movl -4(%ebp),%esi
|
||||
movl %esi,%ebx
|
||||
movb %bl,(,%edi)
|
||||
.LC15:
|
||||
call getchar
|
||||
movl %eax,-4(%ebp)
|
||||
.LC17:
|
||||
pushl -4(%ebp)
|
||||
call isletter
|
||||
addl $4,%esp
|
||||
movl %eax,-4(%ebp)
|
||||
cmpl $0,%eax
|
||||
jne .LC14
|
||||
movl -8(%ebp),%edi
|
||||
movb $0,(,%edi)
|
||||
movl -8(%ebp),%edi
|
||||
movl 20(%ebp),%esi
|
||||
cmpl %esi,%edi
|
||||
jbe .LC18
|
||||
movl $1,%eax
|
||||
jmp .LC9
|
||||
.LC18:
|
||||
movl $0,%eax
|
||||
.LC9:
|
||||
movl %ebp,%esp
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.Lf20:
|
||||
.size getword,.Lf20-getword
|
||||
.globl isletter
|
||||
.align 16
|
||||
.type isletter,@function
|
||||
isletter:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl %esp,%ebp
|
||||
movl 20(%ebp),%edi
|
||||
cmpl $65,%edi
|
||||
jl .LC22
|
||||
cmpl $90,%edi
|
||||
jg .LC22
|
||||
addl $32,20(%ebp)
|
||||
.LC22:
|
||||
movl 20(%ebp),%edi
|
||||
cmpl $97,%edi
|
||||
jl .LC24
|
||||
cmpl $122,%edi
|
||||
jg .LC24
|
||||
movl 20(%ebp),%eax
|
||||
jmp .LC21
|
||||
.LC24:
|
||||
movl $0,%eax
|
||||
.LC21:
|
||||
movl %ebp,%esp
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.Lf26:
|
||||
.size isletter,.Lf26-isletter
|
||||
.globl lookup
|
||||
.align 16
|
||||
.type lookup,@function
|
||||
lookup:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl %esp,%ebp
|
||||
subl $4,%esp
|
||||
movl 24(%ebp),%edi
|
||||
movl (,%edi),%edi
|
||||
cmpl $0,%edi
|
||||
je .LC28
|
||||
movl 24(%ebp),%edi
|
||||
movl (,%edi),%edi
|
||||
pushl 12(%edi)
|
||||
pushl 20(%ebp)
|
||||
call strcmp
|
||||
addl $8,%esp
|
||||
movl %eax,-4(%ebp)
|
||||
cmpl $0,-4(%ebp)
|
||||
jge .LC30
|
||||
movl 24(%ebp),%edi
|
||||
movl (,%edi),%edi
|
||||
leal 4(%edi),%edi
|
||||
pushl %edi
|
||||
pushl 20(%ebp)
|
||||
call lookup
|
||||
addl $8,%esp
|
||||
movl %eax,%edi
|
||||
jmp .LC27
|
||||
.LC30:
|
||||
cmpl $0,-4(%ebp)
|
||||
jle .LC32
|
||||
movl 24(%ebp),%edi
|
||||
movl (,%edi),%edi
|
||||
leal 8(%edi),%edi
|
||||
pushl %edi
|
||||
pushl 20(%ebp)
|
||||
call lookup
|
||||
addl $8,%esp
|
||||
movl %eax,%edi
|
||||
jmp .LC27
|
||||
.LC32:
|
||||
movl 24(%ebp),%edi
|
||||
movl (,%edi),%eax
|
||||
jmp .LC27
|
||||
.LC28:
|
||||
cmpl $2000,next
|
||||
jl .LC34
|
||||
pushl $.LC36
|
||||
call err
|
||||
addl $4,%esp
|
||||
.LC34:
|
||||
movl next,%edi
|
||||
sall $4,%edi
|
||||
movl $0,words(%edi)
|
||||
movl next,%edi
|
||||
sall $4,%edi
|
||||
movl $0,words+8(%edi)
|
||||
movl $0,words+4(%edi)
|
||||
pushl 20(%ebp)
|
||||
call strlen
|
||||
addl $4,%esp
|
||||
leal 1(%eax),%edi
|
||||
pushl %edi
|
||||
call malloc
|
||||
addl $4,%esp
|
||||
movl next,%esi
|
||||
sall $4,%esi
|
||||
movl %eax,words+12(%esi)
|
||||
movl next,%edi
|
||||
sall $4,%edi
|
||||
movl words+12(%edi),%edi
|
||||
cmpl $0,%edi
|
||||
jne .LC40
|
||||
pushl $.LC43
|
||||
call err
|
||||
addl $4,%esp
|
||||
.LC40:
|
||||
pushl 20(%ebp)
|
||||
movl next,%edi
|
||||
sall $4,%edi
|
||||
pushl words+12(%edi)
|
||||
call strcpy
|
||||
addl $8,%esp
|
||||
movl next,%edi
|
||||
leal 1(%edi),%esi
|
||||
movl %esi,next
|
||||
sall $4,%edi
|
||||
leal words(%edi),%edi
|
||||
movl 24(%ebp),%esi
|
||||
movl %edi,(,%esi)
|
||||
movl %edi,%eax
|
||||
.LC27:
|
||||
movl %ebp,%esp
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.Lf45:
|
||||
.size lookup,.Lf45-lookup
|
||||
.globl tprint
|
||||
.align 16
|
||||
.type tprint,@function
|
||||
tprint:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl %esp,%ebp
|
||||
movl 20(%ebp),%edi
|
||||
cmpl $0,%edi
|
||||
je .LC47
|
||||
movl 20(%ebp),%edi
|
||||
pushl 4(%edi)
|
||||
call tprint
|
||||
addl $4,%esp
|
||||
movl 20(%ebp),%edi
|
||||
pushl 12(%edi)
|
||||
pushl (,%edi)
|
||||
pushl $.LC49
|
||||
call printf
|
||||
addl $12,%esp
|
||||
movl 20(%ebp),%edi
|
||||
pushl 8(%edi)
|
||||
call tprint
|
||||
addl $4,%esp
|
||||
.LC47:
|
||||
movl $0,%eax
|
||||
.LC46:
|
||||
movl %ebp,%esp
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.Lf50:
|
||||
.size tprint,.Lf50-tprint
|
||||
.globl strcmp
|
||||
.align 16
|
||||
.type strcmp,@function
|
||||
strcmp:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl %esp,%ebp
|
||||
jmp .LC53
|
||||
.LC52:
|
||||
movl 20(%ebp),%edi
|
||||
leal 1(%edi),%esi
|
||||
movl %esi,20(%ebp)
|
||||
movsbl (,%edi),%edi
|
||||
cmpl $0,%edi
|
||||
jne .LC55
|
||||
movl $0,%eax
|
||||
jmp .LC51
|
||||
.LC55:
|
||||
incl 24(%ebp)
|
||||
.LC53:
|
||||
movl 20(%ebp),%edi
|
||||
movsbl (,%edi),%edi
|
||||
movl 24(%ebp),%esi
|
||||
movsbl (,%esi),%esi
|
||||
cmpl %esi,%edi
|
||||
je .LC52
|
||||
movl 20(%ebp),%edi
|
||||
movsbl (,%edi),%edi
|
||||
cmpl $0,%edi
|
||||
jne .LC57
|
||||
movl $-1,%eax
|
||||
jmp .LC51
|
||||
.LC57:
|
||||
movl 24(%ebp),%edi
|
||||
movsbl (,%edi),%edi
|
||||
cmpl $0,%edi
|
||||
jne .LC59
|
||||
movl $1,%eax
|
||||
jmp .LC51
|
||||
.LC59:
|
||||
movl 20(%ebp),%edi
|
||||
movsbl (,%edi),%edi
|
||||
movl 24(%ebp),%esi
|
||||
movsbl (,%esi),%esi
|
||||
movl %edi,%eax
|
||||
subl %esi,%eax
|
||||
.LC51:
|
||||
movl %ebp,%esp
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.Lf61:
|
||||
.size strcmp,.Lf61-strcmp
|
||||
.bss
|
||||
.globl next
|
||||
.align 4
|
||||
.type next,@object
|
||||
.size next,4
|
||||
.comm next,4
|
||||
.globl words
|
||||
.align 4
|
||||
.type words,@object
|
||||
.size words,32000
|
||||
.comm words,32000
|
||||
.data
|
||||
.align 1
|
||||
.LC49:
|
||||
.byte 37
|
||||
.byte 100
|
||||
.byte 9
|
||||
.byte 37
|
||||
.byte 115
|
||||
.byte 10
|
||||
.byte 0
|
||||
.align 1
|
||||
.LC43:
|
||||
.byte 111
|
||||
.byte 117
|
||||
.byte 116
|
||||
.byte 32
|
||||
.byte 111
|
||||
.byte 102
|
||||
.byte 32
|
||||
.byte 119
|
||||
.byte 111
|
||||
.byte 114
|
||||
.byte 100
|
||||
.byte 32
|
||||
.byte 115
|
||||
.byte 116
|
||||
.byte 111
|
||||
.byte 114
|
||||
.byte 97
|
||||
.byte 103
|
||||
.byte 101
|
||||
.byte 0
|
||||
.align 1
|
||||
.LC36:
|
||||
.byte 111
|
||||
.byte 117
|
||||
.byte 116
|
||||
.byte 32
|
||||
.byte 111
|
||||
.byte 102
|
||||
.byte 32
|
||||
.byte 110
|
||||
.byte 111
|
||||
.byte 100
|
||||
.byte 101
|
||||
.byte 32
|
||||
.byte 115
|
||||
.byte 116
|
||||
.byte 111
|
||||
.byte 114
|
||||
.byte 97
|
||||
.byte 103
|
||||
.byte 101
|
||||
.byte 0
|
||||
.align 1
|
||||
.LC7:
|
||||
.byte 63
|
||||
.byte 32
|
||||
.byte 37
|
||||
.byte 115
|
||||
.byte 10
|
||||
.byte 0
|
||||
.text
|
||||
.ident "LCC: 4.1"
|
Loading…
Add table
Add a link
Reference in a new issue