123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- // Aplica o back-end do juninho
- @target : mips
- // Especifica o tipo de metodo empregado para salvar o resultado da compilação
- //@export : MultCoreJun
- @export : simulation
- package main;
- const (
- LIN = 2
- COL = 2
- )
- var (
- matrizA [LIN][COL]int32
- matrizB [LIN][COL]int32
- matrizR [LIN][COL]int32
- )
- func preenche(){
- var k = 1
- for i := 0; i < LIN ; i++ {
- for j := 0; j < COL ; j++ {
- matrizA[i][j] = k
- matrizB[i][j] = k
- k++
- }
- }
- }
- func multiplica() {
- var aux = 0
- for i := 0; i < LIN; i++ {
- for j := 0; j < COL; j++ {
- for k := 0; k < LIN; k++ {
- aux = aux + (matrizA[i][k] * matrizB[k][j])
- }
- matrizR[i][j] = aux
- aux = 0
- }
- }
- }
- func main() {
- preenche()
- multiplica()
- }
- /**
- load (int32) i T< load >
- 10: 9: _T4 := i --Copy value of index T< copy >
- 11: 10: _T5 := _T4 << 1 T< assign >
- 12: 11: load (int32) j T< load >
- 13: 12: _T7 := j --Copy value of index T< copy >
- 14: 13: _T5 := _T5 + _T7 --colls shift T< assign >
- 15: 14: _T11 := _T5 << 4 T< assign >
- 16: 15: load (int32) aux T< load >
- 17: 16: matrizA[_T11] := aux T< indexed_assign >
- [2][2]
- i j t4 t5 t7 t11
- 9 1 1 1
- 10 2
- 11
- 12 1
- 13 3
- 14
- 15
- 16
- 17
- sll t6,t4,4 .14 -- _T11 = _T5 << 4
- 60: 2413101056 lw s5,fp,0 .15 -- load content from _V1 in s5
- 64: 0000000000 sll zero,zero,0 .15 -- Nop
- 68: 0059666465 addu t6,gp,t6 .16
- 6c: 2916417536 sw s5,t6,0 .16 -- store content of t6 in _G13[_T11]
- t6 tem o deslocamento em bytes
-
- */
|