Initial revision
Committed on the Free edition of March Hare Software CVSNT Server. Upgrade to CVS Suite for more features and support: http://march-hare.com/cvsnt/ git-svn-id: http://moon:8086/svn/vhdl/trunk@986 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
@@ -0,0 +1,556 @@
|
||||
.file 1 "rmd160_test.c"
|
||||
.set nobopt
|
||||
.text
|
||||
.align 2
|
||||
.globl saus
|
||||
.ent saus
|
||||
saus:
|
||||
.frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0
|
||||
.mask 0x00000000,0
|
||||
.fmask 0x00000000,0
|
||||
li $2,-2147483648 # 0xffffffff80000000
|
||||
sll $4,$4,24
|
||||
sra $4,$4,24
|
||||
ori $5,$2,0x4
|
||||
ori $3,$2,0x8
|
||||
$L2:
|
||||
lbu $2,0($3)
|
||||
andi $2,$2,0x2
|
||||
bne $2,$0,$L2
|
||||
sb $4,0($5)
|
||||
j $31
|
||||
.end saus
|
||||
.align 2
|
||||
.globl sputs
|
||||
.ent sputs
|
||||
sputs:
|
||||
.frame $sp,32,$31 # vars= 0, regs= 3/0, args= 16, gp= 0
|
||||
.mask 0x80030000,-8
|
||||
.fmask 0x00000000,0
|
||||
addiu $sp,$sp,-32
|
||||
sw $17,20($sp)
|
||||
sw $16,16($sp)
|
||||
sw $31,24($sp)
|
||||
move $16,$4
|
||||
lb $4,0($4)
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
j $L11
|
||||
move $17,$16
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
$L12:
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal saus
|
||||
addiu $16,$16,1
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
lb $4,0($16)
|
||||
$L11:
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
bne $4,$0,$L12
|
||||
subu $2,$16,$17
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
lw $31,24($sp)
|
||||
lw $17,20($sp)
|
||||
lw $16,16($sp)
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
j $31
|
||||
addiu $sp,$sp,32
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
.end sputs
|
||||
.align 2
|
||||
.globl print_byte
|
||||
.ent print_byte
|
||||
print_byte:
|
||||
.frame $sp,32,$31 # vars= 0, regs= 3/0, args= 16, gp= 0
|
||||
.mask 0x80030000,-8
|
||||
.fmask 0x00000000,0
|
||||
addiu $sp,$sp,-32
|
||||
sw $16,16($sp)
|
||||
sll $16,$4,24
|
||||
sw $17,20($sp)
|
||||
sw $31,24($sp)
|
||||
sra $16,$16,24
|
||||
li $17,1 # 0x1
|
||||
sra $2,$16,4
|
||||
$L22:
|
||||
andi $5,$2,0xf
|
||||
sll $2,$16,4
|
||||
sll $16,$2,24
|
||||
sltu $3,$5,10
|
||||
addiu $17,$17,-1
|
||||
sra $16,$16,24
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
bne $3,$0,$L18
|
||||
addiu $4,$5,48
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
addiu $4,$5,55
|
||||
$L18:
|
||||
jal saus
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
bgez $17,$L22
|
||||
sra $2,$16,4
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
lw $31,24($sp)
|
||||
lw $17,20($sp)
|
||||
lw $16,16($sp)
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
j $31
|
||||
addiu $sp,$sp,32
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
.end print_byte
|
||||
.align 2
|
||||
.globl print_word
|
||||
.ent print_word
|
||||
print_word:
|
||||
.frame $sp,32,$31 # vars= 0, regs= 3/0, args= 16, gp= 0
|
||||
.mask 0x80030000,-8
|
||||
.fmask 0x00000000,0
|
||||
addiu $sp,$sp,-32
|
||||
sw $17,20($sp)
|
||||
sw $16,16($sp)
|
||||
sw $31,24($sp)
|
||||
move $16,$4
|
||||
li $17,3 # 0x3
|
||||
$L27:
|
||||
sra $4,$16,24
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal print_byte
|
||||
addiu $17,$17,-1
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
bgez $17,$L27
|
||||
sll $16,$16,8
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
lw $31,24($sp)
|
||||
lw $17,20($sp)
|
||||
lw $16,16($sp)
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
j $31
|
||||
addiu $sp,$sp,32
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
.end print_word
|
||||
|
||||
.lcomm hashcode.0,20
|
||||
.align 2
|
||||
.globl RMD
|
||||
.ent RMD
|
||||
RMD:
|
||||
.frame $sp,128,$31 # vars= 88, regs= 6/0, args= 16, gp= 0
|
||||
.mask 0x801f0000,-4
|
||||
.fmask 0x00000000,0
|
||||
addiu $sp,$sp,-128
|
||||
sw $16,104($sp)
|
||||
move $16,$4
|
||||
addiu $4,$sp,16
|
||||
sw $31,124($sp)
|
||||
sw $20,120($sp)
|
||||
sw $18,112($sp)
|
||||
sw $17,108($sp)
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal MDinit
|
||||
sw $19,116($sp)
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal strlen
|
||||
move $4,$16
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
move $18,$2
|
||||
sltu $2,$2,64
|
||||
move $17,$18
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
bne $2,$0,$L44
|
||||
addiu $20,$sp,16
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
addiu $19,$sp,40
|
||||
addiu $5,$20,24
|
||||
$L50:
|
||||
li $11,15 # 0xf
|
||||
$L37:
|
||||
lbu $2,3($16)
|
||||
lbu $3,2($16)
|
||||
lbu $4,1($16)
|
||||
sll $3,$3,16
|
||||
sll $2,$2,24
|
||||
or $2,$2,$3
|
||||
sll $4,$4,8
|
||||
lbu $3,0($16)
|
||||
or $2,$2,$4
|
||||
or $2,$2,$3
|
||||
addiu $11,$11,-1
|
||||
sw $2,0($5)
|
||||
addiu $16,$16,4
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
bgez $11,$L37
|
||||
addiu $5,$5,4
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
addiu $17,$17,-64
|
||||
addiu $4,$sp,16
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal compress
|
||||
move $5,$19
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
sltu $2,$17,64
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
beq $2,$0,$L50
|
||||
addiu $5,$20,24
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
$L44:
|
||||
move $5,$16
|
||||
move $6,$18
|
||||
addiu $4,$sp,16
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal MDfinish
|
||||
move $7,$0
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
move $11,$0
|
||||
la $15,hashcode.0
|
||||
la $13,hashcode.0+1
|
||||
la $14,hashcode.0+2
|
||||
la $12,hashcode.0+3
|
||||
$L42:
|
||||
srl $2,$11,2
|
||||
sll $2,$2,2
|
||||
addu $2,$2,$20
|
||||
lw $3,0($2)
|
||||
addu $7,$11,$15
|
||||
addu $8,$11,$13
|
||||
addu $9,$11,$14
|
||||
addu $10,$11,$12
|
||||
addiu $11,$11,4
|
||||
srl $6,$3,24
|
||||
srl $2,$3,8
|
||||
srl $4,$3,16
|
||||
sltu $5,$11,20
|
||||
sb $3,0($7)
|
||||
sb $2,0($8)
|
||||
sb $4,0($9)
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
bne $5,$0,$L42
|
||||
sb $6,0($10)
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
lw $31,124($sp)
|
||||
lw $20,120($sp)
|
||||
lw $19,116($sp)
|
||||
lw $18,112($sp)
|
||||
lw $17,108($sp)
|
||||
lw $16,104($sp)
|
||||
la $2,hashcode.0
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
j $31
|
||||
addiu $sp,$sp,128
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
.end RMD
|
||||
.section .rodata.str1.4,"aMS",@progbits,1
|
||||
.align 2
|
||||
$LC0:
|
||||
.ascii "\r\n\000"
|
||||
.align 2
|
||||
$LC1:
|
||||
.ascii "* message: \000"
|
||||
.align 2
|
||||
$LC2:
|
||||
.ascii " hashcode: \000"
|
||||
.text
|
||||
.align 2
|
||||
.globl RMDstring
|
||||
.ent RMDstring
|
||||
RMDstring:
|
||||
.frame $sp,40,$31 # vars= 8, regs= 3/0, args= 16, gp= 0
|
||||
.mask 0x80030000,-8
|
||||
.fmask 0x00000000,0
|
||||
lbu $3,$LC0+2
|
||||
lhu $2,$LC0
|
||||
addiu $sp,$sp,-40
|
||||
sw $31,32($sp)
|
||||
sb $3,18($sp)
|
||||
sw $17,28($sp)
|
||||
sw $16,24($sp)
|
||||
sh $2,16($sp)
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal RMD
|
||||
move $16,$5
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
addiu $4,$sp,16
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal sputs
|
||||
move $17,$2
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
la $4,$LC1
|
||||
jal sputs
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal sputs
|
||||
move $4,$16
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal sputs
|
||||
addiu $4,$sp,16
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
la $4,$LC2
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal sputs
|
||||
move $16,$0
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
addu $2,$17,$16
|
||||
$L58:
|
||||
lb $4,0($2)
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal print_byte
|
||||
addiu $16,$16,1
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
sltu $2,$16,20
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
bne $2,$0,$L58
|
||||
addu $2,$17,$16
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal sputs
|
||||
addiu $4,$sp,16
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
lw $31,32($sp)
|
||||
lw $17,28($sp)
|
||||
lw $16,24($sp)
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
j $31
|
||||
addiu $sp,$sp,40
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
.end RMDstring
|
||||
.rdata
|
||||
.align 2
|
||||
$LC3:
|
||||
.byte -1
|
||||
.byte 35
|
||||
.byte -100
|
||||
.byte -42
|
||||
.byte 89
|
||||
.byte -118
|
||||
.byte 121
|
||||
.byte 46
|
||||
.byte -89
|
||||
.byte -85
|
||||
.byte 108
|
||||
.byte -8
|
||||
.byte 117
|
||||
.byte -74
|
||||
.byte 53
|
||||
.byte 94
|
||||
.byte 93
|
||||
.byte -128
|
||||
.byte 106
|
||||
.byte 54
|
||||
.section .rodata.str1.4
|
||||
.align 2
|
||||
$LC4:
|
||||
.ascii "MIPS R3000 CPU\000"
|
||||
.align 2
|
||||
$LC5:
|
||||
.ascii "Failed\r\n\000"
|
||||
.text
|
||||
.align 2
|
||||
.globl main
|
||||
.ent main
|
||||
main:
|
||||
.frame $sp,88,$31 # vars= 48, regs= 5/0, args= 16, gp= 0
|
||||
.mask 0x800f0000,-8
|
||||
.fmask 0x00000000,0
|
||||
lwl $2,$LC3+3
|
||||
lwl $3,$LC3+7
|
||||
lwr $2,$LC3
|
||||
lwr $3,$LC3+4
|
||||
lwl $4,$LC3+11
|
||||
lwl $5,$LC3+15
|
||||
lwl $6,$LC3+19
|
||||
addiu $sp,$sp,-88
|
||||
lwr $4,$LC3+8
|
||||
lwr $5,$LC3+12
|
||||
lwr $6,$LC3+16
|
||||
sw $2,16($sp)
|
||||
sw $3,20($sp)
|
||||
lw $2,$LC4
|
||||
lw $3,$LC4+4
|
||||
sw $19,76($sp)
|
||||
sw $18,72($sp)
|
||||
sw $17,68($sp)
|
||||
sw $4,24($sp)
|
||||
sw $5,28($sp)
|
||||
sw $2,40($sp)
|
||||
sw $31,80($sp)
|
||||
sw $16,64($sp)
|
||||
sw $6,32($sp)
|
||||
sw $3,44($sp)
|
||||
lw $2,$LC4+8
|
||||
lhu $3,$LC4+12
|
||||
sw $2,48($sp)
|
||||
lbu $2,$LC4+14
|
||||
sh $3,52($sp)
|
||||
sb $2,54($sp)
|
||||
lbu $3,$LC0+2
|
||||
lhu $2,$LC0
|
||||
li $4,-2147483648 # 0xffffffff80000000
|
||||
sh $2,56($sp)
|
||||
sb $3,58($sp)
|
||||
ori $5,$4,0x9
|
||||
li $2,53
|
||||
ori $4,$4,0x8
|
||||
li $3,85
|
||||
sb $2,0($5)
|
||||
move $18,$0
|
||||
sb $3,0($4)
|
||||
addiu $19,$sp,56
|
||||
addiu $17,$sp,40
|
||||
$L60:
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal print_word
|
||||
move $4,$18
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal sputs
|
||||
move $4,$19
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
addiu $18,$18,1
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
j $L66
|
||||
li $16,32249 # 0x7df9
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
$L64:
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
bltz $16,$L70
|
||||
move $4,$17
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
$L66:
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal RMD
|
||||
move $4,$17
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
move $4,$2
|
||||
addiu $5,$sp,16
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal memcmp
|
||||
li $6,20 # 0x14
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
la $4,$LC5
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
beq $2,$0,$L64
|
||||
addiu $16,$16,-1
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
jal sputs
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
bgez $16,$L66
|
||||
move $4,$17
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
$L70:
|
||||
.set noreorder
|
||||
.set nomacro
|
||||
jal RMDstring
|
||||
move $5,$17
|
||||
.set macro
|
||||
.set reorder
|
||||
|
||||
j $L60
|
||||
.end main
|
||||
Reference in New Issue
Block a user