Skip to content

Commit 1a4ad9a

Browse files
committed
Added code to handle Multiply in MIPS generation
1 parent d9fb2d6 commit 1a4ad9a

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

‎codegen/CodeGenerator.java‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,16 @@ else if(op.equals("-"))
388388
{
389389
temp = "addi " + resultReg + ", " + resultReg + (Integer.parseInt(arg2.getName())*-1) + "\n";
390390
}
391+
else if(op.equals("*"))
392+
{
393+
temp = "li " + tempReg + ", " + arg2.getName() + "\n";
394+
bw.write(temp, 0, temp.length());
395+
396+
temp = "mult " + resultReg + ", " + tempReg + "\n";
397+
bw.write(temp, 0, temp.length());
398+
399+
temp = "mflo " + resultReg + "\n";
400+
}
391401
}
392402
else if(arg2.getType().equals("temporary"))
393403
{
@@ -399,6 +409,13 @@ else if(op.equals("-"))
399409
{
400410
temp = "sub " + resultReg + ", " + resultReg + ", " + allocator.allocateReg(arg2.getName()) + "\n";
401411
}
412+
else if(op.equals("*"))
413+
{
414+
temp = "mult " + resultReg + ", " + allocator.allocateReg(arg2.getName()) + "\n";
415+
bw.write(temp, 0, temp.length());
416+
417+
temp = "mflo " + resultReg + "\n";
418+
}
402419
}
403420
else //Variable arg2
404421
{
@@ -413,6 +430,13 @@ else if(op.equals("-"))
413430
{
414431
temp = "sub " + resultReg + ", " + resultReg + ", " + tempReg + "\n";
415432
}
433+
else if(op.equals("*"))
434+
{
435+
temp = "mult " + resultReg + ", " + tempReg + "\n";
436+
bw.write(temp, 0, temp.length());
437+
438+
temp = "mflo " + resultReg + "\n";
439+
}
416440
}
417441

418442
bw.write(temp, 0, temp.length());

0 commit comments

Comments
 (0)