Skip to content

Commit a3a486f

Browse files
committed
[fix](mips): add \n for test
1 parent 69814d7 commit a3a486f

File tree

4 files changed

+10
-0
lines changed

4 files changed

+10
-0
lines changed

libs/mips/include/mips/mips_manager.h

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ class MipsManager {
3131
ZeroReg *zero;
3232
StkPtrReg *sp;
3333
RetAddrReg *ra;
34+
ArgumentReg *a0;
3435
ValueReg *v0;
3536
// f0 和 f12 保留,用于输入输出
3637
FloatReg *f0;

libs/mips/src/mips_manager.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ MipsManager::MipsManager() {
1515
zero = new ZeroReg();
1616
sp = new StkPtrReg();
1717
ra = new RetAddrReg();
18+
a0 = new ArgumentReg(0);
1819
v0 = new ValueReg(0);
1920
f0 = new FloatReg(0);
2021
f12 = new FloatReg(12);
@@ -42,6 +43,7 @@ MipsManager::~MipsManager() {
4243
delete zero;
4344
delete sp;
4445
delete ra;
46+
delete a0;
4547
delete v0;
4648
delete f0;
4749
delete f12;

libs/mips/src/translator.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -416,4 +416,8 @@ void Translator::translate(OutputInstPtr outputInstPtr) {
416416
manager->addCode(new RCode(AddS, manager->f12, reg, reg0));
417417
manager->addCode(new ICode(Addiu, manager->v0, manager->zero, 2));
418418
manager->addCode(new RCode(Syscall));
419+
// for test: put '\n'
420+
manager->addCode(new ICode(Addiu, manager->a0, manager->zero, 10));
421+
manager->addCode(new ICode(Addiu, manager->v0, manager->zero, 11));
422+
manager->addCode(new RCode(Syscall));
419423
}

tests/test_mips.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@ l.s $f14, flt1
146146
add.s $f12, $f13, $f14
147147
addiu $v0, $zero, 2
148148
syscall
149+
addiu $a0, $zero, 10
150+
addiu $v0, $zero, 11
151+
syscall
149152
j main_5
150153
nop
151154

0 commit comments

Comments
 (0)