chore(cpu): add inline fn isHalted()
This commit is contained in:
		| @@ -148,6 +148,10 @@ pub const Arm7tdmi = struct { | ||||
|         }; | ||||
|     } | ||||
|  | ||||
|     pub inline fn isHalted(self: *const Self) bool { | ||||
|         return self.bus.io.haltcnt == .Halt; | ||||
|     } | ||||
|  | ||||
|     pub fn setCpsr(self: *Self, value: u32) void { | ||||
|         if (value & 0x1F != self.cpsr.raw & 0x1F) self.changeModeFromIdx(@truncate(u5, value & 0x1F)); | ||||
|         self.cpsr.raw = value; | ||||
|   | ||||
| @@ -52,7 +52,7 @@ pub fn runFrame(sched: *Scheduler, cpu: *Arm7tdmi) void { | ||||
|  | ||||
|     while (true) { | ||||
|         while (sched.tick < std.math.min(frame_end, sched.nextTimestamp())) { | ||||
|             if (cpu.bus.io.haltcnt == .Execute) cpu.step() else sched.tick += 1; | ||||
|             if (!cpu.isHalted()) cpu.step() else sched.tick += 1; | ||||
|             cpu.handleDMATransfers(); | ||||
|         } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user