Fix some comments
This commit is contained in:
parent
706868cd95
commit
63b81a9496
37
fpmul.asm
37
fpmul.asm
@ -49,7 +49,7 @@ encodeFloat:
|
|||||||
jr $ra
|
jr $ra
|
||||||
|
|
||||||
#
|
#
|
||||||
# decodeFloat
|
# decodeFloat(number)
|
||||||
# arguments
|
# arguments
|
||||||
# $a0 : 32bit floating point
|
# $a0 : 32bit floating point
|
||||||
# return
|
# return
|
||||||
@ -81,7 +81,7 @@ decodeFloat:
|
|||||||
jr $ra # return
|
jr $ra # return
|
||||||
|
|
||||||
#
|
#
|
||||||
# multFloat
|
# multFloat(f1, f2)
|
||||||
# arguments
|
# arguments
|
||||||
# $a0 : 32bit floating point 1
|
# $a0 : 32bit floating point 1
|
||||||
# $a1 : 32bit floating point 2
|
# $a1 : 32bit floating point 2
|
||||||
@ -100,15 +100,15 @@ multFloat:
|
|||||||
sw $s0, 0($sp)
|
sw $s0, 0($sp)
|
||||||
addi $fp, $sp, 0 # stack arguments (no)
|
addi $fp, $sp, 0 # stack arguments (no)
|
||||||
|
|
||||||
move $s0, $a1
|
move $s0, $a1 # save 2nd argument
|
||||||
jal decodeFloat #[v0, v1, a1] <- [s, e, m]
|
jal decodeFloat # decodeFloat(arg1) : [v0, v1, a1] <- [s, e, m]
|
||||||
move $t0, $s0 # change variable
|
move $t0, $s0 # $s0 change variable to $t0
|
||||||
move $s0, $v0
|
move $s0, $v0 # load return values to variable regs
|
||||||
move $s1, $v1
|
move $s1, $v1
|
||||||
move $s2, $a1
|
move $s2, $a1
|
||||||
|
|
||||||
move $a0, $t0 # load argument 2
|
move $a0, $t0 # load back argument 2
|
||||||
jal decodeFloat # [v0, v1, a1] <- [s, e, m]
|
jal decodeFloat # decodeFloat(arg2) : [v0, v1, a1] <- [s, e, m]
|
||||||
xor $s0, $s0, $v0 # sign = s1 ^ s2
|
xor $s0, $s0, $v0 # sign = s1 ^ s2
|
||||||
add $s1, $s1, $v1 # exp = e1 + e2
|
add $s1, $s1, $v1 # exp = e1 + e2
|
||||||
|
|
||||||
@ -120,25 +120,25 @@ multFloat:
|
|||||||
li $t9, 0x8000 # if (HI & (1<<15))
|
li $t9, 0x8000 # if (HI & (1<<15))
|
||||||
and $t8, $t9, $t4
|
and $t8, $t9, $t4
|
||||||
beq $t8, $zero, _multf_l0
|
beq $t8, $zero, _multf_l0
|
||||||
# not zero
|
# (true)not zero, 48-bits result, normalize
|
||||||
sll $s2, $t4, 8 # mant = HI << 8
|
sll $s2, $t4, 8 # mant = HI << 8
|
||||||
srl $t9, $t3, 24 # mant |= LOW >> (32-8)
|
srl $t9, $t3, 24 # mant |= LOW >> (32-8)
|
||||||
or $s2, $s2, $t9
|
or $s2, $s2, $t9
|
||||||
addi $s1, $s1, 1 # ++exp
|
addi $s1, $s1, 1 # ++exp, normalize
|
||||||
li $t9, 0x800000 # if (ml & (1<<23)), check to normalize
|
li $t9, 0x800000 # if (ml & (1<<23)), rounding check
|
||||||
and $t8, $t9, $t3
|
and $t8, $t9, $t3
|
||||||
beq $t8, $zero, _multf_l0_end
|
beq $t8, $zero, _multf_l0_end
|
||||||
addi $s2, $s2, 1 # ++mant
|
addi $s2, $s2, 1 # ++mant, round-up
|
||||||
j _multf_l0_end
|
j _multf_l0_end
|
||||||
_multf_l0:
|
_multf_l0:
|
||||||
# zero
|
# (false)zero, 47-bits result
|
||||||
sll $s2, $t4, 9 # mant = HI << 9
|
sll $s2, $t4, 9 # mant = HI << 9
|
||||||
srl $t9, $t3, 23 # mant |= LOW >> (32-9)
|
srl $t9, $t3, 23 # mant |= LOW >> (32-9)
|
||||||
or $s2, $s2, $t9
|
or $s2, $s2, $t9
|
||||||
li $t9, 0x400000 # if (ml & (1<<22)), check to normalize
|
li $t9, 0x400000 # if (ml & (1<<22)), rounding check
|
||||||
and $t8, $t9, $t3
|
and $t8, $t9, $t3
|
||||||
beq $t8, $zero, _multf_l0_end
|
beq $t8, $zero, _multf_l0_end
|
||||||
addi $s2, $s2, 1 # ++mant
|
addi $s2, $s2, 1 # ++mant, round-up
|
||||||
_multf_l0_end:
|
_multf_l0_end:
|
||||||
|
|
||||||
move $a0, $s0
|
move $a0, $s0
|
||||||
@ -157,9 +157,12 @@ multFloat:
|
|||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# fprod(x,n) Calculates the product x[0]*x[1]*x[2]*...x[n-1]
|
# fprod(vector, size)
|
||||||
|
# Calculates the product x[0] * x[1] * x[2] * ... * x[n-1] as
|
||||||
|
# Left fold of product operator on a vector of numbers - foldl(*, x)
|
||||||
|
#
|
||||||
# Arguments
|
# Arguments
|
||||||
# $a0: Pointer to array x[] RAM
|
# $a0: Pointer to array x[] in RAM
|
||||||
# $a1: Number of elements
|
# $a1: Number of elements
|
||||||
# Return
|
# Return
|
||||||
# $v0: The product
|
# $v0: The product
|
||||||
|
Loading…
x
Reference in New Issue
Block a user