Compare commits
2 Commits
20d9f0a7f4
...
f601bec0c4
Author | SHA1 | Date |
---|---|---|
Rekai Nyangadzayi Musuka | f601bec0c4 | |
Rekai Nyangadzayi Musuka | 2c0c3a8ac4 |
|
@ -450,8 +450,7 @@ pub const Arm7tdmi = struct {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (self.pipe.flushed) self.r[15] += if (self.cpsr.t.read()) 2 else @as(u32, 4);
|
if (!self.pipe.flushed) self.r[15] += if (self.cpsr.t.read()) 2 else @as(u32, 4);
|
||||||
self.r[15] += if (self.cpsr.t.read()) 2 else @as(u32, 4);
|
|
||||||
self.pipe.flushed = false;
|
self.pipe.flushed = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -542,6 +541,8 @@ pub const Arm7tdmi = struct {
|
||||||
std.debug.print("spsr: 0x{X:0>8} ", .{self.spsr.raw});
|
std.debug.print("spsr: 0x{X:0>8} ", .{self.spsr.raw});
|
||||||
prettyPrintPsr(&self.spsr);
|
prettyPrintPsr(&self.spsr);
|
||||||
|
|
||||||
|
std.debug.print("pipeline: {??X:0>8}\n", .{self.pipe.stage});
|
||||||
|
|
||||||
if (self.cpsr.t.read()) {
|
if (self.cpsr.t.read()) {
|
||||||
const opcode = self.bus.dbgRead(u16, self.r[15] - 4);
|
const opcode = self.bus.dbgRead(u16, self.r[15] - 4);
|
||||||
const id = thumbIdx(opcode);
|
const id = thumbIdx(opcode);
|
||||||
|
@ -704,6 +705,8 @@ const Pipline = struct {
|
||||||
|
|
||||||
self.stage[0] = cpu.bus.read(T, cpu.r[15]);
|
self.stage[0] = cpu.bus.read(T, cpu.r[15]);
|
||||||
self.stage[1] = cpu.bus.read(T, cpu.r[15] + if (T == u32) 4 else @as(u32, 2));
|
self.stage[1] = cpu.bus.read(T, cpu.r[15] + if (T == u32) 4 else @as(u32, 2));
|
||||||
|
|
||||||
|
cpu.r[15] += if (T == u32) 8 else @as(u32, 4);
|
||||||
self.flushed = true;
|
self.flushed = true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue