Change formatting [tabs 2 spaces]
This commit is contained in:
parent
cc06d1abc0
commit
706868cd95
27
fpmul.asm
27
fpmul.asm
@ -7,7 +7,7 @@ main:
|
||||
sw $fp, 0($sp)
|
||||
addi $fp, $sp, 0 # stack arguments (no)
|
||||
|
||||
li $a0, 0xbf800000
|
||||
li $a0, 0xbf800000 # <-- test case goes here
|
||||
li $a1, 0x3f800000
|
||||
jal multFloat
|
||||
|
||||
@ -20,11 +20,11 @@ main:
|
||||
#
|
||||
# encodeFloat (sign, exp, mant)
|
||||
# Arguments
|
||||
# a0: The sign
|
||||
# a1: The exponent without the bias
|
||||
# a2: The normalized mantissa 24bit, with the implied bit
|
||||
# $a0: The sign
|
||||
# $a1: The exponent without the bias
|
||||
# $a2: The normalized mantissa 24bit, with the implied bit
|
||||
# Retuen
|
||||
# v0: The floating point word
|
||||
# $v0: The floating point word
|
||||
encodeFloat:
|
||||
# intro - stack-frame
|
||||
addi $sp, $sp, -8 # encodeFloat
|
||||
@ -38,7 +38,7 @@ encodeFloat:
|
||||
sll $a1, $a1, 23
|
||||
or $v0, $v0, $a1
|
||||
|
||||
li $t0, 0x7FFFFF #v0 |= (mant & 0x7FFFFF);
|
||||
li $t0, 0x7FFFFF # v0 |= (mant & 0x7FFFFF);
|
||||
and $a2, $a2, $t0
|
||||
or $v0, $v0, $a2
|
||||
|
||||
@ -69,8 +69,8 @@ decodeFloat:
|
||||
and $t0, $t0, 0xFF
|
||||
addi $v1, $t0, -127
|
||||
|
||||
li $t0, 0x7FFFFF
|
||||
and $a1, $a0, $t0 #Mantissa[a1] = (a0 & 0x7FFFFF) | 0x800000;
|
||||
li $t0, 0x7FFFFF # Mantissa[a1] = (a0 & 0x7FFFFF) | 0x800000;
|
||||
and $a1, $a0, $t0
|
||||
li $t0, 0x800000
|
||||
or $a1, $a1, $t0
|
||||
|
||||
@ -88,7 +88,7 @@ decodeFloat:
|
||||
# return
|
||||
# $v0 : 32bit floating point multiplication result
|
||||
multFloat:
|
||||
# s0: sign / argument 2
|
||||
# s0: sign and argument 2
|
||||
# s1: exp
|
||||
# s2: mantissa
|
||||
# intro - stack-frame
|
||||
@ -108,7 +108,7 @@ multFloat:
|
||||
move $s2, $a1
|
||||
|
||||
move $a0, $t0 # load argument 2
|
||||
jal decodeFloat #[v0, v1, a1] <- [s, e, m]
|
||||
jal decodeFloat # [v0, v1, a1] <- [s, e, m]
|
||||
xor $s0, $s0, $v0 # sign = s1 ^ s2
|
||||
add $s1, $s1, $v1 # exp = e1 + e2
|
||||
|
||||
@ -179,14 +179,14 @@ fprod:
|
||||
|
||||
lw $v0, 0($s0) # Acc = *x
|
||||
addi $s2, $zero, 1 # i=1
|
||||
_fprod_loop:
|
||||
bge $s2, $s1, _fprod_loop_end # for ( ; i<n ; )
|
||||
_fprod_loop: # for ( ; i<n ; ) {
|
||||
bge $s2, $s1, _fprod_loop_end
|
||||
addi $s0, $s0, 4 # a0 <- *++x
|
||||
lw $a0, 0($s0)
|
||||
move $a1, $v0 # a1 <- use prev result
|
||||
jal multFloat
|
||||
addi $s2, $s2, 1 # ++i
|
||||
j _fprod_loop
|
||||
j _fprod_loop # }
|
||||
_fprod_loop_end:
|
||||
|
||||
# epilogue - stack-frame
|
||||
@ -198,4 +198,3 @@ fprod:
|
||||
addi $sp, $sp, 20
|
||||
jr $ra # return
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user