From db98835fea3bcb8a04530e612cca5081e5c2682a Mon Sep 17 00:00:00 2001 From: Samuel Perrouault Date: Wed, 26 Mar 2025 16:18:33 +0100 Subject: turn LD [I] into a single memcpy --- src/chip8.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/chip8.rs b/src/chip8.rs index a48b86a..b245861 100644 --- a/src/chip8.rs +++ b/src/chip8.rs @@ -184,15 +184,13 @@ impl Chip8 { 0xF000 => match opcode & 0x00FF { 0x0055 => { eprintln!("LD [I], V{}", x); - for i in 0..=x { - self.memory[self.i as usize + i] = self.v[i]; - } + let i = self.i as usize; + self.memory[i..=i + x].copy_from_slice(&self.v[..=x]); } 0x0065 => { eprintln!("LD V{}, [I]", x); - for i in 0..=x { - self.v[i] = self.memory[self.i as usize + i]; - } + let i = self.i as usize; + self.v[..=x].copy_from_slice(&self.memory[i..=i + x]); } _ => unknown_opcode(opcode), }, -- cgit v1.2.3