#![cfg(target_arch = "aarch64")]
use arm_vcpu::TrapFrame;
#[test]
fn test_spsr_default_value() {
let ctx = TrapFrame::default();
let spsr = ctx.spsr;
assert_eq!(spsr & 0xF, 0x5, "SPSR should be in EL1h mode");
assert_eq!(spsr & (1 << 7), 1 << 7, "IRQ should be masked");
assert_eq!(spsr & (1 << 6), 1 << 6, "FIQ should be masked");
assert_eq!(spsr & (1 << 8), 1 << 8, "SError should be masked");
assert_eq!(spsr & (1 << 9), 1 << 9, "Debug should be masked");
}
#[test]
fn test_spsr_mode_values() {
const EL0T: u64 = 0x0;
const EL1T: u64 = 0x4;
const EL1H: u64 = 0x5;
const EL2T: u64 = 0x8;
const EL2H: u64 = 0x9;
assert_eq!(EL0T, 0);
assert_eq!(EL1T, 4);
assert_eq!(EL1H, 5);
assert_eq!(EL2T, 8);
assert_eq!(EL2H, 9);
}