Pushing value to stack on Assembly : Recently I faced to an snippet of Assembly function code that first of all saves registers value's in stack(sets $sp to -12) and doing it's job. but in pushing first value to stack it moves 8 units from base address and for second one 4 units and for the last one 0 unit. but I don't get that why It' pushes the first value by moving 8 units and not 4?!

    Leaf_example: 
    addi  $sp, $sp, -12 
    sw     $t1, 8($sp) 
    sw    $t0, 4($sp) 
    sw    $s0, 0($sp) 
    add  $t0, $a0, $a1 
    add  $t1, $a2, $a3 
    sub   $s0, $t0, $t1 
    add   $v0, $s0, $zero 
    lw     $s0, 0($sp) 
    lw     $t0, 4($sp) 
    lw     $t1, 8($sp) 
    addi   $sp, $sp, 12 
    jr     $ra  