Answer:
Check the explanation
Step-by-step explanation:
ASM of MIPS gcc 5.4:
myfunction(int*, int):
 addiu $sp,$sp,-56
 sw $31,52($sp)
 sw $fp,48($sp)
 move $fp,$sp
 sw $4,56($fp)
 sw $5,60($fp)
 sw $0,24($fp)
 sw $0,28($fp)
$L16:
 lw $2,60($fp)
 nop
 addiu $3,$2,-2
 lw $2,28($fp)
 nop
 slt $2,$3,$2
 bne $2,$0,$L17
 nop
 lw $2,28($fp)
 nop
 sll $2,$2,2
 lw $3,56($fp)
 nop
 addu $2,$3,$2
 lw $2,0($2)
 nop
 sw $2,44($fp)
 lw $2,28($fp)
 nop
 sw $2,32($fp)
 lw $2,28($fp)
 nop
 addiu $2,$2,1
 sw $2,36($fp)
$L5:
 lw $3,36($fp)
 lw $2,60($fp)
 nop
 slt $2,$3,$2
 beq $2,$0,$L3
 nop
 lw $2,36($fp)
 nop
 sll $2,$2,2
 lw $3,56($fp)
 nop
 addu $2,$3,$2
 lw $3,0($2)
 lw $2,44($fp)
 nop
 slt $2,$3,$2
 beq $2,$0,$L4
 nop
 lw $2,32($fp)
 nop
 addiu $2,$2,1
 sw $2,32($fp)
$L4:
 lw $2,36($fp)
 nop
 addiu $2,$2,1
 sw $2,36($fp)
 b $L5
 nop
$L3:
 lw $3,32($fp)
 lw $2,28($fp)
 nop
 beq $3,$2,$L18
 nop
$L6:
 lw $2,32($fp)
 nop
 sll $2,$2,2
 lw $3,56($fp)
 nop
 addu $2,$3,$2
 lw $3,0($2)
 lw $2,44($fp)
 nop
 bne $3,$2,$L8
 nop
 lw $2,32($fp)
 nop
 addiu $2,$2,1
 sw $2,32($fp)
 b $L6
 nop
$L8:
 lw $3,32($fp)
 lw $2,28($fp)
 nop
 beq $3,$2,$L9
 nop
 lw $2,32($fp)
 nop
 sll $2,$2,2
 lw $3,56($fp)
 nop
 addu $3,$3,$2
 addiu $2,$fp,44
 move $5,$3
 move $4,$2
 jal void std::swap<int>(int&, int&)
 nop
 lw $2,24($fp)
 nop
 addiu $2,$2,1
 sw $2,24($fp)
$L9:
 lw $3,32($fp)
 lw $2,28($fp)
 nop
 beq $3,$2,$L7
 nop
 lw $2,28($fp)
 nop
 sw $2,32($fp)
 lw $2,28($fp)
 nop
 addiu $2,$2,1
 sw $2,40($fp)
$L13:
 lw $3,40($fp)
 lw $2,60($fp)
 nop
 slt $2,$3,$2
 beq $2,$0,$L11
 nop
 lw $2,40($fp)
 nop
 sll $2,$2,2
 lw $3,56($fp)
 nop
 addu $2,$3,$2
 lw $3,0($2)
 lw $2,44($fp)
 nop
 slt $2,$3,$2
 beq $2,$0,$L12
 nop
 lw $2,32($fp)
 nop
 addiu $2,$2,1
 sw $2,32($fp)
$L12:
 lw $2,40($fp)
 nop
 addiu $2,$2,1
 sw $2,40($fp)
 b $L13
 nop
$L11:
 lw $2,32($fp)
 nop
 sll $2,$2,2
 lw $3,56($fp)
 nop
 addu $2,$3,$2
 lw $3,0($2)
 lw $2,44($fp)
 nop
 bne $3,$2,$L14
 nop
 lw $2,32($fp)
 nop
 addiu $2,$2,1
 sw $2,32($fp)
 b $L11
 nop
$L14:
 lw $2,32($fp)
 nop
 sll $2,$2,2
 lw $3,56($fp)
 nop
 addu $2,$3,$2
 lw $3,0($2)
 lw $2,44($fp)
 nop
 beq $3,$2,$L9
 nop
 lw $2,32($fp)
 nop
 sll $2,$2,2
 lw $3,56($fp)
 nop
 addu $3,$3,$2
 addiu $2,$fp,44
 move $5,$3
 move $4,$2
 jal void std::swap<int>(int&, int&)
 nop
 lw $2,24($fp)
 nop
 addiu $2,$2,1
 sw $2,24($fp)
 b $L9
 nop
$L18:
 nop
$L7:
 lw $2,28($fp)
 nop
 addiu $2,$2,1
 sw $2,28($fp)
 b $L16
 nop
$L17:
 nop
 move $sp,$fp
 lw $31,52($sp)
 lw $fp,48($sp)
 addiu $sp,$sp,56
 j $31
 nop
$LC0:
 .ascii "array:\000"
$LC1:
 .ascii " \000"
main:
 addiu $sp,$sp,-72
 sw $31,68($sp)
 sw $fp,64($sp)
 move $fp,$sp
 li $2,1 # 0x1
 sw $2,32($fp)
 li $2,8 # 0x8
 sw $2,36($fp)
 li $2,3 # 0x3
 sw $2,40($fp)
 li $2,9 # 0x9
 sw $2,44($fp)
 li $2,10 # 0xa
 sw $2,48($fp)
 li $2,2 # 0x2
 sw $2,52($fp)
 li $2,4 # 0x4
 sw $2,56($fp)
 li $2,7 # 0x7
 sw $2,28($fp)
 addiu $2,$fp,32
 lw $5,28($fp)
 move $4,$2
 jal myfunction(int*, int)
 nop
 lui $2,%hi($LC0)
 addiu $5,$2,%lo($LC0)
 lui $2,%hi(_ZSt4cout)
 addiu $4,$2,%lo(_ZSt4cout)
 jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
 nop
 move $3,$2
 lui $2,%hi(_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
 addiu $5,$2,%lo(_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
 move $4,$3
 jal std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))
 nop
 sw $0,24($fp)
$L21:
 lw $3,24($fp)
 lw $2,28($fp)
 nop
 slt $2,$3,$2
 beq $2,$0,$L20
 nop
 lw $2,24($fp)
 nop
 sll $2,$2,2
 addiu $3,$fp,24
 addu $2,$3,$2
 lw $2,8($2)
 nop
 move $5,$2
 lui $2,%hi(_ZSt4cout)
 addiu $4,$2,%lo(_ZSt4cout)
 jal std::basic_ostream<char, std::char_traits<char> >::operator<<(int)
 nop
 move $3,$2
 lui $2,%hi($LC1)
 addiu $5,$2,%lo($LC1)
 move $4,$3
 jal std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)
 nop
 lw $2,24($fp)
 nop
 addiu $2,$2,1
 sw $2,24($fp)
 b $L21
 nop
$L20:
 move $2,$0
 move $sp,$fp
 lw $31,68($sp)
 lw $fp,64($sp)
 addiu $sp,$sp,72
 j $31
 nop
void std::swap<int>(int&, int&):
 addiu $sp,$sp,-24
 sw $fp,20($sp)
 move $fp,$sp
 sw $4,24($fp)
 sw $5,28($fp)
 lw $2,24($fp)
 nop
 lw $2,0($2)
 nop
 sw $2,8($fp)
 lw $2,28($fp)
 nop
 lw $3,0($2)
 lw $2,24($fp)
 nop
 sw $3,0($2)
 lw $2,28($fp)
 lw $3,8($fp)
 nop
 sw $3,0($2)
 nop
 move $sp,$fp
 lw $fp,20($sp)
 addiu $sp,$sp,24
 j $31
 nop
__static_initialization_and_destruction_0(int, int):
 addiu $sp,$sp,-32
 sw $31,28($sp)
 sw $fp,24($sp)
 move $fp,$sp
 sw $4,32($fp)
 sw $5,36($fp)
 lw $3,32($fp)
 li $2,1 # 0x1
 bne $3,$2,$L26
 nop
 lw $3,36($fp)
 li $2,65535 # 0xffff
 bne $3,$2,$L26
 nop
 lui $2,%hi(_ZStL8__ioinit)
 addiu $4,$2,%lo(_ZStL8__ioinit)
 jal std::ios_base::Init::Init() [complete object constructor]
 nop
 lui $2,%hi(__dso_handle)
 addiu $6,$2,%lo(__dso_handle)
 lui $2,%hi(_ZStL8__ioinit)
 addiu $5,$2,%lo(_ZStL8__ioinit)
 lui $2,%hi(_ZNSt8ios_base4InitD1Ev)
 addiu $4,$2,%lo(_ZNSt8ios_base4InitD1Ev)
 jal __cxa_atexit
 nop
$L26:
 nop
 move $sp,$fp
 lw $31,28($sp)
 lw $fp,24($sp)
 addiu $sp,$sp,32
 j $31
 nop