Remove unused field 'operand_count' (fixes test)

This commit is contained in:
Seth Morabito 2018-12-29 11:18:19 -08:00
parent 78472a9ec6
commit 55bdc9fa7e
1 changed files with 4 additions and 8 deletions

View File

@ -172,7 +172,6 @@ pub struct Instruction {
pub name: &'static str,
pub data_type: Data,
pub bytes: u8,
pub operand_count: u8,
pub operands: [Operand; 4],
}
@ -510,7 +509,6 @@ impl Cpu {
name: "???",
data_type: Data::None,
bytes: 0,
operand_count: 0,
operands: [
Operand::new(0, AddrMode::None, Data::None, None, None, 0),
Operand::new(0, AddrMode::None, Data::None, None, None, 0),
@ -2139,7 +2137,6 @@ impl Cpu {
self.ir.name = mn.name;
self.ir.data_type = mn.dtype;
self.ir.bytes = total_bytes as u8;
self.ir.operand_count = mn.ops.len() as u8;
}
None => return Err(CpuError::Exception(CpuException::IllegalOpcode))
}
@ -2572,12 +2569,11 @@ mod tests {
});
}
fn assert_instruction(cpu: &Cpu, opcode: u16, size: u8, name: &'static str, data_type: Data, operand_count: u8) {
fn assert_instruction(cpu: &Cpu, opcode: u16, size: u8, name: &'static str, data_type: Data) {
assert_eq!(cpu.ir.opcode, opcode);
assert_eq!(cpu.ir.bytes, size);
assert_eq!(cpu.ir.name, name);
assert_eq!(cpu.ir.data_type, data_type);
assert_eq!(cpu.ir.operand_count, operand_count);
}
#[test]
@ -2585,7 +2581,7 @@ mod tests {
let program = [0x30, 0x0d]; // ENBVJMP
do_with_program(&program, |cpu, bus| {
cpu.decode_instruction(bus).unwrap();
assert_instruction(cpu, 0x300d, 2, "ENBVJMP", Data::None, 0);
assert_instruction(cpu, 0x300d, 2, "ENBVJMP", Data::None);
})
}
@ -2604,7 +2600,7 @@ mod tests {
Operand::new(2, AddrMode::Register, Data::Byte, Some(Data::SByte), Some(0), 0),
Operand::new(3, AddrMode::ByteDisplacement, Data::Byte, Some(Data::UHalf), Some(1), 4),
];
assert_instruction(cpu, 0x87, 6, "MOVB", Data::Byte, 2);
assert_instruction(cpu, 0x87, 6, "MOVB", Data::Byte);
assert_eq!(cpu.ir.operands[0], expected_operands[0]);
assert_eq!(cpu.ir.operands[1], expected_operands[1]);
}
@ -2615,7 +2611,7 @@ mod tests {
Operand::new(2, AddrMode::ByteDisplacementDeferred, Data::Byte, None, Some(2), 0x30),
Operand::new(1, AddrMode::Register, Data::Byte, None, Some(3), 0),
];
assert_instruction(cpu, 0x87, 4, "MOVB", Data::Byte, 2);
assert_instruction(cpu, 0x87, 4, "MOVB", Data::Byte);
assert_eq!(cpu.ir.operands[0], expected_operands[0]);
assert_eq!(cpu.ir.operands[1], expected_operands[1]);
}