Superescalares

Encontrar las dependencias en el siguiente segmento de código y renombrar los registros:
  1. I1: Loop: lw $t0, 0($s1)        ; $t0 = array element
    I2:       addu $t0, $t0, $s2    ; add scalar in $s2
    I3:       sw $t0, 0($s1)        ; store result
    I4:       addi $s1, $s1, -4     ; decrement pointer
    I5:       bne $s1, $zero, Loop  ; branch if $s1 != 0
    
  2. I1: Loop: lw f0, 0(r1)     ; f0 = array element
    I2:       add f4, f0, f2   ; add scalar in f2
    I3:       sw f4, 0(r1)     ; store result
    I4:       addi r1, r1, -8  ; decrement pointer 8 bytes
    I5:       bne r1, r2, Loop ; branch if r1 != r2
    
  3. I1: Loop: lw f2, 0(rx)
    I2:       mul f5, f0, f2
    I3:       div f8, f0, f2
    I4:       lw f4, 0(ry)
    I5:       add f6, f0, f4
    I6:       add f10, f8, f2
    I7:       sw f4, 0(ry)
    
  4. I1: Loop: lw r1, 0(r2)
    I2:       addi r1, r1, 1
    I3:       sw r1, 0(r2)
    I4:       addi r2, r2, 4
    I5:       sub r4, r3, r2
    I6:       bnz r4, Loop
    


Regresar